mirror of https://github.com/hak5/openwrt-owl.git
fstools: add the new fstools package
Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 39895owl
parent
8411a5703f
commit
0dc9d8d6ff
|
@ -12,7 +12,7 @@ __target_inc=1
|
|||
DEVICE_TYPE?=router
|
||||
|
||||
# Default packages - the really basic set
|
||||
DEFAULT_PACKAGES:=base-files libc libgcc busybox dropbear mtd uci opkg netifd
|
||||
DEFAULT_PACKAGES:=base-files libc libgcc busybox dropbear mtd uci opkg netifd fstools
|
||||
# For router targets
|
||||
DEFAULT_PACKAGES.router:=dnsmasq iptables ip6tables ppp ppp-mod-pppoe kmod-ipt-nathelper firewall odhcpd odhcp6c
|
||||
DEFAULT_PACKAGES.bootloader:=
|
||||
|
|
|
@ -3,11 +3,7 @@
|
|||
|
||||
START=95
|
||||
boot() {
|
||||
[ -d /tmp/root ] && {
|
||||
lock /tmp/.switch2jffs
|
||||
switch2jffs
|
||||
lock -u /tmp/.switch2jffs
|
||||
}
|
||||
[ -d /tmp/root ] && fs-state done
|
||||
|
||||
# process user commands
|
||||
[ -f /etc/rc.local ] && {
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
# Copyright (C) 2010 Vertical Communications
|
||||
|
||||
do_mount_root() {
|
||||
mount_root
|
||||
fs-state start
|
||||
boot_run_hook preinit_mount_root
|
||||
[ -f /sysupgrade.tgz ] && {
|
||||
echo "- config restore -"
|
||||
|
|
|
@ -57,6 +57,8 @@ run_ramfs() { # <command> [...]
|
|||
/bin/sleep /bin/zcat /usr/bin/bzcat /usr/bin/printf /usr/bin/wc
|
||||
|
||||
install_bin /sbin/mtd
|
||||
install_bin /sbin/fs-state
|
||||
install_bin /sbin/snapshot
|
||||
for file in $RAMFS_COPY_BIN; do
|
||||
install_bin $file
|
||||
done
|
||||
|
|
|
@ -0,0 +1,41 @@
|
|||
#
|
||||
# Copyright (C) 2014 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=mdnsd
|
||||
PKG_VERSION:=2014-01-19
|
||||
PKG_RELEASE=$(PKG_SOURCE_VERSION)
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
||||
PKG_SOURCE_URL:=git://nbd.name/mdnsd.git
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_VERSION:=8f771a5bcfd7f99e2ab8c68f1932c9d7c6804e96
|
||||
|
||||
PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(INCLUDE_DIR)/cmake.mk
|
||||
|
||||
define Package/mdnsd
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
TITLE:=Multicast DNS Daemon
|
||||
DEPENDS:=+libubox +libubus +libblobmsg-json
|
||||
endef
|
||||
|
||||
TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include
|
||||
|
||||
define Package/mdnsd/install
|
||||
$(INSTALL_DIR) $(1)/usr/sbin
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/mdnsd $(1)/usr/sbin/
|
||||
# $(INSTALL_DIR) $(1)/etc/init.d
|
||||
# $(INSTALL_BIN) ./files/relay.init $(1)/etc/init.d/relayd
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,mdnsd))
|
|
@ -0,0 +1,2 @@
|
|||
#!/bin/sh
|
||||
/etc/init.d/relayd enabled && /etc/init.d/relayd start
|
|
@ -0,0 +1,101 @@
|
|||
#!/bin/sh /etc/rc.common
|
||||
# Copyright (c) 2011-2012 OpenWrt.org
|
||||
|
||||
START=80
|
||||
|
||||
USE_PROCD=1
|
||||
PROG=/usr/sbin/relayd
|
||||
|
||||
resolve_ifname() {
|
||||
grep -qs "^ *$1:" /proc/net/dev && {
|
||||
procd_append_param command -I "$1"
|
||||
append ifaces "$1"
|
||||
}
|
||||
}
|
||||
|
||||
resolve_network() {
|
||||
local ifn
|
||||
fixup_interface "$1"
|
||||
config_get ifn "$1" ifname
|
||||
[ -z "$ifn" ] && return 1
|
||||
resolve_ifname "$ifn"
|
||||
}
|
||||
|
||||
start_relay() {
|
||||
local cfg="$1"
|
||||
|
||||
local args=""
|
||||
local ifaces=""
|
||||
|
||||
config_get proto "$cfg" proto
|
||||
[[ "$proto" == relay ]] || return 0
|
||||
|
||||
SERVICE_DAEMONIZE=1
|
||||
SERVICE_WRITE_PID=1
|
||||
SERVICE_PID_FILE="/var/run/relay-$cfg.pid"
|
||||
[ -f "$SERVICE_PID_FILE" ] && {
|
||||
if grep -q relayd "/proc/$(cat $SERVICE_PID_FILE)/cmdline"; then
|
||||
return 0
|
||||
else
|
||||
rm -f "$SERVICE_PID_FILE"
|
||||
fi
|
||||
}
|
||||
|
||||
procd_open_instance
|
||||
procd_set_param command "$PROG"
|
||||
|
||||
local net networks
|
||||
config_get networks "$cfg" network
|
||||
for net in $networks; do
|
||||
resolve_network "$net" || {
|
||||
return 1
|
||||
}
|
||||
done
|
||||
|
||||
local ifn ifnames
|
||||
config_get ifnames "$cfg" ifname
|
||||
for ifn in $ifnames; do
|
||||
resolve_ifname "$ifn"
|
||||
done
|
||||
|
||||
local ipaddr
|
||||
config_get ipaddr "$cfg" ipaddr
|
||||
[ -n "$ipaddr" ] && procd_append_param command -L "$ipaddr"
|
||||
|
||||
local gateway
|
||||
config_get gateway "$cfg" gateway
|
||||
[ -n "$gateway" ] && procd_append_param command -G "$gateway"
|
||||
|
||||
local expiry # = 30
|
||||
config_get expiry "$cfg" expiry
|
||||
[ -n "$expiry" ] && procd_append_param command "$expiry"
|
||||
|
||||
local retry # = 5
|
||||
config_get retry "$cfg" retry
|
||||
[ -n "$retry" ] && procd_append_param command -p "$retry"
|
||||
|
||||
local table # = 16800
|
||||
config_get table "$cfg" table
|
||||
[ -n "$table" ] && procd_append_param command -T "$table"
|
||||
|
||||
local fwd_bcast # = 1
|
||||
config_get_bool fwd_bcast "$cfg" forward_bcast 1
|
||||
[ $fwd_bcast -eq 1 ] && procd_append_param command "-B"
|
||||
|
||||
local fwd_dhcp # = 1
|
||||
config_get_bool fwd_dhcp "$cfg" forward_dhcp 1
|
||||
[ $fwd_dhcp -eq 1 ] && procd_append_param command "-D"
|
||||
|
||||
procd_close_instance
|
||||
}
|
||||
|
||||
service_triggers()
|
||||
{
|
||||
procd_add_reload_trigger "network"
|
||||
}
|
||||
|
||||
start_service() {
|
||||
include /lib/network
|
||||
config_load network
|
||||
config_foreach start_relay interface
|
||||
}
|
|
@ -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))
|
|
@ -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
|
||||
}
|
|
@ -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))
|
||||
|
|
Loading…
Reference in New Issue