#1 Actually print the missing file or directory.
Closed 3 years ago by midipix. Opened 3 years ago by orbea.

slibtool: 0.5.29
cyrus-sasl: https://github.com/cyrusimap/cyrus-sasl/commit/cc5a8de15456ecf02d820edbf61fcc283df200c0

When installing the current cyrus-sasl git master branch it fails when failing to find a file. Slibtool should print what file is missing and where its looking when using the verbose mode. Without this normal users are left guessing what is wrong.

Making install in plugins
make[1]: Entering directory '/tmp/cyrus-sasl/plugins'
make[2]: Entering directory '/tmp/cyrus-sasl/plugins'
make[2]: Nothing to be done for 'install-exec-am'.
 /usr/bin/mkdir -p '/tmp/dest/usr/local/lib/sasl2'
 rdlibtool   --mode=install /usr/bin/ginstall -c   libsasldb.la libcrammd5.la libdigestmd5.la libscram.la libotp.la libplain.la libanonymous.la '/tmp/dest/usr/local/lib/sasl2'



rdlibtool --mode=install /usr/bin/ginstall -c libsasldb.la libcrammd5.la libdigestmd5.la libscram.la libotp.la libplain.la libanonymous.la /tmp/dest/usr/local/lib/sasl2

rdlibtool: error logged in slbt_exec_install_entry(), line 436: No such file or directory.
rdlibtool: < returned to > slbt_exec_install(), line 705.
make[2]: *** [Makefile:616: install-pluginLTLIBRARIES] Error 2
make[2]: Leaving directory '/tmp/cyrus-sasl/plugins'
make[1]: *** [Makefile:871: install-am] Error 2
make[1]: Leaving directory '/tmp/cyrus-sasl/plugins'
make: *** [Makefile:677: install-recursive] Error 1

Reproduction:

  1. Clone the cyrus-sasl commit cc5a8de15456ecf02d820edbf61fcc283df200c0.
  2. Apply PR https://github.com/cyrusimap/cyrus-sasl/pull/623 to fix an unrelated issue.
  3. export MAKEFLAGS='LIBTOOL=rdlibtool V=1'
  4. autoreconf -fi
  5. ./configure
  6. make
  7. make install DESTDIR=/tmp/dest

I just did a whole distro build using slibtool and about 15 packages failed exactly like this. There does appear to be a pattern to the failures but simply failing like that isn't helpful.

For example, building xserver-org for me:

slibtool --heuristics=/home/ross/Yocto/build/tmp/work/neoversen1-poky-linux/xserver-xorg/2_1.20.9-r0/build/aarch64-poky-linux-libtool --mode=install /home/ross/Yocto/build/tmp/hosttools/install -c libvbe.la '/home/ross/Yocto/build/tmp/work/neoversen1-poky-linux/xserver-xorg/2_1.20.9-r0/image/usr/lib/xorg/modules'
slibtool: error logged in slbt_exec_install_entry(), line 436: No such file or directory.
slibtool: < returned to > slbt_exec_install(), line 705.

libvbe.la exists so it's one of the .so files that it can't find.

I believe the actual failure is a regression from commit https://dev.midipix.org/cross/slibtool/c/7120606. @midipix Should be fixing this soon.

Still seeing this with libnss-mdns for example:

slibtool --heuristics=/home/ross/Yocto/build/tmp/work/neoversen1-poky-linux/libnss-mdns/0.14.1-r0/build/aarch64-poky-linux-libtool   --mode=install /home/ross/Yocto/build/tmp/hosttools/install -c   libnss_mdns.la libnss_mdns4.la libnss_mdns6.la libnss_mdns_minimal.la libnss_mdns4_minimal.la libnss_mdns6_minimal.la '/home/ross/Yocto/build/tmp/work/neoversen1-poky-linux/libnss-mdns/0.14.1-r0/image/lib'
slibtool: error logged in slbt_exec_install_entry(), line 436: No such file or directory.
slibtool: < returned to > slbt_exec_install(), line 705.
| make[1]: *** [Makefile:753: install-libLTLIBRARIES] Error 2

slibtool: 2c4e5f9
libnss-mdns: https://github.com/lathiat/nss-mdns/commit/99c2f1c10ff5b3373ce8c197add2563d66629f45

Confirmed. Same reproduction as the op.

make[1]: Entering directory '/tmp/nss-mdns'
 /usr/bin/mkdir -p '/tmp/dest/lib'
 rdlibtool   --mode=install /usr/bin/ginstall -c   libnss_mdns.la libnss_mdns4.la libnss_mdns6.la libnss_mdns_minimal.la libnss_mdns4_minimal.la libnss_mdns6_minimal.la '/tmp/dest/lib'



rdlibtool --mode=install /usr/bin/ginstall -c libnss_mdns.la libnss_mdns4.la libnss_mdns6.la libnss_mdns_minimal.la libnss_mdns4_minimal.la libnss_mdns6_minimal.la /tmp/dest/lib

rdlibtool: error logged in slbt_exec_install_entry(), line 436: No such file or directory.
rdlibtool: < returned to > slbt_exec_install(), line 705.
make[1]: *** [Makefile:882: install-libLTLIBRARIES] Error 2
make[1]: Leaving directory '/tmp/nss-mdns'
make: *** [Makefile:1881: install-am] Error 2

slibtool log: http://slackless.raccoons.tech/logs/nss-mdns-slibtool-1.log

A tiny bit of debugging on the nss-mdns failure, by adding a printf() where it aborts.

$ make V=1 install DESTDIR=inst
make[1]: Entering directory '/home/ross/Code/nss-mdns'
 /usr/bin/mkdir -p 'inst/lib'
 /home/ross/Code/slibtool/inst/usr/local/bin/rdlibtool   --mode=install /usr/bin/install -c   libnss_mdns.la libnss_mdns4.la libnss_mdns6.la libnss_mdns_minimal.la libnss_mdns4_minimal.la libnss_mdns6_minimal.la 'inst/lib'

/home/ross/Code/slibtool/inst/usr/local/bin/rdlibtool --mode=install /usr/bin/install -c libnss_mdns.la libnss_mdns4.la libnss_mdns6.la libnss_mdns_minimal.la libnss_mdns4_minimal.la libnss_mdns6_minimal.la inst/lib

STATTING .libs/libnss_mdns.so
rdlibtool: error logged in slbt_exec_install_entry(), line 437: No such file or directory.
rdlibtool: < returned to > slbt_exec_install(), line 706.
make[1]: *** [Makefile:883: install-libLTLIBRARIES] Error 2

The actual built files:

$ ls .libs/libnss_mdns.*
.libs/libnss_mdns.2
.libs/libnss_mdns.2.slibtool.deps
.libs/libnss_mdns.a.disabled
.libs/libnss_mdns.la
.libs/libnss_mdns.lai

Shouldn't there be a .so in there?

From discussion on IRC this is due to -shrext not working properly. libnss-mdns uses -avoid-version -shrext .so.2

Thanks for reporting! Implemented in commits 6beda1b & 5c84b65.

Metadata Update from @midipix:
- Issue status updated to: Closed (was: Open)

3 years ago

Login to comment on this ticket.

Metadata