Update to 3.0

This commit is contained in:
Karel Klíč 2009-11-16 12:26:10 +00:00
parent c2f4be329b
commit 43dbc9a7b4
15 changed files with 68 additions and 724 deletions

View File

@ -1,2 +1 @@
zcrypt29.tar.gz zip30.tar.gz
zip231.tar.gz

View File

@ -1,19 +0,0 @@
diff -ur zip-2.3/crc_i386.S zip-2.3-lhh/crc_i386.S
--- zip-2.3/crc_i386.S 1999-10-09 16:10:26.000000000 -0400
+++ zip-2.3-lhh/crc_i386.S 2003-10-24 16:15:52.000000000 -0400
@@ -230,3 +230,6 @@
#endif /* i386 || _i386 || _I386 || __i386 */
#endif /* !USE_ZLIB */
+
+.section .note.GNU-stack, "", @progbits
+.previous
diff -ur zip-2.3/match.S zip-2.3-lhh/match.S
--- zip-2.3/match.S 1999-07-27 17:18:14.000000000 -0400
+++ zip-2.3-lhh/match.S 2003-10-24 16:15:38.000000000 -0400
@@ -405,3 +405,5 @@
#endif /* i386 || _I386 || _i386 || __i386 */
#endif /* !USE_ZLIB */
+.section .note.GNU-stack, "", @progbits
+.previous

View File

@ -1,2 +1 @@
922f7f38f8e50ec353fd5b3102e4d4d6 zcrypt29.tar.gz 7b74551e63f8ee6aab6fbc86676c0d37 zip30.tar.gz
6bfc076664416251d7624ab3538d1cb9 zip231.tar.gz

View File

@ -1,11 +0,0 @@
--- zip-2.3/util.c.pom 1999-11-07 11:29:38.000000000 +0100
+++ zip-2.3/util.c 2005-01-17 13:46:26.165396792 +0100
@@ -190,6 +190,8 @@
/* Compare the sh pattern p with the string s and return true if they match,
false if they don't or if there is a syntax error in the pattern. */
{
+ while (s[0] == '.' && s[1] == '/')
+ s += 2; /* strip redundant leading "./" sections */
return recmatch((ZCONST uch *) p, (ZCONST uch *) s, cs) == 1;
}

View File

@ -1,11 +0,0 @@
--- zip-2.3/unix/unix.c.pom 2006-10-09 16:24:47.000000000 +0200
+++ zip-2.3/unix/unix.c 2006-10-09 17:14:18.000000000 +0200
@@ -208,7 +208,7 @@
doesn't collide with error values. 2^32 - 8193 should be plenty until
info-zip supports zip64. */
if (s.st_size > MAX_ZIP_SIZE) {
- zipwarn("file too large: ", a);
+ zipwarn("file too large: ", n);
return ZE_MISS;
}

View File

@ -1,213 +0,0 @@
--- zip-2.31/unix/configure.lhh 2005-11-10 13:25:26.000000000 +0100
+++ zip-2.31/unix/configure 2005-11-10 13:40:44.311641648 +0100
@@ -76,14 +76,20 @@
done
fi
-echo Check for prototypes
+echo -n Check for prototypes...
echo "int main(int argc, char *argv[]) { return 0; }" > conftest.c
$CC $CFLAGS -c conftest.c > /dev/null 2>/dev/null
-[ $? -ne 0 ] && CFLAGS="${CFLAGS} -DNO_PROTO"
+if [ $? -ne 0 ]; then
+ echo no
+ CFLAGS="${CFLAGS} -DNO_PROTO"
+else
+ echo yes
+fi
+
# const check currently handles mips cc and non ANSI compilers.
# does it need more ?
-echo Check the handling of const
+echo -n Check the handling of const...
cat > conftest.c << _EOF_
typedef int charset[2];
int main()
@@ -94,9 +100,15 @@
}
_EOF_
$CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-[ $? -ne 0 ] && CFLAGS="${CFLAGS} -DNO_CONST"
+if [ $? -ne 0 ]; then
+ echo no
+ CFLAGS="${CFLAGS} -DNO_CONST"
+else
+ echo yes
+fi
+
-echo Check for time_t
+echo -n Check for time_t...
cat > conftest.c << _EOF_
#include <sys/types.h>
#include <time.h>
@@ -107,9 +119,15 @@
}
_EOF_
$CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-[ $? -ne 0 ] && CFLAGS="${CFLAGS} -DNO_TIME_T"
+if [ $? -ne 0 ]; then
+ echo no
+ CFLAGS="${CFLAGS} -DNO_TIME_T"
+else
+ echo yes
+fi
+
-echo Check for size_t
+echo -n Check for size_t...
cat > conftest.c << _EOF_
#include <sys/types.h>
int main()
@@ -119,7 +137,13 @@
}
_EOF_
$CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-[ $? -ne 0 ] && CFLAGS="${CFLAGS} -DNO_SIZE_T"
+if [ $? -ne 0 ]; then
+ echo no
+ CFLAGS="${CFLAGS} -DNO_SIZE_T"
+else
+ echo yes
+fi
+
echo Check for gcc no-builtin flag
# -fno-builtin since version 2
@@ -140,18 +164,29 @@
# add NO_'function_name' to flags if missing
for func in rmdir strchr strrchr rename mktemp mktime mkstemp
do
- echo Check for $func
- echo "int main(){ $func(); return 0; }" > conftest.c
+ echo -n Check for $func...
+ echo "char $func(void); int main(){ $func(); return 0; }" > conftest.c
$CC $BFLAG -o conftest conftest.c >/dev/null 2>/dev/null
- [ $? -ne 0 ] && CFLAGS="${CFLAGS} -DNO_`echo $func | tr '[a-z]' '[A-Z]'`"
+ if [ $? -ne 0 ]; then
+ echo no
+ CFLAGS="${CFLAGS} -DNO_`echo $func | tr '[a-z]' '[A-Z]'`"
+ else
+ echo yes
+ fi
done
-echo Check for memset
+echo -n Check for memset...
echo "int main(){ char k; memset(&k,0,0); return 0; }" > conftest.c
$CC -o conftest conftest.c >/dev/null 2>/dev/null
-[ $? -ne 0 ] && CFLAGS="${CFLAGS} -DZMEM"
+if [ $? -ne 0 ]; then
+ echo no
+ CFLAGS="${CFLAGS} -DZMEM"
+else
+ echo yes
+fi
+
-echo Check for errno declaration
+echo -n Check for errno declaration...
cat > conftest.c << _EOF_
#include <errno.h>
main()
@@ -161,9 +196,14 @@
}
_EOF_
$CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-[ $? -ne 0 ] && CFLAGS="${CFLAGS} -DNO_ERRNO"
+if [ $? -ne 0 ]; then
+ echo no
+ CFLAGS="${CFLAGS} -DNO_ERRNO"
+else
+ echo yes
+fi
-echo Check for directory libraries
+echo -n Check for directory libraries...
cat > conftest.c << _EOF_
int main() { return closedir(opendir(".")); }
_EOF_
@@ -178,21 +218,30 @@
done
if [ ${OPT} ]; then
LFLAGS2="${LFLAGS2} ${OPT}"
+ echo yes, ${OPT}
else
CFLAGS="${CFLAGS} -DNO_DIR"
+ echo no
fi
fi
# Dynix/ptx 1.3 needed this
-echo Check for readlink
+echo -n Check for readlink...
echo "int main(){ return readlink(); }" > conftest.c
$CC -o conftest conftest.c >/dev/null 2>/dev/null
if [ $? -ne 0 ]; then
$CC -o conftest conftest.c -lseq >/dev/null 2>/dev/null
- [ $? -eq 0 ] && LFLAGS2="${LFLAGS2} -lseq"
+ if [ $? -eq 0 ]; then
+ LFLAGS2="${LFLAGS2} -lseq"
+ echo yes, -lseq
+ else
+ echo no
+ fi
+else
+ echo yes
fi
-echo Check for directory include file
+echo -n Check for directory include file...
OPT=""
for inc in dirent.h sys/ndir.h ndir.h sys/dir.h
do
@@ -200,17 +249,19 @@
$CPP conftest.c > /dev/null 2>/dev/null
[ $? -eq 0 ] && OPT="-DHAVE_`echo $inc | tr '[a-z]./' '[A-Z]__'`" && break
done
+echo "${OPT}"
CFLAGS="${CFLAGS} ${OPT}"
-echo Check for non existent include files
+echo -n Check for non existent include files...
for inc in stdlib.h stddef.h unistd.h fcntl.h string.h
do
echo "#include <$inc>" > conftest.c
$CPP conftest.c >/dev/null 2>/dev/null
[ $? -ne 0 ] && CFLAGS="${CFLAGS} -DNO_`echo $inc | tr '[a-z]./' '[A-Z]__'`"
done
+echo ok
-echo Check for terminal I/O include file
+echo -n Check for terminal I/O include file...
OPT=""
for inc in termios.h termio.h sgtty.h
do
@@ -219,9 +270,10 @@
[ $? -eq 0 ] && OPT="-DHAVE_`echo $inc | tr '[a-z]./' '[A-Z]__'`" && break
done
CFLAGS="${CFLAGS} ${OPT}"
+echo $OPT
# needed for AIX (and others ?) when mmap is used
-echo Check for valloc
+echo -n Check for valloc...
cat > conftest.c << _EOF_
main()
{
@@ -231,7 +283,13 @@
}
_EOF_
$CC ${CFLAGS} conftest.c > /dev/null 2>/dev/null
-[ $? -ne 0 ] && CFLAGS="${CFLAGS} -DNO_VALLOC"
+if [ $? -ne 0 ]; then
+ echo no
+ CFLAGS="${CFLAGS} -DNO_VALLOC"
+else
+ echo yes
+fi
+
echo Check for 64bit fseek
for func in fseeko fseek64

View File

@ -1,11 +0,0 @@
--- zip-2.31/unix/Makefile.install 2005-02-28 08:33:50.000000000 +0100
+++ zip-2.31/unix/Makefile 2005-11-10 12:58:33.221425848 +0100
@@ -129,7 +129,7 @@
$(INSTALL_PROGRAM) $(ZIPS) $(BINDIR)
-cd $(BINDIR); $(CHMOD) $(BINFLAGS) $(ZIPS)
-$(INSTALL_D) $(MANDIR)
- $(INSTALL) man/zip.1 $(MANDIR)/zip.$(manext)
+ $(INSTALL_PROGRAM) man/zip.1 $(MANDIR)/zip.$(manext)
$(CHMOD) $(MANFLAGS) $(MANDIR)/zip.$(manext)
uninstall:

View File

@ -1,293 +0,0 @@
--- zip-2.31/unix/zipup.h.4GB 2005-01-29 07:47:58.000000000 +0100
+++ zip-2.31/unix/zipup.h 2005-11-10 13:18:02.990593904 +0100
@@ -6,13 +6,19 @@
If, for some reason, both of these files are missing, the Info-ZIP license
also may be found at: ftp://ftp.info-zip.org/pub/infozip/license.html
*/
+#include <features.h>
+#include <fcntl.h>
#ifndef O_RDONLY
# define O_RDONLY 0
#endif
#ifndef O_BINARY
# define O_BINARY 0
#endif
-#define fhow (O_RDONLY|O_BINARY)
+#ifdef _LARGEFILE64_SOURCE
+#define fhow (O_RDONLY | O_LARGEFILE)
+#else
+#define fhow O_RDONLY
+#endif
#define fbad (-1)
typedef int ftype;
#define zopen(n,p) open(n,p)
--- zip-2.31/unix/unix.c.4GB 2005-02-11 03:35:02.000000000 +0100
+++ zip-2.31/unix/unix.c 2005-11-10 13:24:19.573344624 +0100
@@ -113,7 +113,11 @@
char *e; /* pointer to name from readd() */
int m; /* matched flag */
char *p; /* path for recursion */
+#ifdef _LARGEFILE64_SOURCE
+ struct stat64 s; /* result of stat() */
+#else
struct stat s; /* result of stat() */
+#endif
struct zlist far *z; /* steps through zfiles list */
if (strcmp(n, "-") == 0) /* if compressing stdin */
@@ -202,6 +206,15 @@
} /* (s.st_mode & S_IFDIR) */
else
zipwarn("ignoring special file: ", n);
+
+ /* Zip uses negative error codes (IIRC, to -3). Make sure file size
+ doesn't collide with error values. 2^32 - 8193 should be plenty until
+ info-zip supports zip64. */
+ if (s.st_size > MAX_ZIP_SIZE) {
+ zipwarn("file too large: ", a);
+ return ZE_MISS;
+ }
+
return ZE_OK;
}
@@ -321,7 +334,12 @@
If f is "-", use standard input as the file. If f is a device, return
a file size of -1 */
{
- struct stat s; /* results of stat() */
+#ifdef _LARGEFILE64_SOURCE
+ struct stat64 s; /* results of stat() */
+#else
+ struct stat s;
+#endif
+
/* converted to pointer from using FNMAX - 11/8/04 EG */
char *name;
int len = strlen(f);
@@ -343,7 +361,11 @@
name[len - 1] = '\0';
/* not all systems allow stat'ing a file with / appended */
if (strcmp(f, "-") == 0) {
+#ifdef _LARGEFILE64_SOURCE
+ if (fstat64(fileno(stdin), &s) != 0) {
+#else
if (fstat(fileno(stdin), &s) != 0) {
+#endif
free(name);
error("fstat(stdin)");
}
@@ -422,7 +444,11 @@
/* store full data in local header but just modification time stamp info
in central header */
{
+#ifdef _LARGEFILE64_SOURCE
+ struct stat64 s;
+#else
struct stat s;
+#endif
char *name;
int len = strlen(z->name);
--- zip-2.31/unix/configure.4GB 2004-12-05 09:51:18.000000000 +0100
+++ zip-2.31/unix/configure 2005-11-10 13:12:47.010630160 +0100
@@ -12,7 +12,7 @@
trap "rm -f conftest* core a.out; exit 1" 1 2 3 15
CC=${1-cc}
-CFLAGS=${2-"-O2 -I. -DUNIX"}
+CFLAGS=${2-"-O2 -I. -DUNIX -g -D_LARGEFILE64_SOURCE"}
LFLAGS1=""
LN="ln -s"
--- zip-2.31/fileio.c.4GB 2005-11-10 12:59:43.000000000 +0100
+++ zip-2.31/fileio.c 2005-11-10 13:07:13.190378552 +0100
@@ -599,7 +599,11 @@
this will be done by setfileattr() later.
*/
{
+#ifdef _LARGEFILE64_SOURCE
+ struct stat64 t; /* results of stat64() */
+#else
struct stat t; /* results of stat() */
+#endif
#if defined(CMS_MVS)
/* cmsmvs.h defines FOPW_TEMP as memory(hiperspace). Since memory is
* lost at end of run, always do copy instead of rename.
@@ -698,8 +702,11 @@
return _dos_files(&buf, f, 0xff) < 0 ? 0x20 : buf.atr;
#else
+#ifdef _LARGEFILE64_SOURCE
+ struct stat64 s;
+#else
struct stat s;
-
+#endif
return SSTAT(f, &s) == 0 ? (int) s.st_mode : 0;
#endif
}
@@ -920,3 +927,108 @@
}
#endif /* NO_RENAME */
+
+/*
+ Wrapper functions for fopen/fseek/ftell for >2GB files.
+
+ So, what we do here is add support for 4GB seeks. More appropriately,
+ 2^32 - 8193 bytes. This is tailored to the way zip uses fseek; it never
+ seeks backwards more than 8192 bytes.
+ */
+#ifdef _LARGEFILE64_SOURCE
+FILE *
+lfopen(const char *path, const char *mode)
+{
+ int fd;
+ FILE *f;
+ int flags;
+ int x;
+ char prev;
+
+ if (!path || !mode | !strlen(mode))
+ return NULL;
+
+ for (x = 0; x < strlen(mode); x++) {
+ switch (mode[x]) {
+ case 'r':
+ flags = O_RDONLY | O_LARGEFILE;
+ break;
+ case 'w':
+ flags = O_WRONLY | O_LARGEFILE | O_CREAT | O_TRUNC;
+ break;
+ case 'a':
+ flags = O_RDWR | O_LARGEFILE;
+ break;
+ case 'b': /* b has no effect */
+ continue;
+ case '+':
+ if (prev == 'r') {
+ flags = O_RDWR | O_LARGEFILE;
+ } else if (prev == 'w') {
+ flags = O_RDWR | O_LARGEFILE | O_CREAT |
+ O_TRUNC;
+ } else if (prev == 'a') {
+ flags = O_RDWR | O_LARGEFILE | O_CREAT;
+ } else
+ return NULL;
+ break;
+ }
+ prev = mode[x];
+ }
+
+ fd = open(path, flags, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
+ if (fd == -1)
+ return NULL;
+
+ f = fdopen(fd, mode);
+ return f;
+}
+
+int
+lfseek(FILE *f, ulg pos, int whence)
+{
+ struct stat64 sb;
+ ulg o, delta;
+ int ret;
+
+ /* Hurts performance */
+ fflush(f);
+
+ if (pos <= MAX_ZIP_SIZE) {
+ return (lseek64(fileno(f), pos, whence) == (off64_t)-1);
+ }
+
+ delta = ~((off64_t)pos - 1);
+ if (whence == SEEK_CUR) {
+ o = lseek64(fileno(f), 0, SEEK_CUR);
+ if (o < delta)
+ return -1;
+
+ o -= delta;
+ return (lseek64(fileno(f), o, SEEK_SET) == (off64_t)-1);
+ }
+
+ if (whence == SEEK_END) {
+ fstat64(fileno(f), &sb);
+
+ if ((ulg)sb.st_size < delta)
+ return -1;
+
+ o = (off64_t)((sb.st_size) - delta);
+ return (lseek64(fileno(f), o, SEEK_SET) == (off64_t)-1);
+ }
+
+ return -1;
+}
+
+
+ulg
+lftell(FILE *f)
+{
+ /* Hurts performance */
+ fflush(f);
+ return (ulg)lseek64(fileno(f), 0, SEEK_CUR);
+}
+
+#endif /* _LARGEFILE64_SOURCE */
+
--- zip-2.31/zip.h.4GB 2005-11-10 12:59:43.000000000 +0100
+++ zip-2.31/zip.h 2005-11-10 13:18:57.653283912 +0100
@@ -236,6 +236,7 @@
#define DOSTIME_MINIMUM ((ulg)0x00210000L)
#define DOSTIME_2038_01_18 ((ulg)0x74320000L)
+#define MAX_ZIP_SIZE 0xffffdffe /* Max archive / archive member size */
/* Public globals */
extern uch upper[256]; /* Country dependent case map table */
@@ -411,6 +412,11 @@
int putcentral OF((struct zlist far *, FILE *));
int putend OF((int, ulg, ulg, extent, char *, FILE *));
int zipcopy OF((struct zlist far *, FILE *, FILE *));
+#ifdef _LARGEFILE64_SOURCE
+int lfseek OF((FILE *, ulg, int));
+ulg lftell OF((FILE *));
+FILE *lfopen OF((const char *, const char *));
+#endif /* LF64 */
/* in fileio.c */
#ifndef UTIL
--- zip-2.31/tailor.h.4GB 2005-03-04 08:45:26.000000000 +0100
+++ zip-2.31/tailor.h 2005-11-10 13:11:18.909023640 +0100
@@ -368,12 +368,27 @@
# define DYN_ALLOC
#endif
+#ifdef _LARGEFILE64_SOURCE
+#define fopen lfopen
+#define fseek lfseek
+#define ftell lftell
+#endif /* LF64 */
+
#ifndef SSTAT
-# define SSTAT stat
+# ifdef _LARGEFILE64_SOURCE
+# define SSTAT stat64
+# else
+# define SSTAT stat
+# endif /* LF64 */
#endif
#ifdef S_IFLNK
-# define LSTAT lstat
-# define LSSTAT(n, s) (linkput ? lstat((n), (s)) : SSTAT((n), (s)))
+# ifdef _LARGEFILE64_SOURCE
+# define LSTAT lstat64
+# define LSSTAT(n, s) (linkput ? lstat64((n), (s)) : SSTAT((n), (s)))
+# else
+# define LSTAT lstat64
+# define LSSTAT(n, s) (linkput ? lstat64((n), (s)) : SSTAT((n), (s)))
+# endif /* LF64 */
#else
# define LSTAT SSTAT
# define LSSTAT SSTAT

View File

@ -1,12 +0,0 @@
diff -up zip-2.31/fileio.c.pom zip-2.31/fileio.c
--- zip-2.31/fileio.c.pom 2007-11-05 14:02:41.000000000 +0100
+++ zip-2.31/fileio.c 2007-11-05 14:03:09.000000000 +0100
@@ -976,7 +976,7 @@ lfopen(const char *path, const char *mod
prev = mode[x];
}
- fd = open(path, flags, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
+ fd = open(path, flags, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH);
if (fd == -1)
return NULL;

12
zip-3.0-currdir.patch Normal file
View File

@ -0,0 +1,12 @@
diff -up zip30/util.c.currdir zip30/util.c
--- zip30/util.c.currdir 2009-11-16 12:42:17.783961701 +0100
+++ zip30/util.c 2009-11-16 12:42:58.185960707 +0100
@@ -493,6 +493,8 @@ int cs; /* force case-se
/* Compare the sh pattern p with the string s and return true if they match,
false if they don't or if there is a syntax error in the pattern. */
{
+ while (s[0] == '.' && s[1] == '/')
+ s += 2; /* strip redundant leading "./" sections */
return recmatch(p, s, cs) == 1;
}

20
zip-3.0-exec-shield.patch Normal file
View File

@ -0,0 +1,20 @@
diff -up zip30/crc_i386.S.exec_shield zip30/crc_i386.S
--- zip30/crc_i386.S.exec_shield 2009-11-13 18:37:45.000000000 +0100
+++ zip30/crc_i386.S 2009-11-13 18:39:54.435390166 +0100
@@ -302,3 +302,6 @@ _crc32: /* ulg c
#endif /* i386 || _i386 || _I386 || __i386 */
#endif /* !USE_ZLIB && !CRC_TABLE_ONLY */
+
+.section .note.GNU-stack, "", @progbits
+.previous
diff -up zip30/match.S.exec_shield zip30/match.S
--- zip30/match.S.exec_shield 2005-01-28 10:40:14.000000000 +0100
+++ zip30/match.S 2009-11-13 18:39:48.570389058 +0100
@@ -405,3 +405,6 @@ L__return:
#endif /* i386 || _I386 || _i386 || __i386 */
#endif /* !USE_ZLIB */
+
+.section .note.GNU-stack, "", @progbits
+.previous

View File

@ -1,7 +1,7 @@
--- zip-2.31/unix/Makefile.time 2007-02-07 09:36:30.000000000 +0100 --- zip-2.31/unix/Makefile.time 2007-02-07 09:36:30.000000000 +0100
+++ zip-2.31/unix/Makefile 2007-02-07 09:38:42.000000000 +0100 +++ zip-2.31/unix/Makefile 2007-02-07 09:38:42.000000000 +0100
@@ -24,7 +24,7 @@ @@ -24,7 +24,7 @@
EXE = E =
# probably can change this to 'install' if you have it # probably can change this to 'install' if you have it
-INSTALL_PROGRAM = cp -INSTALL_PROGRAM = cp

View File

@ -1,22 +1,18 @@
Summary: A file compression and packaging utility compatible with PKZIP Summary: A file compression and packaging utility compatible with PKZIP
Name: zip Name: zip
Version: 2.31 Version: 3.0
Release: 8%{?dist} Release: 1%{?dist}
License: BSD License: BSD
Group: Applications/Archiving Group: Applications/Archiving
Source: http://ftp.info-zip.org/pub/infozip/src/zip231.tar.gz Source: http://downloads.sourceforge.net/infozip/zip30.tar.gz
Source1: ftp://ftp.freesoftware.com/pub/infozip/src/zcrypt29.tar.gz URL: http://www.info-zip.org/Zip.html
URL: http://www.info-zip.org/pub/infozip/Zip.html # This patch will probably be merged to zip 3.1
Patch0: zip23.patch # http://www.info-zip.org/board/board.pl?m-1249408491/
Patch1: exec-shield.patch Patch1: zip-3.0-exec-shield.patch
Patch2: zip23-umask.patch # Not upstreamed.
Patch5: zip-2.3-currdir.patch Patch2: zip-3.0-currdir.patch
Patch6: zip-2.31-install.patch # Not upstreamed.
Patch7: zip-2.31-near-4GB.patch Patch3: zip-3.0-time.patch
Patch8: zip-2.31-configure.patch
Patch9: zip-2.31-time.patch
Patch10: zip-2.3-sf.patch
Patch11: zip-2.31-umask_mode.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%description %description
@ -29,20 +25,13 @@ Install the zip package if you need to compress files using the zip
program. program.
%prep %prep
%setup -q -a 1 %setup -q -n zip30
%patch0 -p1 -b .zip %patch1 -p1 -b .exec-shield
%patch1 -p1 -b .zip %patch2 -p1 -b .currdir
%patch2 -p1 -b .umask %patch3 -p1 -b .time
%patch5 -p1 -b .currdir
%patch6 -p1 -b .install
%patch7 -p1 -b .4gb
%patch8 -p1 -b .lhh
%patch9 -p1 -b .time
%patch10 -p1 -b .out
%patch11 -p1 -b .um
%build %build
make -f unix/Makefile prefix=%{_prefix} "CFLAGS=$RPM_OPT_FLAGS -I. -DUNIX -D_LARGEFILE64_SOURCE" generic_gcc %{?_smp_mflags} make -f unix/Makefile prefix=%{_prefix} "CFLAGS_NOOPT=-I. -DUNIX $RPM_OPT_FLAGS" generic_gcc %{?_smp_mflags}
%install %install
rm -rf $RPM_BUILD_ROOT rm -rf $RPM_BUILD_ROOT
@ -52,12 +41,6 @@ mkdir -p $RPM_BULD_ROOT%{_mandir}/man1
make -f unix/Makefile prefix=$RPM_BUILD_ROOT%{_prefix} \ make -f unix/Makefile prefix=$RPM_BUILD_ROOT%{_prefix} \
MANDIR=$RPM_BUILD_ROOT%{_mandir}/man1 install MANDIR=$RPM_BUILD_ROOT%{_mandir}/man1 install
pushd $RPM_BUILD_ROOT
for n in zipnote zipsplit zip zipcloak ; do
chmod 755 .%{_bindir}/$n
done
popd
%clean %clean
rm -rf $RPM_BUILD_ROOT rm -rf $RPM_BUILD_ROOT
@ -70,8 +53,25 @@ rm -rf $RPM_BUILD_ROOT
%{_bindir}/zip %{_bindir}/zip
%{_bindir}/zipcloak %{_bindir}/zipcloak
%{_mandir}/man1/zip.1* %{_mandir}/man1/zip.1*
%{_mandir}/man1/zipcloak.1*
%{_mandir}/man1/zipnote.1*
%{_mandir}/man1/zipsplit.1*
%changelog %changelog
* Fri Nov 13 2009 Karel Klic <kklic@redhat.com> - 3.0-1
- New upstream version
- Removed zip23.patch, because ZMEM is not used anyway
- Removed zip-2.31-install.patch, problem solved in upstream
- Removed zip23-umask.patch, upstream uses mkstemp which solves the problem
- Removed zip-2.31-near-4GB.patch, because upstream version
handles large files well
- Removed zip-2.31-configure.patch, configure is better in the current version
- Removed zip-2.3-sf.patch, the error message doesn't exist in upstream anymore
- Removed zip-2.31-umask_mode.patch, which fixes also removed near-4GB patch
- Updated zip-2.31-time.patch for zip 3.0
- Updated exec-shield.patch for zip 3.0
- Updated zip-2.3-currdir.patch for zip 3.0
* Mon Jul 27 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.31-8 * Mon Jul 27 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.31-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild

View File

@ -1,23 +0,0 @@
diff -ur zip-2.3/zip.c zip-2.3-lhh/zip.c
--- zip-2.3/zip.c 1999-11-16 15:08:10.000000000 -0500
+++ zip-2.3-lhh/zip.c 2003-12-22 09:32:56.000000000 -0500
@@ -849,6 +849,7 @@
/* Add, update, freshen, or delete zip entries in a zip file. See the
command help in help() above. */
{
+ mode_t old_umask; /* umask prior to temp file creation */
int a; /* attributes of zip file */
ulg c; /* start of central directory */
int d; /* true if just adding to a zip file */
@@ -1830,9 +1831,11 @@
if ((tempzip = tempname(zipfile)) == NULL) {
ZIPERR(ZE_MEM, "allocating temp filename");
}
+ old_umask = umask(0066);
if ((tempzf = y = fopen(tempzip, FOPW_TMP)) == NULL) {
ZIPERR(ZE_TEMP, tempzip);
}
+ umask(old_umask);
}
#if (!defined(VMS) && !defined(CMS_MVS))

View File

@ -1,93 +0,0 @@
--- zip-2.3/zip.h.zip Mon Nov 8 14:36:51 1999
+++ zip-2.3/zip.h Tue Jan 11 11:46:06 2000
@@ -60,6 +60,7 @@
/* Set up portability */
#include "tailor.h"
+#include <strings.h>
#ifdef USE_ZLIB
# include "zlib.h"
@@ -433,12 +434,6 @@
int setfileattr OF((char *, int));
char *tempname OF((char *));
int fcopy OF((FILE *, FILE *, ulg));
-
-#ifdef ZMEM
- char *memset OF((char *, int, unsigned int));
- char *memcpy OF((char *, char *, unsigned int));
- int memcmp OF((char *, char *, unsigned int));
-#endif /* ZMEM */
/* in system dependent fileio code (<system>.c) */
#ifndef UTIL
--- zip-2.3/fileio.c.zip Sun Nov 7 05:29:03 1999
+++ zip-2.3/fileio.c Tue Jan 11 11:46:43 2000
@@ -918,67 +918,3 @@
}
#endif /* NO_RENAME */
-
-
-#ifdef ZMEM
-
-/************************/
-/* Function memset() */
-/************************/
-
-/*
- * memset - for systems without it
- * bill davidsen - March 1990
- */
-
-char *
-memset(buf, init, len)
-register char *buf; /* buffer loc */
-register int init; /* initializer */
-register unsigned int len; /* length of the buffer */
-{
- char *start;
-
- start = buf;
- while (len--) *(buf++) = init;
- return(start);
-}
-
-
-/************************/
-/* Function memcpy() */
-/************************/
-
-char *
-memcpy(dst,src,len) /* v2.0f */
-register char *dst, *src;
-register unsigned int len;
-{
- char *start;
-
- start = dst;
- while (len--)
- *dst++ = *src++;
- return(start);
-}
-
-
-/************************/
-/* Function memcmp() */
-/************************/
-
-int
-memcmp(b1,b2,len) /* jpd@usl.edu -- 11/16/90 */
-register char *b1, *b2;
-register unsigned int len;
-{
-
- if (len) do { /* examine each byte (if any) */
- if (*b1++ != *b2++)
- return (*((uch *)b1-1) - *((uch *)b2-1)); /* exit when miscompare */
- } while (--len);
-
- return(0); /* no miscompares, yield 0 result */
-}
-
-#endif /* ZMEM */