[LEDE-DEV] [PATCH 1/1] add support for overlaying rootfs content

Karl Palsson karlp at tweak.net.au
Wed Dec 7 07:44:13 PST 2016


How is this different from just reverting the commit that stopped
this from working? I'm all for this, don't get me wrong, but if a
package can just explicitly define a file as "this overwrites
whatever" how is that any different from before?

If I remember correctly it was this one:

commit 021b96d7c5c668fbcb5375c65cee90832bb2854f
Author: Matthias Schiffer <mschiffer at universe-factory.net> Date:
Mon Sep 26 15:25:38 2016 +0200

    rootfs: remove unnecessary and potentially harmful force flags from opkg call
    
    Especially --force-overwrite and --force-depends will often lead to broken
    images; it's better to fail the build in such cases than to silently ignore
    the errors.
    
    Instead, ignore errors in the per-device rootfs opkg remove command, so
    the build doesn't break when packages can't be removed because of
    dependencies.
    
    Signed-off-by: Matthias Schiffer <mschiffer at universe-factory.net>



Perhaps putting --force-overwrite back on?

Cheers,
Karl Palsson


Rafał Miłecki  <zajec5 at gmail.com> wrote:
> From: Rafał Miłecki <rafal at milecki.pl>
> 
> This adds support for install-overlay define. When used in
> package it allows installing files to a special directory that
> gets copied to the root when installing it. It allows
> overwriting files provided by other packages.
> 
> Signed-off-by: Rafał Miłecki <rafal at milecki.pl>
> ---
>  include/package-ipkg.mk                   | 9 +++++++++
>  package/base-files/files/lib/functions.sh | 5 +++++
>  2 files changed, 14 insertions(+)
> 
> diff --git a/include/package-ipkg.mk b/include/package-ipkg.mk
> index afd2d4e..e168eb3 100644
> --- a/include/package-ipkg.mk
> +++ b/include/package-ipkg.mk
> @@ -96,7 +96,14 @@ ifeq ($(DUMP),)
>      KEEP_$(1):=$(strip $(call Package/$(1)/conffiles))
>  
>      ifeq ($(BUILD_VARIANT),$$(if $$(VARIANT),$$(VARIANT),$(BUILD_VARIANT)))
> +    do_install=
>      ifdef Package/$(1)/install
> +      do_install=yes
> +    endif
> +    ifdef Package/$(1)/install-overlay
> +      do_install=yes
> +    endif
> +    ifdef do_install
>        ifneq ($(CONFIG_PACKAGE_$(1))$(DEVELOPER),)
>          IPKGS += $(1)
>          compile: $$(IPKG_$(1)) $(PKG_INFO_DIR)/$(1).provides $(STAGING_DIR_ROOT)/stamp/.$(1)_installed
> @@ -178,6 +185,8 @@ $(_endef)
>  	@rm -rf $$(IDIR_$(1)) $$(call opkg_package_files,$(1))
>  	mkdir -p $(PACKAGE_DIR) $$(IDIR_$(1))/CONTROL $(PKG_INFO_DIR)
>  	$(call Package/$(1)/install,$$(IDIR_$(1)))
> +	$(if $(Package/$(1)/install-overlay),mkdir -p $(PACKAGE_DIR) $$(IDIR_$(1))/rootfs-overlay)
> +	$(call Package/$(1)/install-overlay,$$(IDIR_$(1))/rootfs-overlay)
>  	-find $$(IDIR_$(1)) -name 'CVS' -o -name '.svn' -o -name '.#*' -o -name '*~'| $(XARGS) rm -rf
>  	@( \
>  		find $$(IDIR_$(1)) -name lib\*.so\* -or -name \*.ko | awk -F/ '{ print $$$$NF }'; \
> diff --git a/package/base-files/files/lib/functions.sh
> b/package/base-files/files/lib/functions.sh index
> b3bf221..b68db6b 100755
> --- a/package/base-files/files/lib/functions.sh
> +++ b/package/base-files/files/lib/functions.sh
> @@ -230,6 +230,11 @@ default_postinst() {
>  		ret=$?
>  	fi
>  
> +	if [ -d "$root/rootfs-overlay" ]; then
> +		cp -R $root/rootfs-overlay/. $root/
> +		rm -fR $root/rootfs-overlay/
> +	fi
> +
>  	if [ -z "$root" ] && grep -q -s "^/etc/uci-defaults/" "/usr/lib/opkg/info/${pkgname}.list"; then
>  		. /lib/functions/system.sh
>  		[ -d /tmp/.uci ] || mkdir -p /tmp/.uci
> -- 
> 2.10.1
> 
> 
> _______________________________________________
> Lede-dev mailing list
> Lede-dev at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/lede-dev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP Digital Signature
URL: <http://lists.infradead.org/pipermail/lede-dev/attachments/20161207/ab147895/attachment-0001.sig>


More information about the Lede-dev mailing list