LinuxQuestions.org
Latest LQ Deal: Latest LQ Deals
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 04-26-2018, 02:02 AM   #1
lcd047
LQ Newbie
 
Registered: Sep 2017
Posts: 14

Rep: Reputation: Disabled
Slackware current missing .la files


Slackware current has recently started to remove .la files from its packages. A random example from slackware64-current/source/l/glib2/glib2.SlackBuild:
Code:
92 make $NUMJOBS || make || exit 1
93 make install DESTDIR=$PKG || exit 1
94  
95 # Don't ship .la files:                                                                                                     
96 rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la
As a result dozens of slackbuilds packages no longer compile. A random example again:
Code:
libtool: link: cannot find the library `/usr/lib64/libgio-2.0.la' or unhandled argument `/usr/lib64/libgio-2.0.la'
What problem does removing .la files solve? More importantly, how are we supposed to work around this change?
 
Old 04-26-2018, 02:03 AM   #2
drmozes
Slackware Contributor
 
Registered: Apr 2008
Location: Surrey, England
Distribution: Slackware
Posts: 807

Rep: Reputation: 607Reputation: 607Reputation: 607Reputation: 607Reputation: 607Reputation: 607
Quote:
Originally Posted by lcd047 View Post
Slackware current has recently started to remove .la files from its packages. ...
Read the change log.
 
1 members found this post helpful.
Old 04-26-2018, 02:07 AM   #3
lcd047
LQ Newbie
 
Registered: Sep 2017
Posts: 14

Original Poster
Rep: Reputation: Disabled
So:
Quote:
Originally Posted by lcd047 View Post
how are we supposed to work around this change?
 
Old 04-26-2018, 02:32 AM   #4
orbea
Senior Member
 
Registered: Feb 2015
Distribution: Slackware64-current
Posts: 1,545

Rep: Reputation: Disabled
Please read the following from the changelog, it answers your question.
Quote:
Thu Apr 19 01:04:06 UTC 2018
Hi folks, and welcome to the third ever Slackware Mass Rebuild (and the
longest ChangeLog entry in project history). There were two primary
motivations for rebuilding everything in the main tree. The first was to
switch to the new C++ ABI. The second was to get rid of all the .la files
in the LD_LIBRARY_PATH. Really, having .la files installed has been mostly
obsolete since things began to use pkg-config instead, but it's not easy
to get rid of them unless you do it all at once. If you just take them out
of one package, any other packages containing .la files that refer to the
removed ones will be broken. We've removed a few here and there before
(and then handled any packages that had referred to them with a rebuild),
but it was time to finally remove all the ones in /lib{,64} and
/usr/lib{,64}. One of the reasons that this really needed to happen is that
many projects are starting to migrate to build systems other than autotools,
and those systems do not generate .la files. So if we didn't get rid of them
now, we might end up in a situation later on where they are being removed
by upstream and then we would have to chase down the dependency breakage and
recompile (possibly many) other packages. The .la files that are outside of
the LD_LIBRARY_PATH were not removed (and shouldn't be) - those ones are
often used by the lt_dlopen() function to load plugins and removing those
ones can break things. But those ones don't cause problems... they aren't
likely to try to infect .la files produced by other packages.
IMPORTANT NOTE: If you have any third party or other packages installed on
your system that don't come with Slackware, and those packages have installed
any .la files, it is very likely that they refer to some .la files which we
have just removed, and that trying to compile against these packages will no
longer work. Luckily, the solution is simple: remove them. This command will
remove any stale .la files from the LD_LIBRARY_PATH:
rm /{,usr/}lib{,64}/*.la
Moving forward, nothing shipped in Slackware will contain any .la files in
those directories, and any SlackBuilds intended to be used with Slackware 15.0
should contain this bit of script:
# Don't ship .la files:
rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la
In addition to those goals, the opportunity was taken to clean up slack-desc
files and make many trivial fixes to build scripts. We've also made it easy
to recompile everything again should there be a good reason to do so.
You'll also find various updates scattered throughout this long list.
Enjoy, and sorry about the bandwidth. ;-)
http://www.slackware.com/changelog/c...php?cpu=x86_64
 
2 members found this post helpful.
Old 04-26-2018, 02:35 AM   #5
ponce
Senior Member
 
Registered: Aug 2004
Location: Pisa, Italy
Distribution: Slackware
Posts: 4,695

Rep: Reputation: Disabled
most probably the things that you are trying to build now don't build because in the past you build others, still in your system, that refers in some of their files (for example, Pat suggested the pkgconfig's ones) those *.la libtool files and build of the new stuff breaks when it cannot find them.
my personal suggestion is to rebuild your third party packages from scratch on a full and clean install of Slackware current.
 
Old 04-26-2018, 02:39 AM   #6
lcd047
LQ Newbie
 
Registered: Sep 2017
Posts: 14

Original Poster
Rep: Reputation: Disabled
Not really. I'm asking because I can't build packages on a clean current install.
 
Old 04-26-2018, 02:45 AM   #7
orbea
Senior Member
 
Registered: Feb 2015
Distribution: Slackware64-current
Posts: 1,545

Rep: Reputation: Disabled
What package? You may be able to work around it by using slibtool at SBo which doesn't need .la files and won't fail if they are missing instead of libtool in Slackware's main tree. Your experience with it may vary depending on what you are trying to build and be sure to read the README at SBo and the upstream README installed to the documentation directory.
 
Old 04-26-2018, 03:04 AM   #8
lcd047
LQ Newbie
 
Registered: Sep 2017
Posts: 14

Original Poster
Rep: Reputation: Disabled
I'm trying to build a modified HandBrake. It does work with slibtool, so thank you for mentioning it.
 
Old 04-26-2018, 03:16 AM   #9
ponce
Senior Member
 
Registered: Aug 2004
Location: Pisa, Italy
Distribution: Slackware
Posts: 4,695

Rep: Reputation: Disabled
Quote:
Originally Posted by lcd047 View Post
As a result dozens of slackbuilds packages no longer compile. A random example again:
I've just tried HandBrake fro SBo and it seems to build fine...
do you have other examples?
 
Old 04-26-2018, 03:23 AM   #10
orbea
Senior Member
 
Registered: Feb 2015
Distribution: Slackware64-current
Posts: 1,545

Rep: Reputation: Disabled
First try uninstalling opus, jansson and lame with removepkg and then reinstalling them from the Slackware main tree and not SBo. Next try rebuilding libass and x264. Does handbrake still fail to build then?
 
Old 04-26-2018, 03:27 AM   #11
lcd047
LQ Newbie
 
Registered: Sep 2017
Posts: 14

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by ponce View Post
do you have other examples?
Well I have a list of the the last few things that I couldn't build, but some of them fail for entirely different reasons: FreeImage, avidemux, evince, fontforge, geoclue2, glade, graphviz, zbar.

Last edited by lcd047; 04-26-2018 at 03:45 AM.
 
Old 04-26-2018, 03:45 AM   #12
ponce
Senior Member
 
Registered: Aug 2004
Location: Pisa, Italy
Distribution: Slackware
Posts: 4,695

Rep: Reputation: Disabled
Quote:
Originally Posted by lcd047 View Post
Well I have a list of the the last few things that I couldn't build, but some of them brake for entirely different reasons: FreeImage, avidemux, evince, fontforge, geoclue2, glade-3, graphviz, zbar.
sorry, I misunderstood, I thought you said that they weren't building because the *.la files had been removed
Quote:
Originally Posted by lcd047 View Post
Slackware current has recently started to remove .la files from its packages. A random example from slackware64-current/source/l/glib2/glib2.SlackBuild:
Code:
92 make $NUMJOBS || make || exit 1
93 make install DESTDIR=$PKG || exit 1
94  
95 # Don't ship .la files:                                                                                                     
96 rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la
As a result dozens of slackbuilds packages no longer compile.
BTW, everything you cite builds fine here on a clean Slackware current, FreeImage excluded.
I'm using the repository cited in this topic.

Last edited by ponce; 04-26-2018 at 03:46 AM.
 
Old 04-26-2018, 04:00 AM   #13
lcd047
LQ Newbie
 
Registered: Sep 2017
Posts: 14

Original Poster
Rep: Reputation: Disabled
I posted here because I couldn't compile packages without .la files. I don't have a list of packages that fail specifically for that reason, but I do have a list of packages I couldn't compile recently. Some of them failed because of the .la change, others failed for other reasons (f.i. avidemux fails because pow10f(3) is no longer supported by glibc). I'm pretty sure at least fontforge did fail because of the .la change, but I'm not sure about the others. Also, "everything builds fine" also depends on what is already installed. shrug
 
Old 04-26-2018, 04:06 AM   #14
ponce
Senior Member
 
Registered: Aug 2004
Location: Pisa, Italy
Distribution: Slackware
Posts: 4,695

Rep: Reputation: Disabled
Quote:
Originally Posted by lcd047 View Post
avidemux fails because pow10f(3) is no longer supported by glibc
in the post above I pointed you to a repository containing also a patch for that
http://cgit.ponce.cc/slackbuilds/commit/?h=avidemux

Quote:
I'm pretty sure at least fontforge did fail because of the .la change
I repeat if it isn't clear, this builds fine on current: could it be that you have to remove the previous installed version as noted in the README?
if you post the log we can try to help.

Quote:
Also, "everything builds fine" also depends on what is already installed.
I thought I explained clearly that I built them from scratch on a clean slackware current...

Last edited by ponce; 04-26-2018 at 04:07 AM.
 
Old 04-26-2018, 04:17 AM   #15
lcd047
LQ Newbie
 
Registered: Sep 2017
Posts: 14

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by ponce View Post
I thought I explained clearly that I built them from scratch on a clean slackware current...
Sadly, one can only compile a single package on a clean slackware current. Compiling a second package is always done on a non-clean one.

Last edited by lcd047; 04-26-2018 at 04:19 AM.
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
[SOLVED] Missing zipconf.h in Slackware-current orbea Slackware 4 12-02-2017 04:55 PM
Missing files in okular / current ?? USUARIONUEVO Slackware 1 11-01-2015 03:10 PM
Slackware 12.0/current - pkg-config files missing ArcLinux Slackware 5 08-22-2007 02:32 PM
rc scripts in slackware-current, rc.0 missing? GamerX Slackware 4 04-13-2007 09:02 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 05:37 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration