diff --git a/archivers/unzip/Makefile b/archivers/unzip/Makefile index d3ac72614119..97a7103134bf 100644 --- a/archivers/unzip/Makefile +++ b/archivers/unzip/Makefile @@ -6,16 +6,15 @@ # PORTNAME= unzip -PORTVERSION= 5.52 -PORTREVISION= 5 +PORTVERSION= 6.0 CATEGORIES?= archivers -MASTER_SITES= SF/infozip/UnZip%205.x%20and%20earlier/${PORTVERSION} -DISTNAME= ${PORTNAME}552 +MASTER_SITES= SF/infozip/UnZip%206.x%20(latest)/UnZip%20${PORTVERSION} \ + SF/infozip/UnZip%205.x%20and%20earlier/5.51:unreduce +DISTNAME= ${PORTNAME}60 MAINTAINER?= ache@FreeBSD.org COMMENT?= List, test and extract compressed files in a ZIP archive -WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION} MAKEFILE= unix/Makefile .if defined(INSTALL_AS_INFOUNZIP) UNZIP_NAME= info-unzip @@ -26,16 +25,18 @@ PLIST_FILES= bin/${UNZIP_NAME} bin/funzip bin/unzipsfx bin/zipgrep bin/zipinfo PORTDOCS= README WHERE MAN1= ${UNZIP_NAME}.1 funzip.1 unzipsfx.1 zipgrep.1 zipinfo.1 -CFLAGS+= -D_FILE_OFFSET_BITS=64 -LOCAL_UNZIP= ${CFLAGS} -DACORN_FTYPE_NFS -DWILD_STOP_AT_DIR +LOCAL_UNZIP= ${CFLAGS} -DACORN_FTYPE_NFS -DWILD_STOP_AT_DIR \ + -DUNICODE_SUPPORT -DUNICODE_WCHAR -DUTF8_MAYBE_NATIVE -D_MBCS \ + -DLARGE_FILE_SUPPORT .if defined(WITH_UNZIP_UNREDUCE) -DISTFILES= ${DISTNAME}${EXTRACT_SUFX} unreduce_full.zip -EXTRACT_ONLY= ${PORTNAME}552.tar.gz +DISTFILES= ${DISTNAME}${EXTRACT_SUFX} unreduce_full.zip:unreduce +EXTRACT_ONLY= ${PORTNAME}60.tar.gz LOCAL_UNZIP+= -DUSE_SMITH_CODE .endif -MAKE_ENV= LOCAL_UNZIP="${LOCAL_UNZIP}" +MAKE_ENV= LOCAL_UNZIP="${LOCAL_UNZIP}" \ + D_USE_BZ2=-DUSE_BZIP2 L_BZ2=-lbz2 .ifdef USE_UNZIP .error You have `USE_UNZIP' variable defined either in environment or in make(1) arguments. Please undefine and try again. diff --git a/archivers/unzip/distinfo b/archivers/unzip/distinfo index 0b607d7a7cdd..214d9a5d1354 100644 --- a/archivers/unzip/distinfo +++ b/archivers/unzip/distinfo @@ -1,6 +1,6 @@ -MD5 (unzip552.tar.gz) = 9d23919999d6eac9217d1f41472034a9 -SHA256 (unzip552.tar.gz) = 145d95e2ef1ef9add2e3c97d1340907e33ab8749eb1235372e7f0b7af600a8e9 -SIZE (unzip552.tar.gz) = 1140291 +MD5 (unzip60.tar.gz) = 62b490407489521db863b523a7f86375 +SHA256 (unzip60.tar.gz) = 036d96991646d0449ed0aa952e4fbe21b476ce994abc276e49d30e686708bd37 +SIZE (unzip60.tar.gz) = 1376845 MD5 (unreduce_full.zip) = b7cde206d69b403e7551b9b0c25bd345 SHA256 (unreduce_full.zip) = 1f4d93d2250dc1a1d1d2b8aac09d9989d4f9dd2cb0967373bf41fdf5f108cec1 SIZE (unreduce_full.zip) = 2849 diff --git a/archivers/unzip/files/patch-aa b/archivers/unzip/files/patch-aa index 11c65e78da3e..2ba157517618 100644 --- a/archivers/unzip/files/patch-aa +++ b/archivers/unzip/files/patch-aa @@ -1,6 +1,6 @@ ---- unix/Makefile.orig Mon Mar 1 20:37:24 2004 -+++ unix/Makefile Wed May 26 21:43:04 2004 -@@ -42,7 +42,7 @@ +--- unix/Makefile.orig 2009-01-19 01:41:18.000000000 +0300 ++++ unix/Makefile 2009-10-26 13:15:47.000000000 +0300 +@@ -42,12 +42,12 @@ # such as -DDOSWILD). # UnZip flags @@ -8,15 +8,21 @@ +CC ?= cc# try using "gcc" target rather than changing this (CC and LD LD = $(CC)# must match, else "unresolved symbol: ___main" is possible) AS = as - LOC = $(LOCAL_UNZIP) -@@ -727,8 +727,8 @@ + LOC = $(D_USE_BZ2) $(LOCAL_UNZIP) + AF = $(LOC) +-CFLAGS = -O ++#CFLAGS = -O + CF_NOOPT = -I. -I$(IZ_BZIP2) -DUNIX $(LOC) + CF = $(CFLAGS) $(CF_NOOPT) + LFLAGS1 = +@@ -763,8 +763,8 @@ # FreeBSD on Intel: freebsd: unix_make @echo 'NOTE: use bsd target for non-Intel FreeBSD compiles (if any).' - $(MAKE) unzips CC=gcc LD=gcc AS=gcc\ -- CF="-O3 -Wall -I. -DASM_CRC -DUNIX -DBSD $(LOC)"\ +- CFLAGS="-O3 -Wall -DASM_CRC -DBSD"\ + $(MAKE) unzips CC="$(CC)" LD="$(CC)" AS="$(CC)"\ -+ CF="-Wall -I. -DASM_CRC -DUNIX -DBSD $(LOC)"\ - AF="-Di386 $(AF)" CRC32=crc_gcc ++ CF="$(CF) -Wall -DASM_CRC -DBSD"\ + AF="-Di386 $(AF)" CRCA_O=crc_gcc$O # Generic BSDish Unix gcc. ``The -O3 only works with later versions of gcc; diff --git a/archivers/unzip/files/patch-ab b/archivers/unzip/files/patch-ab index 50dfd0b5e7a4..1df0101edef6 100644 --- a/archivers/unzip/files/patch-ab +++ b/archivers/unzip/files/patch-ab @@ -1,11 +1,11 @@ ---- unix/unix.c.bak Wed May 26 21:40:00 2004 -+++ unix/unix.c Wed May 26 21:40:09 2004 -@@ -533,7 +533,7 @@ - - default: - /* allow European characters in filenames: */ -- if (isprint(workch) || (128 <= workch && workch <= 254)) -+ if (isprint(workch) || (128 <= workch && workch <= 255)) +--- unix/unix.c.orig 2009-01-24 02:31:26.000000000 +0300 ++++ unix/unix.c 2009-10-26 13:22:08.000000000 +0300 +@@ -610,7 +610,7 @@ + * else allow 8-bit characters (e.g. UTF-8) in filenames: + */ + if (uO.cflxflag || +- (isprint(workch) || (128 <= workch && workch <= 254))) ++ (isprint(workch) || (128 <= workch && workch <= 255))) *pp++ = (char)workch; } /* end switch */ diff --git a/archivers/unzip/files/patch-fileio.c b/archivers/unzip/files/patch-fileio.c deleted file mode 100644 index 880db03dc700..000000000000 --- a/archivers/unzip/files/patch-fileio.c +++ /dev/null @@ -1,14 +0,0 @@ ---- unzip-5.52.orig/fileio.c -+++ fileio.c -@@ -413,7 +413,11 @@ - #endif /* NOVELL_BUG_FAILSAFE */ - Trace((stderr, "open_outfile: doing fopen(%s) for writing\n", - FnFilter1(G.filename))); -+#if defined(SYMLINKS) || defined(QLZIP) -+ if ((G.outfile = fopen(G.filename, FOPWR)) == (FILE *)NULL) { -+#else - if ((G.outfile = fopen(G.filename, FOPW)) == (FILE *)NULL) { -+#endif - Info(slide, 0x401, ((char *)slide, LoadFarString(CannotCreateFile), - FnFilter1(G.filename))); - return 1; diff --git a/archivers/unzip/files/patch-inflate.c b/archivers/unzip/files/patch-inflate.c deleted file mode 100644 index e6d751d20dc7..000000000000 --- a/archivers/unzip/files/patch-inflate.c +++ /dev/null @@ -1,50 +0,0 @@ ---- unzip-5.52.orig/inflate.c -+++ inflate.c -@@ -983,6 +983,7 @@ - unsigned l; /* last length */ - unsigned m; /* mask for bit lengths table */ - unsigned n; /* number of lengths to get */ -+ struct huft *tlp; - struct huft *tl; /* literal/length code table */ - struct huft *td; /* distance code table */ - unsigned bl; /* lookup bits for tl */ -@@ -996,6 +997,8 @@ - int retval = 0; /* error code returned: initialized to "no error" */ - - -+ td = tlp = tl = (struct huft *)NULL; -+ - /* make local bit buffer */ - Trace((stderr, "\ndynamic block")); - b = G.bb; -@@ -1047,9 +1050,9 @@ - while (i < n) - { - NEEDBITS(bl) -- j = (td = tl + ((unsigned)b & m))->b; -+ j = (tlp = tl + ((unsigned)b & m))->b; - DUMPBITS(j) -- j = td->v.n; -+ j = tlp->v.n; - if (j < 16) /* length of code in bits (0..15) */ - ll[i++] = l = j; /* save last length in l */ - else if (j == 16) /* repeat last length 3 to 6 times */ -@@ -1141,6 +1144,7 @@ - huft_free(td); - } - huft_free(tl); -+ - return retval; - } - -@@ -1149,8 +1153,8 @@ - - cleanup_and_exit: - /* free the decoding tables, return */ -- huft_free(tl); -- huft_free(td); -+ if (tl) huft_free(tl); -+ if (td) huft_free(td); - return retval; - } - diff --git a/archivers/unzip/files/patch-process.c b/archivers/unzip/files/patch-process.c index 62e51b6ce9b6..089210d1f4b4 100644 --- a/archivers/unzip/files/patch-process.c +++ b/archivers/unzip/files/patch-process.c @@ -1,30 +1,16 @@ ---- unzip-5.52.orig/process.c -+++ process.c -@@ -74,20 +74,20 @@ +--- process.c.orig 2009-03-06 04:25:10.000000000 +0300 ++++ process.c 2009-10-26 16:08:15.000000000 +0300 +@@ -101,10 +101,10 @@ /* do_seekable() strings */ # ifdef UNIX static ZCONST char Far CannotFindZipfileDirMsg[] = - "%s: cannot find zipfile directory in one of %s or\n\ - %s%s.zip, and cannot find %s, period.\n"; + "%s: cannot find zipfile directory in one of %.512s or\n\ -+ %s%.512s.zip, and cannot find %.512s, period.\n"; ++ %s%.512s.zip, and cannot find %.512s, period.\n"; static ZCONST char Far CannotFindEitherZipfile[] = - "%s: cannot find or open %s, %s.zip or %s.\n"; + "%s: cannot find or open %.512s, %.512s.zip or %.512s.\n"; # else /* !UNIX */ - # ifndef AMIGA - static ZCONST char Far CannotFindWildcardMatch[] = -- "%s: cannot find any matches for wildcard specification \"%s\".\n"; -+ "%s: cannot find any matches for wildcard specification \"%.512s\".\n"; - # endif /* !AMIGA */ static ZCONST char Far CannotFindZipfileDirMsg[] = -- "%s: cannot find zipfile directory in %s,\n\ -- %sand cannot find %s, period.\n"; -+ "%s: cannot find zipfile directory in %.512s,\n\ -+ %sand cannot find %.512s, period.\n"; - static ZCONST char Far CannotFindEitherZipfile[] = -- "%s: cannot find either %s or %s.\n"; -+ "%s: cannot find either %.512s or %.512s.\n"; - # endif /* ?UNIX */ - extern ZCONST char Far Zipnfo[]; /* in unzip.c */ - #ifndef WINDLL + "%s: cannot find zipfile directory in %s,\n\ diff --git a/archivers/unzip/files/patch-unix_unix.c b/archivers/unzip/files/patch-unix_unix.c deleted file mode 100644 index cf04c3b118e4..000000000000 --- a/archivers/unzip/files/patch-unix_unix.c +++ /dev/null @@ -1,114 +0,0 @@ ---- unzip-5.52.orig/unix/unix.c -+++ unix/unix.c -@@ -1042,8 +1042,6 @@ - ush z_uidgid[2]; - int have_uidgid_flg; - -- fclose(G.outfile); -- - /*--------------------------------------------------------------------------- - If symbolic links are supported, allocate storage for a symlink control - structure, put the uncompressed "data" and other required info in it, and -@@ -1063,6 +1061,7 @@ - Info(slide, 0x201, ((char *)slide, - "warning: symbolic link (%s) failed: mem alloc overflow\n", - FnFilter1(G.filename))); -+ fclose(G.outfile); - return; - } - -@@ -1070,6 +1069,7 @@ - Info(slide, 0x201, ((char *)slide, - "warning: symbolic link (%s) failed: no mem\n", - FnFilter1(G.filename))); -+ fclose(G.outfile); - return; - } - slnk_entry->next = NULL; -@@ -1079,11 +1079,10 @@ - slnk_entry->fname = slnk_entry->target + ucsize + 1; - strcpy(slnk_entry->fname, G.filename); - -- /* reopen the "link data" file for reading */ -- G.outfile = fopen(G.filename, FOPR); -+ /* move back to the start of the file to re-read the "link data" */ -+ rewind(G.outfile); - -- if (!G.outfile || -- fread(slnk_entry->target, 1, ucsize, G.outfile) != (int)ucsize) -+ if (fread(slnk_entry->target, 1, ucsize, G.outfile) != (int)ucsize) - { - Info(slide, 0x201, ((char *)slide, - "warning: symbolic link (%s) failed\n", -@@ -1115,12 +1114,20 @@ - } - #endif - -+#if (defined(NO_FCHOWN) || defined(NO_FCHMOD)) -+ fclose(G.outfile); -+#endif -+ - have_uidgid_flg = get_extattribs(__G__ &(zt.t3), z_uidgid); - - /* if -X option was specified and we have UID/GID info, restore it */ - if (have_uidgid_flg) { - TTrace((stderr, "close_outfile: restoring Unix UID/GID info\n")); -+#if (defined(NO_FCHOWN) || defined(NO_FCHMOD)) - if (chown(G.filename, (uid_t)z_uidgid[0], (gid_t)z_uidgid[1])) -+#else -+ if (fchown(fileno(G.outfile), (uid_t)z_uidgid[0], (gid_t)z_uidgid[1])) -+#endif - { - if (uO.qflag) - Info(slide, 0x201, ((char *)slide, -@@ -1133,6 +1140,18 @@ - } - } - -+#if (!defined(NO_FCHOWN) && !defined(NO_FCHMOD)) -+/*--------------------------------------------------------------------------- -+ Change the file permissions from default ones to those stored in the -+ zipfile. -+ ---------------------------------------------------------------------------*/ -+ -+ if (fchmod(fileno(G.outfile), filtattr(__G__ G.pInfo->file_attr))) -+ perror("chmod (file attributes) error"); -+ -+ fclose(G.outfile); -+#endif /* !NO_FCHOWN && !NO_FCHMOD */ -+ - /* set the file's access and modification times */ - if (utime(G.filename, &(zt.t2))) { - #ifdef AOS_VS -@@ -1151,6 +1170,7 @@ - #endif /* ?AOS_VS */ - } - -+#if (defined(NO_FCHOWN) || defined(NO_FCHMOD)) - /*--------------------------------------------------------------------------- - Change the file permissions from default ones to those stored in the - zipfile. -@@ -1160,6 +1180,7 @@ - if (chmod(G.filename, filtattr(__G__ G.pInfo->file_attr))) - perror("chmod (file attributes) error"); - #endif -+#endif /* NO_FCHOWN || NO_FCHMOD */ - - } /* end function close_outfile() */ - -@@ -1640,7 +1661,6 @@ - - if ((long)LG(dlen) > 0) - { -- G.outfile = fopen(G.filename,"r+"); - fseek(G.outfile, -8, SEEK_END); - fread(&ntc, 8, 1, G.outfile); - if(ntc.id != *(long *)"XTcc") -@@ -1650,7 +1670,6 @@ - fwrite (&ntc, 8, 1, G.outfile); - } - Info(slide, 0x201, ((char *)slide, "QData = %d", LG(dlen))); -- fclose(G.outfile); - } - return; /* finished, cancel further extra field scanning */ - } diff --git a/archivers/unzip/files/patch-unzpriv.h b/archivers/unzip/files/patch-unzpriv.h deleted file mode 100644 index a7902b2aa3f9..000000000000 --- a/archivers/unzip/files/patch-unzpriv.h +++ /dev/null @@ -1,30 +0,0 @@ ---- unzip-5.52.orig/unzpriv.h -+++ unzpriv.h -@@ -1081,6 +1081,7 @@ - # define FOPR "r","ctx=stm" - # define FOPM "r+","ctx=stm","rfm=fix","mrs=512" - # define FOPW "w","ctx=stm","rfm=fix","mrs=512" -+# define FOPWR "w+","ctx=stm","rfm=fix","mrs=512" - #endif /* VMS */ - - #ifdef CMS_MVS -@@ -1117,6 +1118,9 @@ - # ifndef FOPWT - # define FOPWT "wt" - # endif -+# ifndef FOPWR -+# define FOPWR "w+b" -+# endif - #else /* !MODERN */ - # ifndef FOPR - # define FOPR "r" -@@ -1130,6 +1134,9 @@ - # ifndef FOPWT - # define FOPWT "w" - # endif -+# ifndef FOPWR -+# define FOPWR "w+b" -+# endif - #endif /* ?MODERN */ - - /*