backend_PYTHON = \
src/backend/__init__.py \
src/backend/accounts.py \
+ src/backend/asterisk.py \
src/backend/base.py \
src/backend/blog.py \
+ src/backend/bugzilla.py \
src/backend/campaigns.py \
src/backend/countries.py \
src/backend/database.py \
src/backend/decorators.py \
src/backend/fireinfo.py \
- src/backend/geoip.py \
+ src/backend/httpclient.py \
src/backend/hwdata.py \
src/backend/iuse.py \
src/backend/memcached.py \
src/backend/nopaste.py \
src/backend/ratelimit.py \
src/backend/releases.py \
+ src/backend/resolver.py \
src/backend/settings.py \
- src/backend/talk.py \
- src/backend/tweets.py \
+ src/backend/toots.py \
src/backend/util.py \
src/backend/wiki.py \
src/backend/zeiterfassung.py
src/web/base.py \
src/web/blog.py \
src/web/boot.py \
+ src/web/docs.py \
src/web/donate.py \
- src/web/download.py \
+ src/web/downloads.py \
src/web/fireinfo.py \
src/web/handlers.py \
src/web/iuse.py \
src/web/location.py \
- src/web/mirrors.py \
src/web/nopaste.py \
src/web/people.py \
src/web/ui_modules.py \
+ src/web/users.py \
+ src/web/voip.py \
src/web/wiki.py
webdir = $(backenddir)/web
src/templates/auth/password-reset-initiation.html \
src/templates/auth/password-reset-successful.html \
src/templates/auth/register.html \
- src/templates/auth/register-spam.html \
src/templates/auth/register-success.html
templates_authdir = $(templatesdir)/auth
templates_auth_messagesdir = $(templates_authdir)/messages
+templates_auth_modules_DATA = \
+ src/templates/auth/modules/password.html \
+ src/templates/auth/modules/password.js
+
+templates_auth_modulesdir = $(templates_authdir)/modules
+
templates_blog_DATA = \
src/templates/blog/author.html \
src/templates/blog/base.html \
templates_blogdir = $(templatesdir)/blog
+templates_blog_messages_DATA = \
+ src/templates/blog/messages/announcement.html \
+ src/templates/blog/messages/announcement.txt
+
+templates_blog_messagesdir = $(templates_blogdir)/messages
+
templates_blog_modules_DATA = \
src/templates/blog/modules/history-navigation.html \
src/templates/blog/modules/list.html \
- src/templates/blog/modules/post.html \
- src/templates/blog/modules/posts.html
+ src/templates/blog/modules/post.html
templates_blog_modulesdir = $(templates_blogdir)/modules
src/templates/donate/messages/christmas-3.txt \
src/templates/donate/messages/christmas-4.html \
src/templates/donate/messages/christmas-4.txt \
- src/templates/donate/messages/christmas-5.html \
- src/templates/donate/messages/christmas-5.txt \
src/templates/donate/messages/convert-to-monthly.html \
src/templates/donate/messages/convert-to-monthly.txt
templates_donate_messagesdir = $(templates_donatedir)/messages
-templates_download_DATA = \
- src/templates/download/release.html
+templates_docs_DATA = \
+ src/templates/docs/404.html \
+ src/templates/docs/base.html \
+ src/templates/docs/confirm-restore.html \
+ src/templates/docs/diff.html \
+ src/templates/docs/page.html \
+ src/templates/docs/revisions.html
+
+templates_docsdir = $(templatesdir)/docs
+
+templates_docs_files_DATA = \
+ src/templates/docs/files/detail.html
-templates_downloaddir = $(templatesdir)/download
+templates_docs_filesdir = $(templates_docsdir)/files
+
+templates_docs_modules_DATA = \
+ src/templates/docs/modules/diff.html \
+ src/templates/docs/modules/header.html
+
+templates_docs_modulesdir = $(templates_docsdir)/modules
+
+templates_downloads_DATA = \
+ src/templates/downloads/mirrors.html \
+ src/templates/downloads/release.html \
+ src/templates/downloads/thank-you.html
+
+templates_downloadsdir = $(templatesdir)/downloads
templates_fireinfo_DATA = \
+ src/templates/fireinfo/admin.html \
src/templates/fireinfo/driver.html \
src/templates/fireinfo/index.html \
src/templates/fireinfo/i-use-1.png \
templates_location_DATA = \
src/templates/location/base.html \
src/templates/location/blacklists.html \
+ src/templates/location/download.html \
src/templates/location/how-to-use.html \
src/templates/location/index.html \
src/templates/location/lookup.html
templates_messagesdir = $(templatesdir)/messages
-templates_mirrors_DATA = \
- src/templates/mirrors/index.html \
- src/templates/mirrors/mirror.html
-
-templates_mirrorsdir = $(templatesdir)/mirrors
-
templates_modules_DATA = \
src/templates/modules/christmas-banner.html \
src/templates/modules/map.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 \
- src/templates/people/group.html \
- src/templates/people/groups.html \
src/templates/people/index.html \
- src/templates/people/passwd.html \
- src/templates/people/search.html \
- src/templates/people/sip.html \
- src/templates/people/stats.html \
src/templates/people/subscribed.html \
src/templates/people/unsubscribe.html \
- src/templates/people/unsubscribed.html \
- src/templates/people/user.html \
- src/templates/people/user-edit.html \
- src/templates/people/users.html
+ src/templates/people/unsubscribed.html
templates_peopledir = $(templatesdir)/people
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/agent.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
-
-templates_people_modulesdir = $(templates_peopledir)/modules
-
templates_static_DATA = \
- src/templates/static/blocked.html \
- src/templates/static/features.html \
+ src/templates/static/about.html \
src/templates/static/legal.html \
- src/templates/static/support.html
+ src/templates/static/help.html
templates_staticdir = $(templatesdir)/static
+templates_users_DATA = \
+ src/templates/users/delete.html \
+ src/templates/users/deleted.html \
+ src/templates/users/edit.html \
+ src/templates/users/index.html \
+ src/templates/users/passwd.html \
+ src/templates/users/show.html
+
+templates_usersdir = $(templatesdir)/users
+
+templates_users_groups_DATA = \
+ src/templates/users/groups/index.html \
+ src/templates/users/groups/show.html
+
+templates_users_groupsdir = $(templates_usersdir)/groups
+
+templates_users_modules_DATA = \
+ src/templates/users/modules/list.html
+
+templates_users_modulesdir = $(templates_usersdir)/modules
+
+templates_voip_DATA = \
+ src/templates/voip/index.html
+
+templates_voipdir = $(templatesdir)/voip
+
+templates_voip_modules_DATA = \
+ src/templates/voip/modules/conferences.html \
+ src/templates/voip/modules/outbound-registrations.html \
+ src/templates/voip/modules/queues.html \
+ src/templates/voip/modules/registrations.html
+
+templates_voip_modulesdir = $(templates_voipdir)/modules
+
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/tree.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_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
+ src/templates/wiki/modules/list.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
+SASS_FILES = \
+ src/sass/main.sass \
+ src/sass/_code-highlighting.sass \
+ src/sass/_fonts.sass \
+ src/sass/_icons.sass
EXTRA_DIST += \
- src/scss/listing.scss \
- src/templates/messages/main.scss
+ src/sass/listing.sass \
+ src/templates/messages/main.sass
CLEANFILES += \
src/templates/messages/main.css
static_DATA = \
src/static/favicon.ico \
src/static/robots.txt \
- src/scss/fonts.css \
- src/scss/listing.css \
- src/scss/main.css
+ src/sass/listing.css \
+ src/sass/main.css
CLEANFILES += \
- src/scss/fonts.css \
- src/scss/listing.css \
- src/scss/main.css
+ src/sass/listing.css \
+ src/sass/main.css
EXTRA_DIST += \
- $(SCSS_FILES)
+ $(SASS_FILES)
staticdir = $(datadir)/static
static_css_DATA = \
+ src/static/css/Control.Geocoder.css \
+ src/static/css/leaflet.css \
src/static/css/prettify.css
static_cssdir = $(staticdir)/css
static_flags_4x3dir = $(static_flagsdir)/4x3
static_fonts_DATA = \
- src/fonts/ofl/mukta/Mukta-Bold.ttf \
- src/fonts/ofl/mukta/Mukta-ExtraBold.ttf \
- src/fonts/ofl/mukta/Mukta-ExtraLight.ttf \
- src/fonts/ofl/mukta/Mukta-Light.ttf \
- src/fonts/ofl/mukta/Mukta-Medium.ttf \
- src/fonts/ofl/mukta/Mukta-Regular.ttf \
- src/fonts/ofl/mukta/Mukta-SemiBold.ttf \
+ src/fonts/ofl/prompt/Prompt-BlackItalic.ttf \
+ src/fonts/ofl/prompt/Prompt-Black.ttf \
+ src/fonts/ofl/prompt/Prompt-BoldItalic.ttf \
+ src/fonts/ofl/prompt/Prompt-Bold.ttf \
+ src/fonts/ofl/prompt/Prompt-ExtraBoldItalic.ttf \
+ src/fonts/ofl/prompt/Prompt-ExtraBold.ttf \
+ src/fonts/ofl/prompt/Prompt-ExtraLightItalic.ttf \
+ src/fonts/ofl/prompt/Prompt-ExtraLight.ttf \
+ src/fonts/ofl/prompt/Prompt-Italic.ttf \
+ src/fonts/ofl/prompt/Prompt-LightItalic.ttf \
+ src/fonts/ofl/prompt/Prompt-Light.ttf \
+ src/fonts/ofl/prompt/Prompt-MediumItalic.ttf \
+ src/fonts/ofl/prompt/Prompt-Medium.ttf \
+ src/fonts/ofl/prompt/Prompt-Regular.ttf \
+ src/fonts/ofl/prompt/Prompt-SemiBoldItalic.ttf \
+ src/fonts/ofl/prompt/Prompt-SemiBold.ttf \
+ src/fonts/ofl/prompt/Prompt-ThinItalic.ttf \
+ src/fonts/ofl/prompt/Prompt-Thin.ttf \
\
- 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 \
static_fontsdir = $(staticdir)/fonts
-static_images_DATA = \
+static_img_DATA = \
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-72x72-precomposed.png \
src/static/img/apple-touch-icon-60x60-precomposed.png \
src/static/img/bash-logo.svg \
+ src/static/img/debian-logo.svg \
src/static/img/default-avatar.jpg \
src/static/img/ipfire-tux.png \
src/static/img/iuse-not-found.png \
src/static/img/lightningwirelabs-logo.svg \
- src/static/img/python-logo.svg
+ src/static/img/python-logo.svg \
+ src/static/img/tor.svg
-static_imagesdir = $(staticdir)/img
+static_imgdir = $(staticdir)/img
static_images_tux_DATA = \
src/static/img/tux/ipfire_tux_16x16.png \
src/static/img/tux/ipfire_tux_420x420.png \
src/static/img/tux/ipfire_tux_512x512.png
-static_images_tuxdir = $(static_imagesdir)/tux
+static_images_tuxdir = $(static_imgdir)/tux
+
+static_images_DATA = \
+ src/static/images/marker-icon.png \
+ src/static/images/marker-icon-2x.png \
+ src/static/images/marker-shadow.png
+
+static_imagesdir = $(staticdir)/images
+
+EXTRA_DIST += \
+ src/static/videos/firewall.mp4
+
+CLEANFILES += \
+ $(static_videos_DATA)
+
+static_videos_DATA = \
+ src/static/videos/firewall.jpg \
+ src/static/videos/firewall@1920.av1.mp4 \
+ src/static/videos/firewall@1920.hevc.mp4 \
+ src/static/videos/firewall@1920.h264.mp4
+
+static_videosdir = $(staticdir)/videos
static_js_DATA = \
- src/bootstrap/dist/js/bootstrap.min.js \
- src/bootstrap/dist/js/bootstrap.min.js.map \
- \
+ src/static/js/Control.Geocoder.min.js \
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.map \
+ src/static/js/jquery-3.6.0.min.js \
+ src/static/js/leaflet.min.js \
+ src/static/js/maps.js \
src/static/js/prettify.js \
+ src/static/js/site.js \
\
src/static/js/zxcvbn/dist/zxcvbn.js \
src/static/js/zxcvbn/dist/zxcvbn.js.map
%: %.in Makefile
$(SED_PROCESS)
-%.css: _%.scss Makefile
+%.css: %.sass Makefile
$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
$(SASSC) --style compressed $< > $@
-%.css: %.scss Makefile
- $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
- $(SASSC) --style compressed $< > $@
-
-src/scss/main.css: $(SCSS_FILES) Makefile
+src/sass/main.css: $(SASS_FILES) Makefile
$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
$(SASSC) --style compressed $< > $@
-extent $(patsubst src/static/img/apple-touch-icon-%-precomposed.png,%,$@)x$(patsubst src/static/img/apple-touch-icon-%-precomposed.png,%,$@) \
$< $@
+# Video Stuff
+
+FFMPEG += \
+ -loglevel quiet
+
+# AV1
+src/static/videos/firewall@%.av1.mp4: src/static/videos/firewall.mp4
+ $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
+ $(FFMPEG) -y \
+ -i $^ \
+ -map_metadata -1 \
+ -an \
+ -c:v libsvtav1 \
+ -crf 31 \
+ -preset 5 \
+ -pix_fmt yuv420p \
+ -movflags +faststart \
+ -vf scale=$(patsubst src/static/videos/firewall@%.av1.mp4,%,$@):-2,fps=25 \
+ $@
+
+# HEVC
+src/static/videos/firewall@%.hevc.mp4: src/static/videos/firewall.mp4
+ $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
+ $(FFMPEG) -y \
+ -i $^ \
+ -map_metadata -1 \
+ -an \
+ -c:v libx265 \
+ -crf 25 \
+ -preset veryslow \
+ -pix_fmt yuv420p \
+ -movflags +faststart \
+ -tag:v hvc1 \
+ -vf scale=$(patsubst src/static/videos/firewall@%.hevc.mp4,%,$@):-2,fps=25 \
+ $@
+
+# H.264
+src/static/videos/firewall@%.h264.mp4: src/static/videos/firewall.mp4
+ $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
+ $(FFMPEG) -y \
+ -i $^ \
+ -map_metadata -1 \
+ -an \
+ -c:v libx264 \
+ -crf 27 \
+ -preset veryslow \
+ -profile:v main \
+ -pix_fmt yuv420p \
+ -movflags +faststart \
+ -vf scale=$(patsubst src/static/videos/firewall@%.h264.mp4,%,$@):-2,fps=25 \
+ $@
+
+# Cover image
+src/static/videos/firewall.jpg: src/static/videos/firewall.mp4
+ $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
+ $(FFMPEG) -y \
+ -i $^ \
+ -map_metadata -1 \
+ -qscale:v 1 \
+ -frames:v 1 \
+ -vf scale=1920:-2 \
+ $@
+
.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)" .