Accepting request 130436 from Archiving

Update to 3.0.4... dependency for upcoming file-roller in Factory (forwarded request 130425 from dimstar)

OBS-URL: https://build.opensuse.org/request/show/130436
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libarchive?expand=0&rev=6
This commit is contained in:
Stephan Kulow 2012-08-09 14:50:26 +00:00 committed by Git OBS Bridge
commit f91f800c3c
9 changed files with 104 additions and 142 deletions

View File

@ -1 +1 @@
libarchive2
libarchive12

View File

@ -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 <sys/stat.h>
#endif
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
+#ifdef HAVE_SYS_UTIME_H
+#include <sys/utime.h>
+#endif
+#ifdef HAVE_UTIME_H
+#include <utime.h>
#endif
#ifdef HAVE_ERRNO_H
#include <errno.h>
@@ -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);

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:13993e0ffbd121ccda46ea226b1f8eac218de0fa8da7d8b1f998093d5c32a72d
size 1410485

3
libarchive-3.0.4.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:76e8d7c7b100ec4071e48c1b7d3f3ea1d22b39db3e45b7189f75b5ff4df90fac
size 3632806

View File

@ -0,0 +1,58 @@
From da8ac32da9e5ee4a27674de4442e24c26cb2aa6a Mon Sep 17 00:00:00 2001
From: Dan McGee <dan@archlinux.org>
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

View File

@ -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 <locale.h>
#include <stdarg.h>
#include <time.h>
+#include <signal.h>
/*
* 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.

View File

@ -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);

View File

@ -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

View File

@ -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*