Slackware This Forum is for the discussion of Slackware Linux.
|
| Notices |
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
Are you new to LinuxQuestions.org? Visit the following links:
Site Howto |
Site FAQ |
Sitemap |
Register Now
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
 |
GNU/Linux Basic Guide
This 255-page guide will provide you with the keys to understand the philosophy of free software, teach you how to use and handle it, and give you the tools required to move easily in the world of GNU/Linux. Many users and administrators will be taking their first steps with this GNU/Linux Basic guide and it will show you how to approach and solve the problems you encounter.
Click Here to receive this Complete Guide absolutely free. |
|
 |
10-01-2012, 02:00 PM
|
#1
|
|
LQ Newbie
Registered: Mar 2006
Location: Québec
Distribution: Slackware 14.0
Posts: 7
Rep:
|
Libtool's .la files
I would like to know why Slackware dev team chooses to ship certain packages (GConf for example) without the .la files? Is there a way to circumvent the .la files while building?
I am trying to build a Slackbuild (gnome-python-desktop) that links against GConf, but fails because the file cannot be found:
Code:
grep: /usr/lib64/libgconf-2.la: No such file or directory
/usr/bin/sed: can't read /usr/lib64/libgconf-2.la: No such file or directory
libtool: link: `/usr/lib64/libgconf-2.la' is not a valid libtool archive
|
|
|
|
10-01-2012, 02:21 PM
|
#2
|
|
Senior Member
Registered: Aug 2004
Location: Pisa, Italy
Distribution: Slackware
Posts: 1,942
|
Maybe the problem is in the slackbuilds you are using: I just tried to build it on slackware64-14.0 (all the dependencies too), using the script that you can find in slackbuilds.org's git repository and all went fine.
|
|
|
|
10-02-2012, 07:20 AM
|
#3
|
|
LQ Newbie
Registered: Mar 2006
Location: Québec
Distribution: Slackware 14.0
Posts: 7
Original Poster
Rep:
|
It is this slackbuild I am using, and it doesn't work. It requires the .la file from GConf. I want to understand why it is looking for the .la file instead of using pkgconfig. I used to have Gnome Slackbuild installed, which did not remove the .la files from the packages. I removed GSB, but I compiled many packages against it that are still on my system. I may have "corrupted" my system in this way?
|
|
|
|
10-02-2012, 07:58 AM
|
#4
|
|
LQ 5k Club
Registered: Jan 2008
Location: Copenhagen, DK
Distribution: pclos2012.8, Slack1337 DebSqueeze, +50+ other Linux OS, for test only.
Posts: 11,612
|
This is the libgconf-2.la, version 2.28.1.
Should be easy to edit to your version, if different.
It's just a small text file.
You can also write .la files from scratch easily.
Getting files.la : Debian -dev packages :
http://packages.debian.org/squeeze/libgconf2-dev
.
|
|
|
|
10-02-2012, 01:05 PM
|
#5
|
|
Member
Registered: Dec 2005
Location: Philippines
Distribution: Slackware
Posts: 409
Rep: 
|
I ran in to a similar problem. The .la files are not included in the Slackware package. They are removed in the build script.
Code:
# Don't ship .la files:
rm -f $PKG/usr/lib${LIBDIRSUFFIX}/*.la
Only Pat or someone from the development team will be able to tell us why.
It an easy fix, simply comment out the line in the build script and recompile. That what I did. Worked for me.
|
|
|
|
10-02-2012, 04:23 PM
|
#6
|
|
LQ Newbie
Registered: Mar 2006
Location: Québec
Distribution: Slackware 14.0
Posts: 7
Original Poster
Rep:
|
I understand that removing this line works appropriately and may be a solution. But for the sake of it, there must be a reason why Pat & the team shun the .la files. I would like to know why, and what would be the correct, or at least the most elegant, solution.
|
|
|
1 members found this post helpful.
|
10-02-2012, 06:12 PM
|
#7
|
|
Slackware Maintainer
Registered: Dec 2002
Location: Minnesota
Distribution: Slackware! :-)
Posts: 595
|
Quote:
Originally Posted by [loki]
I understand that removing this line works appropriately and may be a solution. But for the sake of it, there must be a reason why Pat & the team shun the .la files. I would like to know why, and what would be the correct, or at least the most elegant, solution.
|
Most distributions are removing these now, where possible. It's basically another failed dependency system. In some cases, the .la files can absorb references to specific versions of other libraries, and when those are upgraded it causes breakage until everything else is rebuilt. Basically, the exact opposite of how shared libraries are supposed to work. The .la files have caused problems in Slackware in the past as well. There was one of the X revisions that would have been absolutely impossible to build without first removing all of the .la files because after the first library (libX11) was updated, nothing else would build.
There are a (very) few cases where the .la files are needed, generally in cases where they are used alongside plugins rather than shared libraries. But if a program seems to require .la files in order to compile, the odds are that the program is wrong, not the lack of .la files.
In the case of gnome-python-desktop, I can verify that it builds fine without the GConf .la files on a stock Slackware 14.0 system. What this tells me is that very likely GConf was installed previously from some other source (with the .la files). The reference to GConf's .la files then proceeded to infect the .la files of something else that was compiled and installed on the machine, and when GConf was updated to Slackware 14.0's version (without .la files), it created a broken reference that's now breaking some of the compiles on the machine. You might be able to find where the problem is by grepping the .la files on the machine for libgconf-2.la. If you find some, try moving them somewhere else to see if getting them out of the way fixes the compile. Of course... other .la files may reference the ones that reference libgconf-2.la. Which is the exact mess we're trying to avoid by shipping as few .la files as possible (and hopefully someday none at all).
Here's a link to some articles that might shed a bit more light on the subject:
http://blog.flameeyes.eu/tag/lafiles
|
|
|
4 members found this post helpful.
|
10-03-2012, 01:12 PM
|
#8
|
|
Member
Registered: Dec 2005
Location: Philippines
Distribution: Slackware
Posts: 409
Rep: 
|
Thanks for the insight and ray of light toward this subject Pat; and to Loki for not accepting the easy way out.
|
|
|
|
10-04-2012, 11:23 PM
|
#9
|
|
LQ Newbie
Registered: Mar 2006
Location: Québec
Distribution: Slackware 14.0
Posts: 7
Original Poster
Rep:
|
Indeed, thanks to Pat for the explanation. It was exactly what I was looking for.
For the record, I grep'ed the .la files in the /usr/lib64 repertory, looking for references to libgconf-2.la. I moved the files containing mentions of it to a backup repertory, and gnome-python-desktop compiled!
|
|
|
|
| Thread Tools |
Search this Thread |
|
|
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -5. The time now is 06:56 PM.
|
|
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.
|
Latest Threads
LQ News
|
|