Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pmqs/compress-raw-lzma
Low-Level Perl Interface to lzma/xz compression library
https://github.com/pmqs/compress-raw-lzma
compress lzma perl perl-module perl5 perl5-module uncompress xz
Last synced: about 1 month ago
JSON representation
Low-Level Perl Interface to lzma/xz compression library
- Host: GitHub
- URL: https://github.com/pmqs/compress-raw-lzma
- Owner: pmqs
- Created: 2019-03-16T16:47:53.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2024-04-27T12:49:31.000Z (8 months ago)
- Last Synced: 2024-05-08T18:47:31.679Z (8 months ago)
- Topics: compress, lzma, perl, perl-module, perl5, perl5-module, uncompress, xz
- Language: Perl
- Homepage:
- Size: 429 KB
- Stars: 3
- Watchers: 3
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README
- Changelog: Changes
Awesome Lists containing this project
README
Compress-Raw-Lzma
Version 2.213
28 August 2024
Copyright (c) 2009-2024 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it
and/or modify it under the same terms as Perl itself.DESCRIPTION
-----------This module provides a Perl interface to allow reading and writing of lzma, lzip
and xz files/buffers.PREREQUISITES
-------------Before you can build Compress-Raw-Lzma you need to have the following
installed on your system:* A C compiler
* Perl 5.006 or better.
* A copy of liblzma
liblzma is part of the XZ Utils which is available athttp://tukaani.org/xz/
Next you must edit the file config.in that comes with this distribution.
If necessary, change the INCLUDE and LIB variable to the directories where
liblzma and the lzma include file are installed.BUILDING THE MODULE
-------------------Assuming you have met all the prerequisites, the module can now be built
using this sequence of commands:perl Makefile.PL
make
make testINSTALLATION
------------To install Compress-Raw-Lzma, run the command below:
make install
TROUBLESHOOTING
---------------Build fails on Debian/Ubuntu
----------------------------If you are running a Debian/Ubuntu derivative you need to install the
liblzma-dev package.There is a similarly named package called lzma-dev that will not work
with this code.You will get this error if you have the wrong (or neither) package installed
Lzma.xs:18:10: fatal error: lzma.h: No such file or directory
18 | #include "lzma.h"
| ^~~~~~~~
compilation terminated.Install liblzma-dev by running
sudo apt install liblzma-dev
Test harness fails with: Undefined symbol "lzma_properties_size"
----------------------------------------------------------------If the module appears to have built correctly, but the t/001version.t test
harness fails with the errorUndefined symbol "lzma_properties_size"
it means you have two libraries called liblzma installed on your system.
The version of liblzma used by this module comes from http://tukaani.org/xz/.
There is another distribution, that comes from
http://tokyocabinet.sourceforge.net/misc/ that also builds a library called
liblzma. The tokyocabinet version of liblzma is not compatible with this
module. Note that the Perl module Compress-Lzma-Simple uses the
tokyocabinet version of liblzma.The solution is either:
1. Set the ZLIB_LIB variable in config.in to point to the directory where
the correct liblzma library is installed.2. Remove the offending version of liblzma.
Solaris build fails with "language optional software package not installed"
---------------------------------------------------------------------------If you are trying to build this module under Solaris and you get an
error message like this/usr/ucb/cc: language optional software package not installed
it means that Perl cannot find the C compiler on your system. The cryptic
message is just Sun's way of telling you that you haven't bought their
C compiler.When you build a Perl module that needs a C compiler, the Perl build
system tries to use the same C compiler that was used to build perl
itself. In this case your Perl binary was built with a C compiler that
lived in /usr/ucb.To continue with building this module, you need to get a C compiler,
or tell Perl where your C compiler is, if you already have one.Assuming you have now got a C compiler, what you do next will be dependent
on what C compiler you have installed. If you have just installed Sun's
C compiler, you shouldn't have to do anything. Just try rebuilding
this module.If you have installed another C compiler, say gcc, you have to tell perl
how to use it instead of /usr/ucb/cc.This set of options seems to work if you want to use gcc. Your mileage
may vary.perl Makefile.PL CC=gcc CCCDLFLAGS=-fPIC OPTIMIZE=" "
make testIf that doesn't work for you, it's time to make changes to the Makefile
by hand. Good luck!Solaris build fails with "gcc: unrecognized option `-KPIC'"
-----------------------------------------------------------You are running Solaris and you get an error like this when you try to
build this Perl modulegcc: unrecognized option `-KPIC'
This symptom usually means that you are using a Perl binary that has been
built with the Sun C compiler, but you are using gcc to build this module.When Perl builds modules that need a C compiler, it will attempt to use
the same C compiler and command line options that was used to build perl
itself. In this case "-KPIC" is a valid option for the Sun C compiler,
but not for gcc. The equivalent option for gcc is "-fPIC".The solution is either:
1. Build both Perl and this module with the same C compiler, either
by using the Sun C compiler for both or gcc for both.2. Try generating the Makefile for this module like this perl
perl Makefile.PL CC=gcc CCCDLFLAGS=-fPIC OPTIMIZE=" " LD=gcc
make testThis second option seems to work when mixing a Perl binary built
with the Sun C compiler and this module built with gcc. Your
mileage may vary.HP-UX Notes
-----------I've had a report that when building Compress-Raw-Lzma under HP-UX that it
is necessary to have first built the lzma library with the -fpic
option.SUPPORT
-------General feedback/questions/bug reports should be sent to
https://github.com/pmqs/Compress-Raw-Lzma/issuesFEEDBACK
--------How to report a problem with Compress-Raw-Lzma.
To help me help you, I need all of the following information:
1. The Versions of everything relevant.
This includes:a. The *complete* output from running this
perl -V
Do not edit the output in any way.
Note, I want you to run "perl -V" and NOT "perl -v".If your perl does not understand the "-V" option it is too
old. This module needs Perl version 5.004 or better.b. The version of Compress-Raw-Lzma you have.
If you have successfully installed Compress-Raw-Lzma, this one-liner
will tell you:perl -MCompress::Raw::Lzma -e 'print qq[ver $Compress::Raw::Lzma::VERSION\n]'
If you are running windows use this
perl -MCompress::Raw::Lzma -e "print qq[ver $Compress::Raw::Lzma::VERSION\n]"
If you haven't installed Compress-Raw-Lzma then search Compress::Raw::Lzma.pm
for a line like this:$VERSION = "2.213" ;
c. The version of lzma you have used.
If you have successfully installed Compress-Raw-Lzma, this one-liner
will tell you:perl -MCompress::Raw::Lzma -e "print q[lzma ver ]. Compress::Raw::Lzma::ZLIB_VERSION.qq[\n]"
If not, look at the beginning of the file zlib.h.
2. If you are having problems building Compress-Raw-Lzma, send me a
complete log of what happened. Start by unpacking the Compress-Raw-Lzma
module into a fresh directory and keep a log of all the steps, including
the setting of configuration environment variables (if applicable).[edit config.in or set environment varialbes, if necessary]
perl Makefile.PL
make
make test TEST_VERBOSE=1Paul Marquess