summaryrefslogtreecommitdiff
path: root/package/system
diff options
context:
space:
mode:
authorJonas Gorski <jogo@openwrt.org>2015-07-25 12:12:28 +0000
committerJonas Gorski <jogo@openwrt.org>2015-07-25 12:12:28 +0000
commitec428bccadd655ace750b47f23f933dc3d05ebfe (patch)
tree5cad31681159ffef21f5ce29bdf67758ecb4dc9c /package/system
parentef78a6399735bc2867ec91a22cbfa00399e21a99 (diff)
downloadmtk-20170518-ec428bccadd655ace750b47f23f933dc3d05ebfe.zip
mtk-20170518-ec428bccadd655ace750b47f23f933dc3d05ebfe.tar.gz
mtk-20170518-ec428bccadd655ace750b47f23f933dc3d05ebfe.tar.bz2
opkg: ensure image provided feeds are available after sysupgrade
Split the opkg.conf into three files, to make it easier to support custom feeds and configs: * /etc/opkg.conf -> base opkg configuration * /etc/opkg/distfeeds.conf -> default Openwrt package feeds * /etc/opkg/customfeeds.conf -> custom package feeds Of these three, only the base opkg.conf and the customfeeds.conf is marked as to be kept, so that the distfeeds.conf from the image is always used. To ease migration, a script is added that moves any feeds from /etc/opkg.conf to /etc/opkg/customfeeds.conf on first boot. Also ensure that any keys used for verification are also kept in upgrade. Signed-off-by: Jonas Gorski <jogo@openwrt.org> SVN-Revision: 46491
Diffstat (limited to 'package/system')
-rw-r--r--package/system/opkg/Makefile13
-rw-r--r--package/system/opkg/files/20_migrate-feeds9
-rw-r--r--package/system/opkg/files/customfeeds.conf3
3 files changed, 21 insertions, 4 deletions
diff --git a/package/system/opkg/Makefile b/package/system/opkg/Makefile
index d38ed52..32bcf2b 100644
--- a/package/system/opkg/Makefile
+++ b/package/system/opkg/Makefile
@@ -12,7 +12,7 @@ include $(INCLUDE_DIR)/feeds.mk
PKG_NAME:=opkg
PKG_REV:=9c97d5ecd795709c8584e972bfdf3aee3a5b846d
PKG_VERSION:=$(PKG_REV)
-PKG_RELEASE:=7
+PKG_RELEASE:=8
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=$(PKG_REV)
@@ -64,6 +64,8 @@ endef
define Package/opkg/conffiles
/etc/opkg.conf
+/etc/opkg/keys/
+/etc/opkg/customfeeds.conf
endef
@@ -110,10 +112,13 @@ MAKE_FLAGS = \
define Package/opkg/Default/install
$(INSTALL_DIR) $(1)/usr/lib/opkg
$(INSTALL_DIR) $(1)/bin
- $(INSTALL_DIR) $(1)/etc
+ $(INSTALL_DIR) $(1)/etc/opkg
+ $(INSTALL_DIR) $(1)/etc/uci-defaults
+ $(INSTALL_DATA) ./files/customfeeds.conf $(1)/etc/opkg/customfeeds.conf
$(INSTALL_DATA) ./files/opkg$(2).conf $(1)/etc/opkg.conf
- $(call FeedSourcesAppend,$(1)/etc/opkg.conf)
- $(VERSION_SED) $(1)/etc/opkg.conf
+ $(call FeedSourcesAppend,$(1)/etc/opkg/distfeeds.conf)
+ $(VERSION_SED) $(1)/etc/opkg/distfeeds.conf
+ $(INSTALL_BIN) ./files/20_migrate-feeds $(1)/etc/uci-defaults/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/opkg-cl $(1)/bin/opkg
endef
diff --git a/package/system/opkg/files/20_migrate-feeds b/package/system/opkg/files/20_migrate-feeds
new file mode 100644
index 0000000..38cc57c
--- /dev/null
+++ b/package/system/opkg/files/20_migrate-feeds
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+[ -f /etc/opkg.conf ] && grep -q "src\/" /etc/opkg.conf || exit 0
+
+echo -e "# Old feeds from previous image\n# Uncomment to reenable\n" >> /etc/opkg/customfeeds.conf
+sed -n "s/.*\(src\/.*\)/# \1/p" /etc/opkg.conf >> /etc/opkg/customfeeds.conf
+sed -i "/.*src\/.*/d" /etc/opkg.conf
+
+exit 0
diff --git a/package/system/opkg/files/customfeeds.conf b/package/system/opkg/files/customfeeds.conf
new file mode 100644
index 0000000..f130113
--- /dev/null
+++ b/package/system/opkg/files/customfeeds.conf
@@ -0,0 +1,3 @@
+# add your custom package feeds here
+#
+# src/gz example_feed_name http://www.example.com/path/to/files