Skip Menu |

This queue is for tickets about the Compress-Raw-Lzma CPAN distribution.

Report information
The Basics
Id: 125046
Status: resolved
Priority: 0/
Queue: Compress-Raw-Lzma

People
Owner: Nobody in particular
Requestors: SREZIC [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: Undefined symbol "lzma_properties_size" (2.081)
On my freebsd smokers (all OS versions: 9, 10, 11, 12) the test suite fails: ... # Failed test (t/001version.t at line 23) # Tried to use 'Compress::Raw::Lzma'. # Error: Can't load '/home/cpansand/.cpan/build/2018040818/Compress-Raw-Lzma-2.081-WSlXmC/blib/arch/auto/Compress/Raw/Lzma/Lzma.so' for module Compress::Raw::Lzma: /home/cpansand/.cpan/build/2018040818/Compress-Raw-Lzma-2.081-WSlXmC/blib/arch/auto/Compress/Raw/Lzma/Lzma.so: Undefined symbol "lzma_properties_size" at /usr/perl5.20.1Dp/lib/5.20.1/amd64-freebsd-ld/DynaLoader.pm line 193. # at (eval 7) line 2. # Compilation failed in require at (eval 7) line 2. # BEGIN failed--compilation aborted at t/001version.t line 23. Bareword "LZMA_VERSION" not allowed while "strict subs" in use at t/001version.t line 31. Bareword "Compress::Raw::Lzma::lzma_version_number" not allowed while "strict subs" in use at t/001version.t line 32. Bareword "LZMA_VERSION_STRING" not allowed while "strict subs" in use at t/001version.t line 33. Bareword "Compress::Raw::Lzma::lzma_version_string" not allowed while "strict subs" in use at t/001version.t line 34. Execution of t/001version.t aborted due to compilation errors. # Looks like you planned 3 tests but only ran 2. # Looks like your test died just after 2. t/001version.t ....... Dubious, test returned 255 (wstat 65280, 0xff00) Failed 2/3 subtests ... (etc) ...
,,, Show quoted text
> Compress::Raw::Lzma: /home/cpansand/.cpan/build/2018040818/Compress- > Raw-Lzma-2.081-WSlXmC/blib/arch/auto/Compress/Raw/Lzma/Lzma.so: > Undefined symbol "lzma_properties_size" at > /usr/perl5.20.1Dp/lib/5.20.1/amd64-freebsd-ld/DynaLoader.pm line 193. > # at (eval 7) line 2.
The symbol"lzma_properties_size" is present in all the versions of liblzma that I have -- from version 5.0.0 to the most recent, 5.2.3. Do you have any details on the version of the lzma library that comes with freebsd? Perhaps it is a branch, or a different library that happens to have the same name as the one I'm using. thanks Paul
Install FreeBSD 11-1 It comes with liblzma 5.2.3 (see /usr/include/lzla/version.h). That is fine for this module. After installing per, a cpan install of Compress-Raw-Lzma worked fine. Not sure what is different with your setup, but the standard FreeBSD distribution seesm fine. Can you get me more details of your distribution so I can try to reproduce the issue? thanks Paul
On 2018-04-13 16:35:02, PMQS wrote: Show quoted text
> Install FreeBSD 11-1 > It comes with liblzma 5.2.3 (see /usr/include/lzla/version.h). That is > fine for this module. > > After installing per, a cpan install of Compress-Raw-Lzma worked fine. > > Not sure what is different with your setup, but the standard FreeBSD > distribution seesm fine. > > > Can you get me more details of your distribution so I can try to > reproduce the issue?
The problem is that I have the following package installed: $ pkg info lzmalib lzmalib-0.0.1_1 Name : lzmalib Version : 0.0.1_1 Installed on : Fri Mar 2 21:32:07 2018 PST Origin : archivers/lzmalib Architecture : FreeBSD:11:amd64 Prefix : /usr/local Categories : archivers Licenses : Maintainer : ports@FreeBSD.org WWW : http://tokyocabinet.sourceforge.net/ Comment : Thin wrapper library of LZMA Shared Libs provided: liblzma.so.1 Annotations : repo_type : binary repository : FreeBSD Flat size : 646KiB Description : This package includes a thin wrapper library of LZMA SDK. WWW: http://tokyocabinet.sourceforge.net/ After removing this package everything seems to be fine --- in this case the system lzma library is used. lzmalib is mentioned in CPAN::Plugin::Sysdeps::Mapping as a dependency for Compress::LZMA::Simple, and as my smokers have CPAN::Plugin::Sysdeps enabled, this package will be installed as soon as this CPAN module is tested.
Thanks for getting back to me. Turns out the link reported by pkg for lzmalib is incomplete. It is actually http://tokyocabinet.sourceforge.net/misc/ Regardless, I've seen that library before - it predates the newer one I use (which comes from http://tukaani.org/xz/). Think the older one is derived from the 7Zip source. Don't think there is much I can do apart from document the possible clash - Will put a note in the README. thanks again Paul
On 2018-04-13 17:18:25, PMQS wrote: Show quoted text
> Thanks for getting back to me. > > Turns out the link reported by pkg for lzmalib is incomplete. It is > actually http://tokyocabinet.sourceforge.net/misc/ > > Regardless, I've seen that library before - it predates the newer one > I use (which comes from http://tukaani.org/xz/). Think the older one > is derived from the 7Zip source. > > Don't think there is much I can do apart from document the possible > clash - Will put a note in the README. >
I tried whether I could make both Compress-LZMA-Simple and Compress-Raw-Lzma happy by specifying LIBLZMA_LIB for the latter. Unfortunately this did not help: the standard freebsd ld flags include -L/usr/local/lib, so the conflicting library from the ports always won over the library from the standard system. Only specifying something like LIBLZMA_LIB=/usr/lib perl Makefile.PL LDDLFLAGS="-shared -L/usr/local/lib/perl5/5.24/mach/CORE -lperl -fstack-protector" LDFLAGS="-lpthread -Wl,-E -fstack-protector" helped --- but unfortunately this line would be possibly different for every perl version, so defining this in CPAN distroprefs would be tedious. As the old tokyocabinet library is not available as a package for other systems (at least not on Debian/Ubuntu, Fedora/CentOS and Darwin via homebrew), I think it's of much greater value to support Compress-Raw-Lzma over Compress-LZMA-Simple. So I deinstalled the old lzma library from my systems and made sure via a distroprefs file ( https://github.com/eserte/srezic-cpan-distroprefs/blob/master/Compress-LZMA-Simple.yml ) that this module is not tested anymore and thus the old lzma library wouldn't be installed automatically anymore. I think the ticket may be closed now.