LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   liblcms.a not in slackware 12 lcms package ? (https://www.linuxquestions.org/questions/slackware-14/liblcms-a-not-in-slackware-12-lcms-package-609199/)

johnvoisey 12-26-2007 08:33 AM

liblcms.a not in slackware 12 lcms package ?
 
OK I don't know where best to put this request for help / ideas but here goes.

I've just built a slackware 12 system. I'd like to get the CUPS stuff working for my Konica Minolta MC2430DL. In previous versions of slackware this has been FAIRLY straightforward (for slackware!!) it's been a matter of downloading the driver source from linuxprinting.org, then grab marcus kuhn's jbigkit (which the linuxprinting driver needs), ./configure and make jbigkit, copy the .h file to /usr/local/include, copy the .a file to /usr/local/lib and then the "magicolour2430DL" driver can be built using its ./configure and make. Well that worked for slackware 10 / 11 anyway.

Got a bit of a snag here with slackware 12 though.

The "magicolour" ./configure worked just fine, it packs up the "jbigkit" dependency and says all is fine. But then make fails like this :-


make all-recursive
make[1]: Entering directory `/usr/local/src/magicolor2430DL-1.6.0'
Making all in src
make[2]: Entering directory `/usr/local/src/magicolor2430DL-1.6.0/src'
gcc -g -O2 -o rastertokm2430dl rastertokmlf.o bmp.o /usr/local/lib/liblcms.a /usr/local/lib/libjbig.a -lcupsimage -lcups
gcc: /usr/local/lib/liblcms.a: No such file or directory
make[2]: *** [rastertokm2430dl] Error 1
make[2]: Leaving directory `/usr/local/src/magicolor2430DL-1.6.0/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/magicolor2430DL-1.6.0'
make: *** [all] Error 2


OK it can't find a file liblcms.a

That's not too surprising given that the MANIFEST.bz2 file shows a liblcms.so.1.0.16 being put in /usr/lib, and a liblcms.la going in /usr/lib, but no liblcms.a at all.

Can someone explain what this .a file is and how I get one / make one ?

H_TeXMeX_H 12-26-2007 08:56 AM

'.a' is the static library, so in this case, when configuring liblcms you should run './configure --enable-static'.

jong357 12-26-2007 02:24 PM

Well... Slackware comes with lcms. The problem is:

Quote:

Originally Posted by lcms.SlackBuild
./configure \
--prefix=/usr \
--mandir=/usr/man \
--enable-static=no

Who's fault is it? The packager making the assumption that static libs are worthless or the individual developer insisting on linking against static libs? ;)

I have the same problem with a couple progs with regards to freetype. Gotta rebuild Freetype to get the static lib back..

Quote:

Originally Posted by freetype.SlackBuild
# Can't imagine a lot of use for this:
rm -f $PKG/usr/lib/*.a

I can... :-)

gnashley 12-26-2007 02:43 PM

This is fairly common in Slackware packages. I have run across this several times in different versions and with different libs. Just recompile lcms using "--enable-static=yes" and all should be okay. I'll guess that Patrick leaves the static libs out when he knows that none of the packages included in the standard distribution need them. Anyway,sometimes mistakes creep in -I remember one version when basic GTK2 apps wouldn't compile beacuse the gtk-2.0.pc file wasn't installed with the package.

jong357 12-26-2007 02:50 PM

Yea.. We all know static libs are about as useless as tits on a bull but until people quit linking against them it's not such a hot idea to remove them. Fedora and others are going crazy with that philosophy and they can get away with it because their package base is enormous. You can't say the same for Slackware. Slackers compile software and we need the tools to do it... Best to leave that stuff alone IMO...

With things like Splashy, it makes sense to be compiled statically, and indeed it's not gonna work trying to link against a shared library.. No avoiding it there, so if you want to use Splashy, you need libfreetype.a

johnvoisey 12-26-2007 02:57 PM

SOLVED !!! Thanks people
 
Thanks for the explanations,

After reading up the replies I went and grabbed the source and yes a swift configure and make means I have the ".a" file and yes I have a cups printer driver working now.

I guess it shows package building for distros is a bit of a black art as you never quite know what people will want to do with the software that gets packaged for distribution.

Again thanks all. regards and seasons greetings JV


All times are GMT -5. The time now is 02:29 PM.