diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 13:49:04 -0700 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 17:38:18 -0700 |
commit | 56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch) | |
tree | 3f91093cdb475e565ae857f1c5a7fd339e2d781e /sys-apps/prefix-chain-utils | |
download | gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2 gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip |
proj/gentoo: Initial commit
This commit represents a new era for Gentoo:
Storing the gentoo-x86 tree in Git, as converted from CVS.
This commit is the start of the NEW history.
Any historical data is intended to be grafted onto this point.
Creation process:
1. Take final CVS checkout snapshot
2. Remove ALL ChangeLog* files
3. Transform all Manifests to thin
4. Remove empty Manifests
5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$
5.1. Do not touch files with -kb/-ko keyword flags.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests
X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project
X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration
X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn
X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts
X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration
X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging
X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'sys-apps/prefix-chain-utils')
4 files changed, 178 insertions, 0 deletions
diff --git a/sys-apps/prefix-chain-utils/files/prefix-chain-wrapper.in b/sys-apps/prefix-chain-utils/files/prefix-chain-wrapper.in new file mode 100644 index 000000000000..f3439afa076a --- /dev/null +++ b/sys-apps/prefix-chain-utils/files/prefix-chain-wrapper.in @@ -0,0 +1,78 @@ +#!/usr/bin/env bash + +link_dirs=() +opts=() +chost="@GENTOO_PORTAGE_CHOST@" +prefix="@GENTOO_PORTAGE_EPREFIX@" +absprefix=${prefix} +if [[ ${CHOST} == *"-winnt"* ]]; then + # we may get called from windows binary, like pkgdata in dev-libs/icu + # in this case, PATH elements get the "/dev/fs/C/WINDOWS/SUA" prefix + absprefix=$(winpath2unix "$(unixpath2win "${absprefix}")") +fi +mode=link +orig_args=("$@") + +for opt in "$@"; do + case "$opt" in + -L) link_dirs=("${link_dirs[@]}" "-L$1"); shift ;; + -L*) link_dirs=("${link_dirs[@]}" "${opt}") ;; + *) + case "${opt}" in + -v) + # -v done right: only use mode version if -v is the _only_ + # argument on the command line. + [[ ${#orig_args[@]} -gt 1 ]] || mode=version + ;; + --version) mode=version ;; + -c|-E|-S) mode=compile ;; + -print-search-dirs) mode=dirs ;; + esac + opts=("${opts[@]}" "${opt}") + ;; + esac +done + +save_ifs=$IFS +IFS=':' +new_path= +for p in $PATH; do + IFS=$save_ifs + [[ "${p#${absprefix}}" != "${p}" ]] && continue + if [[ -z "${new_path}" ]]; then + new_path="${p}" + else + new_path="${new_path}:${p}" + fi +done +IFS=$save_ifs + +PATH=${new_path} + +# toolchain-prefix-wrapper's ld-wrapper understands '-R' for aix and hpux too. +# parity (winnt) understands -rpath only ... +case "${chost}" in +*-winnt*) rpath_opt="-Wl,-rpath," ;; +*) rpath_opt="-Wl,-R," ;; +esac + +pfx_link=("-L${prefix}/usr/lib" "-L${prefix}/lib") +pfx_link_r=("${rpath_opt}${prefix}/lib" "${rpath_opt}${prefix}/usr/lib") +pfx_comp=("-I${prefix}/include" "-I${prefix}/usr/include") + +case "$mode" in +link) exec "$(basename $0)" "${link_dirs[@]}" "${pfx_link[@]}" "${opts[@]}" "${pfx_comp[@]}" "${pfx_link_r[@]}" ;; +compile) exec "$(basename $0)" "${link_dirs[@]}" "${opts[@]}" "${pfx_comp[@]}" ;; +version) exec "$(basename $0)" "${orig_args[@]}" ;; +dirs) + "$(basename $0)" "${orig_args[@]}" | while read line; do + if [[ "${line}" == "libraries: ="* ]]; then + echo "libraries: =${prefix}/usr/lib:${prefix}/lib:${line#"libraries: ="}" + else + echo "${line}" + fi + done + ;; +*) echo "cannot infer $0's mode from comamnd line arguments"; exit 1 ;; +esac + diff --git a/sys-apps/prefix-chain-utils/files/startprefix.in b/sys-apps/prefix-chain-utils/files/startprefix.in new file mode 100644 index 000000000000..1b84ed3c28e1 --- /dev/null +++ b/sys-apps/prefix-chain-utils/files/startprefix.in @@ -0,0 +1,38 @@ +#!/usr/bin/env bash + +. "@GENTOO_PORTAGE_EPREFIX@"/sbin/functions.sh +einfo "entering chained prefix @GENTOO_PORTAGE_EPREFIX@ ..." + +# inform profiles very early of us beeing interactive (or at least, +# we will _start_ an interactive shell, so we want the according bits.) +set -i + +. "@GENTOO_PORTAGE_EPREFIX@"/etc/profile + +# if there is no local portage, foreign portage instances need to know +# where to merge to - and thus we need to set EPREFIX. +# the other way round, if there is a local portage, EPREFIX may not +# point anywhere else than to our local EPREFIX or be unset... + +# DISABLED: this is done by etc/profile now, to be able to start a +# prefix environment by sourcing etc/profile. + +#if [[ -x "@GENTOO_PORTAGE_EPREFIX@"/usr/bin/emerge ]]; then +# if [[ -n "${EPREFIX}" ]] && [[ "${EPREFIX}" != "@GENTOO_PORTAGE_EPREFIX@" ]]; then +# ewarn "EPREFIX is set. this will render portage unusable, unsetting" +# unset EPREFIX +# fi +#else +# export EPREFIX="@GENTOO_PORTAGE_EPREFIX@" +#fi + +# a common problem: the child has no less installed, but baselayout insists +# on setting PAGER to EPREFIX/usr/bin/less. everything gets back to normal +# when unsetting PAGER in this case. +if [[ ! -x "${PAGER}" ]]; then + unset PAGER +fi + +bash --noprofile +einfo "leaving chained prefix @GENTOO_PORTAGE_EPREFIX@ ..." + diff --git a/sys-apps/prefix-chain-utils/metadata.xml b/sys-apps/prefix-chain-utils/metadata.xml new file mode 100644 index 000000000000..46dee96f4e7a --- /dev/null +++ b/sys-apps/prefix-chain-utils/metadata.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<herd>prefix</herd> +</pkgmetadata> diff --git a/sys-apps/prefix-chain-utils/prefix-chain-utils-0.2-r5.ebuild b/sys-apps/prefix-chain-utils/prefix-chain-utils-0.2-r5.ebuild new file mode 100644 index 000000000000..9591c27b5934 --- /dev/null +++ b/sys-apps/prefix-chain-utils/prefix-chain-utils-0.2-r5.ebuild @@ -0,0 +1,57 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +inherit prefix + +DESCRIPTION="Chained EPREFIX utilities and wrappers" +HOMEPAGE="http://dev.gentoo.org/~mduft" +SRC_URI="" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~ppc-aix ~ia64-hpux ~x86-interix ~x86-linux ~sparc-solaris ~x86-solaris ~x86-winnt" +IUSE="" + +DEPEND="" +RDEPEND="sys-devel/gcc-config" + +src_install() { + cp "${FILESDIR}"/*.in "${T}" + eprefixify "${T}"/*.in + + for x in "${T}"/*.in; do + mv ${x} ${x%.in} + done + + # install toolchain wrapper. + wrapperdir=/usr/${CHOST}/gcc-bin/${CHOST}-prefix-chain-wrapper/${PV} + wrappercfg=${CHOST}-prefix-chain-wrapper-${PV} + + exeinto $wrapperdir + sed -i -e "s,@GENTOO_PORTAGE_CHOST@,${CHOST},g" "${T}"/prefix-chain-wrapper + doexe "${T}"/prefix-chain-wrapper + + dosym $wrapperdir/prefix-chain-wrapper $wrapperdir/${CHOST}-gcc + dosym $wrapperdir/prefix-chain-wrapper $wrapperdir/${CHOST}-g++ + dosym $wrapperdir/prefix-chain-wrapper $wrapperdir/${CHOST}-cpp + dosym $wrapperdir/prefix-chain-wrapper $wrapperdir/${CHOST}-c++ + + dosym $wrapperdir/${CHOST}-gcc $wrapperdir/gcc + dosym $wrapperdir/${CHOST}-g++ $wrapperdir/g++ + dosym $wrapperdir/${CHOST}-cpp $wrapperdir/cpp + dosym $wrapperdir/${CHOST}-c++ $wrapperdir/c++ + + # LDPATH is required to keep gcc-config happy :( + cat > "${T}"/$wrappercfg <<EOF +GCC_PATH="${EPREFIX}/$wrapperdir" +LDPATH="${EPREFIX}/$wrapperdir" +EOF + + insinto /etc/env.d/gcc + doins "${T}"/$wrappercfg + + # install startprefix script. + exeinto / + doexe "${T}"/startprefix +} |