Portage's "remove .la files" functionality uses the "-exec +" feature of "find", something that was introduced in findutils-4.2.12. If "emerge" is run with an older version of findutils installed, some ebuilds fail to work. Reproducible: Always
findutils is in the system set, meaning that every Gentoo host will have it installed. It is not proper to depend on items in the system set. Given that findutils-4.4.0 is marked stable on all arches, I do not see a bug here.
(In reply to comment #1) > findutils is in the system set, meaning that every Gentoo host will have it > installed. It is not proper to depend on items in the system set. Given that > findutils-4.4.0 is marked stable on all arches, I do not see a bug here. The problem arises if you're updating an older system. When a new version of Portage is available, the system strongly encourages you to update that before anything else. Without a dependancy on the specific version of findutils that Portage requires, doing so will leave you with a Portage install that is not completely functional.
(In reply to comment #0) > Portage's "remove .la files" functionality uses the "-exec +" feature of > "find", something that was introduced in findutils-4.2.12. I'm not sure exactly which code you are referring to. Perhaps it's part of an eclass rather than portage itself. Can you give me some more specific evidence of the problem that you're reporting?
(In reply to comment #3) > (In reply to comment #0) > > Portage's "remove .la files" functionality uses the "-exec +" feature of > > "find", something that was introduced in findutils-4.2.12. > > I'm not sure exactly which code you are referring to. Perhaps it's part of an > eclass rather than portage itself. Can you give me some more specific evidence > of the problem that you're reporting? With portage-2.1.6.13 and findutils-4.1.20-r2 installed, emerge libpcre-7.9-r1. At the end of the build, you'll get the following error: make[1]: Leaving directory `/var/tmp/portage/dev-libs/libpcre-7.9-r1/work/pcre-7.9' find: missing argument to `-exec' * * ERROR: dev-libs/libpcre-7.9-r1 failed. * Call stack: * ebuild.sh, line 49: Called src_install * environment, line 2746: Called die * The specific snippet of code: * find "${D}" -type f -name '*.la' -exec rm -rf '{}' '+' || die "la removal failed" * The die message: * la removal failed * * If you need support, post the topmost build error, and the call stack if relevant. * A complete build log is located at '/var/tmp/portage/dev-libs/libpcre-7.9-r1/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/dev-libs/libpcre-7.9-r1/temp/environment'. *
(In reply to comment #4) > With portage-2.1.6.13 and findutils-4.1.20-r2 installed, emerge libpcre-7.9-r1. The offending code is located inside the src_install() function of the libpcre-7.9-r1 ebuild.
+ 21 Oct 2009; Peter Alfredsen <loki_val@gentoo.org> -libpcre-7.8.ebuild, + -libpcre-7.8-r2.ebuild, libpcre-7.9-r1.ebuild, libpcre-8.00.ebuild: + Fix bug 278370. Remove old. + Added userland_GNU? ( >=sys-apps/findutils-4.4.0 ) to all extant versions of libpcre.
i've moved the dep to @system instead since this issue isn't specific to any one package or eclass: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=08a05fd934545269bd7e05162b3de697d987cebb and then dropped it from this: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=82bf4866f73c2a85ed8f4327e5eda392b5e0d5eb