Many GNUstep apps now seem to require libicns to run however it is not listed in either gnustep.eclass nor any of the GNUstep ebuilds. Reproducible: Always Steps to Reproduce: 1. Install a GNUstep app (say AClock) 2. Try to execute app (say by 'openapp AClock') Actual Results: application fails to run citing missing libicns. Expected Results: GNUstep Application should run.
Uh, libicns is a library for opening MacOSX .icns icons. Can you post output of such failure?
the output is rather bluntly. /usr/GNUstep/System/Applications/AClock.app/AClock: error while loading shared libraries: libicns.so.1: cannot open shared object file: No such file or directory
seems reasonable to me, can you suggest a patch?
That is probably an automagic dependency, I never had libicns installed and no gnustep app/lib links to it What are the versions of gnustep base packages you use? you can get them with `qlist -Iv gnustep-base`
Ok found it, in gnustep-gui configure.ac: AC_CHECK_LIB(icns, icns_read_family_from_file) If libicns is not installed, a partial bundled replacement is used, in Source/NSBitmapImageRep+ICNS.m: /* The following code is a drop in replacement for libicns. It may be used when the library is not available or unsuited due to its licence (Currently GPL 2). This code was mostly build based on the documentation found at http://icns.sourceforge.net/apidocs.html. It also includes icns decoding ideas based on code in mySTEP. Only limited formats are implemented and some errors still exist. */ I'd suggest unconditionnal depend on libicns in gnustep-gui, but this requires some keywording in the lib first (gnustep-gui 0.18 is ~alpha ~amd64 ~ppc ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~x86-solaris)
I had from sabayon repos. gnustep-base-1.18.0-r4 gnustep-gui-0.16.0-r1 gnustep-make-2.2.0 I would suggest that if explicit libicns support is desired, it should come from a useflag somewhere that stuff it in depend and passes something not too unlike '--with-libicns' or if not desired passes '--without-lib-icns' to configure. It looks like I'm an idiot in this case and the culprit is sabayons binpkgs exercising normally dormant DEPEND issues in ebuilds.
(In reply to comment #5) > I'd suggest unconditionnal depend on libicns in gnustep-gui, I'd suggest disabling linking against libicns altogether, if it effectively makes a LGPL-licensed library GPL-ed, unless it has clear benefits.
Thanks Harald, I had not checked the licenses. So the easier solution (replacement code) is the better one license-wise then :)
libicns is LGPL. The GPL part of it is the icns2png program that isn't compiled into the library, it just uses it.
Embedded code copies are always a bad idea and the license is not an issue (it is LGPL).
(In reply to comment #10) > Embedded code copies are always a bad idea and the license is not an issue (it > is LGPL). +1. The library bits from libicns are "LGPL-2 or later" or "LGPL-2.1 or later" so it should be fine. There is now cleaned version of libicns ebuild in tree, 0.8.0. This would be excellent time to switch from the bundled code to the external library.