app-emulation/e-uae can use games-emulation/caps to load .idf disk files. unfortunately, there is only a binary release for caps, containing .so's for i686 and ppc, but not for amd64. This leaves two bugs: - games-emulation/caps will install the 32bit-library to /usr/lib and a symlink to /usr/lib64 instead of both to /usr/lib32. Despite being in amd64 stable, there is no mention during install of it being 32 bit only, so it appears to be a valid 64 bit library. It's not. - app-emulation/e-uae will give a generic error message when failing to dlopen() the library, without including the dlerror() call. load_capslib() in capc/caps.c could use some better error handling, but that's for upstream to do. for gentoo, compilation should abort on amd64 when the capslib use flag is set, explaining why. an option to compile e-uae as a 32bit application would be perfect, either by a second ebuild or a use flag. Emulating a 32 bit cpu shouldn't need 64 bits anyway :) it took me a couple of hours to trace the reason why e-uae wouldn't load my .idf images, including manually compiling e-uae from source and writing a small capslib test app which used dlopen(). I doubt the average user could find the problem on his own, so at least a warning message is needed.
providing the same package in different bitnesses would mess up the dependency tree, the only option for now is to mask the capslib use flag, which is done now. also, caps now installs its lib into /usr/lib32
the situation has changed. softpres.org released a 64-bit-version of capslib last november. so the new fix would be to: - update games-emulation/caps to include the 64bit-version. I'd attach a patch, but since it's a binary release the changes to the ebuild are quite trivial. - re-enable the capslib USE flag on e-uae.
The new version of games-emulation/caps is in portage, and it includes a native amd64 library. Done by games team, as pva is away, without an extensive testing. Please test it, maybe with e-uae, and report. Thanks
20071115 fails to install here on ~x86. >>> Emerging (1 of 1) games-emulation/caps-20071115 * ipfdevlib_linux-20060612.tgz RMD160 SHA1 SHA256 size ;-) ... [ ok ] * ipflib_linux-i686-20071115.tgz RMD160 SHA1 SHA256 size ;-) ... [ ok ] * config_uae_ocs13_512c-512s.zip RMD160 SHA1 SHA256 size ;-) ... [ ok ] * checking ebuild checksums ;-) ... [ ok ] * checking auxfile checksums ;-) ... [ ok ] * checking miscfile checksums ;-) ... [ ok ] >>> Unpacking source... >>> Unpacking ipfdevlib_linux-20060612.tgz to /var/tmp/portage/games-emulation/caps-20071115/work >>> Unpacking ipflib_linux-i686-20071115.tgz to /var/tmp/portage/games-emulation/caps-20071115/work >>> Unpacking config_uae_ocs13_512c-512s.zip to /var/tmp/portage/games-emulation/caps-20071115/work >>> Source unpacked. >>> Compiling source in /var/tmp/portage/games-emulation/caps-20071115/work ... >>> Source compiled. >>> Test phase [not enabled]: games-emulation/caps-20071115 >>> Install caps-20071115 into /var/tmp/portage/games-emulation/caps-20071115/image/ category games-emulation !!! dolib: ipflib_linux-i686/libcapsimage.so.2.3 does not exist * * ERROR: games-emulation/caps-20071115 failed. * Call stack: * ebuild.sh, line 49: Called src_install * environment, line 2074: Called die * The specific snippet of code: * dolib.so ipflib_linux-${myArch}/libcapsimage.so.2.3 || die; * The die message: * (no error message) * * 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/games-emulation/caps-20071115/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/games-emulation/caps-20071115/temp/environment'. * >>> Failed to emerge games-emulation/caps-20071115, Log file: >>> '/var/tmp/portage/games-emulation/caps-20071115/temp/build.log' * Messages for package games-emulation/caps-20071115: * * ERROR: games-emulation/caps-20071115 failed. * Call stack: * ebuild.sh, line 49: Called src_install * environment, line 2074: Called die * The specific snippet of code: * dolib.so ipflib_linux-${myArch}/libcapsimage.so.2.3 || die; * The die message: * (no error message) * * 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/games-emulation/caps-20071115/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/games-emulation/caps-20071115/temp/environment'.
Seems the file is libcapsimage.so.2.0, not libcapsimage.so.2.3
(In reply to comment #5) > Seems the file is libcapsimage.so.2.0, not libcapsimage.so.2.3 > Well, yes, I tested it on amd64. It seems that the library in the ppc and x86 tgz are the same as the old versions. So, I'm using now the old tgz for those. Thanks
installing the new capslib-ebuild on amd64 works fine. I re-enabled the capslib use flag on e-uae, it compiled fine. However, when attempting to run a game with .idf disk files, e-uae exits with this error: [..] X11GFX: Enabling raw key-mapping. CAPS: library version 2.3 e-uae: symbol lookup error: /usr/lib/libcapsimage.so.2: undefined symbol: _Znwm uae didn't mind the images, but displayed the "insert workbench disk" screen. Does the original uae even have capslib support? I don't know if e-uae or capslib is at fault. I'm currently ill and unable to think straight, thus I can't investigate further for now. sorry.
(In reply to comment #7) > installing the new capslib-ebuild on amd64 works fine. > I re-enabled the capslib use flag on e-uae, it compiled fine. > > However, when attempting to run a game with .idf disk files, e-uae exits with > this error: > > [..] > X11GFX: Enabling raw key-mapping. > CAPS: library version 2.3 > e-uae: symbol lookup error: /usr/lib/libcapsimage.so.2: undefined symbol: _Znwm My guess is that the linking of e-uae should be done with g++ instead of gcc, so to include specific c++ library.
pva: You are the maintainer of both app-emulation/e-uae & games-emulation/caps - I can't tell what the problem is there. Please determine what you request of the amd64 team and add us back to CC, if needed.
capslib is already masked on amd64