aboutsummaryrefslogtreecommitdiff
path: root/archivers/zoo
diff options
context:
space:
mode:
authorGabor Kovesdan <gabor@FreeBSD.org>2011-12-22 13:12:22 +0000
committerGabor Kovesdan <gabor@FreeBSD.org>2011-12-22 13:12:22 +0000
commit2aff69237c3bb2d6fea638a6a4ece1592fc0db27 (patch)
tree8d979d43d22799a313b87e997e83036b073c8179 /archivers/zoo
parentdcfd8be7efee91904397e765dc04ca44f6527a30 (diff)
downloadports-2aff69237c3bb2d6fea638a6a4ece1592fc0db27.tar.gz
ports-2aff69237c3bb2d6fea638a6a4ece1592fc0db27.zip
- Patch zoo to work properly when modifying existing archives on 64-bit
systems - Bump PORTREVISION PR: ports/162804 Submitted by: Carl Johnson <carlj@peak.org>
Notes
Notes: svn path=/head/; revision=287863
Diffstat (limited to 'archivers/zoo')
-rw-r--r--archivers/zoo/Makefile2
-rw-r--r--archivers/zoo/files/patch-aa232
-rw-r--r--archivers/zoo/files/patch-ab68
-rw-r--r--archivers/zoo/files/patch-ar.h15
-rw-r--r--archivers/zoo/files/patch-bsd.c46
-rw-r--r--archivers/zoo/files/patch-makefile41
-rw-r--r--archivers/zoo/files/patch-misc.c16
-rw-r--r--archivers/zoo/files/patch-misc2.c17
-rw-r--r--archivers/zoo/files/patch-nixtime.i12
-rw-r--r--archivers/zoo/files/patch-options.h18
-rw-r--r--archivers/zoo/files/patch-zooadd2.c19
-rw-r--r--archivers/zoo/files/patch-zooext.c18
-rw-r--r--archivers/zoo/files/patch-zoofns.h14
-rw-r--r--archivers/zoo/files/patch-zoolist.c16
14 files changed, 228 insertions, 306 deletions
diff --git a/archivers/zoo/Makefile b/archivers/zoo/Makefile
index 429f2182d7b3..32978f98dbc3 100644
--- a/archivers/zoo/Makefile
+++ b/archivers/zoo/Makefile
@@ -7,7 +7,7 @@
PORTNAME= zoo
PORTVERSION= 2.10.1
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= archivers
MASTER_SITES= ftp://ftp.kiarchive.ru/pub/unix/arcers/
DISTNAME= zoo-2.10pl1
diff --git a/archivers/zoo/files/patch-aa b/archivers/zoo/files/patch-aa
deleted file mode 100644
index e2514e63e425..000000000000
--- a/archivers/zoo/files/patch-aa
+++ /dev/null
@@ -1,232 +0,0 @@
-*** bsd.c.old Thu Aug 8 09:34:07 1991
---- bsd.c Thu Jan 5 05:20:03 1995
-***************
-*** 69,76 ****
- }
-
- /* Function gettz() returns the offset from GMT in seconds */
-! long gettz()
- {
- #define SEC_IN_DAY (24L * 60L * 60L)
- #define INV_VALUE (SEC_IN_DAY + 1L)
- static long retval = INV_VALUE; /* cache, init to impossible value */
---- 69,80 ----
- }
-
- /* Function gettz() returns the offset from GMT in seconds */
-! long gettz(t)
-! long t;
- {
-+ #if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
-+ return -localtime(&t)->tm_gmtoff;
-+ #else
- #define SEC_IN_DAY (24L * 60L * 60L)
- #define INV_VALUE (SEC_IN_DAY + 1L)
- static long retval = INV_VALUE; /* cache, init to impossible value */
-***************
-*** 83,88 ****
---- 87,93 ----
- /* Timezone fix thanks to Bill Davidsen <wedu@ge-crd.ARPA> */
- retval = tzp.tz_minuteswest * 60 - tzp.tz_dsttime * 3600L;
- return retval;
-+ #endif
- }
-
- /* Standard UNIX-compatible time routines */
-***************
-*** 91,105 ****
- /* Standard UNIX-specific file attribute routines */
- #include "nixmode.i"
-
- #ifndef SEEK_CUR
- # define SEEK_CUR 1
- #endif
-
- /* Truncate a file. */
- int zootrunc(f) FILE *f;
- {
-! extern long lseek();
-! long seekpos;
- int fd = fileno(f);
- seekpos = lseek(fd, 0L, SEEK_CUR);
- if (seekpos >= 0)
---- 96,114 ----
- /* Standard UNIX-specific file attribute routines */
- #include "nixmode.i"
-
-+ #if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
-+ #include <unistd.h>
-+ #else
- #ifndef SEEK_CUR
- # define SEEK_CUR 1
- #endif
-+ #endif
-
- /* Truncate a file. */
- int zootrunc(f) FILE *f;
- {
-! extern off_t lseek();
-! off_t seekpos;
- int fd = fileno(f);
- seekpos = lseek(fd, 0L, SEEK_CUR);
- if (seekpos >= 0)
-*** misc2.c.old Thu Aug 8 09:34:48 1991
---- misc2.c Thu Jan 5 05:37:06 1995
-***************
-*** 314,323 ****
- {
- long diff_tz;
- long longtime;
- if (direntry->tz == NO_TZ) /* none stored */
- return;
-! diff_tz = (long) direntry->tz * (3600/4) - gettz(); /* diff. in seconds */
-! longtime = mstonix (direntry->date, direntry->time) + diff_tz; /* adj tz */
- mstime (longtime, &direntry->date, &direntry->time);
- }
- #endif /* GETTZ */
---- 314,325 ----
- {
- long diff_tz;
- long longtime;
-+ long t;
- if (direntry->tz == NO_TZ) /* none stored */
- return;
-! t = mstonix (direntry->date, direntry->time);
-! diff_tz = (long) direntry->tz * (3600/4) - gettz(t); /* diff. in seconds */
-! longtime = t + diff_tz; /* adj tz */
- mstime (longtime, &direntry->date, &direntry->time);
- }
- #endif /* GETTZ */
-*** nixtime.i.old Thu Aug 8 09:34:57 1991
---- nixtime.i Thu Jan 5 05:16:28 1995
-***************
-*** 52,58 ****
- long mstonix();
- long gettz();
- long utimbuf[2];
-! utimbuf[0] = utimbuf[1] = gettz() + mstonix (date, time);
- return (utime (path, utimbuf));
- }
-
---- 52,59 ----
- long mstonix();
- long gettz();
- long utimbuf[2];
-! long t = mstonix (date, time);
-! utimbuf[0] = utimbuf[1] = t + gettz(t);
- return (utime (path, utimbuf));
- }
-
-*** zoolist.c.old Thu Aug 8 09:36:09 1991
---- zoolist.c Thu Jan 5 05:41:47 1995
-***************
-*** 539,548 ****
- {
- long gettz();
- int diff_tz; /* timezone difference */
- if (file_tz == NO_TZ) /* if no timezone stored ..*/
- printf (" "); /* .. just pad with blanks */
- else {
-! diff_tz = (file_tz / 4) - (int) (gettz() / 3600);
- if (diff_tz == 0)
- printf (" "); /* print nothing if same */
- else if (diff_tz > 0) /* else print signed difference */
---- 539,550 ----
- {
- long gettz();
- int diff_tz; /* timezone difference */
-+ long t;
- if (file_tz == NO_TZ) /* if no timezone stored ..*/
- printf (" "); /* .. just pad with blanks */
- else {
-! time(&t);
-! diff_tz = (file_tz / 4) - (int) (gettz(t) / 3600);
- if (diff_tz == 0)
- printf (" "); /* print nothing if same */
- else if (diff_tz > 0) /* else print signed difference */
-*** zoofns.h.bak Thu Aug 8 09:36:02 1991
---- zoofns.h Thu Jan 5 06:03:04 1995
-***************
-*** 94,100 ****
---- 94,104 ----
- void fixslash PARMS ((char *));
- void makelist PARMS ((int, char *[], char *[], int, char *, char *, char *, int *));
- void memerr PARMS ((unsigned int));
-+ #ifdef STDARG
-+ void prterror(int level, char *format, ...);
-+ #else
- void prterror PARMS ((int, char *, ...));
-+ #endif
- void rootname PARMS ((char *, char *));
- void skip_files PARMS ((ZOOFILE, unsigned int *, unsigned int *, int *,
- char [], long *));
-*** options.h.orig Sat May 1 08:27:59 1993
---- options.h Thu Jan 5 06:51:56 1995
-***************
-*** 96,102 ****
- #define NIXTIME
- #define NIXFNAME
- #define NEEDCTYP
-- #define NOENUM
- #define REN_STDC
- #define SETBUF
- #define GETTZ
---- 96,101 ----
-***************
-*** 110,115 ****
---- 109,115 ----
- #define ANSI_PROTO
- #define VOIDPTR void *
- #else
-+ #define NOENUM
- #define NOSTRCHR /* not really needed for 4.3BSD */
- #define T_SIGNAL int
- #define VARARGS
-*** zooadd2.c.orig Sat Jul 20 02:38:10 1991
---- zooadd2.c Thu Jan 5 06:55:40 1995
-***************
-*** 258,269 ****
- register struct direntry *direntry;
- {
- #ifdef GETTZ
- long gettz();
- #endif
- direntry->zoo_tag = ZOO_TAG;
- direntry->type = 2; /* type is now 2 */
- #ifdef GETTZ
-! direntry->tz = gettz() / (15 * 60); /* seconds => 15-min units */
- #else
- direntry->tz = NO_TZ; /* timezone unknown */
- #endif
---- 258,272 ----
- register struct direntry *direntry;
- {
- #ifdef GETTZ
-+ long mstonix();
- long gettz();
-+ long t;
- #endif
- direntry->zoo_tag = ZOO_TAG;
- direntry->type = 2; /* type is now 2 */
- #ifdef GETTZ
-! t = mstonix (direntry->date, direntry->time);
-! direntry->tz = gettz(t) / (15 * 60); /* seconds => 15-min units */
- #else
- direntry->tz = NO_TZ; /* timezone unknown */
- #endif
-*** ar.h.orig Sat May 1 08:04:22 1993
---- ar.h Thu Jan 5 07:05:36 1995
-***************
-*** 15,23 ****
---- 15,25 ----
- /* uchar should be 8 bits or more */
- /* typedef unsigned char uchar; -- already in zoo.h */
-
-+ #if !(defined(__FreeBSD__) && __FreeBSD__ < 3) && !defined(__OpenBSD__) && !defined(__NetBSD__)
- typedef unsigned int uint; /* 16 bits or more */
- #if !defined(__386BSD__) || !defined(_TYPES_H_)
- typedef unsigned short ushort; /* 16 bits or more */
-+ #endif
- #endif
- typedef unsigned long ulong; /* 32 bits or more */
-
diff --git a/archivers/zoo/files/patch-ab b/archivers/zoo/files/patch-ab
deleted file mode 100644
index e12f1845c2e0..000000000000
--- a/archivers/zoo/files/patch-ab
+++ /dev/null
@@ -1,68 +0,0 @@
-*** makefile.old Tue Jul 16 17:52:08 1991
---- makefile Mon Jun 3 14:05:51 2002
-***************
-*** 18,30 ****
-
- MAKE = make # needed for some systems e.g. older BSD
-
-! CC = cc
-! CFLAGS =
- MODEL =
- EXTRA = -DBIG_MEM -DNDEBUG
- LINTFLAGS = -DLINT
-! OPTIM = -O
-! DESTDIR = /usr/local/bin
-
- #List of all object files created for Zoo
- ZOOOBJS = addbfcrc.o addfname.o basename.o comment.o crcdefs.o \
---- 18,30 ----
-
- MAKE = make # needed for some systems e.g. older BSD
-
-! #CC = cc
-! #CFLAGS =
- MODEL =
- EXTRA = -DBIG_MEM -DNDEBUG
- LINTFLAGS = -DLINT
-! OPTIM = $(CFLAGS)
-! DESTDIR = $(PREFIX)/bin
-
- #List of all object files created for Zoo
- ZOOOBJS = addbfcrc.o addfname.o basename.o comment.o crcdefs.o \
-***************
-*** 67,73 ****
- @echo "lint_turboc: Run lint under **IX for checking Turbo C/MSDOS code"
-
- # install alpha zoo as "tzoo"
-! install:
- mv zoo $(DESTDIR)/tzoo
-
- # install beta zoo as "bzoo"
---- 67,73 ----
- @echo "lint_turboc: Run lint under **IX for checking Turbo C/MSDOS code"
-
- # install alpha zoo as "tzoo"
-! inst_test:
- mv zoo $(DESTDIR)/tzoo
-
- # install beta zoo as "bzoo"
-***************
-*** 75,82 ****
- mv zoo $(DESTDIR)/bzoo
-
- # install production zoo as "zoo"
-! inst_prod:
-! mv zoo $(DESTDIR)/zoo
-
- # executable targets
- TARGETS = zoo fiz
---- 75,83 ----
- mv zoo $(DESTDIR)/bzoo
-
- # install production zoo as "zoo"
-! install:
-! $(BSD_INSTALL_PROGRAM) $(TARGETS) $(DESTDIR)
-! $(BSD_INSTALL_MAN) zoo.1 fiz.1 $(PREFIX)/man/man1
-
- # executable targets
- TARGETS = zoo fiz
diff --git a/archivers/zoo/files/patch-ar.h b/archivers/zoo/files/patch-ar.h
new file mode 100644
index 000000000000..fbc3ec644a2d
--- /dev/null
+++ b/archivers/zoo/files/patch-ar.h
@@ -0,0 +1,15 @@
+--- ./ar.h.orig 1993-05-01 06:04:22.000000000 +0200
++++ ./ar.h 2011-12-22 14:00:55.000000000 +0100
+@@ -15,10 +15,12 @@
+ /* uchar should be 8 bits or more */
+ /* typedef unsigned char uchar; -- already in zoo.h */
+
++#if !(defined(__FreeBSD__) && __FreeBSD__ < 3) && !defined(__OpenBSD__) && !defined(__NetBSD__)
+ typedef unsigned int uint; /* 16 bits or more */
+ #if !defined(__386BSD__) || !defined(_TYPES_H_)
+ typedef unsigned short ushort; /* 16 bits or more */
+ #endif
++#endif
+ typedef unsigned long ulong; /* 32 bits or more */
+
+ /* T_UINT16 must be #defined in options.h to be
diff --git a/archivers/zoo/files/patch-bsd.c b/archivers/zoo/files/patch-bsd.c
new file mode 100644
index 000000000000..bcb7712b7f3f
--- /dev/null
+++ b/archivers/zoo/files/patch-bsd.c
@@ -0,0 +1,46 @@
+--- ./bsd.c.orig 1993-05-01 06:21:53.000000000 +0200
++++ ./bsd.c 2011-12-22 14:00:55.000000000 +0100
+@@ -69,8 +69,12 @@
+ }
+
+ /* Function gettz() returns the offset from GMT in seconds */
+-long gettz()
++long gettz(t)
++long t;
+ {
++#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
++ return -localtime(&t)->tm_gmtoff;
++#else
+ #define SEC_IN_DAY (24L * 60L * 60L)
+ #define INV_VALUE (SEC_IN_DAY + 1L)
+ static long retval = INV_VALUE; /* cache, init to impossible value */
+@@ -95,6 +99,7 @@
+ retval = -tm->tm_gmtoff;
+ #endif
+ return retval;
++#endif
+ }
+
+ /* Standard UNIX-compatible time routines */
+@@ -103,15 +108,19 @@
+ /* Standard UNIX-specific file attribute routines */
+ #include "nixmode.i"
+
++#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
++#include <unistd.h>
++#else
+ #ifndef SEEK_CUR
+ # define SEEK_CUR 1
+ #endif
++#endif
+
+ /* Truncate a file. */
+ int zootrunc(f) FILE *f;
+ {
+- extern long lseek();
+- long seekpos;
++ extern off_t lseek();
++ off_t seekpos;
+ int fd = fileno(f);
+ seekpos = lseek(fd, 0L, SEEK_CUR);
+ if (seekpos >= 0)
diff --git a/archivers/zoo/files/patch-makefile b/archivers/zoo/files/patch-makefile
new file mode 100644
index 000000000000..18ec3e7caabd
--- /dev/null
+++ b/archivers/zoo/files/patch-makefile
@@ -0,0 +1,41 @@
+--- ./makefile.orig 1991-07-16 17:52:08.000000000 +0200
++++ ./makefile 2011-12-22 14:00:55.000000000 +0100
+@@ -18,13 +18,13 @@
+
+ MAKE = make # needed for some systems e.g. older BSD
+
+-CC = cc
+-CFLAGS =
++#CC = cc
++#CFLAGS =
+ MODEL =
+ EXTRA = -DBIG_MEM -DNDEBUG
+ LINTFLAGS = -DLINT
+-OPTIM = -O
+-DESTDIR = /usr/local/bin
++OPTIM = $(CFLAGS)
++DESTDIR = $(PREFIX)/bin
+
+ #List of all object files created for Zoo
+ ZOOOBJS = addbfcrc.o addfname.o basename.o comment.o crcdefs.o \
+@@ -67,7 +67,7 @@
+ @echo "lint_turboc: Run lint under **IX for checking Turbo C/MSDOS code"
+
+ # install alpha zoo as "tzoo"
+-install:
++inst_test:
+ mv zoo $(DESTDIR)/tzoo
+
+ # install beta zoo as "bzoo"
+@@ -75,8 +75,9 @@
+ mv zoo $(DESTDIR)/bzoo
+
+ # install production zoo as "zoo"
+-inst_prod:
+- mv zoo $(DESTDIR)/zoo
++install:
++ $(BSD_INSTALL_PROGRAM) $(TARGETS) $(DESTDIR)
++ $(BSD_INSTALL_MAN) zoo.1 fiz.1 $(PREFIX)/man/man1
+
+ # executable targets
+ TARGETS = zoo fiz
diff --git a/archivers/zoo/files/patch-misc.c b/archivers/zoo/files/patch-misc.c
index e69a1207fc61..a613087b3a10 100644
--- a/archivers/zoo/files/patch-misc.c
+++ b/archivers/zoo/files/patch-misc.c
@@ -1,5 +1,5 @@
---- misc.c.orig Tue Jul 16 17:52:54 1991
-+++ misc.c Thu Apr 6 08:45:41 2006
+--- ./misc.c.orig 1991-07-16 17:52:54.000000000 +0200
++++ ./misc.c 2011-12-22 14:02:23.000000000 +0100
@@ -135,11 +135,16 @@
char *fullpath (direntry)
struct direntry *direntry;
@@ -18,3 +18,15 @@
return (result);
}
+@@ -172,7 +177,11 @@
+
+ frd_zooh (header, zoo_file);
+
++#ifdef __LP64__
++ if ((int)(header->zoo_start + header->zoo_minus) != 0)
++#else
+ if ((header->zoo_start + header->zoo_minus) != 0L)
++#endif
+ prterror ('f', failed_consistency);
+ if (ver_too_high (header))
+ prterror ('f', wrong_version, header->major_ver, header->minor_ver);
diff --git a/archivers/zoo/files/patch-misc2.c b/archivers/zoo/files/patch-misc2.c
new file mode 100644
index 000000000000..de3595ab5713
--- /dev/null
+++ b/archivers/zoo/files/patch-misc2.c
@@ -0,0 +1,17 @@
+--- ./misc2.c.orig 1991-07-16 17:53:02.000000000 +0200
++++ ./misc2.c 2011-12-22 14:00:55.000000000 +0100
+@@ -314,10 +314,12 @@
+ {
+ long diff_tz;
+ long longtime;
++ long t;
+ if (direntry->tz == NO_TZ) /* none stored */
+ return;
+- diff_tz = (long) direntry->tz * (3600/4) - gettz(); /* diff. in seconds */
+- longtime = mstonix (direntry->date, direntry->time) + diff_tz; /* adj tz */
++ t = mstonix (direntry->date, direntry->time);
++ diff_tz = (long) direntry->tz * (3600/4) - gettz(t); /* diff. in seconds */
++ longtime = t + diff_tz; /* adj tz */
+ mstime (longtime, &direntry->date, &direntry->time);
+ }
+ #endif /* GETTZ */
diff --git a/archivers/zoo/files/patch-nixtime.i b/archivers/zoo/files/patch-nixtime.i
new file mode 100644
index 000000000000..d536387bd063
--- /dev/null
+++ b/archivers/zoo/files/patch-nixtime.i
@@ -0,0 +1,12 @@
+--- ./nixtime.i.orig 1991-07-16 17:53:46.000000000 +0200
++++ ./nixtime.i 2011-12-22 14:00:55.000000000 +0100
+@@ -52,7 +52,8 @@
+ long mstonix();
+ long gettz();
+ long utimbuf[2];
+- utimbuf[0] = utimbuf[1] = gettz() + mstonix (date, time);
++ long t = mstonix (date, time);
++ utimbuf[0] = utimbuf[1] = t + gettz(t);
+ return (utime (path, utimbuf));
+ }
+
diff --git a/archivers/zoo/files/patch-options.h b/archivers/zoo/files/patch-options.h
new file mode 100644
index 000000000000..3749d82708d3
--- /dev/null
+++ b/archivers/zoo/files/patch-options.h
@@ -0,0 +1,18 @@
+--- ./options.h.orig 1993-05-01 06:27:59.000000000 +0200
++++ ./options.h 2011-12-22 14:00:55.000000000 +0100
+@@ -96,7 +96,6 @@
+ #define NIXTIME
+ #define NIXFNAME
+ #define NEEDCTYP
+-#define NOENUM
+ #define REN_STDC
+ #define SETBUF
+ #define GETTZ
+@@ -110,6 +109,7 @@
+ #define ANSI_PROTO
+ #define VOIDPTR void *
+ #else
++#define NOENUM
+ #define NOSTRCHR /* not really needed for 4.3BSD */
+ #define T_SIGNAL int
+ #define VARARGS
diff --git a/archivers/zoo/files/patch-zooadd2.c b/archivers/zoo/files/patch-zooadd2.c
new file mode 100644
index 000000000000..247acb84de6c
--- /dev/null
+++ b/archivers/zoo/files/patch-zooadd2.c
@@ -0,0 +1,19 @@
+--- ./zooadd2.c.orig 1991-07-20 01:38:10.000000000 +0200
++++ ./zooadd2.c 2011-12-22 14:00:55.000000000 +0100
+@@ -258,12 +258,15 @@
+ register struct direntry *direntry;
+ {
+ #ifdef GETTZ
++ long mstonix();
+ long gettz();
++ long t;
+ #endif
+ direntry->zoo_tag = ZOO_TAG;
+ direntry->type = 2; /* type is now 2 */
+ #ifdef GETTZ
+- direntry->tz = gettz() / (15 * 60); /* seconds => 15-min units */
++ t = mstonix (direntry->date, direntry->time);
++ direntry->tz = gettz(t) / (15 * 60); /* seconds => 15-min units */
+ #else
+ direntry->tz = NO_TZ; /* timezone unknown */
+ #endif
diff --git a/archivers/zoo/files/patch-zooext.c b/archivers/zoo/files/patch-zooext.c
index 51217b8b6669..1553286201f9 100644
--- a/archivers/zoo/files/patch-zooext.c
+++ b/archivers/zoo/files/patch-zooext.c
@@ -1,6 +1,18 @@
---- zooext.c~ Sat May 1 05:58:50 1993
-+++ zooext.c Sat Nov 12 14:04:17 2005
-@@ -184,7 +184,8 @@
+--- ./zooext.c.orig 1993-05-01 05:58:50.000000000 +0200
++++ ./zooext.c 2011-12-22 14:03:37.000000000 +0100
+@@ -163,7 +163,11 @@
+ } else {
+ /* read header */
+ frd_zooh (&zoo_header, zoo_file);
++#ifdef __LP64__
++ if ((int)(zoo_header.zoo_start + zoo_header.zoo_minus) != 0) {
++#else
+ if ((zoo_header.zoo_start + zoo_header.zoo_minus) != 0L) {
++#endif
+ prterror ('w', failed_consistency);
+ bad_header++;
+ exit_status = 1;
+@@ -184,7 +188,8 @@
this_file = STDOUT; /* standard output */
while (1) {
diff --git a/archivers/zoo/files/patch-zoofns.h b/archivers/zoo/files/patch-zoofns.h
new file mode 100644
index 000000000000..c51cfcb3dbed
--- /dev/null
+++ b/archivers/zoo/files/patch-zoofns.h
@@ -0,0 +1,14 @@
+--- ./zoofns.h.orig 1993-05-01 05:57:35.000000000 +0200
++++ ./zoofns.h 2011-12-22 14:00:55.000000000 +0100
+@@ -94,7 +94,11 @@
+ void fixslash PARMS ((char *));
+ void makelist PARMS ((int, char *[], char *[], int, char *, char *, char *, int *));
+ void memerr PARMS ((unsigned int));
++#ifdef STDARG
++void prterror(int level, char *format, ...);
++#else
+ void prterror PARMS ((int, char *, ...));
++#endif
+ void rootname PARMS ((char *, char *));
+ void skip_files PARMS ((ZOOFILE, unsigned int *, unsigned int *, int *,
+ char [], long *));
diff --git a/archivers/zoo/files/patch-zoolist.c b/archivers/zoo/files/patch-zoolist.c
new file mode 100644
index 000000000000..339b3bdb14c6
--- /dev/null
+++ b/archivers/zoo/files/patch-zoolist.c
@@ -0,0 +1,16 @@
+--- ./zoolist.c.orig 1991-07-20 00:57:27.000000000 +0200
++++ ./zoolist.c 2011-12-22 14:00:55.000000000 +0100
+@@ -539,10 +539,12 @@
+ {
+ long gettz();
+ int diff_tz; /* timezone difference */
++ long t;
+ if (file_tz == NO_TZ) /* if no timezone stored ..*/
+ printf (" "); /* .. just pad with blanks */
+ else {
+- diff_tz = (file_tz / 4) - (int) (gettz() / 3600);
++ time(&t);
++ diff_tz = (file_tz / 4) - (int) (gettz(t) / 3600);
+ if (diff_tz == 0)
+ printf (" "); /* print nothing if same */
+ else if (diff_tz > 0) /* else print signed difference */