summaryrefslogtreecommitdiff
path: root/sys-libs
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2019-01-12 16:58:08 +0000
committerV3n3RiX <venerix@redcorelinux.org>2019-01-12 16:58:08 +0000
commitc8a77dfe4d3d307c1d5dd2650b7297447d8b609d (patch)
tree9ea78393bc3ecd6ab4de449383d4e97e5f3648ae /sys-libs
parent2891d29af8907ce881662f4a02844926d7a293c7 (diff)
gentoo resync : 12.01.2019
Diffstat (limited to 'sys-libs')
-rw-r--r--sys-libs/Manifest.gzbin15940 -> 15946 bytes
-rw-r--r--sys-libs/efivar/Manifest4
-rw-r--r--sys-libs/efivar/efivar-36.ebuild38
-rw-r--r--sys-libs/efivar/efivar-37.ebuild4
-rw-r--r--sys-libs/glibc/Manifest2
-rw-r--r--sys-libs/glibc/glibc-2.28-r5.ebuild1411
-rw-r--r--sys-libs/libselinux/Manifest2
-rw-r--r--sys-libs/libselinux/libselinux-2.8-r1.ebuild4
-rw-r--r--sys-libs/musl/Manifest2
-rw-r--r--sys-libs/musl/musl-1.1.20-r1.ebuild4
-rw-r--r--sys-libs/openipmi/Manifest6
-rw-r--r--sys-libs/openipmi/openipmi-2.0.22.ebuild3
-rw-r--r--sys-libs/openipmi/openipmi-2.0.25.ebuild3
-rw-r--r--sys-libs/openipmi/openipmi-2.0.26.ebuild3
-rw-r--r--sys-libs/readline/Manifest3
-rw-r--r--sys-libs/readline/files/readline-8.0-headers.patch17
-rw-r--r--sys-libs/readline/readline-8.0.ebuild173
-rw-r--r--sys-libs/timezone-data/Manifest6
-rw-r--r--sys-libs/timezone-data/timezone-data-2018i.ebuild (renamed from sys-libs/timezone-data/timezone-data-2018g-r1.ebuild)7
-rw-r--r--sys-libs/uclibc-ng/Manifest4
-rw-r--r--sys-libs/uclibc-ng/uclibc-ng-1.0.31.ebuild2
-rw-r--r--sys-libs/uclibc-ng/uclibc-ng-9999.ebuild18
22 files changed, 1646 insertions, 70 deletions
diff --git a/sys-libs/Manifest.gz b/sys-libs/Manifest.gz
index e67112a119f1..da55351fe203 100644
--- a/sys-libs/Manifest.gz
+++ b/sys-libs/Manifest.gz
Binary files differ
diff --git a/sys-libs/efivar/Manifest b/sys-libs/efivar/Manifest
index 6cf2f1526a1b..5b38290c1d31 100644
--- a/sys-libs/efivar/Manifest
+++ b/sys-libs/efivar/Manifest
@@ -3,13 +3,11 @@ DIST efivar-30.tar.bz2 73202 BLAKE2B 6b146cb6d664e3419361e72ab6fd1578522e7fc2196
DIST efivar-31.tar.bz2 82404 BLAKE2B d339aa8ab7dcd6a60cb067fccfbc2c42407fba211ca96eb39f227d57e9403462505940f427651dfaffa8272c9edfe70898f181b9f6ecddbae4745eb3262de949 SHA512 5055f690fd99cf59895dcf3d11103494d917d4923567626f0bee816ea5e4dd56cec23627ede5f21bdc57b7306522471ad19cc8ab22ae94591dbd1925c084f163
DIST efivar-32.tar.gz 108102 BLAKE2B 7f9d27433b40ec6c044ab34ccc697001ad23e39a46862d2e04db0f9a3dfc26ae53b46a3c3a8c957bf76df0969710f78249f72f7bf38e67c0aa902034a07acf8f SHA512 e73eae182fd645183dfe587591a286670ee1123a113e3e19e4070fb910ab7794e320defdc0597540df7664947f2a0497abbb763a19b4dfa40511a512c7f3e490
DIST efivar-35.tar.bz2 95528 BLAKE2B c936114aade7a586f707af2464d350703234e0c3fb786fb568590737fb3939c3f74ff813f4f188aec230d75e75e73b0d07cbff5860f0b9f1285d2780b29c7689 SHA512 c7ba60b2112053f088ad0b74aaa834860601b7fe17118c35b012050176f5205d948fba9c4b6de35991249f702e3bc24832539e2eb3c235c4188e1eabc78965ee
-DIST efivar-36.tar.bz2 105928 BLAKE2B bcaff4e81d7591e3655d3e2b150c6f7006335b6dd1981bcd7b5a658e93adee4f7fa6d0dd6ce5b9854b5b409e2a4b7db692d4d670670dc34660035c840a18682d SHA512 951feabe2d238826fdd6e74e8f7a24f04d705f9ef925cfcfb852944d2d7a4f04e3a6c23f276c40e5564da42614558941dbe7aaf21efa6a722a616e4d165aba2d
DIST efivar-37.tar.bz2 109431 BLAKE2B 813d477d31562b773f6e19f20e9e237b94beed437ce221771770e7d46ff0e657530285f035dc942cc20609185be92dc50319bfe8e10dee642c8bd88403ef6ffe SHA512 305a82ed103c7e3d8f723934019d552677c73558768dd5341f87d0364f5c60824d24f5a8e1bf90075e825908085083d4ecdccec5ac757fd38ee6ac8fea28c3e4
EBUILD efivar-30.ebuild 956 BLAKE2B 617ae40f78ecb76e5b81c2b47fce467738394151021cddaaab484acc843a440d24b7af2d6a2b24f540d5f7f8bfb0af49ab5ad068e85b772ed0232747206cb824 SHA512 9c29f7fd850e4821ff642475828015c5960b47015114cbac0b913e2a02063c3cc1525e4458c9857cce1be9c32a82bb378fe49a4fb67eae60db35528da73491a9
EBUILD efivar-31.ebuild 809 BLAKE2B d0ca028356842cadf5f052aa86c8383de0ce22d42edcc5146afb018f62d95cfbe2894ee60365d14fc2ab6df5177d282fc0f18c4bf9a4473d2e04cdf4235ce8d5 SHA512 63897e051ef4b474cb1bba5928935773d1de71ba18c2b18b439b6333570628375db6a9e20d33539187bb38eac60ecf06b265ae6609cd0686ae2fe8a1920066ae
EBUILD efivar-32-r1.ebuild 946 BLAKE2B 815cbe5f43f3ffa65ee94d581b24d001b7f8d14d18b0ac831058555d12e1ac3e2bcca242f437d94326c35dc148154b1203088630e67b3bbc54fe8ec83b715921 SHA512 8c9c99a39b0fad8fdc4c96a24b281db6b1174c1dc4f9769fc789bddd0b0ae06ffdd36e7bda9f103240a136daace83883be0846de9d0975c2e9f002f2d3c01e46
EBUILD efivar-32.ebuild 887 BLAKE2B 753d7b2b7a44e0123a5eeafa8ccb861731872873a064c9e5981d5b2f8202fac9be0cdc7e14249e81f25289acb25579da4ccc6bc85c7a2211b58ce3e30734de22 SHA512 22baa7fe2befa4f1c1858e2d955e31043c46a9b18fa3b192c69874b150d1815e5febb53c0d5d78fa0ef4e81b271ab381fcb050318052f52c67cbc2d6f4e6ca78
EBUILD efivar-35.ebuild 854 BLAKE2B 9530db8cc261a2fb86502700764dbf77f16879b4746e210c064db97dc057c1c70fc9e16f52d888708dccdfe875a5127f06aaffdf975003ec57208602802647cd SHA512 ecaa5a9b57f6c62aa7a725eaebc53c93eb8df1a4178a6cfdd976cbff7f6eaf7ef2840d99a131afed9938585b8e2e5e2b853b8d2b4826dcf6653976b730cf4e86
-EBUILD efivar-36.ebuild 854 BLAKE2B 9530db8cc261a2fb86502700764dbf77f16879b4746e210c064db97dc057c1c70fc9e16f52d888708dccdfe875a5127f06aaffdf975003ec57208602802647cd SHA512 ecaa5a9b57f6c62aa7a725eaebc53c93eb8df1a4178a6cfdd976cbff7f6eaf7ef2840d99a131afed9938585b8e2e5e2b853b8d2b4826dcf6653976b730cf4e86
-EBUILD efivar-37.ebuild 854 BLAKE2B 9530db8cc261a2fb86502700764dbf77f16879b4746e210c064db97dc057c1c70fc9e16f52d888708dccdfe875a5127f06aaffdf975003ec57208602802647cd SHA512 ecaa5a9b57f6c62aa7a725eaebc53c93eb8df1a4178a6cfdd976cbff7f6eaf7ef2840d99a131afed9938585b8e2e5e2b853b8d2b4826dcf6653976b730cf4e86
+EBUILD efivar-37.ebuild 853 BLAKE2B 1fc3086d9955c8ac4b2179ab15a14be3c1e3f156e99db01165b9ea7b96d50b8e7b9952a7497d20c311839fa6ce7c4ae31c6bb960e89a80a322b718119cf07387 SHA512 17424db3ce54e388b4e1c5ea49c865ac8faf23d5a20a0cb7a58d79cef2bf9ecf6300129a5186452d2034c6502fd9fa65dc96e99955a9ef9cd7c59a9693ea5b9c
MISC metadata.xml 329 BLAKE2B afbb6532a53f86d455f8e77511ef1064efaa3d231ddd9023176629863f396224f733f3b15a91465ecdd878542e1af189420d7125dcb7f1de65debd613f4182e7 SHA512 a349c5ce7e3ad96d816b52ee35e6547bfb1f4cf9ebd60426ac90b84d67adb0728ab9dcccf93754ad7c71614b0fbd82a1a02fc3fde07e15d12d960d1a7fc088df
diff --git a/sys-libs/efivar/efivar-36.ebuild b/sys-libs/efivar/efivar-36.ebuild
deleted file mode 100644
index b050cddcf60d..000000000000
--- a/sys-libs/efivar/efivar-36.ebuild
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit flag-o-matic toolchain-funcs
-
-DESCRIPTION="Tools and library to manipulate EFI variables"
-HOMEPAGE="https://github.com/rhinstaller/efivar"
-SRC_URI="https://github.com/rhinstaller/efivar/releases/download/${PV}/${P}.tar.bz2"
-
-LICENSE="GPL-2"
-SLOT="0/1"
-KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~x86"
-
-RDEPEND="dev-libs/popt"
-DEPEND="${RDEPEND}
- >=sys-kernel/linux-headers-3.18
- virtual/pkgconfig
-"
-
-src_prepare() {
- default
- sed -i -e 's/-Werror //' gcc.specs || die
-}
-
-src_configure() {
- tc-export CC
- export CC_FOR_BUILD=$(tc-getBUILD_CC)
- tc-ld-disable-gold
- export libdir="/usr/$(get_libdir)"
- unset LIBS # Bug 562004
-
- if [[ -n ${GCC_SPECS} ]]; then
- # The environment overrides the command line.
- GCC_SPECS+=":${S}/gcc.specs"
- fi
-}
diff --git a/sys-libs/efivar/efivar-37.ebuild b/sys-libs/efivar/efivar-37.ebuild
index b050cddcf60d..ca9c71b8bfe7 100644
--- a/sys-libs/efivar/efivar-37.ebuild
+++ b/sys-libs/efivar/efivar-37.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Authors
+# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -11,7 +11,7 @@ SRC_URI="https://github.com/rhinstaller/efivar/releases/download/${PV}/${P}.tar.
LICENSE="GPL-2"
SLOT="0/1"
-KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~ia64 x86"
RDEPEND="dev-libs/popt"
DEPEND="${RDEPEND}
diff --git a/sys-libs/glibc/Manifest b/sys-libs/glibc/Manifest
index adc343181bc1..053d35bfde0c 100644
--- a/sys-libs/glibc/Manifest
+++ b/sys-libs/glibc/Manifest
@@ -32,6 +32,7 @@ DIST glibc-2.26.tar.xz 14682748 BLAKE2B c1c9dbec110dd4e25b2f463a96d8afc43b8e3ebf
DIST glibc-2.27-patches-3.tar.bz2 166511 BLAKE2B 1dc54bef6e82112935c7411f7a5cd07c1edb24c3edaa1e0243b846b3832a40af1ba3a7b77aef04c54a173388156b464ea442fa8310a02e6f44e2ed5b78994286 SHA512 12496e9b0c60630dbec4c2febdd6d20df1f3d7a2c243cc55b595202b27f682b9208e16cd8c387687c0cc9e18b36c3caeef8d1b1148eb3ee8081431997270db5e
DIST glibc-2.27.tar.xz 15395316 BLAKE2B ea206d304c8c9aa86d69db981a14bea008602cea06a6c151c4971a8df059949ffe5632b42a67ab0ffcd7c4d7ce1ec02ac48815dac4dade1c4dd41eaee8a6ed33 SHA512 7c5581154487d38d173ce1feb944e60207139cca148bccf066eaae322c0c2d219423bdcfa15c7f9be1b5e45dfc43c641cc5d80d3c3c65837d08a83cdb4e2a147
DIST glibc-2.28-patches-6.tar.xz 89724 BLAKE2B f846534dc912f11ed9b22badfd28ef0402451654390756d2f6332f52ce7c2d3491ed90bbdf2553d7bb38caea6373ad2d3c19e4a1f31f3669948f4e2cbaeb1577 SHA512 f687febde875bb8adb7a61408caea3db99bbbda703eb3486c7d5c09540515e657eda406bf14686498e2c093355c72395502a343201e02cfc97adf6483d8e7455
+DIST glibc-2.28-patches-8.tar.xz 97384 BLAKE2B 036ab39103aa30be61fcbb46a7103cf83c1dd490eeff526444d4701b92e06a428133de2d005d65a296f14f28145f143a2386f8b17df721174a0a0b5303e99931 SHA512 29695212d8ca9c4b6d4787f4919b75cb0828ddecce65d65683b746ed23acb50e4e18419a13bb6ee4a234f44f63b38a2eebf1f1ce3d350435c2bf21d6076a97a6
DIST glibc-2.28.tar.xz 16484344 BLAKE2B 9aa8cbd5a145c2a6fde3a60b3d0a14b12b46ed79333ad1ca3e73464adcfe700277a17a9e7fd0ca36e355a0c5b0b27decfa091da320ba802741ad75cc955bbcc8 SHA512 521f820953ff07c69ece4c2186f59fc061a7f9747932cd70ef2995c2b2deee76eeb6de700d85071cdca5949179aa8ccee75eda7feca1394121ec7b821ad0a3f3
DIST glibc-9999-patches-10.tar.xz 17544 BLAKE2B 1cd4fa14b2168e371c769c06a29f36d6dbd3beccb796788470b63282cb8e5c3c497e4eb3800e4bc86c07d3b82935d71dc96dc3155178d52b68873ea38a271a70 SHA512 bbd376ad87fb71de7a6a4eb28030aa1550f7cca57e521d2a326cab63a66e2dc784b93319190f8bb1b24b335acc604d0523c3ea8335a4424373796ebeb79f273b
EBUILD glibc-2.19-r2.ebuild 40484 BLAKE2B 9e78b3fcbf40c7c32fd9a7ba0f4c9d31277aa0d5465342b5af1a8115d4dbb9bc34e4dd0be6fe6abca2497306ef84018b62969ff2a2d28eeb092e204a60972714 SHA512 6ee461bd816a33b5eb37e3d7c107e09ebb912ce9cb26620e7bedadf31a5a874c822148859973d4e60931a46b668ce743b7ff04fa3df99f0089251ae653021750
@@ -43,5 +44,6 @@ EBUILD glibc-2.25-r11.ebuild 4975 BLAKE2B cef32f5d160644845e7cf45a9dd4c8cef1dcff
EBUILD glibc-2.26-r7.ebuild 25496 BLAKE2B 3edbb2f56d81869f86bd357772c27eb9516a1a0fbbda024412c8588df0b7938c77afc46430ea8b01bfe012eb5097f58b989411d4953d09d9202c33eeea562708 SHA512 e28a2cf8f692e6526fcbee2d9317dbb4cb8a4c249e4b60ed5b3522dc8c4627248b4a4bad0c32192adf0f650f3f002b8e25ebc7038fe0daf959f0dcde0bfe1bc4
EBUILD glibc-2.27-r6.ebuild 41406 BLAKE2B f76ab4130979c09e19f0c7a8d796f1dbda896a0331c5209bc53d4f926fac22dafab33dadfe8c5f4fda3fec068f6f76101372e8b492a61c29db8734a0585afe48 SHA512 52ce249e2a20efb3fa012656249be637ff1059aec9981b85bd6d0311384e2427b15658fd156e7bd1f4032f01c90cbaa76bf5c485f35a80b0708cdcf21761df67
EBUILD glibc-2.28-r4.ebuild 41164 BLAKE2B 993c0d17a661a5c1a4403be6ec344232f5ce5831e599f6ae6d1ed156234a21e85e4bff1d43a63e5c70aab031edc5439673e755d88f9dc313f3e5e28be732af20 SHA512 c51411a717781762e68078bb77fbe18ccd80164ba6f8a63cf690994466ef02c056b7a76fd40dca4a9fd95f42278e4d393288bb2d6825f57b8423d5679d759f47
+EBUILD glibc-2.28-r5.ebuild 41164 BLAKE2B cae79079841d39b38ea84a5b4d844ef1365f10ef2c890599ffea131db39f9d8c2c80c5aaaf2c81945122fa79f7568896c803adc40b8ae63136c233f6ae27f36b SHA512 32700d26887dda84f061bca006fab816d1dfde0cc5c8b0c93bf7157a9e93e8a287f64722e819ede8def50f9fb1d2fc231a6fa7b6813fd171484f9d6ea9d7a8db
EBUILD glibc-9999.ebuild 41110 BLAKE2B f10056c1aeeaaae9af5510aeba211f448e2b0e6525e74c7162bd0a3f7afb471ef09888128e4d5a07b9cb41195650d44a3a5c5deda2b8033744aca7486c67fab9 SHA512 8e3b77823ecc335a2d31a52ea0140107cd0f01896d59dc4c18c32a4b7abcd135c26ac9cd500e86d1732cbe525fd487cc012245684f588f43c3ea44288f89a8d5
MISC metadata.xml 1265 BLAKE2B 0d494de7b6fda57a4f401eace7b8c02c4ea78a65a1a41a4a1c33b48ff0960f5e240ffbacbc3191bc0d463bcf3ef9e6b374c7b3d7482c5ca1b3d8d2b9b88cef88 SHA512 f92825278b07ef97cc8aa50ad342c1433e02bcbf6911bc8d6a890fa30e7f225fdee036c74db26d656023ba0d79aa828455b754b66775b0d7b2a290bfedce50f0
diff --git a/sys-libs/glibc/glibc-2.28-r5.ebuild b/sys-libs/glibc/glibc-2.28-r5.ebuild
new file mode 100644
index 000000000000..0c69246759a4
--- /dev/null
+++ b/sys-libs/glibc/glibc-2.28-r5.ebuild
@@ -0,0 +1,1411 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit prefix eutils eapi7-ver toolchain-funcs flag-o-matic gnuconfig \
+ multilib systemd multiprocessing
+
+DESCRIPTION="GNU libc C library"
+HOMEPAGE="https://www.gnu.org/software/libc/"
+LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE"
+RESTRICT="strip" # Strip ourself #46186
+SLOT="2.2"
+
+EMULTILIB_PKG="true"
+
+if [[ ${PV} == 9999* ]]; then
+ EGIT_REPO_URI="https://sourceware.org/git/glibc.git"
+ inherit git-r3
+else
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+ SRC_URI="mirror://gnu/glibc/${P}.tar.xz"
+fi
+
+RELEASE_VER=${PV}
+
+GCC_BOOTSTRAP_VER=20180511
+
+# Gentoo patchset
+PATCH_VER=8
+
+SRC_URI+=" https://dev.gentoo.org/~dilfridge/distfiles/${P}-patches-${PATCH_VER}.tar.xz"
+SRC_URI+=" multilib? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )"
+
+IUSE="audit caps cet compile-locales doc gd headers-only +multiarch multilib nscd profile selinux suid systemtap test vanilla"
+
+# Minimum kernel version that glibc requires
+MIN_KERN_VER="3.2.0"
+
+# 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
+
+# We need a new-enough binutils/gcc to match upstream baseline.
+# Also we need to make sure our binutils/gcc supports TLS,
+# and that gcc already contains the hardened patches.
+COMMON_DEPEND="
+ nscd? ( selinux? (
+ audit? ( sys-process/audit )
+ caps? ( sys-libs/libcap )
+ ) )
+ suid? ( caps? ( sys-libs/libcap ) )
+ selinux? ( sys-libs/libselinux )
+ systemtap? ( dev-util/systemtap )
+"
+DEPEND="${COMMON_DEPEND}
+ >=app-misc/pax-utils-0.1.10
+ sys-devel/bison
+ !<sys-apps/sandbox-1.6
+ !<sys-apps/portage-2.1.2
+ !<sys-devel/bison-2.7
+ !<sys-devel/make-4
+ doc? ( sys-apps/texinfo )
+ test? ( >=net-dns/libidn2-2.0.5 )
+"
+RDEPEND="${COMMON_DEPEND}
+ >=net-dns/libidn2-2.0.5
+ sys-apps/gentoo-functions
+ !sys-kernel/ps3-sources
+ !sys-libs/nss-db
+"
+
+if [[ ${CATEGORY} == cross-* ]] ; then
+ DEPEND+=" !headers-only? (
+ >=${CATEGORY}/binutils-2.24
+ >=${CATEGORY}/gcc-6
+ )"
+ [[ ${CATEGORY} == *-linux* ]] && DEPEND+=" ${CATEGORY}/linux-headers"
+else
+ DEPEND+="
+ >=sys-devel/binutils-2.24
+ >=sys-devel/gcc-6
+ virtual/os-headers
+ "
+ RDEPEND+=" vanilla? ( !sys-libs/timezone-data )"
+ PDEPEND+=" !vanilla? ( sys-libs/timezone-data )"
+fi
+
+#
+# Small helper functions
+#
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+
+just_headers() {
+ is_crosscompile && use headers-only
+}
+
+alt_prefix() {
+ is_crosscompile && echo /usr/${CTARGET}
+}
+
+# We need to be able to set alternative headers for compiling for non-native
+# platform. Will also become useful for testing kernel-headers without screwing
+# up the whole system.
+alt_headers() {
+ echo ${ALT_HEADERS:=$(alt_prefix)/usr/include}
+}
+
+alt_build_headers() {
+ if [[ -z ${ALT_BUILD_HEADERS} ]] ; then
+ ALT_BUILD_HEADERS="${EPREFIX}$(alt_headers)"
+ if tc-is-cross-compiler ; then
+ ALT_BUILD_HEADERS=${SYSROOT}$(alt_headers)
+ if [[ ! -e ${ALT_BUILD_HEADERS}/linux/version.h ]] ; then
+ local header_path=$(echo '#include <linux/version.h>' | $(tc-getCPP ${CTARGET}) ${CFLAGS} 2>&1 | grep -o '[^"]*linux/version.h')
+ ALT_BUILD_HEADERS=${header_path%/linux/version.h}
+ fi
+ fi
+ fi
+ echo "${ALT_BUILD_HEADERS}"
+}
+
+alt_libdir() {
+ echo $(alt_prefix)/$(get_libdir)
+}
+alt_usrlibdir() {
+ echo $(alt_prefix)/usr/$(get_libdir)
+}
+
+builddir() {
+ echo "${WORKDIR}/build-${ABI}-${CTARGET}-$1"
+}
+
+do_compile_test() {
+ local ret save_cflags=${CFLAGS}
+ CFLAGS+=" $1"
+ shift
+
+ pushd "${T}" >/dev/null
+
+ rm -f glibc-test*
+ printf '%b' "$*" > glibc-test.c
+
+ nonfatal emake -s glibc-test
+ ret=$?
+
+ popd >/dev/null
+
+ CFLAGS=${save_cflags}
+ return ${ret}
+}
+
+do_run_test() {
+ local ret
+
+ if [[ ${MERGE_TYPE} == "binary" ]] ; then
+ # ignore build failures when installing a binary package #324685
+ do_compile_test "" "$@" 2>/dev/null || return 0
+ else
+ if ! do_compile_test "" "$@" ; then
+ ewarn "Simple build failed ... assuming this is desired #324685"
+ return 0
+ fi
+ fi
+
+ pushd "${T}" >/dev/null
+
+ ./glibc-test
+ ret=$?
+ rm -f glibc-test*
+
+ popd >/dev/null
+
+ return ${ret}
+}
+
+setup_target_flags() {
+ # This largely mucks with compiler flags. None of which should matter
+ # when building up just the headers.
+ just_headers && return 0
+
+ case $(tc-arch) in
+ x86)
+ # -march needed for #185404 #199334
+ # TODO: When creating the first glibc cross-compile, this test will
+ # always fail as it does a full link which in turn requires glibc.
+ # Probably also applies when changing multilib profile settings (e.g.
+ # enabling x86 when the profile was amd64-only previously).
+ # We could change main to _start and pass -nostdlib here so that we
+ # only test the gcc code compilation. Or we could do a compile and
+ # then look for the symbol via scanelf.
+ if ! do_compile_test "" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n' 2>/dev/null ; then
+ local t=${CTARGET_OPT:-${CTARGET}}
+ t=${t%%-*}
+ filter-flags '-march=*'
+ export CFLAGS="-march=${t} ${CFLAGS}"
+ einfo "Auto adding -march=${t} to CFLAGS #185404"
+ fi
+ ;;
+ amd64)
+ # -march needed for #185404 #199334
+ # Note: This test only matters when the x86 ABI is enabled, so we could
+ # optimize a bit and elide it.
+ # TODO: See cross-compile issues listed above for x86.
+ if ! do_compile_test "${CFLAGS_x86}" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n' 2>/dev/null ; then
+ local t=${CTARGET_OPT:-${CTARGET}}
+ t=${t%%-*}
+ # Normally the target is x86_64-xxx, so turn that into the -march that
+ # gcc actually accepts. #528708
+ [[ ${t} == "x86_64" ]] && t="x86-64"
+ filter-flags '-march=*'
+ # ugly, ugly, ugly. ugly.
+ CFLAGS_x86=$(CFLAGS=${CFLAGS_x86} filter-flags '-march=*'; echo "${CFLAGS}")
+ export CFLAGS_x86="${CFLAGS_x86} -march=${t}"
+ einfo "Auto adding -march=${t} to CFLAGS_x86 #185404"
+ fi
+ ;;
+ mips)
+ # The mips abi cannot support the GNU style hashes. #233233
+ filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both
+ ;;
+ sparc)
+ # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though.
+ filter-flags "-fcall-used-g7"
+ append-flags "-fcall-used-g6"
+
+ # If the CHOST is the basic one (e.g. not sparcv9-xxx already),
+ # try to pick a better one so glibc can use cpu-specific .S files.
+ # We key off the CFLAGS to get a good value. Also need to handle
+ # version skew.
+ # We can't force users to set their CHOST to their exact machine
+ # as many of these are not recognized by config.sub/gcc and such :(.
+ # Note: If the mcpu values don't scale, we might try probing CPP defines.
+ # Note: Should we factor in -Wa,-AvXXX flags too ? Or -mvis/etc... ?
+
+ local cpu
+ case ${CTARGET} in
+ sparc64-*)
+ case $(get-flag mcpu) in
+ niagara[234])
+ if ver_test -ge 2.8 ; then
+ cpu="sparc64v2"
+ elif ver_test -ge 2.4 ; then
+ cpu="sparc64v"
+ elif ver_test -ge 2.2.3 ; then
+ cpu="sparc64b"
+ fi
+ ;;
+ niagara)
+ if ver_test -ge 2.4 ; then
+ cpu="sparc64v"
+ elif ver_test -ge 2.2.3 ; then
+ cpu="sparc64b"
+ fi
+ ;;
+ ultrasparc3)
+ cpu="sparc64b"
+ ;;
+ *)
+ # We need to force at least v9a because the base build doesn't
+ # work with just v9.
+ # https://sourceware.org/bugzilla/show_bug.cgi?id=19477
+ [[ -z ${cpu} ]] && append-flags "-Wa,-xarch=v9a"
+ ;;
+ esac
+ ;;
+ sparc-*)
+ case $(get-flag mcpu) in
+ niagara[234])
+ if ver_test -ge 2.8 ; then
+ cpu="sparcv9v2"
+ elif ver_test -ge 2.4 ; then
+ cpu="sparcv9v"
+ elif ver_test -ge 2.2.3 ; then
+ cpu="sparcv9b"
+ else
+ cpu="sparcv9"
+ fi
+ ;;
+ niagara)
+ if ver_test -ge 2.4 ; then
+ cpu="sparcv9v"
+ elif ver_test -ge 2.2.3 ; then
+ cpu="sparcv9b"
+ else
+ cpu="sparcv9"
+ fi
+ ;;
+ ultrasparc3)
+ cpu="sparcv9b"
+ ;;
+ v9|ultrasparc)
+ cpu="sparcv9"
+ ;;
+ v8|supersparc|hypersparc|leon|leon3)
+ cpu="sparcv8"
+ ;;
+ esac
+ ;;
+ esac
+ [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}"
+ ;;
+ esac
+}
+
+setup_flags() {
+ # Make sure host make.conf doesn't pollute us
+ if is_crosscompile || tc-is-cross-compiler ; then
+ CHOST=${CTARGET} strip-unsupported-flags
+ fi
+
+ # Store our CFLAGS because it's changed depending on which CTARGET
+ # we are building when pulling glibc on a multilib profile
+ CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}}
+ CFLAGS=${CFLAGS_BASE}
+ CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}}
+ CXXFLAGS=${CXXFLAGS_BASE}
+ ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}}
+ ASFLAGS=${ASFLAGS_BASE}
+
+ # Over-zealous CFLAGS can often cause problems. What may work for one
+ # person may not work for another. To avoid a large influx of bugs
+ # relating to failed builds, we strip most CFLAGS out to ensure as few
+ # problems as possible.
+ strip-flags
+ strip-unsupported-flags
+ filter-flags -m32 -m64 '-mabi=*'
+
+ # glibc aborts if rpath is set by LDFLAGS
+ filter-ldflags '-Wl,-rpath=*'
+
+ # #492892
+ filter-flags -frecord-gcc-switches
+
+ unset CBUILD_OPT CTARGET_OPT
+ if use multilib ; then
+ CTARGET_OPT=$(get_abi_CTARGET)
+ [[ -z ${CTARGET_OPT} ]] && CTARGET_OPT=$(get_abi_CHOST)
+ fi
+
+ setup_target_flags
+
+ if [[ -n ${CTARGET_OPT} && ${CBUILD} == ${CHOST} ]] && ! is_crosscompile; then
+ CBUILD_OPT=${CTARGET_OPT}
+ fi
+
+ # Lock glibc at -O2; we want to be conservative here.
+ # -fno-strict-aliasing is to work around #155906.
+ filter-flags '-O?'
+ append-flags -O2 -fno-strict-aliasing
+
+ filter-flags '-fstack-protector*'
+}
+
+want_tls() {
+ # Archs that can use TLS (Thread Local Storage)
+ case $(tc-arch) in
+ x86)
+ # requires i486 or better #106556
+ [[ ${CTARGET} == i[4567]86* ]] && return 0
+ return 1
+ ;;
+ esac
+ return 0
+}
+
+want__thread() {
+ want_tls || return 1
+
+ # For some reason --with-tls --with__thread is causing segfaults on sparc32.
+ [[ ${PROFILE_ARCH} == "sparc" ]] && return 1
+
+ [[ -n ${WANT__THREAD} ]] && return ${WANT__THREAD}
+
+ # only test gcc -- can't test linking yet
+ tc-has-tls -c ${CTARGET}
+ WANT__THREAD=$?
+
+ return ${WANT__THREAD}
+}
+
+use_multiarch() {
+ # Allow user to disable runtime arch detection in multilib.
+ use multiarch || return 1
+ # Make sure binutils is new enough to support indirect functions,
+ # #336792. This funky sed supports gold and bfd linkers.
+ local bver nver
+ bver=$($(tc-getLD ${CTARGET}) -v | sed -n -r '1{s:[^0-9]*::;s:^([0-9.]*).*:\1:;p}')
+ case $(tc-arch ${CTARGET}) in
+ amd64|x86) nver="2.20" ;;
+ arm) nver="2.22" ;;
+ hppa) nver="2.23" ;;
+ ppc|ppc64) nver="2.20" ;;
+ # ifunc support was added in 2.23, but glibc also needs
+ # machinemode which is in 2.24.
+ s390) nver="2.24" ;;
+ sparc) nver="2.21" ;;
+ *) return 1 ;;
+ esac
+ ver_test ${bver} -ge ${nver}
+}
+
+# Setup toolchain variables that had historically been defined in the
+# profiles for these archs.
+setup_env() {
+ # silly users
+ unset LD_RUN_PATH
+ unset LD_ASSUME_KERNEL
+
+ if is_crosscompile || tc-is-cross-compiler ; then
+ multilib_env ${CTARGET_OPT:-${CTARGET}}
+
+ if ! use multilib ; then
+ MULTILIB_ABIS=${DEFAULT_ABI}
+ else
+ MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}}
+ fi
+
+ # If the user has CFLAGS_<CTARGET> in their make.conf, use that,
+ # and fall back on CFLAGS.
+ local VAR=CFLAGS_${CTARGET//[-.]/_}
+ CFLAGS=${!VAR-${CFLAGS}}
+ einfo " $(printf '%15s' 'Manual CFLAGS:') ${CFLAGS}"
+ fi
+
+ setup_flags
+
+ export ABI=${ABI:-${DEFAULT_ABI:-default}}
+
+ if use headers-only ; then
+ # Avoid mixing host's CC and target's CFLAGS_${ABI}:
+ # At this bootstrap stage we have only binutils for
+ # target but not compiler yet.
+ einfo "Skip CC ABI injection. We can't use (cross-)compiler yet."
+ return 0
+ fi
+ local VAR=CFLAGS_${ABI}
+ # We need to export CFLAGS with abi information in them because glibc's
+ # configure script checks CFLAGS for some targets (like mips). Keep
+ # around the original clean value to avoid appending multiple ABIs on
+ # top of each other.
+ : ${__GLIBC_CC:=$(tc-getCC ${CTARGET_OPT:-${CTARGET}})}
+ export __GLIBC_CC CC="${__GLIBC_CC} ${!VAR}"
+ einfo " $(printf '%15s' 'Manual CC:') ${CC}"
+}
+
+foreach_abi() {
+ setup_env
+
+ local ret=0
+ local abilist=""
+ if use multilib ; then
+ abilist=$(get_install_abis)
+ else
+ abilist=${DEFAULT_ABI}
+ fi
+ local -x ABI
+ for ABI in ${abilist:-default} ; do
+ setup_env
+ einfo "Running $1 for ABI ${ABI}"
+ $1
+ : $(( ret |= $? ))
+ done
+ return ${ret}
+}
+
+glibc_banner() {
+ local b="Gentoo ${PVR}"
+ [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" p${PATCH_VER}"
+ echo "${b}"
+}
+
+check_devpts() {
+ # Make sure devpts is mounted correctly for use w/out setuid pt_chown.
+
+ # If merely building the binary package, then there's nothing to verify.
+ [[ ${MERGE_TYPE} == "buildonly" ]] && return
+
+ # Only sanity check when installing the native glibc.
+ [[ ${ROOT} != "/" ]] && return
+
+ # If they're opting in to the old suid code, then no need to check.
+ use suid && return
+
+ if awk '$3 == "devpts" && $4 ~ /[, ]gid=5[, ]/ { exit 1 }' /proc/mounts ; then
+ eerror "In order to use glibc with USE=-suid, you must make sure that"
+ eerror "you have devpts mounted at /dev/pts with the gid=5 option."
+ eerror "Openrc should do this for you, so you should check /etc/fstab"
+ eerror "and make sure you do not have any invalid settings there."
+ die "mount & fix your /dev/pts settings"
+ fi
+}
+
+# The following Kernel version handling functions are mostly copied from portage
+# source. It's better not to use linux-info.eclass here since a) it adds too
+# much magic, see bug 326693 for some of the arguments, and b) some of the
+# functions are just not provided.
+
+g_get_running_KV() {
+ uname -r
+ return $?
+}
+
+g_KV_major() {
+ [[ -z $1 ]] && return 1
+ local KV=$@
+ echo "${KV%%.*}"
+}
+
+g_KV_minor() {
+ [[ -z $1 ]] && return 1
+ local KV=$@
+ KV=${KV#*.}
+ echo "${KV%%.*}"
+}
+
+g_KV_micro() {
+ [[ -z $1 ]] && return 1
+ local KV=$@
+ KV=${KV#*.*.}
+ echo "${KV%%[^[:digit:]]*}"
+}
+
+g_KV_to_int() {
+ [[ -z $1 ]] && return 1
+ local KV_MAJOR=$(g_KV_major "$1")
+ local KV_MINOR=$(g_KV_minor "$1")
+ local KV_MICRO=$(g_KV_micro "$1")
+ local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO ))
+
+ # We make version 2.2.0 the minimum version we will handle as
+ # a sanity check ... if its less, we fail ...
+ if [[ ${KV_int} -ge 131584 ]] ; then
+ echo "${KV_int}"
+ return 0
+ fi
+ return 1
+}
+
+g_int_to_KV() {
+ local version=$1 major minor micro
+ major=$((version / 65536))
+ minor=$(((version % 65536) / 256))
+ micro=$((version % 256))
+ echo ${major}.${minor}.${micro}
+}
+
+eend_KV() {
+ [[ $(g_KV_to_int $1) -ge $(g_KV_to_int $2) ]]
+ eend $?
+}
+
+get_kheader_version() {
+ printf '#include <linux/version.h>\nLINUX_VERSION_CODE\n' | \
+ $(tc-getCPP ${CTARGET}) -I "${EPREFIX}/$(alt_build_headers)" - | \
+ tail -n 1
+}
+
+# We collect all sanity checks here. Consistency is not guranteed between
+# pkg_ and src_ phases, so we call this function both in pkg_pretend and in
+# src_unpack.
+sanity_prechecks() {
+ # Make sure devpts is mounted correctly for use w/out setuid pt_chown
+ check_devpts
+
+ # Prevent native builds from downgrading
+ if [[ ${MERGE_TYPE} != "buildonly" ]] && \
+ [[ ${ROOT} == "/" ]] && \
+ [[ ${CBUILD} == ${CHOST} ]] && \
+ [[ ${CHOST} == ${CTARGET} ]] ; then
+
+ # The high rev # is to allow people to downgrade between -r#
+ # versions. We want to block 2.20->2.19, but 2.20-r3->2.20-r2
+ # should be fine. Hopefully we never actually use a r# this
+ # high.
+ if has_version ">${CATEGORY}/${P}-r10000" ; then
+ eerror "Sanity check to keep you from breaking your system:"
+ eerror " Downgrading glibc is not supported and a sure way to destruction."
+ die "Aborting to save your system."
+ fi
+
+ if ! do_run_test '#include <unistd.h>\n#include <sys/syscall.h>\nint main(){return syscall(1000)!=-1;}\n' ; then
+ eerror "Your old kernel is broken. You need to update it to a newer"
+ eerror "version as syscall(<bignum>) will break. See bug 279260."
+ die "Old and broken kernel."
+ fi
+ fi
+
+ # Users have had a chance to phase themselves, time to give em the boot
+ if [[ -e ${EROOT}/etc/locale.gen ]] && [[ -e ${EROOT}/etc/locales.build ]] ; then
+ eerror "You still haven't deleted ${EROOT}/etc/locales.build."
+ eerror "Do so now after making sure ${EROOT}/etc/locale.gen is kosher."
+ die "Lazy upgrader detected"
+ fi
+
+ if [[ ${CTARGET} == i386-* ]] ; then
+ eerror "i386 CHOSTs are no longer supported."
+ eerror "Chances are you don't actually want/need i386."
+ eerror "Please read https://www.gentoo.org/doc/en/change-chost.xml"
+ die "Please fix your CHOST"
+ fi
+
+ if [[ -e /proc/xen ]] && [[ $(tc-arch) == "x86" ]] && ! is-flag -mno-tls-direct-seg-refs ; then
+ ewarn "You are using Xen but don't have -mno-tls-direct-seg-refs in your CFLAGS."
+ ewarn "This will result in a 50% performance penalty when running with a 32bit"
+ ewarn "hypervisor, which is probably not what you want."
+ fi
+
+ # Check for sanity of /etc/nsswitch.conf
+ if [[ -e ${EROOT}/etc/nsswitch.conf ]] ; then
+ local entry
+ for entry in passwd group shadow; do
+ if ! egrep -q "^[ \t]*${entry}:.*files" "${EROOT}"/etc/nsswitch.conf; then
+ eerror "Your ${EROOT}/etc/nsswitch.conf is out of date."
+ eerror "Please make sure you have 'files' entries for"
+ eerror "'passwd:', 'group:' and 'shadow:' databases."
+ eerror "For more details see:"
+ eerror " https://wiki.gentoo.org/wiki/Project:Toolchain/nsswitch.conf_in_glibc-2.26"
+ die "nsswitch.conf has no 'files' provider in '${entry}'."
+ fi
+ done
+ fi
+
+ # ABI-specific checks follow here. Hey, we have a lot more specific conditions that
+ # we test for...
+ if ! is_crosscompile ; then
+ if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then
+ ebegin "Checking that IA32 emulation is enabled in the running kernel"
+ echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c"
+ local STAT
+ if "${CC-${CHOST}-gcc}" ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then
+ "${T}/check-ia32-emulation.elf32"
+ STAT=$?
+ else
+ # Don't fail here to allow single->multi ABI switch
+ # or recover from breakage like bug #646424
+ ewarn "Failed to compile the ABI test. Broken host glibc?"
+ STAT=0
+ fi
+ rm -f "${T}/check-ia32-emulation.elf32"
+ eend $STAT
+ [[ $STAT -eq 0 ]] || die "CONFIG_IA32_EMULATION must be enabled in the kernel to compile a multilib glibc."
+ fi
+
+ fi
+
+ # When we actually have to compile something...
+ if ! just_headers ; then
+ ebegin "Checking gcc for __thread support"
+ if ! eend $(want__thread ; echo $?) ; then
+ echo
+ eerror "Could not find a gcc that supports the __thread directive!"
+ eerror "Please update your binutils/gcc and try again."
+ die "No __thread support in gcc!"
+ fi
+
+ if [[ ${CTARGET} == *-linux* ]] ; then
+ local run_kv build_kv want_kv
+
+ run_kv=$(g_get_running_KV)
+ build_kv=$(g_int_to_KV $(get_kheader_version))
+ want_kv=${MIN_KERN_VER}
+
+ if ! is_crosscompile && ! tc-is-cross-compiler ; then
+ # Building fails on an non-supporting kernel
+ ebegin "Checking running kernel version (${run_kv} >= ${want_kv})"
+ if ! eend_KV ${run_kv} ${want_kv} ; then
+ echo
+ eerror "You need a kernel of at least ${want_kv}!"
+ die "Kernel version too low!"
+ fi
+ fi
+
+ ebegin "Checking linux-headers version (${build_kv} >= ${want_kv})"
+ if ! eend_KV ${build_kv} ${want_kv} ; then
+ echo
+ eerror "You need linux-headers of at least ${want_kv}!"
+ die "linux-headers version too low!"
+ fi
+ fi
+ fi
+}
+
+#
+# the phases
+#
+
+# pkg_pretend
+
+pkg_pretend() {
+ # All the checks...
+ einfo "Checking general environment sanity."
+ sanity_prechecks
+}
+
+# src_unpack
+
+src_unpack() {
+ # Consistency is not guaranteed between pkg_ and src_ ...
+ sanity_prechecks
+
+ use multilib && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz
+
+ setup_env
+
+ if [[ -n ${EGIT_REPO_URI} ]] ; then
+ git-r3_src_unpack
+ else
+ unpack ${P}.tar.xz
+ fi
+
+ cd "${S}" || die
+ touch locale/C-translit.h || die #185476 #218003
+
+ cd "${WORKDIR}" || die
+ unpack glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.xz
+}
+
+src_prepare() {
+ if ! use vanilla ; then
+ elog "Applying Gentoo Glibc Patchset ${RELEASE_VER}-${PATCH_VER}"
+ eapply "${WORKDIR}"/patches
+ einfo "Done."
+ fi
+
+ default
+
+ gnuconfig_update
+
+ cd "${WORKDIR}"
+ find . -name configure -exec touch {} +
+
+ eprefixify extra/locale/locale-gen
+
+ # Fix permissions on some of the scripts.
+ chmod u+x "${S}"/scripts/*.sh
+
+ cd "${S}"
+}
+
+glibc_do_configure() {
+ # Glibc does not work with gold (for various reasons) #269274.
+ tc-ld-disable-gold
+
+ # CXX isnt handled by the multilib system, so if we dont unset here
+ # we accumulate crap across abis
+ unset CXX
+
+ einfo "Configuring glibc for nptl"
+
+ if use doc ; then
+ export MAKEINFO=makeinfo
+ else
+ export MAKEINFO=/dev/null
+ fi
+
+ local v
+ for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX LD {AS,C,CPP,CXX,LD}FLAGS MAKEINFO ; do
+ einfo " $(printf '%15s' ${v}:) ${!v}"
+ done
+
+ # CFLAGS can contain ABI-specific flags like -mfpu=neon, see bug #657760
+ # To build .S (assembly) files with the same ABI-specific flags
+ # upstream currently recommends adding CFLAGS to CC/CXX:
+ # https://sourceware.org/PR23273
+ # Note: Passing CFLAGS via CPPFLAGS overrides glibc's arch-specific CFLAGS
+ # and breaks multiarch support. See 659030#c3 for an example.
+ # The glibc configure script doesn't properly use LDFLAGS all the time.
+ export CC="$(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS}"
+ einfo " $(printf '%15s' 'Manual CC:') ${CC}"
+
+ # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548
+ export CXX="$(tc-getCXX ${CTARGET}) $(get_abi_CFLAGS) ${CFLAGS}"
+ einfo " $(printf '%15s' 'Manual CXX:') ${CXX}"
+
+ echo
+
+ local myconf=()
+
+ case ${CTARGET} in
+ powerpc-*)
+ # Currently gcc on powerpc32 generates invalid code for
+ # __builtin_return_address(0) calls. Normally programs
+ # don't do that but malloc hooks in glibc do:
+ # https://gcc.gnu.org/PR81996
+ # https://bugs.gentoo.org/629054
+ myconf+=( --enable-stack-protector=no )
+ ;;
+ *)
+ myconf+=( --enable-stack-protector=all )
+ ;;
+ esac
+ myconf+=( --enable-stackguard-randomization )
+
+ # Keep a whitelist of targets supporing IFUNC. glibc's ./configure
+ # is not robust enough to detect proper support:
+ # https://bugs.gentoo.org/641216
+ # https://sourceware.org/PR22634#c0
+ case $(tc-arch ${CTARGET}) in
+ # Keep whitelist of targets where autodetection mostly works.
+ amd64|x86|sparc|ppc|ppc64|arm|arm64|s390) ;;
+ # Blacklist everywhere else
+ *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;;
+ esac
+
+ # Enable Intel Control-flow Enforcement Technology on amd64 if requested
+ case ${CTARGET} in
+ x86_64-*) myconf+=( $(use_enable cet) ) ;;
+ *) ;;
+ esac
+
+ [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp )
+
+ myconf+=( --enable-kernel=${MIN_KERN_VER} )
+
+ # Since SELinux support is only required for nscd, only enable it if:
+ # 1. USE selinux
+ # 2. only for the primary ABI on multilib systems
+ # 3. Not a crosscompile
+ if ! is_crosscompile && use selinux ; then
+ if use multilib ; then
+ if is_final_abi ; then
+ myconf+=( --with-selinux )
+ else
+ myconf+=( --without-selinux )
+ fi
+ else
+ myconf+=( --with-selinux )
+ fi
+ else
+ myconf+=( --without-selinux )
+ fi
+
+ # Force a few tests where we always know the answer but
+ # configure is incapable of finding it.
+ if is_crosscompile ; then
+ export \
+ libc_cv_c_cleanup=yes \
+ libc_cv_forced_unwind=yes
+ fi
+
+ myconf+=(
+ --without-cvs
+ --disable-werror
+ --enable-bind-now
+ --build=${CBUILD_OPT:-${CBUILD}}
+ --host=${CTARGET_OPT:-${CTARGET}}
+ $(use_enable profile)
+ $(use_with gd)
+ --with-headers=$(alt_build_headers)
+ --prefix="${EPREFIX}/usr"
+ --sysconfdir="${EPREFIX}/etc"
+ --localstatedir="${EPREFIX}/var"
+ --libdir='$(prefix)'/$(get_libdir)
+ --mandir='$(prefix)'/share/man
+ --infodir='$(prefix)'/share/info
+ --libexecdir='$(libdir)'/misc/glibc
+ --with-bugurl=https://bugs.gentoo.org/
+ --with-pkgversion="$(glibc_banner)"
+ $(use_multiarch || echo --disable-multi-arch)
+ $(use_enable systemtap)
+ $(use_enable nscd)
+ ${EXTRA_ECONF}
+ )
+
+ # We rely on sys-libs/timezone-data for timezone tools normally.
+ myconf+=( $(use_enable vanilla timezone-tools) )
+
+ # These libs don't have configure flags.
+ ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no)
+ ac_cv_lib_cap_cap_init=$(usex caps || echo no)
+
+ # There is no configure option for this and we need to export it
+ # since the glibc build will re-run configure on itself
+ export libc_cv_rootsbindir="${EPREFIX}/sbin"
+ export libc_cv_slibdir="${EPREFIX}/$(get_libdir)"
+
+ # We take care of patching our binutils to use both hash styles,
+ # and many people like to force gnu hash style only, so disable
+ # this overriding check. #347761
+ export libc_cv_hashstyle=no
+
+ local builddir=$(builddir nptl)
+ mkdir -p "${builddir}"
+ cd "${builddir}"
+ set -- "${S}"/configure "${myconf[@]}"
+ echo "$@"
+ "$@" || die "failed to configure glibc"
+
+ # ia64 static cross-compilers are a pita in so much that they
+ # can't produce static ELFs (as the libgcc.a is broken). so
+ # disable building of the programs for those targets if it
+ # doesn't work.
+ # XXX: We could turn this into a compiler test, but ia64 is
+ # the only one that matters, so this should be fine for now.
+ if is_crosscompile && [[ ${CTARGET} == ia64* ]] ; then
+ sed -i '1i+link-static = touch $@' config.make
+ fi
+
+ # If we're trying to migrate between ABI sets, we need
+ # to lie and use a local copy of gcc. Like if the system
+ # is built with MULTILIB_ABIS="amd64 x86" but we want to
+ # add x32 to it, gcc/glibc don't yet support x32.
+ #
+ if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib ; then
+ echo 'main(){}' > "${T}"/test.c
+ if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then
+ sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die
+ fi
+ fi
+}
+
+glibc_headers_configure() {
+ export ABI=default
+
+ local builddir=$(builddir "headers")
+ mkdir -p "${builddir}"
+ cd "${builddir}"
+
+ # if we don't have a compiler yet, we can't really test it now ...
+ # hopefully they don't affect header generation, so let's hope for
+ # the best here ...
+ local v vars=(
+ ac_cv_header_cpuid_h=yes
+ libc_cv_{386,390,alpha,arm,hppa,ia64,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tls=yes
+ libc_cv_asm_cfi_directives=yes
+ libc_cv_broken_visibility_attribute=no
+ libc_cv_c_cleanup=yes
+ libc_cv_compiler_powerpc64le_binary128_ok=yes
+ libc_cv_forced_unwind=yes
+ libc_cv_gcc___thread=yes
+ libc_cv_mlong_double_128=yes
+ libc_cv_mlong_double_128ibm=yes
+ libc_cv_ppc_machine=yes
+ libc_cv_ppc_rel16=yes
+ libc_cv_predef_fortify_source=no
+ libc_cv_target_power8_ok=yes
+ libc_cv_visibility_attribute=yes
+ libc_cv_z_combreloc=yes
+ libc_cv_z_execstack=yes
+ libc_cv_z_initfirst=yes
+ libc_cv_z_nodelete=yes
+ libc_cv_z_nodlopen=yes
+ libc_cv_z_relro=yes
+ libc_mips_abi=${ABI}
+ libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard)
+ # These libs don't have configure flags.
+ ac_cv_lib_audit_audit_log_user_avc_message=no
+ ac_cv_lib_cap_cap_init=no
+ )
+
+ einfo "Forcing cached settings:"
+ for v in "${vars[@]}" ; do
+ einfo " ${v}"
+ export ${v}
+ done
+
+ local headers_only_arch_CPPFLAGS=()
+
+ # Blow away some random CC settings that screw things up. #550192
+ if [[ -d ${S}/sysdeps/mips ]]; then
+ pushd "${S}"/sysdeps/mips >/dev/null
+ sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile mips64/n32/Makefile || die
+ sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:' mips64/n64/Makefile || die
+
+ # Force the mips ABI to the default. This is OK because the set of
+ # installed headers in this phase is the same between the 3 ABIs.
+ # If this ever changes, this hack will break, but that's unlikely
+ # as glibc discourages that behavior.
+ # https://crbug.com/647033
+ sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure || die
+
+ popd >/dev/null
+ fi
+
+ case ${CTARGET} in
+ riscv*)
+ # RISC-V interrogates the compiler to determine which target to
+ # build. If building the headers then we don't strictly need a
+ # RISC-V compiler, so the built-in definitions that are provided
+ # along with all RISC-V compiler might not exist. This causes
+ # glibc's RISC-V preconfigure script to blow up. Since we're just
+ # building the headers any value will actually work here, so just
+ # pick the standard one (rv64g/lp64d) to make the build scripts
+ # happy for now -- the headers are all the same anyway so it
+ # doesn't matter.
+ headers_only_arch_CPPFLAGS+=(
+ -D__riscv_xlen=64
+ -D__riscv_flen=64
+ -D__riscv_float_abi_double=1
+ -D__riscv_atomic=1
+ ) ;;
+ esac
+
+ local myconf=()
+ myconf+=(
+ --disable-sanity-checks
+ --enable-hacker-mode
+ --without-cvs
+ --disable-werror
+ --enable-bind-now
+ --build=${CBUILD_OPT:-${CBUILD}}
+ --host=${CTARGET_OPT:-${CTARGET}}
+ --with-headers=$(alt_build_headers)
+ --prefix="${EPREFIX}/usr"
+ ${EXTRA_ECONF}
+ )
+
+ # Nothing is compiled here which would affect the headers for the target.
+ # So forcing CC/CFLAGS is sane.
+ local headers_only_CC=$(tc-getBUILD_CC)
+ local headers_only_CFLAGS="-O1 -pipe"
+ local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}"
+ local headers_only_LDFLAGS=""
+ set -- "${S}"/configure "${myconf[@]}"
+ echo \
+ "CC=${headers_only_CC}" \
+ "CFLAGS=${headers_only_CFLAGS}" \
+ "CPPFLAGS=${headers_only_CPPFLAGS}" \
+ "LDFLAGS=${headers_only_LDFLAGS}" \
+ "$@"
+ CC=${headers_only_CC} \
+ CFLAGS=${headers_only_CFLAGS} \
+ CPPFLAGS=${headers_only_CPPFLAGS} \
+ LDFLAGS="" \
+ "$@" || die "failed to configure glibc"
+}
+
+do_src_configure() {
+ if just_headers ; then
+ glibc_headers_configure
+ else
+ glibc_do_configure nptl
+ fi
+}
+
+src_configure() {
+ foreach_abi do_src_configure
+}
+
+do_src_compile() {
+ emake -C "$(builddir nptl)" || die "make nptl for ${ABI} failed"
+}
+
+src_compile() {
+ if just_headers ; then
+ return
+ fi
+
+ foreach_abi do_src_compile
+}
+
+glibc_src_test() {
+ cd "$(builddir nptl)"
+ emake check
+}
+
+do_src_test() {
+ local ret=0
+
+ glibc_src_test
+ : $(( ret |= $? ))
+
+ return ${ret}
+}
+
+src_test() {
+ if just_headers ; then
+ return
+ fi
+
+ # Give tests more time to complete.
+ export TIMEOUTFACTOR=5
+
+ foreach_abi do_src_test || die "tests failed"
+}
+
+run_locale_gen() {
+ # if the host locales.gen contains no entries, we'll install everything
+ local root="$1"
+ local locale_list="${root}/etc/locale.gen"
+ if [[ -z $(locale-gen --list --config "${locale_list}") ]] ; then
+ ewarn "Generating all locales; edit /etc/locale.gen to save time/space"
+ locale_list="${root}/usr/share/i18n/SUPPORTED"
+ fi
+
+ locale-gen --jobs $(makeopts_jobs) --config "${locale_list}" \
+ --destdir "${root}"
+}
+
+glibc_do_src_install() {
+ local builddir=$(builddir nptl)
+ cd "${builddir}"
+
+ emake install_root="${D}$(alt_prefix)" install || die
+
+ # This version (2.26) provides some compatibility libraries for the NIS/NIS+ support
+ # which come without headers etc. Only needed for binary packages since the
+ # external net-libs/libnsl has increased soversion. Keep only versioned libraries.
+ find "${D}" -name "libnsl.a" -delete
+ find "${D}" -name "libnsl.so" -delete
+
+ # Normally upstream_pv is ${PV}. Live ebuilds are exception, there we need
+ # to infer upstream version:
+ # '#define VERSION "2.26.90"' -> '2.26.90'
+ local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h)
+
+ if [[ -e ${ED}$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then
+ # Move versioned .a file out of libdir to evade portage QA checks
+ # instead of using gen_usr_ldscript(). We fix ldscript as:
+ # "GROUP ( /usr/lib64/libm-<pv>.a ..." -> "GROUP ( /usr/lib64/glibc-<pv>/libm-<pv>.a ..."
+ sed -i "s@\(libm-${upstream_pv}.a\)@${P}/\1@" "${ED}"$(alt_usrlibdir)/libm.a || die
+ dodir $(alt_usrlibdir)/${P}
+ mv "${ED}"$(alt_usrlibdir)/libm-${upstream_pv}.a "${ED}"$(alt_usrlibdir)/${P}/libm-${upstream_pv}.a || die
+ fi
+
+ # We'll take care of the cache ourselves
+ rm -f "${ED}"/etc/ld.so.cache
+
+ # Everything past this point just needs to be done once ...
+ is_final_abi || return 0
+
+ # Make sure the non-native interp can be found on multilib systems even
+ # if the main library set isn't installed into the right place. Maybe
+ # we should query the active gcc for info instead of hardcoding it ?
+ local i ldso_abi ldso_name
+ local ldso_abi_list=(
+ # x86
+ amd64 /lib64/ld-linux-x86-64.so.2
+ x32 /libx32/ld-linux-x32.so.2
+ x86 /lib/ld-linux.so.2
+ # mips
+ o32 /lib/ld.so.1
+ n32 /lib32/ld.so.1
+ n64 /lib64/ld.so.1
+ # powerpc
+ ppc /lib/ld.so.1
+ ppc64 /lib64/ld64.so.1
+ # s390
+ s390 /lib/ld.so.1
+ s390x /lib/ld64.so.1
+ # sparc
+ sparc32 /lib/ld-linux.so.2
+ sparc64 /lib64/ld-linux.so.2
+ )
+ case $(tc-endian) in
+ little)
+ ldso_abi_list+=(
+ # arm
+ arm64 /lib/ld-linux-aarch64.so.1
+ )
+ ;;
+ big)
+ ldso_abi_list+=(
+ # arm
+ arm64 /lib/ld-linux-aarch64_be.so.1
+ )
+ ;;
+ esac
+ if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then
+ dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib
+ fi
+ for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do
+ ldso_abi=${ldso_abi_list[i]}
+ has ${ldso_abi} $(get_install_abis) || continue
+
+ ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}"
+ if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then
+ dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name}
+ fi
+ done
+
+ # With devpts under Linux mounted properly, we do not need the pt_chown
+ # binary to be setuid. This is because the default owners/perms will be
+ # exactly what we want.
+ if ! use suid ; then
+ find "${ED}" -name pt_chown -exec chmod -s {} +
+ fi
+
+ #################################################################
+ # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY #
+ # Make sure we install some symlink hacks so that when we build
+ # a 2nd stage cross-compiler, gcc finds the target system
+ # headers correctly. See gcc/doc/gccinstall.info
+ if is_crosscompile ; then
+ # We need to make sure that /lib and /usr/lib always exists.
+ # gcc likes to use relative paths to get to its multilibs like
+ # /usr/lib/../lib64/. So while we don't install any files into
+ # /usr/lib/, we do need it to exist.
+ keepdir $(alt_prefix)/lib
+ keepdir $(alt_prefix)/usr/lib
+
+ dosym usr/include $(alt_prefix)/sys-include
+ return 0
+ fi
+
+ # Files for Debian-style locale updating
+ dodir /usr/share/i18n
+ sed \
+ -e "/^#/d" \
+ -e "/SUPPORTED-LOCALES=/d" \
+ -e "s: \\\\::g" -e "s:/: :g" \
+ "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \
+ || die "generating /usr/share/i18n/SUPPORTED failed"
+ cd "${WORKDIR}"/extra/locale
+ dosbin locale-gen
+ doman *.[0-8]
+ insinto /etc
+ doins locale.gen
+
+ # Make sure all the ABI's can find the locales and so we only
+ # have to generate one set
+ local a
+ keepdir /usr/$(get_libdir)/locale
+ for a in $(get_install_abis) ; do
+ if [[ ! -e ${ED}/usr/$(get_abi_LIBDIR ${a})/locale ]] ; then
+ dosym ../$(get_libdir)/locale /usr/$(get_abi_LIBDIR ${a})/locale
+ fi
+ done
+
+ cd "${S}"
+
+ # Install misc network config files
+ insinto /etc
+ doins nscd/nscd.conf posix/gai.conf nss/nsswitch.conf
+ doins "${WORKDIR}"/extra/etc/*.conf
+
+ if use nscd ; then
+ doinitd "$(prefixify_ro "${WORKDIR}"/extra/etc/nscd)"
+
+ local nscd_args=(
+ -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):"
+ )
+
+ sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd
+
+ systemd_dounit nscd/nscd.service
+ systemd_newtmpfilesd nscd/nscd.tmpfiles nscd.conf
+ else
+ # Do this since extra/etc/*.conf above might have nscd.conf.
+ rm -f "${ED}"/etc/nscd.conf
+ fi
+
+ echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc
+ doenvd "${T}"/00glibc
+
+ for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do
+ [[ -s ${d} ]] && dodoc ${d}
+ done
+ dodoc -r ChangeLog.old
+
+ # Prevent overwriting of the /etc/localtime symlink. We'll handle the
+ # creation of the "factory" symlink in pkg_postinst().
+ rm -f "${ED}"/etc/localtime
+
+ # Generate all locales if this is a native build as locale generation
+ if use compile-locales && ! is_crosscompile ; then
+ run_locale_gen "${ED}"
+ fi
+}
+
+glibc_headers_install() {
+ local builddir=$(builddir "headers")
+ cd "${builddir}"
+ emake install_root="${D}$(alt_prefix)" install-headers
+
+ insinto $(alt_headers)/gnu
+ doins "${S}"/include/gnu/stubs.h
+
+ # Make sure we install the sys-include symlink so that when
+ # we build a 2nd stage cross-compiler, gcc finds the target
+ # system headers correctly. See gcc/doc/gccinstall.info
+ dosym usr/include $(alt_prefix)/sys-include
+}
+
+src_strip() {
+ # gdb is lame and requires some debugging information to remain in
+ # libpthread, so we need to strip it by hand. libthread_db makes no
+ # sense stripped as it is only used when debugging.
+ local pthread=$(has splitdebug ${FEATURES} && echo "libthread_db" || echo "lib{pthread,thread_db}")
+ env \
+ -uRESTRICT \
+ CHOST=${CTARGET} \
+ STRIP_MASK="/*/{,tls/}${pthread}*" \
+ prepallstrip
+ # if user has stripping enabled and does not have split debug turned on,
+ # then leave the debugging sections in libpthread.
+ if ! has nostrip ${FEATURES} && ! has splitdebug ${FEATURES} ; then
+ ${STRIP:-${CTARGET}-strip} --strip-debug "${ED}"$(alt_prefix)/*/libpthread-*.so
+ fi
+}
+
+src_install() {
+ if just_headers ; then
+ export ABI=default
+ glibc_headers_install
+ return
+ fi
+
+ foreach_abi glibc_do_src_install
+ src_strip
+}
+
+# Simple test to make sure our new glibc isn't completely broken.
+# Make sure we don't test with statically built binaries since
+# they will fail. Also, skip if this glibc is a cross compiler.
+#
+# If coreutils is built with USE=multicall, some of these files
+# will just be wrapper scripts, not actual ELFs we can test.
+glibc_sanity_check() {
+ cd / #228809
+
+ # We enter ${ED} so to avoid trouble if the path contains
+ # special characters; for instance if the path contains the
+ # colon character (:), then the linker will try to split it
+ # and look for the libraries in an unexpected place. This can
+ # lead to unsafe code execution if the generated prefix is
+ # within a world-writable directory.
+ # (e.g. /var/tmp/portage:${HOSTNAME})
+ pushd "${ED}"/$(get_libdir) >/dev/null
+
+ local x striptest
+ for x in cal date env free ls true uname uptime ; do
+ x=$(type -p ${x})
+ [[ -z ${x} || ${x} != ${EPREFIX}/* ]] && continue
+ striptest=$(LC_ALL="C" file -L ${x} 2>/dev/null) || continue
+ case ${striptest} in
+ *"statically linked"*) continue;;
+ *"ASCII text"*) continue;;
+ esac
+ # We need to clear the locale settings as the upgrade might want
+ # incompatible locale data. This test is not for verifying that.
+ LC_ALL=C \
+ ./ld-*.so --library-path . ${x} > /dev/null \
+ || die "simple run test (${x}) failed"
+ done
+
+ popd >/dev/null
+}
+
+pkg_preinst() {
+ # nothing to do if just installing headers
+ just_headers && return
+
+ # prepare /etc/ld.so.conf.d/ for files
+ mkdir -p "${EROOT}"/etc/ld.so.conf.d
+
+ # Default /etc/hosts.conf:multi to on for systems with small dbs.
+ if [[ $(wc -l < "${EROOT}"/etc/hosts) -lt 1000 ]] ; then
+ sed -i '/^multi off/s:off:on:' "${ED}"/etc/host.conf
+ einfo "Defaulting /etc/host.conf:multi to on"
+ fi
+
+ [[ ${ROOT} != "/" ]] && return 0
+ [[ -d ${ED}/$(get_libdir) ]] || return 0
+ [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check
+}
+
+pkg_postinst() {
+ # nothing to do if just installing headers
+ just_headers && return
+
+ if ! tc-is-cross-compiler && [[ -x ${EROOT}/usr/sbin/iconvconfig ]] ; then
+ # Generate fastloading iconv module configuration file.
+ "${EROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}"
+ fi
+
+ if ! is_crosscompile && [[ ${ROOT} == "/" ]] ; then
+ # Reload init ... if in a chroot or a diff init package, ignore
+ # errors from this step #253697
+ /sbin/telinit U 2>/dev/null
+
+ use compile-locales || run_locale_gen "${EROOT}"
+ fi
+
+ # Check for sanity of /etc/nsswitch.conf, take 2
+ if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then
+ local entry
+ for entry in passwd group shadow; do
+ if egrep -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then
+ ewarn ""
+ ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been"
+ ewarn "removed from glibc and is now provided by the package"
+ ewarn " sys-auth/libnss-nis"
+ ewarn "Install it now to keep your NIS setup working."
+ ewarn ""
+ fi
+ done
+ fi
+}
diff --git a/sys-libs/libselinux/Manifest b/sys-libs/libselinux/Manifest
index 01b00a3fbe00..741d159f96be 100644
--- a/sys-libs/libselinux/Manifest
+++ b/sys-libs/libselinux/Manifest
@@ -1,7 +1,7 @@
DIST libselinux-2.7.tar.gz 187574 BLAKE2B cc6ee51d5015943dd73fe16efb2ce2478616f43eaf7da55655de50502010e69973c2de13c8a562c8814a31211a8dbd7200fa2f22761f3d0f81fa3a1d3cd1e998 SHA512 415d10306692d4323455b61fb61d7e56e53b9144276ff206d72760e1df9b04ab07c62a4d6f04bf4e5fa708f9f14b21a9801069b16ece0a0aade886950941ab8d
DIST libselinux-2.8.tar.gz 187759 BLAKE2B 1e0e1a5aa2230fd6080e921efe871e97fa9412176b72a0c9721f60c6190459e508644fa3370f3b5f513f088428844c7c615cda4567990ddee91c13e1ee88f9ed SHA512 2f15d08888fbef9b0cf7bf01893b513edc6738974e2d0eab7e3f79cef9be79cf966742b0d2693b5d2ec7defddb5f4d6c6f6280be9d4158ed41f7a18d50b9f019
EBUILD libselinux-2.7.ebuild 4019 BLAKE2B f5dfa22a258e893e7b084196a45e45ee3a9b8ceb2da5ebef5b7d329c4e37149197d0cbdf31e569dfaaf4881120a2ec80d25911bf47c1ec4f8ee9ffa55edf48ea SHA512 62ef94ea79e87533e38a9b98128f65dc8cc7179ba4993f2d346d543db0aa3658fc1741028f7e75a645d6e514fd41ea724ed55cf5a094c71c290f6117235dc677
-EBUILD libselinux-2.8-r1.ebuild 4197 BLAKE2B 0e7d31f21d40be4faed9ed44e794f3c9089ef4c41f732b586b513df7c9859d896f3d6d36ea106669854ec88eb80a5fbbf6db000178402e0239b57cda0282cad0 SHA512 8a7e6b81447b46401048df1f0923d1dd6b8a6104c182016091d55a1e34785f75492145150c406824900175d077d0c77f476ff7753c6b998d3514e5e76776529f
+EBUILD libselinux-2.8-r1.ebuild 4195 BLAKE2B 112a17e373c8c62e2308823284ac04508b6b1e39992e8e8bb09f91c857a881e4f51480ecca7d2d442dfc7e2b0f1b7578daffd8f33d6498165fdf0917cc729df3 SHA512 3294bfdf9b27ab636a0eaa9b4314a6191b745ed324ea8b69efabf0ddf9143ae064b8c8d1197be34f81dc6cb4fe3bbe5ea338fab95e0b2b6cd77e0f58478c8aca
EBUILD libselinux-2.8.ebuild 4126 BLAKE2B b73296f76f807bbf7e881474f554c6597c36c1d61eec06c477d3177bf67d506298d866c180b9f1094147750842359887bddde2e8c561fb60c3d1ef99f61a8230 SHA512 5980c8ac1b1c1e497bd38ff99b3ff78eceda88ae246d95d4e4a9da5325461b1f10572b0c9bfbc530775c2109ffa3b533e4581eabaea56a7dc0d4844697edc603
EBUILD libselinux-9999.ebuild 4197 BLAKE2B 0e7d31f21d40be4faed9ed44e794f3c9089ef4c41f732b586b513df7c9859d896f3d6d36ea106669854ec88eb80a5fbbf6db000178402e0239b57cda0282cad0 SHA512 8a7e6b81447b46401048df1f0923d1dd6b8a6104c182016091d55a1e34785f75492145150c406824900175d077d0c77f476ff7753c6b998d3514e5e76776529f
MISC metadata.xml 676 BLAKE2B 530269a4d717ef305f4b15fe02c54e26f6acb9d73d6c7ac6ecd1f947712912f98120820a362e7cdc8e17019e88bc9c30162d54002bdea6facb2c41931e9c54f2 SHA512 7b33e0d113637a129a7894d8720feb9024d67466b86d475fbc3398f514b2ecc28c70dc759952376208d2022a00658eb120fc3561edbb9c7ecdc4404bed5f57a7
diff --git a/sys-libs/libselinux/libselinux-2.8-r1.ebuild b/sys-libs/libselinux/libselinux-2.8-r1.ebuild
index 7ff555999a09..10c723c47044 100644
--- a/sys-libs/libselinux/libselinux-2.8-r1.ebuild
+++ b/sys-libs/libselinux/libselinux-2.8-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Authors
+# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="6"
@@ -21,7 +21,7 @@ if [[ ${PV} == 9999 ]] ; then
S="${WORKDIR}/${MY_P}/${PN}"
else
SRC_URI="https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases/${MY_RELEASEDATE}/${MY_P}.tar.gz"
- KEYWORDS="~amd64 ~arm ~arm64 ~mips ~x86"
+ KEYWORDS="amd64 ~arm ~arm64 ~mips x86"
S="${WORKDIR}/${MY_P}"
fi
diff --git a/sys-libs/musl/Manifest b/sys-libs/musl/Manifest
index b774b86c9208..75a349583ada 100644
--- a/sys-libs/musl/Manifest
+++ b/sys-libs/musl/Manifest
@@ -6,7 +6,7 @@ DIST iconv.c 2577 BLAKE2B 070ca87b30c90ab98c27d5faf7a2fcb64ff7c67ca212ee6072165b
DIST musl-1.1.19.tar.gz 960319 BLAKE2B 3e69de2ed9384fe200bb64e603f342a930acf035cf7bac8fe3cd4225800424207df2b73fe6fabf3147fc8023a655839c33f50c0be8e30f51f76b84aba4de30b5 SHA512 abee52d53af4b3c14c9088866c911a24d2b6ef67dc494f38a7a09dfe77250026f77528c24c52469c89cffa8ced2f0fa95badbdcf8d4460c90faba47e3927bcc5
DIST musl-1.1.20.tar.gz 977827 BLAKE2B c8ce3cc1885e8103e1cf9d67183d89e5e222fd317158b20f25a8e1855a3cd5d16c79b4d95ff896fe7262f233141c3f3ca4dfc6a26a2373ab1d29a3c66b904e61 SHA512 d3a7a30aa375ca50d7dcfbd618581d59e1aa5378417f50a0ca5510099336fd74cc9db468e05c93dda3067abd890f6bd47af226c3446bb833adf0a5054bff2e5d
EBUILD musl-1.1.19.ebuild 3052 BLAKE2B 5ef489e0ed841a692375c06e85b304eefc046dfe91cd15b9255208ebc34ef571bd8d32074fa0e7babae1d93497e3b5d46295e74e3fd33eab6210d2f08b04c848 SHA512 1eb90564e0f0939fff635a48799c992e8301911a5c1382e0a20975a149eec6bcc5a3f79e3ac51f5e8bcd5ee7bd22bc01aa28ee378be7b684a1c0235af2d6ef0d
-EBUILD musl-1.1.20-r1.ebuild 3136 BLAKE2B ac7f9b1413667e9521a19f1f607a1d54253528ca33357d56cace91bdbc5aa48e7c570ef4c04f3c8633077b91e18e19d455423302ed0652a2fe826459b7346faa SHA512 8e37303e3635916ee40f8ac5162786a38c9cb721d8b48922054fd63d9fc665aaf0eb995d1ba4182351ffca38aecc69956bc06ef066fc8b2ae309ce2be72a5a5a
+EBUILD musl-1.1.20-r1.ebuild 3131 BLAKE2B aa772ac4c028022eb5bebffeb746b8f9393376966f1b1feaa2d6c10d58d0cabf91bbafd9d70aa37fdf00e458141da01498d9e4c90d28c92538ea5f12ca0fe7ea SHA512 7312e4ed0a7d7de47e8ccaba7d5e752f8afac2d4c2e128500f93101e4cd02702ecf96acf0107e0359df8e96228fc276540541146cc4d062f5687ec26b10dc2ad
EBUILD musl-1.1.20.ebuild 3055 BLAKE2B db7546fa0a34f8d422d9413ae4459516b49223072a804b89a8893d156c8e909aeb8cb6c7b31b136300ac88710fc23193cd23f6472bb6eff0bfe871436d1fad82 SHA512 6c9d750ac2db36f9875d738f4e20e3885eae7e870d5ff07d7e87f6445e4e4c6740ab4ae67281ae1c00d93c77540949da8691d65da9760cf769c919da6dcf003f
EBUILD musl-9999.ebuild 3057 BLAKE2B 0d689b80a869101edc855978b619d4e668f11886122294f242e27093647c64388c9481fc3d50303ceadeafc6ea37f9e29682e04e2bde0f82da59834bf97ebbcb SHA512 11ee3bc218c99a891c62d7efe4de1fedf650b1614a117c62b9d1469e5c8ffc448385533b5ff9320dc838e7ed8ccd9d5dce24f8fd46787c1f6f027dd54685d348
MISC metadata.xml 452 BLAKE2B f6d26f456e1a1005b0103c6921d59504dcacddfaf9ec3c788f6f626df670ec7e979a8a66626d7de24d0b850651bf095610c191d520b67915a701bf8564189fc4 SHA512 676d8122179a5cb56e0b9c7aeb7f0aec8c19b5d7b604a19c9ee01aeca837a74cc4284e87cc743d0eaf527f0c79afdfeb1f238c204a8a6c1c5590b2718bbc9b03
diff --git a/sys-libs/musl/musl-1.1.20-r1.ebuild b/sys-libs/musl/musl-1.1.20-r1.ebuild
index f336112e3797..13a18acc7023 100644
--- a/sys-libs/musl/musl-1.1.20-r1.ebuild
+++ b/sys-libs/musl/musl-1.1.20-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -17,7 +17,7 @@ else
https://dev.gentoo.org/~blueness/musl-misc/getconf.c
https://dev.gentoo.org/~blueness/musl-misc/getent.c
https://dev.gentoo.org/~blueness/musl-misc/iconv.c"
- KEYWORDS="-* amd64 ~arm ~arm64 ~mips ~ppc x86"
+ KEYWORDS="-* amd64 arm ~arm64 ~mips ppc x86"
fi
export CBUILD=${CBUILD:-${CHOST}}
diff --git a/sys-libs/openipmi/Manifest b/sys-libs/openipmi/Manifest
index aac9ed076657..844054688696 100644
--- a/sys-libs/openipmi/Manifest
+++ b/sys-libs/openipmi/Manifest
@@ -5,7 +5,7 @@ AUX openipmi-2.0.26-tinfo.patch 808 BLAKE2B fc7545b3610c9ba6a2d8d7075a8db3384659
DIST OpenIPMI-2.0.22.tar.gz 3081893 BLAKE2B 6ec5ec7f61f3033a9d953df4b091522fa5bd891a93dfe648f807548e3dc0f5ffc0d15af9b687379e6749d7b97ee2fd6c7f9e713aaa7423b82bf099fb2d0fb6b8 SHA512 78017fc0b52ce6a83db45f595f50170410120c9f7394429869c177ee40ea5b924bcc0e36bb60f9368a75a2f78ff71c70ae3631ba55a207cfb6eb4f62aa44ff89
DIST OpenIPMI-2.0.25.tar.gz 3212723 BLAKE2B eb0872fe4b06b84cdb6a4e301d4c80940351d8bf14d50e5cd67525a09ba98674cd890852d4692d6b77c4e935646f3bbd5e84202b8b619e65daef99034d7fb016 SHA512 5d89deb5d0d0ff44d6f62a9759577dba92aa58c208477e317aecbd01e71ccf7ba0dab138a1d8feff22d523c85d6ceaee9e478e26834ffcd91949b81d2d9c1f86
DIST OpenIPMI-2.0.26.tar.gz 3124706 BLAKE2B 08afeae1063b404dec3d6f9e5decdf9ac516c0096d8db3c42ff275c280267aa6a202cf4c63c5044cf1d24a95ecd617ad36c15e5c98c6b9cdad2647227f649ae6 SHA512 ffd1ea60727973238461c95373c71e28da04e2fd163bfcb8f5ef9a8ac197b554773231c064cac71c64fc7ccd720085a781fe3c6c8ed3c9dc5cc8ca88fff6f2d0
-EBUILD openipmi-2.0.22.ebuild 2739 BLAKE2B e6e55f84f94eff0f39eb041fe7b1d82f81bcaab2f0eb55c0010bde1e2ace70f4d493663a44ff9b859851556c7e78f7f4835ce8f4df96db2d8cb1a04a0f4ccdda SHA512 43e979f877e17c82ca317ea41d73e84cc9af65496b198b5b0c4f81251f0b47713022de672b105ba447f6e880d42546fa2140ca9dc4fe60f90cdf5c709eb3f5dc
-EBUILD openipmi-2.0.25.ebuild 2482 BLAKE2B 07716bb39ccca6ebd4128d4a7f6aa2ac1e0ac2cf30ae19c80240ca15cfee903db1566a9ae560aa02f9dd11189501e91bd417c64528418cf6ed4cd5ebb8e43bd7 SHA512 1f726abce948f14e4b0ad036b5dbb9a7540edd9a692c1de6071fb23a135b0a5e0bb30970c0c0b37f323dd3ec1d34d138280c60e8e822669d4b78e6f4df6a2822
-EBUILD openipmi-2.0.26.ebuild 2516 BLAKE2B 820f7ab46b15c91eeab0f06816734ba78b6bc886d9e5167108c447b19270d392751e0604a7164e8817a75fc8a7042f194a7b51375ed74c8542c37ea843d125d7 SHA512 bcfe9b02a75d659aecc223e4da7ef2039f2e282c9ad6de2b62ba6e8b954cb9961038960d2324ca8bca3302562340fb51d4806c66335c138b9b004dae64331c9e
+EBUILD openipmi-2.0.22.ebuild 2758 BLAKE2B 2e9d3b059b62cbfefc31fc0c941f5975c705a6b849014a47f26b7b4a7880114405e7ffda9422ae9dd948f7ad6d6aa5b18c12a9e404e7dc2c204a9089982f5ae1 SHA512 68bef9639ea0d72e20ef4b4c1d0d59307c20c70c702160f90c975daeae5a4ddeddfce7123defde623d7df4fd278eff8a53b501c76c210cf056d3bba975c1ad01
+EBUILD openipmi-2.0.25.ebuild 2501 BLAKE2B c03fb3dd479a032120862dfba9ecb1efb9da591b2a55ad220dfe44ff77411387074672660138d69c84c0a43bd5e380b7bad67bb9d7120d4346f9e12a7a26c426 SHA512 2afe8b31a90cf1652d29e43362815399b1ae4e8eb8e2fb5f7030134d853777bc0f2db2e90e4392fb7617bb3b62734b284c6654400e52f64c74b12854657fe18e
+EBUILD openipmi-2.0.26.ebuild 2538 BLAKE2B e560fa3ca1c38da676199f3eda29f5dab8adb037fa3b5b717dbe67e2b8af36a2daf3a737267df9b7db38e8bc792032924c58eb8d458164d3704b0a9a54b36a66 SHA512 aab2dae8346b88c4ffefa34ee5215269bf621d8106c804c33f5c659d410802e4556f12a2e3de394a66477ac3c9d967534c00878999e04dec5503a8e8fad16571
MISC metadata.xml 347 BLAKE2B 4857bbfde0e588b4ad2ac893f826affe46d77ead16c7565fa775580c23fdd35df745a9050b599d0ff333290a155b48cf6d571065abd8b2fe5cc4b2e136f3efc1 SHA512 f67b97714b2b543109c2bc90d8f474df13e8915b7a14fdc3a16b62f1dfbc59ac27c8e64d19429b87a63ee2c1e4812cee26d8fb797591028484b2072b1951231f
diff --git a/sys-libs/openipmi/openipmi-2.0.22.ebuild b/sys-libs/openipmi/openipmi-2.0.22.ebuild
index 3daad1105d0b..f9a0b23c193b 100644
--- a/sys-libs/openipmi/openipmi-2.0.22.ebuild
+++ b/sys-libs/openipmi/openipmi-2.0.22.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -24,6 +24,7 @@ RDEPEND="
dev-libs/glib:2
sys-libs/gdbm:=
sys-libs/ncurses:0=
+ sys-libs/readline:0=
crypt? ( dev-libs/openssl:0= )
snmp? ( net-analyzer/net-snmp )
perl? ( dev-lang/perl )
diff --git a/sys-libs/openipmi/openipmi-2.0.25.ebuild b/sys-libs/openipmi/openipmi-2.0.25.ebuild
index e000e191fbcc..bcbbd3548fd0 100644
--- a/sys-libs/openipmi/openipmi-2.0.25.ebuild
+++ b/sys-libs/openipmi/openipmi-2.0.25.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -24,6 +24,7 @@ RDEPEND="
dev-libs/glib:2
sys-libs/gdbm:=
sys-libs/ncurses:0=
+ sys-libs/readline:0=
crypt? ( dev-libs/openssl:0= )
snmp? ( net-analyzer/net-snmp )
perl? ( dev-lang/perl )
diff --git a/sys-libs/openipmi/openipmi-2.0.26.ebuild b/sys-libs/openipmi/openipmi-2.0.26.ebuild
index 8a5328f22d64..d129342203a7 100644
--- a/sys-libs/openipmi/openipmi-2.0.26.ebuild
+++ b/sys-libs/openipmi/openipmi-2.0.26.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Authors
+# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -24,6 +24,7 @@ RDEPEND="
dev-libs/glib:2
sys-libs/gdbm:=
sys-libs/ncurses:0=
+ sys-libs/readline:0=
crypt? ( dev-libs/openssl:0= )
snmp? ( net-analyzer/net-snmp )
perl? ( dev-lang/perl )
diff --git a/sys-libs/readline/Manifest b/sys-libs/readline/Manifest
index 524d4651889e..05e0b1006090 100644
--- a/sys-libs/readline/Manifest
+++ b/sys-libs/readline/Manifest
@@ -5,10 +5,12 @@ AUX readline-6.3-read-eof.patch 1913 BLAKE2B 85cbba295d21de00af7cfa361d7976aabfb
AUX readline-7.0-headers.patch 550 BLAKE2B 82949940cda6d042923b3dde777fbd66643d80f4c2fd984eb11ef7f0fb48776ba8938d1c8be23087b328ce9b3ad0acd668f5bb4f0bda77b4a992119688a37191 SHA512 fec3d20e1581f35609a9d9f9ee1f48df8f9aa781e1a2cdcde2edf7d149624b5770867feb65a7ba142276d95a3133b768f5589e8041049aa0cf30068d0637b938
AUX readline-7.0-mingw.patch 4464 BLAKE2B 00ca79f7ee128a78d76c3e0adcb8b51f6d3027718cc3a7b2b11660cd4aa9c61b4da15c893c9ad0595becf2c393c0d9e7597b5a772085bfc82974568c30f5b381 SHA512 f416f265c51f4cb05467c29c29abcaabf40ae29d66bb5d3288d35403ccc26903f2a22afef43382e39d7b13ba62732082c60d8f8d10abf7cf7955ee50fc23531b
AUX readline-7.0-missing-echo-proto.patch 466 BLAKE2B 251660f1321a36231774d5f03fea971a047688918a8f6498e019cadca43314097aee89ef8a96b104a5382ba0baa1037d500143f4d66e881da76d23f9385faaa9 SHA512 a8458bf62c73f79b980f375b98b33a6fbef59dec28386cd5266e4742a9cf70673e567f999d5682e538a2a47388d6f123d8a4fe4cfe34f19c28d4dafd93a9e10a
+AUX readline-8.0-headers.patch 577 BLAKE2B b8fe6cdf51188f68c852d3c9052e7840a0bcb4cd0cd0b25afa82d6fe8697dcb34aa541279010b308427c411a7133c481dd778551069893ad965ce6d3a4a9ff83 SHA512 81695abab2e9fba1b17a4c194b7c72eeb23bbc3ab84cb0716c08388c0ee60adb770ae8efcbbb6a2c7c6adab93dcff12e3a16d0423cf52a0166b38c9efee5c221
DIST readline-4.3.tar.gz 961662 BLAKE2B a7267200b79c8010d08f8aaa4e0ed357eaddb970287b262404074a1e50b0d7865bcee5492730808dc998799a1b64685d3bd91fb7098d1da778e40a2364f16126 SHA512 4dbc4d9f16a453f8cf6adefb5723b0f35ef79b8db7dcdfcdd2d6465cb62ca961035e5e9547bfa46d4cb1370d738b042e0e10f9233c3751925c6bccab41e7d182
DIST readline-5.2.tar.gz 2037705 BLAKE2B df1012925f7cac8aa5d513097de97fa55c801993fbcf651e64468c0255cb27f7a2357613f8ab67791ab7799def57bde34376d3c41e65285689318f4b9cbedf84 SHA512 74318b32c56e888716bda2507228ecc374a24e85b2faeec4778227a9f04eb19de1fc8468c78746954c84f9e616a06dd0f8a4332ba4b438fefb7e222699baa379
DIST readline-6.3.tar.gz 2468560 BLAKE2B 24488ec141734c050ba985a93423692396f105619bae3ce5b109bc68a4f43862bcf3a6fb8d82fec1145d665cdb408765e179379bb35f008d09c441fa2e5739df SHA512 f70efaf46d570b85c7637172b0ee2eb9a4aa73ba38a62bb45075e665929d9701b96fba0aea6c767fd9a2a0d39dfe8e70ab06da08f8524aee76a7c502f370a401
DIST readline-7.0.tar.gz 2910016 BLAKE2B 679b8aa7ce003017b729e6d8d4cb69d0f991578441a3e69005090079e61f6aa48b7ad4d0b1f34b6041528cf33254a1bf3ddb05b60db53a06e443d7922d49d0d4 SHA512 18243189d39bf0d4c8a76cddcce75243c1bae8824c686e9b6ba352667607e5b10c5feb79372a1093c1c388d821841670702e940df12eae94bcebdeed90047870
+DIST readline-8.0.tar.gz 2975937 BLAKE2B 95e08b28cc46582f036379413810ca40c97d4d3bc59a9e03e04e57d531573abfbe955f6f1cb86e39c208bf6c3f4c618cff70a87bec596d0b9120909d6c5a2f69 SHA512 41759d27bc3a258fefd7f4ff3277fa6ab9c21abb7b160e1a75aa8eba547bd90b288514e76264bd94fb0172da8a4faa54aab2c07b68a0356918ecf7f1969e866f
DIST readline43-001 1126 BLAKE2B 42e7637b71936b59334dae72589b8b44256af7d3c79bec28490e13fa1fea954ce42afc1f51bb1d592da14c403d0c64565fa8823874d305ad385962b462536b5f SHA512 1bfcaf9fd36d154230682ef66a9561281822f09629f9923acfbacbaafd650974b4d94267e1bf74ab4a66f0e2da95e64894c78373c82bee593bd9afbae4af58bc
DIST readline43-002 738 BLAKE2B b4aca8deb8e32c94228c41e6a1e9dd2865e01662b6a8e28307e64b260f4a614d17949cab68aea0c4d2c9ca32a888f11a753cf6849a0a95fc5e9b315ea7e20a1d SHA512 546a7bfab27dd0b77f8b0683b82358a295d47e4e249e01d2e49612a2f113c18580c8276b17451e1edab61a26ddcff0267457a804120d5e0052dfe8e88632ddd2
DIST readline43-003 2202 BLAKE2B 435bf8c01a2c8419e97550c421945e11ad0d6f3326181c2e9e9c66d8baf12b4dc30894bad590532f917bbf30568e93439b49054c7b023179d5dd95aa309a8f8d SHA512 fbabbe5a11c2a17dd0cb47adfb40940c860069f0e99b1478546b0351471663094d032c8049e1a2ca060f4b51835bb6a824276e1864a627711e0805268386cb8e
@@ -47,4 +49,5 @@ EBUILD readline-6.3_p8-r3.ebuild 4383 BLAKE2B 51ed7b8cb69f0d776ff9ff55b98eb68f31
EBUILD readline-7.0_p3-r1.ebuild 4842 BLAKE2B 9415a62951536475fbd13f12d424cf6519ec190c22e32fead4665c9596ddec22bac56b2525b3b2702a553fc540c3e8449ebc4565a2815c0e3edc1dd36728b544 SHA512 aa737fe34a90f6ee81f9b36017ace1a89b75e1fd7632d417e129711d5119a9d33331f679dc3b4a0424e67fe9658c18773fc490c8c51ab9114a9c85ee44de615d
EBUILD readline-7.0_p3.ebuild 4597 BLAKE2B 4e5d1aa3dff883d9ee4b1dffcf7670e30d7224f6c0496fe305eca3ef3611e060762bba5ac1a57ed4a31ecfe02ee1e600015a0cc997d3ba777eb41898e135cec1 SHA512 cde16dedb5a7a0c2b237c5606bc504aa89ec584940ea32386ad775f07efce7e1ee20ff02f3e6ea031a4edfdba72ee96af8a7e95a415ec3ef2953e101dcbd7340
EBUILD readline-7.0_p5.ebuild 4842 BLAKE2B 9415a62951536475fbd13f12d424cf6519ec190c22e32fead4665c9596ddec22bac56b2525b3b2702a553fc540c3e8449ebc4565a2815c0e3edc1dd36728b544 SHA512 aa737fe34a90f6ee81f9b36017ace1a89b75e1fd7632d417e129711d5119a9d33331f679dc3b4a0424e67fe9658c18773fc490c8c51ab9114a9c85ee44de615d
+EBUILD readline-8.0.ebuild 4796 BLAKE2B 94a8e9dee48106c3e55b5df8f27a777af4387441377582b90f4a3eb63e2e5f9bde3adbcbfe93122f1a9cb535f9c8dbb9b14686cddfbcd2e9bdf90ea04260dd59 SHA512 d955b6803b9c4a8933c23cfd619fa8b379bf1ababb45dd00029aa14f792ac0fc69650df45ed0365364d62d16f28c872e650151903262206c2b24ffbce08d635c
MISC metadata.xml 394 BLAKE2B e4fee9daaa3d2c66a9425c988c855768ddb74af714f9e259fad1e3a470ab10af041ec8ca82d106fd967317e555a492b35723d60fa913ffac200212af14ca5ae1 SHA512 e27930a59d80535721eda0d3c481b1d13a66915c6d9552d960c9ac788f3dcdb0ef3fc411803a36cc98441ebbb8a4e0c1086bc2bda01511549fbf2921a7017784
diff --git a/sys-libs/readline/files/readline-8.0-headers.patch b/sys-libs/readline/files/readline-8.0-headers.patch
new file mode 100644
index 000000000000..f19a3b136ebc
--- /dev/null
+++ b/sys-libs/readline/files/readline-8.0-headers.patch
@@ -0,0 +1,17 @@
+Required by bash-5.0 or else compilation fails:
+
+ bashline.c:69:10: fatal error: readline/rlmbutil.h: No such file or directory
+ #include <readline/rlmbutil.h>
+ ^~~~~~~~~~~~~~~~~~~~~
+
+--- readline-8.0/Makefile.in
++++ readline-8.0/Makefile.in
+@@ -153,7 +153,7 @@
+ CREATED_TAGS = TAGS tags
+
+ INSTALLED_HEADERS = readline.h chardefs.h keymaps.h history.h tilde.h \
+- rlstdc.h rlconf.h rltypedefs.h
++ rlstdc.h rlconf.h rltypedefs.h rlmbutil.h
+
+ OTHER_DOCS = $(srcdir)/CHANGES $(srcdir)/INSTALL $(srcdir)/README
+ OTHER_INSTALLED_DOCS = CHANGES INSTALL README
diff --git a/sys-libs/readline/readline-8.0.ebuild b/sys-libs/readline/readline-8.0.ebuild
new file mode 100644
index 000000000000..8632bb9f9b27
--- /dev/null
+++ b/sys-libs/readline/readline-8.0.ebuild
@@ -0,0 +1,173 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit flag-o-matic multilib-minimal toolchain-funcs
+
+# Official patches
+# See ftp://ftp.cwru.edu/pub/bash/readline-7.0-patches/
+PLEVEL="${PV##*_p}"
+MY_PV="${PV/_p*}"
+MY_PV="${MY_PV/_/-}"
+MY_P="${PN}-${MY_PV}"
+[[ ${PV} != *_p* ]] && PLEVEL=0
+patches() {
+ [[ ${PLEVEL} -eq 0 ]] && return 1
+ local opt=$1
+ eval set -- {1..${PLEVEL}}
+ set -- $(printf "${PN}${MY_PV/\.}-%03d " "$@")
+ if [[ ${opt} == -s ]] ; then
+ echo "${@/#/${DISTDIR}/}"
+ else
+ local u
+ for u in ftp://ftp.cwru.edu/pub/bash mirror://gnu/${PN} ; do
+ printf "${u}/${PN}-${MY_PV}-patches/%s " "$@"
+ done
+ fi
+}
+
+DESCRIPTION="Another cute console display library"
+HOMEPAGE="http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html"
+
+case ${PV} in
+ *_alpha*|*_beta*|*_rc*)
+ SRC_URI+=" ftp://ftp.cwru.edu/pub/bash/${MY_P}.tar.gz"
+ ;;
+ *)
+ SRC_URI="mirror://gnu/${PN}/${MY_P}.tar.gz $(patches)"
+ ;;
+esac
+
+LICENSE="GPL-3"
+SLOT="0/8" # subslot matches SONAME major
+#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE="static-libs utils"
+
+RDEPEND=">=sys-libs/ncurses-5.9-r3:0=[static-libs?,${MULTILIB_USEDEP}]"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+S=${WORKDIR}/${MY_P}
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-5.0-no_rpath.patch
+ "${FILESDIR}"/${PN}-6.2-rlfe-tgoto.patch #385091
+ "${FILESDIR}"/${PN}-7.0-headers.patch
+ "${FILESDIR}"/${PN}-8.0-headers.patch
+)
+
+# Needed because we don't want the patches being unpacked
+# (which emits annoying and useless error messages)
+src_unpack() {
+ unpack ${MY_P}.tar.gz
+}
+
+src_prepare() {
+ [[ ${PLEVEL} -gt 0 ]] && eapply -p0 $(patches -s)
+ default
+
+ # Force ncurses linking. #71420
+ # Use pkg-config to get the right values. #457558
+ local ncurses_libs=$($(tc-getPKG_CONFIG) ncurses --libs)
+ sed -i \
+ -e "/^SHLIB_LIBS=/s:=.*:='${ncurses_libs}':" \
+ support/shobj-conf || die
+ sed -i \
+ -e "/^[[:space:]]*LIBS=.-lncurses/s:-lncurses:${ncurses_libs}:" \
+ examples/rlfe/configure || die
+
+ # fix building under Gentoo/FreeBSD; upstream FreeBSD deprecated
+ # objformat for years, so we don't want to rely on that.
+ sed -i -e '/objformat/s:if .*; then:if true; then:' support/shobj-conf || die
+
+ ln -s ../.. examples/rlfe/readline || die # for local readline headers
+}
+
+src_configure() {
+ # fix implicit decls with widechar funcs
+ append-cppflags -D_GNU_SOURCE
+ # https://lists.gnu.org/archive/html/bug-readline/2010-07/msg00013.html
+ append-cppflags -Dxrealloc=_rl_realloc -Dxmalloc=_rl_malloc -Dxfree=_rl_free
+
+ # Make sure configure picks a better ar than `ar`. #484866
+ export ac_cv_prog_AR=$(tc-getAR)
+
+ # Force the test since we used sed above to force it.
+ export bash_cv_termcap_lib=ncurses
+
+ # Control cross-compiling cases when we know the right answer.
+ # In cases where the C library doesn't support wide characters, readline
+ # itself won't work correctly, so forcing the answer below should be OK.
+ if tc-is-cross-compiler ; then
+ use kernel_Winnt || export bash_cv_func_sigsetjmp='present'
+ export bash_cv_func_ctype_nonascii='yes'
+ export bash_cv_wcwidth_broken='no' #503312
+ fi
+
+ # This is for rlfe, but we need to make sure LDFLAGS doesn't change
+ # so we can re-use the config cache file between the two.
+ append-ldflags -L.
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ local myeconfargs=(
+ --cache-file="${BUILD_DIR}"/config.cache
+ --with-curses
+ $(use_enable static-libs static)
+ )
+ ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
+
+ if use utils && multilib_is_native_abi && ! tc-is-cross-compiler ; then
+ # code is full of AC_TRY_RUN()
+ mkdir -p examples/rlfe || die
+ cd examples/rlfe || die
+ ECONF_SOURCE="${S}"/examples/rlfe \
+ econf --cache-file="${BUILD_DIR}"/config.cache
+ fi
+}
+
+multilib_src_compile() {
+ emake
+
+ if use utils && multilib_is_native_abi && ! tc-is-cross-compiler ; then
+ # code is full of AC_TRY_RUN()
+ cd examples/rlfe || die
+ local l
+ for l in readline history ; do
+ ln -s ../../shlib/lib${l}$(get_libname)* lib${l}$(get_libname) || die
+ ln -s ../../lib${l}.a lib${l}.a || die
+ done
+ emake
+ fi
+}
+
+multilib_src_install() {
+ default
+
+ if multilib_is_native_abi ; then
+ gen_usr_ldscript -a readline history #4411
+
+ if use utils && ! tc-is-cross-compiler; then
+ dobin examples/rlfe/rlfe
+ fi
+ fi
+}
+
+multilib_src_install_all() {
+ HTML_DOCS="doc/history.html doc/readline.html doc/rluserman.html" einstalldocs
+ dodoc USAGE
+ docinto ps
+ dodoc doc/*.ps
+}
+pkg_preinst() {
+ # bug #29865
+ # Reappeared in #595324 with paludis so keeping this for now...
+ preserve_old_lib /$(get_libdir)/lib{history,readline}.so.{4,5,6,7}
+}
+
+pkg_postinst() {
+ preserve_old_lib_notify /$(get_libdir)/lib{history,readline}.so.{4,5,6,7}
+}
diff --git a/sys-libs/timezone-data/Manifest b/sys-libs/timezone-data/Manifest
index 17fd8077cce2..73d4004be770 100644
--- a/sys-libs/timezone-data/Manifest
+++ b/sys-libs/timezone-data/Manifest
@@ -1,4 +1,4 @@
-DIST tzcode2018g.tar.gz 241541 BLAKE2B 08525661ee6ca0c65c3b2619cc044a79d3b25ff557b9995dac039372eea24d041318ed6927726fb1bdf89991b2fa8a77c792e03e14fc510d06409c0dfc73df95 SHA512 58f89b7323bfe795c5f13039f7527d18b15c9e37fce6e9fa1a402ce2689bf5c772cf1ffb86f23309814a563f9f429da472df1229818b07b1e04f16bdedb21484
-DIST tzdata2018g.tar.gz 366408 BLAKE2B cc1158d35bd398f32741b1ace03a7cd0adb3a94670ea08a7566051901e58692891a3661afdbc71a487f777ecfab72572017476a7a73cdc966bd3c34751eb629e SHA512 92e9bbd61f51be8f2cf7ec9491691e5e2f97803914dbad77b7fb8b6600ed68fc3b98450fc808bb2d4c6c835df5f9eb7bf4529d059d9b1370f2ab4c12e7f1adfa
-EBUILD timezone-data-2018g-r1.ebuild 5037 BLAKE2B 4b61d35ba7919cbda14e482ef89a42441b0b0f3cc9a00d0e24083ba41b890a2f42034edc97898925dbcabaa428c075199056db1c184ce3b70040087b968b091f SHA512 4ebd998f74028a850b4cdaa3f93d862891c24a01e4cc8cba22a7858665e8a2c954e912bc9d98dfe8fef2dc4d3f26ebcbed418b0b1d226e6719d2201098e5379d
+DIST tzcode2018i.tar.gz 242962 BLAKE2B 682a23c324b6d8e1a0d63c6140c82ca3a24017c0972e7f915ecad5e0838f8f57743ffa2c5d9cc9744739a0e7d791ddb21947618cd11635767800ac99307c9548 SHA512 1a3d53043f20b8252f7598f547d78e7294d9e0cf1fcdd2159354d9769f824c8c8a03cef9cbb7fa579345fdb41372335117d2ef782ecd9c107dd0526e59492d9d
+DIST tzdata2018i.tar.gz 377009 BLAKE2B fa28fdac145756368d4760c418742efd558e63fd9900fc4649971b683b162df5e566c6214a79ec46b48fc65af488a7e0e95ddb6176a4f9adb5b39bc634426143 SHA512 6afcacb377842190648ed26f01abcf3db37aa2e7c63d8c509c29b4bc0078b7ff2d4e5375291b9f53498215b9e2f04936bc6145e2f651ae0be6d8166d8d336f6a
+EBUILD timezone-data-2018i.ebuild 5181 BLAKE2B 0a6a457653aa4354050ea062ec5b96dd53b2555049cda7a251f0be39862b7fabff87cd93335432d45d1727b774ffa4d27c9116066992ec4c424da5ec1d3a1acd SHA512 72c8ef26ce3b5fbae3fb11da9f9061cfef96754b161648b771a95fbf2fdd5d4b0ee0162f3825222da6cbd218de61217d508bdb03ae9e10a5431a29aa978b8d13
MISC metadata.xml 658 BLAKE2B 75ee5deafa4e9c1336119b2b2b87de6f8520a29f8fa7901c4995bddbb0cb185de9a019ff7703d0a8aa7b2f685a9ec2ca518641ea0c0a1b6123aa05faa04274a1 SHA512 94b68a5195b17cd1a7283a90a42ba9e1dfb0e7dde7c16f48202233cc2fc20ea718a1588b57b2af372e3c35ed403276cdd59456165a225f149a813abff2144c73
diff --git a/sys-libs/timezone-data/timezone-data-2018g-r1.ebuild b/sys-libs/timezone-data/timezone-data-2018i.ebuild
index fa1396ab59a1..2c38c3f65e01 100644
--- a/sys-libs/timezone-data/timezone-data-2018g-r1.ebuild
+++ b/sys-libs/timezone-data/timezone-data-2018i.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Authors
+# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="6"
@@ -25,6 +25,11 @@ S=${WORKDIR}
src_prepare() {
default
+
+ # check_web contacts validator.w3.org
+ sed -i -e 's/check_tables check_web/check_tables/g' \
+ Makefile || die "Failed to disable check_web"
+
tc-is-cross-compiler && cp -pR "${S}" "${S}"-native
}
diff --git a/sys-libs/uclibc-ng/Manifest b/sys-libs/uclibc-ng/Manifest
index 8d5165ba4c75..e6b6d34b2b2b 100644
--- a/sys-libs/uclibc-ng/Manifest
+++ b/sys-libs/uclibc-ng/Manifest
@@ -5,6 +5,6 @@ DIST uClibc-ng-1.0.30.tar.bz2 2302796 BLAKE2B 21888dfe5a68f83b7ba56bb557ecc5aa19
DIST uClibc-ng-1.0.31.tar.bz2 2351728 BLAKE2B e2cad8500fdafdd98db11cbc756f3277845fedf545598c9861b1d1ef51b3a24744afe635d6894929eb537891323b0627577c2a5e5dbe1ff0ae588c5aa53a1219 SHA512 489e5f5e8952ebfad1d8a5528a04420d9d2e58fa5092029ccdae91d81dfcf8b3e00092453432da94c76fc18cab542192040bfb271e367fa42ca4926f4b45c372
EBUILD uclibc-ng-1.0.26.ebuild 10566 BLAKE2B e4eed2c8c9ddfd1f179ac728382eaa4ab588f7117b6dc5337384dcaad58d2decce86c33ad21c02f87547979a35a374497492c3ff2740812788cc2eefc6c24583 SHA512 80db8406a40e370aeb73ab25dbe2b2bb5d5c3d32353eb37fd8f50a00e81bae42ed4ad0fd0aabfef2c519e8e588f8e44b51c69ab9c6c4b0990816b211e45f227d
EBUILD uclibc-ng-1.0.30-r1.ebuild 10401 BLAKE2B 0cf25aca41d018074ab302257bae0cdb8365663919a19b1965b015e5c16002a5b31117cc85cb48db5278e149f456bc92dbaf4085250a3d632fbb0a5d82f8c3a9 SHA512 ca9df3d760beb48446d066f30467fe0885703fd62df30be50f7660d77b9a8143da30ba18feff4dc6f06380f6e1e5c57bfd8d8e2a35f07adfbfa0d638a7e1993e
-EBUILD uclibc-ng-1.0.31.ebuild 10323 BLAKE2B ef55ea8048aef2f691b887335a488ffd75d7887678ca7610a65ad1e1330f7ead363e1511d30776c19944b8ccfab4bf14b115e486cbc12179c6033fb220e52142 SHA512 bc250e0ec6b408b3acdd5bf3f66b3b43c921c9161e5a3d384e0140947a2ddcba4ae47f4a851dcc8821c54e3784b07a822dbb057ee8945fdb7890892127520691
-EBUILD uclibc-ng-9999.ebuild 10323 BLAKE2B ef55ea8048aef2f691b887335a488ffd75d7887678ca7610a65ad1e1330f7ead363e1511d30776c19944b8ccfab4bf14b115e486cbc12179c6033fb220e52142 SHA512 bc250e0ec6b408b3acdd5bf3f66b3b43c921c9161e5a3d384e0140947a2ddcba4ae47f4a851dcc8821c54e3784b07a822dbb057ee8945fdb7890892127520691
+EBUILD uclibc-ng-1.0.31.ebuild 10319 BLAKE2B f06b14a05e153bb1572bf6b408f93901cf58c44e4dbbbb98dc86ddc9d21f9f190932e996f89238db713214eeac07ec6cf63a153c7f0df56716349345b24479bd SHA512 fb4f76a5621e6ec1b0844e9e443efc26bfea75c3c60b4f3cc1fd2333e7b3e8dd5f3f00480741431aee98c489254f5111d2d9498d9c60f2c405f5eb3a2000e76e
+EBUILD uclibc-ng-9999.ebuild 10339 BLAKE2B 57a5c4ad7b5d6aee65872bde3af3712826ae910631b44606454e66de69dca49aa7339746929e1bbcb0cc67de1bb72fc0e4c8e8042e85be27464d3b7f61ee838e SHA512 db0ca38f425b956ce02b9a43202f19d8ec3ea16c303ddc31b7982f7617005cade3406af666506a320332a9fc5c4e2d07b1bbdefa836a78d8684b7231e1b30565
MISC metadata.xml 876 BLAKE2B 218d9d733d3e7a5e29f514e4ac5e46e2a208b76f705d4825b3abe86594e262ec9722bc62df25bd848ef99fa2256d119627d9c9391e66df46f526b60e702f4eab SHA512 b7f00ea703e46028b1be735f0b713a0494f2a8459df0fb8be8c7b35b163cddb399df8a2c18b5f7864e6c4736822914bce40cdcabe44a0172ab1b2abb2474275b
diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.31.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.31.ebuild
index 9e216067cb34..36f1b9db8bb7 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-1.0.31.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.31.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="https://uclibc-ng.org/"
if [[ ${PV} != "9999" ]] ; then
PATCH_VER=""
SRC_URI="https://downloads.uclibc-ng.org/releases/${PV}/${MY_P}.tar.bz2"
- KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
+ KEYWORDS="-* amd64 arm ~mips ppc x86"
fi
LICENSE="LGPL-2"
diff --git a/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild b/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
index 9e216067cb34..46dcc44af01a 100644
--- a/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
+++ b/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild
@@ -1,9 +1,9 @@
# Copyright 1999-2018 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI="6"
+EAPI="7"
-inherit flag-o-matic multilib savedconfig toolchain-funcs versionator
+inherit flag-o-matic multilib savedconfig toolchain-funcs
if [[ ${PV} == "9999" ]] ; then
EGIT_REPO_URI="git://uclibc-ng.org/git/uclibc-ng"
@@ -257,22 +257,24 @@ src_prepare() {
# Upstream sets MAJOR_VERSION = 1 which breaks runtime linking.
# If we really want the ABI bump, we'll have to hack the gcc
# spec file and change the '*link:' rule.
- version=( $(get_version_components) )
- if [[ -z ${version[1]} ]]; then
+ version_0=$(ver_cut 1)
+ version_1=$(ver_cut 2)
+ version_2=$(ver_cut 3)
+ if [[ -z ${version_1} ]]; then
subversion=0
extraversion=0
else
- subversion=${version[1]}
- if [[ -z ${version[2]} ]]; then
+ subversion=${version_1}
+ if [[ -z ${version_2} ]]; then
extraversion=0
else
- extraversion=.${version[2]}
+ extraversion=.${version_2}
fi
fi
sed -i \
-e "/^MAJOR_VERSION/s|:=.*|:= 0|" \
- -e "/^MINOR_VERSION/s|:=.*|:= ${version[0]}|" \
+ -e "/^MINOR_VERSION/s|:=.*|:= ${version_0}|" \
-e "/^SUBLEVEL/s|:=.*|:= ${subversion}|" \
-e "/^EXTRAVERSION/s|:=.*|:= ${extraversion}|" \
Rules.mak || die