diff options
author | Jeremy Huddleston <eradicator@gentoo.org> | 2006-06-25 05:45:59 +0000 |
---|---|---|
committer | Jeremy Huddleston <eradicator@gentoo.org> | 2006-06-25 05:45:59 +0000 |
commit | 172541dc0c74ef6abce3c19863246ddd8ef5e284 (patch) | |
tree | 4da8c10c65878250ce9fb34a078bd151f033fa82 /app-admin | |
parent | teach people how to quote variables (diff) | |
download | historical-172541dc0c74ef6abce3c19863246ddd8ef5e284.tar.gz historical-172541dc0c74ef6abce3c19863246ddd8ef5e284.tar.bz2 historical-172541dc0c74ef6abce3c19863246ddd8ef5e284.zip |
Fixed bug #135688 which resulted in some wrappers not getting dedleted when profiles were switched.
Package-Manager: portage-2.1.1_pre1-r1
Diffstat (limited to 'app-admin')
4 files changed, 190 insertions, 3 deletions
diff --git a/app-admin/eselect-compiler/Manifest b/app-admin/eselect-compiler/Manifest index e462cf0503d0..afd25fbc1a8c 100644 --- a/app-admin/eselect-compiler/Manifest +++ b/app-admin/eselect-compiler/Manifest @@ -13,12 +13,20 @@ AUX eselect-compiler-2.0.0_rc1-inherit.patch 645 RMD160 67805308fc7dacb16730873b MD5 41ae1c7a156d13710a458bd1a70078f3 files/eselect-compiler-2.0.0_rc1-inherit.patch 645 RMD160 67805308fc7dacb16730873b2cc72f902b0ed61f files/eselect-compiler-2.0.0_rc1-inherit.patch 645 SHA256 b22f15cf016ee3e4314a88c148c3b2fd02fc97128a94af5eab0fb015939a61fe files/eselect-compiler-2.0.0_rc1-inherit.patch 645 +AUX eselect-compiler-2.0.0_rc2-bug135688.patch 629 RMD160 be1fd106a4c0786164ad2c0b8419b75081750ced SHA1 60fa40a1877aed95135beab5f72214606790e591 SHA256 8b7d1da1523882cb89971a1148d712096ca40d3ed3402d6776372e4bc991d0b0 +MD5 5345327d24f6f34afc433ac7514f8ff7 files/eselect-compiler-2.0.0_rc2-bug135688.patch 629 +RMD160 be1fd106a4c0786164ad2c0b8419b75081750ced files/eselect-compiler-2.0.0_rc2-bug135688.patch 629 +SHA256 8b7d1da1523882cb89971a1148d712096ca40d3ed3402d6776372e4bc991d0b0 files/eselect-compiler-2.0.0_rc2-bug135688.patch 629 DIST compiler-config-2.0.0_rc1.tar.gz 117180 RMD160 dbcd8120139c75f40ae2405746ab2a5f26e810b4 SHA1 3a1a1605dd0e8b59ba5d796c4583244f46f97a03 SHA256 a911a7b0a1184c576500df8530e77823f976dce387001c581ba89ac8edfe30c2 DIST eselect-compiler-2.0.0_rc2.tar.gz 117489 RMD160 03e6a8aa2d04a2c0b931325213ce224e5dceb7fe SHA1 97084a5a00357247c6158c72047f7254a42501d6 SHA256 fbd953c79e7d74636d16b70324f4f6573a0993d257212f5f6c04fe866d458eb9 EBUILD eselect-compiler-2.0.0_rc1-r6.ebuild 5066 RMD160 c5346c23d35bc3bde6a76537bd00c31f1d565c63 SHA1 75c7329de06e51d5e5f931201feed2922edecb59 SHA256 8890b2609456b997b4b9b75df3111e40279ff20a4f831a4fc5e6f7613205c36d MD5 bf165cf2ee7eaa1bd65691d8e5f3c22c eselect-compiler-2.0.0_rc1-r6.ebuild 5066 RMD160 c5346c23d35bc3bde6a76537bd00c31f1d565c63 eselect-compiler-2.0.0_rc1-r6.ebuild 5066 SHA256 8890b2609456b997b4b9b75df3111e40279ff20a4f831a4fc5e6f7613205c36d eselect-compiler-2.0.0_rc1-r6.ebuild 5066 +EBUILD eselect-compiler-2.0.0_rc2-r1.ebuild 4932 RMD160 a083cb40256fb2b6d18debe4b53e02dd95c40cfe SHA1 46c4f19d2cb5e4bcd819d5fde3dd2f2536f6ec40 SHA256 84c2de73fbea361707d4d2a5403d6a10085f7e37b87494858989698562b04177 +MD5 a58f51c357a8db3f00c01a80e63b6eb1 eselect-compiler-2.0.0_rc2-r1.ebuild 4932 +RMD160 a083cb40256fb2b6d18debe4b53e02dd95c40cfe eselect-compiler-2.0.0_rc2-r1.ebuild 4932 +SHA256 84c2de73fbea361707d4d2a5403d6a10085f7e37b87494858989698562b04177 eselect-compiler-2.0.0_rc2-r1.ebuild 4932 EBUILD eselect-compiler-2.0.0_rc2.ebuild 4825 RMD160 9e792be05eb294c68c99cc2e4514be3ea9d5d095 SHA1 0ca7b2181b1073aeafde8337436fab5a782e8b95 SHA256 e66505a6f948bd2d35e99ee331d8eadadca02b281a70b4ebfc35a619fc3803de MD5 49db11dd442261945dad44d05714ab9c eselect-compiler-2.0.0_rc2.ebuild 4825 RMD160 9e792be05eb294c68c99cc2e4514be3ea9d5d095 eselect-compiler-2.0.0_rc2.ebuild 4825 @@ -37,10 +45,13 @@ SHA256 ba21ae92f613fd0a6f34b3fda34d1d82c6b284c045481b9686b66fd9e373c21e files/di MD5 fd67966cee9d0e3df4074312e90890f7 files/digest-eselect-compiler-2.0.0_rc2 280 RMD160 fd9726bdf30b04feab248c39a251eb2970abd6e0 files/digest-eselect-compiler-2.0.0_rc2 280 SHA256 bb2674b9c7b6583e433282c764ec02799852867226fec4708f62c60825ecaf43 files/digest-eselect-compiler-2.0.0_rc2 280 +MD5 fd67966cee9d0e3df4074312e90890f7 files/digest-eselect-compiler-2.0.0_rc2-r1 280 +RMD160 fd9726bdf30b04feab248c39a251eb2970abd6e0 files/digest-eselect-compiler-2.0.0_rc2-r1 280 +SHA256 bb2674b9c7b6583e433282c764ec02799852867226fec4708f62c60825ecaf43 files/digest-eselect-compiler-2.0.0_rc2-r1 280 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (GNU/Linux) -iD8DBQFEnFE1AiZjviIA2XgRApy3AJ43iDJQ1Xqost2hhvffv1KBNMfq6wCgktYq -fnBkRf3wrjWIZSNDfeWHKU4= -=5lIV +iD8DBQFEniMjOpjtAl+gMRURAs7qAJ9capprXGrhq14iarpPn/2egmrsagCeO+dU +LGOviP7a/JmdDRlKhYsCIz0= +=IX8M -----END PGP SIGNATURE----- diff --git a/app-admin/eselect-compiler/eselect-compiler-2.0.0_rc2-r1.ebuild b/app-admin/eselect-compiler/eselect-compiler-2.0.0_rc2-r1.ebuild new file mode 100644 index 000000000000..d5002279afc5 --- /dev/null +++ b/app-admin/eselect-compiler/eselect-compiler-2.0.0_rc2-r1.ebuild @@ -0,0 +1,160 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-admin/eselect-compiler/eselect-compiler-2.0.0_rc2-r1.ebuild,v 1.1 2006/06/25 05:45:59 eradicator Exp $ + +inherit eutils multilib toolchain-funcs + +DESCRIPTION="Utility to configure the active toolchain compiler" +HOMEPAGE="http://www.gentoo.org/" + +SRC_URI="mirror://gentoo/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" +IUSE="hardened" + +RDEPEND=">=app-admin/eselect-1.0_rc1" + +# We want to verify that compiler profiles exist for our toolchain +pkg_setup() { + delete_invalid_profiles + + local abi + for abi in $(get_all_abis) ; do + local ctarget=$(get_abi_CHOST ${abi}) + if ! grep -q "^[[:space:]]*ctarget=${ctarget}$" ${ROOT}/etc/eselect/compiler/*.conf ; then + eerror "We weren't able to find a valid eselect compiler profile for ${abi}." + eerror "Please do the following to re-emerge gcc, then retry emerging" + eerror "eselect-compiler:" + eerror "# emerge -v --oneshot sys-devel/gcc" + + die "Missing eselect-compiler profile for ${abi}" + fi + done +} + +pkg_postinst() { + # For bug #135749 + cp -f "${ROOT}"/usr/libexec/eselect/compiler/compiler-wrapper "${ROOT}"/lib/cpp + + # Activate the profiles + if [[ ! -f "${ROOT}/etc/eselect/compiler/selection.conf" ]] ; then + ewarn "This looks like the first time you are installing eselect-compiler. We are" + ewarn "activating toolchain profiles for the CTARGETs needed by your portage" + ewarn "profile. You should have profiles installed from compilers that you emerged" + ewarn "after October, 2005. If a compiler you have installed is missing an" + ewarn "eselect-compiler profile, you can either re-emerge the compiler, create the" + ewarn "profile yourself, or you can migrate profiles from gcc-config-1.x by doing:" + ewarn "# eselect compiler migrate" + ewarn + ewarn "Note that if you use the migration tool, your current profiles will be" + ewarn "replaced, so you should backup the data in /etc/eselect/compiler first." + echo + einfo "The following profiles have been activated. If an incorrect profile is" + einfo "chosen or an error is reported, please use 'eselect compiler set' to" + einfo "manually choose it" + + local abi + for abi in $(get_all_abis) ; do + local ctarget=$(get_abi_CHOST ${abi}) + local extra_options="" + + if [[ ${abi} == ${DEFAULT_ABI} ]] ; then + extra_options="-n" + fi + + local spec + if use hardened ; then + spec="hardened" + else + spec="vanilla" + fi + + local isset=0 + local tuple + for tuple in "${CHOST}" "${CTARGET}" "${ctarget}" ; do + local version + for version in "$(gcc-fullversion)" ; do + local profile + for profile in "${abi}-${spec}" "${spec}" "${abi}-default" "default" "${abi}-vanilla" "vanilla" ; do + if eselect compiler set ${tuple}-${version}/${profile} ${extra_options} &> /dev/null ; then + einfo "${abi}: ${tuple}-${version}/${profile}" + + isset=1 + break + fi + done + [[ ${isset} == 1 ]] && break + done + [[ ${isset} == 1 ]] && break + done + + if [[ ${isset} == 0 ]] ; then + eerror "${abi}: Unable to determine an appropriate profile. Please set manually." + fi + done + else + eselect compiler update + fi + + local file + local resource_profile=0 + for file in ${ROOT}/etc/env.d/05gcc* ; do + if [[ -f ${file} ]] ; then + ewarn "Removing env.d entry which was used by gcc-config:" + ewarn " ${file}" + + rm -f ${file} + + resource_profile=1 + fi + done + + if [[ ${resource_profile} == 1 ]] ; then + echo + ewarn "You should source /etc/profile in your open shells." + + fi +} + +src_unpack() { + unpack ${A} + cd ${S} + epatch ${FILESDIR}/eselect-compiler-2.0.0_rc2-bug135688.patch +} + +src_install() { + dodoc README + make DESTDIR="${D}" install || die + + doenvd ${FILESDIR}/25eselect-compiler + + # This is installed by sys-devel/gcc-config + rm ${D}/usr/bin/gcc-config +} + +# The profiles are protected by CONFIG_PROJECT until eselect-compiler is installed, so we need to clean out +# the invalid profiles when eselect-compiler is first installed +delete_invalid_profiles() { + # Some toolchain.eclass installed confs had some bugs in them. We + # could just use sed to update them, but then portage won't remove + # them automatically on unmerge. + local file + for file in $(grep "^[[:space:]]*chost=" ${ROOT}/etc/eselect/compiler/*.conf | cut -f1 -d:) ; do + rm ${file} + done + for file in $(grep "^[[:space:]]*spec=" ${ROOT}/etc/eselect/compiler/*.conf | cut -f1 -d:) ; do + rm ${file} + done + + # First we need to clean out /etc/eselect/compiler as there may + # be some profiles in there which were not unmerged with gcc. + local item + for item in $(grep "^[[:space:]]*binpath=" ${ROOT}/etc/eselect/compiler/*.conf | sed 's/:.*binpath=/:/') ; do + local file=${item%:*} + local binpath=${item#*:} + [[ -d ${binpath} ]] || rm ${file} + done +} + diff --git a/app-admin/eselect-compiler/files/digest-eselect-compiler-2.0.0_rc2-r1 b/app-admin/eselect-compiler/files/digest-eselect-compiler-2.0.0_rc2-r1 new file mode 100644 index 000000000000..dbd66016d2ae --- /dev/null +++ b/app-admin/eselect-compiler/files/digest-eselect-compiler-2.0.0_rc2-r1 @@ -0,0 +1,3 @@ +MD5 278f76e8542bfc8859759fcd475c54f2 eselect-compiler-2.0.0_rc2.tar.gz 117489 +RMD160 03e6a8aa2d04a2c0b931325213ce224e5dceb7fe eselect-compiler-2.0.0_rc2.tar.gz 117489 +SHA256 fbd953c79e7d74636d16b70324f4f6573a0993d257212f5f6c04fe866d458eb9 eselect-compiler-2.0.0_rc2.tar.gz 117489 diff --git a/app-admin/eselect-compiler/files/eselect-compiler-2.0.0_rc2-bug135688.patch b/app-admin/eselect-compiler/files/eselect-compiler-2.0.0_rc2-bug135688.patch new file mode 100644 index 000000000000..1b5c3e4542f3 --- /dev/null +++ b/app-admin/eselect-compiler/files/eselect-compiler-2.0.0_rc2-bug135688.patch @@ -0,0 +1,13 @@ +Index: compiler.eselect.in +=================================================================== +--- compiler-config-2.0.0_rc2/src/profile-manager/compiler.eselect.in (revision 271) ++++ compiler-config-2.0.0_rc2/src/profile-manager/compiler.eselect.in (working copy) +@@ -380,7 +380,7 @@ + postopts="${postopts} --native" + else + # Figure out what bins are installed for the default CTARGET in case we are or are becoming default +- set_v="COMPILER_CONFIG_SET_${COMPILER_CONFIG_DEFAULT_CTARGET}" ++ set_v="COMPILER_CONFIG_SET_${COMPILER_CONFIG_DEFAULT_CTARGET//[-.]/_}" + if [[ -n ${!set_v} ]] ; then + oldprofile=${!set_v} + |