| 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 |