summaryrefslogtreecommitdiffstats
path: root/package
diff options
context:
space:
mode:
authorjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>2010-10-05 19:24:12 +0000
committerjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>2010-10-05 19:24:12 +0000
commitf7f0781becbf4b54263839a797847f1b0ecc8f24 (patch)
tree29f47d5058426a16a867cbaf05109fcb7ba131d9 /package
parent0e8e5d26a0ac5e766b6610e1f305a9877ee89a36 (diff)
[package] base-files:
- add sysupgrade support for keepfile hints * introduces /lib/upgrade/keep.d/ for per-package keepfile lists * introduces /etc/sysupgrade.conf for user defined keepfile hints - prime /lib/upgrade/keep.d/base-files-essential to keep sysupgrade usable for images without opkg - change sysupgrade to build the keepfile list from /lib/upgrade/keep.d/, /etc/sysupgrade.conf and opkg list-changed-conffiles git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23258 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package')
-rw-r--r--package/base-files/Makefile4
-rw-r--r--package/base-files/files/etc/sysupgrade.conf5
-rw-r--r--package/base-files/files/lib/upgrade/keep.d/base-files-essential10
-rwxr-xr-xpackage/base-files/files/sbin/sysupgrade5
4 files changed, 21 insertions, 3 deletions
diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index 9598823cb..ff6dbc087 100644
--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=base-files
-PKG_RELEASE:=58
+PKG_RELEASE:=59
PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/
PKG_BUILD_DEPENDS:=opkg/host
@@ -54,6 +54,8 @@ define Package/base-files/conffiles
/etc/shells
/etc/sysctl.conf
/etc/rc.local
+/etc/config/
+/etc/dropbear/
$(call $(TARGET)/conffiles)
endef
diff --git a/package/base-files/files/etc/sysupgrade.conf b/package/base-files/files/etc/sysupgrade.conf
new file mode 100644
index 000000000..e06fd5e33
--- /dev/null
+++ b/package/base-files/files/etc/sysupgrade.conf
@@ -0,0 +1,5 @@
+## This file contains files and directories that should
+## be preserved during an upgrade.
+
+# /etc/example.conf
+# /etc/openvpn/
diff --git a/package/base-files/files/lib/upgrade/keep.d/base-files-essential b/package/base-files/files/lib/upgrade/keep.d/base-files-essential
new file mode 100644
index 000000000..e35aae509
--- /dev/null
+++ b/package/base-files/files/lib/upgrade/keep.d/base-files-essential
@@ -0,0 +1,10 @@
+# Essential files that will be always kept
+/etc/banner
+/etc/hosts
+/etc/inittab
+/etc/group
+/etc/passwd
+/etc/profile
+/etc/shells
+/etc/sysctl.conf
+/etc/rc.local
diff --git a/package/base-files/files/sbin/sysupgrade b/package/base-files/files/sbin/sysupgrade
index 1210e6e50..3d76bb3a0 100755
--- a/package/base-files/files/sbin/sysupgrade
+++ b/package/base-files/files/sbin/sysupgrade
@@ -55,8 +55,9 @@ EOF
add_uci_conffiles() {
local file="$1"
- ( find /etc/config /etc/passwd /etc/group /etc/dropbear \
- /etc/firewall.user /etc/rc.local -type f;
+ ( find $(sed -ne '/^[[:space:]]*$/d; /^#/d; p' \
+ /etc/sysupgrade.conf /lib/upgrade/keep.d/* 2>/dev/null) \
+ -type f 2>/dev/null;
opkg list-changed-conffiles ) | sort -u > "$file"
return 0
}