diff options
Diffstat (limited to 'package/system')
-rw-r--r-- | package/system/fstools/Makefile | 60 | ||||
-rw-r--r-- | package/system/fstools/files/fstab.default (renamed from package/system/ubox/files/fstab.default) | 0 | ||||
-rw-r--r-- | package/system/fstools/files/fstab.init (renamed from package/system/ubox/files/fstab.init) | 0 | ||||
-rw-r--r-- | package/system/fstools/files/mount.hotplug (renamed from package/system/ubox/files/mount.hotplug) | 0 | ||||
-rw-r--r-- | package/system/fstools/files/snapshot | 111 | ||||
-rw-r--r-- | package/system/ubox/Makefile | 27 |
6 files changed, 173 insertions, 25 deletions
diff --git a/package/system/fstools/Makefile b/package/system/fstools/Makefile new file mode 100644 index 0000000000..9a6aaeef1e --- /dev/null +++ b/package/system/fstools/Makefile @@ -0,0 +1,60 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=fstools +PKG_VERSION:=2014-02-27 + +PKG_RELEASE=$(PKG_SOURCE_VERSION) + +PKG_SOURCE_PROTO:=git +PKG_SOURCE_URL:=git://nbd.name/fstools.git +PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) +PKG_SOURCE_VERSION:=d292ffc85f48dd9c8774a0860f50397dd2966e7a +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz +CMAKE_INSTALL:=1 + +PKG_LICENSE:=GPLv2 +PKG_LICENSE_FILES:= + +PKG_MAINTAINER:=John Crispin <blogic@openwrt.org> + +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/cmake.mk + +TARGET_LDFLAGS += $(if $(CONFIG_USE_EGLIBC),-lrt) + +define Package/fstools + SECTION:=base + CATEGORY:=Base system + DEPENDS:=+ubox +USE_EGLIBC:librt + TITLE:=OpenWrt filesystem tools +endef + +define Package/block-mount + SECTION:=base + CATEGORY:=Base system + TITLE:=Block device mounting and checking + DEPENDS:=+ubox +libubox +libuci +endef + +define Package/fstools/install + $(INSTALL_DIR) $(1)/sbin + + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/fs-state $(1)/sbin/ + $(INSTALL_BIN) ./files/snapshot $(1)/sbin/ +endef + +define Package/block-mount/install + $(INSTALL_DIR) $(1)/sbin $(1)/usr/sbin $(1)/etc/hotplug.d/block $(1)/etc/init.d/ $(1)/etc/uci-defaults/ + + $(INSTALL_BIN) ./files/fstab.init $(1)/etc/init.d/fstab + $(INSTALL_DATA) ./files/fstab.default $(1)/etc/uci-defaults/10-fstab + $(INSTALL_DATA) ./files/mount.hotplug $(1)/etc/hotplug.d/block/10-mount + + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/block $(1)/sbin/ + ln -s /sbin/block $(1)/usr/sbin/swapon + ln -s /sbin/block $(1)/usr/sbin/swapoff + +endef + +$(eval $(call BuildPackage,fstools)) +$(eval $(call BuildPackage,block-mount)) diff --git a/package/system/ubox/files/fstab.default b/package/system/fstools/files/fstab.default index dd4ba1c485..dd4ba1c485 100644 --- a/package/system/ubox/files/fstab.default +++ b/package/system/fstools/files/fstab.default diff --git a/package/system/ubox/files/fstab.init b/package/system/fstools/files/fstab.init index be49470ef1..be49470ef1 100644 --- a/package/system/ubox/files/fstab.init +++ b/package/system/fstools/files/fstab.init diff --git a/package/system/ubox/files/mount.hotplug b/package/system/fstools/files/mount.hotplug index 946924e351..946924e351 100644 --- a/package/system/ubox/files/mount.hotplug +++ b/package/system/fstools/files/mount.hotplug diff --git a/package/system/fstools/files/snapshot b/package/system/fstools/files/snapshot new file mode 100644 index 0000000000..85a0076d8e --- /dev/null +++ b/package/system/fstools/files/snapshot @@ -0,0 +1,111 @@ +#!/bin/sh +# Copyright (C) 2014 OpenWrt.org + + +do_snapshot_unpack() { + echo "- snapshot -" + mkdir /tmp/snapshot + cd /tmp/snapshot + fs-state snapshot read + block=`ls block*.tar.gz 2> /dev/null` + [ -z "$block" ] || for a in $block; do + tar xzf $a -C / + rm -f $a + done +} + +do_config_unpack() { + echo "- config -" + fs-state snapshot config_read + [ -f /tmp/config.tar.gz ] && { + tar xzf /tmp/config.tar.gz -C / + rm -f /tmp/config.tar.gz + } +} + +do_snapshot_push() { + cd /volatile + tar czf /tmp/snapshot.tar.gz * + fs-state snapshot write + reboot +} + +do_config_push() { + cd /volatile + tar czf /tmp/config.tar.gz * + fs-state snapshot config_write +} + +do_snapshot_upgrade() { + opkg update + [ $? == 0 ] || exit 1 + + opkg list-upgradable + [ $? == 0 ] || exit 2 + + UPDATES=`opkg list-upgradable | cut -d" " -f1` + [ -z "${UPDATES}" ] && exit 0 + + opkg upgrade ${UPDATES} + [ $? == 0 ] || exit 3 + + do_snapshot_push + sleep 5 + reboot + sleep 10 +} + +do_convert_jffs2() { + fs-state snapshot write + sleep 2 + reboot -f +} + +do_convert() { + . /lib/functions.sh + . /lib/upgrade/common.sh + ubus call system upgrade + touch /tmp/sysupgrade + cd /overlay + tar czf /tmp/snapshot.tar.gz * + kill_remaining TERM + sleep 3 + kill_remaining KILL + run_ramfs '. /sbin/snapshot; do_convert_jffs2' +} + +[ -n "$(cat /proc/mounts|grep /overlay|grep jffs2)" ] && { +case $1 in +convert) + do_convert + ;; +esac +} + +[ -d /volatile ] && { +case $1 in +push) + do_snapshot_push + ;; +config) + do_config_push + ;; +upgrade) + do_snapshot_upgrade + ;; +info) + fs-state info + ;; +esac +} + +[ "$SNAPSHOT" = "magic" ] && { +case $1 in +unpack) + do_snapshot_unpack + ;; +config_unpack) + do_config_unpack + ;; +esac +} diff --git a/package/system/ubox/Makefile b/package/system/ubox/Makefile index b3a4ba9eea..5bd7246858 100644 --- a/package/system/ubox/Makefile +++ b/package/system/ubox/Makefile @@ -28,22 +28,13 @@ define Package/ubox TITLE:=OpenWrt system helper toolbox endef -define Package/block-mount - SECTION:=base - CATEGORY:=Base system - TITLE:=Block device mounting and checking - DEPENDS:=+ubox +libubox +libuci -endef - define Package/ubox/install $(INSTALL_DIR) $(1)/sbin $(1)/usr/sbin $(1)/lib/ $(1)/etc/init.d/ - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/{mount_root,kmodloader,logd,logread,validate_data} $(1)/sbin/ + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/{kmodloader,logd,logread,validate_data} $(1)/sbin/ $(INSTALL_BIN) ./files/log.init $(1)/etc/init.d/log $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/libvalidate.so $(1)/lib - ln -s /sbin/mount_root $(1)/sbin/switch2jffs - ln -s /sbin/mount_root $(1)/sbin/jffs2reset - ln -s /sbin/mount_root $(1)/sbin/jffs2mark + ln -s /sbin/kmodloader $(1)/usr/sbin/rmmod ln -s /sbin/kmodloader $(1)/usr/sbin/insmod ln -s /sbin/kmodloader $(1)/usr/sbin/lsmod @@ -51,18 +42,4 @@ define Package/ubox/install ln -s /sbin/kmodloader $(1)/usr/sbin/modprobe endef -define Package/block-mount/install - $(INSTALL_DIR) $(1)/sbin $(1)/usr/sbin $(1)/etc/hotplug.d/block $(1)/etc/init.d/ $(1)/etc/uci-defaults/ - - $(INSTALL_BIN) ./files/fstab.init $(1)/etc/init.d/fstab - $(INSTALL_DATA) ./files/fstab.default $(1)/etc/uci-defaults/10-fstab - $(INSTALL_DATA) ./files/mount.hotplug $(1)/etc/hotplug.d/block/10-mount - - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/block $(1)/sbin/ - ln -s /sbin/block $(1)/usr/sbin/swapon - ln -s /sbin/block $(1)/usr/sbin/swapoff - -endef - $(eval $(call BuildPackage,ubox)) -$(eval $(call BuildPackage,block-mount)) |