From: Jonas Gorski Date: Fri, 11 Sep 2015 10:48:42 +0000 (+0000) Subject: CC: opkg: ensure image provided feeds are available after sysupgrade X-Git-Url: https://git.archive.openwrt.org/?p=15.05%2Fopenwrt.git;a=commitdiff_plain;h=30a6f4a50919667bfd350e5523e801d460569a42 CC: 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. Backport of r46491. Signed-off-by: Jonas Gorski git-svn-id: svn://svn.openwrt.org/openwrt/branches/chaos_calmer@46848 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- diff --git a/package/system/opkg/Makefile b/package/system/opkg/Makefile index d38ed52314..32bcf2bdf1 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 0000000000..38cc57c467 --- /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 0000000000..f130113c47 --- /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