diff --git a/.gitignore b/.gitignore
index b25c15b..e63911a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,3 @@
*~
+info
+sites/
diff --git a/README b/README
deleted file mode 100644
index 010b2da..0000000
--- a/README
+++ /dev/null
@@ -1,12 +0,0 @@
-Gluon versions used for specific Lübeck Freifunk Firmware builds:
-
-* 0.8.1: v2016.1.3
-* 0.8: v2016.1.2
-* 0.7.1: v2015.1.2
-* 0.7: v2015.1.1
-* 0.6: v2014.4
-* 0.5: v2014.3
-* 0.4.1: v2014.2
-* 0.4: v2014.1
-* 0.4~1-beta2 (0.4 Beta 2): 2c751d3612a7229de878c40ae724611f2f4f0bee
-* 0.3.100-beta1 (0.4 Beta 1): 55a068104fa072ea7cd2decac9584a8f619badbf
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..a0673d8
--- /dev/null
+++ b/README.md
@@ -0,0 +1,60 @@
+#### How to build the Freifunk Hamburg Firmware
+
+ In the next two commands replace GLUON_VERSION and SITE_VERSION with the actual version numbers.
+ $ git clone -b GLUON_VERSION https://github.com/freifunk-gluon/gluon.git
+ $ git clone -b SITE_VERSION https://codeberg.org/freifunkhamburg/site-ffhh.git
+ $ cd site-ffhh
+
+ To build the firmware into the subdirectory firmware:
+ $ ./build.sh -g ../gluon -o firmware
+
+ The build.sh supports the argument -b if you wish to also build firmware images marked as broken in gluon.
+
+Please see [the official Gluon repository](https://github.com/freifunk-gluon/gluon) for an in-depth explanation of the build process.
+
+
+#### Gluon versions used for specific Hamburg Freifunk Firmware builds
+
+- v2023.2.5.0: site-ffhh: v2023.2.5.0, gluon: v2023.2.5
+- v2023.2.4.0: site-ffhh: v2023.2.4.0, gluon: v2023.2.4
+- v2023.2.2.1: site-ffhh: v2023.2.2.0, gluon: v2023.2.2 (add mediatek-filogic Routers)
+- v2023.2.2.0: site-ffhh: v2023.2.2.0, gluon: v2023.2.2
+- v2023.1.2.0: site-ffhh: v2023.1.2.0, gluon: v2023.1.2
+- v2022.1.4.0: site-ffhh: v2022.1.4.0, gluon: v2022.1.4
+- v2022.1.3.0: site-ffhh: v2022.1.3.0, gluon: v2022.1.3 (nur experimental verteilt)
+- v2021.1.2.0: site-ffhh: v2021.1.2.0, gluon: v2021.1.2
+- v2021.1.1.0: site-ffhh: v2021.1.1.0, gluon: v2021.1.1
+- v2020.2.3.0: site-ffhh: v2020.2.3.0, gluon: v2020.2.3
+- v2020.2.2.0: site-ffhh: v2020.2.2.0, gluon: v2020.2.2
+- v2020.1.4.0: site-ffhh: v2020.1.4.0, gluon: v2020.1.4
+- v2020.1.3.0: site-ffhh: v2020.1.3.0, gluon: v2020.1.3
+- v2019.1.2.0: site-ffhh: v2019.1.2.0, gluon: v2019.1.2
+- v2018.2.3.0: site-ffhh: v2018.2.3.0, gluon: v2018.2.3
+- v2018.2.1.0: site-ffhh: v2018.2.1.0, gluon: v2018.2.1
+- v2018.1.4.2: site-ffhh: v2018.1.4.2, gluon: v2018.1.4
+- v2018.1.4.1: site-ffhh: v2018.1.4.1, gluon: v2018.1.4
+- v2018.1.4.0: site-ffhh: v2018.1.4.0, gluon: v2018.1.4
+- v2018.1.3.0: site-ffhh: v2018.1.3.0, gluon: v2018.1.3
+- v2018.1.1.0: site-ffhh: v2018.1.1.0, gluon: v2018.1.1
+- v2018.1.0.0: site-ffhh: v2018.1.0.0, gluon: v2018.1 (never rolled out due to issues with the auto updater in gluon)
+- 0.9.2: site-ffhh: v0.9.2, gluon: v2017.1.8
+- 0.9.1: site-ffhh: v0.9.1, gluon: v2017.1.5
+- 0.9.0: site-ffhh: 60f30382209ffc050baa82be9bad3622a1d88d5b, gluon: v2017.1.x (9295abcea7b016b0fe4b05c534ea0731b48ef593) (never rolled out due to 0.9.1)
+- 0.8.6: v2016.2.7 Fix gw01-new key, add 3.ntp.services.ffhh to NTP servers, add Firmware signing keys for Alexander and Olli, remove old domain
+- 0.8.5: v2016.2.7 Domain split, new package: ffho-ebtables-net-rules
+- 0.8.4: v2016.2.7 (updated openwrt/package/network/services/dnsmasq/Makefile: PKG\_VERSION:=2.78 & PKG\_MD5SUM:=6d0241b72c79d2b510776ccc4ed69ca4)
+- 0.8.3: v2016.2.6 (ffhh-sued only)
+- 0.8.2: v2016.2.5
+- 0.8.1: v2016.2.4 (ffhh-sued only)
+- 0.8: v2016.1.4
+- 0.7.1: v2015.1.2
+- 0.7: v2015.1
+- 0.6: v2014.4
+- 0.5.1: v2014.3.1
+- 0.5: v2014.3
+- 0.4.2: v2014.2
+ - note: no gluon fork used anymore
+- 0.4.1: v2014.2-hh
+ - equal to official gluon v2014.2 + ffhh specific patches
+- 0.4a: v2014.1a
+ - equal to official gluon v2014.1 + ffhh specific patches
diff --git a/build.conf b/build.conf
new file mode 100644
index 0000000..2d07aa1
--- /dev/null
+++ b/build.conf
@@ -0,0 +1,5 @@
+GLUON_RELEASE="v2023.2.5.0"
+targets="ath79-generic ath79-nand ath79-mikrotik bcm27xx-bcm2708 bcm27xx-bcm2709 ipq40xx-generic ipq40xx-mikrotik ipq806x-generic lantiq-xrx200 lantiq-xway mediatek-filogic mediatek-mt7622 mpc85xx-p1010 mpc85xx-p1020 ramips-mt7620 ramips-mt7621 ramips-mt76x8 rockchip-armv8 sunxi-cortexa7 x86-generic x86-geode x86-legacy x86-64"
+broken_images=(
+ '*dir*615*d*'
+)
diff --git a/build.sh b/build.sh
new file mode 100755
index 0000000..5647ba5
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,138 @@
+#!/usr/bin/env bash
+set -e
+
+function announce () {
+ echo '############################' "$@" >&2
+}
+function usage () {
+ echo "Usage: $0 -g GLUON_PATH" >&2
+ echo " -g GLUON_PATH Path to a checkout of the gluon repository." >&2
+ echo " -t TARGETS Comma separated list of gluon targets to build" >&2
+ echo " -a Automatically detect and build all targets." >&2
+ echo " -o OUT_PATH Path to the firmware output directory. Default: ${gluon_out}" >&2
+ echo " -s SIGNATURE Sign firmware with signature" >&2
+ echo " -stable Set GLUON_AUTOUPDATER_BRANCH=stable" >&2
+ echo " -b BROKEN=1" >&2
+ echo " -v verbose" >&2
+ echo " -j JOBS Run build with -jJOBS. Default: ${proc}" >&2
+}
+
+proc=$(nproc)
+gluon_out="${HOME}/firmware"
+
+while [ $# -gt 0 ]; do
+ case "$1" in
+ -a)
+ auto_targets=1
+ ;;
+ -g)
+ gluon_path="$2"
+ shift
+ ;;
+ -t)
+ build_targets="$2"
+ shift
+ ;;
+ -o)
+ gluon_out="$2"
+ shift
+ ;;
+ -s)
+ signature="$2"
+ shift
+ ;;
+ -stable)
+ export GLUON_AUTOUPDATER_BRANCH=stable
+ ;;
+ -b)
+ export BROKEN=1
+ ;;
+ -j)
+ proc="$2"
+ shift
+ ;;
+ -v)
+ verbose=V=s
+ ;;
+ *)
+ echo ERROR: Failed to parse: "${1}" >&2
+ usage
+ exit 1
+ ;;
+ esac
+ shift
+done
+
+if [ -z "$gluon_path" ]; then
+ usage
+ exit 1
+fi
+
+gluon_path=$(realpath "$gluon_path")
+gluon_out=$(realpath "$gluon_out")
+site_path=$(realpath "$(dirname "${BASH_SOURCE[0]}")")
+
+announce GLUON: "$gluon_path" >&2
+announce FFHH SITE PATH: "$site_path" >&2
+
+pushd "$site_path"
+# shellcheck source=/dev/null
+. ./build.conf
+GLUON_AUTOUPDATER_BRANCH="${GLUON_AUTOUPDATER_BRANCH:-experimental}"
+[ "${GLUON_AUTOUPDATER_BRANCH}" = "experimental" ] && GLUON_RELEASE="${GLUON_RELEASE}~exp${BUILD_DATE:-$(date +%Y%m%d)}"
+export GLUON_RELEASE
+export GLUON_AUTOUPDATER_BRANCH
+export GLUON_SITEDIR="${site_path}"
+export GLUON_OUTPUTDIR="${gluon_out}/${GLUON_RELEASE}/${GLUON_AUTOUPDATER_BRANCH}"
+popd
+
+announce GLUON Variables:
+env | egrep '^GLUON' | sort
+
+pushd "${gluon_path}"
+announce Starting make update...
+mkdir -p "${GLUON_OUTPUTDIR}"
+make update
+# Try to install patches. I wasn't able to figure out how patches in gluon/site/patches work.
+for p in "${site_path}"/patches/*.patch; do
+ if [ -e "$p" ] && [ ! -f "${gluon_path}/${p##*/}" ]; then
+ announce "Installing patch $p"
+ patch -p1 < "$p"
+ touch "${gluon_path}/${p##*/}"
+ fi
+done
+
+if [ "$auto_targets" = "1" ]; then
+ # detect available targets
+ targets="$(make list-targets | sort | xargs)"
+else
+ # if a list of build targets has been supplied, only build those
+ targets="$(echo "${build_targets:-$targets}" | sed -e 's_,_ _g')"
+fi
+announce "The following targets will be generated: $targets" >&2
+
+for t in $targets; do
+ announce "Starting build for $t..." >&2
+ make "-j$(nproc)" "GLUON_TARGET=$t" $verbose
+done
+# Remove known-broken images
+# shellcheck disable=SC2154
+for broken_image in "${broken_images[@]}"; do
+ announce "Removing broken image ${broken_image}..."
+ find "${GLUON_OUTPUTDIR}/images" -iname "${broken_image}" \( -type f -o -type l \) -ls -exec rm -f {} \;
+done
+# Generate the images.list
+# shellcheck disable=SC2094
+( cd "${GLUON_OUTPUTDIR}/images" && ( echo "RELEASE=${GLUON_RELEASE}"; find . -type f ! -iname '*.manifest' ! -iname images.list; find . -type l ! -iname '*.manifest' ) | sed -e 's!^\./\(.*\)$!\1!' -e 's!/! !g' | sort > images.list )
+announce Building manifest...
+make manifest
+if [ -n "${signature}" ]; then
+ if [ "$GLUON_AUTOUPDATER_BRANCH" == "experimental" ]; then
+ announce Signing...
+ "${gluon_path}/contrib/sign.sh" "${signature}" "${GLUON_OUTPUTDIR}/images/sysupgrade/experimental.manifest"
+ else
+ echo ERROR: can only sign experimental branch >&2
+ exit 1
+ fi
+fi
+popd
diff --git a/domains/ffhh_nowe.conf b/domains/ffhh_nowe.conf
new file mode 100644
index 0000000..4ecba48
--- /dev/null
+++ b/domains/ffhh_nowe.conf
@@ -0,0 +1,75 @@
+{
+ domain_names = {
+ ffhh_nowe = "Hamburg Nordwest",
+ },
+ domain_seed = '666668682D6E6F776548616D6275726748616D6275726748616D627572674861',
+
+ prefix4 = '10.112.192.0/19',
+ prefix6 = '2a03:2267:3::/64',
+
+ next_node = {
+ ip4 = '10.112.192.1',
+ ip6 = '2a03:2267:3::1',
+ mac = '16:41:95:40:f7:dc',
+ },
+
+ wifi24 = {
+ ap = {
+ ssid = "hamburg.freifunk.net",
+ },
+ mesh = {
+ id = '6668682D6E6F7765',
+ },
+ },
+
+ wifi5 = {
+ ap = {
+ ssid = "hamburg.freifunk.net",
+ },
+ mesh = {
+ id = '6668682D6E6F7765',
+ },
+ },
+
+ mesh = {
+ vxlan = false,
+ batman_adv = {
+ routing_algo = "BATMAN_IV",
+ },
+ },
+
+ mesh_vpn = {
+ fastd = {
+ groups = {
+ backbone = {
+ peers = {
+ gateway01 = {
+ remotes = { '"gw01-new.hamburg.freifunk.net" port 10007' },
+ key = 'aa88fb5cc3e729c124589e3714b817a505d809f381d9b3494040c382edfd4f3b',
+ },
+ gateway02 = {
+ remotes = { '"gw02-new.hamburg.freifunk.net" port 10007' },
+ key = '462b4e21ab5eb0f9de687efd97252880c895ba55cc9cc0755a75347b0965b6e0',
+ },
+ gateway03 = {
+ remotes = { '"gw03-new.hamburg.freifunk.net" port 10007' },
+ key = 'e15295b86138ac490d611e4100f847ccfb7052d5091ded4659f25940be2c0546',
+ },
+ gateway04 = {
+ remotes = { '"gw04-new.hamburg.freifunk.net" port 10008' },
+ key = 'a00e092c236c3b56043fb3b5d0b3da3da08d8325fb18e7bae6ed035d50d50669',
+ },
+ gateway05 = {
+ remotes = { '"gw05-new.hamburg.freifunk.net" port 10008' },
+ key = '291197d88a5ed510a62fec87f30d13315c1e031c62c927c23e1643a72796708f',
+ },
+ gateway06 = {
+ remotes = { '"gw06-new.hamburg.freifunk.net" port 10008' },
+ key = '8d400e8a9db05b145c36583d46b4170f6b66d1e16177540f8a2f9f5ad0dc4c43',
+ },
+ },
+ },
+ },
+ },
+ },
+}
diff --git a/domains/ffhh_ost.conf b/domains/ffhh_ost.conf
new file mode 100644
index 0000000..941b75d
--- /dev/null
+++ b/domains/ffhh_ost.conf
@@ -0,0 +1,75 @@
+{
+ domain_names = {
+ ffhh_ost = "Hamburg Ost",
+ },
+ domain_seed = '666668682D6F737448616D6275726748616D6275726748616D6275726748616D',
+
+ prefix4 = '10.112.224.0/19',
+ prefix6 = '2a03:2267:4::/64',
+
+ next_node = {
+ ip4 = '10.112.224.1',
+ ip6 = '2a03:2267:4::1',
+ mac = '16:41:95:40:f7:dc',
+ },
+
+ wifi24 = {
+ ap = {
+ ssid = "hamburg.freifunk.net",
+ },
+ mesh = {
+ id = '666668682D6F7374',
+ },
+ },
+
+ wifi5 = {
+ ap = {
+ ssid = "hamburg.freifunk.net",
+ },
+ mesh = {
+ id = '666668682D6F7374',
+ },
+ },
+
+ mesh = {
+ vxlan = false,
+ batman_adv = {
+ routing_algo = "BATMAN_IV",
+ },
+ },
+
+ mesh_vpn = {
+ fastd = {
+ groups = {
+ backbone = {
+ peers = {
+ gateway01 = {
+ remotes = { '"gw01-new.hamburg.freifunk.net" port 10009' },
+ key = 'aa88fb5cc3e729c124589e3714b817a505d809f381d9b3494040c382edfd4f3b',
+ },
+ gateway02 = {
+ remotes = { '"gw02-new.hamburg.freifunk.net" port 10009' },
+ key = '462b4e21ab5eb0f9de687efd97252880c895ba55cc9cc0755a75347b0965b6e0',
+ },
+ gateway03 = {
+ remotes = { '"gw03-new.hamburg.freifunk.net" port 10009' },
+ key = 'e15295b86138ac490d611e4100f847ccfb7052d5091ded4659f25940be2c0546',
+ },
+ gateway04 = {
+ remotes = { '"gw04-new.hamburg.freifunk.net" port 10010' },
+ key = 'a00e092c236c3b56043fb3b5d0b3da3da08d8325fb18e7bae6ed035d50d50669',
+ },
+ gateway05 = {
+ remotes = { '"gw05-new.hamburg.freifunk.net" port 10010' },
+ key = '291197d88a5ed510a62fec87f30d13315c1e031c62c927c23e1643a72796708f',
+ },
+ gateway06 = {
+ key = '8d400e8a9db05b145c36583d46b4170f6b66d1e16177540f8a2f9f5ad0dc4c43',
+ remotes = { '"gw06-new.hamburg.freifunk.net" port 10010' },
+ },
+ },
+ },
+ },
+ },
+ },
+}
diff --git a/domains/ffhh_sued.conf b/domains/ffhh_sued.conf
new file mode 100644
index 0000000..1a6f31f
--- /dev/null
+++ b/domains/ffhh_sued.conf
@@ -0,0 +1,75 @@
+{
+ domain_names = {
+ ffhh_sued = "Hamburg Süd",
+ },
+ domain_seed = '666668682D7375656448616D6275726748616D6275726748616D627572674861',
+
+ prefix4 = '10.112.64.0/19',
+ prefix6 = '2a03:2267:1::/64',
+
+ next_node = {
+ ip4 = '10.112.64.1',
+ ip6 = '2a03:2267:1::1',
+ mac = '16:41:95:40:f7:dc',
+ },
+
+ wifi24 = {
+ ap = {
+ ssid = "hamburg.freifunk.net",
+ },
+ mesh = {
+ id = '6668682D73756564',
+ },
+ },
+
+ wifi5 = {
+ ap = {
+ ssid = "hamburg.freifunk.net",
+ },
+ mesh = {
+ id = '6668682D73756564',
+ },
+ },
+
+ mesh = {
+ vxlan = false,
+ batman_adv = {
+ routing_algo = "BATMAN_IV",
+ },
+ },
+
+ mesh_vpn = {
+ fastd = {
+ groups = {
+ backbone = {
+ peers = {
+ gateway01 = {
+ remotes = { '"gw01-new.hamburg.freifunk.net" port 10003' },
+ key = 'aa88fb5cc3e729c124589e3714b817a505d809f381d9b3494040c382edfd4f3b',
+ },
+ gateway02 = {
+ key = '462b4e21ab5eb0f9de687efd97252880c895ba55cc9cc0755a75347b0965b6e0',
+ remotes = { '"gw02-new.hamburg.freifunk.net" port 10003' },
+ },
+ gateway03 = {
+ remotes = { '"gw03-new.hamburg.freifunk.net" port 10003' },
+ key = 'e15295b86138ac490d611e4100f847ccfb7052d5091ded4659f25940be2c0546',
+ },
+ gateway04 = {
+ remotes = { '"gw04-new.hamburg.freifunk.net" port 10004' },
+ key = 'a00e092c236c3b56043fb3b5d0b3da3da08d8325fb18e7bae6ed035d50d50669',
+ },
+ gateway05 = {
+ remotes = { '"gw05-new.hamburg.freifunk.net" port 10004' },
+ key = '291197d88a5ed510a62fec87f30d13315c1e031c62c927c23e1643a72796708f',
+ },
+ gateway06 = {
+ remotes = { '"gw06-new.hamburg.freifunk.net" port 10004' },
+ key = '8d400e8a9db05b145c36583d46b4170f6b66d1e16177540f8a2f9f5ad0dc4c43',
+ },
+ },
+ },
+ },
+ },
+ },
+}
diff --git a/domains/ffhh_west.conf b/domains/ffhh_west.conf
new file mode 100644
index 0000000..ca3c22a
--- /dev/null
+++ b/domains/ffhh_west.conf
@@ -0,0 +1,75 @@
+{
+ domain_names = {
+ ffhh_west = "Hamburg West",
+ },
+ domain_seed = '666668682D7765737448616D6275726748616D6275726748616D627572674861',
+
+ prefix4 = '10.112.96.0/19',
+ prefix6 = '2a03:2267:2::/64',
+
+ next_node = {
+ ip4 = '10.112.96.1',
+ ip6 = '2a03:2267:2::1',
+ mac = '16:41:95:40:f7:dc',
+ },
+
+ wifi24 = {
+ ap = {
+ ssid = "hamburg.freifunk.net",
+ },
+ mesh = {
+ id = '6668682D77657374',
+ },
+ },
+
+ wifi5 = {
+ ap = {
+ ssid = "hamburg.freifunk.net",
+ },
+ mesh = {
+ id = '6668682D77657374',
+ },
+ },
+
+ mesh = {
+ vxlan = false,
+ batman_adv = {
+ routing_algo = "BATMAN_IV",
+ },
+ },
+
+ mesh_vpn = {
+ fastd = {
+ groups = {
+ backbone = {
+ peers = {
+ gateway01 = {
+ remotes = { '"gw01-new.hamburg.freifunk.net" port 10005' },
+ key = 'aa88fb5cc3e729c124589e3714b817a505d809f381d9b3494040c382edfd4f3b',
+ },
+ gateway02 = {
+ key = '462b4e21ab5eb0f9de687efd97252880c895ba55cc9cc0755a75347b0965b6e0',
+ remotes = { '"gw02-new.hamburg.freifunk.net" port 10005' },
+ },
+ gateway03 = {
+ remotes = { '"gw03-new.hamburg.freifunk.net" port 10005' },
+ key = 'e15295b86138ac490d611e4100f847ccfb7052d5091ded4659f25940be2c0546',
+ },
+ gateway04 = {
+ remotes = { '"gw04-new.hamburg.freifunk.net" port 10006' },
+ key = 'a00e092c236c3b56043fb3b5d0b3da3da08d8325fb18e7bae6ed035d50d50669',
+ },
+ gateway05 = {
+ remotes = { '"gw05-new.hamburg.freifunk.net" port 10006' },
+ key = '291197d88a5ed510a62fec87f30d13315c1e031c62c927c23e1643a72796708f',
+ },
+ gateway06 = {
+ remotes = { '"gw06-new.hamburg.freifunk.net" port 10006' },
+ key = '8d400e8a9db05b145c36583d46b4170f6b66d1e16177540f8a2f9f5ad0dc4c43',
+ },
+ },
+ },
+ },
+ },
+ },
+}
diff --git a/i18n/de.po b/i18n/de.po
index 2272add..58dfb28 100644
--- a/i18n/de.po
+++ b/i18n/de.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2015-03-19 20:28+0100\n"
-"Last-Translator: Matthias Schiffer Dies ist der öffentliche Schlüssel deines Freifunkknotens. Erst nachdem "
-"er auf den Servern des Lübecker Freifunk-Projektes eingetragen wurde, "
-"kann sich dein Knoten mit dem Lübecker Mesh-VPN verbinden. Bitte "
-"schicke dazu diesen Schlüssel und den Namen deines Knotens "
-"(<%=hostname%>) an "
-"keys@luebeck.freifunk.net.
Dein Knoten startet gerade neu und wird anschließend versuchen, " "sich mit anderen Freifunkknoten in seiner Nähe zu " "verbinden. Weitere Informationen zur " -"Lübecker Freifunk-Community findest du auf " -"unserer Webseite.
" -"Viel Spaß mit deinem Knoten und bei der Erkundung von Freifunk!
" +"Hamburger Freifunk-Community findest du auf " +"unserer Webseite." +"Viel Spaß mit deinem Knoten und der Erkundung von Freifunk!
" + +msgid "gluon-config-mode:novpn" +msgstr "" +"Bitte trage nun den Namen deines Knotens " +"(<%=pcdata(hostname)%>) und ein paar andere Informationen unter " +"&mac=<%= sysconfig.primary_mac %>\" target=\"_blank\">https://formular.hamburg.freifunk.net/ " +"ein." diff --git a/i18n/en.po b/i18n/en.po index 693e632..f64501f 100644 --- a/i18n/en.po +++ b/i18n/en.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: PACKAGE VERSION\n" -"PO-Revision-Date: 2015-03-19 20:28+0100\n" -"Last-Translator: Matthias SchifferThis is your Freifunk node's public key. The node won't be able to " -"connect to the mesh VPN until the key has been registered on the Freifunk " -"Lübeck servers. " -"To register the key send it together with your node's name (<%=hostname%>) to " -"keys@luebeck.freifunk.net.
" +"This is the public key for your Freifunk node. You can only " +"connect the node to the Hamburg mesh VPN after the key has been registered on " +"the Freifunk Hamburg servers. " +"Please register your key, the name of your node (<%=pcdata(hostname)%>), and a bit of additional info at " +"&key=<%=pubkey%>&mac=<%= sysconfig.primary_mac %>\" target=\"_blank\">https://formular.hamburg.freifunk.net/.
" "The node is currently rebooting and will then attempt to connect to other " -"nearby Freifunk nodes after that. " -"You can find lots of information on the Freifunk Lübeck community on " -"our homepage.
" -"Have fun with your node while exploring the Freifunk network!
" +"The node is currently rebooting and, afterwards, will try to connect to other " +"nearby Freifunk nodes. " +"You can find lots more information about the Freifunk Hamburg community on " +"our homepage.
" +"Have fun with your node and exploring the Freifunk network!
" + +msgid "gluon-config-mode:novpn" +msgstr "" +"Please enter the name of your node " +"(<%=hostname%>) and some additional information at " +"&mac=<%= sysconfig.primary_mac %>\" target=\"_blank\">https://formular.hamburg.freifunk.net/ " +"." diff --git a/image-customization.lua b/image-customization.lua new file mode 100644 index 0000000..34f6279 --- /dev/null +++ b/image-customization.lua @@ -0,0 +1,37 @@ +features({ + 'autoupdater', + 'config-mode-domain-select', + 'ebtables-filter-multicast', + 'ebtables-filter-ra-dhcp', + 'mesh-batman-adv-15', + 'mesh-vpn-fastd', + 'web-private-wifi', + 'radv-filterd', + 'respondd', + 'status-page', + 'web-advanced', + 'web-wizard', +}) + +if not device_class('tiny') then + features({ + 'wireless-encryption-wpa3', + }) +end + +packages({ + '-gluon-config-mode-geo-location', + '-gluon-config-mode-contact-info', + 'gluon-ebtables-source-filter', + 'gluon-upgrade-static-interface-ffhh', + 'gluon-web-mesh-vpn-fastd', + 'iwinfo', +}) + +if target('x86') then + packages({ + 'nano', + 'htop', + 'ethtool', + }) +end diff --git a/modules b/modules new file mode 100644 index 0000000..45f281f --- /dev/null +++ b/modules @@ -0,0 +1,4 @@ +GLUON_SITE_FEEDS='ffhh_packages' + +PACKAGES_FFHH_PACKAGES_REPO=https://codeberg.org/freifunkhamburg/ffhh-packages.git +PACKAGES_FFHH_PACKAGES_COMMIT=eb99353a88b399583f46288485d05ca8d53cd1ac diff --git a/site.conf b/site.conf index 352ce62..04919a0 100644 --- a/site.conf +++ b/site.conf @@ -1,138 +1,102 @@ { - hostname_prefix = 'freifunk', - site_name = 'Freifunk Lübeck', - site_code = 'ffhl', - - opkg = { - openwrt = 'http://openwrt.draic.info/%n/%v/%S/packages', - extra = { - modules = 'http://opkg.services.luebeck.freifunk.net/modules/gluon-%GS-%GR/%S', + hostname_prefix = 'GibMirEinenNamen', + config_mode = { + hostname = { + optional = false, + prefill = false, }, }, - prefix4 = '10.130.0.0/20', - prefix6 = 'fdef:ffc0:3dd7::/64', + site_name = 'Freifunk Hamburg', + site_code = 'ffhh', + default_domain = 'ffhh_nowe', + + opkg = { + extra = { + modules = 'http://updates.hamburg.freifunk.net/multi/archive/%GR/packages/gluon-%GS-%GR/%S', + }, + }, timezone = 'CET-1CEST,M3.5.0,M10.5.0/3', -- Europe/Berlin - ntp_servers = {'1.ntp.services.luebeck.freifunk.net'}, + ntp_servers = {'1.ntp.services.ffhh','2.ntp.services.ffhh','3.ntp.services.ffhh'}, regdom = 'DE', wifi24 = { channel = 1, - htmode = 'HT40+', - ap = { - ssid = 'luebeck.freifunk.net', - }, - ibss = { - ssid = '02:d1:11:37:fc:38', - bssid = '02:d1:11:37:fc:38', + + mesh = { mcast_rate = 12000, }, - --[[mesh = { - id = 'eseB6Qlu', - mcast_rate = 12000, - },--]] }, + wifi5 = { channel = 44, - htmode = 'HT40+', - ap = { - ssid = 'luebeck.freifunk.net', - }, - ibss = { - ssid = '02:d1:11:37:fc:38', - bssid = '02:d1:11:37:fc:38', + outdoor_chanlist = "100-140", + mesh = { mcast_rate = 12000, }, - --[[mesh = { - id = 'eseB6Qlu', - mcast_rate = 12000, - },--]] }, - next_node = { - ip4 = '10.130.0.1', - ip6 = 'fdef:ffc0:3dd7::1', - - mac = '16:41:95:40:f7:dc', - }, - - fastd_mesh_vpn = { - configurable = true, - methods = {'salsa2012+umac'}, - mtu = 1280, - groups = { - backbone = { - limit = 1, - peers = { - huextertor = { - key = 'a1b124f43eae4f5929850c09cda825ef35d659e3db4d7746e3d97627e9fa7238', - remotes = {'"huextertor.mesh.ffhl.chaotikum.org" port 10002'}, - }, - muehlentor = { - key = 'bd4ec3cf87bb0042eed2fa121fbc402154d28fb1ae9dff9cdb71bb21892f401a', - remotes = {'"muehlentor.mesh.ffhl.chaotikum.org" port 10002'}, - }, - burgtor = { - key = '657af03e36ff1b8bbe5a5134982a4f110c8523a9a63293870caf548916a95a03', - remotes = {'"burgtor.mesh.ffhl.chaotikum.org" port 10002'}, - }, - holstentor = { - key = '8c660f7511bf101ea1b599fe53af20e1146cd923c9e9d2a3a0d534ee75af9067', - remotes = {'"holstentor.mesh.ffhl.chaotikum.org" port 10002'}, - }, + mesh_vpn = { + enabled = true, + fastd = { + configurable = true, + mtu = 1312, + methods = {'salsa2012+umac'}, + groups = { + backbone = { + limit = 1, }, }, }, bandwidth_limit = { enabled = false, - ingress = 3000, - egress = 200, + ingress = 8096, + egress = 1024, }, }, autoupdater = { - branch = 'experimental', + branch = 'stable', branches = { stable = { name = 'stable', - mirrors = {'http://1.updates.services.luebeck.freifunk.net/stable/sysupgrade'}, + mirrors = {'http://updates-a.hamburg.freifunk.net/multi/stable/images/sysupgrade','http://updates-b.hamburg.freifunk.net/multi/stable/images/sysupgrade'}, good_signatures = 2, pubkeys = { - 'daa19b44bbd7033965e02088127bad9516ba0fea8f34267a777144a23ec8900c', -- Linus - 'a8dd60765b07330a4bbfdf8406102befca132881a4b65f3efda32cf2d5b362d9', -- Nils - '323bd3285c4e5547a89cd6da1f2aef67f1654b0928bbd5b104efc9dab2156d0b', -- NeoRaider + 'ef73bc52b929fd11efce9a5c8f0b5463f1766bb995c8a0b3b6bcd7ba45b8b1e6', -- leo + '3f0fc50d4e5c893f9f58f98874bd21080b93c28ff5e4d4946352cada1b4e6441', -- andre + '1d37eacbd70f72730b1f5aba246a6a8eab100e2d45dda0163d9ad827f70f88d4', -- gernot + 'bd5a70d4c3df30eaa860d615c0e0526b0dda5bc60c09c20972bce4ffa7512659', -- bjoern + 'd9992853c0fe1a2e983cc222b6bd26e70d4fb2a53862ac099144e9e8142238d0', -- daniel + '961495a04512e5ba1843fd3c216d8af6ef2fdb19f93055142803e2da26d670b9', -- alexander + 'ed6278f168f0382adf4f058cb9c31d8f1145abb968a8626045de7d6d87a0be40', -- olli }, }, beta = { name = 'beta', - mirrors = {'http://1.updates.services.luebeck.freifunk.net/beta/sysupgrade'}, + mirrors = {'http://updates-a.hamburg.freifunk.net/multi/stable/images/sysupgrade','http://updates-b.hamburg.freifunk.net/multi/stable/images/sysupgrade'}, good_signatures = 2, pubkeys = { - 'daa19b44bbd7033965e02088127bad9516ba0fea8f34267a777144a23ec8900c', -- Linus - 'a8dd60765b07330a4bbfdf8406102befca132881a4b65f3efda32cf2d5b362d9', -- Nils - '323bd3285c4e5547a89cd6da1f2aef67f1654b0928bbd5b104efc9dab2156d0b', -- NeoRaider + 'ef73bc52b929fd11efce9a5c8f0b5463f1766bb995c8a0b3b6bcd7ba45b8b1e6', -- leo + '3f0fc50d4e5c893f9f58f98874bd21080b93c28ff5e4d4946352cada1b4e6441', -- andre + '1d37eacbd70f72730b1f5aba246a6a8eab100e2d45dda0163d9ad827f70f88d4', -- gernot + 'bd5a70d4c3df30eaa860d615c0e0526b0dda5bc60c09c20972bce4ffa7512659', -- bjoern + 'd9992853c0fe1a2e983cc222b6bd26e70d4fb2a53862ac099144e9e8142238d0', -- daniel + '961495a04512e5ba1843fd3c216d8af6ef2fdb19f93055142803e2da26d670b9', -- alexander + 'ed6278f168f0382adf4f058cb9c31d8f1145abb968a8626045de7d6d87a0be40', -- olli }, }, experimental = { name = 'experimental', - mirrors = {'http://1.updates.services.luebeck.freifunk.net/experimental/sysupgrade'}, + mirrors = {'http://updates-a.hamburg.freifunk.net/multi/experimental/images/sysupgrade','http://updates-b.hamburg.freifunk.net/multi/experimental/images/sysupgrade'}, good_signatures = 1, pubkeys = { - '496136b37e5f561dfdf523611f14e4b6bc2a745cbc1ab7daffa59fded5f202d1', -- philae + '1a0112fe489860068480c611c5dc56196c2f1a645db651ea2ed19ae0f0e8e1d1', -- builder1/2 }, }, }, }, - legacy = { - version_files = {'/etc/.freifunk_version_keep', '/etc/.lff_version_keep'}, - old_files = {'/etc/config/config_mode', '/etc/config/ffhl', '/etc/config/freifunk'}, - - config_mode_configs = {'config_mode', 'ffhl', 'freifunk'}, - fastd_configs = {'ffhl_mesh_vpn', 'mesh_vpn'}, - mesh_ifname = 'freifunk', - tc_configs = {'ffhl', 'freifunk'}, - wifi_names = {'wifi_freifunk', 'wifi_freifunk5', 'wifi_mesh', 'wifi_mesh5'}, - }, + poe_passthrough = false, } diff --git a/site.mk b/site.mk index d504bce..45aa428 100644 --- a/site.mk +++ b/site.mk @@ -1,37 +1,11 @@ -GLUON_SITE_PACKAGES := \ - gluon-mesh-batman-adv-14 \ - gluon-alfred \ - gluon-autoupdater \ - gluon-config-mode-autoupdater \ - gluon-config-mode-contact-info \ - gluon-config-mode-core \ - gluon-config-mode-geo-location \ - gluon-config-mode-hostname \ - gluon-config-mode-mesh-vpn \ - gluon-ebtables-filter-multicast \ - gluon-ebtables-filter-ra-dhcp \ - gluon-legacy \ - gluon-luci-admin \ - gluon-luci-autoupdater \ - gluon-luci-mesh-vpn-fastd \ - gluon-luci-portconfig \ - gluon-luci-wifi-config \ - gluon-next-node \ - gluon-mesh-vpn-fastd \ - gluon-radvd \ - gluon-respondd \ - gluon-setup-mode \ - gluon-status-page \ - iwinfo \ - iptables \ - haveged +GLUON_MULTIDOMAIN := 1 +GLUON_DEPRECATED := upgrade +GLUON_AUTOUPDATER_ENABLED ?= 1 -DEFAULT_GLUON_RELEASE := 0.8.1 +GLUON_PRIORITY ?= 7 -# Allow overriding the release number from the command line -GLUON_RELEASE ?= $(DEFAULT_GLUON_RELEASE) - -GLUON_PRIORITY ?= 0 +# Region code required for some images; supported values: us eu +GLUON_REGION ?= eu GLUON_LANGS ?= en de