Accepting request 44237 from Archiving
Copy from Archiving/unzip based on submit request 44237 from user coolo OBS-URL: https://build.opensuse.org/request/show/44237 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/unzip?expand=0&rev=15
This commit is contained in:
commit
0ac44cf257
@ -1,50 +0,0 @@
|
||||
--- inflate.c 2005-02-27 06:08:46.000000000 +0000
|
||||
+++ inflate.c 2006-07-19 21:45:33.543595000 +0100
|
||||
@@ -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;
|
||||
}
|
||||
|
@ -1,17 +1,17 @@
|
||||
--- process.c
|
||||
+++ process.c
|
||||
@@ -156,8 +156,8 @@
|
||||
Index: process.c
|
||||
===================================================================
|
||||
--- process.c.orig 2009-03-06 02:25:10.000000000 +0100
|
||||
+++ process.c 2010-05-21 13:17:28.292590863 +0200
|
||||
@@ -203,6 +203,8 @@ static ZCONST char Far Cent64EndSigSearc
|
||||
#endif
|
||||
static ZCONST char Far ZipfileCommTrunc1[] =
|
||||
"\ncaution: zipfile comment truncated\n";
|
||||
|
||||
-
|
||||
-
|
||||
+static ZCONST char Far FileNameTooLong[] =
|
||||
+ "%s: error: %s (truncated): %s\n";
|
||||
|
||||
/*******************************/
|
||||
/* Function process_zipfiles() */
|
||||
@@ -314,6 +314,17 @@
|
||||
#ifndef NO_ZIPINFO
|
||||
static ZCONST char Far NoZipfileComment[] =
|
||||
"There is no zipfile comment.\n";
|
||||
@@ -390,6 +392,17 @@ int process_zipfiles(__G) /* return P
|
||||
|
||||
lastzipfn = G.zipfn;
|
||||
|
||||
|
@ -4,7 +4,7 @@ Description: Provides header file
|
||||
Index: dsrecode.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ dsrecode.c 2010-05-10 18:00:17.972091018 +0200
|
||||
+++ dsrecode.c 2010-05-21 14:25:19.192590879 +0200
|
||||
@@ -0,0 +1,137 @@
|
||||
+#include <librcc.h>
|
||||
+
|
||||
@ -145,9 +145,9 @@ Index: dsrecode.c
|
||||
+}
|
||||
Index: fileio.c
|
||||
===================================================================
|
||||
--- fileio.c.orig 2010-05-10 18:00:17.912090858 +0200
|
||||
+++ fileio.c 2010-05-10 18:00:17.976090793 +0200
|
||||
@@ -78,7 +78,7 @@
|
||||
--- fileio.c.orig 2010-05-21 14:25:19.172590765 +0200
|
||||
+++ fileio.c 2010-05-21 14:25:19.192590879 +0200
|
||||
@@ -82,7 +82,7 @@
|
||||
# endif
|
||||
#endif
|
||||
#include "ebcdic.h" /* definition/initialization of ebcdic[] */
|
||||
@ -158,9 +158,9 @@ Index: fileio.c
|
||||
Note: Under Windows, the maximum size of the buffer that can be used
|
||||
Index: unzpriv.h
|
||||
===================================================================
|
||||
--- unzpriv.h.orig 2010-05-10 18:00:17.848090721 +0200
|
||||
+++ unzpriv.h 2010-05-10 18:00:18.016090830 +0200
|
||||
@@ -2582,10 +2582,11 @@ char *GetLoadPath OF((__GPRO));
|
||||
--- unzpriv.h.orig 2010-05-21 14:24:55.632590821 +0200
|
||||
+++ unzpriv.h 2010-05-21 14:25:19.220590722 +0200
|
||||
@@ -3025,10 +3025,11 @@ char *GetLoadPath OF((__GPRO));
|
||||
!(((islochdr) || (isuxatt)) && \
|
||||
((hostver) == 25 || (hostver) == 26 || (hostver) == 40))) || \
|
||||
(hostnum) == FS_HPFS_ || \
|
||||
|
@ -1,36 +0,0 @@
|
||||
--- unix/unix.c
|
||||
+++ unix/unix.c
|
||||
@@ -1042,6 +1042,16 @@
|
||||
ush z_uidgid[2];
|
||||
int have_uidgid_flg;
|
||||
|
||||
+/*---------------------------------------------------------------------------
|
||||
+ Change the file permissions from default ones to those stored in the
|
||||
+ zipfile. This has to done *before* closing the file.
|
||||
+ ---------------------------------------------------------------------------*/
|
||||
+
|
||||
+#ifndef NO_CHMOD
|
||||
+ if (chmod(G.filename, filtattr(__G__ G.pInfo->file_attr)))
|
||||
+ perror("chmod (file attributes) error");
|
||||
+#endif
|
||||
+
|
||||
fclose(G.outfile);
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
@@ -1151,16 +1161,6 @@
|
||||
#endif /* ?AOS_VS */
|
||||
}
|
||||
|
||||
-/*---------------------------------------------------------------------------
|
||||
- Change the file permissions from default ones to those stored in the
|
||||
- zipfile.
|
||||
- ---------------------------------------------------------------------------*/
|
||||
-
|
||||
-#ifndef NO_CHMOD
|
||||
- if (chmod(G.filename, filtattr(__G__ G.pInfo->file_attr)))
|
||||
- perror("chmod (file attributes) error");
|
||||
-#endif
|
||||
-
|
||||
} /* end function close_outfile() */
|
||||
|
||||
#endif /* !MTS */
|
@ -1,6 +1,8 @@
|
||||
--- unzip-5.52/ebcdic.h
|
||||
+++ unzip-5.52/ebcdic.h
|
||||
@@ -254,6 +254,25 @@
|
||||
Index: ebcdic.h
|
||||
===================================================================
|
||||
--- ebcdic.h.orig 2008-03-21 13:04:22.000000000 +0100
|
||||
+++ ebcdic.h 2010-05-21 14:07:51.000091055 +0200
|
||||
@@ -254,6 +254,25 @@ ZCONST uch Far iso2oem_850[] = {
|
||||
0xD0, 0xA4, 0x95, 0xA2, 0x93, 0xE4, 0x94, 0xF6, /* F0 - F7 */
|
||||
0x9B, 0x97, 0xA3, 0x96, 0x81, 0xEC, 0xE7, 0x98 /* F8 - FF */
|
||||
};
|
||||
@ -26,7 +28,7 @@
|
||||
#endif /* IZ_ISO2OEM_ARRAY */
|
||||
|
||||
#ifdef IZ_OEM2ISO_ARRAY
|
||||
@@ -275,8 +294,28 @@
|
||||
@@ -275,6 +294,25 @@ ZCONST uch Far oem2iso_850[] = {
|
||||
0xAD, 0xB1, 0x3D, 0xBE, 0xB6, 0xA7, 0xF7, 0xB8, /* F0 - F7 */
|
||||
0xB0, 0xA8, 0xB7, 0xB9, 0xB3, 0xB2, 0xA6, 0xA0 /* F8 - FF */
|
||||
};
|
||||
@ -51,22 +53,21 @@
|
||||
+};
|
||||
#endif /* IZ_OEM2ISO_ARRAY */
|
||||
|
||||
+
|
||||
#if defined(THEOS) || defined(THEOS_SUPPORT)
|
||||
# include "theos/charconv.h"
|
||||
#endif
|
||||
--- unzip-5.52/man/unzip.1
|
||||
+++ unzip-5.52/man/unzip.1
|
||||
/* The following pointers to the OEM<-->ISO translation tables are used
|
||||
Index: man/unzip.1
|
||||
===================================================================
|
||||
--- man/unzip.1.orig 2009-04-20 02:33:10.000000000 +0200
|
||||
+++ man/unzip.1 2010-05-21 14:23:25.824590928 +0200
|
||||
@@ -25,7 +25,7 @@
|
||||
unzip \- list, test and extract compressed files in a ZIP archive
|
||||
.PD
|
||||
.SH SYNOPSIS
|
||||
-\fBunzip\fP [\fB\-Z\fP] [\fB\-cflptTuvz\fP[\fBabjnoqsCKLMVWX$/:\fP]]
|
||||
+\fBunzip\fP [\fB\-Z\fP] [\fB\-cflptTuvz\fP[\fBabjnoqsCKLMOVX$/:\fP]]
|
||||
-\fBunzip\fP [\fB\-Z\fP] [\fB\-cflptTuvz\fP[\fBabjnoqsCDKLMUVWX$/:^\fP]]
|
||||
+\fBunzip\fP [\fB\-Z\fP] [\fB\-cflptTuvz\fP[\fBabjnoqsCDKLMOUVWX$/:^\fP]]
|
||||
\fIfile\fP[\fI.zip\fP] [\fIfile(s)\fP\ .\|.\|.]
|
||||
[\fB\-x\fP\ \fIxfile(s)\fP\ .\|.\|.] [\fB\-d\fP\ \fIexdir\fP]
|
||||
.PD
|
||||
@@ -342,6 +342,9 @@
|
||||
@@ -386,6 +386,9 @@ of \fIzip\fP(1L), which stores filenotes
|
||||
overwrite existing files without prompting. This is a dangerous option, so
|
||||
use it with care. (It is often used with \fB\-f\fP, however, and is the only
|
||||
way to overwrite directory EAs under OS/2.)
|
||||
@ -76,9 +77,11 @@
|
||||
.IP \fB\-P\fP\ \fIpassword\fP
|
||||
use \fIpassword\fP to decrypt encrypted zipfile entries (if any). \fBTHIS IS
|
||||
INSECURE!\fP Many multi-user operating systems provide ways for any user to
|
||||
--- unzip-5.52/unzip.c
|
||||
+++ unzip-5.52/unzip.c
|
||||
@@ -1327,6 +1327,12 @@
|
||||
Index: unzip.c
|
||||
===================================================================
|
||||
--- unzip.c.orig 2009-04-16 20:26:52.000000000 +0200
|
||||
+++ unzip.c 2010-05-21 14:23:25.824590928 +0200
|
||||
@@ -1592,6 +1592,12 @@ int uz_opts(__G__ pargc, pargv)
|
||||
} else
|
||||
++uO.overwrite_all;
|
||||
break;
|
||||
@ -91,9 +94,11 @@
|
||||
case ('p'): /* pipes: extract to stdout, no messages */
|
||||
if (negative) {
|
||||
uO.cflag = FALSE;
|
||||
--- unzip-5.52/unzip.h
|
||||
+++ unzip-5.52/unzip.h
|
||||
@@ -462,6 +462,7 @@
|
||||
Index: unzip.h
|
||||
===================================================================
|
||||
--- unzip.h.orig 2009-02-15 19:12:54.000000000 +0100
|
||||
+++ unzip.h 2010-05-21 14:23:25.824590928 +0200
|
||||
@@ -502,6 +502,7 @@ typedef struct _UzpOpts {
|
||||
int K_flag; /* -K: keep setuid/setgid/tacky permissions */
|
||||
#endif
|
||||
int lflag; /* -12slmv: listing format (zipinfo) */
|
||||
@ -101,15 +106,17 @@
|
||||
int L_flag; /* -L: convert filenames from some OSes to lowercase */
|
||||
int overwrite_none; /* -n: never overwrite files (no prompting) */
|
||||
#ifdef AMIGA
|
||||
--- unzip-5.52/unzpriv.h
|
||||
+++ unzip-5.52/unzpriv.h
|
||||
@@ -2456,8 +2456,15 @@
|
||||
Index: unzpriv.h
|
||||
===================================================================
|
||||
--- unzpriv.h.orig 2009-04-20 01:59:26.000000000 +0200
|
||||
+++ unzpriv.h 2010-05-21 14:24:02.641090783 +0200
|
||||
@@ -2899,8 +2899,15 @@ char *GetLoadPath OF((__GPRO));
|
||||
# define IZ_ISO2OEM_ARRAY
|
||||
# endif
|
||||
# define _ISO_INTERN(str1) {register uch *p;\
|
||||
# define _ISO_INTERN(str1) if (iso2oem) {register uch *p;\
|
||||
- for (p=(uch *)(str1); *p; p++)\
|
||||
- *p = native((*p & 0x80) ? iso2oem[*p & 0x7f] : *p);}
|
||||
+ if (uO.iso8859_2 == FASLE) { \
|
||||
+ if (uO.iso8859_2 == FALSE) { \
|
||||
+ for (p=(uch *)(str1); *p; p++) \
|
||||
+ *p = native((*p & 0x80) ? iso2oem[*p & 0x7f] : *p); \
|
||||
+ } \
|
||||
@ -121,10 +128,10 @@
|
||||
# else
|
||||
# define _ISO_INTERN(str1) A_TO_N(str1)
|
||||
# endif
|
||||
@@ -2471,8 +2478,15 @@
|
||||
@@ -2914,8 +2921,15 @@ char *GetLoadPath OF((__GPRO));
|
||||
# define IZ_OEM2ISO_ARRAY
|
||||
# endif
|
||||
# define _OEM_INTERN(str1) {register uch *p;\
|
||||
# define _OEM_INTERN(str1) if (oem2iso) {register uch *p;\
|
||||
- for (p=(uch *)(str1); *p; p++)\
|
||||
- *p = native((*p & 0x80) ? oem2iso[*p & 0x7f] : *p);}
|
||||
+ if (uO.iso8859_2 == FALSE) { \
|
||||
@ -139,37 +146,36 @@
|
||||
# endif
|
||||
#endif
|
||||
|
||||
@@ -2497,7 +2511,9 @@
|
||||
#if (!defined(INTERN_TO_ISO) && !defined(ASCII2ISO))
|
||||
# ifdef CRTL_CP_IS_OEM
|
||||
@@ -2942,6 +2956,7 @@ char *GetLoadPath OF((__GPRO));
|
||||
/* know: "ASCII" is "OEM" */
|
||||
-# define ASCII2ISO(c) (((c) & 0x80) ? oem2iso[(c) & 0x7f] : (c))
|
||||
+# define ASCII2ISO(c) (((c) & 0x80) ? \
|
||||
+ ((uO.iso8859_2 == FALSE) ? oem2iso[(c) & 0x7f] : oem2iso_2[(c) & 0x7f]) : \
|
||||
+ (c))
|
||||
# define ASCII2ISO(c) \
|
||||
((((c) & 0x80) && oem2iso) ? oem2iso[(c) & 0x7f] : (c))
|
||||
+ (( ((c) & 0x80) ? ((uO.iso8859_2 == FALSE) ? (oem2iso ? oem2iso[(c) & 0x7f] : (c)) : oem2iso_2[(c) & 0x7f]) : (c))
|
||||
# if (defined(NEED_STR2ISO) && !defined(CRYP_USES_OEM2ISO))
|
||||
# define CRYP_USES_OEM2ISO
|
||||
# endif
|
||||
@@ -2513,7 +2529,9 @@
|
||||
@@ -2957,8 +2972,9 @@ char *GetLoadPath OF((__GPRO));
|
||||
# define ASCII2OEM(c) (c)
|
||||
# else
|
||||
/* assume: "ASCII" is "ISO-ANSI" */
|
||||
-# define ASCII2OEM(c) (((c) & 0x80) ? iso2oem[(c) & 0x7f] : (c))
|
||||
-# define ASCII2OEM(c) \
|
||||
- ((((c) & 0x80) && iso2oem) ? iso2oem[(c) & 0x7f] : (c))
|
||||
+# define ASCII2OEM(c) (((c) & 0x80) ? \
|
||||
+ ((uO.iso8859_2 == FALSE) ? iso2oem[(c) & 0x7f] : iso2oem_2[(c) & 0x7f]) : \
|
||||
+ ((uO.iso8859_2 == FALSE) ? (iso2oem ? iso2oem[(c) & 0x7f] : (c)) : iso2oem_2[(c) & 0x7f]) : \
|
||||
+ (c))
|
||||
# if (defined(NEED_STR2OEM) && !defined(CRYP_USES_ISO2OEM))
|
||||
# define CRYP_USES_ISO2OEM
|
||||
# endif
|
||||
@@ -2584,9 +2602,11 @@
|
||||
@@ -3029,10 +3045,12 @@ char *GetLoadPath OF((__GPRO));
|
||||
#endif
|
||||
#ifdef IZ_ISO2OEM_ARRAY
|
||||
extern ZCONST uch Far iso2oem[];
|
||||
extern ZCONST uch Far *iso2oem;
|
||||
+ extern ZCONST uch Far iso2oem_2[];
|
||||
extern ZCONST uch Far iso2oem_850[];
|
||||
#endif
|
||||
#ifdef IZ_OEM2ISO_ARRAY
|
||||
extern ZCONST uch Far oem2iso[];
|
||||
extern ZCONST uch Far *oem2iso;
|
||||
+ extern ZCONST uch Far oem2iso_2[];
|
||||
extern ZCONST uch Far oem2iso_850[];
|
||||
#endif
|
||||
|
||||
extern ZCONST char Far VersionDate[];
|
||||
|
@ -1,267 +0,0 @@
|
||||
--- extract.c 2005-02-26 05:47:30.000000000 +0100
|
||||
+++ extract.c 2007-12-03 13:49:01.000000000 +0100
|
||||
@@ -308,7 +308,7 @@ int extract_or_test_files(__G) /* ret
|
||||
int reached_end, no_endsig_found;
|
||||
int error, error_in_archive=PK_COOL;
|
||||
int *fn_matched=NULL, *xn_matched=NULL;
|
||||
- unsigned members_processed;
|
||||
+ Z_OFF_T members_processed;
|
||||
ulg num_skipped=0L, num_bad_pwd=0L;
|
||||
Z_OFF_T old_extra_bytes = 0L;
|
||||
#ifdef SET_DIR_ATTRIB
|
||||
@@ -541,7 +541,7 @@ int extract_or_test_files(__G) /* ret
|
||||
G.cur_zipfile_bufstart = ftell((FILE *)G.zipfd);
|
||||
#else /* !USE_STRM_INPUT */
|
||||
G.cur_zipfile_bufstart =
|
||||
- lseek(G.zipfd, cd_bufstart, SEEK_SET);
|
||||
+ lseek64(G.zipfd,(Z_OFF_T)cd_bufstart, SEEK_SET);
|
||||
#endif /* ?USE_STRM_INPUT */
|
||||
read(G.zipfd, (char *)G.inbuf, INBUFSIZ); /* been here before... */
|
||||
G.inptr = cd_inptr;
|
||||
@@ -942,7 +942,8 @@ static int extract_or_test_entrylist(__G
|
||||
Trace((stderr,
|
||||
"debug: bufstart = %ld, cur_zipfile_bufstart = %ld\n",
|
||||
(long)bufstart, (long)G.cur_zipfile_bufstart));
|
||||
- if (request < 0) {
|
||||
+ if ((request < 0) || (request > MAX_ZIP_SIZE)) { /* >2^32-8193 */
|
||||
+ printf("retry - request = 0x%lu\n", (ulg)request);
|
||||
Info(slide, 0x401, ((char *)slide, LoadFarStringSmall(SeekMsg),
|
||||
G.zipfn, LoadFarString(ReportMsg)));
|
||||
error_in_archive = PK_ERR;
|
||||
@@ -982,7 +983,7 @@ static int extract_or_test_entrylist(__G
|
||||
G.cur_zipfile_bufstart = ftell((FILE *)G.zipfd);
|
||||
#else /* !USE_STRM_INPUT */
|
||||
G.cur_zipfile_bufstart =
|
||||
- lseek(G.zipfd, bufstart, SEEK_SET);
|
||||
+ lseek64(G.zipfd, bufstart, SEEK_SET);
|
||||
#endif /* ?USE_STRM_INPUT */
|
||||
if ((G.incnt = read(G.zipfd, (char *)G.inbuf, INBUFSIZ)) <= 0)
|
||||
{
|
||||
--- fileio.c 2005-02-27 03:10:12.000000000 +0100
|
||||
+++ fileio.c 2007-12-03 13:49:01.000000000 +0100
|
||||
@@ -113,6 +113,9 @@ static int disk_error OF((__GPRO));
|
||||
/* Strings used in fileio.c */
|
||||
/****************************/
|
||||
|
||||
+static ZCONST char Far ZipFileTooBig[] =
|
||||
+ "error: Zip file too big (greater than %lu bytes)\n";
|
||||
+
|
||||
static ZCONST char Far CannotOpenZipfile[] =
|
||||
"error: cannot open zipfile [ %s ]\n %s\n";
|
||||
|
||||
@@ -183,6 +186,7 @@ static ZCONST char Far ExtraFieldTooLong
|
||||
int open_input_file(__G) /* return 1 if open failed */
|
||||
__GDEF
|
||||
{
|
||||
+ struct stat64 sb;
|
||||
/*
|
||||
* open the zipfile for reading and in BINARY mode to prevent cr/lf
|
||||
* translation, which would corrupt the bitstreams
|
||||
@@ -201,9 +205,9 @@ int open_input_file(__G) /* return 1
|
||||
G.zipfd = fopen(G.zipfn, FOPR);
|
||||
#else /* !USE_STRM_INPUT */
|
||||
# ifdef O_BINARY
|
||||
- G.zipfd = open(G.zipfn, O_RDONLY | O_BINARY);
|
||||
+ G.zipfd = open(G.zipfn, O_RDONLY | O_BINARY | O_LARGEFILE);
|
||||
# else
|
||||
- G.zipfd = open(G.zipfn, O_RDONLY);
|
||||
+ G.zipfd = open(G.zipfn, O_RDONLY | O_LARGEFILE);
|
||||
# endif
|
||||
#endif /* ?USE_STRM_INPUT */
|
||||
#endif /* ?CMS_MVS */
|
||||
@@ -221,6 +225,12 @@ int open_input_file(__G) /* return 1
|
||||
G.zipfn, strerror(errno)));
|
||||
return 1;
|
||||
}
|
||||
+ fstat64(G.zipfd, &sb);
|
||||
+ if (sb.st_size > MAX_ZIP_SIZE) {
|
||||
+ Info(slide, 0x401, ((char *)slide,
|
||||
+ LoadFarString(ZipFileTooBig),
|
||||
+ ((ulg)MAX_ZIP_SIZE)));
|
||||
+ }
|
||||
return 0;
|
||||
|
||||
} /* end function open_input_file() */
|
||||
@@ -238,6 +248,7 @@ int open_input_file(__G) /* return 1
|
||||
int open_outfile(__G) /* return 1 if fail */
|
||||
__GDEF
|
||||
{
|
||||
+ int fd;
|
||||
#ifdef DLL
|
||||
if (G.redirect_data)
|
||||
return (redirect_outfile(__G) == FALSE);
|
||||
@@ -259,7 +270,7 @@ int open_outfile(__G) /* return
|
||||
}
|
||||
#endif /* BORLAND_STAT_BUG */
|
||||
#ifdef SYMLINKS
|
||||
- if (SSTAT(G.filename, &G.statbuf) == 0 || lstat(G.filename,&G.statbuf) == 0)
|
||||
+ if (SSTAT(G.filename, &G.statbuf) == 0 || lstat64(G.filename,&G.statbuf) == 0)
|
||||
#else
|
||||
if (SSTAT(G.filename, &G.statbuf) == 0)
|
||||
#endif /* ?SYMLINKS */
|
||||
@@ -413,7 +424,9 @@ int open_outfile(__G) /* return
|
||||
#endif /* NOVELL_BUG_FAILSAFE */
|
||||
Trace((stderr, "open_outfile: doing fopen(%s) for writing\n",
|
||||
FnFilter1(G.filename)));
|
||||
- if ((G.outfile = fopen(G.filename, FOPW)) == (FILE *)NULL) {
|
||||
+
|
||||
+ fd = open(G.filename, O_WRONLY | O_LARGEFILE | O_CREAT);
|
||||
+ if ((G.outfile = fdopen(fd, FOPW)) == (FILE *)NULL) {
|
||||
Info(slide, 0x401, ((char *)slide, LoadFarString(CannotCreateFile),
|
||||
FnFilter1(G.filename)));
|
||||
return 1;
|
||||
@@ -682,7 +695,7 @@ int seek_zipf(__G__ abs_offset)
|
||||
Z_OFF_T inbuf_offset = request % INBUFSIZ;
|
||||
Z_OFF_T bufstart = request - inbuf_offset;
|
||||
|
||||
- if (request < 0) {
|
||||
+ if (request < 0) {
|
||||
Info(slide, 1, ((char *)slide, LoadFarStringSmall(SeekMsg),
|
||||
G.zipfn, LoadFarString(ReportMsg)));
|
||||
return(PK_BADERR);
|
||||
@@ -694,7 +707,7 @@ int seek_zipf(__G__ abs_offset)
|
||||
fseek(G.zipfd, bufstart, SEEK_SET);
|
||||
G.cur_zipfile_bufstart = ftell(G.zipfd);
|
||||
#else /* !USE_STRM_INPUT */
|
||||
- G.cur_zipfile_bufstart = lseek(G.zipfd, bufstart, SEEK_SET);
|
||||
+ G.cur_zipfile_bufstart = lseek64(G.zipfd, bufstart, SEEK_SET);
|
||||
#endif /* ?USE_STRM_INPUT */
|
||||
Trace((stderr,
|
||||
" request = %ld, (abs+extra) = %ld, inbuf_offset = %ld\n",
|
||||
@@ -1850,7 +1863,7 @@ int check_for_newer(__G__ filename) /*
|
||||
Trace((stderr, "check_for_newer: doing lstat(%s)\n",
|
||||
FnFilter1(filename)));
|
||||
/* GRR OPTION: could instead do this test ONLY if G.symlnk is true */
|
||||
- if (lstat(filename, &G.statbuf) == 0) {
|
||||
+ if (lstat64(filename, &G.statbuf) == 0) {
|
||||
Trace((stderr,
|
||||
"check_for_newer: lstat(%s) returns 0: symlink does exist\n",
|
||||
FnFilter1(filename)));
|
||||
@@ -1867,7 +1880,7 @@ int check_for_newer(__G__ filename) /*
|
||||
|
||||
#ifdef SYMLINKS
|
||||
/* GRR OPTION: could instead do this test ONLY if G.symlnk is true */
|
||||
- if (lstat(filename, &G.statbuf) == 0 && S_ISLNK(G.statbuf.st_mode)) {
|
||||
+ if (lstat64(filename, &G.statbuf) == 0 && S_ISLNK(G.statbuf.st_mode)) {
|
||||
Trace((stderr, "check_for_newer: %s is a symbolic link\n",
|
||||
FnFilter1(filename)));
|
||||
if (QCOND2 && !IS_OVERWRT_ALL)
|
||||
--- globals.h 2004-11-22 01:42:00.000000000 +0100
|
||||
+++ globals.h 2007-12-03 13:49:01.000000000 +0100
|
||||
@@ -256,7 +256,12 @@ typedef struct Globals {
|
||||
local_file_hdr lrec; /* used in unzip.c, extract.c */
|
||||
cdir_file_hdr crec; /* used in unzip.c, extract.c, misc.c */
|
||||
ecdir_rec ecrec; /* used in unzip.c, extract.c */
|
||||
- struct stat statbuf; /* used by main, mapname, check_for_newer */
|
||||
+#ifdef _LARGEFILE64_SOURCE
|
||||
+ struct stat64 statbuf; /* used by main, mapname, check_for_newer */
|
||||
+#else
|
||||
+ struct stat statbuf; /* used by main, mapname, check_for_newer */
|
||||
+#endif
|
||||
+
|
||||
|
||||
int mem_mode;
|
||||
uch *outbufptr; /* extract.c static */
|
||||
--- list.c 2005-01-27 02:02:02.000000000 +0100
|
||||
+++ list.c 2007-12-03 13:55:10.000000000 +0100
|
||||
@@ -62,12 +62,12 @@
|
||||
"%8lu %-7s%8lu %4s %02u%c%02u%c%02u %02u:%02u %08lx %c";
|
||||
static ZCONST char Far LongFileTrailer[] =
|
||||
"-------- ------- --- \
|
||||
- -------\n%8lu %8lu %4s %lu file%s\n";
|
||||
+ -------\n%8ju %8ju %4s %lu file%s\n";
|
||||
#ifdef OS2_EAS
|
||||
static ZCONST char Far ShortHdrStats[] =
|
||||
"%9lu %6lu %6lu %02u%c%02u%c%02u %02u:%02u %c";
|
||||
static ZCONST char Far ShortFileTrailer[] = " -------- ----- ----- \
|
||||
- -------\n%9lu %6lu %6lu %lu file%s\n";
|
||||
+ -------\n%9ju %6lu %6lu %lu file%s\n";
|
||||
static ZCONST char Far OS2ExtAttrTrailer[] =
|
||||
"%lu file%s %lu bytes of OS/2 extended attributes attached.\n";
|
||||
static ZCONST char Far OS2ACLTrailer[] =
|
||||
@@ -76,7 +76,7 @@
|
||||
static ZCONST char Far ShortHdrStats[] =
|
||||
"%9lu %02u%c%02u%c%02u %02u:%02u %c";
|
||||
static ZCONST char Far ShortFileTrailer[] = " -------- \
|
||||
- -------\n%9lu %lu file%s\n";
|
||||
+ -------\n%9ju %lu file%s\n";
|
||||
#endif /* ?OS2_EAS */
|
||||
#endif /* !WINDLL */
|
||||
|
||||
@@ -105,7 +105,8 @@ int list_files(__G) /* return PK-type
|
||||
struct tm *t;
|
||||
#endif
|
||||
unsigned yr, mo, dy, hh, mm;
|
||||
- ulg csiz, tot_csize=0L, tot_ucsize=0L;
|
||||
+ ulg csiz;
|
||||
+ unsigned long long tot_csize=0, tot_ucsize=0;
|
||||
#ifdef OS2_EAS
|
||||
ulg ea_size, tot_easize=0L, tot_eafiles=0L;
|
||||
ulg acl_size, tot_aclsize=0L, tot_aclfiles=0L;
|
||||
--- process.c 2007-12-03 13:44:30.000000000 +0100
|
||||
+++ process.c 2007-12-03 13:49:01.000000000 +0100
|
||||
@@ -934,8 +934,8 @@ static int find_ecrec(__G__ searchlen)
|
||||
Treat case of short zipfile separately.
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
- if (G.ziplen <= INBUFSIZ) {
|
||||
- lseek(G.zipfd, 0L, SEEK_SET);
|
||||
+ if ((unsigned long)G.ziplen <= (unsigned long)INBUFSIZ) {
|
||||
+ lseek64(G.zipfd, 0L, SEEK_SET);
|
||||
if ((G.incnt = read(G.zipfd,(char *)G.inbuf,(unsigned int)G.ziplen))
|
||||
== (int)G.ziplen)
|
||||
|
||||
@@ -962,7 +962,7 @@ static int find_ecrec(__G__ searchlen)
|
||||
fseek((FILE *)G.zipfd, G.ziplen-tail_len, SEEK_SET);
|
||||
G.cur_zipfile_bufstart = ftell((FILE *)G.zipfd);
|
||||
#else /* !USE_STRM_INPUT */
|
||||
- G.cur_zipfile_bufstart = lseek(G.zipfd, G.ziplen-tail_len,
|
||||
+ G.cur_zipfile_bufstart = lseek64(G.zipfd, G.ziplen-tail_len,
|
||||
SEEK_SET);
|
||||
#endif /* ?USE_STRM_INPUT */
|
||||
if ((G.incnt = read(G.zipfd, (char *)G.inbuf,
|
||||
@@ -996,7 +996,7 @@ static int find_ecrec(__G__ searchlen)
|
||||
|
||||
for (i = 1; !found && (i <= numblks); ++i) {
|
||||
G.cur_zipfile_bufstart -= INBUFSIZ;
|
||||
- lseek(G.zipfd, G.cur_zipfile_bufstart, SEEK_SET);
|
||||
+ lseek64(G.zipfd, G.cur_zipfile_bufstart, SEEK_SET);
|
||||
if ((G.incnt = read(G.zipfd,(char *)G.inbuf,INBUFSIZ))
|
||||
!= INBUFSIZ)
|
||||
break; /* fall through and fail */
|
||||
--- unix/Makefile 2007-12-03 13:44:30.000000000 +0100
|
||||
+++ unix/Makefile 2007-12-03 13:54:38.000000000 +0100
|
||||
@@ -783,7 +783,7 @@ linux_asm: linux
|
||||
# Linux (Posix, approximately SysV): virtually any version since before 0.96,
|
||||
# for any platform. Change "-O" to "-O3" or whatever, as desired...
|
||||
linux_noasm: unix_make
|
||||
- $(MAKE) unzips CC=gcc LD=gcc CF="$(RPM_OPT_FLAGS) -I. $(LOC)"
|
||||
+ $(MAKE) unzips CC=gcc LD=gcc CF="$(RPM_OPT_FLAGS) -D_LARGEFILE64_SOURCE -I. $(LOC)"
|
||||
|
||||
# Linux with lcc compiler: __inline__ (stat.h) not recognized, and must edit
|
||||
# /usr/include/gnu/types.h to get rid of "long long" if __LCC__ defined. -O3
|
||||
--- unzip.h 2007-12-03 13:44:30.000000000 +0100
|
||||
+++ unzip.h 2007-12-03 13:49:01.000000000 +0100
|
||||
@@ -606,6 +606,8 @@ typedef struct central_directory_file_he
|
||||
#define UZ_ST_CONTINUE 0
|
||||
#define UZ_ST_BREAK 1
|
||||
|
||||
+#define MAX_ZIP_SIZE 0xffffdffe
|
||||
+
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
Prototypes for public UnZip API (DLL) functions.
|
||||
--- unzpriv.h 2007-12-03 13:44:30.000000000 +0100
|
||||
+++ unzpriv.h 2007-12-03 13:49:01.000000000 +0100
|
||||
@@ -785,9 +785,9 @@
|
||||
#endif
|
||||
#ifndef SSTAT
|
||||
# ifdef WILD_STAT_BUG
|
||||
-# define SSTAT(path,pbuf) (iswild(path) || stat(path,pbuf))
|
||||
+# define SSTAT(path,pbuf) (iswild(path) || stat64(path,pbuf))
|
||||
# else
|
||||
-# define SSTAT stat
|
||||
+# define SSTAT stat64
|
||||
# endif
|
||||
#endif
|
||||
#ifndef STRNICMP
|
@ -1,6 +1,8 @@
|
||||
--- man/zipinfo.1-dist 2007-04-25 12:18:27.000000000 +0200
|
||||
+++ man/zipinfo.1 2007-04-25 12:19:43.000000000 +0200
|
||||
@@ -114,7 +114,10 @@
|
||||
Index: man/zipinfo.1
|
||||
===================================================================
|
||||
--- man/zipinfo.1.orig 2010-05-21 14:23:25.824590928 +0200
|
||||
+++ man/zipinfo.1 2010-05-21 14:24:41.631590822 +0200
|
||||
@@ -114,7 +114,10 @@ useful in cases where the stored filenam
|
||||
.TP
|
||||
.B \-s
|
||||
list zipfile info in short Unix ``\fCls \-l\fR'' format. This is the default
|
||||
@ -12,32 +14,24 @@
|
||||
.TP
|
||||
.B \-m
|
||||
list zipfile info in medium Unix ``\fCls \-l\fR'' format. Identical to the
|
||||
--- man/unzip.1-dist 2007-04-25 12:04:20.000000000 +0200
|
||||
+++ man/unzip.1 2007-04-25 12:19:54.000000000 +0200
|
||||
Index: man/unzip.1
|
||||
===================================================================
|
||||
--- man/unzip.1.orig 2010-05-21 14:23:25.824590928 +0200
|
||||
+++ man/unzip.1 2010-05-21 14:24:41.635590912 +0200
|
||||
@@ -25,7 +25,7 @@
|
||||
unzip \- list, test and extract compressed files in a ZIP archive
|
||||
.PD
|
||||
.SH SYNOPSIS
|
||||
-\fBunzip\fP [\fB\-Z\fP] [\fB\-cflptTuvz\fP[\fBabjnoqsCKLMOVX$/:\fP]]
|
||||
+\fBunzip\fP [\fB\-Z\fP] [\fB\-cflptTuvz\fP[\fBabjnoqsCKLMOSVX$/:\fP]]
|
||||
-\fBunzip\fP [\fB\-Z\fP] [\fB\-cflptTuvz\fP[\fBabjnoqsCDKLMOUVWX$/:^\fP]]
|
||||
+\fBunzip\fP [\fB\-Z\fP] [\fB\-cflptTuvz\fP[\fBabjnoqsCDKLMOSUVWX$/:^\fP]]
|
||||
\fIfile\fP[\fI.zip\fP] [\fIfile(s)\fP\ .\|.\|.]
|
||||
[\fB\-x\fP\ \fIxfile(s)\fP\ .\|.\|.] [\fB\-d\fP\ \fIexdir\fP]
|
||||
.PD
|
||||
@@ -371,6 +371,11 @@
|
||||
spaces in filenames. Conversion of spaces to underscores can eliminate the
|
||||
awkwardness in some cases.
|
||||
.TP
|
||||
+.B \-S
|
||||
+suppress the conversion of file name encodings. This is useful when an
|
||||
+archive contains file names with non-latin letters. You have to convert
|
||||
+the file names appropriately to your native encoding manually afterwards.
|
||||
+.TP
|
||||
.B \-U
|
||||
(obsolete; to be removed in a future release) leave filenames uppercase if
|
||||
created under MS-DOS, VMS, etc. See \fB\-L\fP above.
|
||||
--- unzpriv.h-dist 2007-04-25 11:55:59.000000000 +0200
|
||||
+++ unzpriv.h 2007-04-25 12:12:22.000000000 +0200
|
||||
@@ -2577,6 +2577,7 @@ char *GetLoadPath OF((__GPRO));
|
||||
Index: unzpriv.h
|
||||
===================================================================
|
||||
--- unzpriv.h.orig 2010-05-21 14:24:02.641090783 +0200
|
||||
+++ unzpriv.h 2010-05-21 14:24:55.632590821 +0200
|
||||
@@ -3020,6 +3020,7 @@ char *GetLoadPath OF((__GPRO));
|
||||
*/
|
||||
#ifndef Ext_ASCII_TO_Native
|
||||
# define Ext_ASCII_TO_Native(string, hostnum, hostver, isuxatt, islochdr) \
|
||||
@ -45,7 +39,7 @@
|
||||
if (((hostnum) == FS_FAT_ && \
|
||||
!(((islochdr) || (isuxatt)) && \
|
||||
((hostver) == 25 || (hostver) == 26 || (hostver) == 40))) || \
|
||||
@@ -2585,7 +2586,7 @@ char *GetLoadPath OF((__GPRO));
|
||||
@@ -3028,7 +3029,7 @@ char *GetLoadPath OF((__GPRO));
|
||||
_OEM_INTERN((string)); \
|
||||
} else { \
|
||||
_ISO_INTERN((string)); \
|
||||
@ -54,9 +48,11 @@
|
||||
#endif
|
||||
|
||||
|
||||
--- zipinfo.c-dist 2007-04-25 12:17:17.000000000 +0200
|
||||
+++ zipinfo.c 2007-04-25 12:18:09.000000000 +0200
|
||||
@@ -517,6 +517,12 @@ int zi_opts(__G__ pargc, pargv)
|
||||
Index: zipinfo.c
|
||||
===================================================================
|
||||
--- zipinfo.c.orig 2010-05-21 14:23:25.824590928 +0200
|
||||
+++ zipinfo.c 2010-05-21 14:24:41.695590831 +0200
|
||||
@@ -527,6 +527,12 @@ int zi_opts(__G__ pargc, pargv)
|
||||
else
|
||||
uO.lflag = 3;
|
||||
break;
|
||||
@ -69,24 +65,29 @@
|
||||
case 't': /* totals line */
|
||||
if (negative)
|
||||
tflag_2v = tflag_slm = FALSE, negative = 0;
|
||||
--- unzip.c-dist 2007-04-25 11:58:44.000000000 +0200
|
||||
+++ unzip.c 2007-04-25 12:12:35.000000000 +0200
|
||||
@@ -1416,6 +1416,12 @@ int uz_opts(__G__ pargc, pargv)
|
||||
uO.sflag = TRUE;
|
||||
Index: unzip.c
|
||||
===================================================================
|
||||
--- unzip.c.orig 2010-05-21 14:23:25.824590928 +0200
|
||||
+++ unzip.c 2010-05-21 14:24:41.727590745 +0200
|
||||
@@ -1689,6 +1689,13 @@ int uz_opts(__G__ pargc, pargv)
|
||||
else
|
||||
uO.S_flag = TRUE;
|
||||
break;
|
||||
#endif /* DOS_FLX_NLM_OS2_W32 */
|
||||
+ case ('S'): /* suppress file name encoding conversions */
|
||||
+#else
|
||||
+ case ('S'): /* suppress file name encoding conversions */
|
||||
+ if (negative)
|
||||
+ uO.no_conv_enc = FALSE, negative = 0;
|
||||
+ else
|
||||
+ uO.no_conv_enc = TRUE;
|
||||
+ break;
|
||||
#endif /* VMS */
|
||||
case ('t'):
|
||||
if (negative)
|
||||
uO.tflag = FALSE, negative = 0;
|
||||
--- unzip.h-dist 2007-04-25 11:59:03.000000000 +0200
|
||||
+++ unzip.h 2007-04-25 12:12:11.000000000 +0200
|
||||
@@ -478,6 +478,7 @@ typedef struct _UzpOpts {
|
||||
Index: unzip.h
|
||||
===================================================================
|
||||
--- unzip.h.orig 2010-05-21 14:23:25.824590928 +0200
|
||||
+++ unzip.h 2010-05-21 14:24:41.731591035 +0200
|
||||
@@ -518,6 +518,7 @@ typedef struct _UzpOpts {
|
||||
#if (defined(MSDOS) || defined(FLEXOS) || defined(OS2) || defined(WIN32))
|
||||
int sflag; /* -s: convert spaces in filenames to underscores */
|
||||
#endif
|
||||
|
@ -1,13 +1,77 @@
|
||||
--- fileio.c
|
||||
+++ fileio.c
|
||||
@@ -425,7 +425,9 @@
|
||||
Trace((stderr, "open_outfile: doing fopen(%s) for writing\n",
|
||||
FnFilter1(G.filename)));
|
||||
Index: fileio.c
|
||||
===================================================================
|
||||
--- fileio.c.orig 2009-04-20 02:03:44.000000000 +0200
|
||||
+++ fileio.c 2010-06-25 18:32:49.960030697 +0200
|
||||
@@ -71,6 +71,11 @@
|
||||
#include "crc32.h"
|
||||
#include "crypt.h"
|
||||
#include "ttyio.h"
|
||||
+#include <sys/types.h>
|
||||
+#include <sys/stat.h>
|
||||
+#include <fcntl.h>
|
||||
+
|
||||
+
|
||||
|
||||
- fd = open(G.filename, O_WRONLY | O_LARGEFILE | O_CREAT);
|
||||
+ fd = open(G.filename, O_WRONLY | O_LARGEFILE | O_CREAT,
|
||||
+ /* 0644 in portable POSIX notation: */
|
||||
+ S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
|
||||
if ((G.outfile = fdopen(fd, FOPW)) == (FILE *)NULL) {
|
||||
/* setup of codepage conversion for decryption passwords */
|
||||
#if CRYPT
|
||||
@@ -270,6 +275,7 @@ int open_input_file(__G) /* return 1
|
||||
int open_outfile(__G) /* return 1 if fail */
|
||||
__GDEF
|
||||
{
|
||||
+ int fd;
|
||||
#ifdef DLL
|
||||
if (G.redirect_data)
|
||||
return (redirect_outfile(__G) == FALSE);
|
||||
@@ -448,23 +454,48 @@ int open_outfile(__G) /* retur
|
||||
return 1; /* with "./" fix in checkdir(), should never reach here */
|
||||
}
|
||||
#endif /* NOVELL_BUG_FAILSAFE */
|
||||
- Trace((stderr, "open_outfile: doing fopen(%s) for writing\n",
|
||||
- FnFilter1(G.filename)));
|
||||
{
|
||||
#if defined(ATH_BE_UNX) || defined(AOS_VS) || defined(QDOS) || defined(TANDEM)
|
||||
mode_t umask_sav = umask(0077);
|
||||
#endif
|
||||
+
|
||||
+#if defined(SYMLINKS) || defined(QLZIP)
|
||||
+ fd = open(G.filename, O_RDWR | O_LARGEFILE | O_CREAT,
|
||||
+ /* 0644 in portable POSIX notation: */
|
||||
+ S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
|
||||
+#else
|
||||
+ fd = open(G.filename, O_WRONLY | O_LARGEFILE | O_CREAT,
|
||||
+ /* 0644 in portable POSIX notation: */
|
||||
+ S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
|
||||
+#endif
|
||||
+ Trace((stderr, "open_outfile: open(%s, O_WRONLY | O_LARGEFILE | O_CREAT) returned %d\n",
|
||||
+ FnFilter1(G.filename), fd));
|
||||
+
|
||||
+ if (fd < 0) {
|
||||
+ Info(slide, 0x401, ((char *)slide, LoadFarString(CannotCreateFile),
|
||||
+ FnFilter1(G.filename), strerror(errno)));
|
||||
+ return 1;
|
||||
+ }
|
||||
#if defined(SYMLINKS) || defined(QLZIP)
|
||||
/* These features require the ability to re-read extracted data from
|
||||
the output files. Output files are created with Read&Write access.
|
||||
*/
|
||||
- G.outfile = zfopen(G.filename, FOPWR);
|
||||
+
|
||||
+ G.outfile = zfdopen(fd, FOPWR);
|
||||
+
|
||||
+ Trace((stderr, "open_outfile: doing fdopen(%s, FOPWR) returned %p\n",
|
||||
+ G.outfile));
|
||||
#else
|
||||
- G.outfile = zfopen(G.filename, FOPW);
|
||||
+ G.outfile = zfdopen(fd, FOPW);
|
||||
+
|
||||
+ Trace((stderr, "open_outfile: doing fdopen(%s, FOPW) returned %p\n",
|
||||
+ G.outfile));
|
||||
#endif
|
||||
#if defined(ATH_BE_UNX) || defined(AOS_VS) || defined(QDOS) || defined(TANDEM)
|
||||
umask(umask_sav);
|
||||
#endif
|
||||
+ if (G.outfile == NULL && fd != 0)
|
||||
+ unlink(G.filename);
|
||||
}
|
||||
if (G.outfile == (FILE *)NULL) {
|
||||
Info(slide, 0x401, ((char *)slide, LoadFarString(CannotCreateFile),
|
||||
FnFilter1(G.filename)));
|
||||
|
@ -1,22 +1,22 @@
|
||||
Index: unix/Makefile
|
||||
===================================================================
|
||||
--- unix/Makefile.orig 2010-05-10 17:45:59.892090727 +0200
|
||||
+++ unix/Makefile 2010-05-10 17:46:18.636090912 +0200
|
||||
@@ -773,7 +773,7 @@ isi: unix_make
|
||||
--- unix/Makefile.orig 2010-05-21 13:11:26.128591070 +0200
|
||||
+++ unix/Makefile 2010-05-21 13:14:45.429090869 +0200
|
||||
@@ -809,7 +809,7 @@ isi: unix_make
|
||||
linux: unix_make
|
||||
@echo 'NOTE: use linux_noasm target for non-Intel Linux compiles.'
|
||||
$(MAKE) unzips CC=gcc LD=gcc AS=gcc\
|
||||
- CF="-O3 -Wall -I. -DASM_CRC $(LOC)"\
|
||||
+ CF="$(RPM_OPT_FLAGS) -I. -DASM_CRC $(LOC)"\
|
||||
AF="-Di386 $(AF)" CRC32=crc_gcc
|
||||
- CFLAGS="-O3 -Wall -DASM_CRC"\
|
||||
+ CFLAGS="$(RPM_OPT_FLAGS) -DASM_CRC"\
|
||||
AF="-Di386 $(AF)" CRCA_O=crc_gcc$O
|
||||
# GRR: this echo is pointless; if user gets this far, no difference to install
|
||||
# @echo 'Be sure to use the install_asm target rather than the install target'
|
||||
@@ -783,7 +783,7 @@ linux_asm: linux
|
||||
@@ -819,7 +819,7 @@ linux_asm: linux
|
||||
# Linux (Posix, approximately SysV): virtually any version since before 0.96,
|
||||
# for any platform. Change "-O" to "-O3" or whatever, as desired...
|
||||
linux_noasm: unix_make
|
||||
- $(MAKE) unzips CC=gcc LD=gcc CF="-O -Wall -I. $(LOC)"
|
||||
+ $(MAKE) unzips CC=gcc LD=gcc CF="$(RPM_OPT_FLAGS) -I. $(LOC)"
|
||||
- $(MAKE) unzips CC=gcc LD=gcc CFLAGS="-O -Wall"
|
||||
+ $(MAKE) unzips CC=gcc LD=gcc CF="$(RPM_OPT_FLAGS)"
|
||||
|
||||
# Linux with lcc compiler: __inline__ (stat.h) not recognized, and must edit
|
||||
# /usr/include/gnu/types.h to get rid of "long long" if __LCC__ defined. -O3
|
||||
|
@ -1,3 +1,52 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Jun 25 18:21:34 CEST 2010 - pth@suse.de
|
||||
|
||||
- Doing open(O_WRONLY) and then fdopen("w+") will now fail with
|
||||
"Invalid Argument" whereas former glibcs would succeed. So now
|
||||
do open(O_RDWR).
|
||||
- Print error message when open(2) fails.
|
||||
- Add debugging traces in open_outfile.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri May 21 16:39:24 CEST 2010 - pth@suse.de
|
||||
|
||||
- Update to 6.0:
|
||||
* Support PKWARE ZIP64 extensions, allowing Zip archives and Zip archive
|
||||
entries larger than 4 GiBytes and more than 65536 entries within a
|
||||
single Zip archive. This support is currently only available for Unix,
|
||||
OpenVMS and Win32/Win64.
|
||||
* Support for bzip2 compression method.
|
||||
* Support for UTF-8 encoded entry names, both through PKWARE's "General
|
||||
Purpose Flags Bit 11" indicator and Info-ZIP's new "up" unicode path
|
||||
extra field. (Currently, on Windows the UTF-8 handling is limited to
|
||||
the character subset contained in the configured non-unicode "system
|
||||
code page".)
|
||||
* Fixed "Time of Creation/Time of Use" vulnerability when setting
|
||||
attributes of extracted files, for Unix and Unix-like ports.
|
||||
* Fixed memory leak when processing invalid deflated data.
|
||||
* Fixed long-standing bug in unshrink (partial_clear), added boundary
|
||||
checks against invalid compressed data.
|
||||
* On Unix, keep inherited SGID attribute bit for extracted directories
|
||||
unless restoration of owner/group id or SUID/SGID/Tacky attributes was
|
||||
requested.
|
||||
* On Unix, allow extracted filenames to contain embedded control
|
||||
characters when explicitly requested by specifying the new command line
|
||||
option "-^".
|
||||
* On Unix, support restoration of symbolic link attributes.
|
||||
* On Unix, support restoration of 32-bit UID/GID data using the new "ux"
|
||||
IZUNIX3 extra field introduced with Zip 3.0.
|
||||
* Support symbolic links zipped up on VMS.
|
||||
* New -D option to suppress restoration of timestamps for extracted
|
||||
directory entries (on those ports that support setting of directory
|
||||
timestamps). By specifying "-DD", this new option also allows to
|
||||
suppress timestamp restoration for ALL extracted files on all UnZip
|
||||
ports which support restoration of timestamps. On VMS, the default
|
||||
behaviour is now to skip restoration of directory timestamps; here,
|
||||
"--D" restores ALL timestamps, "-D" restores none.
|
||||
* On OS/2, Win32, and Unix, the (previously optional) feature UNIXBACKUP
|
||||
to allow saving backup copies of overwritten files on extraction is now
|
||||
enabled by default.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon May 10 16:39:20 UTC 2010 - pth@suse.de
|
||||
|
||||
|
11
unzip.dif
11
unzip.dif
@ -1,7 +1,8 @@
|
||||
diff -Nur unzip-5.50.orig/unix/Makefile unzip-5.50/unix/Makefile
|
||||
--- unzip-5.50.orig/unix/Makefile Sat Feb 16 18:00:38 2002
|
||||
+++ unzip-5.50/unix/Makefile Mon Mar 11 08:40:41 2002
|
||||
@@ -61,8 +61,8 @@
|
||||
Index: unix/Makefile
|
||||
===================================================================
|
||||
--- unix/Makefile.orig 2009-01-18 23:41:18.000000000 +0100
|
||||
+++ unix/Makefile 2010-05-21 14:06:56.192590841 +0200
|
||||
@@ -64,8 +64,8 @@ FL2 = $(LF2)
|
||||
|
||||
# general-purpose stuff
|
||||
#CP = cp
|
||||
@ -12,7 +13,7 @@ diff -Nur unzip-5.50.orig/unix/Makefile unzip-5.50/unix/Makefile
|
||||
RM = rm -f
|
||||
CHMOD = chmod
|
||||
BINPERMS = 755
|
||||
@@ -102,7 +102,7 @@
|
||||
@@ -121,7 +121,7 @@ INSTALL_PROGRAM = $(INSTALL)
|
||||
INSTALL_D = mkdir -p
|
||||
# on some systems, manext=l and MANDIR=/usr/man/man$(manext) may be appropriate
|
||||
manext = 1
|
||||
|
25
unzip.spec
25
unzip.spec
@ -1,5 +1,5 @@
|
||||
#
|
||||
# spec file for package unzip (Version 5.52)
|
||||
# spec file for package unzip (Version 6.00)
|
||||
#
|
||||
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
#
|
||||
@ -23,20 +23,18 @@ Group: Productivity/Archiving/Compression
|
||||
Provides: crunzip
|
||||
Obsoletes: crunzip
|
||||
AutoReqProv: on
|
||||
Version: 5.52
|
||||
Release: 144
|
||||
Version: 6.00
|
||||
Release: 1
|
||||
%define fileversion 60
|
||||
Summary: A program to unpack compressed files
|
||||
Source: unzip552.tar.bz2
|
||||
Source: %{name}%{fileversion}.tar.bz2
|
||||
Url: http://www.info-zip.org/
|
||||
Patch: unzip.dif
|
||||
Patch0: unzip.dif
|
||||
Patch1: unzip-iso8859_2.patch
|
||||
Patch3: unzip-optflags.patch
|
||||
Patch4: unzip-5.52-filename_too_long.patch
|
||||
Patch5: unzip-no_file_name_translation.patch
|
||||
Patch6: unzip-near-4GB.patch
|
||||
Patch7: unzip-CVE-2005-2475.patch
|
||||
Patch8: unzip-open_missing_mode.patch
|
||||
Patch9: unzip-5.5.2-goo-sec.patch
|
||||
Patch10: unzip-5.52-use_librcc.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
BuildRequires: librcc-devel
|
||||
@ -55,20 +53,17 @@ Authors:
|
||||
Info-ZIP <zip-bugs@lists.wku.edu>
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch -p1
|
||||
%patch1 -p1
|
||||
%setup -q -n %{name}%{fileversion}
|
||||
%patch0
|
||||
%patch1
|
||||
%patch3
|
||||
%patch4
|
||||
%patch5
|
||||
%patch6
|
||||
%patch7
|
||||
%patch8
|
||||
%patch9
|
||||
%patch10
|
||||
|
||||
%build
|
||||
export RPM_OPT_FLAGS="%optflags -DLARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fstack-protector"
|
||||
export RPM_OPT_FLAGS="%optflags -DLARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -fstack-protector -I."
|
||||
make %{?jobs:-j%jobs} -f unix/Makefile LF2=-lrcc linux_noasm
|
||||
|
||||
%install
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:67ac960892936d07286da931f66e02fdd472192cef3d48fd88ba0046c2ea04a4
|
||||
size 864023
|
3
unzip60.tar.bz2
Normal file
3
unzip60.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d8ce25f541563a112b077b4d61cfabee81d3d98b99c9ce60cf51266703dce9b2
|
||||
size 1063255
|
Loading…
x
Reference in New Issue
Block a user