When upgrading pixman from 0.10.0 to 0.12.0 (during emerge -avuD --reinstall changed-use world), emerge stops with an error that it needs gcc 4.2 or higher. Reproducible: Always Steps to Reproduce: Emerge pixman-0.12.0 with useflag +sse2 Actual Results: * Messages for package x11-libs/pixman-0.12.0: * SSE2 instructions require GCC 4.2 or higher. Either use * GCC 4.2 or higher or USE='-sse2' * * ERROR: x11-libs/pixman-0.12.0 failed. * Call stack: * ebuild.sh, line 49: Called pkg_setup * pixman-0.12.0.ebuild, line 28: Called die * The specific snippet of code: * die "SSE2 instructions require GCC 4.2 or higher" * The die message: * SSE2 instructions require GCC 4.2 or higher * * 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/x11-libs/pixman-0.12.0/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/x11-libs/pixman-0.12.0/temp/die.env'. * I'm using gcc-4.1.2 at the moment.
Reassigning to maintainer-needed...
Crap, this belongs to X11 herd. Sorry, I confused this with media-libs/libpixman...
Same here, maybe a warning should be shown instead of dying...
Could you post your "emerge --info" please?
Created attachment 183873 [details] emerge --info
Why is this done like this. And not with a normal dependency? DEPEND="sse2? ( >=gcc-4.2 )" or something alike?
Umm this package was marked stable without addressing this issue. stable USE="+sse2" x11-libs/pixman-0.12.0 requires unstable >=sys-devel/gcc-4.2 Only happens if use x86;
This is probably not the best way to express dependencies, but what we need right now is for x86 herd to package.use.mask sse2 use flag in their profile -- this bug breaks stable. Please re-assign to x11@gentoo.org when finished: =x11-libs/pixman-0.12.0 sse2 if use x86; then if use sse2 && ! $(version_is_at_least "4.2" "$(gcc-version)"); then eerror "SSE2 instructions require GCC 4.2 or higher. Either use" eerror "GCC 4.2 or higher or USE='-sse2'" die "SSE2 instructions require GCC 4.2 or higher" fi fi
Package.use.masked
who added this hard coded die and why ? this is a blocker and needs to be fixed asap
Created attachment 185922 [details, diff] rework USE flag handling in x11-libs/pixman (In reply to comment #10) > who added this hard coded die and why ? All the files are still in portage along with a proper ChangeLog. You could have kept your snappy comment and done the detective work yourself. > this is a blocker and needs to be fixed asap We're not sock puppets. Don't treat us as such. I work on this because I enjoy it. Reading your comments is taking one of the very few incentives I have: working with kind people. Now, back to the problem at hand. Here's a patch that (I think) should work properly for all use cases. - it gets rid of the unused "sse" USE flag. - it changes the "die" into an "ewarn" and builds pixman without sse2 support (similar to busybox with USE="pam static") @Donnie, what say you? Thanks
Looks good. I prefer avoiding the die's, so that's a plus.
(In reply to comment #12) > Looks good. I prefer avoiding the die's, so that's a plus. > Agreed, Much more elegant solution. Thanks
I've committed a bigger patch which also solves another USE flag issue. 0.14.0-r1 now just passes --disable-sse2 if an older gcc is found. Closing fixed Thanks