Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 487788
Collapse All | Expand All

(-)a/eclass/distutils-r1.eclass (-11 / +30 lines)
Lines 407-427 distutils-r1_python_test() { Link Here
407
}
407
}
408
408
409
# @FUNCTION: _distutils-r1_wrap_scripts
409
# @FUNCTION: _distutils-r1_wrap_scripts
410
# @USAGE: <path>
410
# @USAGE: <path> <bindir>
411
# @INTERNAL
411
# @INTERNAL
412
# @DESCRIPTION:
412
# @DESCRIPTION:
413
# Moves and wraps all installed scripts/executables as necessary.
413
# Moves and wraps all installed scripts/executables as necessary.
414
_distutils-r1_wrap_scripts() {
414
_distutils-r1_wrap_scripts() {
415
	debug-print-function ${FUNCNAME} "${@}"
415
	debug-print-function ${FUNCNAME} "${@}"
416
416
417
	[[ ${#} -eq 2 ]] || die "usage: ${FUNCNAME} <path> <bindir>"
417
	local path=${1}
418
	local path=${1}
418
	[[ ${path} ]] || die "${FUNCNAME}: no path given"
419
	local bindir=${2}
419
420
420
	if ! _python_want_python_exec2; then
421
	if ! _python_want_python_exec2; then
421
		local PYTHON_SCRIPTDIR=${EPREFIX}/usr/bin
422
		local PYTHON_SCRIPTDIR=${bindir}
422
	fi
423
	fi
423
424
424
	mkdir -p "${path}${EPREFIX}/usr/bin" || die
425
	local f
425
	local f
426
	while IFS= read -r -d '' f; do
426
	while IFS= read -r -d '' f; do
427
		local basename=${f##*/}
427
		local basename=${f##*/}
Lines 429-434 _distutils-r1_wrap_scripts() { Link Here
429
429
430
		[[ -d ${f} ]] && die "Unexpected directory: ${f}"
430
		[[ -d ${f} ]] && die "Unexpected directory: ${f}"
431
431
432
		mkdir -p "${path}${bindir}" || die
432
		local shebang
433
		local shebang
433
		read -r shebang < "${f}"
434
		read -r shebang < "${f}"
434
		if [[ ${shebang} == '#!'*${EPYTHON}* ]]; then
435
		if [[ ${shebang} == '#!'*${EPYTHON}* ]]; then
Lines 440-453 _distutils-r1_wrap_scripts() { Link Here
440
				mv "${f}" "${newf}" || die
441
				mv "${f}" "${newf}" || die
441
			fi
442
			fi
442
443
443
			debug-print "${FUNCNAME}: installing wrapper at /usr/bin/${basename}"
444
			debug-print "${FUNCNAME}: installing wrapper at ${bindir}/${basename}"
444
			_python_ln_rel "${path}${EPREFIX}"$(_python_get_wrapper_path) \
445
			_python_ln_rel "${path}${EPREFIX}"$(_python_get_wrapper_path) \
445
				"${path}${EPREFIX}/usr/bin/${basename}" || die
446
				"${path}${bindir}/${basename}" || die
446
		elif _python_want_python_exec2; then
447
		elif _python_want_python_exec2; then
447
			debug-print "${FUNCNAME}: non-matching shebang: ${shebang}"
448
			debug-print "${FUNCNAME}: non-matching shebang: ${shebang}"
448
449
449
			debug-print "${FUNCNAME}: moving to /usr/bin/${basename}"
450
			debug-print "${FUNCNAME}: moving to ${bindir}/${basename}"
450
			mv "${f}" "${path}${EPREFIX}/usr/bin/${basename}" || die
451
			mv "${f}" "${path}${bindir}/${basename}" || die
451
		fi
452
		fi
452
	done < <(find "${path}${PYTHON_SCRIPTDIR}" -mindepth 1 -print0)
453
	done < <(find "${path}${PYTHON_SCRIPTDIR}" -mindepth 1 -print0)
453
}
454
}
Lines 491-504 distutils-r1_python_install() { Link Here
491
		flags+=( --install-scripts="${PYTHON_SCRIPTDIR}" )
492
		flags+=( --install-scripts="${PYTHON_SCRIPTDIR}" )
492
	fi
493
	fi
493
494
494
	esetup.py install "${flags[@]}" "${@}"
495
	esetup.py install "${@}" "${flags[@]}"
495
496
496
	if [[ -d ${root}$(python_get_sitedir)/tests ]]; then
497
	if [[ -d ${root}$(python_get_sitedir)/tests ]]; then
497
		die "Package installs 'tests' package, file collisions likely."
498
		die "Package installs 'tests' package, file collisions likely."
498
	fi
499
	fi
499
500
500
	if [[ ! ${DISTUTILS_SINGLE_IMPL} ]]; then
501
	if [[ ! ${DISTUTILS_SINGLE_IMPL} ]]; then
501
		_distutils-r1_wrap_scripts "${root}"
502
		# user may override --install-scripts
503
		# note: this is poor but distutils argv parsing is dumb
504
		local scriptdir=${EPREFIX}/usr/bin
505
		set -- "${mydistutilsargs[@]}" "${@}"
506
		while [[ ${@} ]]; do
507
			local a=${1}
508
			shift
509
510
			case "${a}" in
511
				--install-scripts=*)
512
					scriptdir=${a#--install-scripts=}
513
					;;
514
				--install-scripts)
515
					scriptdir=${1}
516
					shift
517
					;;
518
			esac
519
		done
520
521
		_distutils-r1_wrap_scripts "${root}" "${scriptdir}"
502
		multibuild_merge_root "${root}" "${D}"
522
		multibuild_merge_root "${root}" "${D}"
503
	fi
523
	fi
504
}
524
}
505
- 

Return to bug 487788