diff options
author | 2012-09-25 19:47:21 +0000 | |
---|---|---|
committer | 2012-09-25 19:47:21 +0000 | |
commit | f0cc34424048c008f1a71661859cdaca041ebb97 (patch) | |
tree | 79e6c20ae63fa5977b595d58a555ece644d17123 /sys-libs/glibc | |
parent | Specify LICENSE more precisely. Bump ebuild to EAPI 4. (diff) | |
download | historical-f0cc34424048c008f1a71661859cdaca041ebb97.tar.gz historical-f0cc34424048c008f1a71661859cdaca041ebb97.tar.bz2 historical-f0cc34424048c008f1a71661859cdaca041ebb97.zip |
Add fixes for vfprintf/nargs bug #404993 and for xen/avx misbehavior #433884.
Package-Manager: portage-2.2.0_alpha131/cvs/Linux x86_64
Diffstat (limited to 'sys-libs/glibc')
-rw-r--r-- | sys-libs/glibc/ChangeLog | 7 | ||||
-rw-r--r-- | sys-libs/glibc/Manifest | 30 | ||||
-rw-r--r-- | sys-libs/glibc/glibc-2.15-r3.ebuild | 229 |
3 files changed, 251 insertions, 15 deletions
diff --git a/sys-libs/glibc/ChangeLog b/sys-libs/glibc/ChangeLog index 99af7cf7ece8..e30d142433ec 100644 --- a/sys-libs/glibc/ChangeLog +++ b/sys-libs/glibc/ChangeLog @@ -1,5 +1,10 @@ # ChangeLog for sys-libs/glibc -# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/ChangeLog,v 1.891 2012/09/25 01:03:18 vapier Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/ChangeLog,v 1.892 2012/09/25 19:47:21 vapier Exp $ + +*glibc-2.15-r3 (25 Sep 2012) + + 25 Sep 2012; Mike Frysinger <vapier@gentoo.org> +glibc-2.15-r3.ebuild: + Add fixes for vfprintf/nargs bug #404993 and for xen/avx misbehavior #433884. 25 Sep 2012; Mike Frysinger <vapier@gentoo.org> glibc-2.16.0.ebuild: Add fix from upstream for x32 malloc failures #394175. diff --git a/sys-libs/glibc/Manifest b/sys-libs/glibc/Manifest index 420db166a9e0..da75c218eb4c 100644 --- a/sys-libs/glibc/Manifest +++ b/sys-libs/glibc/Manifest @@ -43,6 +43,7 @@ DIST glibc-2.14.1.tar.bz2 15650580 SHA256 6e85a2fa3ebe6b28103361f09d27eeda37a021 DIST glibc-2.14.tar.bz2 15630590 SHA256 8404b54651d42133d9a2ab17d30d698e53c5f250b2ad8e5f3d9a208ea7c75d6c SHA512 4647b9999e56d88c669832b58555d4e53a22737d5c1963ae62e89958d9880193d1ad8f37cd4b05464cab79f7a244772eb1484d55788ec4828ff98dac30c8fa80 WHIRLPOOL 3aa97d56fa28bd45fb9a41925f41fe0d74020553ca4aa92293cbc47de2bc8a88b7dcbf368c77f0872d18ab6ba91bdf2b199a0520d946115f821dd4a4728ef2b8 DIST glibc-2.15-patches-13.tar.bz2 154658 SHA256 59c11d8b70bc406f6bc7dd87509f1c5fa05998fb0dde8e1be530064e9dd24a53 SHA512 ceec0506e10cff25ec9acce3d4e3f174d56a7cbb00993cb8edbf532f303c48e3b2d5e965e4470f537dbed23d14a29bae4ac4c834b4c11fcd27d8e66d8500e4c6 WHIRLPOOL 9dadbcd8626df9938b6b215a0618cbc605405bf56bb143f25e029c0aa00d5d6ac75877c7b2fd2a2c22291f62587cf8011c30d32baafb5ed0dd2bb539895f1c54 DIST glibc-2.15-patches-21.tar.bz2 110297 SHA256 5553c0a37c5c0a3abb303850fa9d2ad309e2f47c3f42806c2f1dd32a48affbfe SHA512 5255ef053a2c30f9cae583133094f41604385b9d6e653a0d6aab1d13d69e6c8cbf16fde712607ab0bac738944a0410ddc050dc231ad4ea7d3584271937b0b059 WHIRLPOOL d70249c6c3c3c0a4d02c3ebbf0309bd6b3da3962231c153c77be38d217e2f57e0eba88614e34f0f219f485ba8f8474586d0059cfc505e44f312396e6a753d441 +DIST glibc-2.15-patches-22.tar.bz2 118537 SHA256 7a16c17f98b3efc8ceee8330dc54bbfd9efc7196404de25779aa944f0aa411c7 SHA512 1d594fab08e57f09dc2ca4e5fd5cf48a161b719f263d7da4b02697bd4a1cfac1b22e976f6c8517fc185c8ebf0474c6d0881380fa53a62192e97bb23c789a22a9 WHIRLPOOL 910f257be93577fcfb050ab979322b4767a5a52fb9969393c821cf67338910d7a0e2e8010f91809a1a4cd5a01b84808c8632098ec4bb17a83dcdb26a217f54a2 DIST glibc-2.15.tar.xz 10280176 SHA256 321ec482abdc27b03244f7b345ee22dc431bc55daf9c000a4e7b040fbdbecb50 SHA512 fc8bc407cd9edfd79bd286d28c84e0b8224e1f57c1d318e73da098a9693257d78970178fd59f487f0321a079fcb772e8e78473fab52f091b2addb0a48fe8dcf7 WHIRLPOOL 061fc0c9915bd821dc31c2fea8e4f9a75b6c7ec0c935ea713d8c087408a8bf3c600179273438f3d9748fe40b946866b2f160e6da6fee4da51e549a30d0f0ebbc DIST glibc-2.16.0-patches-5.tar.bz2 84169 SHA256 f843b50d94ec9e5bc28a1a8bb1b647e9aac69a374998f79886f66710ed800031 SHA512 21fa17d03b473ad7e4c4bc6792b857ee28433f596c35de91f61b40f6b478bbccc4f0bb9ddb84fd49549a8a3968c68f798542b4a4bf1cb7ca9b49cfb93561722b WHIRLPOOL 051f46689835318e1e86c78a60cdf3fc304eda88fa9d76c23bf3cfacc5d45f527810e3dd22dae013320e104f0ae90a4c9b18f72e72dc8b15b1370393aca58976 DIST glibc-2.16.0.tar.xz 9990512 SHA256 1edc36aa2a6cb7127971fce8e02eecffe9c7956297ad3ef10dd4c09f486d5924 SHA512 be9acc11b77ab3c01d5766fe626a6a51bc3192ac98f9554fbb5c37120cfc6f636c0b7a80beddc180f13b32ad06051d24c1999fa2e64eeb724d55a9498f0f634e WHIRLPOOL 9bfd4358a4488080e12e08deca5fca59c1555853d1c1978b7d1bb3b480eb8fb125dccab38c55644248ae5e18b0167aec85f8a7850bab9e11f980aae6f171eac3 @@ -69,26 +70,27 @@ EBUILD glibc-2.14.1-r3.ebuild 8800 SHA256 11223e8580f0a5e2d8165052f2383301b52404 EBUILD glibc-2.14.ebuild 8697 SHA256 2ee2530c8d5d2e1740c74f1f4451ab5dd496d22189939932d7bd2cd88a8828b6 SHA512 7047e2e7468a9d6665f0c69bcfee9ae9230cc8a3b9d8a3be1c8c687ea5fc60d8300565a4422c39118821a275d54e6958b7db421eb9987def0e278e5e714b9d4f WHIRLPOOL 696e79918caaa989f19a6edbb5d19f8e463e3f6606b53deea3fe8a8a69e0c60f9dd75d0dd984d666a7e5ea7d58bbab95a5f71af1a8b128c9cc0f6a4275c9ccbb EBUILD glibc-2.15-r1.ebuild 8432 SHA256 a340303d7010a810403edacc97119110c3a0dca97e938f6b8459899aa6b79c18 SHA512 75b7bfcf488845fe3467fad65bd273e96f0e2933401ec37583066f0590c1fa15001d1046b031e227d2a72dfe3e019066f4380f66a82516b9dc1eb23ed4b626cd WHIRLPOOL 628f24edd2285f31f250047ac657acee76bf7f036db19519d290aa0bf057f31968cd534e9d7b0290f6b81d578529874a5ba537e6701fbf8c99190f4094dc92cc EBUILD glibc-2.15-r2.ebuild 7984 SHA256 4ea6615a88c108a79e3b9eb3aa68bd43290f37dfd2e79f2664422fb2200a0758 SHA512 7ce61550dce3ca86befe59fe14da1b7c58a8b7e9bb25342eaff74bf78c235d8cd1ff651f4e503b6859da0bba4681d004003aba938680a1d41241efa5d00d8b3c WHIRLPOOL d9a136a48db617e27d0209b4e0e7d3ec116f1d45b2f5cdaa0e477d08ccab16caefefff1579b54f0196446ffa45b3b1d7a9658239f1bba67529ebe5fbee3739a4 +EBUILD glibc-2.15-r3.ebuild 7989 SHA256 7458190b6bf4850842ebd6bae5e4d6223c3822cf4198db4f5700bb7563b65c06 SHA512 07adcedeb5d1c985316e3a47aaa5d3f4830c5f98e1699b0e2de73c18bcb51f3445d0814f63228cc0a57049938010cc8e030c6d5dfc3d311497deb91ba724d7a3 WHIRLPOOL 784105faf0fa110ee625ee7388dfef9b4587d22d179360ca8d388ad4bc57b7c37604ead4b77cfa12ba43be1ecbbb01a7b69935d643cf1c50b842829a16f952d4 EBUILD glibc-2.16.0.ebuild 7774 SHA256 a235772cb8ea9447ebd8980b79082654168a46ba54ef65ea7b0a025dc2200473 SHA512 18ff0218185ea867fc31a90133a3f240b5ff3d9c4767bd2ddd02e1f5a520c5e6b8012d68c37d4e24066cb66757f55411c93d2966cdbd832850c28b8ccd6af23b WHIRLPOOL a87ed7a708ed9d5f7d26694f29e57a9786ec256dfc1f5806b19ef413a3c01da13fa31f17617f03ef24775eedd446d8c953f4718157af674de463151b64ca5990 EBUILD glibc-2.9_p20081201-r3.ebuild 7065 SHA256 72f88d32a5a6046bd14c98c927f21dd736f6aea400f3be4b0ef1aed98dda4ed4 SHA512 486a0bb8f6a255b5ec343f30190b08ae43316ea5baa0b16b133092457f86419e41076ccedea0dc60b27aaefde7c166db4e1a499e73c098f4ba18287633b6f6a0 WHIRLPOOL 0aa9955a865d1d2a5a6c54f9eb50fee4e352a8a9de50fc9c33e3cf25a0c5e3c6c7ddd078f76803f4df1af87217274458cec47e3697a2bdd5dbfe450b88f1ad48 EBUILD glibc-9999.ebuild 6563 SHA256 a9b81ef5e8bfe3e1fcff66126aef1fa99eaa7b3f4b5c73eab6d1ed4758804ef8 SHA512 6f05f2f5941a4f66079f0470a91fb8fd95ae444a60991f2baf4c34afe1d648ab7be820bf8e26e36e66f42b072898c7afe5025640fb9efbb78d83c9d5f9ce95ae WHIRLPOOL 906562f43794e92329c3b793608b23ee307853e222063a321de629ccce0fbdb75f6ca8ee3d2dab60e242a7b723e2c4d6b86d2f1a3926103a3e49ad538ea34013 -MISC ChangeLog 50086 SHA256 cf9de1d78a2d7f3b3317451c1d02bd440329712971ad56fbd04fcbc260eede59 SHA512 00b8b71c1223e9f0c41ad133fba46985159867ff10c8e46db26fb874e8e26daceb18e2fedffffe347edbd8ea790b1efdc4f070515ef63e540fb4ad836f5136f1 WHIRLPOOL fb89f9fc453b0710da7a3ac4d6f2dbab8651715dbd2c724d34aa6d0c0fb003419f9b8b19e36ee9c021c0bcc6daf7dc4b5a9310f8f7d51bf3af2c490d8a2fb8e9 +MISC ChangeLog 50270 SHA256 77825a118a1aef22fb244cad8bb0149705097b92086534576daaef481ce5be17 SHA512 421064cb8722631ed72669586a29d5d7d51dcdca2b843a2086d64a0c137e07d02a1c5715981c6a3a779e60d44de4eee410781686aeacb34d8064ebf4e7a994bd WHIRLPOOL c34b6da60c2b81f599ee312deb7a0e65c45601f87195c29be9470c19c391313c818363d6fd5095821d9943322fa58d16a0c2113f5526c80a3236539e0e21a22f MISC ChangeLog-2007 108587 SHA256 bd7e842bcda0f9e8375963d71dbb1604e1e8ef89484f3e205afde631eeec2c17 SHA512 405c93cd08d102ad1a9e40975563e645e982b5baa238280c38118b46b7c828ca924c73766c254cf24eaff255b16b3f4c8133d2e174cf3e47b704ff49d754640e WHIRLPOOL 4ab79bcd243bd4281898e93987b49a2dc44fb7ef2df9073708dd12223bd01f595dab8f08f342bd5dd8d0fc955ee031b11ce70e1cdc118f7dcc5b63f90d785e9b MISC metadata.xml 406 SHA256 e6cbc11651d304035d704081701900a8b373ee3a0ed2f3f4a7e3f3a8d926a731 SHA512 3afe4ea0be7d1707571c23a7aae8490620a83d748ad672a18ce602503f37179cfc12d3bed0c18398c2cc8e74005d2c51ac320fd1722364e5df2cb3599488c164 WHIRLPOOL 1c3f5e0cc851c976259c6749f6a611d6cf415a063b2229e65ae9dea80e623a52514acbf977b3e439009379c4ea9aa491e6c423c7aac70a1c8fd573c4f40816dc -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (GNU/Linux) -iQIcBAEBCAAGBQJQYQLgAAoJELEHsLL7fEFWdP0QAKA/FfC5N5LFGhFR332y6cfG -alpJvMUx4o5ORe0jvO6JuLWhS0nHPwY990TKurJ2/YdcDyHIRb4e4f3i5fhDaTfT -EN6n8Dkb0nJmNxa5TvYPTlSZMeqG6ihxXyn4WI/13C70JbjQ41Otf2mKpp/azPIE -6gCH7L1aOizF99RLUrS38uH4qjTrdDCpJKgZa+/oATEbR/yWB+lhqCcLX9az7EVA -fEooFbWKfsYmRS2KVWdWZcryKTAJzhrKUSaBz2JcxVj9po8AFHIb61ukKTBQns0M -n679ykcdAsjCSZbY+SEfM2J8Br6vlOwdvzXZLu3a5AMuKaQ9QsnXyX4STEfZvV1o -5KvYXTeFRHCEAh7r4dtml3XlLBY5Qt0rS1qYpfCSI7yuG4SA4L/N0SCKC7JomODL -I2Z3KuLbSkrw/HqLofTGAQtW7jT+AfOmz9v/vf+sCSWQWX56J2kJVEmV8lvgUzCJ -j3I2bk3bcHX8NoonVRvhU9ggAZAZ2aWNkhRMbiPzKYQQUvcQMgw+H/jevxPDZuvG -5z81YvmxzOk2UbJ+pBqqCSowh335UnqGdxyiA1q+QhfejH7sGNJVjepEc7vccsLD -7pkKTk/ajCPNCGZcaMrRed86EZPqWomHMycAEGZfKrjW8SZ3ucJWALO5TvS3ekNZ -KkxYS+yOoOyVqivngd/2 -=Om1J +iQIcBAEBCAAGBQJQYgpRAAoJELEHsLL7fEFWIfYP/3RQjahaJibzHAMsOJrlOgfw +d8CxBnH1HTizJEvMNNaeU5K8kqhHD4a2lx8M1FRq69zGPe2+QQPcVx5EKRufsqfo +M8ONXdX45bXOEf2maokUlgsKmSU5oiV4oNMCulwkyBw3UWTg0VPH5AfltZBdtH3B +Lmsh0LppXY6EjVdtUyFPbc7ldsxBMboFqCRuyVYMPbG/7u5DBTCbsSr/xSuaoXDh +15k5RSTC+P0mf8Lwsg1bkR+1L3vyeIifxUZxR6PXUgzQ1Xge6UhcfWbK7nvzttoW ++qaWF+SMzcR+7OqwQtSXEO/n0mkRMnylBZkHOplRP3bC+rEy4VuSC5olgBUEfX6p +eCyHc87Sju5oH59QBDZsPYqsA614pRBC78xH3+uNBMG9wOiNhodUB6Ba+2MW4ES1 +UIDaRvjP/bWQ/N06lQ9QjNBZVOhTzXhcdFPK0MaZVks0we8BCkWZCODoRhzAwj8I +BH5+p+b/YTPKq6YRHvHQ1JyXbP4fOY21Pf0WuVeMp2pRw0M+aDJKCaIhdPjF98xV +kJYh7IiSlY8eCUkDeoKcUPsNdCUkB0qkXoqxeU+VKMkCVtupz9SPYM7eQ4Ml/bbx +3ZiKN2U4vG2QmiEYRCyEuZP8Sjd/kDJb7rCxEj3eFPxtmXgG/cuDyTObD60sNmNP +6fNBrKcgqgK6Gn4hhDbL +=wYaX -----END PGP SIGNATURE----- diff --git a/sys-libs/glibc/glibc-2.15-r3.ebuild b/sys-libs/glibc/glibc-2.15-r3.ebuild new file mode 100644 index 000000000000..260422ce01fa --- /dev/null +++ b/sys-libs/glibc/glibc-2.15-r3.ebuild @@ -0,0 +1,229 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.15-r3.ebuild,v 1.1 2012/09/25 19:47:21 vapier Exp $ + +inherit eutils versionator libtool toolchain-funcs flag-o-matic gnuconfig multilib unpacker multiprocessing + +DESCRIPTION="GNU libc6 (also called glibc2) C library" +HOMEPAGE="http://www.gnu.org/software/libc/libc.html" + +LICENSE="LGPL-2" +KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" +RESTRICT="strip" # strip ourself #46186 +EMULTILIB_PKG="true" + +# Configuration variables +RELEASE_VER="" +BRANCH_UPDATE="" +SNAP_VER="" +case ${PV} in +9999*) + EGIT_REPO_URIS=( "git://sourceware.org/git/glibc.git" "git://sourceware.org/git/glibc-ports.git" ) + EGIT_SOURCEDIRS=( "${S}" "${S}/ports" ) + inherit git-2 + ;; +*_p*) + RELEASE_VER=${PV%_p*} + SNAP_VER=${PV#*_p} + ;; +*) + RELEASE_VER=${PV} + ;; +esac +MANPAGE_VER="" # pregenerated manpages +INFOPAGE_VER="" # pregenerated infopages +LIBIDN_VER="" # it's integrated into the main tarball now +PATCH_VER="22" # Gentoo patchset +PORTS_VER=${RELEASE_VER} # version of glibc ports addon +NPTL_KERN_VER=${NPTL_KERN_VER:-"2.6.9"} # min kernel version nptl requires + +IUSE="debug gd hardened multilib selinux profile vanilla crosscompile_opts_headers-only" +[[ -n ${RELEASE_VER} ]] && S=${WORKDIR}/glibc-${RELEASE_VER}${SNAP_VER:+-${SNAP_VER}} + +# Here's how the cross-compile logic breaks down ... +# CTARGET - machine that will target the binaries +# CHOST - machine that will host the binaries +# CBUILD - machine that will build the binaries +# If CTARGET != CHOST, it means you want a libc for cross-compiling. +# If CHOST != CBUILD, it means you want to cross-compile the libc. +# CBUILD = CHOST = CTARGET - native build/install +# CBUILD != (CHOST = CTARGET) - cross-compile a native build +# (CBUILD = CHOST) != CTARGET - libc for cross-compiler +# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler +# For install paths: +# CHOST = CTARGET - install into / +# CHOST != CTARGET - install into /usr/CTARGET/ + +export CBUILD=${CBUILD:-${CHOST}} +export CTARGET=${CTARGET:-${CHOST}} +if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY} == cross-* ]] ; then + export CTARGET=${CATEGORY#cross-} + fi +fi + +[[ ${CTARGET} == hppa* ]] && NPTL_KERN_VER=${NPTL_KERN_VER/2.6.9/2.6.20} + +is_crosscompile() { + [[ ${CHOST} != ${CTARGET} ]] +} + +# Why SLOT 2.2 you ask yourself while sippin your tea ? +# Everyone knows 2.2 > 0, duh. +SLOT="2.2" + +# General: We need a new-enough binutils for as-needed +# arch: we need to make sure our binutils/gcc supports TLS +DEPEND=">=sys-devel/gcc-3.4.4 + arm? ( >=sys-devel/binutils-2.16.90 >=sys-devel/gcc-4.1.0 ) + x86? ( >=sys-devel/gcc-4.3 ) + amd64? ( >=sys-devel/binutils-2.19 >=sys-devel/gcc-4.3 ) + ppc? ( >=sys-devel/gcc-4.1.0 ) + ppc64? ( >=sys-devel/gcc-4.1.0 ) + >=sys-devel/binutils-2.15.94 + >=app-misc/pax-utils-0.1.10 + virtual/os-headers + !<sys-apps/sandbox-1.2.18.1-r2 + !<sys-apps/portage-2.1.2 + !<sys-devel/patch-2.6 + selinux? ( sys-libs/libselinux )" +RDEPEND="!sys-kernel/ps3-sources + selinux? ( sys-libs/libselinux ) + !sys-libs/nss-db" + +if [[ ${CATEGORY} == cross-* ]] ; then + DEPEND="${DEPEND} !crosscompile_opts_headers-only? ( ${CATEGORY}/gcc )" + [[ ${CATEGORY} == *-linux* ]] && DEPEND="${DEPEND} ${CATEGORY}/linux-headers" +else + DEPEND="${DEPEND} !vanilla? ( >=sys-libs/timezone-data-2007c )" + RDEPEND="${RDEPEND} + vanilla? ( !sys-libs/timezone-data ) + !vanilla? ( sys-libs/timezone-data )" +fi + +SRC_URI=$( + upstream_uris() { + echo mirror://gnu/glibc/$1 ftp://sources.redhat.com/pub/glibc/{releases,snapshots}/$1 mirror://gentoo/$1 + } + gentoo_uris() { + local devspace="HTTP~vapier/dist/URI HTTP~azarah/glibc/URI" + devspace=${devspace//HTTP/http://dev.gentoo.org/} + echo mirror://gentoo/$1 ${devspace//URI/$1} + } + + TARNAME=${PN} + if [[ -n ${SNAP_VER} ]] ; then + TARNAME="${PN}-${RELEASE_VER}" + [[ -n ${PORTS_VER} ]] && PORTS_VER=${SNAP_VER} + upstream_uris ${TARNAME}-${SNAP_VER}.tar.bz2 + elif [[ -z ${EGIT_REPO_URIS} ]] ; then + upstream_uris ${TARNAME}-${RELEASE_VER}.tar.xz + fi + [[ -n ${LIBIDN_VER} ]] && upstream_uris glibc-libidn-${LIBIDN_VER}.tar.bz2 + [[ -n ${PORTS_VER} ]] && upstream_uris ${TARNAME}-ports-${PORTS_VER}.tar.xz + [[ -n ${BRANCH_UPDATE} ]] && gentoo_uris glibc-${RELEASE_VER}-branch-update-${BRANCH_UPDATE}.patch.bz2 + [[ -n ${PATCH_VER} ]] && gentoo_uris glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.bz2 + [[ -n ${MANPAGE_VER} ]] && gentoo_uris glibc-manpages-${MANPAGE_VER}.tar.bz2 + [[ -n ${INFOPAGE_VER} ]] && gentoo_uris glibc-infopages-${INFOPAGE_VER}.tar.bz2 +) + +# eblit-include [--skip] <function> [version] +eblit-include() { + local skipable=false + [[ $1 == "--skip" ]] && skipable=true && shift + [[ $1 == pkg_* ]] && skipable=true + + local e v func=$1 ver=$2 + [[ -z ${func} ]] && die "Usage: eblit-include <function> [version]" + for v in ${ver:+-}${ver} -${PVR} -${PV} "" ; do + e="${FILESDIR}/eblits/${func}${v}.eblit" + if [[ -e ${e} ]] ; then + source "${e}" + return 0 + fi + done + ${skipable} && return 0 + die "Could not locate requested eblit '${func}' in ${FILESDIR}/eblits/" +} + +# eblit-run-maybe <function> +# run the specified function if it is defined +eblit-run-maybe() { + [[ $(type -t "$@") == "function" ]] && "$@" +} + +# eblit-run <function> [version] +# aka: src_unpack() { eblit-run src_unpack ; } +eblit-run() { + eblit-include --skip common "${*:2}" + eblit-include "$@" + eblit-run-maybe eblit-$1-pre + eblit-${PN}-$1 + eblit-run-maybe eblit-$1-post +} + +src_unpack() { eblit-run src_unpack ; } +src_compile() { eblit-run src_compile ; } +src_test() { eblit-run src_test ; } +src_install() { eblit-run src_install ; } + +# FILESDIR might not be available during binpkg install +for x in setup {pre,post}inst ; do + e="${FILESDIR}/eblits/pkg_${x}.eblit" + if [[ -e ${e} ]] ; then + . "${e}" + eval "pkg_${x}() { eblit-run pkg_${x} ; }" + fi +done + +eblit-src_unpack-post() { + if use hardened ; then + cd "${S}" + einfo "Patching to get working PIE binaries on PIE (hardened) platforms" + gcc-specs-pie && epatch "${FILESDIR}"/2.12/glibc-2.12-hardened-pie.patch + epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-configure-picdefault.patch + epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-inittls-nosysenter.patch + + einfo "Installing Hardened Gentoo SSP and FORTIFY_SOURCE handler" + cp -f "${FILESDIR}"/2.6/glibc-2.6-gentoo-stack_chk_fail.c \ + debug/stack_chk_fail.c || die + cp -f "${FILESDIR}"/2.10/glibc-2.10-gentoo-chk_fail.c \ + debug/chk_fail.c || die + + if use debug ; then + # When using Hardened Gentoo stack handler, have smashes dump core for + # analysis - debug only, as core could be an information leak + # (paranoia). + sed -i \ + -e '/^CFLAGS-backtrace.c/ iCFLAGS-stack_chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \ + debug/Makefile \ + || die "Failed to modify debug/Makefile for debug stack handler" + sed -i \ + -e '/^CFLAGS-backtrace.c/ iCFLAGS-chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \ + debug/Makefile \ + || die "Failed to modify debug/Makefile for debug fortify handler" + fi + + # Build nscd with ssp-all + sed -i \ + -e 's:-fstack-protector$:-fstack-protector-all:' \ + nscd/Makefile \ + || die "Failed to ensure nscd builds with ssp-all" + fi +} + +eblit-pkg_preinst-post() { + if [[ ${CTARGET} == arm* ]] ; then + # Backwards compat support for renaming hardfp ldsos #417287 + local oldso='/lib/ld-linux.so.3' + local nldso='/lib/ld-linux-armhf.so.3' + if [[ -e ${D}${nldso} ]] ; then + if scanelf -qRyi "${ROOT}$(alt_prefix)"/*bin/ | grep -s "^${oldso}" ; then + ewarn "Symlinking old ldso (${oldso}) to new ldso (${nldso})." + ewarn "Please rebuild all packages using this old ldso as compat" + ewarn "support will be dropped in the future." + ln -s "${nldso##*/}" "${D}$(alt_prefix)${oldso}" + fi + fi + fi +} |