diff --git a/baselibs.conf b/baselibs.conf index f1fb5ad..3a32b27 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -1 +1 @@ -libarchive2 +libarchive12 diff --git a/libarchive-2.5.5_handle_ENOSYS_from_lutimes.patch b/libarchive-2.5.5_handle_ENOSYS_from_lutimes.patch deleted file mode 100644 index c72c636..0000000 --- a/libarchive-2.5.5_handle_ENOSYS_from_lutimes.patch +++ /dev/null @@ -1,59 +0,0 @@ ---- - cpio/cpio.c | 10 +++++++--- - libarchive/archive_write_disk.c | 8 +++++--- - 2 files changed, 12 insertions(+), 6 deletions(-) - -Index: cpio/cpio.c -=================================================================== ---- cpio/cpio.c.orig -+++ cpio/cpio.c -@@ -38,8 +38,11 @@ __FBSDID("$FreeBSD: src/usr.bin/cpio/cpi - #ifdef HAVE_SYS_STAT_H - #include - #endif --#ifdef HAVE_SYS_TIME_H --#include -+#ifdef HAVE_SYS_UTIME_H -+#include -+#endif -+#ifdef HAVE_UTIME_H -+#include - #endif - #ifdef HAVE_ERRNO_H - #include -@@ -786,7 +789,8 @@ restore_time(struct cpio *cpio, struct a - } - - #ifdef HAVE_LUTIMES -- if (lutimes(name, times) != 0) -+ if ((lutimes(name, times) != 0) && (errno==ENOSYS) && -+ (!S_ISLNK(archive_entry_mode(entry)) && utimes(name, times) != 0)) - #else - if ((AE_IFLNK != archive_entry_filetype(entry)) - && utimes(name, times) != 0) -Index: libarchive/archive_write_disk.c -=================================================================== ---- libarchive/archive_write_disk.c.orig -+++ libarchive/archive_write_disk.c -@@ -1265,7 +1265,9 @@ _archive_write_close(struct archive *_a) - times[1].tv_sec = p->mtime; - times[1].tv_usec = p->mtime_nanos / 1000; - #ifdef HAVE_LUTIMES -- lutimes(p->name, times); -+ if ((lutimes(p->name, times) != 0) && (errno==ENOSYS) && (!S_ISLNK(p->mode))) { -+ utimes(p->name, times); -+ } - #else - utimes(p->name, times); - #endif -@@ -1886,8 +1888,8 @@ set_time(int fd, int mode, const char *n - (void)fd; /* UNUSED */ - #endif - #ifdef HAVE_LUTIMES -- (void)mode; /* UNUSED */ -- return (lutimes(name, times)); -+ return ((lutimes(name, times) != 0) && (errno==ENOSYS) && -+ (!S_ISLNK(mode)) && (utimes(name,mode) != 0)); - #else - if (S_ISLNK(mode)) - return (0); diff --git a/libarchive-2.8.5.tar.gz b/libarchive-2.8.5.tar.gz deleted file mode 100644 index f26bb6f..0000000 --- a/libarchive-2.8.5.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:13993e0ffbd121ccda46ea226b1f8eac218de0fa8da7d8b1f998093d5c32a72d -size 1410485 diff --git a/libarchive-3.0.4.tar.gz b/libarchive-3.0.4.tar.gz new file mode 100644 index 0000000..0da4f80 --- /dev/null +++ b/libarchive-3.0.4.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76e8d7c7b100ec4071e48c1b7d3f3ea1d22b39db3e45b7189f75b5ff4df90fac +size 3632806 diff --git a/libarchive-fix-checks.patch b/libarchive-fix-checks.patch new file mode 100644 index 0000000..d2779f6 --- /dev/null +++ b/libarchive-fix-checks.patch @@ -0,0 +1,58 @@ +From da8ac32da9e5ee4a27674de4442e24c26cb2aa6a Mon Sep 17 00:00:00 2001 +From: Dan McGee +Date: Tue, 27 Mar 2012 17:22:40 -0500 +Subject: [PATCH] Fixes for GCC 4.7.0 + +Fixes the following compile error exposed with GCC 4.7.0: + + libarchive/archive_string.c: In function 'cesu8_to_unicode': + libarchive/archive_string.c:2450:11: error: 'wc' may be used uninitialized in this function [-Werror=uninitialized] + cc1: all warnings being treated as errors + +As well as a test failure that depends on signed integer wraparound, +which is a very bad thing to do in C [1]. Mark the intermediate result +as volatile to prevent the compiler optimizing away the arithmetic and +the logical test. + +[1] http://www.gnu.org/software/autoconf/manual/autoconf-2.67/html_node/Signed-Overflow-Examples.html +--- + libarchive/archive_string.c | 3 ++- + libarchive/test/test_read_format_mtree.c | 3 ++- + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/libarchive/archive_string.c b/libarchive/archive_string.c +index 2728a37..2b56a48 100644 +--- a/libarchive/archive_string.c ++++ b/libarchive/archive_string.c +@@ -2447,11 +2447,12 @@ struct archive_string_conv * + static int + cesu8_to_unicode(uint32_t *pwc, const char *s, size_t n) + { +- uint32_t wc, wc2; ++ uint32_t wc = 0; + int cnt; + + cnt = _utf8_to_unicode(&wc, s, n); + if (cnt == 3 && IS_HIGH_SURROGATE_LA(wc)) { ++ uint32_t wc2 = 0; + if (n - 3 < 3) { + /* Invalid byte sequence. */ + goto invalid_sequence; +diff --git a/libarchive/test/test_read_format_mtree.c b/libarchive/test/test_read_format_mtree.c +index 0d86bd4..a5d7feb 100644 +--- a/libarchive/test/test_read_format_mtree.c ++++ b/libarchive/test/test_read_format_mtree.c +@@ -37,7 +37,8 @@ + * without relying on overflow. This assumes that long long + * is at least 64 bits. */ + static const long long max_int64 = ((((long long)1) << 62) - 1) + (((long long)1) << 62); +- time_t min_time, t; ++ time_t min_time; ++ volatile time_t t; + + extract_reference_file(reffile); + +-- +1.7.10 + + diff --git a/libarchive-ignore-sigpipe-in-test-suite.patch b/libarchive-ignore-sigpipe-in-test-suite.patch deleted file mode 100644 index 27a6642..0000000 --- a/libarchive-ignore-sigpipe-in-test-suite.patch +++ /dev/null @@ -1,34 +0,0 @@ -diff -ur libarchive-2.8.5-orig/libarchive/test/main.c libarchive-2.8.5/libarchive/test/main.c ---- libarchive-2.8.5-orig/libarchive/test/main.c 2010-06-29 12:06:59.000000000 +1200 -+++ libarchive-2.8.5/libarchive/test/main.c 2011-11-04 20:36:13.000000000 +1300 -@@ -28,6 +28,7 @@ - #include - #include - #include -+#include - - /* - * This same file is used pretty much verbatim for all test harnesses. -@@ -1873,6 +1874,7 @@ - const char *tmp, *option_arg, *p; - char tmpdir[256]; - char tmpdir_timestamp[256]; -+ struct sigaction sa; - - (void)argc; /* UNUSED */ - -@@ -2002,6 +2004,14 @@ - #endif - - /* -+ * Ignore SIGPIPE signals -+ */ -+ sa.sa_handler = SIG_IGN; -+ sigemptyset(&sa.sa_mask); -+ sa.sa_flags = 0; -+ sigaction(SIGPIPE, &sa, NULL); -+ -+ /* - * Create a temp directory for the following tests. - * Include the time the tests started as part of the name, - * to make it easier to track the results of multiple tests. diff --git a/libarchive-test-fuzz.patch b/libarchive-test-fuzz.patch deleted file mode 100644 index ba1e77e..0000000 --- a/libarchive-test-fuzz.patch +++ /dev/null @@ -1,17 +0,0 @@ -Index: libarchive-2.8.5/libarchive/archive_read_support_format_iso9660.c -=================================================================== ---- libarchive-2.8.5.orig/libarchive/archive_read_support_format_iso9660.c -+++ libarchive-2.8.5/libarchive/archive_read_support_format_iso9660.c -@@ -2161,6 +2161,12 @@ read_CE(struct archive_read *a, struct i - } - do { - file = heap->reqs[0].file; -+ if (file->ce_offset + file->ce_size > step) { -+ archive_set_error(&a->archive, -+ ARCHIVE_ERRNO_FILE_FORMAT, -+ "Malformed CE information"); -+ return (ARCHIVE_FATAL); -+ } - p = b + file->ce_offset; - end = p + file->ce_size; - next_CE(heap); diff --git a/libarchive.changes b/libarchive.changes index 89a0b86..0bab148 100644 --- a/libarchive.changes +++ b/libarchive.changes @@ -1,3 +1,30 @@ +------------------------------------------------------------------- +Tue Aug 7 18:47:14 UTC 2012 - dimstar@opensuse.org + +- Update to version 3.0.4: + + libarchive development moved to http://libarchive.github.com/ +- Changes from version 3.0.2: + + Various fixes merged from FreeBSD + + Symlink support in Zip reader and writer + + Robustness fixes to 7Zip reader +- Changes from version 3.0.1b: + + 7Zip reader + + Small fixes to ISO and Zip to improve robustness with corrupted + input + + Improve streaming Zip reader's support for uncompressed entries + + New seeking Zip reader supports SFX Zip archives + + Build fixes on Windows +- For more changes since 2.8.5, please see NEWS file +- Update URL Tag to represent new home of the project. +- Rename libarchive2 to libarchive12, following upstreams soname + bumps. +- Add libarchive-fix-checks.patch: Fix gcc 4.7 side effects. +- Drop libarchive-test-fuzz.patch: fixed upstream. +- Drop libarchive-ignore-sigpipe-in-test-suite.patch: fixed + upstream. +- Drop libarchive-2.5.5_handle_ENOSYS_from_lutimes.patch: upstream + rejected the patch. Seems to be too theoretical problem. + ------------------------------------------------------------------- Mon May 7 08:35:39 UTC 2012 - werner@suse.de diff --git a/libarchive.spec b/libarchive.spec index 695c12b..f011c1c 100644 --- a/libarchive.spec +++ b/libarchive.spec @@ -17,30 +17,25 @@ Name: libarchive -Version: 2.8.5 +Version: 3.0.4 Release: 0 -# BuildRequires: libacl-devel BuildRequires: pkg-config BuildRequires: zlib-devel -# BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: libbz2-devel BuildRequires: libext2fs-devel BuildRequires: libopenssl-devel BuildRequires: libxml2-devel BuildRequires: xz-devel -# Summary: Creates and reads several different streaming archive formats License: BSD-3-Clause Group: Productivity/Archiving/Compression -# -Url: http://code.google.com/p/libarchive/ +Url: http://libarchive.github.com/ Source0: http://libarchive.googlecode.com/files/libarchive-%{version}.tar.gz Source1: baselibs.conf -Patch1: libarchive-2.5.5_handle_ENOSYS_from_lutimes.patch -Patch2: libarchive-test-fuzz.patch -Patch3: libarchive-ignore-sigpipe-in-test-suite.patch +# PATCH-FIX-UPSTREAM libarchive-fix-checks.patch dimstar@opensuse.org -- Fix GCC 4.7 side effects. Taken from upstream. +Patch0: libarchive-fix-checks.patch %description Libarchive is a programming library that can create and read several @@ -54,20 +49,17 @@ and 6. This package contains the bsdtar cmdline utility. %package -n bsdtar - Summary: Creates and reads several different streaming archive formats Group: Productivity/Archiving/Compression %description -n bsdtar This package contains the bsdtar cmdline utility. -%package -n libarchive2 - -# +%package -n libarchive12 Summary: Library to work with several different streaming archive formats Group: Development/Libraries/C and C++ -%description -n libarchive2 +%description -n libarchive12 Libarchive is a programming library that can create and read several different streaming archive formats, including most popular tar variants and several cpio formats. It can also write shar archives and @@ -121,9 +113,8 @@ I/O. It should be very easy to add new formats, new compression methods, or new ways of reading/writing archives. %package -n libarchive-devel - Requires: libacl-devel -Requires: libarchive2 = %{version} +Requires: libarchive12 = %{version} Requires: libbz2-devel Requires: zlib-devel Summary: Development files for libarchive @@ -141,13 +132,10 @@ and 6. This package contains the development files. %prep -%setup -q -n %{name}-%{version} -%patch1 -%patch2 -p1 -%patch3 -p1 +%setup -q +%patch0 -p1 %build -#autoreconf -fi %global optflags %{optflags} -D_REENTRANT -pipe %configure --disable-static --enable-bsdcpio make %{?_smp_mflags} @@ -157,14 +145,12 @@ make check %install %makeinstall - -rm -fv minitar/*.o -rm -fv %{buildroot}%{_libdir}/*.la +find %{buildroot} -name '*.la' -type f -delete -print rm "%{buildroot}%{_mandir}/man5/"{tar,cpio,mtree}.5* -%post -n libarchive2 -p /sbin/ldconfig +%post -n libarchive12 -p /sbin/ldconfig -%postun -n libarchive2 -p /sbin/ldconfig +%postun -n libarchive12 -p /sbin/ldconfig %files -n bsdtar %defattr(-,root,root) @@ -173,13 +159,14 @@ rm "%{buildroot}%{_mandir}/man5/"{tar,cpio,mtree}.5* %{_mandir}/man1/* %{_mandir}/man5/* -%files -n libarchive2 +%files -n libarchive12 %defattr(-,root,root) +%doc COPYING NEWS README %{_libdir}/libarchive.so.* -%doc COPYING INSTALL NEWS README examples/ %files -n libarchive-devel %defattr(-,root,root) +%doc examples/ %{_mandir}/man3/* %{_libdir}/libarchive.so %{_includedir}/archive*