Bump to libarchive 3.4.2 97/285797/2 devel master submit/trunk/20230105.173030
authorbiao716.wang <biao716.wang@samsung.com>
Tue, 20 Dec 2022 09:10:46 +0000 (18:10 +0900)
committerbiao716.wang <biao716.wang@samsung.com>
Fri, 23 Dec 2022 13:18:59 +0000 (22:18 +0900)
Change-Id: Iaccda93950174ff10e35f41a29f6348f277cdf12
Signed-off-by: biao716.wang <biao716.wang@samsung.com>
packaging/baselibs.conf [new file with mode: 0644]
packaging/fix-soversion.patch [new file with mode: 0644]
packaging/lib-suffix.patch [new file with mode: 0644]
packaging/libarchive.spec [new file with mode: 0644]

diff --git a/packaging/baselibs.conf b/packaging/baselibs.conf
new file mode 100644 (file)
index 0000000..146b40f
--- /dev/null
@@ -0,0 +1 @@
+libarchive13
diff --git a/packaging/fix-soversion.patch b/packaging/fix-soversion.patch
new file mode 100644 (file)
index 0000000..d72f20c
--- /dev/null
@@ -0,0 +1,13 @@
+Index: libarchive-3.4.0/CMakeLists.txt
+===================================================================
+--- libarchive-3.4.0.orig/CMakeLists.txt
++++ libarchive-3.4.0/CMakeLists.txt
+@@ -71,7 +71,7 @@ SET(LIBARCHIVE_VERSION_STRING  "${VERSIO
+ # libarchive 2.9 == interface version 11 = 2 + 9
+ # libarchive 3.0 == interface version 12
+ # libarchive 3.1 == interface version 13
+-math(EXPR INTERFACE_VERSION  "13 + ${_minor}")
++set(INTERFACE_VERSION  "13")
+ # Set SOVERSION == Interface version
+ # ?? Should there be more here ??
diff --git a/packaging/lib-suffix.patch b/packaging/lib-suffix.patch
new file mode 100644 (file)
index 0000000..b1d3028
--- /dev/null
@@ -0,0 +1,26 @@
+Index: libarchive-3.4.0/build/cmake/CreatePkgConfigFile.cmake
+===================================================================
+--- libarchive-3.4.0.orig/build/cmake/CreatePkgConfigFile.cmake
++++ libarchive-3.4.0/build/cmake/CreatePkgConfigFile.cmake
+@@ -29,5 +29,5 @@ CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DI
+ # And install it, of course ;).
+ IF(ENABLE_INSTALL)
+   INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/build/pkgconfig/libarchive.pc
+-          DESTINATION "lib/pkgconfig")
++          DESTINATION "lib${LIB_SUFFIX}/pkgconfig")
+ ENDIF()
+Index: libarchive-3.4.0/libarchive/CMakeLists.txt
+===================================================================
+--- libarchive-3.4.0.orig/libarchive/CMakeLists.txt
++++ libarchive-3.4.0/libarchive/CMakeLists.txt
+@@ -254,8 +254,8 @@ IF(ENABLE_INSTALL)
+   # How to install the libraries
+   INSTALL(TARGETS archive archive_static
+           RUNTIME DESTINATION bin
+-          LIBRARY DESTINATION lib
+-          ARCHIVE DESTINATION lib)
++          LIBRARY DESTINATION lib${LIB_SUFFIX}
++          ARCHIVE DESTINATION lib${LIB_SUFFIX})
+   INSTALL_MAN(${libarchive_MANS})
+   INSTALL(FILES ${include_HEADERS} DESTINATION include)
+ ENDIF()
diff --git a/packaging/libarchive.spec b/packaging/libarchive.spec
new file mode 100644 (file)
index 0000000..473227d
--- /dev/null
@@ -0,0 +1,214 @@
+#
+# spec file for package libarchive
+#
+# Copyright (c) 2020 SUSE LLC
+#
+# 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 https://bugs.opensuse.org/
+#
+
+
+%define somajor 13
+%define libname libarchive%{somajor}
+%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
+%endif
+%else
+%bcond_with    static_libs
+%bcond_without openssl
+%bcond_without ext2fs
+%endif
+
+Name:           libarchive
+Version:        3.4.2
+Release:        0
+Summary:        Utility and C library to create and read several different streaming archive formats
+License:        BSD-2-Clause
+Group:          Productivity/Archiving/Compression
+URL:            http://www.libarchive.org/
+Source0:        https://github.com/libarchive/libarchive/releases/download/v%{version}/libarchive-%{version}.tar.gz
+Source99:       baselibs.conf
+Patch1:         lib-suffix.patch
+Patch2:         fix-soversion.patch
+BuildRequires:  cmake
+BuildRequires:  libacl-devel
+BuildRequires:  libbz2-devel
+BuildRequires:  liblz4-devel
+BuildRequires:  libtool
+BuildRequires:  libxml2-devel
+BuildRequires:  libzstd-devel
+BuildRequires:  pkgconfig
+BuildRequires:  xz-devel
+BuildRequires:  zlib-devel
+%if %{with ext2fs}
+BuildRequires:  libext2fs-devel
+%endif
+%if %{with openssl}
+BuildRequires:  libopenssl-devel
+%endif
+
+%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 ISO-9660 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:        Utility to read several different streaming archive formats
+Group:          Productivity/Archiving/Compression
+Requires:       %{libname} >= %{version}
+
+%description -n bsdtar
+This package contains the bsdtar cmdline utility.
+
+%package -n %{libname}
+Summary:        Library to work with several different streaming archive formats
+Group:          System/Libraries
+
+%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 ISO-9660 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
+Summary:        Development files for libarchive
+Group:          Development/Libraries/C and C++
+Requires:       %{libname} = %{version}
+Requires:       glibc-devel
+
+%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 ISO-9660 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.
+
+%package static-devel
+Summary:        Static library for libarchive
+Group:          Development/Libraries/C and C++
+Requires:       %{name}-devel = %{version}
+
+%description static-devel
+Static library for libarchive
+
+%prep
+%setup -q
+%autopatch -p1
+
+%build
+%global optflags    %{optflags} -D_REENTRANT -pipe
+%configure \
+       --disable-silent-rules \
+%if %{without static_libs}
+       --disable-static \
+%endif
+       --enable-bsdcpio
+make %{?_smp_mflags}
+
+
+%check
+%ctest
+
+%install
+%make_install
+find %{buildroot} -name cpio.5 -exec rm -f {} ';'
+find %{buildroot} -name mtree.5 -exec rm -f {} ';'
+find %{buildroot} -name tar.5 -exec rm -f {} ';'
+find %{buildroot} -name '*.la' -type f -delete -print
+
+%post   -n %{libname} -p /sbin/ldconfig
+%postun -n %{libname} -p /sbin/ldconfig
+
+%files -n bsdtar
+%{_bindir}/bsdcat
+%{_bindir}/bsdcpio
+%{_bindir}/bsdtar
+%{_mandir}/man1/*
+%{_mandir}/man5/*
+
+%files -n %{libname}
+%doc NEWS
+%{_libdir}/libarchive.so.*
+
+%files -n libarchive-devel
+%doc examples/
+%{_mandir}/man3/*
+%{_libdir}/libarchive.so
+%{_includedir}/archive*
+%{_libdir}/pkgconfig/libarchive.pc
+
+%if %{with static_libs}
+%files static-devel
+%{_libdir}/%{name}.a
+%endif
+
+#%changelog
+