Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • ffnw-firmware/siteconf
  • pic/siteconf
  • PowerPan/siteconf
  • netmon-sc/siteconf
  • floh1111/siteconf
  • lrnzo/siteconf
  • florian.lottes/siteconf
7 results
Show changes
Commits on Source (333)
Showing with 846 additions and 247 deletions
#!/bin/bash
# Exit script on error
set -e
# Required environment variables
required_env_vars=(
"UPSTREAM_GLUON_BRANCH"
"ECDSA_PRIVAT_KEY"
"SSH_PRIVATE_KEY"
"GLUON_COMMIT_ID_FROM_PREVIOUS_RUN"
"ACCESS_TOKEN"
)
# Function to check if required environment variables are set
check_required_env_vars() {
for var in "${required_env_vars[@]}"; do
if [ -z "${!var}" ]; then
echo "ENV Variable $var is unset"
exit 1
fi
done
echo "All ENV Variables are present"
}
echo ""
echo "##################################"
echo "Check required environment variables"
echo "##################################"
echo ""
check_required_env_vars
#!/bin/bash
# Determine parent directory
PARENT_DIR=$(dirname "$GIT_CLONE_PATH")
# Function to delete contents of the gluon directory except for the site directory
delete_gluon_contents() {
find "$PARENT_DIR" -mindepth 1 -maxdepth 1 ! \( -name 'site' -o -name 'site.tmp' \) -exec rm -rf {} +
}
# Function to clone the Gluon repository
clone_gluon_repository() {
git clone https://github.com/freifunk-gluon/gluon.git "$GIT_CLONE_PATH/gluon_temp"
delete_gluon_contents
local available_space
available_space=$(df -h / | awk 'NR==2 {print $4}') # Get available space in the root directory
local required_space="200G" # Set the required minimum space (adjust as needed)
echo "Available space: $available_space"
if [[ "$available_space" < "$required_space" ]]; then
echo "Error: Insufficient disk space. Required at least $required_space, but only $available_space is available."
exit 1
fi
rsync -a "$GIT_CLONE_PATH/gluon_temp/" "$PARENT_DIR"
rm -rf "$GIT_CLONE_PATH/gluon_temp"
# Checkout the specified branch
cd "$PARENT_DIR" || exit
git checkout "$UPSTREAM_GLUON_BRANCH"
}
# Clone or update Gluon repository
if [ ! -d "$PARENT_DIR/.git" ]; then
clone_gluon_repository
else
cd "$PARENT_DIR" || exit
# Get the current branch in Gluon repository
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
# Compare the current branch with the specified branch
if [ "$CURRENT_BRANCH" != "$UPSTREAM_GLUON_BRANCH" ]; then
# Re-clone the Gluon repository
clone_gluon_repository
else
git fetch origin
git reset --hard origin/"$UPSTREAM_GLUON_BRANCH"
fi
fi
#!/bin/bash
# Exit script on error
set -e
# OS Program lists
debian_progarr=(
shellcheck
yamllint
git
subversion
python3
python3-distutils
build-essential
gawk
unzip
libncurses5-dev
zlib1g-dev
libssl-dev
libelf-dev
wget
qemu-utils
time
ecdsautils
rsync
)
arch_progarr=(
shellcheck
yamllint
git
svn
python
python-distutils-extra
gawk
unzip
ncurses
zlib
openssl
wget
time
ecdsautils
rsync
qemu-base
)
echop() {
echo "$1 detected ..."
}
command_exists() {
command -v "$1" > /dev/null 2>&1
}
check_dependencies() {
local os_name=$1
local -a progarr=()
local ret=0
case $os_name in
debian)
progarr=("${debian_progarr[@]}")
;;
arch)
progarr=("${arch_progarr[@]}")
;;
*)
echo "OS is not supported"
exit 1
;;
esac
for prog in "${progarr[@]}"; do
if command_exists "$prog"; then
echop "$prog"
elif [ "$os_name" == "debian" ] && dpkg -s "$prog" > /dev/null 2>&1; then
echop "$prog"
elif [ "$os_name" == "arch" ] && pacman -Qi "$prog" > /dev/null 2>&1; then
echop "$prog"
else
echo "$prog is not installed"
ret=1
fi
done
return $ret
}
# Main script
echo ""
echo "##################################"
echo "Check dependencies"
echo "##################################"
echo ""
# Determine OS and check dependencies
if [ -f /etc/debian_version ]; then
check_dependencies "debian"
elif [ -f /etc/arch-release ]; then
check_dependencies "arch"
else
echo "OS is not supported"
exit 1
fi
#!/bin/bash
CI_BUILD_REF_NAME="$1"
if ! [ -e ".GLUON_RELEASE" ]; then
exit 1
fi
GLUON_RELEASE="$(cat ".GLUON_RELEASE")"
if ! [ -e ".GLUON_AUTOUPDATER_BRANCH" ]; then
exit 1
fi
GLUON_AUTOUPDATER_BRANCH="$(cat ".GLUON_AUTOUPDATER_BRANCH")"
ssh runner@firmware.ffnw.de -C "rm -rf /var/www/dev/firmware/fastd/nightly/$CI_BUILD_REF_NAME"
ssh runner@firmware.ffnw.de -C "rm -rf /var/www/dev/firmware/l2tp/nightly/$CI_BUILD_REF_NAME"
rsync -av ../output/images/fastd/"$GLUON_RELEASE"/factory/* runner@firmware.ffnw.de:/var/www/dev/firmware/fastd/nightly/"$CI_BUILD_REF_NAME"
rsync -av ../output/images/fastd/"$GLUON_RELEASE"/other/* runner@firmware.ffnw.de:/var/www/dev/firmware/fastd/nightly/"$CI_BUILD_REF_NAME"
rsync -av ../output/images/fastd/"$GLUON_RELEASE"/sysupgrade/* runner@firmware.ffnw.de:/var/www/dev/firmware/fastd/nightly/"$CI_BUILD_REF_NAME"
ssh runner@firmware.ffnw.de -C "ln -sr /var/www/dev/firmware/fastd/nightly/$CI_BUILD_REF_NAME/$GLUON_AUTOUPDATER_BRANCH.manifest /var/www/dev/firmware/fastd/nightly/$CI_BUILD_REF_NAME/manifest"
rsync -av ../output/images/l2tp/"$GLUON_RELEASE"/factory/* runner@firmware.ffnw.de:/var/www/dev/firmware/l2tp/nightly/"$CI_BUILD_REF_NAME"
rsync -av ../output/images/l2tp/"$GLUON_RELEASE"/other/* runner@firmware.ffnw.de:/var/www/dev/firmware/l2tp/nightly/"$CI_BUILD_REF_NAME"
rsync -av ../output/images/l2tp/"$GLUON_RELEASE"/sysupgrade/* runner@firmware.ffnw.de:/var/www/dev/firmware/l2tp/nightly/"$CI_BUILD_REF_NAME"
ssh runner@firmware.ffnw.de -C "ln -sr /var/www/dev/firmware/l2tp/nightly/$CI_BUILD_REF_NAME/$GLUON_AUTOUPDATER_BRANCH.manifest /var/www/dev/firmware/l2tp/nightly/$CI_BUILD_REF_NAME/manifest"
#!/bin/sh
echo "Executing pre-commit hook..."
gitRootDir=$(git rev-parse --show-toplevel)
if ! "$gitRootDir"/.ci/dependencies.sh ; then exit 1; fi
if ! "$gitRootDir"/.ci/shelllint.sh ; then exit 1; fi
if ! "$gitRootDir"/.ci/yamllint.sh ; then exit 1; fi
exit 0
#!/bin/sh
echo "Running ShellLint..."
ret=0
filelist="$(find . -type d -name .git -prune -o -type f -exec sh -c 'for file do file "$file" | grep -q -E "shell|bash|dash|ksh" && echo "$file"; done' sh {} +)"
for line in $filelist; do
shellcheck "$line"
[ $? -eq 1 ] && ret=1
done
exit $ret
#!/bin/bash
if ! [ -e ".GLUON_RELEASE" ]; then
exit 1
fi
GLUON_RELEASE="$(cat ".GLUON_RELEASE")"
if ! [ -e ".GLUON_AUTOUPDATER_BRANCH" ]; then
exit 1
fi
GLUON_AUTOUPDATER_BRANCH="$(cat ".GLUON_AUTOUPDATER_BRANCH")"
ECDSA_PRIVAT_KEY="$1"
echo "$ECDSA_PRIVAT_KEY" > ecdsa.priv
ret=0
echo "$PWD"/ecdsa.priv
if [ -d "../output/images/fastd" ]; then
echo "Signing fastd manifest..."
../contrib/sign.sh "$PWD"/ecdsa.priv "$PWD/../output/images/fastd/$GLUON_RELEASE/sysupgrade/$GLUON_AUTOUPDATER_BRANCH.manifest"
ret=$?
else
echo "Fastd directory not found."
fi
if [ -d "../output/images/l2tp" ]; then
echo "Signing l2tp manifest..."
../contrib/sign.sh "$PWD"/ecdsa.priv "$PWD/../output/images/l2tp/$GLUON_RELEASE/sysupgrade/$GLUON_AUTOUPDATER_BRANCH.manifest"
ret=$?
else
echo "L2tp directory not found."
fi
rm ecdsa.priv
exit $ret
---
extends: default
rules:
line-length:
level: error
max: 100
allow-non-breakable-inline-mappings: true
#!/bin/sh
echo "Running yamllint..."
ret=0
filelist="$(find . -type d -name .git -prune -o -type f -name '*.yaml' -o -name '*.yml')"
for file in $filelist; do
lint_output="$(yamllint --strict -d ./.ci/yaml_rules.yaml "$file")"
if [ -n "$lint_output" ]; then
echo "$lint_output"
ret=1
fi
done
exit $ret
.GLUON_BRANCH
.GLUON_AUTOUPDATER_BRANCH
.GLUON_RELEASE
.patched
.prepare
......
---
variables:
GIT_CLONE_PATH: $CI_BUILDS_DIR/gluon/site
stages:
- dependencies
- lint
- patch
- parameters
- build
- sign
- deploy
- cleanup
# check all needed dependencies.
dependencies:
stage: dependencies
tags:
- firmware
before_script:
# check for required environment variables
- ./.ci/check_env_variables.sh
# Clone or update Gluon repository
- ./.ci/clone_or_update_gluon.sh
- |
(
if [[ "$CI_PIPELINE_SOURCE" == "schedule" ]]; then
cd ..
HEAD_COMMIT_ID=$(git rev-parse HEAD)
cd $GIT_CLONE_PATH
if [ "$HEAD_COMMIT_ID" == "$GLUON_COMMIT_ID_FROM_PREVIOUS_RUN" ]; then
touch skip_pipeline
fi
fi
)
script:
- if [ -f skip_pipeline ]; then exit 0; fi # Exit the job if marker file exists
- ./.ci/dependencies.sh
artifacts:
paths:
- skip_pipeline
expire_in: 1 day
# lint all common shell scripts
shelllint:
stage: lint
tags:
- firmware
script:
- if [ -f skip_pipeline ]; then exit 0; fi # Exit the job if marker file exists
- ./.ci/shelllint.sh
# lint all common yamel files
yamllint:
stage: lint
tags:
- firmware
script:
- if [ -f skip_pipeline ]; then exit 0; fi # Exit the job if marker file exists
- ./.ci/yamllint.sh
# update and patch gluon
prepare_gluon:
stage: patch
tags:
- firmware
artifacts:
paths:
- .patched
expire_in: 1 day
script:
- if [ -f skip_pipeline ]; then exit 0; fi # Exit the job if marker file exists
- touch .patched
- ./buildscript.sh clean_patches
- ./buildscript.sh patch
parameters:
stage: parameters
tags:
- firmware
artifacts:
paths:
- .GLUON_AUTOUPDATER_BRANCH
- .GLUON_RELEASE
expire_in: 1 day
script:
- if [ -f skip_pipeline ]; then exit 0; fi # Exit the job if marker file exists
- ./buildscript.sh prepare GLUON_AUTOUPDATER_BRANCH nightly_master
- ./buildscript.sh prepare GLUON_RELEASE $(date +%Y%m%d)
build:
stage: build
only:
- master
tags:
- firmware
script:
- if [ -f skip_pipeline ]; then exit 0; fi # Exit the job if marker file exists
- touch .prepare
- ./buildscript.sh build all
sign:
stage: sign
only:
- master
tags:
- firmware
script:
- if [ -f skip_pipeline ]; then exit 0; fi # Exit the job if marker file exists
- ./.ci/sign.sh $ECDSA_PRIVAT_KEY
deploy:
stage: deploy
only:
- master
tags:
- firmware
script:
- if [ -f skip_pipeline ]; then exit 0; fi # Exit the job if marker file exists
- ./.ci/deploy.sh $CI_COMMIT_REF_NAME
cleanup:
stage: cleanup
only:
- master
tags:
- firmware
script:
- if [ -f skip_pipeline ]; then exit 0; fi # Exit the job if marker file exists
- touch .patched
- ./buildscript.sh clean_patches
- rm -rf ../output
- |
(
cd ..
export HEAD_COMMIT_ID=$(git rev-parse HEAD)
cd $GIT_CLONE_PATH
curl --request PUT --header "PRIVATE-TOKEN: $ACCESS_TOKEN" \
"https://git.ffnw.de/api/v4/projects/$CI_PROJECT_ID/variables/GLUON_COMMIT_ID_FROM_PREVIOUS_RUN?value=$HEAD_COMMIT_ID"
)
## Als Entwickler tätig werden
Falls dich das Thema der Software entwicklung begeistert und du gerne bereit bist dich in komplexe strukturen einzuarbeiten, sowie gerne einen beitreg zu Freifunk leisten möchtes kannst du dich unter folgenden Link über einen einstieg erkundigen:
Falls dich das Thema der Softwareentwicklung begeistert und du gerne bereit bist dich in komplexe Strukturen einzuarbeiten, sowie gerne einen Beitrag zu Freifunk leisten möchtest kannst du dich unter folgendem Link über einen Einstieg erkundigen:
https://wiki.ffnw.de/Entwicklung/Als\_Entwickler\_t%C3%A4tig\_werden
## Firmware Kompilieren
### Voraussetzungen (Stand Gluon v2016.2.x):
### Voraussetzungen (Stand Gluon v2023.2.x):
Muss auf dem Rechner installiert sein. Hier Beispiel Debian:
Folgende Pakete müssen auf dem Rechner installiert sein. Hier Beispiel Debian:
apt-get install git subversion python build-essential gawk unzip libncurses-dev libz-dev libssl-dev
apt-get install git subversion python build-essential gawk unzip libncurses-dev libz-dev libssl-dev wget time
### Gluon kompilieren
......@@ -17,20 +17,19 @@ Auf dieser Seite wird beschrieben, wie man die Gluon Firmware für das Freifunk
*Wichtig* Je nach Entwicklungsstand muss die Branch Version angepasst werden.
git clone https://github.com/freifunk-gluon/gluon.git ./freifunk_build -b v2016.2.x && cd ./freifunk_build
git clone https://git.ffnw.de/ffnw-firmware/siteconf.git site -b 20170502 && de site
./prepare.sh patch
cd ..
make update
# GLUON_BRANCH: gibt den zu verwendenden Gluon-Branch an
# GLUON_TARGET: gibt die Gruppe der zu bauenden Images an (siehe Gluon Doku)
# V: wenn V=s dann wird debug Output beim Kompilieren eingeschaltet
make -j $(($(grep -c processor /proc/cpuinfo)*2)) GLUON_BRANCH=stable GLUON_TARGET=ar71xx-generic V=s
git clone https://github.com/freifunk-gluon/gluon.git -b v2023.2.x && cd gluon
git clone https://git.ffnw.de/ffnw-firmware/siteconf.git site && cd site
./buildscript.sh patch
./buildscript.sh prepare GLUON_AUTOUPDATER_BRANCH <autoupdater-branch, also zB "stable" oder "testing">
./buildscript.sh prepare GLUON_RELEASE <Releasecodename, zB das aktuelle Datum im Format YYYYMMDD>
./buildscript.sh prepare <vpn, zB "fastd" oder "l2tp">
./buildscript.sh build <target, zB "x86-generic"> fast
### Manifest und initiale Signatur erstellen
*Hinweis* Auf Multicoresystemen sorgt die option `fast` dafür, dass alle vefügbaren CPU-Kerne für den Build genutzt werden.
make manifest GLUON_BRANCH=stable
### Manifest und initiale Signatur erstellen
./buildscript.sh create_manifest manifest
./contrib/sign.sh ../firmware/release_keys/ecdsa-privatekey ./output/images/sysupgrade/stable.manifest
Weitere Informationen z.B. zu automatischen Builds auch unter https://gluon.readthedocs.org/en/latest/features/autoupdater.html
......
......@@ -11,17 +11,21 @@ help_print(){
echo "command:"
echo " patch Apply patches on gluon build ENV"
echo " clean_patches Remove applied patches from gluon repo"
echo " update-patches Create patches from local gluon commits"
echo " update_patches Create patches from local gluon commits"
echo " prepare <command>"
echo " GLUON_BRANCH <str> Set ENV variable"
echo " GLUON_AUTOUPDATER_BRANCH <str> Set ENV variable"
echo " GLUON_RELEASE <str> Set ENV variable"
echo " fastd Prepare site repo for fastd build"
# echo " fastd Prepare site repo for fastd build"
echo " l2tp prepare site repo for l2tp build"
echo " BROKEN y or n (default n)"
echo " build <command> <command> can be replace with targets"
echo " build <target> targets provided by gluon"
echo " target_list build all gluon targets"
echo " all build all gluon targes for each VPN"
echo " all build all gluon targets for each VPN"
echo " (optional) add \"fast\" as a parameter to build on multicore"
echo " (optional) add \"silent\" as a parameter to avoid loads of output"
echo " clean <target> targets provided by gluon"
echo " all clean all targets"
echo " (optional) add \"fast\" as a parameter to clean on multicore"
echo " create_manifest create manifest"
echo
}
......@@ -49,7 +53,7 @@ clean_patches(){
if [ -f "$EXECDIR/.patched" ]; then
local base="$EXECDIR"
cd "$EXECDIR"/.. || exit 1
git reset --hard "origin/v2018.2.x"
git reset --hard "origin/$(git rev-parse --abbrev-ref HEAD)"
cd "$EXECDIR" || exit 1
rm "$EXECDIR/.patched"
else
......@@ -60,7 +64,7 @@ clean_patches(){
update_patches() {
local base="$EXECDIR"
cd "$EXECDIR"/.. || exit 1
git format-patch "origin/v2018.2.x" -o "$EXECDIR/gluon_patches"
git format-patch "origin/$(git rev-parse --abbrev-ref HEAD)" -o "$EXECDIR/gluon_patches"
cd "$base" || exit 1
}
......@@ -88,36 +92,42 @@ prepare_siteconf(){
echo "Placeholder %A not found"
fi
if grep -q "%B" < "$EXECDIR"/site.conf; then
sed -i "/^%B$/c\\\\'http://autoupdate-lede.ffnw/$vpn/stable\\'," "$EXECDIR"/site.conf
sed -i "/^%B$/c\\\\'http://autoupdate-lede.ffnw/v1/$vpn/stable\\'," "$EXECDIR"/site.conf
echo "Set autoupdater stable URL ..."
else
echo "Placeholder %B not found"
fi
if grep -q "%C" < "$EXECDIR"/site.conf; then
sed -i "/^%C$/c\\\\'http://autoupdate-lede.ffnw/$vpn/testing\\'," "$EXECDIR"/site.conf
echo "Set autoupdater testing URL ..."
sed -i "/^%C$/c\\\\'http://autoupdate-lede.ffnw/v1/$vpn/rc\\'," "$EXECDIR"/site.conf
echo "Set autoupdater rc URL ..."
else
echo "Placeholder %C not found"
fi
if grep -q "%D" < "$EXECDIR"/site.conf; then
sed -i "/^%D$/c\\\\'http://autoupdate-lede.ffnw/$vpn/nightly/master\\'," "$EXECDIR"/site.conf
echo "Set autoupdater nightly_master URL ..."
sed -i "/^%D$/c\\\\'http://autoupdate-lede.ffnw/v1/$vpn/testing\\'," "$EXECDIR"/site.conf
echo "Set autoupdater testing URL ..."
else
echo "Placeholder %D not found"
fi
if grep -q "%E" < "$EXECDIR"/site.conf; then
sed -i "/^%E$/c\\\\'http://autoupdate-lede.ffnw/v1/$vpn/nightly/master\\'," "$EXECDIR"/site.conf
echo "Set autoupdater nightly_master URL ..."
else
echo "Placeholder %E not found"
fi
}
prepare_sitemk(){
local vpn="$1"
init_prepare "$vpn" "site.mk"
# Start prepare site.mk for build
if grep -q "%A" < "$EXECDIR"/site.mk; then
if grep -q "%A" < "$EXECDIR"/image-customization.lua; then
if [ "$vpn" == "l2tp" ]; then
sed -i "/^%A$/c\\\\tmesh-vpn-tunneldigger \\\\" "$EXECDIR"/site.mk
sed -i "/^%A$/c\\\\t'mesh-vpn-tunneldigger'," "$EXECDIR"/image-customization.lua
echo "Set mesh-vpn-tunneldigger feature ..."
fi
if [ "$vpn" == "fastd" ]; then
sed -i "/^%A$/c\\\\tweb-mesh-vpn-fastd \\\\" "$EXECDIR"/site.mk
sed -i "/^%A$/c\\\\tweb-mesh-vpn-fastd" "$EXECDIR"/image-customization.lua
echo "Set web-mesh-vpn-fastd feature ..."
fi
else
......@@ -131,32 +141,52 @@ prepare_sitemk(){
echo "Placeholder %B not found"
fi
if grep -q "%C" < "$EXECDIR"/site.mk; then
sed -i "/^%C$/c\\GLUON_BRANCH ?= $(cat "$EXECDIR/.GLUON_BRANCH")" "$EXECDIR"/site.mk
echo "Set GLUON_BRANCH ..."
sed -i "/^%C$/c\\GLUON_AUTOUPDATER_BRANCH ?= $(cat "$EXECDIR/.GLUON_AUTOUPDATER_BRANCH")" "$EXECDIR"/site.mk
echo "Set GLUON_AUTOUPDATER_BRANCH ..."
else
echo "Placeholder %C not found"
fi
}
gluon_build(){
preflags=( -C "$EXECDIR"/..)
midflags=()
postflags=(GLUON_TARGET="$1" GLUON_AUTOUPDATER_ENABLED=1 GLUON_IMAGEDIR=output/images/"$(cat "$EXECDIR"/.prepare)"/"$(cat "$EXECDIR"/.GLUON_RELEASE)" GLUON_PACKAGEDIR=output/packages/"$(cat "$EXECDIR"/.prepare)")
error_build=0
if [ "$2" == "fast" ] && [ -a "/proc/cpuinfo" ]; then
if [ -a "$EXECDIR/.BROKEN" ]; then
make -C "$EXECDIR/.." -j $(($(grep -c processor /proc/cpuinfo)*2)) BROKEN=1 GLUON_TARGET="$1" GLUON_IMAGEDIR="output/images/$(cat "$EXECDIR/.prepare")/$(cat "$EXECDIR/.GLUON_RELEASE")" GLUON_PACKAGEDIR="output/packages/$(cat "$EXECDIR/.prepare")"
else
make -C "$EXECDIR/.." -j $(($(grep -c processor /proc/cpuinfo)*2)) GLUON_TARGET="$1" GLUON_IMAGEDIR="output/images/$(cat "$EXECDIR/.prepare")/$(cat "$EXECDIR/.GLUON_RELEASE")" GLUON_PACKAGEDIR="output/packages/$(cat "$EXECDIR/.prepare")"
fi
else
if [ -a "$EXECDIR/.BROKEN" ]; then
make -C "$EXECDIR/.." BROKEN=1 GLUON_TARGET="$1" GLUON_IMAGEDIR="output/images/$(cat "$EXECDIR/.prepare")/$(cat "$EXECDIR/.GLUON_RELEASE")" GLUON_PACKAGEDIR="output/packages/$(cat "$EXECDIR/.prepare")"
else
make -C "$EXECDIR/.." GLUON_TARGET="$1" GLUON_IMAGEDIR="output/images/$(cat "$EXECDIR/.prepare")/$(cat "$EXECDIR/.GLUON_RELEASE")" GLUON_PACKAGEDIR="output/packages/$(cat "$EXECDIR/.prepare")"
fi
midflags=("${midflags[@]}" -j $(($(grep -c processor /proc/cpuinfo)+1)))
fi
if [ "$3" == "silent" ]; then
preflags=( --silent "${preflags[@]}")
fi;
if [ -a "$EXECDIR/.BROKEN" ]; then
midflags=("${midflags[@]}" BROKEN=1)
fi;
if ! make "${preflags[@]}" "${midflags[@]}" "${postflags[@]}"; then
error_build=1
fi;
if [ $error_build -eq 1 ]; then
exit 1
fi
}
gluon_clean(){
preflags=( -C "$EXECDIR"/..)
midflags=()
postflags=(GLUON_TARGET="$1" GLUON_IMAGEDIR=output/images/"$(cat "$EXECDIR"/.prepare)"/"$(cat "$EXECDIR"/.GLUON_RELEASE)" GLUON_PACKAGEDIR=output/packages/"$(cat "$EXECDIR"/.prepare)")
if [ "$2" == "fast" ] && [ -a "/proc/cpuinfo" ]; then
midflags=("${midflags[@]}" -j $(($(grep -c processor /proc/cpuinfo)+1)))
fi
if [ -a "$EXECDIR/.BROKEN" ]; then
midflags=("${midflags[@]}" BROKEN=1)
fi
make "${preflags[@]}" "${midflags[@]}" "${postflags[@]}" clean
}
prepare_precondition(){
if ! [ -s "$EXECDIR/.GLUON_BRANCH" ]; then
echo "please run '$0 prepare GLUON_BRANCH' first"
if ! [ -s "$EXECDIR/.GLUON_AUTOUPDATER_BRANCH" ]; then
echo "please run '$0 prepare GLUON_AUTOUPDATER_BRANCH' first"
exit 1
fi
if ! [ -s "$EXECDIR/.GLUON_RELEASE" ]; then
......@@ -169,12 +199,13 @@ get_target_list(){
while read -r line; do
if [[ $line == *GluonTarget* ]]; then
# extract arcitecture parameter value
local targ="$(echo "$line" | sed -e 's/^.*GluonTarget,//' -e 's/)).*//' -r -e 's/([^,]+,[^,]*).*/\1/' -e 's/[,]/-/')"
local targ
targ="$(echo "$line" | sed -e 's/^.*GluonTarget,//' -e 's/)).*//' -r -e 's/([^,]+,[^,]*).*/\1/' -e 's/[,]/-/')"
if [ -n "$targ" ]; then
TARGET_LIST[${#TARGET_LIST[@]}]="$targ"
fi
else
if [[ $line == *BROKEN* ]] && ! [ -a "$EXECDIR/.BROKEN" ]; then
if [[ $line == *BROKEN* ]] && ! [[ $line == *GLUON_WLAN_MESH_11s* ]] && ! [ -a "$EXECDIR/.BROKEN" ]; then
break
fi
fi
......@@ -182,8 +213,8 @@ get_target_list(){
}
if ! git -C "$EXECDIR"/.. rev-parse --abbrev-ref HEAD | grep -q "v2018.2.x"; then
echo "no gluon repo found or wrong branch (should be v2018.2.x). Please clone this git reposetory into the gluon git reposetory"
if ! git -C "$EXECDIR"/.. rev-parse --abbrev-ref HEAD | grep -q "$GLUON_AUTOUPDATER_BRANCH"; then
echo "no gluon repo found or wrong branch. Please clone this git repository into the gluon git repository"
exit 1
fi
......@@ -194,21 +225,21 @@ case "$1" in
"clean_patches")
clean_patches
;;
"update-patches")
"update_patches")
update_patches
;;
"prepare")
case "$2" in
"fastd")
prepare_precondition
if ! [ -f "$EXECDIR/.patched" ]; then
patch_gluon
fi
prepare_siteconf "$2"
prepare_sitemk "$2"
make -C "$EXECDIR"/.. update
echo "$2" > "$EXECDIR/.prepare"
;;
# "fastd")
# prepare_precondition
# if ! [ -f "$EXECDIR/.patched" ]; then
# patch_gluon
# fi
# prepare_siteconf "$2"
# prepare_sitemk "$2"
# make -C "$EXECDIR"/.. update
# echo "$2" > "$EXECDIR/.prepare"
# ;;
"l2tp")
prepare_precondition
if ! [ -f "$EXECDIR/.patched" ]; then
......@@ -219,9 +250,9 @@ case "$1" in
make -C "$EXECDIR/.." update
echo "$2" > "$EXECDIR/.prepare"
;;
"GLUON_BRANCH")
"GLUON_AUTOUPDATER_BRANCH")
if [ -n "$3" ]; then
echo "$3" > "$EXECDIR/.GLUON_BRANCH"
echo "$3" > "$EXECDIR/.GLUON_AUTOUPDATER_BRANCH"
else
echo "$2 needs a parameter e.g. testing"
fi
......@@ -259,18 +290,22 @@ case "$1" in
"target_list")
for targ in "${TARGET_LIST[@]}"; do
if [ "$3" == "fast" ]; then
gluon_build "$targ" "fast"
if [ "$4" == "silent" ]; then
gluon_build "$targ" "fast" "silent"
else
gluon_build "$targ" "fast"
fi
else
gluon_build "$targ"
fi
done
;;
"all")
"$EXECDIR/$0" prepare fastd
"$EXECDIR/$0" build target_list "fast"
"$EXECDIR/$0" create_manifest
# "$EXECDIR/$0" prepare fastd
# "$EXECDIR/$0" build target_list "fast" "silent"
# "$EXECDIR/$0" create_manifest
"$EXECDIR/$0" prepare l2tp
"$EXECDIR/$0" build target_list "fast"
"$EXECDIR/$0" build target_list "fast" "silent"
"$EXECDIR/$0" create_manifest
;;
*)
......@@ -286,7 +321,44 @@ case "$1" in
fi
done
if [ "$err" == "yes" ]; then
echo "Please use targes from the following list as parameter:"
echo "Please use targets from the following list as parameter:"
for targ in "${TARGET_LIST[@]}"; do
echo "$targ"
done
fi
;;
esac
;;
"clean")
if ! [ -r "$EXECDIR"/.prepare ]; then
echo "please run the prepare mode first"
exit 1
fi
get_target_list
case "$2" in
"all")
for targ in "${TARGET_LIST[@]}"; do
if [ "$3" == "fast" ]; then
gluon_clean "$targ" "fast"
else
gluon_clean "$targ"
fi
done
;;
*)
err="yes"
for targ in "${TARGET_LIST[@]}"; do
if [ "$targ" == "$2" ]; then
err="no"
if [ "$3" == "fast" ]; then
gluon_clean "$targ" "fast"
else
gluon_clean "$targ"
fi
fi
done
if [ "$err" == "yes" ]; then
echo "Please use targets from the following list as parameter:"
for targ in "${TARGET_LIST[@]}"; do
echo "$targ"
done
......@@ -294,18 +366,27 @@ case "$1" in
;;
esac
;;
"create_manifest")
if ! [ -r "$EXECDIR"/.prepare ]; then
echo "please run the prepare mode first"
exit 1
fi
preflags=(-C "$EXECDIR"/..)
midflags=()
postflags=( GLUON_IMAGEDIR=output/images/"$(cat "$EXECDIR"/.prepare)"/"$(cat "$EXECDIR"/.GLUON_RELEASE)" GLUON_PACKAGEDIR=output/packages/"$(cat "$EXECDIR"/.prepare)")
if [ -a "$EXECDIR/.BROKEN" ]; then
make -C "$EXECDIR/.." manifest BROKEN=1 GLUON_IMAGEDIR="output/images/$(cat "$EXECDIR/.prepare")/$(cat "$EXECDIR/.GLUON_RELEASE")" GLUON_PACKAGEDIR="output/packages/$(cat "$EXECDIR/.prepare")"
else
make -C "$EXECDIR/.." manifest GLUON_IMAGEDIR="output/images/$(cat "$EXECDIR/.prepare")/$(cat "$EXECDIR/.GLUON_RELEASE")" GLUON_PACKAGEDIR="output/packages/$(cat "$EXECDIR/.prepare")"
fi
midflags=("${midflags[@]}" BROKEN=1)
fi;
make "${preflags[@]}" manifest "${midflags[@]}" "${postflags[@]}"
# create rc branch manifest
if [ -f "$EXECDIR/../output/images/$(cat "$EXECDIR"/.prepare)/$(cat "$EXECDIR"/.GLUON_RELEASE)/sysupgrade/$(cat "$EXECDIR"/.GLUON_AUTOUPDATER_BRANCH).manifest" ]; then
cp "$EXECDIR/../output/images/$(cat "$EXECDIR"/.prepare)/$(cat "$EXECDIR"/.GLUON_RELEASE)/sysupgrade/$(cat "$EXECDIR"/.GLUON_AUTOUPDATER_BRANCH).manifest" "$EXECDIR/../output/images/$(cat "$EXECDIR"/.prepare)/$(cat "$EXECDIR"/.GLUON_RELEASE)/sysupgrade/rc.manifest"
sed -i 's/BRANCH=stable/BRANCH=rc/g' "$EXECDIR/../output/images/$(cat "$EXECDIR"/.prepare)/$(cat "$EXECDIR"/.GLUON_RELEASE)/sysupgrade/rc.manifest"
fi;
;;
*)
help_print
;;
esac
{
domain_names = { aurich = 'aurich' },
domain_names = { aurich = 'Aurich' },
domain_seed = 'e985c7b8f3174811cd2f9e4cd2ccbf899adbc8f2b3ce0f3f28c8289c2b9599cb',
prefix6 = '2a03:2260:1001:1800::/64',
extra_prefixes6 = { 'fd74:fdaa:9dc4:1800::/64' },
prefix6 = '2a0f:b506:ff01::/64',
extra_prefixes6 = { 'fd74:fdaa:9dc4::/64', '2a06:e881:2000:4c01::/64', },
prefix4 = '10.18.24.0/21',
wifi24 = {
ap = {
ssid = 'testing.nordwest.freifunk.net',
ssid = 'test.nordwest.freifunk.net',
owe_ssid = 'owe.test.nordwest.freifunk.net',
owe_transition_mode = true,
},
mesh = {
id = 't-ffnw-mesh_02:00:0A:12:18:00',
id = 't-ffnw-mesh_02:00:0a:12:18:00',
},
},
wifi5 = {
ap = {
ssid = 'testing.nordwest.freifunk.net',
ssid = 'test.nordwest.freifunk.net',
owe_ssid = 'owe.test.nordwest.freifunk.net',
owe_transition_mode = true,
},
mesh = {
id = 't-ffnw-mesh_02:00:0A:12:18:00',
id = 't-ffnw-mesh_02:00:0a:12:18:00',
},
},
next_node = {
name = { 'node.ffnw', 'nextnode', 'nn' },
ip6 = 'fd74:fdaa:9dc4:1800::1:1',
ip4 = '10.18.24.1',
ip6 = 'fd74:fdaa:9dc4::127',
mac = '16:41:95:40:f7:dc',
},
mesh_vpn = {
fastd = {
groups = {
backbone = {
peers = {
leer01 = {
key ='98ea2bdc5307f96d4c71461b07ff7011d941ff75f7c32310e1880a5be2e95c7b',
remotes = {'"leer01.sn.ffnw.de" port 10002'},
},
leer02 = {
key ='e52904c61760b1d05cd309cbbf1fdaa0de00377de6f62be5458eb4bb389de8fa',
remotes = {'"leer01.sn.ffnw.de" port 10003'},
},
},
},
},
},
tunneldigger = {
brokers = {'leer01.sn.ffnw.de:9001'}
},
......@@ -53,36 +41,51 @@
hoodselector = {
shapes = {
{
{
lat = 53.32,
lon = 6.981
},
{
lat = 53.32,
lon = 7.322
},
{
lat = 53.372,
lon = 6.98
lon = 7.322
},
{
lat = 53.372,
lon = 7.825
},
{
lat = 53.436,
lon = 7.825
},
},
{
{
lat = 53.32,
lon = 6.98
lat = 53.436,
lon = 7.648
},
{
lat = 53.372,
lon = 7.322
lat = 53.806,
lon = 7.648
},
{
lat = 53.806,
lon = 6.624
},
},
{
{
lat = 53.436,
lon = 6.624
},
{
lat = 53.807,
lon = 7.648
lat = 53.436,
lon = 6.981
},
},
},
},
{
lat = 53.32,
lon = 6.981
}
}
}
}
}
{
domain_names = { bad_iburg = 'bad-iburg' },
domain_names = { bad_iburg = 'Bad Iburg' },
domain_seed = '8aa86f0990b0c386bc70426c8afe19f783c181a87b6670c4ac83fb302cfb5de9',
prefix6 = '2a06:e881:2000:4303::/64',
extra_prefixes6 = { 'fd74:fdaa:9dc4:5800::/64' },
prefix6 = '2a0f:b506:ff02::/64',
extra_prefixes6 = { 'fd74:fdaa:9dc4::/64', '2a06:e881:2000:4303::/64' },
prefix4 = '10.18.88.0/21',
wifi24 = {
ap = {
ssid = 'testing.nordwest.freifunk.net',
ssid = 'test.nordwest.freifunk.net',
owe_ssid = 'owe.test.nordwest.freifunk.net',
owe_transition_mode = true,
},
mesh = {
id = 't-ffnw-mesh_02:00:0A:12:58:00',
id = 't-ffnw-mesh_02:00:0a:12:58:00',
},
},
wifi5 = {
ap = {
ssid = 'testing.nordwest.freifunk.net',
ssid = 'test.nordwest.freifunk.net',
owe_ssid = 'owe.test.nordwest.freifunk.net',
owe_transition_mode = true,
},
mesh = {
id = 't-ffnw-mesh_02:00:0A:12:58:00',
id = 't-ffnw-mesh_02:00:0a:12:58:00',
},
},
next_node = {
name = { 'node.ffnw', 'nextnode', 'nn' },
ip6 = 'fd74:fdaa:9dc4:5800::1:1',
ip4 = '10.18.88.1',
ip6 = 'fd74:fdaa:9dc4::127',
mac = '16:41:95:40:f7:dc',
},
mesh_vpn = {
fastd = {
groups = {
backbone = {
peers = {
os01 = {
key ='fef1a503efa6e25b5177af6dd6347f0b1a8ae3393c15752a6beefe8da06d0683',
remotes = {'"os02.sn.ffnw.de" port 10002'},
},
os02 = {
key ='b3c46fb7089261901d2e8dd531abe63e67856700f5eeec9191d5342ada6c73b1',
remotes = {'"os02.sn.ffnw.de" port 10003'},
},
},
},
},
},
tunneldigger = {
brokers = {'os02.sn.ffnw.de:9001'}
},
......@@ -55,11 +43,31 @@
{
{
lat = 52.07,
lon = 7.99
lon = 7.9
},
{
lat = 52.07,
lon = 8.42
},
{
lat = 52.23,
lon = 8.42
},
{
lat = 52.182,
lon = 8.15
lat = 52.23,
lon = 8.16
},
{
lat = 52.19,
lon = 8.16
},
{
lat = 52.19,
lon = 7.9
},
{
lat = 52.07,
lon = 7.9
}
}
}
......
{
domain_names = { bremen = 'Bremen' },
domain_seed = 'da213cd742af54c91a6840f381ab8aaaf9ed0b5ff175f88175c76c07e85872ba',
prefix6 = '2a0f:b506:ff03::/64',
extra_prefixes6 = { 'fd74:fdaa:9dc4::/64', '2a06:e881:2000:4830::/64' },
prefix4 = '10.72.48.0/21',
wifi24 = {
ap = {
ssid = 'test.nordwest.freifunk.net',
owe_ssid = 'owe.test.nordwest.freifunk.net',
owe_transition_mode = true,
},
mesh = {
id = 't-ffnw-mesh_02:00:0a:48:30:00',
},
},
wifi5 = {
ap = {
ssid = 'test.nordwest.freifunk.net',
owe_ssid = 'owe.test.nordwest.freifunk.net',
owe_transition_mode = true,
},
mesh = {
id = 't-ffnw-mesh_02:00:0a:48:30:00',
},
},
next_node = {
name = { 'node.ffnw', 'nextnode', 'nn' },
ip6 = 'fd74:fdaa:9dc4::127',
mac = '16:41:95:40:f7:dc',
},
mesh_vpn = {
tunneldigger = {
brokers = {'bre01.sn.ffnw.de:9001'}
},
},
hoodselector = {
shapes = {
{
{
lat = 53.22,
lon = 8.51
},
{
lat = 52.944,
lon = 8.51
},
{
lat = 52.944,
lon = 8.800048828125
},
{
lat = 53.03543290697411,
lon = 8.977890014648438
},
{
lat = 53.095673355930195,
lon = 8.993682861328125
},
{
lat = 53.160770182808506,
lon = 8.966217041015625
},
{
lat = 53.13400178113812,
lon = 8.865966796875
},
{
lat = 53.16324027106289,
lon = 8.834381103515625
},
{
lat = 53.1842302823796,
lon = 8.719711303710936
},
{
lat = 53.18505321083605,
lon = 8.675765991210938
},
{
lat = 53.22,
lon = 8.59405517578125
},
{
lat = 53.22,
lon = 8.51
}
}
}
}
}
{
domain_names = { butjadingen = 'butjadingen' },
domain_names = { butjadingen = 'Butjadingen' },
domain_seed = '951aab38a95615e4803084ab6aac24f6722f316a2a7e482488df9bfa39908bd2',
prefix6 = '2a03:2260:1001:b000::/64',
extra_prefixes6 = { 'fd74:fdaa:9dc4:b000::/64' },
prefix6 = '2a0f:b506:ff04::/64',
extra_prefixes6 = { 'fd74:fdaa:9dc4::/64', '2a06:e881:2000:4500::/64' },
prefix4 = '10.18.176.0/21',
wifi24 = {
ap = {
ssid = 'testing.nordwest.freifunk.net',
ssid = 'test.nordwest.freifunk.net',
owe_ssid = 'owe.test.nordwest.freifunk.net',
owe_transition_mode = true,
},
mesh = {
id = 't-ffnw-mesh_02:00:0A:12:B0:00',
id = 't-ffnw-mesh_02:00:0a:12:b0:00',
},
},
wifi5 = {
ap = {
ssid = 'testing.nordwest.freifunk.net',
ssid = 'test.nordwest.freifunk.net',
owe_ssid = 'owe.test.nordwest.freifunk.net',
owe_transition_mode = true,
},
mesh = {
id = 't-ffnw-mesh_02:00:0A:12:B0:00',
id = 't-ffnw-mesh_02:00:0a:12:b0:00',
},
},
next_node = {
name = { 'node.ffnw', 'nextnode', 'nn' },
ip6 = 'fd74:fdaa:9dc4:b000::1:1',
ip4 = '10.18.176.1',
ip6 = 'fd74:fdaa:9dc4::127',
mac = '16:41:95:40:f7:dc',
},
mesh_vpn = {
fastd = {
groups = {
backbone = {
peers = {
lk_bra01 = {
key ='e581343a5d17afc1c8c205424e00e26adef6c520ec54b6f462f962245e5b02cd',
remotes = {'"lk-bra01.sn.ffnw.de" port 10000'},
},
lk_bra02 = {
key = 'f9940159383e953044102b3e1529f568dd068c3f34062177ef74d244e06f65ef',
remotes = {'"lk-bra02.sn.ffnw.de" port 10001'},
},
},
},
},
},
tunneldigger = {
brokers = {'bra01.sn.ffnw.de:9000'}
},
......@@ -57,9 +45,21 @@
lat = 53.5,
lon = 8.315
},
{
lat = 53.5,
lon = 8.403
},
{
lat = 53.63,
lon = 8.403
},
{
lat = 53.63,
lon = 8.315
},
{
lat = 53.5,
lon = 8.315
}
}
}
......
......@@ -2,50 +2,38 @@
domain_names = { default = 'default', },
domain_seed = '67e4ecc921bc95678c1db7fcf3f684b82976b5b86c43e41511bb76b72c075b7b',
prefix6 = '2a03:2260:1001:e000::/64',
extra_prefixes6 = { 'fd74:fdaa:9dc4:e000::/64', },
prefix6 = '2a0f:b506:ff05::/64',
extra_prefixes6 = { 'fd74:fdaa:9dc4::/64', '2a06:e881:2000:4800::/64' },
prefix4 = '10.18.224.0/21',
wifi24 = {
ap = {
ssid = 'testing.nordwest.freifunk.net',
ssid = 'test.nordwest.freifunk.net',
owe_ssid = 'owe.test.nordwest.freifunk.net',
owe_transition_mode = true,
},
mesh = {
id = 't-ffnw-mesh_02:00:0A:12:E0:00',
id = 't-ffnw-mesh_02:00:0a:12:e0:00',
},
},
wifi5 = {
ap = {
ssid = 'testing.nordwest.freifunk.net',
ssid = 'test.nordwest.freifunk.net',
owe_ssid = 'owe.test.nordwest.freifunk.net',
owe_transition_mode = true,
},
mesh = {
id = 't-ffnw-mesh_02:00:0A:12:E0:00',
id = 't-ffnw-mesh_02:00:0a:12:e0:00',
},
},
next_node = {
name = { 'node.ffnw', 'nextnode', 'nn' },
ip6 = 'fd74:fdaa:9dc4:e000::1:1',
ip4 = '10.18.224.1',
ip6 = 'fd74:fdaa:9dc4::127',
mac = '16:41:95:40:f7:dc',
},
mesh_vpn = {
fastd = {
groups = {
backbone = {
peers = {
default01 = {
key ='22e270ff9b2d1017c3a0b00dd22a58ef7e5915a355eeb16f0b8b52d7eb377869',
remotes = {'"default06.ffnw.de" port 11111'},
},
default02 = {
key ='49f91cb7adabccc5c8876394d3bbe4f1927aa54c21af1a811a88cc44b5a12bfb',
remotes = {'"default06.ffnw.de" port 11112'},
},
},
},
},
},
tunneldigger = {
brokers = {'default06.ffnw.de:9000'}
},
......
{
domain_names = { grafschaft_bentheim = 'grafschaft-bentheim' },
domain_names = { grafschaft_bentheim = 'Grafschaft Bentheim' },
domain_seed = '5cf1fbc9e917174cc157870116183da68e1994ac75cce4cfe612a26b4fef606c',
prefix6 = '2a03:2260:1001:5000::/64',
extra_prefixes6 = { 'fd74:fdaa:9dc4:5000::/64' },
prefix6 = '2a0f:b506:ff07::/64',
extra_prefixes6 = { 'fd74:fdaa:9dc4::/64', '2a06:e881:2000:4a01::/64' },
prefix4 = '10.18.80.0/21',
wifi24 = {
ap = {
ssid = 'testing.nordwest.freifunk.net',
ssid = 'test.nordwest.freifunk.net',
owe_ssid = 'owe.test.nordwest.freifunk.net',
owe_transition_mode = true,
},
mesh = {
id = 't-ffnw-mesh_02:00:0A:12:50:00',
id = 't-ffnw-mesh_02:00:0a:12:50:00',
},
},
wifi5 = {
ap = {
ssid = 'testing.nordwest.freifunk.net',
ssid = 'test.nordwest.freifunk.net',
owe_ssid = 'owe.test.nordwest.freifunk.net',
owe_transition_mode = true,
},
mesh = {
id = 't-ffnw-mesh_02:00:0A:12:50:00',
id = 't-ffnw-mesh_02:00:0a:12:50:00',
},
},
next_node = {
name = { 'node.ffnw', 'nextnode', 'nn' },
ip6 = 'fd74:fdaa:9dc4:5000::1:1',
ip4 = '10.18.80.1',
ip6 = 'fd74:fdaa:9dc4::127',
mac = '16:41:95:40:f7:dc',
},
mesh_vpn = {
fastd = {
groups = {
backbone = {
peers = {
clp01 = {
key ='dcf496d15011e9f5fab63505c5e3b2eabab03d03b8f2319341ec53e31c6718c5',
remotes = {'"clp01.sn.ffnw.de" port 10002'},
},
clp02 = {
key ='0bc26b5fc747492d265aae55314da3439619a7c41013e0dbbc44de8644195313',
remotes = {'"clp01.sn.ffnw.de" port 10003'},
},
},
},
},
},
tunneldigger = {
brokers = {'clp01.sn.ffnw.de:9001'}
},
......@@ -57,19 +45,29 @@
lat = 52.178,
lon = 6.652
},
{
lat = 52.69,
lon = 7.244
}
},
{
{
lat = 52.178,
lon = 7.244
lon = 7.41
},
{
lat = 52.35,
lon = 7.41
},
{
lat = 52.35,
lon = 7.244
},
{
lat = 52.69,
lon = 7.244
},
{
lat = 52.69,
lon = 6.652
},
{
lat = 52.178,
lon = 6.652
}
}
}
......
{
domain_names = { ibbenbueren = 'ibbenbueren' },
domain_names = { ibbenbueren = 'Ibbenbüren' },
domain_seed = 'ed7168fd157f2c00e26bedbd6ae533700030d9eb61f8877c3b168243c573c6c1',
prefix6 = '2a03:2260:1001:4800::/64',
extra_prefixes6 = { 'fd74:fdaa:9dc4:4800::/64' },
prefix6 = '2a0f:b506:ff08::/64',
extra_prefixes6 = { 'fd74:fdaa:9dc4::/64', '2a06:e881:2000:4201::/64' },
prefix4 = '10.18.72.0/21',
wifi24 = {
ap = {
ssid = 'testing.nordwest.freifunk.net',
ssid = 'test.nordwest.freifunk.net',
owe_ssid = 'owe.test.nordwest.freifunk.net',
owe_transition_mode = true,
},
mesh = {
id = 't-ffnw-mesh_02:00:0A:12:48:00',
id = 't-ffnw-mesh_02:00:0a:12:48:00',
},
},
wifi5 = {
ap = {
ssid = 'testing.nordwest.freifunk.net',
ssid = 'test.nordwest.freifunk.net',
owe_ssid = 'owe.test.nordwest.freifunk.net',
owe_transition_mode = true,
},
mesh = {
id = 't-ffnw-mesh_02:00:0A:12:48:00',
id = 't-ffnw-mesh_02:00:0a:12:48:00',
},
},
next_node = {
name = { 'node.ffnw', 'nextnode', 'nn' },
ip6 = 'fd74:fdaa:9dc4:4800::1:1',
ip4 = '10.18.72.1',
ip6 = 'fd74:fdaa:9dc4::127',
mac = '16:41:95:40:f7:dc',
},
mesh_vpn = {
fastd = {
groups = {
backbone = {
peers = {
st01 = {
key ='3e006396edd0c721991e2cc49ab0ab5323903308001e10fa400812f8670bca95',
remotes = {'"st01.sn.ffnw.de" port 10002'},
},
st02 = {
key ='820ded034dff272975d3c2eab056a0cefd5876e67297bdc55f4663d2c88c490a',
remotes = {'"st01.sn.ffnw.de" port 10003'},
},
},
},
},
},
tunneldigger = {
brokers = {'lk-st01.sn.ffnw.de:9001'}
},
......@@ -57,9 +45,21 @@
lat = 52.25,
lon = 7.66
},
{
lat = 52.25,
lon = 7.76
},
{
lat = 52.3,
lon = 7.76
},
{
lat = 52.3,
lon = 7.66
},
{
lat = 52.25,
lon = 7.66
}
}
}
......