In chflags on openbsd, nouunlnk and nosunlnk flags are invalid. Apply patch is reuired. Reproducible: Always Steps to Reproduce: 1. cd /usr/lib/portage/bin 2. patch -p0 < ebuid.sh.patch
Created attachment 73552 [details, diff] Patch for chflags invalid flags
It wouldn't be enough since NetBSD doesn't support "nouunlnk" and "nosunlnk" either. We could use something like this: if [ "$USERLAND" == "BSD" ] && type -p chflags &>/dev/null; then if [ "${CHOST/*-freebsd*}" != "${CHOST}" ]; then chflags -R noschg,nouchg,nosappnd,nouappnd,nosunlnk,nouunlnk "${BUILDDIR}" else chflags -R noschg,nouchg,nosappnd,nouappnd "${BUILDDIR}" fi fi But and what about DragonFly and others which could arise up against it again? We should think about having two groups to separate them or implement a "case" there. Darwin seems to follow NetBSD/OpenBSD in this case, though. Or we could simply drop the usage of these kinda flags for BSD's.
Created attachment 80001 [details, diff] ebuild.sh-nongnu.patch Is there any problem in dropping "nosunlnk,nouunlnk" in favor of the NetBSD, OpenBSD and Darwin?
Is the patch okay with alt@ people? Perhaps we can drop the $USERLAND test and simply use `type -p chflags` as the only test?
Can you put that under a double call? the first changes all the ones but the *unlnk ones, and then another that tries to change the rest?
Created attachment 85711 [details, diff] double call, with no $USERLAND check How about this?
WFM
This is in svn r3264.
Released in 2.1_pre10.