From 8c7a883964e45e7b48b943731bd3b3da0cc289d9 Mon Sep 17 00:00:00 2001 From: Paul Gortmaker Date: Fri, 13 Jun 2014 14:54:45 -0400 Subject: 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 Signed-off-by: Richard Purdie --- ...-in-extension-Makefile.am-when-removing-..patch | 56 ++++++++++++++ ...dd-DESTDIR-prefix-to-remaining-pkgextensi.patch | 86 ++++++++++++++++++++++ meta/recipes-extended/gawk/gawk_4.1.1.bb | 2 + 3 files changed, 144 insertions(+) create mode 100644 meta/recipes-extended/gawk/gawk-4.1.1/Use-DESTDIR-in-extension-Makefile.am-when-removing-..patch create mode 100644 meta/recipes-extended/gawk/gawk-4.1.1/extension-Add-DESTDIR-prefix-to-remaining-pkgextensi.patch 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 0000000000..b8b1fcaea7 --- /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" +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 +--- + +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 ++ ++ * Makefile.am (install-data-hook): Use $(DESTDIR) when removing ++ the .la files. Thanks to Lars Wendler ++ for the report and fix. ++ + 2014-04-08 Arnold D. Robbins + + * 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 0000000000..b402587615 --- /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 +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 +--- + +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 ++ * 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 + + * 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 a81be3137a..1298ee2f4c 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" -- cgit 1.2.3-korg