SHA256
3
0
forked from pool/tar

Accepting request 484838 from home:svalx

- Use update-alternatives according to current documentation

- Disable tar-1.26-remove_O_NONBLOCK.patch - this issue has been
  fixed in tar-1.27
- backup-scripts subpackage change to noarch
- Change rpm group of tar-tests to Development/Tools/Other 
- Enable rmt building, change package description
- Switch rmt to alternatives system
- Separate rmt subpackage - it can be used by different archiving
  tools as a dedicated program
- Change rmt path to /usr/bin folder - it can be used by non privileged
  users for backup purposes. Security is controlled by access rights to
  the targets and remote shell.
- Separate doc subpackage
- Remove conditions for old SUSE builds and lang subpackage
- Rename restore script to restore.sh for avoiding file conflicts
  with dump/restore

OBS-URL: https://build.opensuse.org/request/show/484838
OBS-URL: https://build.opensuse.org/package/show/Base:System/tar?expand=0&rev=79
This commit is contained in:
Kristyna Streitova 2017-04-20 12:46:48 +00:00 committed by Git OBS Bridge
parent 1442c057a3
commit bb30562f7a
2 changed files with 142 additions and 59 deletions

View File

@ -1,3 +1,27 @@
-------------------------------------------------------------------
Mon Apr 3 11:08:23 UTC 2017 - svalx@svalx.net
- Use update-alternatives according to current documentation
-------------------------------------------------------------------
Thu Mar 27 21:04:03 UTC 2017 - svalx@svalx.net
- Disable tar-1.26-remove_O_NONBLOCK.patch - this issue has been
fixed in tar-1.27
- backup-scripts subpackage change to noarch
- Change rpm group of tar-tests to Development/Tools/Other
- Enable rmt building, change package description
- Switch rmt to alternatives system
- Separate rmt subpackage - it can be used by different archiving
tools as a dedicated program
- Change rmt path to /usr/bin folder - it can be used by non privileged
users for backup purposes. Security is controlled by access rights to
the targets and remote shell.
- Separate doc subpackage
- Remove conditions for old SUSE builds and lang subpackage
- Rename restore script to restore.sh for avoiding file conflicts
with dump/restore
------------------------------------------------------------------- -------------------------------------------------------------------
Thu Mar 23 13:52:13 UTC 2017 - kstreitova@suse.com Thu Mar 23 13:52:13 UTC 2017 - kstreitova@suse.com

177
tar.spec
View File

@ -16,63 +16,64 @@
# #
# minimum suse version where the full featured package builds # For correct subpackages docs installation into tar doc directory
%define min_suse_ver 1010 %global _docdir_fmt %{name}
Name: tar Name: tar
Version: 1.29 Version: 1.29
Release: 0 Release: 0
Summary: GNU implementation of tar ((t)ape (ar)chiver) Summary: GNU implementation of ((t)ape (ar)chiver)
License: GPL-3.0+ License: GPL-3.0+
Group: Productivity/Archiving/Backup Group: Productivity/Archiving/Backup
Url: http://www.gnu.org/software/tar/ Url: http://www.gnu.org/software/tar/
Source0: http://ftp.gnu.org/gnu/tar/%{name}-%{version}.tar.bz2 Source0: http://ftp.gnu.org/gnu/tar/%{name}-%{version}.tar.bz2
Source1: http://ftp.gnu.org/gnu/tar/%{name}-%{version}.tar.bz2.sig Source1: http://ftp.gnu.org/gnu/tar/%{name}-%{version}.tar.bz2.sig
# http://wwwkeys.pgp.net:11371/pks/lookup?op=get&search=0x3602B07F55D0C732 # http://wwwkeys.pgp.net:11371/pks/lookup?op=get&search=0x3602B07F55D0C732
Source2: tar.keyring Source2: %{name}.keyring
# Patch3: %{name}-wildcards.patch
Patch3: tar-wildcards.patch Patch6: %{name}-backup-spec-fix-paths.patch
Patch6: tar-backup-spec-fix-paths.patch # This issue has been fixed in tar-1.27
Patch7: tar-1.26-remove_O_NONBLOCK.patch # http://git.savannah.gnu.org/cgit/tar.git/commit/?id=03858cf583ce299b836d8a848967ce290a6bf303
Patch7: %{name}-1.26-remove_O_NONBLOCK.patch
Patch10: paxutils-rtapelib_mtget.patch Patch10: paxutils-rtapelib_mtget.patch
# don't print warning about zero blocks # don't print warning about zero blocks
# the patch is used in Fedora and Debian # the patch is used in Fedora and Debian
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=235820 # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=235820
Patch11: tar-ignore_lone_zero_blocks.patch Patch11: %{name}-ignore_lone_zero_blocks.patch
# The next patch is disabled because it causes a regression: # The next patch is disabled because it causes a regression:
#https://bugzilla.opensuse.org/show_bug.cgi?id=918487 #https://bugzilla.opensuse.org/show_bug.cgi?id=918487
Patch12: tar-recursive--files-from.patch Patch12: %{name}-recursive--files-from.patch
Patch20: add_readme-tests.patch Patch20: add_readme-tests.patch
# PATCH-FEATURE-UPSTREAM add-return-values-to-backup-scripts.patch - # PATCH-FEATURE-UPSTREAM add-return-values-to-backup-scripts.patch -
# add return values to the backup scripts for better results monitoring. # add return values to the backup scripts for better results monitoring.
# https://savannah.gnu.org/patch/?8953 # https://savannah.gnu.org/patch/?8953
Patch21: add-return-values-to-backup-scripts.patch Patch21: add-return-values-to-backup-scripts.patch
# PATCH-FIX-UPSTREAM bnc#1007188 CVE-2016-6321 kstreitova@suse.com -- fix POINTYFEATHER vulnerability # PATCH-FIX-UPSTREAM bnc#1007188 CVE-2016-6321 kstreitova@suse.com -- fix POINTYFEATHER vulnerability
Patch22: tar-1.29-extract_pathname_bypass.patch Patch22: %{name}-1.29-extract_pathname_bypass.patch
Requires(pre): info
Provides: base:/bin/tar
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if 0%{?suse_version} >= %{min_suse_ver}
BuildRequires: automake BuildRequires: automake
BuildRequires: help2man
BuildRequires: libacl-devel BuildRequires: libacl-devel
BuildRequires: libattr-devel BuildRequires: libattr-devel
BuildRequires: libselinux-devel BuildRequires: libselinux-devel
Recommends: tar-lang = %{version} Requires(pre): info
Recommends: %{name}-lang = %{version}
Recommends: %{name}-rmt = %{version}
Recommends: mt
Recommends: xz Recommends: xz
%endif Provides: base:/bin/tar
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description %description
This package normally also includes the program "rmt", which provides GNU Tar is an archiver program. It is used to create and manipulate files
remote tape drive control. Since there are compatible versions of 'rmt' that are actually collections of many other files; the program provides
in either the 'star' package or the 'dump' package, we didn't put 'rmt' users with an organized and systematic method of controlling a large amount
into this package. If you are planning to use the remote tape features of data. Despite its name, that is an acronym of "tape archiver", GNU Tar
provided by tar you have to also install the 'dump' or the 'star' is able to direct its output to any available devices, files or other programs,
package. it may as well access remote devices or files.
%package backup-scripts %package backup-scripts
Summary: Backup scripts Summary: Backup scripts
Group: Productivity/Archiving/Backup Group: Productivity/Archiving/Backup
Requires: %{name} = %{version} Requires: %{name} = %{version}
BuildArch: noarch
%description backup-scripts %description backup-scripts
Shell scripts for system backup/restore Shell scripts for system backup/restore
@ -85,13 +86,40 @@ Requires: %{name} = %{version}
%description tests %description tests
Upstream testsuite for the package Upstream testsuite for the package
%{?lang_package} %package rmt
Summary: Remote tape drive control server by GNU
Group: Productivity/Archiving/Backup
Requires(post): update-alternatives
Requires(postun): update-alternatives
Provides: rmt
%description rmt
Provides remote access to files and devices for tar, cpio
and similar backup utilities
%package doc
Summary: Documentation files for GNU tar
Group: Documentation/Man
Requires: %{name} = %{version}
Requires(post): %{install_info_prereq}
Requires(preun): %{install_info_prereq}
BuildArch: noarch
%description doc
GNU Tar is an archiver program. It is used to create and manipulate files
that are actually collections of many other files; the program provides
users with an organized and systematic method of controlling a large amount
of data. Despite its name, that is an acronym of "tape archiver", GNU Tar
is able to direct its output to any available devices, files or other programs,
it may as well access remote devices or files.
%lang_package
%prep %prep
%setup -q %setup -q
%patch3 -p1 %patch3 -p1
%patch6 -p1 %patch6 -p1
%patch7 -p1 #%patch7 -p1
%patch10 -p1 %patch10 -p1
%patch11 -p1 %patch11 -p1
#%patch12 -p1 #%patch12 -p1
@ -102,13 +130,15 @@ Upstream testsuite for the package
%build %build
%define my_cflags -W -Wall -Wpointer-arith -Wstrict-prototypes -Wformat-security -Wno-unused-parameter -fPIE %define my_cflags -W -Wall -Wpointer-arith -Wstrict-prototypes -Wformat-security -Wno-unused-parameter -fPIE
export CFLAGS="%{optflags} %{my_cflags}" export CFLAGS="%{optflags} %{my_cflags}"
export RSH="%{_bindir}/rsh" export RSH=%{_bindir}/ssh
export DEFAULT_ARCHIVE_FORMAT="POSIX" export DEFAULT_ARCHIVE_FORMAT="POSIX"
export DEFAULT_RMT_DIR=%{_bindir}
autoreconf -fi autoreconf -fi
%configure \ %configure \
gl_cv_func_linkat_follow="yes" \ gl_cv_func_linkat_follow="yes" \
--enable-backup-scripts \ --enable-backup-scripts \
--disable-silent-rules --disable-silent-rules \
--program-transform-name='s/^rmt$/gnurmt/'
make %{?_smp_mflags} LDFLAGS="-pie" make %{?_smp_mflags} LDFLAGS="-pie"
cd tests cd tests
make %{?_smp_mflags} genfile make %{?_smp_mflags} genfile
@ -124,62 +154,91 @@ make %{?_smp_mflags} check
%endif %endif
%install %install
%{?make_install} %{!?make_install:make install DESTDIR=%{buildroot}} %make_install DESTDIR=%{buildroot}
%if 0%{?suse_version} >= %{min_suse_ver} mkdir %{buildroot}/bin
install -d -m 755 %{buildroot}/%{_mandir}/man1 mv %{buildroot}%{_mandir}/man8/gnurmt.8 %{buildroot}%{_mandir}/man1/gnurmt.1
help2man ./src/tar --name "The GNU version of the tar archiving utility" -p tar \
| gzip -c > %{buildroot}/%{_mandir}/man1/tar.1.gz
%endif
install -d -m 755 %{buildroot}%{_sysconfdir}/backup
install -D -m 644 scripts/backup-specs %{buildroot}%{_sysconfdir}/backup/backup-specs install -D -m 644 scripts/backup-specs %{buildroot}%{_sysconfdir}/backup/backup-specs
rm -rf %{buildroot}%{_libexecdir}/rmt # For avoiding file conflicts with dump/restore
rm -rvf %{buildroot}/%{_mandir}/man8/rmt.8.gz mv %{buildroot}%{_sbindir}/restore %{buildroot}%{_sbindir}/restore.sh
rm -rvf %{buildroot}/%{_mandir}/man8
rm -f %{buildroot}%{_infodir}/dir rm -f %{buildroot}%{_infodir}/dir
install -D -m 644 -t %{buildroot}%{_docdir}/%{name} README* ABOUT-NLS AUTHORS NEWS THANKS \
ChangeLog TODO COPYING
install -d -m 755 %{buildroot}%{_localstatedir}/lib/tests install -d -m 755 %{buildroot}%{_localstatedir}/lib/tests
cp -r tests %{buildroot}%{_localstatedir}/lib/tests/tar cp -r tests %{buildroot}%{_localstatedir}/lib/tests/tar
rm %{buildroot}%{_localstatedir}/lib/tests/tar/*.{c,h,o} rm %{buildroot}%{_localstatedir}/lib/tests/tar/*.{c,h,o}
rm %{buildroot}%{_localstatedir}/lib/tests/tar/package.m4 rm %{buildroot}%{_localstatedir}/lib/tests/tar/package.m4
rm %{buildroot}%{_localstatedir}/lib/tests/tar/{atconfig,atlocal,Makefile}* rm %{buildroot}%{_localstatedir}/lib/tests/tar/{atconfig,atlocal,Makefile}*
%find_lang %{name} # Alternatives system
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
ln -sf %{_sysconfdir}/alternatives/rmt %{buildroot}%{_bindir}/rmt
ln -sf %{_sysconfdir}/alternatives/rmt.1%{ext_man} %{buildroot}%{_mandir}/man1/rmt.1%{ext_man}
#UsrMerge
mkdir -p %{buildroot}/bin mkdir -p %{buildroot}/bin
ln -s %{_bindir}/tar %{buildroot}/bin/tar ln -s %{_bindir}/%{name} %{buildroot}/bin
#EndUsrMerge
%find_lang %{name}
%post doc
%install_info --info-dir=%{_infodir} %{_infodir}/%{name}.info%{ext_info}
%post rmt
%{_sbindir}/update-alternatives --force \
--install %{_bindir}/rmt rmt %{_bindir}/gnurmt 10 \
--slave %{_mandir}/man1/rmt.1%{ext_man} rmt.1%{ext_man} %{_mandir}/man1/gnurmt.1%{ext_man}
%preun doc
%install_info_delete --info-dir=%{_infodir} %{_infodir}/%{name}.info%{ext_info}
%postun rmt
if [ ! -f %{_bindir}/gnurmt ] ; then
"%{_sbindir}/update-alternatives" --remove rmt %{_bindir}/gnurmt
fi
%files backup-scripts %files backup-scripts
%defattr(-,root, root) %defattr(-,root, root)
%{_sbindir}/backup %{_sbindir}/backup
%{_sbindir}/restore %{_sbindir}/restore.sh
%{_libexecdir}/backup.sh %{_libexecdir}/backup.sh
%{_libexecdir}/dump-remind %{_libexecdir}/dump-remind
%dir %{_sysconfdir}/backup %dir %{_sysconfdir}/backup
%config(noreplace) %{_sysconfdir}/backup/backup-specs %config(noreplace) %{_sysconfdir}/backup/backup-specs
%if 0%{?lang_package:1}
%files lang -f %{name}.lang %files lang -f %{name}.lang
%defattr(-,root,root) %defattr(-,root,root)
%files tests %files tests
%defattr(-,root, root) %defattr(-,root, root)
%{_localstatedir}/lib/tests %{_localstatedir}/lib/tests
%{_docdir}/%{name}/README-tests
%files rmt
%defattr(-, root, root)
%ghost %{_bindir}/rmt
%{_bindir}/gnurmt
%ghost %{_mandir}/man1/rmt.1%{ext_man}
%{_mandir}/man1/gnurmt.1%{ext_man}
%ghost %{_sysconfdir}/alternatives/rmt
%ghost %{_sysconfdir}/alternatives/rmt.1%{ext_man}
%files doc
%defattr(-, root, root)
%{_docdir}/%{name}/NEWS
%{_docdir}/%{name}/README
%{_docdir}/%{name}/ABOUT-NLS
%{_docdir}/%{name}/AUTHORS
%{_docdir}/%{name}/THANKS
%{_docdir}/%{name}/ChangeLog
%{_docdir}/%{name}/TODO
%{_infodir}/%{name}.info*
%files %files
%else
%files -f %{name}.lang
%endif
%defattr(-, root, root) %defattr(-, root, root)
/bin/tar #UsrMerge
%{_bindir}/tar /bin/%{name}
%doc README* ABOUT-NLS AUTHORS COPYING NEWS THANKS ChangeLog TODO #EndUsrMerge
%{_infodir}/tar.info* %{_bindir}/%{name}
%{_mandir}/man1/%{name}.1%{ext_man}
%if 0%{?suse_version} >= %{min_suse_ver} %dir %{_docdir}/%{name}
%{_mandir}/man1/tar.1.gz %{_docdir}/%{name}/COPYING
%endif
%post
%install_info --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz
%postun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz
%changelog %changelog