Marcus Meissner
bf8c5bb5d4
build static lib on RHEL 7 OBS-URL: https://build.opensuse.org/request/show/332120 OBS-URL: https://build.opensuse.org/package/show/Archiving/libarchive?expand=0&rev=46
231 lines
7.4 KiB
RPMSpec
231 lines
7.4 KiB
RPMSpec
#
|
|
# spec file for package libarchive
|
|
#
|
|
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
%if 0%{?centos_version} || 0%{?rhel_version}
|
|
%if 0%{?centos_version} <= 600 || 0%{?rhel_version <= 700}
|
|
%bcond_without static_libs
|
|
%bcond_with openssl
|
|
%bcond_with ext2fs
|
|
%define skip_autoreconf 1
|
|
%endif
|
|
%else
|
|
%bcond_with static_libs
|
|
%bcond_without openssl
|
|
%bcond_without ext2fs
|
|
%endif
|
|
|
|
%define somajor 13
|
|
%define libname libarchive%{somajor}
|
|
|
|
Name: libarchive
|
|
Version: 3.1.2
|
|
Release: 0
|
|
Summary: Creates and reads several different streaming archive formats
|
|
License: BSD-2-Clause
|
|
Group: Productivity/Archiving/Compression
|
|
Url: http://www.libarchive.org/
|
|
Source0: http://www.libarchive.org/downloads/libarchive-%{version}.tar.gz
|
|
Source1: baselibs.conf
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
|
BuildRequires: libacl-devel
|
|
BuildRequires: libbz2-devel
|
|
%if %{with ext2fs}
|
|
BuildRequires: libext2fs-devel
|
|
%endif
|
|
%if %{with openssl}
|
|
BuildRequires: libopenssl-devel
|
|
%endif
|
|
BuildRequires: libtool
|
|
BuildRequires: libxml2-devel
|
|
BuildRequires: pkg-config
|
|
BuildRequires: xz-devel
|
|
BuildRequires: zlib-devel
|
|
Patch0: libarchive-openssl.patch
|
|
Patch1: libarchive-xattr.patch
|
|
# PATCH-FIX-UPSTREAM bnc#800024
|
|
Patch2: CVE-2013-0211.patch
|
|
# PATCH-FIX-UPSTREAM bnc#920870
|
|
Patch3: directory-traversal-fix.patch
|
|
|
|
%description
|
|
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
|
|
read ISO9660 CDROM images. The bsdtar program is an implementation of
|
|
tar(1) that is built on top of libarchive. It started as a test
|
|
harness, but has grown and is now the standard system tar for FreeBSD 5
|
|
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 %{libname}
|
|
Summary: Library to work with several different streaming archive formats
|
|
Group: Development/Libraries/C and C++
|
|
|
|
%description -n %{libname}
|
|
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
|
|
read ISO9660 CDROM images. The bsdtar program is an implementation of
|
|
tar(1) that is built on top of libarchive. It started as a test
|
|
harness, but has grown and is now the standard system tar for FreeBSD 5
|
|
and 6.
|
|
|
|
The libarchive library offers a number of features that make it both
|
|
very flexible and very powerful.
|
|
|
|
- Automatic format detection: libarchive can automatically determine
|
|
both the compression and the archive format, regardless of the
|
|
data source. Most tar implementations do not automatically detect
|
|
the compression format, few implementation that can correctly do
|
|
this when reading from stdin or a socket. (The tar program
|
|
included with Gunnar Ritter's heirloom collection also does full
|
|
automatic format detection.)
|
|
|
|
- Writes POSIX formats: libarchive writes POSIX-standard formats,
|
|
including "ustar," "pax interchange format," and the POSIX "cpio"
|
|
format.
|
|
|
|
- Supports pax interchange format: Pax interchange format (which,
|
|
despite the name, is really an extended tar format) eliminates
|
|
almost all limitations of historic tar formats and provides a
|
|
standard method for incorporating vendor-specific extensions.
|
|
libarchive exploits this extension mechanism to support ACLs and
|
|
file flags, for example. (Joerg Schilling's star archiver is
|
|
another open-source tar program that supports pax interchange
|
|
format.)
|
|
|
|
- Reads popular formats: libarchive can read GNU tar, ustar, pax
|
|
interchange format, cpio, and older tar variants. The internal
|
|
architecture is easily extensible. The only requirement for
|
|
support is that it be possible to read the format without seeking
|
|
in the file. (For example, a format that includes a compressed
|
|
size field before the data cannot be correctly written without
|
|
seeking.)
|
|
|
|
- High-Level API: the libarchive API makes it fairly simple to build
|
|
an archive from a list of filenames or to extract the entries
|
|
from an archive. However, the API also provides extreme
|
|
flexibility with regards to data sources. For example, there are
|
|
generic hooks that allow you to write an archive to a socket or
|
|
read data from an archive entry into a memory buffer.
|
|
|
|
- Extensible. The internal design uses generic interfaces for
|
|
compression, archive format detection and decoding, and archive data
|
|
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: %{libname} = %{version}
|
|
Requires: glibc-devel
|
|
Summary: Development files for libarchive
|
|
Group: Development/Libraries/C and C++
|
|
|
|
%description -n libarchive-devel
|
|
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
|
|
read ISO9660 CDROM images. The bsdtar program is an implementation of
|
|
tar(1) that is built on top of libarchive. It started as a test
|
|
harness, but has grown and is now the standard system tar for FreeBSD 5
|
|
and 6.
|
|
|
|
This package contains the development files.
|
|
|
|
%if %{with static_libs}
|
|
%package static-devel
|
|
Requires: %{name}-devel = %{version}
|
|
Summary: static library for libarchive
|
|
Group: Development/Libraries/C and C++
|
|
|
|
%description static-devel
|
|
static library for libarchive
|
|
%endif
|
|
|
|
%prep
|
|
%setup -q
|
|
%if %{with openssl}
|
|
%patch0
|
|
%endif
|
|
%if !0%{?skip_autoreconf}
|
|
%patch1 -p1
|
|
%endif
|
|
%patch2 -p1
|
|
%patch3 -p1
|
|
|
|
%build
|
|
%if !0%{?skip_autoreconf}
|
|
autoreconf -fiv
|
|
%endif
|
|
%global optflags %{optflags} -D_REENTRANT -pipe
|
|
%configure \
|
|
--disable-silent-rules \
|
|
%if %{without static_libs}
|
|
--disable-static \
|
|
%endif
|
|
--enable-bsdcpio
|
|
make %{?_smp_mflags}
|
|
|
|
%check
|
|
make check
|
|
|
|
%install
|
|
%makeinstall
|
|
find %{buildroot} -name '*.la' -type f -delete -print
|
|
rm "%{buildroot}%{_mandir}/man5/"{tar,cpio,mtree}.5*
|
|
sed -i -e '/Libs.private/d' %{buildroot}%{_libdir}/pkgconfig/libarchive.pc
|
|
|
|
%post -n %{libname} -p /sbin/ldconfig
|
|
|
|
%postun -n %{libname} -p /sbin/ldconfig
|
|
|
|
%files -n bsdtar
|
|
%defattr(-,root,root)
|
|
%{_bindir}/bsdtar
|
|
%{_bindir}/bsdcpio
|
|
%{_mandir}/man1/*
|
|
%{_mandir}/man5/*
|
|
|
|
%files -n %{libname}
|
|
%defattr(-,root,root)
|
|
%doc COPYING NEWS README
|
|
%{_libdir}/libarchive.so.*
|
|
|
|
%files -n libarchive-devel
|
|
%defattr(-,root,root)
|
|
%doc examples/
|
|
%{_mandir}/man3/*
|
|
%{_libdir}/libarchive.so
|
|
%{_includedir}/archive*
|
|
%{_libdir}/pkgconfig/libarchive.pc
|
|
|
|
%if %{with static_libs}
|
|
%files static-devel
|
|
%defattr(-,root,root)
|
|
%{_libdir}/%{name}.a
|
|
%endif
|
|
|
|
%changelog
|