]> git.ipfire.org Git - ipfire.org.git/blobdiff - Makefile.am
support: Have all icons on top on mobile viewport
[ipfire.org.git] / Makefile.am
index e61a78f5805ecb0f5eef1ddc87a6ad616d1f1cef..be16ecf8274d46eee26c323568efbc1c4929bb2b 100644 (file)
@@ -9,7 +9,7 @@ AUTOMAKE_OPTIONS = color-tests
 # keep itermediate files
 .SECONDARY:
 
-pythondir  = $(pyexecdir)
+pythondir  = $(prefix)/lib/python3/dist-packages
 
 configsdir = $(sysconfdir)/ipfire.org
 crondir    = $(sysconfdir)/cron.d
@@ -56,16 +56,21 @@ backend_PYTHON = \
        src/backend/decorators.py \
        src/backend/fireinfo.py \
        src/backend/geoip.py \
+       src/backend/hwdata.py \
        src/backend/iuse.py \
+       src/backend/memcached.py \
+       src/backend/messages.py \
        src/backend/mirrors.py \
        src/backend/misc.py \
        src/backend/netboot.py \
        src/backend/nopaste.py \
+       src/backend/ratelimit.py \
        src/backend/releases.py \
        src/backend/settings.py \
        src/backend/talk.py \
-       src/backend/tracker.py \
+       src/backend/tweets.py \
        src/backend/util.py \
+       src/backend/wiki.py \
        src/backend/zeiterfassung.py
 
 backenddir = $(pythondir)/ipfire
@@ -75,19 +80,21 @@ backenddir = $(pythondir)/ipfire
 web_PYTHON = \
        src/web/__init__.py \
        src/web/auth.py \
+       src/web/base.py \
        src/web/blog.py \
+       src/web/boot.py \
+       src/web/donate.py \
        src/web/download.py \
+       src/web/fireinfo.py \
        src/web/handlers.py \
-       src/web/handlers_base.py \
-       src/web/handlers_boot.py \
-       src/web/handlers_fireinfo.py \
-       src/web/handlers_iuse.py \
-       src/web/handlers_mirrors.py \
-       src/web/handlers_nopaste.py \
+       src/web/iuse.py \
        src/web/location.py \
+       src/web/mirrors.py \
        src/web/newsletter.py \
+       src/web/nopaste.py \
        src/web/people.py \
-       src/web/ui_modules.py
+       src/web/ui_modules.py \
+       src/web/wiki.py
 
 webdir = $(backenddir)/web
 
@@ -97,25 +104,36 @@ webdir = $(backenddir)/web
 
 templates_DATA = \
        src/templates/base.html \
-       src/templates/donate.html \
        src/templates/error.html \
        src/templates/index.html
 
 templatesdir = $(datadir)/templates
 
 templates_auth_DATA = \
-       src/templates/auth/login.html
+       src/templates/auth/activate.html \
+       src/templates/auth/activated.html \
+       src/templates/auth/login.html \
+       src/templates/auth/register.html \
+       src/templates/auth/register-spam.html \
+       src/templates/auth/register-success.html
 
 templates_authdir = $(templatesdir)/auth
 
+templates_auth_messages_DATA = \
+       src/templates/auth/messages/register.txt
+
+templates_auth_messagesdir = $(templates_authdir)/messages
+
 templates_blog_DATA = \
        src/templates/blog/author.html \
        src/templates/blog/base.html \
        src/templates/blog/compose.html \
+       src/templates/blog/delete.html \
        src/templates/blog/drafts.html \
        src/templates/blog/feed.xml \
        src/templates/blog/index.html \
        src/templates/blog/post.html \
+       src/templates/blog/publish.html \
        src/templates/blog/search-results.html \
        src/templates/blog/tag.html \
        src/templates/blog/year.html
@@ -130,27 +148,84 @@ templates_blog_modules_DATA = \
 
 templates_blog_modulesdir = $(templates_blogdir)/modules
 
+templates_donate_DATA = \
+       src/templates/donate/donate.html \
+       src/templates/donate/error.html \
+       src/templates/donate/thank-you.html
+
+templates_donatedir = $(templatesdir)/donate
+
 templates_download_DATA = \
        src/templates/download/release.html
 
 templates_downloaddir = $(templatesdir)/download
 
+templates_fireinfo_DATA = \
+       src/templates/fireinfo/driver.html \
+       src/templates/fireinfo/index.html \
+       src/templates/fireinfo/i-use-1.png \
+       src/templates/fireinfo/processors.html \
+       src/templates/fireinfo/profile.html \
+       src/templates/fireinfo/releases.html \
+       src/templates/fireinfo/vendor.html \
+       src/templates/fireinfo/vendors.html
+
+templates_fireinfodir = $(templatesdir)/fireinfo
+
+templates_fireinfo_modules_DATA = \
+       src/templates/fireinfo/modules/table-devices-and-groups.html \
+       src/templates/fireinfo/modules/table-devices.html
+
+templates_fireinfo_modulesdir = $(templates_fireinfodir)/modules
+
 templates_location_DATA = \
+       src/templates/location/base.html \
+       src/templates/location/blacklists.html \
+       src/templates/location/how-to-use.html \
+       src/templates/location/index.html \
        src/templates/location/lookup.html
 
 templates_locationdir = $(templatesdir)/location
 
+templates_mirrors_DATA = \
+       src/templates/mirrors/index.html \
+       src/templates/mirrors/mirror.html
+
+templates_mirrorsdir = $(templatesdir)/mirrors
+
 templates_modules_DATA = \
-       src/templates/modules/map.html
+       src/templates/modules/map.html \
+       src/templates/modules/progress-bar.html
 
 templates_modulesdir = $(templatesdir)/modules
 
+templates_netboot_DATA = \
+       src/templates/netboot/menu.cfg \
+       src/templates/netboot/menu-config.cfg \
+       src/templates/netboot/menu-header.cfg \
+       src/templates/netboot/menu-separator.cfg \
+       src/templates/netboot/premenu.cfg
+
+templates_netbootdir = $(templatesdir)/netboot
+
 templates_newsletter_DATA = \
        src/templates/newsletter/subscribed.html
 
 templates_newsletterdir = $(templatesdir)/newsletter
 
+templates_nopaste_DATA = \
+       src/templates/nopaste/create.html \
+       src/templates/nopaste/view.html
+
+templates_nopastedir = $(templatesdir)/nopaste
+
+templates_nopaste_modules_DATA = \
+       src/templates/nopaste/modules/code.html
+
+templates_nopaste_modulesdir = $(templates_nopastedir)/modules
+
 templates_people_DATA = \
+       src/templates/people/base.html \
        src/templates/people/conferences.html \
        src/templates/people/call.html \
        src/templates/people/calls.html \
@@ -159,17 +234,24 @@ templates_people_DATA = \
        src/templates/people/search.html \
        src/templates/people/sip.html \
        src/templates/people/user.html \
-       src/templates/people/user-base.html \
        src/templates/people/user-edit.html \
        src/templates/people/users.html
 
 templates_peopledir = $(templatesdir)/people
 
+templates_people_messages_DATA = \
+       src/templates/people/messages/new-account.txt
+
+templates_people_messagesdir = $(templates_peopledir)/messages
+
 templates_people_modules_DATA = \
        src/templates/people/modules/accounts-list.html \
+       src/templates/people/modules/accounts-new.html \
        src/templates/people/modules/cdr.html \
        src/templates/people/modules/channels.html \
        src/templates/people/modules/mos.html \
+       src/templates/people/modules/password.html \
+       src/templates/people/modules/password.js \
        src/templates/people/modules/registrations.html \
        src/templates/people/modules/sip-status.html
 
@@ -186,22 +268,56 @@ templates_people_ssh_keysdir = $(templates_peopledir)/ssh-keys
 
 templates_static_DATA = \
        src/templates/static/blocked.html \
-       src/templates/static/chat.html \
        src/templates/static/features.html \
        src/templates/static/legal.html \
        src/templates/static/support.html
 
 templates_staticdir = $(templatesdir)/static
 
+templates_wiki_DATA = \
+       src/templates/wiki/404.html \
+       src/templates/wiki/base.html \
+       src/templates/wiki/confirm-delete.html \
+       src/templates/wiki/confirm-restore.html \
+       src/templates/wiki/diff.html \
+       src/templates/wiki/edit.html \
+       src/templates/wiki/page.html \
+       src/templates/wiki/recent-changes.html \
+       src/templates/wiki/revisions.html \
+       src/templates/wiki/search-results.html \
+       src/templates/wiki/watchlist.html
+
+templates_wikidir = $(templatesdir)/wiki
+
+templates_wiki_files_DATA = \
+       src/templates/wiki/files/detail.html \
+       src/templates/wiki/files/index.html
+
+templates_wiki_filesdir = $(templates_wikidir)/files
+
+templates_wiki_messages_DATA = \
+       src/templates/wiki/messages/page-changed.txt
+
+templates_wiki_messagesdir = $(templates_wikidir)/messages
+
+templates_wiki_modules_DATA = \
+       src/templates/wiki/modules/diff.html \
+       src/templates/wiki/modules/list.html \
+       src/templates/wiki/modules/navbar.html
+
+templates_wiki_modulesdir = $(templates_wikidir)/modules
+
 # ------------------------------------------------------------------------------
 
 SCSS_FILES = \
        src/scss/style.scss \
+       src/scss/_code-highlighting.scss \
        src/scss/_fonts.scss \
        src/scss/_icons.scss \
        src/scss/_variables.scss
 
 EXTRA_DIST += \
+       src/scss/listing.scss \
        src/templates/messages/main.scss
 
 CLEANFILES += \
@@ -210,9 +326,13 @@ CLEANFILES += \
 static_DATA = \
        src/static/favicon.ico \
        src/static/robots.txt \
+       src/scss/fonts.css \
+       src/scss/listing.css \
        src/scss/main.css
 
 CLEANFILES += \
+       src/scss/fonts.css \
+       src/scss/listing.css \
        src/scss/main.css
 
 EXTRA_DIST += \
@@ -220,6 +340,535 @@ EXTRA_DIST += \
 
 staticdir = $(datadir)/static
 
+static_css_DATA = \
+       src/static/css/prettify.css
+
+static_cssdir = $(staticdir)/css
+
+static_flagsdir = $(staticdir)/flags
+
+static_flags_1x1_DATA = \
+       src/flag-icons/flags/1x1/ad.svg \
+       src/flag-icons/flags/1x1/ae.svg \
+       src/flag-icons/flags/1x1/af.svg \
+       src/flag-icons/flags/1x1/ag.svg \
+       src/flag-icons/flags/1x1/ai.svg \
+       src/flag-icons/flags/1x1/al.svg \
+       src/flag-icons/flags/1x1/am.svg \
+       src/flag-icons/flags/1x1/ao.svg \
+       src/flag-icons/flags/1x1/aq.svg \
+       src/flag-icons/flags/1x1/ar.svg \
+       src/flag-icons/flags/1x1/as.svg \
+       src/flag-icons/flags/1x1/at.svg \
+       src/flag-icons/flags/1x1/au.svg \
+       src/flag-icons/flags/1x1/aw.svg \
+       src/flag-icons/flags/1x1/ax.svg \
+       src/flag-icons/flags/1x1/az.svg \
+       src/flag-icons/flags/1x1/ba.svg \
+       src/flag-icons/flags/1x1/bb.svg \
+       src/flag-icons/flags/1x1/bd.svg \
+       src/flag-icons/flags/1x1/be.svg \
+       src/flag-icons/flags/1x1/bf.svg \
+       src/flag-icons/flags/1x1/bg.svg \
+       src/flag-icons/flags/1x1/bh.svg \
+       src/flag-icons/flags/1x1/bi.svg \
+       src/flag-icons/flags/1x1/bj.svg \
+       src/flag-icons/flags/1x1/bl.svg \
+       src/flag-icons/flags/1x1/bm.svg \
+       src/flag-icons/flags/1x1/bn.svg \
+       src/flag-icons/flags/1x1/bo.svg \
+       src/flag-icons/flags/1x1/bq.svg \
+       src/flag-icons/flags/1x1/br.svg \
+       src/flag-icons/flags/1x1/bs.svg \
+       src/flag-icons/flags/1x1/bt.svg \
+       src/flag-icons/flags/1x1/bv.svg \
+       src/flag-icons/flags/1x1/bw.svg \
+       src/flag-icons/flags/1x1/by.svg \
+       src/flag-icons/flags/1x1/bz.svg \
+       src/flag-icons/flags/1x1/ca.svg \
+       src/flag-icons/flags/1x1/cc.svg \
+       src/flag-icons/flags/1x1/cd.svg \
+       src/flag-icons/flags/1x1/cf.svg \
+       src/flag-icons/flags/1x1/cg.svg \
+       src/flag-icons/flags/1x1/ch.svg \
+       src/flag-icons/flags/1x1/ci.svg \
+       src/flag-icons/flags/1x1/ck.svg \
+       src/flag-icons/flags/1x1/cl.svg \
+       src/flag-icons/flags/1x1/cm.svg \
+       src/flag-icons/flags/1x1/cn.svg \
+       src/flag-icons/flags/1x1/co.svg \
+       src/flag-icons/flags/1x1/cr.svg \
+       src/flag-icons/flags/1x1/cu.svg \
+       src/flag-icons/flags/1x1/cv.svg \
+       src/flag-icons/flags/1x1/cw.svg \
+       src/flag-icons/flags/1x1/cx.svg \
+       src/flag-icons/flags/1x1/cy.svg \
+       src/flag-icons/flags/1x1/cz.svg \
+       src/flag-icons/flags/1x1/de.svg \
+       src/flag-icons/flags/1x1/dj.svg \
+       src/flag-icons/flags/1x1/dk.svg \
+       src/flag-icons/flags/1x1/dm.svg \
+       src/flag-icons/flags/1x1/do.svg \
+       src/flag-icons/flags/1x1/dz.svg \
+       src/flag-icons/flags/1x1/ec.svg \
+       src/flag-icons/flags/1x1/ee.svg \
+       src/flag-icons/flags/1x1/eg.svg \
+       src/flag-icons/flags/1x1/eh.svg \
+       src/flag-icons/flags/1x1/er.svg \
+       src/flag-icons/flags/1x1/es-ct.svg \
+       src/flag-icons/flags/1x1/es.svg \
+       src/flag-icons/flags/1x1/et.svg \
+       src/flag-icons/flags/1x1/eu.svg \
+       src/flag-icons/flags/1x1/fi.svg \
+       src/flag-icons/flags/1x1/fj.svg \
+       src/flag-icons/flags/1x1/fk.svg \
+       src/flag-icons/flags/1x1/fm.svg \
+       src/flag-icons/flags/1x1/fo.svg \
+       src/flag-icons/flags/1x1/fr.svg \
+       src/flag-icons/flags/1x1/ga.svg \
+       src/flag-icons/flags/1x1/gb-eng.svg \
+       src/flag-icons/flags/1x1/gb-nir.svg \
+       src/flag-icons/flags/1x1/gb-sct.svg \
+       src/flag-icons/flags/1x1/gb.svg \
+       src/flag-icons/flags/1x1/gb-wls.svg \
+       src/flag-icons/flags/1x1/gd.svg \
+       src/flag-icons/flags/1x1/ge.svg \
+       src/flag-icons/flags/1x1/gf.svg \
+       src/flag-icons/flags/1x1/gg.svg \
+       src/flag-icons/flags/1x1/gh.svg \
+       src/flag-icons/flags/1x1/gi.svg \
+       src/flag-icons/flags/1x1/gl.svg \
+       src/flag-icons/flags/1x1/gm.svg \
+       src/flag-icons/flags/1x1/gn.svg \
+       src/flag-icons/flags/1x1/gp.svg \
+       src/flag-icons/flags/1x1/gq.svg \
+       src/flag-icons/flags/1x1/gr.svg \
+       src/flag-icons/flags/1x1/gs.svg \
+       src/flag-icons/flags/1x1/gt.svg \
+       src/flag-icons/flags/1x1/gu.svg \
+       src/flag-icons/flags/1x1/gw.svg \
+       src/flag-icons/flags/1x1/gy.svg \
+       src/flag-icons/flags/1x1/hk.svg \
+       src/flag-icons/flags/1x1/hm.svg \
+       src/flag-icons/flags/1x1/hn.svg \
+       src/flag-icons/flags/1x1/hr.svg \
+       src/flag-icons/flags/1x1/ht.svg \
+       src/flag-icons/flags/1x1/hu.svg \
+       src/flag-icons/flags/1x1/id.svg \
+       src/flag-icons/flags/1x1/ie.svg \
+       src/flag-icons/flags/1x1/il.svg \
+       src/flag-icons/flags/1x1/im.svg \
+       src/flag-icons/flags/1x1/in.svg \
+       src/flag-icons/flags/1x1/io.svg \
+       src/flag-icons/flags/1x1/iq.svg \
+       src/flag-icons/flags/1x1/ir.svg \
+       src/flag-icons/flags/1x1/is.svg \
+       src/flag-icons/flags/1x1/it.svg \
+       src/flag-icons/flags/1x1/je.svg \
+       src/flag-icons/flags/1x1/jm.svg \
+       src/flag-icons/flags/1x1/jo.svg \
+       src/flag-icons/flags/1x1/jp.svg \
+       src/flag-icons/flags/1x1/ke.svg \
+       src/flag-icons/flags/1x1/kg.svg \
+       src/flag-icons/flags/1x1/kh.svg \
+       src/flag-icons/flags/1x1/ki.svg \
+       src/flag-icons/flags/1x1/km.svg \
+       src/flag-icons/flags/1x1/kn.svg \
+       src/flag-icons/flags/1x1/kp.svg \
+       src/flag-icons/flags/1x1/kr.svg \
+       src/flag-icons/flags/1x1/kw.svg \
+       src/flag-icons/flags/1x1/ky.svg \
+       src/flag-icons/flags/1x1/kz.svg \
+       src/flag-icons/flags/1x1/la.svg \
+       src/flag-icons/flags/1x1/lb.svg \
+       src/flag-icons/flags/1x1/lc.svg \
+       src/flag-icons/flags/1x1/li.svg \
+       src/flag-icons/flags/1x1/lk.svg \
+       src/flag-icons/flags/1x1/lr.svg \
+       src/flag-icons/flags/1x1/ls.svg \
+       src/flag-icons/flags/1x1/lt.svg \
+       src/flag-icons/flags/1x1/lu.svg \
+       src/flag-icons/flags/1x1/lv.svg \
+       src/flag-icons/flags/1x1/ly.svg \
+       src/flag-icons/flags/1x1/ma.svg \
+       src/flag-icons/flags/1x1/mc.svg \
+       src/flag-icons/flags/1x1/md.svg \
+       src/flag-icons/flags/1x1/me.svg \
+       src/flag-icons/flags/1x1/mf.svg \
+       src/flag-icons/flags/1x1/mg.svg \
+       src/flag-icons/flags/1x1/mh.svg \
+       src/flag-icons/flags/1x1/mk.svg \
+       src/flag-icons/flags/1x1/ml.svg \
+       src/flag-icons/flags/1x1/mm.svg \
+       src/flag-icons/flags/1x1/mn.svg \
+       src/flag-icons/flags/1x1/mo.svg \
+       src/flag-icons/flags/1x1/mp.svg \
+       src/flag-icons/flags/1x1/mq.svg \
+       src/flag-icons/flags/1x1/mr.svg \
+       src/flag-icons/flags/1x1/ms.svg \
+       src/flag-icons/flags/1x1/mt.svg \
+       src/flag-icons/flags/1x1/mu.svg \
+       src/flag-icons/flags/1x1/mv.svg \
+       src/flag-icons/flags/1x1/mw.svg \
+       src/flag-icons/flags/1x1/mx.svg \
+       src/flag-icons/flags/1x1/my.svg \
+       src/flag-icons/flags/1x1/mz.svg \
+       src/flag-icons/flags/1x1/na.svg \
+       src/flag-icons/flags/1x1/nc.svg \
+       src/flag-icons/flags/1x1/ne.svg \
+       src/flag-icons/flags/1x1/nf.svg \
+       src/flag-icons/flags/1x1/ng.svg \
+       src/flag-icons/flags/1x1/ni.svg \
+       src/flag-icons/flags/1x1/nl.svg \
+       src/flag-icons/flags/1x1/no.svg \
+       src/flag-icons/flags/1x1/np.svg \
+       src/flag-icons/flags/1x1/nr.svg \
+       src/flag-icons/flags/1x1/nu.svg \
+       src/flag-icons/flags/1x1/nz.svg \
+       src/flag-icons/flags/1x1/om.svg \
+       src/flag-icons/flags/1x1/pa.svg \
+       src/flag-icons/flags/1x1/pe.svg \
+       src/flag-icons/flags/1x1/pf.svg \
+       src/flag-icons/flags/1x1/pg.svg \
+       src/flag-icons/flags/1x1/ph.svg \
+       src/flag-icons/flags/1x1/pk.svg \
+       src/flag-icons/flags/1x1/pl.svg \
+       src/flag-icons/flags/1x1/pm.svg \
+       src/flag-icons/flags/1x1/pn.svg \
+       src/flag-icons/flags/1x1/pr.svg \
+       src/flag-icons/flags/1x1/ps.svg \
+       src/flag-icons/flags/1x1/pt.svg \
+       src/flag-icons/flags/1x1/pw.svg \
+       src/flag-icons/flags/1x1/py.svg \
+       src/flag-icons/flags/1x1/qa.svg \
+       src/flag-icons/flags/1x1/re.svg \
+       src/flag-icons/flags/1x1/ro.svg \
+       src/flag-icons/flags/1x1/rs.svg \
+       src/flag-icons/flags/1x1/ru.svg \
+       src/flag-icons/flags/1x1/rw.svg \
+       src/flag-icons/flags/1x1/sa.svg \
+       src/flag-icons/flags/1x1/sb.svg \
+       src/flag-icons/flags/1x1/sc.svg \
+       src/flag-icons/flags/1x1/sd.svg \
+       src/flag-icons/flags/1x1/se.svg \
+       src/flag-icons/flags/1x1/sg.svg \
+       src/flag-icons/flags/1x1/sh.svg \
+       src/flag-icons/flags/1x1/si.svg \
+       src/flag-icons/flags/1x1/sj.svg \
+       src/flag-icons/flags/1x1/sk.svg \
+       src/flag-icons/flags/1x1/sl.svg \
+       src/flag-icons/flags/1x1/sm.svg \
+       src/flag-icons/flags/1x1/sn.svg \
+       src/flag-icons/flags/1x1/so.svg \
+       src/flag-icons/flags/1x1/sr.svg \
+       src/flag-icons/flags/1x1/ss.svg \
+       src/flag-icons/flags/1x1/st.svg \
+       src/flag-icons/flags/1x1/sv.svg \
+       src/flag-icons/flags/1x1/sx.svg \
+       src/flag-icons/flags/1x1/sy.svg \
+       src/flag-icons/flags/1x1/sz.svg \
+       src/flag-icons/flags/1x1/tc.svg \
+       src/flag-icons/flags/1x1/td.svg \
+       src/flag-icons/flags/1x1/tf.svg \
+       src/flag-icons/flags/1x1/tg.svg \
+       src/flag-icons/flags/1x1/th.svg \
+       src/flag-icons/flags/1x1/tj.svg \
+       src/flag-icons/flags/1x1/tk.svg \
+       src/flag-icons/flags/1x1/tl.svg \
+       src/flag-icons/flags/1x1/tm.svg \
+       src/flag-icons/flags/1x1/tn.svg \
+       src/flag-icons/flags/1x1/to.svg \
+       src/flag-icons/flags/1x1/tr.svg \
+       src/flag-icons/flags/1x1/tt.svg \
+       src/flag-icons/flags/1x1/tv.svg \
+       src/flag-icons/flags/1x1/tw.svg \
+       src/flag-icons/flags/1x1/tz.svg \
+       src/flag-icons/flags/1x1/ua.svg \
+       src/flag-icons/flags/1x1/ug.svg \
+       src/flag-icons/flags/1x1/um.svg \
+       src/flag-icons/flags/1x1/un.svg \
+       src/flag-icons/flags/1x1/us.svg \
+       src/flag-icons/flags/1x1/uy.svg \
+       src/flag-icons/flags/1x1/uz.svg \
+       src/flag-icons/flags/1x1/va.svg \
+       src/flag-icons/flags/1x1/vc.svg \
+       src/flag-icons/flags/1x1/ve.svg \
+       src/flag-icons/flags/1x1/vg.svg \
+       src/flag-icons/flags/1x1/vi.svg \
+       src/flag-icons/flags/1x1/vn.svg \
+       src/flag-icons/flags/1x1/vu.svg \
+       src/flag-icons/flags/1x1/wf.svg \
+       src/flag-icons/flags/1x1/ws.svg \
+       src/flag-icons/flags/1x1/xk.svg \
+       src/flag-icons/flags/1x1/ye.svg \
+       src/flag-icons/flags/1x1/yt.svg \
+       src/flag-icons/flags/1x1/za.svg \
+       src/flag-icons/flags/1x1/zm.svg \
+       src/flag-icons/flags/1x1/zw.svg
+
+static_flags_1x1dir = $(static_flagsdir)/1x1
+
+static_flags_4x3_DATA = \
+       src/flag-icons/flags/4x3/ad.svg \
+       src/flag-icons/flags/4x3/ae.svg \
+       src/flag-icons/flags/4x3/af.svg \
+       src/flag-icons/flags/4x3/ag.svg \
+       src/flag-icons/flags/4x3/ai.svg \
+       src/flag-icons/flags/4x3/al.svg \
+       src/flag-icons/flags/4x3/am.svg \
+       src/flag-icons/flags/4x3/ao.svg \
+       src/flag-icons/flags/4x3/aq.svg \
+       src/flag-icons/flags/4x3/ar.svg \
+       src/flag-icons/flags/4x3/as.svg \
+       src/flag-icons/flags/4x3/at.svg \
+       src/flag-icons/flags/4x3/au.svg \
+       src/flag-icons/flags/4x3/aw.svg \
+       src/flag-icons/flags/4x3/ax.svg \
+       src/flag-icons/flags/4x3/az.svg \
+       src/flag-icons/flags/4x3/ba.svg \
+       src/flag-icons/flags/4x3/bb.svg \
+       src/flag-icons/flags/4x3/bd.svg \
+       src/flag-icons/flags/4x3/be.svg \
+       src/flag-icons/flags/4x3/bf.svg \
+       src/flag-icons/flags/4x3/bg.svg \
+       src/flag-icons/flags/4x3/bh.svg \
+       src/flag-icons/flags/4x3/bi.svg \
+       src/flag-icons/flags/4x3/bj.svg \
+       src/flag-icons/flags/4x3/bl.svg \
+       src/flag-icons/flags/4x3/bm.svg \
+       src/flag-icons/flags/4x3/bn.svg \
+       src/flag-icons/flags/4x3/bo.svg \
+       src/flag-icons/flags/4x3/bq.svg \
+       src/flag-icons/flags/4x3/br.svg \
+       src/flag-icons/flags/4x3/bs.svg \
+       src/flag-icons/flags/4x3/bt.svg \
+       src/flag-icons/flags/4x3/bv.svg \
+       src/flag-icons/flags/4x3/bw.svg \
+       src/flag-icons/flags/4x3/by.svg \
+       src/flag-icons/flags/4x3/bz.svg \
+       src/flag-icons/flags/4x3/ca.svg \
+       src/flag-icons/flags/4x3/cc.svg \
+       src/flag-icons/flags/4x3/cd.svg \
+       src/flag-icons/flags/4x3/cf.svg \
+       src/flag-icons/flags/4x3/cg.svg \
+       src/flag-icons/flags/4x3/ch.svg \
+       src/flag-icons/flags/4x3/ci.svg \
+       src/flag-icons/flags/4x3/ck.svg \
+       src/flag-icons/flags/4x3/cl.svg \
+       src/flag-icons/flags/4x3/cm.svg \
+       src/flag-icons/flags/4x3/cn.svg \
+       src/flag-icons/flags/4x3/co.svg \
+       src/flag-icons/flags/4x3/cr.svg \
+       src/flag-icons/flags/4x3/cu.svg \
+       src/flag-icons/flags/4x3/cv.svg \
+       src/flag-icons/flags/4x3/cw.svg \
+       src/flag-icons/flags/4x3/cx.svg \
+       src/flag-icons/flags/4x3/cy.svg \
+       src/flag-icons/flags/4x3/cz.svg \
+       src/flag-icons/flags/4x3/de.svg \
+       src/flag-icons/flags/4x3/dj.svg \
+       src/flag-icons/flags/4x3/dk.svg \
+       src/flag-icons/flags/4x3/dm.svg \
+       src/flag-icons/flags/4x3/do.svg \
+       src/flag-icons/flags/4x3/dz.svg \
+       src/flag-icons/flags/4x3/ec.svg \
+       src/flag-icons/flags/4x3/ee.svg \
+       src/flag-icons/flags/4x3/eg.svg \
+       src/flag-icons/flags/4x3/eh.svg \
+       src/flag-icons/flags/4x3/er.svg \
+       src/flag-icons/flags/4x3/es-ct.svg \
+       src/flag-icons/flags/4x3/es.svg \
+       src/flag-icons/flags/4x3/et.svg \
+       src/flag-icons/flags/4x3/eu.svg \
+       src/flag-icons/flags/4x3/fi.svg \
+       src/flag-icons/flags/4x3/fj.svg \
+       src/flag-icons/flags/4x3/fk.svg \
+       src/flag-icons/flags/4x3/fm.svg \
+       src/flag-icons/flags/4x3/fo.svg \
+       src/flag-icons/flags/4x3/fr.svg \
+       src/flag-icons/flags/4x3/ga.svg \
+       src/flag-icons/flags/4x3/gb-eng.svg \
+       src/flag-icons/flags/4x3/gb-nir.svg \
+       src/flag-icons/flags/4x3/gb-sct.svg \
+       src/flag-icons/flags/4x3/gb.svg \
+       src/flag-icons/flags/4x3/gb-wls.svg \
+       src/flag-icons/flags/4x3/gd.svg \
+       src/flag-icons/flags/4x3/ge.svg \
+       src/flag-icons/flags/4x3/gf.svg \
+       src/flag-icons/flags/4x3/gg.svg \
+       src/flag-icons/flags/4x3/gh.svg \
+       src/flag-icons/flags/4x3/gi.svg \
+       src/flag-icons/flags/4x3/gl.svg \
+       src/flag-icons/flags/4x3/gm.svg \
+       src/flag-icons/flags/4x3/gn.svg \
+       src/flag-icons/flags/4x3/gp.svg \
+       src/flag-icons/flags/4x3/gq.svg \
+       src/flag-icons/flags/4x3/gr.svg \
+       src/flag-icons/flags/4x3/gs.svg \
+       src/flag-icons/flags/4x3/gt.svg \
+       src/flag-icons/flags/4x3/gu.svg \
+       src/flag-icons/flags/4x3/gw.svg \
+       src/flag-icons/flags/4x3/gy.svg \
+       src/flag-icons/flags/4x3/hk.svg \
+       src/flag-icons/flags/4x3/hm.svg \
+       src/flag-icons/flags/4x3/hn.svg \
+       src/flag-icons/flags/4x3/hr.svg \
+       src/flag-icons/flags/4x3/ht.svg \
+       src/flag-icons/flags/4x3/hu.svg \
+       src/flag-icons/flags/4x3/id.svg \
+       src/flag-icons/flags/4x3/ie.svg \
+       src/flag-icons/flags/4x3/il.svg \
+       src/flag-icons/flags/4x3/im.svg \
+       src/flag-icons/flags/4x3/in.svg \
+       src/flag-icons/flags/4x3/io.svg \
+       src/flag-icons/flags/4x3/iq.svg \
+       src/flag-icons/flags/4x3/ir.svg \
+       src/flag-icons/flags/4x3/is.svg \
+       src/flag-icons/flags/4x3/it.svg \
+       src/flag-icons/flags/4x3/je.svg \
+       src/flag-icons/flags/4x3/jm.svg \
+       src/flag-icons/flags/4x3/jo.svg \
+       src/flag-icons/flags/4x3/jp.svg \
+       src/flag-icons/flags/4x3/ke.svg \
+       src/flag-icons/flags/4x3/kg.svg \
+       src/flag-icons/flags/4x3/kh.svg \
+       src/flag-icons/flags/4x3/ki.svg \
+       src/flag-icons/flags/4x3/km.svg \
+       src/flag-icons/flags/4x3/kn.svg \
+       src/flag-icons/flags/4x3/kp.svg \
+       src/flag-icons/flags/4x3/kr.svg \
+       src/flag-icons/flags/4x3/kw.svg \
+       src/flag-icons/flags/4x3/ky.svg \
+       src/flag-icons/flags/4x3/kz.svg \
+       src/flag-icons/flags/4x3/la.svg \
+       src/flag-icons/flags/4x3/lb.svg \
+       src/flag-icons/flags/4x3/lc.svg \
+       src/flag-icons/flags/4x3/li.svg \
+       src/flag-icons/flags/4x3/lk.svg \
+       src/flag-icons/flags/4x3/lr.svg \
+       src/flag-icons/flags/4x3/ls.svg \
+       src/flag-icons/flags/4x3/lt.svg \
+       src/flag-icons/flags/4x3/lu.svg \
+       src/flag-icons/flags/4x3/lv.svg \
+       src/flag-icons/flags/4x3/ly.svg \
+       src/flag-icons/flags/4x3/ma.svg \
+       src/flag-icons/flags/4x3/mc.svg \
+       src/flag-icons/flags/4x3/md.svg \
+       src/flag-icons/flags/4x3/me.svg \
+       src/flag-icons/flags/4x3/mf.svg \
+       src/flag-icons/flags/4x3/mg.svg \
+       src/flag-icons/flags/4x3/mh.svg \
+       src/flag-icons/flags/4x3/mk.svg \
+       src/flag-icons/flags/4x3/ml.svg \
+       src/flag-icons/flags/4x3/mm.svg \
+       src/flag-icons/flags/4x3/mn.svg \
+       src/flag-icons/flags/4x3/mo.svg \
+       src/flag-icons/flags/4x3/mp.svg \
+       src/flag-icons/flags/4x3/mq.svg \
+       src/flag-icons/flags/4x3/mr.svg \
+       src/flag-icons/flags/4x3/ms.svg \
+       src/flag-icons/flags/4x3/mt.svg \
+       src/flag-icons/flags/4x3/mu.svg \
+       src/flag-icons/flags/4x3/mv.svg \
+       src/flag-icons/flags/4x3/mw.svg \
+       src/flag-icons/flags/4x3/mx.svg \
+       src/flag-icons/flags/4x3/my.svg \
+       src/flag-icons/flags/4x3/mz.svg \
+       src/flag-icons/flags/4x3/na.svg \
+       src/flag-icons/flags/4x3/nc.svg \
+       src/flag-icons/flags/4x3/ne.svg \
+       src/flag-icons/flags/4x3/nf.svg \
+       src/flag-icons/flags/4x3/ng.svg \
+       src/flag-icons/flags/4x3/ni.svg \
+       src/flag-icons/flags/4x3/nl.svg \
+       src/flag-icons/flags/4x3/no.svg \
+       src/flag-icons/flags/4x3/np.svg \
+       src/flag-icons/flags/4x3/nr.svg \
+       src/flag-icons/flags/4x3/nu.svg \
+       src/flag-icons/flags/4x3/nz.svg \
+       src/flag-icons/flags/4x3/om.svg \
+       src/flag-icons/flags/4x3/pa.svg \
+       src/flag-icons/flags/4x3/pe.svg \
+       src/flag-icons/flags/4x3/pf.svg \
+       src/flag-icons/flags/4x3/pg.svg \
+       src/flag-icons/flags/4x3/ph.svg \
+       src/flag-icons/flags/4x3/pk.svg \
+       src/flag-icons/flags/4x3/pl.svg \
+       src/flag-icons/flags/4x3/pm.svg \
+       src/flag-icons/flags/4x3/pn.svg \
+       src/flag-icons/flags/4x3/pr.svg \
+       src/flag-icons/flags/4x3/ps.svg \
+       src/flag-icons/flags/4x3/pt.svg \
+       src/flag-icons/flags/4x3/pw.svg \
+       src/flag-icons/flags/4x3/py.svg \
+       src/flag-icons/flags/4x3/qa.svg \
+       src/flag-icons/flags/4x3/re.svg \
+       src/flag-icons/flags/4x3/ro.svg \
+       src/flag-icons/flags/4x3/rs.svg \
+       src/flag-icons/flags/4x3/ru.svg \
+       src/flag-icons/flags/4x3/rw.svg \
+       src/flag-icons/flags/4x3/sa.svg \
+       src/flag-icons/flags/4x3/sb.svg \
+       src/flag-icons/flags/4x3/sc.svg \
+       src/flag-icons/flags/4x3/sd.svg \
+       src/flag-icons/flags/4x3/se.svg \
+       src/flag-icons/flags/4x3/sg.svg \
+       src/flag-icons/flags/4x3/sh.svg \
+       src/flag-icons/flags/4x3/si.svg \
+       src/flag-icons/flags/4x3/sj.svg \
+       src/flag-icons/flags/4x3/sk.svg \
+       src/flag-icons/flags/4x3/sl.svg \
+       src/flag-icons/flags/4x3/sm.svg \
+       src/flag-icons/flags/4x3/sn.svg \
+       src/flag-icons/flags/4x3/so.svg \
+       src/flag-icons/flags/4x3/sr.svg \
+       src/flag-icons/flags/4x3/ss.svg \
+       src/flag-icons/flags/4x3/st.svg \
+       src/flag-icons/flags/4x3/sv.svg \
+       src/flag-icons/flags/4x3/sx.svg \
+       src/flag-icons/flags/4x3/sy.svg \
+       src/flag-icons/flags/4x3/sz.svg \
+       src/flag-icons/flags/4x3/tc.svg \
+       src/flag-icons/flags/4x3/td.svg \
+       src/flag-icons/flags/4x3/tf.svg \
+       src/flag-icons/flags/4x3/tg.svg \
+       src/flag-icons/flags/4x3/th.svg \
+       src/flag-icons/flags/4x3/tj.svg \
+       src/flag-icons/flags/4x3/tk.svg \
+       src/flag-icons/flags/4x3/tl.svg \
+       src/flag-icons/flags/4x3/tm.svg \
+       src/flag-icons/flags/4x3/tn.svg \
+       src/flag-icons/flags/4x3/to.svg \
+       src/flag-icons/flags/4x3/tr.svg \
+       src/flag-icons/flags/4x3/tt.svg \
+       src/flag-icons/flags/4x3/tv.svg \
+       src/flag-icons/flags/4x3/tw.svg \
+       src/flag-icons/flags/4x3/tz.svg \
+       src/flag-icons/flags/4x3/ua.svg \
+       src/flag-icons/flags/4x3/ug.svg \
+       src/flag-icons/flags/4x3/um.svg \
+       src/flag-icons/flags/4x3/un.svg \
+       src/flag-icons/flags/4x3/us.svg \
+       src/flag-icons/flags/4x3/uy.svg \
+       src/flag-icons/flags/4x3/uz.svg \
+       src/flag-icons/flags/4x3/va.svg \
+       src/flag-icons/flags/4x3/vc.svg \
+       src/flag-icons/flags/4x3/ve.svg \
+       src/flag-icons/flags/4x3/vg.svg \
+       src/flag-icons/flags/4x3/vi.svg \
+       src/flag-icons/flags/4x3/vn.svg \
+       src/flag-icons/flags/4x3/vu.svg \
+       src/flag-icons/flags/4x3/wf.svg \
+       src/flag-icons/flags/4x3/ws.svg \
+       src/flag-icons/flags/4x3/xk.svg \
+       src/flag-icons/flags/4x3/ye.svg \
+       src/flag-icons/flags/4x3/yt.svg \
+       src/flag-icons/flags/4x3/za.svg \
+       src/flag-icons/flags/4x3/zm.svg \
+       src/flag-icons/flags/4x3/zw.svg
+
+static_flags_4x3dir = $(static_flagsdir)/4x3
+
 static_fonts_DATA = \
        src/fonts/ofl/mukta/Mukta-Bold.ttf \
        src/fonts/ofl/mukta/Mukta-ExtraBold.ttf \
@@ -229,21 +878,21 @@ static_fonts_DATA = \
        src/fonts/ofl/mukta/Mukta-Regular.ttf \
        src/fonts/ofl/mukta/Mukta-SemiBold.ttf \
        \
-       src/font-awesome/web-fonts-with-css/webfonts/fa-brands-400.eot \
-       src/font-awesome/web-fonts-with-css/webfonts/fa-brands-400.svg \
-       src/font-awesome/web-fonts-with-css/webfonts/fa-brands-400.ttf \
-       src/font-awesome/web-fonts-with-css/webfonts/fa-brands-400.woff \
-       src/font-awesome/web-fonts-with-css/webfonts/fa-brands-400.woff2 \
-       src/font-awesome/web-fonts-with-css/webfonts/fa-regular-400.eot \
-       src/font-awesome/web-fonts-with-css/webfonts/fa-regular-400.svg \
-       src/font-awesome/web-fonts-with-css/webfonts/fa-regular-400.ttf \
-       src/font-awesome/web-fonts-with-css/webfonts/fa-regular-400.woff \
-       src/font-awesome/web-fonts-with-css/webfonts/fa-regular-400.woff2 \
-       src/font-awesome/web-fonts-with-css/webfonts/fa-solid-900.eot \
-       src/font-awesome/web-fonts-with-css/webfonts/fa-solid-900.svg \
-       src/font-awesome/web-fonts-with-css/webfonts/fa-solid-900.ttf \
-       src/font-awesome/web-fonts-with-css/webfonts/fa-solid-900.woff \
-       src/font-awesome/web-fonts-with-css/webfonts/fa-solid-900.woff2 \
+       src/font-awesome/webfonts/fa-brands-400.eot \
+       src/font-awesome/webfonts/fa-brands-400.svg \
+       src/font-awesome/webfonts/fa-brands-400.ttf \
+       src/font-awesome/webfonts/fa-brands-400.woff \
+       src/font-awesome/webfonts/fa-brands-400.woff2 \
+       src/font-awesome/webfonts/fa-regular-400.eot \
+       src/font-awesome/webfonts/fa-regular-400.svg \
+       src/font-awesome/webfonts/fa-regular-400.ttf \
+       src/font-awesome/webfonts/fa-regular-400.woff \
+       src/font-awesome/webfonts/fa-regular-400.woff2 \
+       src/font-awesome/webfonts/fa-solid-900.eot \
+       src/font-awesome/webfonts/fa-solid-900.svg \
+       src/font-awesome/webfonts/fa-solid-900.ttf \
+       src/font-awesome/webfonts/fa-solid-900.woff \
+       src/font-awesome/webfonts/fa-solid-900.woff2 \
        \
        src/payment-font/fonts/paymentfont-webfont.eot \
        src/payment-font/fonts/paymentfont-webfont.svg \
@@ -253,24 +902,23 @@ static_fonts_DATA = \
 static_fontsdir = $(staticdir)/fonts
 
 static_images_DATA = \
-       src/static/img/appliance-pro.png \
+       src/static/img/apple-touch-icon-192x192-precomposed.png \
+       src/static/img/apple-touch-icon-180x180-precomposed.png \
+       src/static/img/apple-touch-icon-152x152-precomposed.png \
+       src/static/img/apple-touch-icon-144x144-precomposed.png \
+       src/static/img/apple-touch-icon-120x120-precomposed.png \
+       src/static/img/apple-touch-icon-76x76-precomposed.png \
+       src/static/img/apple-touch-icon-72x72-precomposed.png \
+       src/static/img/apple-touch-icon-60x60-precomposed.png \
+       src/static/img/bash-logo.svg \
        src/static/img/default-avatar.jpg \
        src/static/img/ipfire-tux.png \
-       src/static/img/lightningwirelabs-logo.svg
+       src/static/img/iuse-not-found.png \
+       src/static/img/lightningwirelabs-logo.svg \
+       src/static/img/python-logo.svg
 
 static_imagesdir = $(staticdir)/img
 
-static_images_screenshots_DATA = \
-       src/static/img/screenshots/firewall-connections.png \
-       src/static/img/screenshots/firewall-host-groups.png \
-       src/static/img/screenshots/firewall-new-rule.png \
-       src/static/img/screenshots/firewall-rules.png \
-       src/static/img/screenshots/firewall-service-groups.png \
-       src/static/img/screenshots/pakfire-addon-services-1.png \
-       src/static/img/screenshots/pakfire-overview-1.png
-
-static_images_screenshotsdir = $(static_imagesdir)/screenshots
-
 static_images_tux_DATA = \
        src/static/img/tux/ipfire_tux_16x16.png \
        src/static/img/tux/ipfire_tux_20x20.png \
@@ -288,15 +936,31 @@ static_js_DATA = \
        src/bootstrap/dist/js/bootstrap.min.js \
        src/bootstrap/dist/js/bootstrap.min.js.map \
        \
+       src/static/js/editor.js \
        src/static/js/jquery-3.3.1.min.js \
-       src/static/js/popper.min.js
+       src/static/js/popper.min.js \
+       src/static/js/popper.min.js.map \
+       src/static/js/prettify.js \
+       \
+       src/static/js/zxcvbn/dist/zxcvbn.js \
+       src/static/js/zxcvbn/dist/zxcvbn.js.map
 
 static_jsdir = $(staticdir)/js
 
+static_netboot_DATA = \
+       src/static/netboot/boot.png \
+       src/static/netboot/boot.svg \
+       src/static/netboot/ipxe.kpxe \
+       src/static/netboot/menu.c32 \
+       src/static/netboot/pxelinux.0 \
+       src/static/netboot/vesamenu.c32
+
+static_netbootdir = $(staticdir)/netboot
+
 # ------------------------------------------------------------------------------
 
 dist_cron_DATA = \
-       src/crontab/ipfire.org
+       src/crontab/ipfire
 
 # ------------------------------------------------------------------------------
 
@@ -338,6 +1002,10 @@ SED_PROCESS = \
 %: %.in Makefile
        $(SED_PROCESS)
 
+%.css: _%.scss Makefile
+       $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
+               $(SASSC) --style compressed $< > $@
+
 %.css: %.scss Makefile
        $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
                $(SASSC) --style compressed $< > $@
@@ -345,3 +1013,24 @@ SED_PROCESS = \
 src/scss/main.css: $(SCSS_FILES) Makefile
        $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
                $(SASSC) --style compressed $< > $@
+
+src/static/favicon.ico: src/static/img/ipfire-tux.png Makefile
+       $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
+       $(CONVERT) $< -background none -flatten -density 1200 \
+               -resize 50% -define icon:auto-resize=64,48,32,16 $@
+
+src/static/img/apple-touch-icon-%-precomposed.png: src/static/img/ipfire-tux.png Makefile
+       $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
+       $(CONVERT) -background none -flatten -density 1200 -bordercolor none -border 5%x5% \
+               -resize $(patsubst src/static/img/apple-touch-icon-%-precomposed.png,%,$@) -gravity center \
+               -extent $(patsubst src/static/img/apple-touch-icon-%-precomposed.png,%,$@)x$(patsubst src/static/img/apple-touch-icon-%-precomposed.png,%,$@) \
+               $< $@
+
+.PHONY: update
+update:
+       for i in src/systemd/ipfire.org-webapp-*.service; do systemctl restart $$(basename $${i}) && sleep 5; done
+
+# Docker
+.PHONY: docker
+docker: Dockerfile
+       docker build -t "ipfire/webapp:$(PACKAGE_VERSION)" .