[Bug 231816] New: missing .la files from packages
https://bugzilla.novell.com/show_bug.cgi?id=231816 Summary: missing .la files from packages Product: openSUSE 10.2 Version: Final Platform: i586 OS/Version: Other Status: NEW Severity: Normal Priority: P5 - None Component: Maintenance AssignedTo: bnc-team-screening@forge.provo.novell.com ReportedBy: bluedzins@wp.pl QAContact: qa@suse.de I had no problem (zero) compiling anything from the sources in suse 10.0. But with opensuse 10.2 is a problem -- a lot of prepared packages does not containt .la file. Libstdc++, expat, and many others. So I can compile an app, but I cannot link it. Of course I can download the sources for every package in the system and rebuild it (.la file is generated automagically) but it is not the point, I hope. Please, provide proper packages. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=231816 judas_iscariote@shorewall.net changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |WONTFIX ------- Comment #1 from judas_iscariote@shorewall.net 2007-01-04 11:07 MST ------- This was done on purpose, your software is broken, fix it. "Code needing libstdc++ has to use g++ for linking as only that will ensure that the necessary C++ runtime libraries get lionked in." -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=231816 judas_iscariote@shorewall.net changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED Resolution|WONTFIX | ------- Comment #2 from judas_iscariote@shorewall.net 2007-01-04 11:18 MST ------- also see : #215548 and http://lists.opensuse.org/opensuse-packaging/2006-10/msg00047.html this is actually a dup. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=231816 judas_iscariote@shorewall.net changed: What |Removed |Added ---------------------------------------------------------------------------- Status|REOPENED |RESOLVED Resolution| |DUPLICATE ------- Comment #3 from judas_iscariote@shorewall.net 2007-01-04 11:19 MST ------- *** This bug has been marked as a duplicate of bug 215548 *** -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=231816 andreas.hanke@gmx-topmail.de changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |andreas.hanke@gmx-topmail.de ------- Comment #4 from andreas.hanke@gmx-topmail.de 2007-01-04 11:26 MST ------- For your information: You can solve the problem by recompiling all your packages. The problem here is that libtool "infects" all .la files recursively: If library A links to library B, libB.la gets a reference to the absolute path of libA.la. But if libA.la doesn't exist and you rebuild B, everything will be fine. The reason why libstdc++.la *must* be removed is that it completely breaks the concept of a search path and the parallel installation of multiple C++ compilers. You would get absolute references to /usr/lib/gcc/i586-suse-linux/4.1.2/libstdc++.la into all your .la files, preventing you from using them with another g++ version. It should have been removed much earlier: Other distributions like Fedora remove *all* .la files and it's much better because that way you cannot even run into this problem. If you have problems building packages, it means that there are old binaries on your system; remove and rebuild them. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=231816 ------- Comment #5 from bluedzins@wp.pl 2007-01-04 11:59 MST ------- Andreas, thank you for the explanation! Maybe I will clarify, libstdc++ is just an example. When I install (for example!) expat from Opensuse disc, there is no .la. But if I build it from source .la will appear. And now, I have two g++ installed and I already tried to build amule, wordnet, etc. by myself. Success here. But then I tried to compile k3b and here libtool is used and it demands .la existence for expat, libstdc++ and libmpcdec. And k3b source is fresh new. So it is quite surprise for me, that .la files are obsolete (if I understood you correctly). -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=231816 ------- Comment #6 from andreas.hanke@gmx-topmail.de 2007-01-04 12:13 MST ------- (In reply to comment #5)
When I install (for example!) expat from Opensuse disc, there is no .la. But if I build it from source .la will appear.
Correct.
But then I tried to compile k3b and here libtool is used and it demands .la existence for expat, libstdc++ and libmpcdec. And k3b source is fresh new.
This means that one of the .la files in the chain contains a reference to libexpat.la, and must be rebuilt against an expat package that does not have a libexpat.la in order to lose this reference. As an example, libtool might do the following when linking k3b: libtool --mode=link libA.la libB.la libC.la [...] There is no libexpat.la here directly. But one of your libA.la, libB.la or libC.la references libexpat.la because it has been built against an expat package that has libexpat.la. So you need to find out which one it is, and rebuild it. grep -H libexpat.la /usr/lib/*.la grep -H libexpat.la /opt/kde3/lib/*.la grep -H libexpat.la /opt/gnome/lib/*.la That way you can find the guilty .la file and fix it.
So it is quite surprise for me, that .la files are obsolete (if I understood you correctly).
They are not obsolete, but they are useless on Linux. These .la files are used to track library inter-dependencies. Linux doesn't need that because the dynamic linker on Linux (and Solaris, but IIRC not BSD) handles that on its own, and much better than libtool. On Linux, all you get from .la files are the disadvantages: You're effectively unable to move libraries around because if you e.g. uninstall /usr/lib/libXYZ.la and compile it yourself, it will become /usr/local/lib/libXYZ.la, but libtool doesn't get it because it always records all the absolute paths. It's annoying if you have such a broken .la file in the chain and need to track it down, but afterwards, life will be much better without .la files. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=231816 ------- Comment #7 from bluedzins@wp.pl 2007-01-04 13:08 MST ------- Ok, now, I am tracking down all .la dependencies. THANK YOU FOR YOUR HELP :-) -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=231816 judas_iscariote@shorewall.net changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |gassauer@kde.org ------- Comment #8 from judas_iscariote@shorewall.net 2007-01-06 10:10 MST ------- *** Bug 232410 has been marked as a duplicate of this bug. *** -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=231816 ------- Comment #9 from jmolles@vodafone.es 2007-01-06 13:47 MST ------- Hi all I rebuild expat package and libexpat.la doesn't create it. I can't compile k3b if I not create a expat.la by hand and a .libs dir on /usr/lib with a link to libexpat.so Very annoying regards -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=231816 ------- Comment #10 from andreas.hanke@gmx-topmail.de 2007-01-06 18:32 MST ------- This report gets annoying... Please remove all Packman and other non-official packages from your system and try again. Guess what: It will work. k3b builds just fine on clean systems. The problem here is not that libexpat.la is missing, the problem is that you have broken la files from some other repositories that reference it. Sigh. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
participants (1)
-
bugzilla_noreply@novell.com