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)
Download (untitled) / with headers
text/plain 1.3k
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) ...
Download (untitled) / with headers
text/plain 624b
,,, 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
Download (untitled) / with headers
text/plain 384b
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
Download (untitled) / with headers
text/plain 1.4k
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.
Download (untitled) / with headers
text/plain 451b
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
Download (untitled) / with headers
text/plain 1.6k
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.


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.