The zip format supports bzip2 as compression algorithm in addition to
deflate and store. This patch adds support for bzip2 to zip and unzip.
You can test the bzip2 compression with:
$ zip -Zb -9 -r test.zip mydirectory
$ unzip test.zip
OK?
diff -r 688ecbc90e36 unzip/Makefile
--- unzip/Makefile Wed Jul 25 10:03:17 2018 +0000
+++ unzip/Makefile Wed Jul 25 19:18:52 2018 +0200
@@ -7,7 +7,7 @@
VERSION = 6.0
DISTNAME = unzip${VERSION:S/.//}
PKGNAME = unzip-${VERSION}
-REVISION = 11
+REVISION = 12
CATEGORIES = archivers
MASTER_SITES = ${MASTER_SITE_SOURCEFORGE:=infozip/} \
ftp://ftp.info-zip.org/pub/infozip/src/
@@ -21,9 +21,11 @@
PERMIT_PACKAGE_CDROM = Yes
# uses pledge()
-WANTLIB = c
+WANTLIB = bz2 c
-MAKE_FLAGS = CC="${CC}" LD="${CC}" CF="${CFLAGS}" LOC="${LOC}"
+LIB_DEPENDS = archivers/bzip2
+
+MAKE_FLAGS = CC="${CC}" LD="${CC}" CF="${CFLAGS}" LOC="${LOC}" LF2="${LF2}"
FAKE_FLAGS = prefix="${WRKINST}${PREFIX}"
MAKE_FILE = unix/Makefile
@@ -32,19 +34,19 @@
DOCS = COPYING.OLD LICENSE README WHERE
-LOC = -DLARGE_FILE_SUPPORT -DNO_LCHMOD -DUSE_UNSHRINK
+LOC = -DLARGE_FILE_SUPPORT -DNO_LCHMOD -DUSE_UNSHRINK -DUSE_BZIP2
.if ${FLAVOR:L:Miconv}
LIB_DEPENDS += converters/libiconv
WANTLIB += iconv
-CFLAGS += -I${LOCALBASE}/include
LOC += -DUNICODE_SUPPORT -DUNICODE_WCHAR -DUTF8_MAYBE_NATIVE \
-DNO_WORKING_ISPRINT
-MAKE_FLAGS += LF2="-L${LOCALBASE}/lib -liconv"
+LF2 += -liconv
PATCH_LIST = patch-* iconv-*
.endif
-CFLAGS += -I. ${LOC}
+CFLAGS += -I. -I${LOCALBASE}/include ${LOC}
+LF2 += -L${LOCALBASE}/lib -lbz2
post-install:
${INSTALL_DATA_DIR} ${PREFIX}/share/doc/unzip
diff -r 688ecbc90e36 zip/Makefile
--- zip/Makefile Wed Jul 25 10:03:17 2018 +0000
+++ zip/Makefile Wed Jul 25 19:18:52 2018 +0200
@@ -3,7 +3,7 @@
COMMENT= create/update ZIP files compatible with PKZip(tm)
VERSION= 3.0
-REVISION= 0
+REVISION= 1
DISTNAME= zip${VERSION:S/.//}
PKGNAME= zip-${VERSION}
@@ -14,11 +14,14 @@
# Conditional
PERMIT_PACKAGE_CDROM= Yes
-WANTLIB += c
+WANTLIB += bz2 c
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=infozip/}
-MAKE_FLAGS= CC="${CC}" CFLAGS_NOOPT="${CFLAGS} -I. -DUNIX"
+LIB_DEPENDS= archivers/bzip2
+
+MAKE_FLAGS= CC="${CC}" CFLAGS_NOOPT="${CFLAGS} -I. -DUNIX" \
+ IZ_BZIP2="${LOCALBASE}"
MAKE_FILE= unix/Makefile
ALL_TARGET= generic
diff -r 688ecbc90e36 zip/patches/patch-unix_configure
--- zip/patches/patch-unix_configure Wed Jul 25 10:03:17 2018 +0000
+++ zip/patches/patch-unix_configure Wed Jul 25 19:18:52 2018 +0200
@@ -1,28 +1,65 @@
$OpenBSD: patch-unix_configure,v 1.2 2009/01/14 16:59:51 sturm Exp $
---- unix/configure.orig Fri Dec 12 22:58:30 2008
-+++ unix/configure Fri Dec 12 22:59:38 2008
-@@ -98,7 +98,6 @@ int main()
+Index: unix/configure
+--- unix/configure.orig
++++ unix/configure
+@@ -98,7 +98,7 @@ int main()
_EOF_
$CC $CFLAGS -c conftest.c > /dev/null 2>/dev/null
if test $? -eq 0; then
- CFLAGS_OPT='-O3'
++ CFLAGS_OPT=''
echo " GNU C ($CFLAGS_OPT)"
# Special Mac OS X shared library "ld" option?
if test ` uname -s 2> /dev/null ` = 'Darwin'; then
-@@ -110,7 +109,6 @@ _EOF_
- rm -f conftest
- fi
- else
-- CFLAGS_OPT='-O'
- echo " Other-unknown C ($CFLAGS_OPT)"
- fi
+@@ -131,40 +131,40 @@ CC_BZ="${CC}"
+ LIB_BZ=''
+ if test -n "${IZ_BZIP2}"; then
+ echo " Check for bzip2 compiled library in IZ_BZIP2 (${IZ_BZIP2})"
+- if test -f "${IZ_BZIP2}/libbz2.a"; then
++ if test -f "${IZ_BZIP2}/lib/libbz2.a"; then
+ #
+ # A bzip2 library built with BZ_NO_STDIO should have an
+ # unresolved external, "bz_internal_error". The default,
+ # full-function library will not mention it.
+ #
+- nm ${IZ_BZIP2}/libbz2.a | grep bz_internal_error > /dev/null
++ nm ${IZ_BZIP2}/lib/libbz2.a | grep bz_internal_error > /dev/null
+ if test $? -eq 0; then
+- echo " Found bzip2 BZ_NO_STDIO library, ${IZ_BZIP2}/libbz2.a"
++ echo " Found bzip2 BZ_NO_STDIO library, ${IZ_BZIP2}/lib/libbz2.a"
+ else
+- echo " Found bzip2 library, ${IZ_BZIP2}/libbz2.a,"
++ echo " Found bzip2 library, ${IZ_BZIP2}/lib/libbz2.a,"
+ echo " but library not compiled with BZ_NO_STDIO"
+ echo " WARNING: We recommend using a bzip2 library compiled"
+ echo " with BZ_NO_STDIO defined for proper error handling"
+ echo " Please see the Zip installation instructions in
bzip2/install.txt"
+ echo " Continuing anyway with standard bzip2 library..."
fi
-@@ -244,7 +242,7 @@ if eval "$CPP match.S > _match.s 2>/dev/null"; then
- echo "int foo() { return 0;}" > conftest.c
- $CC -c conftest.c >/dev/null 2>/dev/null
- echo Check if compiler generates underlines
-- nm conftest.o | grep "(^|[^_])foo" >/dev/null 2>/dev/null
-+ nm conftest.o | egrep "(^|[^_])foo" >/dev/null 2>/dev/null
- [ $? -eq 0 ] && CPP="${CPP} -DNO_UNDERLINE"
- if eval "$CPP crc_i386.S > _crc_i386.s 2>/dev/null"; then
- if eval "$CC -c _crc_i386.s >/dev/null 2>/dev/null" && [ -f _crc_i386.o
]
+- if test -f "${IZ_BZIP2}/bzlib.h"; then
+- CFLAGS="${CFLAGS} -I${IZ_BZIP2} -DBZIP2_SUPPORT"
+- LFLAGS2="${LFLAGS2} -L${IZ_BZIP2} -lbz2"
++ if test -f "${IZ_BZIP2}/include/bzlib.h"; then
++ CFLAGS="${CFLAGS} -I${IZ_BZIP2}/include -DBZIP2_SUPPORT"
++ LFLAGS2="${LFLAGS2} -L${IZ_BZIP2}/lib -lbz2"
+ echo "-- Found bzip2 library - linking in bzip2"
+ else
+- echo " ${IZ_BZIP2}/bzlib.h not found"
++ echo " ${IZ_BZIP2}/include/bzlib.h not found"
+ echo "-- Since IZ_BZIP2 defined, skipping OS and bzip2 dir checks - no
bzip2"
+ fi
+ else
+- echo " ${IZ_BZIP2}/libbz2.a not found"
++ echo " ${IZ_BZIP2}/lib/libbz2.a not found"
+ echo "-- Since IZ_BZIP2 defined, skipping OS and bzip2 checks - no bzip2"
+ fi
+ else
+ echo " Check for bzip2 in bzip2 directory"
+ IZ_BZIP2=bzip2
+- if test -f "${IZ_BZIP2}/libbz2.a"; then
+- nm ${IZ_BZIP2}/libbz2.a | grep bz_internal_error > /dev/null
++ if test -f "${IZ_BZIP2}/lib/libbz2.a"; then
++ nm ${IZ_BZIP2}/lib/libbz2.a | grep bz_internal_error > /dev/null
+ if test $? -eq 0; then
+ echo " Found bzip2 BZ_NO_STDIO library in bzip2 directory"
+ else