Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 158416 - app-emulation/e-uae unable to use capslib on amd64
Summary: app-emulation/e-uae unable to use capslib on amd64
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Peter Volkov (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-12-17 17:00 UTC by Christian Authmann
Modified: 2012-10-07 14:22 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Christian Authmann 2006-12-17 17:00:26 UTC
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.
Comment 1 Simon Stelling (RETIRED) gentoo-dev 2007-02-04 18:39:50 UTC
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
Comment 2 Christian Authmann 2008-03-15 11:10:09 UTC
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.
Comment 3 Tupone Alfredo gentoo-dev 2008-10-27 20:50:30 UTC
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
Comment 4 Jonathan Heaney 2008-10-28 00:56:55 UTC
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'.
Comment 5 Jonathan Heaney 2008-10-28 01:27:59 UTC
Seems the file is libcapsimage.so.2.0, not libcapsimage.so.2.3
Comment 6 Tupone Alfredo gentoo-dev 2008-10-28 05:52:48 UTC
(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
Comment 7 Christian Authmann 2008-10-28 12:14:25 UTC
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.
Comment 8 Tupone Alfredo gentoo-dev 2008-10-28 21:21:20 UTC
(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.
Comment 9 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2008-12-08 00:55:35 UTC
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.
Comment 10 Pacho Ramos gentoo-dev 2012-10-07 14:22:45 UTC
capslib is already masked on amd64