Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 356492 Details for
Bug 481664
dodoc without arguments should die
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch for bin/ebuild-helpers/doins
doins (text/plain), 4.06 KB, created by
Ulrich Müller
on 2013-08-20 14:06:18 UTC
(
hide
)
Description:
Patch for bin/ebuild-helpers/doins
Filename:
MIME Type:
Creator:
Ulrich Müller
Created:
2013-08-20 14:06:18 UTC
Size:
4.06 KB
patch
obsolete
>#!/bin/bash ># Copyright 1999-2012 Gentoo Foundation ># Distributed under the terms of the GNU General Public License v2 > >source "${PORTAGE_BIN_PATH:-/usr/lib/portage/bin}"/isolated-functions.sh > >helper=${__PORTAGE_HELPER:-${0##*/}} > >if [[ ${helper} == dodoc ]] ; then > if [ $# -eq 0 ] ; then > # default_src_install may call dodoc with no arguments > # when DOC is defined but empty, so simply return > # sucessfully in this case. > eqawarn "QA Notice: dodoc called with no arguments" > exit 0 > fi > export INSOPTIONS=-m0644 > export INSDESTTREE=usr/share/doc/${PF}/${_E_DOCDESTTREE_} >fi > >if [ $# -lt 1 ] ; then > __helpers_die "${helper}: at least one argument needed" > exit 1 >fi > >if [[ "$1" == "-r" ]] ; then > DOINSRECUR=y > shift >else > DOINSRECUR=n >fi > >if ! ___eapi_has_prefix_variables; then > export ED="${D}" >fi > >if [[ ${INSDESTTREE#${ED}} != "${INSDESTTREE}" ]]; then > __vecho "-------------------------------------------------------" 1>&2 > __vecho "You should not use \${D} or \${ED} with helpers." 1>&2 > __vecho " --> ${INSDESTTREE}" 1>&2 > __vecho "-------------------------------------------------------" 1>&2 > __helpers_die "${helper} used with \${D} or \${ED}" > exit 1 >fi > >if ___eapi_doins_and_newins_preserve_symlinks; then > PRESERVE_SYMLINKS=y >else > PRESERVE_SYMLINKS=n >fi > >export TMP=$T/.doins_tmp ># Use separate directories to avoid potential name collisions. >mkdir -p "$TMP"/{1,2} > >[[ ! -d ${ED}${INSDESTTREE} ]] && dodir "${INSDESTTREE}" > >_doins() { > local mysrc="$1" mydir="$2" cleanup="" rval > > if [ -L "$mysrc" ] ; then > # Our fake $DISTDIR contains symlinks that should > # not be reproduced inside $D. In order to ensure > # that things like dodoc "$DISTDIR"/foo.pdf work > # as expected, we dereference symlinked files that > # refer to absolute paths inside > # $PORTAGE_ACTUAL_DISTDIR/. > if [ $PRESERVE_SYMLINKS = y ] && \ > ! [[ $(readlink "$mysrc") == "$PORTAGE_ACTUAL_DISTDIR"/* ]] ; then > rm -rf "${ED}$INSDESTTREE/$mydir/${mysrc##*/}" || return $? > cp -P "$mysrc" "${ED}$INSDESTTREE/$mydir/${mysrc##*/}" > return $? > else > cp "$mysrc" "$TMP/2/${mysrc##*/}" || return $? > mysrc="$TMP/2/${mysrc##*/}" > cleanup=$mysrc > fi > fi > > install ${INSOPTIONS} "${mysrc}" "${ED}${INSDESTTREE}/${mydir}" > rval=$? > [[ -n ${cleanup} ]] && rm -f "${cleanup}" > [ $rval -ne 0 ] && echo "!!! ${helper}: $mysrc does not exist" 1>&2 > return $rval >} > >_xdoins() { > local -i failed=0 > while read -r -d $'\0' x ; do > _doins "$x" "${x%/*}" > ((failed|=$?)) > done > return $failed >} > >success=0 >failed=0 > >for x in "$@" ; do > if [[ $PRESERVE_SYMLINKS = n && -d $x ]] || \ > [[ $PRESERVE_SYMLINKS = y && -d $x && ! -L $x ]] ; then > if [ "${DOINSRECUR}" == "n" ] ; then > if [[ ${helper} == dodoc ]] ; then > echo "!!! ${helper}: $x is a directory" 1>&2 > ((failed|=1)) > fi > continue > fi > > while [ "$x" != "${x%/}" ] ; do > x=${x%/} > done > if [ "$x" = "${x%/*}" ] ; then > pushd "$PWD" >/dev/null > else > pushd "${x%/*}" >/dev/null > fi > x=${x##*/} > x_orig=$x > # Follow any symlinks recursively until we've got > # a normal directory for 'find' to traverse. The > # name of the symlink will be used for the name > # of the installed directory, as discussed in > # bug #239529. > while [ -L "$x" ] ; do > pushd "$(readlink "$x")" >/dev/null > x=${PWD##*/} > pushd "${PWD%/*}" >/dev/null > done > if [[ $x != $x_orig ]] ; then > mv "$x" "$TMP/1/$x_orig" > pushd "$TMP/1" >/dev/null > fi > find "$x_orig" -type d -exec dodir "${INSDESTTREE}/{}" \; > find "$x_orig" \( -type f -or -type l \) -print0 | _xdoins > if [[ ${PIPESTATUS[1]} -eq 0 ]] ; then > # NOTE: Even if only an empty directory is installed here, it > # still counts as success, since an empty directory given as > # an argument to doins -r should not trigger failure. > ((success|=1)) > else > ((failed|=1)) > fi > if [[ $x != $x_orig ]] ; then > popd >/dev/null > mv "$TMP/1/$x_orig" "$x" > fi > while popd >/dev/null 2>&1 ; do true ; done > else > _doins "${x}" > if [[ $? -eq 0 ]] ; then > ((success|=1)) > else > ((failed|=1)) > fi > fi >done >rm -rf "$TMP" >[[ $failed -ne 0 || $success -eq 0 ]] && { __helpers_die "${helper} failed"; exit 1; } || exit 0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 481664
:
356492
|
356494