Relevant vendor changes (release 3.4.0): - check_symlinks_fsobj() without chdir() and fchdir() - bsdtar.1 manpage fixes - patches from OpenBSD to libarchive_fe/passphrase.c
217 lines
4.8 KiB
RPMSpec
217 lines
4.8 KiB
RPMSpec
Name: {{{ git_name }}}
|
|
Version: {{{ git_version lead=3 follow=4 }}}
|
|
Release: 1%{?dist}
|
|
Summary: A library for handling streaming archive formats
|
|
|
|
License: BSD
|
|
URL: http://www.libarchive.org/
|
|
Source: {{{ git_pack }}}
|
|
|
|
VCS: {{{ git_vcs }}}
|
|
|
|
BuildRequires: automake
|
|
BuildRequires: bison
|
|
BuildRequires: bzip2-devel
|
|
BuildRequires: e2fsprogs-devel
|
|
BuildRequires: gcc
|
|
BuildRequires: libacl-devel
|
|
BuildRequires: libattr-devel
|
|
BuildRequires: libtool
|
|
BuildRequires: libxml2-devel
|
|
BuildRequires: libzstd-devel
|
|
BuildRequires: lz4-devel
|
|
BuildRequires: lzo-devel
|
|
BuildRequires: openssl-devel
|
|
BuildRequires: sharutils
|
|
BuildRequires: xz-devel
|
|
BuildRequires: zlib-devel
|
|
|
|
%description
|
|
Libarchive is a programming library that can create and read several different
|
|
streaming archive formats, including most popular tar variants, several cpio
|
|
formats, and both BSD and GNU ar variants. It can also write shar archives and
|
|
read ISO9660 CDROM images and ZIP archives.
|
|
|
|
|
|
%package devel
|
|
Summary: Development files for %{name}
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
|
%description devel
|
|
The %{name}-devel package contains libraries and header files for
|
|
developing applications that use %{name}.
|
|
|
|
|
|
%package -n bsdtar
|
|
Summary: Manipulate tape archives
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
|
%description -n bsdtar
|
|
The bsdtar package contains standalone bsdtar utility split off regular
|
|
libarchive packages.
|
|
|
|
|
|
%package -n bsdcpio
|
|
Summary: Copy files to and from archives
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
|
%description -n bsdcpio
|
|
The bsdcpio package contains standalone bsdcpio utility split off regular
|
|
libarchive packages.
|
|
|
|
|
|
%package -n bsdcat
|
|
Summary: Expand files to standard output
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
|
%description -n bsdcat
|
|
The bsdcat program typically takes a filename as an argument or reads standard
|
|
input when used in a pipe. In both cases decompressed data it written to
|
|
standard output.
|
|
|
|
|
|
%prep
|
|
{{{ git_setup_macro }}}
|
|
%autosetup -p1
|
|
|
|
|
|
%build
|
|
build/autogen.sh
|
|
%configure --disable-static --without-nettle LT_SYS_LIBRARY_PATH=%_libdir
|
|
%make_build
|
|
|
|
|
|
%install
|
|
make install DESTDIR=$RPM_BUILD_ROOT
|
|
find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
|
|
|
|
# rhbz#1294252
|
|
replace ()
|
|
{
|
|
filename=$1
|
|
file=`basename "$filename"`
|
|
binary=${file%%.*}
|
|
pattern=${binary##bsd}
|
|
|
|
awk "
|
|
# replace the topic
|
|
/^.Dt ${pattern^^} 1/ {
|
|
print \".Dt ${binary^^} 1\";
|
|
next;
|
|
}
|
|
# replace the first occurence of \"$pattern\" by \"$binary\"
|
|
!stop && /^.Nm $pattern/ {
|
|
print \".Nm $binary\" ;
|
|
stop = 1 ;
|
|
next;
|
|
}
|
|
# print remaining lines
|
|
1;
|
|
" "$filename" > "$filename.new"
|
|
mv "$filename".new "$filename"
|
|
}
|
|
|
|
for manpage in bsdtar.1 bsdcpio.1
|
|
do
|
|
installed_manpage=`find "$RPM_BUILD_ROOT" -name "$manpage"`
|
|
replace "$installed_manpage"
|
|
done
|
|
|
|
|
|
%check
|
|
%if %{with check}
|
|
logfiles ()
|
|
{
|
|
find -name '*_test.log' -or -name test-suite.log
|
|
}
|
|
|
|
tempdirs ()
|
|
{
|
|
cat `logfiles` \
|
|
| awk "match(\$0, /[^[:space:]]*`date -I`[^[:space:]]*/) { print substr(\$0, RSTART, RLENGTH); }" \
|
|
| sort | uniq
|
|
}
|
|
|
|
cat_logs ()
|
|
{
|
|
for i in `logfiles`
|
|
do
|
|
echo "=== $i ==="
|
|
cat "$i"
|
|
done
|
|
}
|
|
|
|
run_testsuite ()
|
|
{
|
|
rc=0
|
|
%make_build check -j1 || {
|
|
# error happened - try to extract in koji as much info as possible
|
|
cat_logs
|
|
|
|
for i in `tempdirs`; do
|
|
if test -d "$i" ; then
|
|
find $i -printf "%p\n ~> a: %a\n ~> c: %c\n ~> t: %t\n ~> %s B\n"
|
|
cat $i/*.log
|
|
fi
|
|
done
|
|
return 1
|
|
}
|
|
cat_logs
|
|
}
|
|
|
|
# On a ppc/ppc64 is some race condition causing 'make check' fail on ppc
|
|
# when both 32 and 64 builds are done in parallel on the same machine in
|
|
# koji. Try to run once again if failed.
|
|
%ifarch ppc
|
|
run_testsuite || run_testsuite
|
|
%else
|
|
run_testsuite
|
|
%endif
|
|
%endif
|
|
|
|
|
|
%files
|
|
%{!?_licensedir:%global license %%doc}
|
|
%license COPYING
|
|
%doc NEWS README.md
|
|
%{_libdir}/libarchive.so.13*
|
|
%{_mandir}/*/cpio.*
|
|
%{_mandir}/*/mtree.*
|
|
%{_mandir}/*/tar.*
|
|
|
|
%files devel
|
|
%{_includedir}/*.h
|
|
%{_mandir}/*/archive*
|
|
%{_mandir}/*/libarchive*
|
|
%{_libdir}/libarchive.so
|
|
%{_libdir}/pkgconfig/libarchive.pc
|
|
|
|
%files -n bsdtar
|
|
%{!?_licensedir:%global license %%doc}
|
|
%license COPYING
|
|
%doc NEWS README.md
|
|
%{_bindir}/bsdtar
|
|
%{_mandir}/*/bsdtar*
|
|
|
|
%files -n bsdcpio
|
|
%{!?_licensedir:%global license %%doc}
|
|
%license COPYING
|
|
%doc NEWS README.md
|
|
%{_bindir}/bsdcpio
|
|
%{_mandir}/*/bsdcpio*
|
|
|
|
%files -n bsdcat
|
|
%{!?_licensedir:%global license %%doc}
|
|
%license COPYING
|
|
%doc NEWS README.md
|
|
%{_bindir}/bsdcat
|
|
%{_mandir}/*/bsdcat*
|
|
|
|
|
|
|
|
%changelog
|
|
* Thu Mar 28 2019 Pavel Raiskup <praiskup@redhat.com> - 3.3.3-7
|
|
- simplify libtool hacks
|
|
|
|
{{ git_changelog }}
|