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 Mon May 7 08:35:39 UTC 2012 - werner@suse.de

View File

@ -17,30 +17,25 @@
Name: libarchive Name: libarchive
Version: 2.8.5 Version: 3.0.4
Release: 0 Release: 0
#
BuildRequires: libacl-devel BuildRequires: libacl-devel
BuildRequires: pkg-config BuildRequires: pkg-config
BuildRequires: zlib-devel BuildRequires: zlib-devel
#
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: libbz2-devel BuildRequires: libbz2-devel
BuildRequires: libext2fs-devel BuildRequires: libext2fs-devel
BuildRequires: libopenssl-devel BuildRequires: libopenssl-devel
BuildRequires: libxml2-devel BuildRequires: libxml2-devel
BuildRequires: xz-devel BuildRequires: xz-devel
#
Summary: Creates and reads several different streaming archive formats Summary: Creates and reads several different streaming archive formats
License: BSD-3-Clause License: BSD-3-Clause
Group: Productivity/Archiving/Compression Group: Productivity/Archiving/Compression
# Url: http://libarchive.github.com/
Url: http://code.google.com/p/libarchive/
Source0: http://libarchive.googlecode.com/files/libarchive-%{version}.tar.gz Source0: http://libarchive.googlecode.com/files/libarchive-%{version}.tar.gz
Source1: baselibs.conf Source1: baselibs.conf
Patch1: libarchive-2.5.5_handle_ENOSYS_from_lutimes.patch # PATCH-FIX-UPSTREAM libarchive-fix-checks.patch dimstar@opensuse.org -- Fix GCC 4.7 side effects. Taken from upstream.
Patch2: libarchive-test-fuzz.patch Patch0: libarchive-fix-checks.patch
Patch3: libarchive-ignore-sigpipe-in-test-suite.patch
%description %description
Libarchive is a programming library that can create and read several Libarchive is a programming library that can create and read several
@ -54,20 +49,17 @@ and 6.
This package contains the bsdtar cmdline utility. This package contains the bsdtar cmdline utility.
%package -n bsdtar %package -n bsdtar
Summary: Creates and reads several different streaming archive formats Summary: Creates and reads several different streaming archive formats
Group: Productivity/Archiving/Compression Group: Productivity/Archiving/Compression
%description -n bsdtar %description -n bsdtar
This package contains the bsdtar cmdline utility. This package contains the bsdtar cmdline utility.
%package -n libarchive2 %package -n libarchive12
#
Summary: Library to work with several different streaming archive formats Summary: Library to work with several different streaming archive formats
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
%description -n libarchive2 %description -n libarchive12
Libarchive is a programming library that can create and read several Libarchive is a programming library that can create and read several
different streaming archive formats, including most popular tar different streaming archive formats, including most popular tar
variants and several cpio formats. It can also write shar archives and 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. methods, or new ways of reading/writing archives.
%package -n libarchive-devel %package -n libarchive-devel
Requires: libacl-devel Requires: libacl-devel
Requires: libarchive2 = %{version} Requires: libarchive12 = %{version}
Requires: libbz2-devel Requires: libbz2-devel
Requires: zlib-devel Requires: zlib-devel
Summary: Development files for libarchive Summary: Development files for libarchive
@ -141,13 +132,10 @@ and 6.
This package contains the development files. This package contains the development files.
%prep %prep
%setup -q -n %{name}-%{version} %setup -q
%patch1 %patch0 -p1
%patch2 -p1
%patch3 -p1
%build %build
#autoreconf -fi
%global optflags %{optflags} -D_REENTRANT -pipe %global optflags %{optflags} -D_REENTRANT -pipe
%configure --disable-static --enable-bsdcpio %configure --disable-static --enable-bsdcpio
make %{?_smp_mflags} make %{?_smp_mflags}
@ -157,14 +145,12 @@ make check
%install %install
%makeinstall %makeinstall
find %{buildroot} -name '*.la' -type f -delete -print
rm -fv minitar/*.o
rm -fv %{buildroot}%{_libdir}/*.la
rm "%{buildroot}%{_mandir}/man5/"{tar,cpio,mtree}.5* 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 %files -n bsdtar
%defattr(-,root,root) %defattr(-,root,root)
@ -173,13 +159,14 @@ rm "%{buildroot}%{_mandir}/man5/"{tar,cpio,mtree}.5*
%{_mandir}/man1/* %{_mandir}/man1/*
%{_mandir}/man5/* %{_mandir}/man5/*
%files -n libarchive2 %files -n libarchive12
%defattr(-,root,root) %defattr(-,root,root)
%doc COPYING NEWS README
%{_libdir}/libarchive.so.* %{_libdir}/libarchive.so.*
%doc COPYING INSTALL NEWS README examples/
%files -n libarchive-devel %files -n libarchive-devel
%defattr(-,root,root) %defattr(-,root,root)
%doc examples/
%{_mandir}/man3/* %{_mandir}/man3/*
%{_libdir}/libarchive.so %{_libdir}/libarchive.so
%{_includedir}/archive* %{_includedir}/archive*