summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-admin')
-rw-r--r--app-admin/perl-cleaner/files/perl-cleaner-2.20-prefix.patch111
-rw-r--r--app-admin/perl-cleaner/perl-cleaner-2.20.ebuild13
2 files changed, 123 insertions, 1 deletions
diff --git a/app-admin/perl-cleaner/files/perl-cleaner-2.20-prefix.patch b/app-admin/perl-cleaner/files/perl-cleaner-2.20-prefix.patch
new file mode 100644
index 000000000000..27d5b1dd73dd
--- /dev/null
+++ b/app-admin/perl-cleaner/files/perl-cleaner-2.20-prefix.patch
@@ -0,0 +1,111 @@
+add Prefix and Darwin support
+
+--- perl-cleaner
++++ perl-cleaner
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!@GENTOO_PORTAGE_EPREFIX@/bin/bash
+ # vim: set et sw=4 sts=4 tw=80:
+ # Copyright 2005-2014 Gentoo Foundation
+ # Distributed under the terms of the GNU General Public License v2
+@@ -22,13 +22,13 @@
+ PKGS_EXCEPTIONS="dev-lang/perl sys-devel/libperl app-emulation/emul-linux-x86-baselibs"
+ PKGS_MANUAL=""
+
+-PKG_DBDIR=/var/db/pkg
++PKG_DBDIR="@GENTOO_PORTAGE_EPREFIX@/var/db/pkg"
+
+ # See bug 504116 for details
+-if [ -e /lib/gentoo/functions.sh ]; then
+- . /lib/gentoo/functions.sh
+-elif [ -e /etc/init.d/functions.sh ]; then
+- . /etc/init.d/functions.sh
++if [ -e "@GENTOO_PORTAGE_EPREFIX@/lib/gentoo/functions.sh" ]; then
++ . "@GENTOO_PORTAGE_EPREFIX@/lib/gentoo/functions.sh"
++elif [ -e "@GENTOO_PORTAGE_EPREFIX@/etc/init.d/functions.sh" ]; then
++ . "@GENTOO_PORTAGE_EPREFIX@/etc/init.d/functions.sh"
+ else
+ echo "$0: Unable to find functions.sh"
+ exit 1
+@@ -157,7 +157,7 @@
+
+ veinfo 1 "Locating ph files for removal"
+ eindent ""
+- for i in /usr/lib{,64,x32}/perl5 ; do
++ for i in "@GENTOO_PORTAGE_EPREFIX@"/usr/lib{,64,x32}/perl5 ; do
+ [[ ! -d ${i} ]] && continue
+ veinfo 4 "...in ${i}"
+ while IFS= read -r -d $'\0' file ; do
+@@ -183,13 +183,13 @@
+ veinfo 1 "Pretend. Nothing to do."
+ return
+ fi
+- pushd /usr/include > /dev/null
++ pushd "@GENTOO_PORTAGE_EPREFIX@"/usr/include > /dev/null
+ if [[ ${version} =~ ^5.(8|10) ]] ; then
+ eindent
+- veinfo 2 "...in /usr/include"
++ veinfo 2 "...in @GENTOO_PORTAGE_EPREFIX@/usr/include"
+ h2ph ${option} * 2>/dev/null
+ for dir in sys arpa netinet bits security asm gnu linux ; do
+- veinfo 2 "...in /usr/include/$dir/"
++ veinfo 2 "...in @GENTOO_PORTAGE_EPREFIX@/usr/include/$dir/"
+ h2ph ${option} -r $dir/*
+ done
+ eoutdent
+@@ -220,13 +220,16 @@
+ veinfo 1 "Locating ebuilds linked against libperl"
+ fi
+
++ local scanelf=scanelf
++ [[ -e "@GENTOO_PORTAGE_EPREFIX@"/usr/lib/libperl.dylib ]] \
++ && scanelf=scanmacho
+ if ${LIBPERL} ; then
+- if ! type -P scanelf >/dev/null 2>&1; then
+- ewarn "scanelf not found! Install app-misc/pax-utils."
++ if ! type -P ${scanelf} >/dev/null 2>&1; then
++ ewarn "${scanelf} not found! Install app-misc/pax-utils."
+ ewarn "--libperl is disbled."
+ LIBPERL=false
+ else
+- SONAME="$(scanelf -qBS "$(realpath /usr/lib/libperl.so 2>/dev/null )" | awk '{ print $1 }')"
++ SONAME="$(${scanelf} -qBS "$(realpath "@GENTOO_PORTAGE_EPREFIX@"/usr/lib/libperl.{so,dylib} 2>/dev/null )" | awk '{ print $1 }')"
+ veinfo 4 SONAME="${SONAME}"
+ fi
+ fi
+@@ -268,7 +271,7 @@
+ while read -r type file ; do
+ shopt -s extglob
+ [[ ${type} == obj ]] || [[ ${type} == sym ]] || continue
+- [[ ${file} =~ ^/usr/(share|lib(32|64|x32)?)/perl5 ]] || continue
++ [[ ${file} =~ ^"@GENTOO_PORTAGE_EPREFIX@"/usr/(share|lib(32|64|x32)?)/perl5 ]] || continue
+ file=${file% +(!([[:space:]])) +([[:digit:]])}
+ shopt -u extglob
+ if ${FORCE} || outdated_path "${file}" ; then
+@@ -302,7 +305,7 @@
+
+ if ${LIBPERL} ; then
+ # We assume the broken libs have all bin or lib in their path
+- broken_libs="$(scanelf -qBn < <(awk '/^(obj|sym) [^ ]*\/(s?bin|lib(32|64|x32)?)\// && ! /^obj [^ ]*\/usr\/lib\/debug\//{ print $2 }' ${content} ) | grep -o 'libperl\.so\.[0-9.]*' | sort -u )"
++ broken_libs="$(${scanelf} -qBn < <(awk '/^(obj|sym) [^ ]*\/(s?bin|lib(32|64|x32)?)\// && ! /^obj [^ ]*\/usr\/lib\/debug\//{ print $2 }' ${content} ) | grep -o 'libperl\.\(so\|dylib\)\.[0-9.]*' | sort -u )"
+ if [[ -n "${broken_libs}" ]] ; then
+ if ${FORCE} || [[ ${broken_libs} != ${SONAME} ]] ; then
+ PKGS_TO_REMERGE+=" ${CATPKGVER}"
+@@ -327,7 +330,7 @@
+ exit $?
+ fi
+
+- if [[ ${PMS_COMMAND[${PMS_INDEX}]} == emerge && -x /usr/bin/portageq ]] ; then
++ if [[ ${PMS_COMMAND[${PMS_INDEX}]} == emerge && -x "@GENTOO_PORTAGE_EPREFIX@"/usr/bin/portageq ]] ; then
+ # Filter out --getbinpkg, --getbinpkgonly, --usepkg and --usepkgonly options in EMERGE_DEFAULT_OPTS
+ emerge_default_opts=""
+ for option in $(portageq envvar EMERGE_DEFAULT_OPTS ) ; do
+@@ -383,7 +386,7 @@
+ veinfo 1 "or edited. This script cannot deal with them."
+ vecho 1
+
+- for i in /usr/{share,lib{,32,64,x32}}/perl5 ; do
++ for i in "@GENTOO_PORTAGE_EPREFIX@"/usr/{share,lib{,32,64,x32}}/perl5 ; do
+ [[ -d $i ]] && perlpath[${#perlpath[*]}]="$(realpath $i 2>/dev/null )"
+ done
+ [[ ${#perlpath[*]} == 0 ]] && return
diff --git a/app-admin/perl-cleaner/perl-cleaner-2.20.ebuild b/app-admin/perl-cleaner/perl-cleaner-2.20.ebuild
index 4cf5a6ef5c72..4df092fd9c27 100644
--- a/app-admin/perl-cleaner/perl-cleaner-2.20.ebuild
+++ b/app-admin/perl-cleaner/perl-cleaner-2.20.ebuild
@@ -4,6 +4,8 @@
EAPI=5
+inherit eutils prefix
+
DESCRIPTION="User land tool for cleaning up old perl installs"
HOMEPAGE="http://www.gentoo.org/proj/en/perl/"
@@ -12,7 +14,7 @@ if [[ "${PV}" == "9999" ]] ; then
EGIT_REPO_URI="http://github.com/gentoo-perl/perl-cleaner.git"
else
SRC_URI="mirror://gentoo/${P}.tar.bz2 http://dev.gentoo.org/~dilfridge/distfiles/${P}.tar.bz2"
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~ppc-aix ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
fi
LICENSE="GPL-2"
@@ -31,6 +33,15 @@ RDEPEND="app-shells/bash
)
"
+src_prepare() {
+ if use prefix ; then
+ # I don't dare to throw non Prefix users for the bus, but this
+ # patch should be safe for them
+ epatch "${FILESDIR}"/${P}-prefix.patch
+ eprefixify ${PN}
+ fi
+}
+
src_install() {
dosbin perl-cleaner
doman perl-cleaner.1