this updates lzma utils to 4.32.0beta2. even though there is 'beta' in the distname, the author recommends this version (see homepage). main changes: - addition of lzmadec library - lzmash shell script has been replaced by a lzma command line tool with similar functionality written in C++.
(future plans include moving everything to C, including a compression library.) the build has been switched to gnu configure and libtool. the tests were removed, so i added the tests.sh script back from the previous release, with a few adjustments. tested fine on i386, amd64 and sparc. more testing and feedback welcome. Index: Makefile =================================================================== RCS file: /openbsd/cvs/ports/archivers/lzma/Makefile,v retrieving revision 1.1.1.1 diff -u -r1.1.1.1 Makefile --- Makefile 30 Jan 2006 13:29:00 -0000 1.1.1.1 +++ Makefile 2 Jul 2006 12:15:43 -0000 @@ -2,7 +2,8 @@ COMMENT= "LZMA utils - make usage of LZMA compression easy" -DISTNAME= lzma-4.27.1 +DISTNAME= lzma-4.32.0beta2 +SHARED_LIBS= lzmadec 0.0 CATEGORIES= archivers HOMEPAGE= http://tukaani.org/lzma/ @@ -19,8 +20,13 @@ WANTLIB= c m stdc++ -MAKE_FLAGS= MYCC="${CC}" MYCXX="${CXX}" +USE_LIBTOOL= Yes +CONFIGURE_STYLE= gnu -REGRESS_TARGET= test +post-extract: + @cp ${FILESDIR}/tests.sh ${WRKBUILD} + +do-regress: + @cd ${WRKBUILD} && ${SH} tests.sh .include <bsd.port.mk> Index: distinfo =================================================================== RCS file: /openbsd/cvs/ports/archivers/lzma/distinfo,v retrieving revision 1.1.1.1 diff -u -r1.1.1.1 distinfo --- distinfo 30 Jan 2006 13:29:00 -0000 1.1.1.1 +++ distinfo 2 Jul 2006 12:15:43 -0000 @@ -1,4 +1,4 @@ -MD5 (lzma-4.27.1.tar.gz) = 70b8b4ee9194d450642115b103dd040d -RMD160 (lzma-4.27.1.tar.gz) = a09582b8e303288fa2def08680d040c71495aff1 -SHA1 (lzma-4.27.1.tar.gz) = 39ee4321c26c80d2190347a5e1961323c913e008 -SIZE (lzma-4.27.1.tar.gz) = 102594 +MD5 (lzma-4.32.0beta2.tar.gz) = ae7ebddcd30124df9884fd8ecd48c9ad +RMD160 (lzma-4.32.0beta2.tar.gz) = 4fad4f5683c2ed4853e3d050d22028b93f3d06ad +SHA1 (lzma-4.32.0beta2.tar.gz) = 9eb442bba42d9214a3f9e758e43b15df9dac84a2 +SIZE (lzma-4.32.0beta2.tar.gz) = 428661 Index: files/tests.sh =================================================================== RCS file: files/tests.sh diff -N files/tests.sh --- /dev/null Sat Aug 30 18:16:59 1997 +++ files/tests.sh Sun Jul 2 11:30:12 2006 @@ -0,0 +1,69 @@ +#!/bin/sh + +# Exit on error and create files securely: +set -eC + +# Set some variables; look for md5/md5sum +LZMA_CMD="src/lzma/lzma -5" +LZMADEC="src/lzmadec/lzmadec" +MD5_CMD=md5 + +# Remove old tempory files: +rm -f testfile.* + +# Create a few files to be compressed: +echo "Creating test files..." +$MD5_CMD < /dev/null | cut -f 1 -d ' ' > testfile.1a +for I in a b c d e f g h i j k l m n o p q r s t u v w x y z \ + t h i s i s a f u n n y w a y t o c r e a t e \ + s o m e d a t a f o r q u i c k c o m p r e s s i o n \ + t e s t a l t o u g h t p r o b a b l y n o t t h e \ + m o s t e f f i c i e n t a n d f a s t e s t \ + a b c d e f g h i j k l m n o p q r s t u v w x y z; do + $MD5_CMD < testfile.1a | cut -f 1 -d ' ' >> testfile.1b + $MD5_CMD < testfile.1b | cut -f 1 -d ' ' >> testfile.1a +done +# Empty file: +cat /dev/null > testfile.2 +# Four megabytes of zero: +dd if=/dev/zero of=testfile.3 bs=1024 count=4096 2> /dev/null + +# Compress: +echo "Compressing..." +for I in 1a 1b 2 3; do + cat testfile.$I | $LZMA_CMD > testfile.$I.lzma +done + +# Decompress: +echo "Decompressing..." +for I in 1a 1b 2 3; do + $LZMA_CMD -d < testfile.$I.lzma > testfile.$I.unlzma + $LZMADEC < testfile.$I.lzma > testfile.$I.lzmadec +done + +md5_test() { + if [ "$($MD5_CMD < "$1" | cut -f 1 -d ' ')" = "$2" ]; then + echo "* $1: OK" + else + echo "* $1: FAILED" + fi +} + +md5_cmp() { + if [ "$($MD5_CMD < "$1")" = "$($MD5_CMD < "$2")" ]; then + echo "* $1: OK" + else + echo "* $1: FAILED" + fi +} + +# Compare MD5 sums: +echo "Verifying:" +md5_test testfile.1a.lzma 3d156e6cde4d7f4887b1f2fe31ea360a +md5_test testfile.1b.lzma 6d61f2c314fe76318a93c0850d55339f +md5_test testfile.2.lzma dfc087b4c46079bcc505ff6136fed30f +md5_test testfile.3.lzma 641d6634a973aca23b86419c316fcd18 +for I in 1a 1b 2 3; do + md5_cmp testfile.$I.unlzma testfile.$I + md5_cmp testfile.$I.lzmadec testfile.$I +done Index: patches/patch-Makefile =================================================================== RCS file: patches/patch-Makefile diff -N patches/patch-Makefile --- patches/patch-Makefile 30 Jan 2006 13:29:00 -0000 1.1.1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,38 +0,0 @@ -$OpenBSD: patch-Makefile,v 1.1.1.1 2006/01/30 13:29:00 steven Exp $ ---- Makefile.orig Mon Sep 12 15:39:55 2005 -+++ Makefile Tue Jan 24 10:11:54 2006 -@@ -1,11 +1,11 @@ - ## There is no need to have DESTDIR separately since no file has paths coded - ## in them. Just "make prefix=/my/path/usr install" when creating a package. - --prefix = /usr/local -+prefix = $(PREFIX) - bindir = $(prefix)/bin - mandir = $(prefix)/man --docdir = $(prefix)/doc --docdir_name = lzma-4.27.1 -+docdir = $(prefix)/share/doc -+docdir_name = lzma - - INSTALL = install - RM = rm -f -@@ -20,8 +20,7 @@ sdk: - cd sdk/SRC/7zip/Compress/LZMA_Alone && $(MAKE) - - install: all -- $(INSTALL) -dm 0755 $(bindir) $(mandir)/man1 \ -- $(docdir)/$(docdir_name) -+ $(INSTALL) -dm 0755 $(bindir) $(mandir)/man1 - $(INSTALL) -pm 0755 utils/lzmadec utils/lzmainfo \ - utils/lzmash utils/lzdiff utils/lzmore utils/lzgrep \ - sdk/SRC/7zip/Compress/LZMA_Alone/lzma \ -@@ -29,9 +28,6 @@ install: all - $(INSTALL) -pm 0644 man/lzma.1 man/lzmadec.1 man/lzmainfo.1 \ - man/lzmash.1 man/lzdiff.1 man/lzgrep.1 man/lzmore.1 \ - $(mandir)/man1 -- $(INSTALL) -pm 0644 BENCHMARKS COPYING.GPL COPYING.LGPL INSTALL \ -- README README.LICENSES THANKS TODO sdk/lzma.txt \ -- $(docdir)/$(docdir_name) - $(LN) lzmash $(bindir)/lunzmash - $(LN) lzmash $(bindir)/lzcat - $(LN) lzdiff $(bindir)/lzcmp Index: patches/patch-sdk_SRC_7zip_Compress_LZMA_Alone_Makefile =================================================================== RCS file: patches/patch-sdk_SRC_7zip_Compress_LZMA_Alone_Makefile diff -N patches/patch-sdk_SRC_7zip_Compress_LZMA_Alone_Makefile --- patches/patch-sdk_SRC_7zip_Compress_LZMA_Alone_Makefile 30 Jan 2006 13:29:00 -0000 1.1.1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,20 +0,0 @@ -$OpenBSD: patch-sdk_SRC_7zip_Compress_LZMA_Alone_Makefile,v 1.1.1.1 2006/01/30 13:29:00 steven Exp $ ---- sdk/SRC/7zip/Compress/LZMA_Alone/Makefile.orig Wed Aug 24 19:15:58 2005 -+++ sdk/SRC/7zip/Compress/LZMA_Alone/Makefile Tue Jan 24 10:07:27 2006 -@@ -4,12 +4,12 @@ - PROG = lzma - - ## Compile only bt4, hc3 and hc4 match finders: --CXX = gcc -DCOMPRESS_MF_BT -DCOMPRESS_MF_BT4 -DCOMPRESS_MF_HC \ -- -I ../../../ -c $(CFLAGS) --LD = gcc $(CFLAGS) -+CXX = $(MYCXX) -DCOMPRESS_MF_BT -DCOMPRESS_MF_BT4 -DCOMPRESS_MF_HC \ -+ -I ../../../ -c $(CXXFLAGS) -+LD = $(MYCXX) $(CXXFLAGS) - - ## Avoid dependency on libstdc++ and libgcc_s: --LIB = -lm -lsupc++ -static-libgcc -+LIB = -lm - ## LIB = -lm -lstdc++ - - RM = rm -f Index: patches/patch-src_liblzmadec_main_c =================================================================== RCS file: patches/patch-src_liblzmadec_main_c diff -N patches/patch-src_liblzmadec_main_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-src_liblzmadec_main_c 2 Jul 2006 12:15:43 -0000 @@ -0,0 +1,41 @@ +$OpenBSD$ +--- src/liblzmadec/main.c.orig Sat Dec 24 21:02:46 2005 ++++ src/liblzmadec/main.c Sun Jul 2 15:56:00 2006 +@@ -227,9 +227,9 @@ lzmadec_header_uncompressed (uint_fast64 + { + /* Streamed files have all 64 bits set in the size field. + We don't know the uncompressed size beforehand. */ ++ uint_fast32_t i; + *is_streamed = 1; /* Assume streamed. */ + *size = 0; +- uint_fast32_t i; + for (i = 0; i < 8; i++) { + *size += (uint_fast64_t)buffer[i] << (i * 8); + if (buffer[i] != 255) +@@ -253,6 +253,7 @@ lzmadec_internal_init (lzmadec_stream *s + { + uint_fast32_t i; + uint32_t num_probs; ++ const size_t lzmadec_num_probs; + + /* Make sure we have been called sanely */ + if (STATE->probs != NULL || STATE->dictionary != NULL +@@ -285,7 +286,7 @@ lzmadec_internal_init (lzmadec_stream *s + strm->avail_in -= 8; + + /* Allocate memory for internal data */ +- const size_t lzmadec_num_probs = (LZMA_BASE_SIZE ++ lzmadec_num_probs = (LZMA_BASE_SIZE + + (LZMA_LIT_SIZE << (STATE->lc + STATE->lp))); + STATE->probs = (CProb *)((strm->lzma_alloc)(strm->opaque, 1, + lzmadec_num_probs * sizeof(CProb))); +@@ -668,8 +669,8 @@ assert (state >= 0); + numDirectBits = LZMA_NUM_ALIGN_BITS; + } + { +- i = 1; + int_fast32_t mi = 1; ++ i = 1; + do { + CProb *prob3 = prob + mi; + RC_GET_BIT2(prob3, mi, ; , rep0 |= i); Index: patches/patch-utils_Makefile =================================================================== RCS file: patches/patch-utils_Makefile diff -N patches/patch-utils_Makefile --- patches/patch-utils_Makefile 30 Jan 2006 13:29:00 -0000 1.1.1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,14 +0,0 @@ -$OpenBSD: patch-utils_Makefile,v 1.1.1.1 2006/01/30 13:29:00 steven Exp $ ---- utils/Makefile.orig Sun Jan 22 16:45:05 2006 -+++ utils/Makefile Sun Jan 22 16:45:32 2006 -@@ -2,8 +2,8 @@ - ## -D_LZMA_SYSTEM_SIZE_T should keep it working also on 64-bit arch. - ## -D_LZMA_PROB32 is a speed optimization. - --CC = gcc -D_LZMA_IN_CB -D_LZMA_OUT_READ -D_LZMA_SYSTEM_SIZE_T -D_LZMA_PROB32 --LD = gcc -+CC = $(MYCC) -D_LZMA_IN_CB -D_LZMA_OUT_READ -D_LZMA_SYSTEM_SIZE_T -D_LZMA_PROB32 -+LD = $(MYCC) - LDFLAGS = $(CFLAGS) - RM = rm -f - LZMA_C = ../sdk/SRC/7zip/Compress/LZMA_C Index: patches/patch-utils_lzmash =================================================================== RCS file: patches/patch-utils_lzmash diff -N patches/patch-utils_lzmash --- patches/patch-utils_lzmash 30 Jan 2006 13:29:00 -0000 1.1.1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,16 +0,0 @@ -$OpenBSD: patch-utils_lzmash,v 1.1.1.1 2006/01/30 13:29:00 steven Exp $ ---- utils/lzmash.orig Tue Jan 24 10:09:07 2006 -+++ utils/lzmash Tue Jan 24 10:10:21 2006 -@@ -570,10 +570,10 @@ if [ $USE_STDOUT = 0 -a $TEST_ONLY = 0 ] - FILE_INFO=$(ls -dLln -- "$SOURCE" \ - | tr -s ' ' | cut -f 1,3,4 -d ' ') - chown "$(echo "$FILE_INFO" | cut -f 2,3 -d ' ' \ -- | tr ' ' ':')" -- "$TARGET" -+ | tr ' ' ':')" "$TARGET" - chmod "$(echo "$FILE_INFO" | sed \ - 's/^.\(...\)\(...\)\(...\).*$/u=\1,g=\2,o=\3/;s/-//g')"\ -- -- "$TARGET" -+ "$TARGET" - touch -cr "$SOURCE" -- "$TARGET" - fi - [ $KEEP_FILE = 0 ] && rm -f -- "$SOURCE" Index: pkg/PFRAG.shared =================================================================== RCS file: pkg/PFRAG.shared diff -N pkg/PFRAG.shared --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ pkg/PFRAG.shared 2 Jul 2006 12:15:43 -0000 @@ -0,0 +1,2 @@ [EMAIL PROTECTED] $OpenBSD$ [EMAIL PROTECTED] lib/liblzmadec.so.${LIBlzmadec_VERSION} Index: pkg/PLIST =================================================================== RCS file: /openbsd/cvs/ports/archivers/lzma/pkg/PLIST,v retrieving revision 1.1.1.1 diff -u -r1.1.1.1 PLIST --- pkg/PLIST 30 Jan 2006 13:29:00 -0000 1.1.1.1 +++ pkg/PLIST 2 Jul 2006 12:15:43 -0000 @@ -1,5 +1,5 @@ @comment $OpenBSD: PLIST,v 1.1.1.1 2006/01/30 13:29:00 steven Exp $ -bin/lunzmash +%%SHARED%% bin/lzcat bin/lzcmp bin/lzdiff @@ -10,9 +10,11 @@ bin/lzma bin/lzmadec bin/lzmainfo -bin/lzmash bin/lzmore [EMAIL PROTECTED] man/man1/lunzmash.1 +bin/unlzma +include/lzmadec.h +lib/liblzmadec.a +lib/liblzmadec.la @man man/man1/lzcat.1 @man man/man1/lzcmp.1 @man man/man1/lzdiff.1 @@ -23,5 +25,5 @@ @man man/man1/lzma.1 @man man/man1/lzmadec.1 @man man/man1/lzmainfo.1 [EMAIL PROTECTED] man/man1/lzmash.1 @man man/man1/lzmore.1 [EMAIL PROTECTED] man/man1/unlzma.1 Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm