From 3fa28f63a9169f896a73f8089c9c372821a7caf0 Mon Sep 17 00:00:00 2001 From: Jonathan Callen Date: Sat, 17 Oct 2009 04:01:57 -0400 Subject: [PATCH] Make doins install symlinks --- bin/ebuild-helpers/{ => 3}/doins | 12 +++++------- bin/ebuild-helpers/{ => 3}/newins | 4 ++-- 2 files changed, 7 insertions(+), 9 deletions(-) copy bin/ebuild-helpers/{ => 3}/doins (90%) copy bin/ebuild-helpers/{ => 3}/newins (82%) diff --git a/bin/ebuild-helpers/doins b/bin/ebuild-helpers/3/doins similarity index 90% copy from bin/ebuild-helpers/doins copy to bin/ebuild-helpers/3/doins index 82f0bf3..283953c 100755 --- a/bin/ebuild-helpers/3/doins +++ b/bin/ebuild-helpers/3/doins @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 1999-2007 Gentoo Foundation +# Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ @@ -32,17 +32,15 @@ mkdir -p "$TMP"/{1,2} [[ ! -d ${D}${INSDESTTREE} ]] && dodir "${INSDESTTREE}" _doins() { - local mysrc="$1" mydir="$2" cleanup="" rval + local mysrc="$1" mydir="$2" rval if [ -L "$mysrc" ] ; then - cp "$mysrc" "$TMP/2" - mysrc="$TMP/2/${mysrc##*/}" - cleanup=${mysrc} + ln -snf "$(readlink "${mysrc}")" "${D}${INSDESTTREE}/${mydir}/${mysrc##*/}" + return $? fi install ${INSOPTIONS} "${mysrc}" "${D}${INSDESTTREE}/${mydir}" rval=$? - [[ -n ${cleanup} ]] && rm -f "${cleanup}" [ $rval -ne 0 ] && echo "!!! ${0##*/}: $mysrc does not exist" 1>&2 return $rval } @@ -56,7 +54,7 @@ _xdoins() { success=0 for x in "$@" ; do - if [ -d "$x" ] ; then + if [ -d "$x" ] && ! [ -L "$x" ]; then if [ "${DOINSRECUR}" == "n" ] ; then continue fi diff --git a/bin/ebuild-helpers/newins b/bin/ebuild-helpers/3/newins similarity index 82% copy from bin/ebuild-helpers/newins copy to bin/ebuild-helpers/3/newins index f235835..19065e7 100755 --- a/bin/ebuild-helpers/3/newins +++ b/bin/ebuild-helpers/3/newins @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 1999-2006 Gentoo Foundation +# Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ @@ -14,7 +14,7 @@ if [ ! -e "$1" ] ; then fi rm -rf "${T}/${2}" || exit $? -cp -f "${1}" "${T}/${2}" || exit $? +cp -Pf "${1}" "${T}/${2}" || exit $? doins "${T}/${2}" ret=$? rm -rf "${T}/${2}" -- 1.6.5.rc2 Note: this patch has been modified from its original form to make it easier to apply with anything other than `git apply`. To get it in a form that git-apply likes, remove the "3/" from lines 18 and 62.