| # Copyright 1999-2017 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| |
| EAPI="5" |
| |
| inherit flag-o-matic eutils |
| |
| DESCRIPTION="Use this to make tarballs :)" |
| HOMEPAGE="https://www.gnu.org/software/tar/" |
| SRC_URI="mirror://gnu/tar/${P}.tar.bz2 |
| mirror://gnu-alpha/tar/${P}.tar.bz2" |
| |
| LICENSE="GPL-3+" |
| SLOT="0" |
| KEYWORDS="*" |
| IUSE="acl elibc_glibc minimal nls selinux static userland_GNU xattr" |
| |
| RDEPEND="acl? ( virtual/acl ) |
| selinux? ( sys-libs/libselinux )" |
| DEPEND="${RDEPEND} |
| nls? ( >=sys-devel/gettext-0.10.35 ) |
| xattr? ( elibc_glibc? ( sys-apps/attr ) )" |
| |
| PATCHES=( |
| "${FILESDIR}/${P}-extract-pathname-bypass-upstream.patch" #598334 |
| "${FILESDIR}/${P}-add-files.patch" |
| ) |
| |
| src_prepare() { |
| epatch "${PATCHES[@]}" |
| epatch_user |
| |
| if ! use userland_GNU ; then |
| sed -i \ |
| -e 's:/backup\.sh:/gbackup.sh:' \ |
| scripts/{backup,dump-remind,restore}.in \ |
| || die "sed non-GNU" |
| fi |
| } |
| |
| src_configure() { |
| use static && append-ldflags -static |
| FORCE_UNSAFE_CONFIGURE=1 \ |
| econf \ |
| --enable-backup-scripts \ |
| --bindir="${EPREFIX}"/bin \ |
| --libexecdir="${EPREFIX}"/usr/sbin \ |
| $(usex userland_GNU "" "--program-prefix=g") \ |
| $(use_with acl posix-acls) \ |
| $(use_enable nls) \ |
| $(use_with selinux) \ |
| $(use_with xattr xattrs) |
| } |
| |
| src_install() { |
| default |
| |
| local p=$(usex userland_GNU "" "g") |
| if [[ -z ${p} ]] ; then |
| # a nasty yet required piece of baggage |
| exeinto /etc |
| doexe "${FILESDIR}"/rmt |
| fi |
| |
| # autoconf looks for gtar before tar (in configure scripts), hence |
| # in Prefix it is important that it is there, otherwise, a gtar from |
| # the host system (FreeBSD, Solaris, Darwin) will be found instead |
| # of the Prefix provided (GNU) tar |
| if use prefix ; then |
| dosym tar /bin/gtar |
| fi |
| |
| mv "${ED}"/usr/sbin/${p}backup{,-tar} || die |
| mv "${ED}"/usr/sbin/${p}restore{,-tar} || die |
| |
| if use minimal ; then |
| find "${ED}"/etc "${ED}"/*bin/ "${ED}"/usr/*bin/ \ |
| -type f -a '!' '(' -name tar -o -name ${p}tar ')' \ |
| -delete || die |
| fi |
| } |