浏览代码

include/package-pack: remove leading whitespace from install scripts

Strip off initial leading blanks and tabs from scripts and script
fragments that are supplied by the package's Makefile.  Specifically,
the script included in the postrm must be left justified so that
the shebang is in the first column.

Fixes: https://github.com/openwrt/openwrt/issues/17439
Signed-off-by: Eric Fahlgren <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/17440
Signed-off-by: Robert Marko <[email protected]>
Eric Fahlgren 1 年之前
父节点
当前提交
b52e897296
共有 1 个文件被更改,包括 4 次插入2 次删除
  1. 4 2
      include/package-pack.mk

+ 4 - 2
include/package-pack.mk

@@ -302,7 +302,7 @@ else
 		echo 'export pkgname="$(1)"'; \
 		echo "add_group_and_user"; \
 		echo "default_postinst"; \
-		[ ! -f $$(ADIR_$(1))/postinst-pkg ] || cat "$$(ADIR_$(1))/postinst-pkg"; \
+		[ ! -f $$(ADIR_$(1))/postinst-pkg ] || sed -z 's/^\s*#!/#!/' "$$(ADIR_$(1))/postinst-pkg"; \
 	) > $$(ADIR_$(1))/post-install;
 
 	( \
@@ -312,9 +312,11 @@ else
 		echo 'export root="$$$${IPKG_INSTROOT}"'; \
 		echo 'export pkgname="$(1)"'; \
 		echo "default_prerm"; \
-		[ ! -f $$(ADIR_$(1))/prerm-pkg ] || cat "$$(ADIR_$(1))/prerm-pkg"; \
+		[ ! -f $$(ADIR_$(1))/prerm-pkg ] || sed -z 's/^\s*#!/#!/' "$$(ADIR_$(1))/prerm-pkg"; \
 	) > $$(ADIR_$(1))/pre-deinstall;
 
+	[ ! -f $$(ADIR_$(1))/postrm ] || sed -zi 's/^\s*#!/#!/' "$$(ADIR_$(1))/postrm";
+
 	if [ -n "$(USERID)" ]; then echo $(USERID) > $$(IDIR_$(1))/lib/apk/packages/$(1).rusers; fi;
 	if [ -n "$(ALTERNATIVES)" ]; then echo $(ALTERNATIVES) > $$(IDIR_$(1))/lib/apk/packages/$(1).alternatives; fi;
 	(cd $$(IDIR_$(1)) && find . -type f,l -printf "/%P\n" > $$(IDIR_$(1))/lib/apk/packages/$(1).list)