diff options
author | Paul Gortmaker <paul.gortmaker@windriver.com> | 2014-06-13 14:54:45 -0400 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-06-17 08:56:11 +0100 |
commit | 8c7a883964e45e7b48b943731bd3b3da0cc289d9 (patch) | |
tree | 8964ebddc892054e5902cda0a15736de38539bb5 | |
parent | c567901f3681fbc520dfa84330ab4e06b180745e (diff) | |
download | openembedded-core-contrib-8c7a883964e45e7b48b943731bd3b3da0cc289d9.tar.gz |
gawk: ensure cross compiling doesn't try to remove host files
Fixes [YOCTO #6440]
When cross compiling gawk, it is possible to see this fail:
make[4]: Entering directory '/mnt/home/paul/poky/build/tmp/work/corei7-64-poky-
linux/gawk/4.1.1-r0/build/extension'
for i in filefuncs.la fnmatch.la fork.la inplace.la ordchr.la readdir.la readfi
le.la revoutput.la revtwoway.la rwarray.la testext.la time.la ; do \
rm -f /usr/lib/gawk/$i ; \
done
rm: cannot remove '/usr/lib/gawk/filefuncs.la': Permission denied
rm: cannot remove '/usr/lib/gawk/fnmatch.la': Permission denied
rm: cannot remove '/usr/lib/gawk/fork.la': Permission denied
rm: cannot remove '/usr/lib/gawk/inplace.la': Permission denied
rm: cannot remove '/usr/lib/gawk/ordchr.la': Permission denied
rm: cannot remove '/usr/lib/gawk/readdir.la': Permission denied
rm: cannot remove '/usr/lib/gawk/readfile.la': Permission denied
rm: cannot remove '/usr/lib/gawk/revoutput.la': Permission denied
rm: cannot remove '/usr/lib/gawk/revtwoway.la': Permission denied
rm: cannot remove '/usr/lib/gawk/rwarray.la': Permission denied
rm: cannot remove '/usr/lib/gawk/testext.la': Permission denied
rm: cannot remove '/usr/lib/gawk/time.la': Permission denied
Makefile:1235: recipe for target 'install-data-hook' failed
The problem only manifests itself on hosts where the above files
are already present; for if they are absent then the rm -f does
not fail with -EPERM.
Before looking in mainline gawk for a fix, I fixed it myself.
Then in comparing with mainline gawk, I found their fix was
not 100% complete. So here we get a backport of the mainline
gawk commit, plus the delta as a commit that I've sent to the
gawk mailing list.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
3 files changed, 144 insertions, 0 deletions
diff --git a/meta/recipes-extended/gawk/gawk-4.1.1/Use-DESTDIR-in-extension-Makefile.am-when-removing-..patch b/meta/recipes-extended/gawk/gawk-4.1.1/Use-DESTDIR-in-extension-Makefile.am-when-removing-..patch new file mode 100644 index 00000000000..b8b1fcaea76 --- /dev/null +++ b/meta/recipes-extended/gawk/gawk-4.1.1/Use-DESTDIR-in-extension-Makefile.am-when-removing-..patch @@ -0,0 +1,56 @@ +From 976f73ab03569bb836aa5c949be1c1cc973b2d2e Mon Sep 17 00:00:00 2001 +From: "Arnold D. Robbins" <arnold@skeeve.com> +Date: Fri, 11 Apr 2014 07:42:16 +0300 +Subject: [PATCH] Use $(DESTDIR) in extension/Makefile.am when removing .la + files. + +commit 976f73ab03569bb836aa5c949be1c1cc973b2d2e upstream. + +[PG: note there was no Author SOB or long log in original.] +Upstream-Status: Backport [ gawk-4.1.1-3-g976f73ab0356 ] +Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> +--- + +diff --git a/extension/ChangeLog b/extension/ChangeLog +index afd64ff764b6..f3a1c7a81e7d 100644 +--- a/extension/ChangeLog ++++ b/extension/ChangeLog +@@ -1,3 +1,9 @@ ++2014-04-11 Arnold D. Robbins <arnold@skeeve.com> ++ ++ * Makefile.am (install-data-hook): Use $(DESTDIR) when removing ++ the .la files. Thanks to Lars Wendler <polynomial-c@gentoo.org> ++ for the report and fix. ++ + 2014-04-08 Arnold D. Robbins <arnold@skeeve.com> + + * 4.1.1: Release tar ball made. +diff --git a/extension/Makefile.am b/extension/Makefile.am +index 9c49bb81abb2..11826e2b315e 100644 +--- a/extension/Makefile.am ++++ b/extension/Makefile.am +@@ -100,7 +100,7 @@ testext_la_LIBADD = $(MY_LIBS) + + install-data-hook: + for i in $(pkgextension_LTLIBRARIES) ; do \ +- $(RM) $(pkgextensiondir)/$$i ; \ ++ $(RM) $(DESTDIR)$(pkgextensiondir)/$$i ; \ + done + + # Keep the uninstall check working: +diff --git a/extension/Makefile.in b/extension/Makefile.in +index 040cdb8f4e23..d81b16960935 100644 +--- a/extension/Makefile.in ++++ b/extension/Makefile.in +@@ -1231,7 +1231,7 @@ uninstall-man: uninstall-man3 + + install-data-hook: + for i in $(pkgextension_LTLIBRARIES) ; do \ +- $(RM) $(pkgextensiondir)/$$i ; \ ++ $(RM) $(DESTDIR)$(pkgextensiondir)/$$i ; \ + done + + # Keep the uninstall check working: +-- +1.9.1 + diff --git a/meta/recipes-extended/gawk/gawk-4.1.1/extension-Add-DESTDIR-prefix-to-remaining-pkgextensi.patch b/meta/recipes-extended/gawk/gawk-4.1.1/extension-Add-DESTDIR-prefix-to-remaining-pkgextensi.patch new file mode 100644 index 00000000000..b4025876156 --- /dev/null +++ b/meta/recipes-extended/gawk/gawk-4.1.1/extension-Add-DESTDIR-prefix-to-remaining-pkgextensi.patch @@ -0,0 +1,86 @@ +From a9f3bd754e9e269099cf7a2c931c632fcc12bd8a Mon Sep 17 00:00:00 2001 +From: Paul Gortmaker <paul.gortmaker@windriver.com> +Date: Fri, 13 Jun 2014 13:42:12 -0400 +Subject: [PATCH] extension: Add $(DESTDIR) prefix to remaining pkgextensiondir + instances + +Commit 976f73ab03569bb836aa5c949be1c1cc973b2d2e ["Use $(DESTDIR) in +extension/Makefile.am when removing .la files."] fixed an issue +that manifested itself as follows when cross compiling: + +make[4]: Entering directory 'gawk/4.1.1-r0/build/extension' +for i in filefuncs.la fnmatch.la fork.la inplace.la ordchr.la readdir.la readfi +le.la revoutput.la revtwoway.la rwarray.la testext.la time.la ; do \ + rm -f /usr/lib/gawk/$i ; \ +done +rm: cannot remove '/usr/lib/gawk/filefuncs.la': Permission denied +rm: cannot remove '/usr/lib/gawk/fnmatch.la': Permission denied +rm: cannot remove '/usr/lib/gawk/fork.la': Permission denied +rm: cannot remove '/usr/lib/gawk/inplace.la': Permission denied +rm: cannot remove '/usr/lib/gawk/ordchr.la': Permission denied +rm: cannot remove '/usr/lib/gawk/readdir.la': Permission denied +rm: cannot remove '/usr/lib/gawk/readfile.la': Permission denied +rm: cannot remove '/usr/lib/gawk/revoutput.la': Permission denied +rm: cannot remove '/usr/lib/gawk/revtwoway.la': Permission denied +rm: cannot remove '/usr/lib/gawk/rwarray.la': Permission denied +rm: cannot remove '/usr/lib/gawk/testext.la': Permission denied +rm: cannot remove '/usr/lib/gawk/time.la': Permission denied +Makefile:1235: recipe for target 'install-data-hook' failed + +The problem only manifests itself on hosts where the above files +are already present; for if they are absent then the rm -f does +not fail with -EPERM. The fix in 976f73ab0356 ensured that DESTDIR +was used for the prefix so that it didn't try to delete host files. + +However there still remains less used instances of where it is used +w/o $(DESTDIR) that may still cause similar breakage in the future. +Here we apply the same change to them. + +Upstream-Status: Submitted [http://lists.gnu.org/archive/html/bug-gawk/2014-06/index.html] +Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> +--- + +diff --git a/extension/ChangeLog b/extension/ChangeLog +index f3a1c7a81e7d..b87ac372edc6 100644 +--- a/extension/ChangeLog ++++ b/extension/ChangeLog +@@ -1,3 +1,10 @@ ++2014-06-13 Paul Gortmaker <paul.gortmaker@windriver.com> ++ * Makefile.am (uninstall-so): Came across below bug while cross ++ compiling, and changed both install-data-hook and uninstall-so ++ to use $(DESTDIR) on v4.1.1 before seeing most of the fix in ++ gawk-4.1.1-3-g976f73ab0356; here we ensure uninstall-so also ++ uses the $(DESTDIR) prefix on its use of pkgextensiondir. ++ + 2014-04-11 Arnold D. Robbins <arnold@skeeve.com> + + * Makefile.am (install-data-hook): Use $(DESTDIR) when removing +diff --git a/extension/Makefile.am b/extension/Makefile.am +index 11826e2b315e..b6beaee3fb47 100644 +--- a/extension/Makefile.am ++++ b/extension/Makefile.am +@@ -105,7 +105,7 @@ install-data-hook: + + # Keep the uninstall check working: + uninstall-so: +- $(RM) $(pkgextensiondir)/*.so ++ $(RM) $(DESTDIR)$(pkgextensiondir)/*.so + + uninstall-recursive: uninstall-so + +diff --git a/extension/Makefile.in b/extension/Makefile.in +index d81b16960935..294e4f887812 100644 +--- a/extension/Makefile.in ++++ b/extension/Makefile.in +@@ -1236,7 +1236,7 @@ install-data-hook: + + # Keep the uninstall check working: + uninstall-so: +- $(RM) $(pkgextensiondir)/*.so ++ $(RM) $(DESTDIR)$(pkgextensiondir)/*.so + + uninstall-recursive: uninstall-so + +-- +1.9.1 + diff --git a/meta/recipes-extended/gawk/gawk_4.1.1.bb b/meta/recipes-extended/gawk/gawk_4.1.1.bb index a81be3137a9..1298ee2f4ce 100644 --- a/meta/recipes-extended/gawk/gawk_4.1.1.bb +++ b/meta/recipes-extended/gawk/gawk_4.1.1.bb @@ -15,6 +15,8 @@ DEPENDS += "readline" SRC_URI = "${GNU_MIRROR}/gawk/gawk-${PV}.tar.gz \ file://run-ptest \ + file://Use-DESTDIR-in-extension-Makefile.am-when-removing-..patch \ + file://extension-Add-DESTDIR-prefix-to-remaining-pkgextensi.patch \ " SRC_URI[md5sum] = "45f5b09aa87b4744c4c53bf274e96ed0" |