Bug#1059502: rakudo: Raku configuration requires libffi, libtommath and libuv for any tests involving native call to work

Vadim Zeitlin vz-debian at zeitlins.org
Tue Dec 26 23:09:48 GMT 2023


Package: rakudo
Version: 2022.12-1
Severity: normal

Dear Maintainer,

Configuration of Rakudo packages puts `-lffi -ltommath -luv` in the "ldlibs"
key of
the "config" object which is used to build native code and this results in
build and/or
test failures when installing any packaging needing to do it -- which are very
common
in Rakudo ecosystem, as many common packages depend on them. E.g. it prevents
installing
LibXML or DBIish without --force-test.

Please notice that while this system uses 2022.12 version of the package, I've
checked
that the latest available 2023.06-1~exp1 also behaves in the same way.

AFAICS the problem comes from here:

% /usr/bin/raku -e 'say $*VM.config<ldlibs>'
 -L/usr/local/lib -lffi -ltommath -luv -lm -lpthread -lrt -ldl

To be compared with the upstream Rakudo packages:
% /opt/rakudo/bin/raku -e 'say $*VM.config<ldlibs>'
 -lm -lpthread -lrt -ldl

As "ldlibs" is used by e.g. compile_test_lib function used by the tests, all
test
code tries to link with the libraries listed above and so fails if they're not
installed.

Here is a slightly edited example of the problem:

% zef install --install-to=home --verbose DBIish
===> Searching for: DBIish
===> Found: DBIish:ver<0.6.6>:auth<zef:raku-community-modules>:api<1> [via
Zef::Repository::Ecosystems<fez>]
===> Searching for missing dependencies: NativeHelpers::Blob,
NativeLibs:ver<0.0.9+>:auth<github:salortiz>, NativeCall::TypeDiag
[...]
===> Extraction [OK]: NativeHelpers::Blob to
$HOME/.zef/tmp/NativeHelpers%3A%3ABlob%3Aver%3C0.1.12%3E%3Aauth%3Cgithub%3Asalortiz%3E.tar.gz
===> Testing: NativeHelpers::Blob:ver<0.1.12>:auth<github:salortiz>
[NativeHelpers::Blob] t/00-trivial.t .. ok
[NativeHelpers::Blob] t/01-basic.t .... ok
[NativeHelpers::Blob] t/02-cstruct.t .. Dubious, test returned 255
[NativeHelpers::Blob] All 35 subtests passed
[NativeHelpers::Blob] t/03-pointer.t .. ok
[NativeHelpers::Blob] t/99-my-meta.t .. ok
[NativeHelpers::Blob] All tests successful.
[NativeHelpers::Blob]
[NativeHelpers::Blob] Test Summary Report
[NativeHelpers::Blob] -------------------
[NativeHelpers::Blob] t/02-cstruct.t (Wstat: 65280 Tests: 0 Failed: 0)
[NativeHelpers::Blob] Non-zero exit status: 255
[NativeHelpers::Blob]   Parse errors: Bad plan.  You planned 35 tests but ran
0.
[NativeHelpers::Blob] Files=5, Tests=36,  1 wallclock secs
[NativeHelpers::Blob] Result: FAILED
===> Testing [FAIL]: NativeHelpers::Blob:ver<0.1.12>:auth<github:salortiz>
Aborting due to test failure:
NativeHelpers::Blob:ver<0.1.12>:auth<github:salortiz> (use --force-test to
override)

Looking at the failure in more details it can be seen that it happens because
libtommath is not available on my
system (libffi happens to be already installed for unrelated reasons).

Either lib{ffi,tommath,uv}-dev should be made dependencies of rakudo package
or, preferably, it shouldn't include
them in "ldlibs" in its config.

Thanks in advance!


-- System Information:
Debian Release: 12.2
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable-debug'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 6.1.0-13-amd64 (SMP w/32 CPU threads; PREEMPT)
Locale: LANG=C.utf8, LC_CTYPE=C.utf8 (charmap=UTF-8) (ignored: LC_ALL set to C.utf8), LANGUAGE=en_US:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages rakudo depends on:
ii  libc6                      2.36-9+deb12u3
ii  libgraph-perl              1:0.9726-1
ii  libipc-system-simple-perl  1.30-2
ii  libpath-tiny-perl          0.144-1
ii  moarvm                     2022.12+dfsg-1
ii  nqp                        2022.12+dfsg-1

rakudo recommends no packages.

Versions of packages rakudo suggests:
ii  valgrind  1:3.19.0-1

-- no debconf information



More information about the Pkg-rakudo-devel mailing list