backend_PYTHON = \
src/backend/__init__.py \
src/backend/accounts.py \
+ src/backend/analytics.py \
src/backend/asterisk.py \
src/backend/base.py \
src/backend/blog.py \
src/backend/bugzilla.py \
+ src/backend/cache.py \
src/backend/campaigns.py \
src/backend/countries.py \
src/backend/database.py \
src/backend/httpclient.py \
src/backend/hwdata.py \
src/backend/iuse.py \
- src/backend/memcached.py \
+ src/backend/lists.py \
src/backend/messages.py \
src/backend/mirrors.py \
src/backend/misc.py \
web_PYTHON = \
src/web/__init__.py \
+ src/web/analytics.py \
src/web/auth.py \
src/web/base.py \
src/web/blog.py \
src/web/fireinfo.py \
src/web/handlers.py \
src/web/iuse.py \
+ src/web/lists.py \
src/web/location.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
+ src/web/voip.py
webdir = $(backenddir)/web
templatesdir = $(datadir)/templates
+templates_analytics_DATA = \
+ src/templates/analytics/docs.html \
+ src/templates/analytics/index.html
+
+templates_analyticsdir = $(templatesdir)/analytics
+
+templates_analytics_modules_DATA = \
+ src/templates/analytics/modules/summary.html
+
+templates_analytics_modulesdir = $(templates_analyticsdir)/modules
+
templates_auth_DATA = \
src/templates/auth/activate.html \
src/templates/auth/activated.html \
+ src/templates/auth/join.html \
+ src/templates/auth/join-success.html \
src/templates/auth/login.html \
src/templates/auth/password-reset.html \
src/templates/auth/password-reset-initiation.html \
- src/templates/auth/password-reset-successful.html \
- src/templates/auth/register.html \
- src/templates/auth/register-success.html
+ src/templates/auth/password-reset-successful.html
templates_authdir = $(templatesdir)/auth
templates_auth_messages_DATA = \
src/templates/auth/messages/donation-reminder.html \
src/templates/auth/messages/donation-reminder.txt \
+ src/templates/auth/messages/join.html \
+ src/templates/auth/messages/join.txt \
src/templates/auth/messages/password-reset.html \
src/templates/auth/messages/password-reset.txt \
src/templates/auth/messages/profile-setup.html \
src/templates/auth/messages/profile-setup.txt \
src/templates/auth/messages/profile-setup-2.html \
- src/templates/auth/messages/profile-setup-2.txt \
- src/templates/auth/messages/register.html \
- src/templates/auth/messages/register.txt
+ src/templates/auth/messages/profile-setup-2.txt
templates_auth_messagesdir = $(templates_authdir)/messages
templates_auth_modulesdir = $(templates_authdir)/modules
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/write.html \
src/templates/blog/year.html
templates_blogdir = $(templatesdir)/blog
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/list.html
templates_blog_modulesdir = $(templates_blogdir)/modules
templates_donate_messagesdir = $(templates_donatedir)/messages
templates_docs_DATA = \
+ src/templates/docs/404.html \
src/templates/docs/base.html \
+ src/templates/docs/confirm-delete.html \
src/templates/docs/confirm-restore.html \
src/templates/docs/diff.html \
+ src/templates/docs/edit.html \
src/templates/docs/page.html \
- src/templates/docs/revisions.html
+ src/templates/docs/recent-changes.html \
+ src/templates/docs/revisions.html \
+ src/templates/docs/search-results.html \
+ src/templates/docs/tree.html \
+ src/templates/docs/watchlist.html
templates_docsdir = $(templatesdir)/docs
+templates_docs_files_DATA = \
+ src/templates/docs/files/detail.html \
+ src/templates/docs/files/index.html
+
+templates_docs_filesdir = $(templates_docsdir)/files
+
templates_docs_modules_DATA = \
- src/templates/docs/modules/header.html
+ src/templates/docs/modules/diff.html \
+ src/templates/docs/modules/header.html \
+ src/templates/docs/modules/list.html
templates_docs_modulesdir = $(templates_docsdir)/modules
templates_downloads_DATA = \
+ src/templates/downloads/cloud.html \
src/templates/downloads/mirrors.html \
src/templates/downloads/release.html \
src/templates/downloads/thank-you.html
templates_fireinfo_modulesdir = $(templates_fireinfodir)/modules
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
+ src/templates/location/install.html \
+ src/templates/location/lookup.html \
+ src/templates/location/report-a-problem.html
templates_locationdir = $(templatesdir)/location
+templates_location_how_to_use_DATA = \
+ src/templates/location/how-to-use/cli.html \
+ src/templates/location/how-to-use/dns.html \
+ src/templates/location/how-to-use/index.html \
+ src/templates/location/how-to-use/python.html
+
+templates_location_how_to_usedir = $(templates_locationdir)/how-to-use
+
+templates_lists_DATA = \
+ src/templates/lists/index.html
+
+templates_listsdir = $(templatesdir)/lists
+
templates_messages_DATA = \
src/templates/messages/base.html \
src/templates/messages/base-promo.html \
+ src/templates/messages/fonts.css \
src/templates/messages/main.css
templates_messagesdir = $(templatesdir)/messages
templates_modules_DATA = \
- src/templates/modules/christmas-banner.html \
+ src/templates/modules/ipfire-logo.html \
src/templates/modules/map.html \
src/templates/modules/progress-bar.html
templates_nopaste_DATA = \
src/templates/nopaste/create.html \
+ src/templates/nopaste/upload.html \
src/templates/nopaste/view.html
templates_nopastedir = $(templatesdir)/nopaste
templates_nopaste_modulesdir = $(templates_nopastedir)/modules
-templates_people_DATA = \
- src/templates/people/index.html \
- src/templates/people/subscribed.html \
- src/templates/people/unsubscribe.html \
- src/templates/people/unsubscribed.html
-
-templates_peopledir = $(templatesdir)/people
-
templates_people_messages_DATA = \
src/templates/people/messages/new-account.txt
templates_static_DATA = \
src/templates/static/about.html \
src/templates/static/legal.html \
- src/templates/static/help.html
+ src/templates/static/help.html \
+ src/templates/static/partners.html \
+ src/templates/static/sitemap.html
templates_staticdir = $(templatesdir)/static
src/templates/users/edit.html \
src/templates/users/index.html \
src/templates/users/passwd.html \
- src/templates/users/show.html
+ src/templates/users/show.html \
+ src/templates/users/subscribe.html \
+ src/templates/users/subscribed.html \
+ src/templates/users/unsubscribe.html \
+ src/templates/users/unsubscribed.html
templates_usersdir = $(templatesdir)/users
templates_voip_modulesdir = $(templates_voipdir)/modules
-templates_wiki_DATA = \
- src/templates/wiki/404.html \
- src/templates/wiki/confirm-delete.html \
- src/templates/wiki/edit.html \
- src/templates/wiki/recent-changes.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_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
-
-templates_wiki_modulesdir = $(templates_wikidir)/modules
-
# ------------------------------------------------------------------------------
SASS_FILES = \
src/sass/main.sass \
src/sass/_code-highlighting.sass \
src/sass/_fonts.sass \
- src/sass/_icons.sass
+ src/sass/_icons.sass \
+ src/sass/_variables.sass
EXTRA_DIST += \
src/sass/listing.sass \
+ src/templates/messages/fonts.sass \
src/templates/messages/main.sass
CLEANFILES += \
+ src/templates/messages/fonts.css \
src/templates/messages/main.css
static_DATA = \
static_flags_4x3dir = $(static_flagsdir)/4x3
-static_fonts_DATA = \
- 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 \
+dist_static_fonts_DATA = \
+ src/static/fonts/prompt/Prompt-Black.ttf \
+ src/static/fonts/prompt/Prompt-BlackItalic.ttf \
+ src/static/fonts/prompt/Prompt-Bold.ttf \
+ src/static/fonts/prompt/Prompt-BoldItalic.ttf \
+ src/static/fonts/prompt/Prompt-ExtraBold.ttf \
+ src/static/fonts/prompt/Prompt-ExtraBoldItalic.ttf \
+ src/static/fonts/prompt/Prompt-ExtraLight.ttf \
+ src/static/fonts/prompt/Prompt-ExtraLightItalic.ttf \
+ src/static/fonts/prompt/Prompt-Italic.ttf \
+ src/static/fonts/prompt/Prompt-Light.ttf \
+ src/static/fonts/prompt/Prompt-LightItalic.ttf \
+ src/static/fonts/prompt/Prompt-Medium.ttf \
+ src/static/fonts/prompt/Prompt-MediumItalic.ttf \
+ src/static/fonts/prompt/Prompt-Regular.ttf \
+ src/static/fonts/prompt/Prompt-SemiBold.ttf \
+ src/static/fonts/prompt/Prompt-SemiBoldItalic.ttf \
+ src/static/fonts/prompt/Prompt-Thin.ttf \
+ src/static/fonts/prompt/Prompt-ThinItalic.ttf \
\
src/font-awesome/webfonts/fa-brands-400.ttf \
src/font-awesome/webfonts/fa-brands-400.woff2 \
src/payment-font/fonts/paymentfont-webfont.ttf \
src/payment-font/fonts/paymentfont-webfont.woff
+static_fonts_DATA = \
+ src/static/fonts/prompt/Prompt-Black.woff2 \
+ src/static/fonts/prompt/Prompt-BlackItalic.woff2 \
+ src/static/fonts/prompt/Prompt-Bold.woff2 \
+ src/static/fonts/prompt/Prompt-BoldItalic.woff2 \
+ src/static/fonts/prompt/Prompt-ExtraBold.woff2 \
+ src/static/fonts/prompt/Prompt-ExtraBoldItalic.woff2 \
+ src/static/fonts/prompt/Prompt-ExtraLight.woff2 \
+ src/static/fonts/prompt/Prompt-ExtraLightItalic.woff2 \
+ src/static/fonts/prompt/Prompt-Italic.woff2 \
+ src/static/fonts/prompt/Prompt-Light.woff2 \
+ src/static/fonts/prompt/Prompt-LightItalic.woff2 \
+ src/static/fonts/prompt/Prompt-Medium.woff2 \
+ src/static/fonts/prompt/Prompt-MediumItalic.woff2 \
+ src/static/fonts/prompt/Prompt-Regular.woff2 \
+ src/static/fonts/prompt/Prompt-SemiBold.woff2 \
+ src/static/fonts/prompt/Prompt-SemiBoldItalic.woff2 \
+ src/static/fonts/prompt/Prompt-Thin.woff2 \
+ src/static/fonts/prompt/Prompt-ThinItalic.woff2
+
static_fontsdir = $(staticdir)/fonts
+EXTRA_DIST += \
+ src/static/fonts/prompt/DESCRIPTION.en_us.html \
+ src/static/fonts/prompt/METADATA.pb \
+ src/static/fonts/prompt/OFL.txt
+
+CLEANFILES += \
+ $(static_fonts_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/bash-logo.svg \
src/static/img/debian-logo.svg \
src/static/img/default-avatar.jpg \
+ src/static/img/fdroid-logo.svg \
src/static/img/ipfire-tux.png \
src/static/img/iuse-not-found.png \
+ src/static/img/kyberio-logo.svg \
src/static/img/lightningwirelabs-logo.svg \
src/static/img/python-logo.svg \
src/static/img/tor.svg
static_imgdir = $(staticdir)/img
+# From https://www.pexels.com/photo/123-let-s-go-imaginary-text-704767/
+
+dist_static_img_auth_DATA = \
+ src/static/img/auth/join.jpg
+
+static_img_auth_DATA = \
+ src/static/img/auth/join@600.jpg
+
+CLEANFILES += \
+ src/static/img/auth/join@600.jpg
+
+static_img_authdir = $(static_imgdir)/auth
+
+static_img_downloadsdir = $(static_imgdir)/downloads
+
+dist_static_img_downloads_cloud_DATA = \
+ src/static/img/downloads/cloud/aws.svg \
+ src/static/img/downloads/cloud/exoscale.svg \
+ src/static/img/downloads/cloud/hetzner.svg
+
+static_img_downloads_clouddir = $(static_img_downloadsdir)/cloud
+
static_images_tux_DATA = \
src/static/img/tux/ipfire_tux_16x16.png \
src/static/img/tux/ipfire_tux_20x20.png \
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
+ src/static/videos/firewall@1920.h265.mp4 \
+ src/static/videos/firewall@1920.h264.mp4 \
+ src/static/videos/firewall@1920.vp9.mp4
static_videosdir = $(staticdir)/videos
# ------------------------------------------------------------------------------
+EXTRA_DIST += \
+ src/error-pages/Gemfile \
+ src/error-pages/Gemfile.lock \
+ src/error-pages/_config.yml \
+ src/error-pages/_layouts/error.html \
+ src/error-pages/assets/main.sass \
+ src/error-pages/500.markdown \
+ src/error-pages/502.markdown \
+ src/error-pages/503.markdown \
+ src/error-pages/504.markdown
+
+.PHONY: error-pages
+error-pages:
+ $(AM_V_GEN)cd src/error-pages && JEKYLL_ENV=production \
+ $(JEKYLL) build --quiet --incremental
+
+.PHONY: upload-error-pages
+upload-error-pages: error-pages
+ rsync --verbose --progress --recursive --delete -e "ssh -p 222" --exclude="feed.xml" \
+ src/error-pages/_site/ root@fw01.haj.ipfire.org:/etc/haproxy/errors/
+
+# ------------------------------------------------------------------------------
+
dist_cron_DATA = \
src/crontab/ipfire
-extent $(patsubst src/static/img/apple-touch-icon-%-precomposed.png,%,$@)x$(patsubst src/static/img/apple-touch-icon-%-precomposed.png,%,$@) \
$< $@
+# Resizes images for being used in messages which are 600px wide
+%@600.jpg: %.jpg
+ $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
+ $(CONVERT) -units PixelsPerInch $< -resize 600x -strip -quality 85 $@
+
+# Fonts
+
+%.woff2: %.ttf
+ $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
+ $(WOFF2_COMPRESS) $^ >/dev/null
+
# Video Stuff
-FFMPEG += \
- -loglevel quiet
+# Multi-threading options for faster encoding
+FFMPEG_MT = \
+ -row-mt 1 \
+ -threads $(shell getconf _NPROCESSORS_ONLN) \
+ -tile-columns 2
+
+# Enable to log less
+#FFMPEG += \
+# -loglevel quiet
# AV1
src/static/videos/firewall@%.av1.mp4: src/static/videos/firewall.mp4
-map_metadata -1 \
-an \
-c:v libsvtav1 \
+ -b:v 0 \
-crf 31 \
- -preset 5 \
+ -strict experimental \
+ -preset 3 \
-pix_fmt yuv420p \
-movflags +faststart \
- -vf scale=$(patsubst src/static/videos/firewall@%.av1.mp4,%,$@):-2,fps=25 \
+ -vf scale=$(patsubst src/static/videos/firewall@%.av1.mp4,%,$@):-2:flags=lanczos,fps=25 \
+ $(FFMPEG_MT) \
$@
-# HEVC
-src/static/videos/firewall@%.hevc.mp4: src/static/videos/firewall.mp4
+# H.256
+src/static/videos/firewall@%.h265.mp4: src/static/videos/firewall.mp4
$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
$(FFMPEG) -y \
-i $^ \
-map_metadata -1 \
-an \
-c:v libx265 \
- -crf 25 \
+ -b:v 0 \
+ -crf 27 \
-preset veryslow \
-pix_fmt yuv420p \
-movflags +faststart \
-tag:v hvc1 \
- -vf scale=$(patsubst src/static/videos/firewall@%.hevc.mp4,%,$@):-2,fps=25 \
+ -vf scale=$(patsubst src/static/videos/firewall@%.h265.mp4,%,$@):-2:flags=lanczos,fps=25 \
+ $(FFMPEG_MT) \
$@
# H.264
-map_metadata -1 \
-an \
-c:v libx264 \
+ -b:v 0 \
-crf 27 \
-preset veryslow \
-profile:v main \
-pix_fmt yuv420p \
-movflags +faststart \
- -vf scale=$(patsubst src/static/videos/firewall@%.h264.mp4,%,$@):-2,fps=25 \
+ -vf scale=$(patsubst src/static/videos/firewall@%.h264.mp4,%,$@):-2:flags=lanczos,fps=25 \
+ $(FFMPEG_MT) \
+ $@
+
+# VP9
+src/static/videos/firewall@%.vp9.mp4: src/static/videos/firewall.mp4
+ $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
+ $(FFMPEG) -y \
+ -i $^ \
+ -map_metadata -1 \
+ -an \
+ -c:v libvpx-vp9 \
+ -b:v 0 \
+ -crf 31 \
+ -deadline best \
+ -preset veryslow \
+ -pix_fmt yuv420p \
+ -movflags +faststart \
+ -vf scale=$(patsubst src/static/videos/firewall@%.vp9.mp4,%,$@):-2:flags=lanczos,fps=25 \
+ $(FFMPEG_MT) \
$@
# Cover image