diff --git a/gluon/gluon-core/Makefile b/gluon/gluon-core/Makefile new file mode 100644 index 0000000..7303498 --- /dev/null +++ b/gluon/gluon-core/Makefile @@ -0,0 +1,35 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=gluon-core +PKG_VERSION:=0.3.2.99 +PKG_RELEASE:=1 + +PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME) + +include $(INCLUDE_DIR)/package.mk + +define Package/gluon-core + SECTION:=gluon + CATEGORY:=Gluon + TITLE:=Base files of Gluon +endef + +define Package/gluon-core/description + The core of the Gluon community wifi mesh firmware framework +endef + +define Build/Prepare + mkdir -p $(PKG_BUILD_DIR) +endef + +define Build/Configure +endef + +define Build/Compile +endef + +define Package/gluon-core/install + $(CP) ./files/* $(1)/ +endef + +$(eval $(call BuildPackage,gluon-core)) diff --git a/gluon/gluon-core/files/etc/uci-defaults/zzz-gluon-upgrade b/gluon/gluon-core/files/etc/uci-defaults/zzz-gluon-upgrade new file mode 100755 index 0000000..3b9fc07 --- /dev/null +++ b/gluon/gluon-core/files/etc/uci-defaults/zzz-gluon-upgrade @@ -0,0 +1,69 @@ +#!/bin/sh + + +UPGRADE_DIR=/lib/gluon/upgrade +VERSION_DIR=/lib/gluon/version + + +version_of() { + opkg status "gluon-$1" | grep '^Version: ' | cut -d' ' -f 2 +} + +oldversion_of() { + oldversion="$(cat "$VERSION_DIR"/"$1" 2>/dev/null)" + + # Legacy support + if [ -z "$oldversion" ]; then oldversion="$(cat /etc/.freifunk_version_keep 2>/dev/null)"; fi + if [ -z "$oldversion" ]; then oldversion="$(cat /etc/.lff_version_keep 2>/dev/null)"; fi + if [ -z "$oldversion" ]; then oldversion="$(cat /etc/.kff_version_keep 2>/dev/null)"; fi + + echo "$oldversion" +} + +do_dir() { + if [ -d "$1" ]; then + local s + for s in "$1"/*; do "$s"; done + fi +} + + +version="$(version_of gluon-core)" + +oldversion="$(cat "$VERSION_FILE" 2>/dev/null)" +if [ -z "$oldversion" ]; then oldversion="$(cat "$VERSION_FILE_FREIFUNK" 2>/dev/null)"; fi +if [ -z "$oldversion" ]; then oldversion="$(cat "$VERSION_FILE_LFF" 2>/dev/null)"; fi +if [ -z "$oldversion" ]; then oldversion="$(cat "$VERSION_FILE_KFF" 2>/dev/null)"; fi + +( + cd "$UPGRADE_DIR" + + for component in *; do ( + local version="$(version_of "$component")" + if [ -z "$version" ]; then continue; fi + + cd "$component" + + local oldversion="$(oldversion_of "$component")" + if [ -z "$oldversion" ]; then + do_dir initial + else + local v + + for v in *; do + if [ "$v" = initial -o "$v" = invariant -o "$v" = version ]; then continue; fi + + # The return value of opkg compare-versions is negated + if ! opkg compare-versions "$v" '>>' "$oldversion"; then + do_dir "$v" + fi + done + fi + + do_dir invariant + + echo "$version" > "$VERSION_DIR"/"$component" + ) done +) + +rm -f "$VERSION_FILE_FREIFUNK" "$VERSION_FILE_LFF" "$VERSION_FILE_KFF" diff --git a/gluon/gluon-core/files/lib/gluon/upgrade/core/0.3.1/010-freifunk-migrate-config b/gluon/gluon-core/files/lib/gluon/upgrade/core/0.3.1/010-freifunk-migrate-config new file mode 100755 index 0000000..8f6d702 --- /dev/null +++ b/gluon/gluon-core/files/lib/gluon/upgrade/core/0.3.1/010-freifunk-migrate-config @@ -0,0 +1,16 @@ +#!/bin/sh + + +[ -r /etc/config/ffhl ] || exit 0 + +cp /etc/config/ffhl /etc/config/config_mode +mv /etc/config/ffhl /etc/config/freifunk + +uci -q batch </dev/null || true +) + +rmdir -p /etc/fastd/ffhl-mesh-vpn/peers 2>/dev/null || true diff --git a/gluon/gluon-core/files/lib/gluon/upgrade/core/0.3.3/010-freifunk-migrate-batman-adv b/gluon/gluon-core/files/lib/gluon/upgrade/core/0.3.3/010-freifunk-migrate-batman-adv new file mode 100755 index 0000000..ba32c95 --- /dev/null +++ b/gluon/gluon-core/files/lib/gluon/upgrade/core/0.3.3/010-freifunk-migrate-batman-adv @@ -0,0 +1,38 @@ +#!/bin/sh + +. /lib/ar71xx.sh + +local board="$(ar71xx_board_name)" + +uci -q batch <