luci-0.9: merge r4880-r4881

This commit is contained in:
Jo-Philipp Wich 2009-06-20 21:34:33 +00:00
parent cc0fd37129
commit 3a631ce73b
4 changed files with 88 additions and 10 deletions

View file

@ -8,7 +8,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=freifunk-watchdog
PKG_RELEASE:=3
PKG_RELEASE:=4
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
PKG_BUILD_DEPENDS := uci
@ -48,8 +48,6 @@ define Package/freifunk-watchdog/install
$(INSTALL_BIN) ./files/freifunk-watchdog.init $(1)/etc/init.d/freifunk-watchdog
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ffwatchd $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/lib/upgrade
$(INSTALL_DATA) ./files/sysupgrade.hook $(1)/lib/upgrade/kill-ffwatchd.sh
endef
$(eval $(call BuildPackage,freifunk-watchdog))

View file

@ -1,7 +0,0 @@
kill_freifunk_watchdog() {
v "Terminating ffwatchd..."
killall ffwatchd
killall crond
}
export sysupgrade_pre_upgrade="${sysupgrade_pre_upgrade:+$sysupgrade_pre_upgrade }kill_freifunk_watchdog"

View file

@ -0,0 +1,55 @@
#
# Copyright (C) 2009 Jo-Philipp Wich <xm@subsignal.org>
#
# This is free software, licensed under the Apache 2.0 license.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=sysupgrade-atheros
PKG_RELEASE:=1
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
include $(INCLUDE_DIR)/package.mk
define Package/sysupgrade-atheros
SECTION:=luci
CATEGORY:=LuCI
SUBMENU:=Freifunk
TITLE:=Experimental sysupgrade support for Atheros SoC
DEPENDS:=+base-files
endef
define Package/sysupgrade-atheros/description
This package implements experimental sysupgrade support for Atheros SoC devices
like the classic Fonera or the D-Link DIR-300.
See https://lists.openwrt.org/pipermail/openwrt-devel/2009-June/004499.html for details.
endef
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
endef
define Build/Configure
endef
define Build/Compile
endef
define Package/sysupgrade-atheros/postinst
#!/bin/sh
[ -n "$${IPKG_INSTROOT}" ] || {
if ! grep -q /etc/firewall.freifunk /etc/config/firewall; then
uci add firewall include >/dev/null
uci set firewall.@include[-1].path=/etc/firewall.freifunk
uci commit firewall
fi
}
endef
define Package/sysupgrade-atheros/install
$(CP) ./files/* $(1)/
endef
$(eval $(call BuildPackage,sysupgrade-atheros))

View file

@ -0,0 +1,32 @@
platform_check_image() {
[ "$ARGC" -gt 1 ] && return 1
case "$(get_magic_word "$1")" in
# Freifunk .img files
4646) return 0;;
*)
echo "Invalid image. Use Freifunk .img files on this platform"
return 1
;;
esac
}
platform_do_upgrade() {
local kern_length=$((0x$(dd if="$1" bs=2 skip=1 count=4 2>/dev/null)/65536))
local kern_name=$(dd if="$1" bs=2 skip=5 count=8 2>/dev/null); kern_name="${kern_name%% *}"
local root_length=$((0x$(dd if="$1" bs=2 skip=13 count=4 2>/dev/null)/65536))
local root_name=$(dd if="$1" bs=2 skip=17 count=8 2>/dev/null); root_name="${root_name%% *}"
local append=""
[ -f "$CONF_TAR" -a "$SAVE_CONFIG" -eq 1 ] && append="-j $CONF_TAR"
if [ -n "$kern_name" -a -n "$root_name" ] && \
[ ${kern_length:-0} -gt 0 -a ${root_length:-0} -gt ${kern_length:-0} ];
then
dd if="$1" bs=65536 skip=1 count=$kern_length 2>/dev/null | \
mtd -e $kern_name write - $kern_name
dd if="$1" bs=65536 skip=$((1+$kern_length)) count=$root_length 2>/dev/null | \
mtd -e $root_name $append write - $root_name
fi
}