* [gentoo-commits] gentoo-x86 commit in app-arch/rzip/files: rzip-2.1-handle-broken-archive.patch rzip-2.1-darwin.patch
@ 2010-01-17 19:30 Thilo Bangert (bangert)
0 siblings, 0 replies; only message in thread
From: Thilo Bangert (bangert) @ 2010-01-17 19:30 UTC (permalink / raw
To: gentoo-commits
bangert 10/01/17 19:30:05
Added: rzip-2.1-handle-broken-archive.patch
rzip-2.1-darwin.patch
Log:
add updated darwin.patch (-r1), also include ability to read broken archives (-r2) (#217552)
(Portage version: 2.2_rc61/cvs/Linux i686)
Revision Changes Path
1.1 app-arch/rzip/files/rzip-2.1-handle-broken-archive.patch
file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-arch/rzip/files/rzip-2.1-handle-broken-archive.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-arch/rzip/files/rzip-2.1-handle-broken-archive.patch?rev=1.1&content-type=text/plain
Index: rzip-2.1-handle-broken-archive.patch
===================================================================
diff -ur rzip-2.1/main.c rzip-2.1-patched/main.c
--- rzip-2.1/main.c 2006-02-14 01:38:23.000000000 +0100
+++ rzip-2.1-patched/main.c 2008-07-30 19:29:49.426926726 +0200
@@ -35,6 +35,7 @@
printf(" -k keep existing files\n");
printf(" -P show compression progress\n");
printf(" -L level set compression level\n");
+ printf(" -l nr set higher bits of the expected file length to nr\n");
printf(" -V show version\n");
#if 0
/* damn, this will be quite hard to do */
@@ -172,6 +173,13 @@
read_magic(fd_in, fd_out, &expected_size);
+
+#ifdef HAVE_LARGE_FILES
+ if (control->nr) {
+ expected_size = ( ((off_t)(control->nr))<<32) | (expected_size & 0xFFFFFFFF);
+ }
+#endif
+
runzip_fd(fd_in, fd_out, fd_hist, expected_size);
if ((control->flags & FLAG_TEST_ONLY) == 0) {
@@ -267,7 +275,7 @@
control.flags |= FLAG_DECOMPRESS;
}
- while ((c = getopt(argc, argv, "h0123456789dS:tVvkfPo:L:")) != -1) {
+ while ((c = getopt(argc, argv, "h0123456789dS:tVvkl:fPo:L:")) != -1) {
if (isdigit(c)) {
control.compression_level = c - '0';
continue;
@@ -295,6 +303,12 @@
case 'k':
control.flags |= FLAG_KEEP_FILES;
break;
+ case 'l':
+#ifndef HAVE_LARGE_FILES
+ fatal("You used the -l option, but this rzip doesn't support large files.");
+#endif
+ control.nr = atoi(optarg);
+ break;
case 'v':
control.verbosity++;
break;
diff -ur rzip-2.1/runzip.c rzip-2.1-patched/runzip.c
--- rzip-2.1/runzip.c 2003-10-08 00:08:28.000000000 +0200
+++ rzip-2.1-patched/runzip.c 2008-07-30 19:34:03.803564086 +0200
@@ -179,10 +179,16 @@
*/
off_t runzip_fd(int fd_in, int fd_out, int fd_hist, off_t expected_size)
{
- off_t total = 0;
- while (total < expected_size) {
- total += runzip_chunk(fd_in, fd_out, fd_hist);
+ off_t total = 0, fin=1;
+ while (fin && total < expected_size) {
+ fin = runzip_chunk(fd_in, fd_out, fd_hist);
+ total += fin;
}
+
+ if (total < expected_size) {
+ fprintf(stderr, "Warning: The uncompressed size does not equal the expected file size.\nHowever if you used the -l option, this may be okay.\n");
+ }
+
return total;
}
diff -ur rzip-2.1/rzip.h rzip-2.1-patched/rzip.h
--- rzip-2.1/rzip.h 2006-02-14 01:38:23.000000000 +0100
+++ rzip-2.1-patched/rzip.h 2008-07-30 19:29:49.426926726 +0200
@@ -113,6 +113,7 @@
unsigned compression_level;
unsigned flags;
unsigned verbosity;
+ unsigned nr;
};
void fatal(const char *format, ...);
1.1 app-arch/rzip/files/rzip-2.1-darwin.patch
file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-arch/rzip/files/rzip-2.1-darwin.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-arch/rzip/files/rzip-2.1-darwin.patch?rev=1.1&content-type=text/plain
Index: rzip-2.1-darwin.patch
===================================================================
diff -r -uN rzip-2.1/configure.in rzip-2.1-patched/configure.in
--- rzip-2.1/configure.in 2003-11-03 09:19:11.000000000 +0100
+++ rzip-2.1-patched/configure.in 2008-07-27 21:59:45.774740303 +0200
@@ -2,6 +2,12 @@
AC_INIT(main.c)
AC_CONFIG_HEADER(config.h)
+# test prior to AC_PROG_CC, since it sets cflags on it's own.
+if test x"CFLAGS" = x
+then
+ DEFAULT_CFLAGS="-g -Wall -O3"
+fi
+
dnl Checks for programs.
AC_PROG_CC
AC_PROG_INSTALL
@@ -9,10 +15,10 @@
AC_SYS_LARGEFILE
# Thanks to Martin Pool
-if test x"$GCC" = xyes
+if test x"$GCC" = xyes && test x"$DEFAULT_CFLAGS" != x
then
CFLAGS="-g -Wall -O3"
- AC_MSG_NOTICE([Setting gcc options: $CFLAGS])
+ AC_MSG_RESULT([Setting default cflags: $CFLAGS])
fi
AC_CHECK_HEADERS(fcntl.h sys/time.h sys/unistd.h unistd.h)
@@ -45,12 +51,8 @@
AC_CHECK_LIB(bz2, BZ2_bzBuffToBuffCompress, ,
AC_MSG_ERROR([Could not find bz2 library - please install libbz2-devel]))
-echo $ac_n "checking for errno in errno.h... $ac_c"
-AC_TRY_COMPILE([#include <errno.h>],[int i = errno],
-echo yes; AC_DEFINE(HAVE_ERRNO_DECL),
-echo no)
-
AC_CHECK_FUNCS(mmap strerror)
AC_CHECK_FUNCS(getopt_long)
+AC_CHECK_FUNCS(strndup)
AC_OUTPUT(Makefile)
diff -r -uN rzip-2.1/main.c rzip-2.1-patched/main.c
--- rzip-2.1/main.c 2006-02-14 01:38:23.000000000 +0100
+++ rzip-2.1-patched/main.c 2008-07-27 22:00:28.298071207 +0200
@@ -18,6 +18,7 @@
/* rzip compression - main program */
#include "rzip.h"
+#include "strutils.h"
static void usage(void)
{
diff -r -uN rzip-2.1/Makefile.in rzip-2.1-patched/Makefile.in
--- rzip-2.1/Makefile.in 2006-02-14 01:38:23.000000000 +0100
+++ rzip-2.1-patched/Makefile.in 2008-07-27 21:58:08.201419790 +0200
@@ -3,8 +3,8 @@
prefix=@prefix@
exec_prefix=@exec_prefix@
-INSTALL_BIN=$(exec_prefix)/bin
-INSTALL_MAN=$(prefix)/man
+INSTALL_BIN=$(DESTDIR)/@bindir@
+INSTALL_MAN=$(DESTDIR)/@mandir@
LIBS=@LIBS@
CC=@CC@
@@ -20,7 +20,7 @@
.SUFFIXES:
.SUFFIXES: .c .o
-OBJS= rzip.o runzip.o main.o stream.o util.o crc32.o
+OBJS= rzip.o runzip.o strutils.o main.o stream.o util.o crc32.o
# note that the -I. is needed to handle config.h when using VPATH
.c.o:
@@ -35,6 +35,7 @@
${INSTALLCMD} -m 755 rzip ${INSTALL_BIN}
-mkdir -p ${INSTALL_MAN}/man1
${INSTALLCMD} -m 644 $(srcdir)/rzip.1 ${INSTALL_MAN}/man1/
+ ln -s rzip $(INSTALL_BIN)/runzip
rzip: $(OBJS)
$(CC) $(CFLAGS) -o rzip $(OBJS) $(LIBS)
diff -r -uN rzip-2.1/rzip.h rzip-2.1-patched/rzip.h
--- rzip-2.1/rzip.h 2006-02-14 01:38:23.000000000 +0100
+++ rzip-2.1-patched/rzip.h 2008-07-27 21:58:08.204752617 +0200
@@ -94,7 +94,7 @@
#define strerror(i) sys_errlist[i]
#endif
-#ifndef HAVE_ERRNO_DECL
+#if !defined(errno)
extern int errno;
#endif
diff -r -uN rzip-2.1/strutils.c rzip-2.1-patched/strutils.c
--- rzip-2.1/strutils.c 1970-01-01 01:00:00.000000000 +0100
+++ rzip-2.1-patched/strutils.c 2008-07-27 21:58:08.204752617 +0200
@@ -0,0 +1,29 @@
+/*
+ Copyright (C) 2005 Gentoo Foundation
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+/* string utilities that may be missing on various platforms */
+
+#include "strutils.h"
+
+#ifndef HAVE_STRNDUP
+char* strndup(const char* s, size_t n) {
+ char* ret = malloc(n + 1);
+ if (ret == NULL) return(ret);
+ ret[n] = '\0';
+ return(memcpy(ret, s, n));
+}
+#endif
diff -r -uN rzip-2.1/strutils.h rzip-2.1-patched/strutils.h
--- rzip-2.1/strutils.h 1970-01-01 01:00:00.000000000 +0100
+++ rzip-2.1-patched/strutils.h 2008-07-27 21:58:08.204752617 +0200
@@ -0,0 +1,31 @@
+/*
+ Copyright (C) 2005 Gentoo Foundation
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+/* string utilities that may be missing on various platforms */
+
+#ifndef _HEADER_STRUTIL
+#define _HEADER_STRUTIL 1
+
+#include <stdlib.h>
+#include <string.h>
+#include "config.h"
+
+# ifndef HAVE_STRNDUP
+char* strndup(const char* s, size_t n);
+# endif
+
+#endif
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2010-01-17 19:30 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-01-17 19:30 [gentoo-commits] gentoo-x86 commit in app-arch/rzip/files: rzip-2.1-handle-broken-archive.patch rzip-2.1-darwin.patch Thilo Bangert (bangert)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox