On 10/28/2017 03:24 AM, Pierre Labastie wrote:
Hi,
When building network-manager-applet, I got:
---------
[...]
CCLD src/libnm-gtk/libnm-gtk.la
/bin/grep: /usr/lib/libatk-1.0.la: No such file or directory
/bin/sed: can't read /usr/lib/libatk-1.0.la: No such file or directory
libtool: error: '/usr/lib/libatk-1.0.la' is not a valid libtool archive
---------
The reason id that libatk-1.0.la has not been installed when building
the atk package, because the build system is meson, but
network-manager-applet still uses autotools!
No something else is going on. This is most likely a symptom of removing
the previous version of atk(?). What was the exact scenario? You should
only see this on update if a dependent package had previously used the
.la file (something that was not rebuilt that links to atk that
nm-applet also links to maybe?). This is the reason that distributions
remove .la files at installation.
Of course, I can copy an old .la file coming from previous builds with
autotools, but what this error shows is that mixing meson and autotools
will be troublesome. OTOH, a lot of packages are not meson-able yet, so
autotools has still to be used. Conclusion: refrain using meson for the
time being.
Assuming my guess above is correct, copying the old .la file is probably
easiest. You cannot remove the .la file after something else autotools
uses it (because its la files point to that one creating an endless
dependency chain), so it needs to be done at build time.
I've nudged this issue a few times in the past, but interest has been
limited, likely because I tend to be long winded when explaining
something complex. The correct (but unrealistic) solution is to leave
the .la file out and then to rebuild everything that links to atk (which
is a lot!). If you want a full explanation, see
Ultimately, the only libtool archive that should exist is libltdl.la,
and some plugins for gstreamer and ImageMagick, but those won't be in
/usr/lib. There may be a handful of others, but they also should not be
in /usr/lib. I'm not suggesting that you remove them now...everything
will break! This really does need to be done immediately after
installing a package.
[interoperability dream]
Maybe meson could generate .la files... Or libtool could use pkgconfig
files...
Dream: libtool bowed out gracefully in the 90s when it should have. :-)
Reality: 23(?) years later we still have to deal with libtool because of
autotools...hence the push for cmake, gn, meson, scons, waf, etc. Thus
far, I think meson is the most user friendly to those already familiar
with autotools, which makes it most viable, but this is only my opinion.
--DJ
--
http://lists.linuxfromscratch.org/listinfo/blfs-dev
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page