During econf, media-libs/libcaca-0.99_beta17 checks for csc, meaning the C Sharp Compiler from MS .NET, and finds /usr/bin/csc, the Chicken Scheme Compiler from dev-scheme/chicken. Later during emake it fails as follows: Making all in caca-sharp make[2]: Entering directory `/var/tmp/portage/media-libs/libcaca-0.99_beta17/work/libcaca-0.99.beta17/caca-sharp' /usr/bin/csc -debug -unsafe ./AssemblyInfo.cs ./Caca.cs ./Attr.cs ./Canvas.cs ./Display.cs ./Dither.cs ./Event.cs ./Font.cs -out:caca-sharp.dll -target:library \ -keyfile:./caca-sharp.snk -r:System.Drawing.dll csc: invalid option `-out:caca-sharp.dll' make[2]: *** [caca-sharp.dll] Error 64 make[2]: Leaving directory `/var/tmp/portage/media-libs/libcaca-0.99_beta17/work/libcaca-0.99.beta17/caca-sharp' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/media-libs/libcaca-0.99_beta17/work/libcaca-0.99.beta17' make: *** [all] Error 2 * ERROR: media-libs/libcaca-0.99_beta17 failed: * emake failed If dev-scheme/chicken is not installed, then libcaca's econf does not find csc & falls back on gmcs from mono. Prior to 0.99_beta17, libcaca only looked for gmcs. I was able to get media-libs/libcaca-0.99_beta17[mono] to install when dev-scheme/chicken is installed by editing libcaca-0.99_beta17.ebuild to add "use mono && export CSC=/usr/bin/gmcs" before econf in src_configure(), but I'm not sure that's the "right" way to fix this.
Created attachment 239961 [details] Build log for failed libcaca-0.99_beta17[mono] emerge w/ dev-scheme/chicken installed
Created attachment 239963 [details] Build log for successful libcaca-0.99_beta17[mono] emerge w/ dev-scheme/chicken not installed
Created attachment 239965 [details] Build log for successful libcaca-0.99_beta17[mono] emerge using my edited ebuild w/ dev-scheme/chicken installed
Created attachment 239967 [details] My edited libcaca-0.99_beta17.ebuild
+ 24 Jul 2010; Samuli Suominen <ssuominen@gentoo.org> + libcaca-0.99_beta17.ebuild: + Make sure "gmcs" is preferred over "csc" wrt #329651 by Conway S. Smith. I added: use mono && export CSC=gmcs #329651 to the ebuild, didn't like the hardcoded /usr/bin path in your ebuild. Thanks for reporting, and please reopen if my fix doesn't work for some reason...
I had to change the ebuild to have "use mono && CSC=$(which gmcs)", since it otherwise still attempted to use /usr/bin/csc. (libcaca-0.99_beta17.ebuild,v 1.18 2010/10/29) Perhaps, the fix should really be applied to mono (rather than libcaca) to install an appropriate environment variable? (In reply to comment #5) > + 24 Jul 2010; Samuli Suominen <ssuominen@gentoo.org> > + libcaca-0.99_beta17.ebuild: > + Make sure "gmcs" is preferred over "csc" wrt #329651 by Conway S. Smith. > > I added: > > use mono && export CSC=gmcs #329651 > > to the ebuild, didn't like the hardcoded /usr/bin path in your ebuild. > > Thanks for reporting, and please reopen if my fix doesn't work for some > reason... >
Sorry I didn't respond to this earlier, I had my ebuild in my local overlay still & didn't notice that use mono && export CSC=gmcs doesn't resolve the issue; it does need to include the path to correctly pick up gmcs. As Isaac Richter noted, the path can come from $(which gmcs) if you still don't want /usr/bin/gmcs hardcoded. Thanks!
I just hit this bug again w/ media-libs/libcaca-0.99_beta18[mono]. "use mono && export CSC=gmcs" doesn't fix this - it does need the path, or $(which gmcs).
(In reply to comment #8) > I just hit this bug again w/ media-libs/libcaca-0.99_beta18[mono]. "use > mono && export CSC=gmcs" doesn't fix this - it does need the path, or > $(which gmcs). `which` is external tool and not guaranteed to be installed but bash has internal $(type -P gmcs) for example anyway, fixed in portage now, thanks for noticing this
*** Bug 465934 has been marked as a duplicate of this bug. ***
closing again now that its unmasked