summaryrefslogtreecommitdiff
path: root/sys-libs
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2019-09-06 10:28:05 +0100
committerV3n3RiX <venerix@redcorelinux.org>2019-09-06 10:28:05 +0100
commitf1af93971b7490792d8541bc790e0d8c6d787059 (patch)
treea38046712bbc3a3844d77452d16c84e716caa3d4 /sys-libs
parentfc637fb28da700da71ec2064d65ca5a7a31b9c6c (diff)
gentoo resync : 06.08.2019
Diffstat (limited to 'sys-libs')
-rw-r--r--sys-libs/Manifest.gzbin15794 -> 15792 bytes
-rw-r--r--sys-libs/binutils-libs/Manifest2
-rw-r--r--sys-libs/binutils-libs/binutils-libs-2.32-r1.ebuild2
-rw-r--r--sys-libs/freeipmi/Manifest6
-rw-r--r--sys-libs/freeipmi/freeipmi-1.4.8.ebuild92
-rw-r--r--sys-libs/freeipmi/freeipmi-1.6.4.ebuild (renamed from sys-libs/freeipmi/freeipmi-1.6.2.ebuild)27
-rw-r--r--sys-libs/glibc/Manifest17
-rw-r--r--sys-libs/glibc/files/2.19/glibc-2.19-hardened-configure-picdefault.patch30
-rw-r--r--sys-libs/glibc/files/2.19/glibc-2.19-ia64-gcc-4.8-reloc-hack.patch32
-rw-r--r--sys-libs/glibc/files/2.19/glibc-2.19-kernel-2.6.16-compat.patch85
-rw-r--r--sys-libs/glibc/glibc-2.19-r2.ebuild92
-rw-r--r--sys-libs/glibc/glibc-2.29-r2.ebuild2
-rw-r--r--sys-libs/glibc/glibc-2.29-r5.ebuild1473
-rw-r--r--sys-libs/glibc/glibc-2.30-r1.ebuild1482
-rw-r--r--sys-libs/glibc/glibc-2.30.ebuild4
-rw-r--r--sys-libs/glibc/glibc-9999.ebuild6
-rw-r--r--sys-libs/ldb/Manifest13
-rw-r--r--sys-libs/ldb/files/ldb-1.1.24-optional-python.patch72
-rw-r--r--sys-libs/ldb/ldb-1.1.26.ebuild97
-rw-r--r--sys-libs/ldb/ldb-1.2.3.ebuild103
-rw-r--r--sys-libs/ldb/ldb-2.0.5.ebuild (renamed from sys-libs/ldb/ldb-1.6.2.ebuild)6
-rw-r--r--sys-libs/ldb/ldb-2.0.7.ebuild (renamed from sys-libs/ldb/ldb-1.4.6.ebuild)14
-rw-r--r--sys-libs/libkudzu/Manifest2
-rw-r--r--sys-libs/libkudzu/libkudzu-1.2.57.1.ebuild2
-rw-r--r--sys-libs/libselinux/Manifest4
-rw-r--r--sys-libs/libselinux/files/0001-libselinux-Use-Python-distutils-to-install-SELinux-p.patch205
-rw-r--r--sys-libs/libselinux/libselinux-2.9-r1.ebuild157
-rw-r--r--sys-libs/libselinux/libselinux-2.9.ebuild4
-rw-r--r--sys-libs/libudev-compat/Manifest2
-rw-r--r--sys-libs/libudev-compat/metadata.xml5
-rw-r--r--sys-libs/libutempter/Manifest2
-rw-r--r--sys-libs/libutempter/metadata.xml4
-rw-r--r--sys-libs/musl/Manifest6
-rw-r--r--sys-libs/musl/musl-1.1.20-r1.ebuild123
-rw-r--r--sys-libs/musl/musl-1.1.21.ebuild118
-rw-r--r--sys-libs/musl/musl-1.1.23.ebuild2
-rw-r--r--sys-libs/readline/Manifest2
-rw-r--r--sys-libs/readline/readline-8.0_p1.ebuild2
-rw-r--r--sys-libs/talloc/Manifest6
-rw-r--r--sys-libs/talloc/talloc-2.1.5.ebuild83
-rw-r--r--sys-libs/talloc/talloc-2.3.0.ebuild (renamed from sys-libs/talloc/talloc-2.1.15.ebuild)10
-rw-r--r--sys-libs/tdb/Manifest6
-rw-r--r--sys-libs/tdb/tdb-1.3.8.ebuild60
-rw-r--r--sys-libs/tdb/tdb-1.4.2.ebuild (renamed from sys-libs/tdb/tdb-1.3.17.ebuild)0
-rw-r--r--sys-libs/timezone-data/Manifest3
-rw-r--r--sys-libs/timezone-data/timezone-data-2019b-r1.ebuild2
-rw-r--r--sys-libs/timezone-data/timezone-data-2019b-r2.ebuild178
47 files changed, 3665 insertions, 980 deletions
diff --git a/sys-libs/Manifest.gz b/sys-libs/Manifest.gz
index c04e090ecc0a..2b7848ddfafc 100644
--- a/sys-libs/Manifest.gz
+++ b/sys-libs/Manifest.gz
Binary files differ
diff --git a/sys-libs/binutils-libs/Manifest b/sys-libs/binutils-libs/Manifest
index 20803d8030a0..2569295ca23f 100644
--- a/sys-libs/binutils-libs/Manifest
+++ b/sys-libs/binutils-libs/Manifest
@@ -15,5 +15,5 @@ EBUILD binutils-libs-2.28.1.ebuild 2872 BLAKE2B f0ef199dfc0025b06dbdab74f76f0a17
EBUILD binutils-libs-2.29.1-r1.ebuild 2921 BLAKE2B f38060716462c9c51bc84b98348b82952b6bb47cd33136d7eaaca822ba6e40504fad2b0c778a4a02989ca9e20f812d928d718295376141dd02e519e541a605a3 SHA512 8fc849244e3cdb9b1a35e9bed1f2e57e8bba210e6ab9aa7408904b5a04cc532dfff52a9840e866df5985f6b1d05c96ce7549c7514389a8dae9a4d5d798d48c8e
EBUILD binutils-libs-2.30-r4.ebuild 3594 BLAKE2B 60b602ed843164cceee4c490fba486e38b4fe8272ec94dafc652aa891a2a148f4e8f69d88c9fb6ca6fa154cd1365bf1473ea73ce2f9bab4d1a36d08259eb7f89 SHA512 fed6718f162b379e381900b1b4c7fcfa3bfe0710f8d489e3ba19ff1d3accb51dfde7d44df5c608d8c9cf6f5d5cc92e7e518b7719ccb832b89d285507507022ee
EBUILD binutils-libs-2.31.1-r6.ebuild 3573 BLAKE2B ab5423831f517f01dfea0f4c9ecda3c4b44a6bbd780831ac93258d8f8a2074669ea334aba2c3d8dac787e922605f00c21543ffa9186997fdab73d51cbb05f593 SHA512 66bedc93c56f13390db3676061297e958eee5b480dbf5414c6c58d150684e799b4b522f39340296ebad4e746da140cb20d026e6bc252143a04f04aa96453c26b
-EBUILD binutils-libs-2.32-r1.ebuild 3582 BLAKE2B 56d2e3d9050e7b48c8c9236d3aca5ce285fd33742db03e316b3208e0508f9c5de82bfd36c58a807404f56c745a645c682491eb5a706421cfa01d8df5ace8ec16 SHA512 fd14800afb4b656fff121c1b3246e2a5f226cf1ecfc61069e9456253a4dfcce3df51828e4cb18b9d55929e5bfe44ff0a994393c957ec52b61d9db0de4bc6c71a
+EBUILD binutils-libs-2.32-r1.ebuild 3581 BLAKE2B 1dea490837436fb97b9a39e25a230175981daa0c17dbc88c7041180dc36d1f6377772623e76f29273b2c339bdcf85ae65878975418b65c30227acb65147fdfb4 SHA512 2b4e7a27e2d78abadba650ba232bbe86a2fff1bb8814d4b172c820e3c911b1115ea9e89e5ea3332d5cd23bce9ac59770c77447e293e8383ff9070bc2746eb71e
MISC metadata.xml 524 BLAKE2B 6f00793b2dc155b19d816b8acfd49e6bfc2ae35418ecc97fbbd3f9d0ed08b5f95a299b28fe6edad1a66f4d64abe99dc8a62a974fd70e28b535cd366239bf1cca SHA512 9db7c7a3082ee848ec4963831da06cced596d543e53660747fb56ac33998c219e1d7252892ffc32132d7db3c99ce9746fb6d9e85f866c3cba97552c31948342c
diff --git a/sys-libs/binutils-libs/binutils-libs-2.32-r1.ebuild b/sys-libs/binutils-libs/binutils-libs-2.32-r1.ebuild
index a87833e47d0f..a1095c8e3c92 100644
--- a/sys-libs/binutils-libs/binutils-libs-2.32-r1.ebuild
+++ b/sys-libs/binutils-libs/binutils-libs-2.32-r1.ebuild
@@ -21,7 +21,7 @@ SRC_URI="mirror://gnu/binutils/${MY_P}.tar.xz
LICENSE="|| ( GPL-3 LGPL-3 )"
SLOT="0/${PV}"
IUSE="64-bit-bfd multitarget nls static-libs"
-KEYWORDS="alpha amd64 arm arm64 ~hppa ia64 m68k ~mips ppc ppc64 ~riscv s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 ~riscv s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd"
COMMON_DEPEND="sys-libs/zlib[${MULTILIB_USEDEP}]"
DEPEND="${COMMON_DEPEND}
diff --git a/sys-libs/freeipmi/Manifest b/sys-libs/freeipmi/Manifest
index 9679019e0157..ec8060930b48 100644
--- a/sys-libs/freeipmi/Manifest
+++ b/sys-libs/freeipmi/Manifest
@@ -3,12 +3,10 @@ AUX bmc-watchdog.initd.4 404 BLAKE2B 4f975fdccb09a8505d59ded187be17e52b746a5239c
AUX freeipmi.icinga 117 BLAKE2B 12409a509d0b06d54196961f703fbe91034e1f68cfc19e5cb90c00a3481e29e8bca45fcaca2cc1d780ba5ca6deee58a06b24a2b928ce4a73067efb83d34201f8 SHA512 813aeebe5e663073f3bce7917b35c6ec493f5222bb759d47238aa2b382459661a90165b0bd3a74c2e6e1940d373eccb43ab03a4270d2d2c91a03be361ce46032
AUX ipmidetectd.confd 185 BLAKE2B ea7164e6b126cc684482557cafae3ac0c39611484243e95a3e8946488cc234f4d3100f931549f08c917d454768845e276d83fa3f9e2d7a57c4454a55090bfa38 SHA512 f10e908a451c646b2c61338d79e69663c05216a54093745bd2b659041e0b91adb9be4077c92d63f6f3d62cb5510168b6a57e5e86375533e235fd3abb2b72a49c
AUX ipmiseld.confd 192 BLAKE2B 52b125e63ca3e13fcb24f5b304f73c78269fc58b2c3e40cb185b28697c409ccf5ecd4b95599c38119bfe8c97977c3cc87e3633989e2b9d4095cded4b2b248dc4 SHA512 0a031f29a4692085054d5fc2dfe6d0ad7fb762f7ee96849ce2d562a90d6e3b0f3ae8328ab852dc22bee6221bc5cd8b588bd02075222038fa0f0e2f64ac185799
-DIST freeipmi-1.4.8.tar.gz 3185068 BLAKE2B 4133a7cdb5f66a28c07e965e6842c9d5931edaab7c19a4d4e89f5907ffa5c3f9e753b7738141206835346d06ecb7045780fe2913682ce70153822895c4da4425 SHA512 3cd4acde402bbc945b007e31e7f8dad3ad4539d2cf00310e9168d7cec8024203a280c8ad91e3f08b86dfa9be536779969c5393c4523df2fe8eb904f765fcfc56
DIST freeipmi-1.5.7.tar.gz 3321187 BLAKE2B c6f7e9c4e0a03ce1d50972fee99741ec00a8f5beb0323d61d9217b3773eed33cb04e7bb92e1f293cb39c8012872babdc4774e6d81cf808615b8b283510e1e67c SHA512 a4d39d11d4e4b9635c272ee3a197729ac61c3e1c909c202498fb480c41289116eb933cd716fe2e0b5aa6dc258751ee204892bfb009398b6d5c2c65ee1cc58544
-DIST freeipmi-1.6.2.tar.gz 3399236 BLAKE2B aedbfc785c1ec68418b9cfa79873d1b39a9591bfc5536a52c699c68558626c60aa11d29297252aa5fd2911fd47b88ab7010b8e72054431005f38a70268966bed SHA512 5c3f0b3f0632ad89a49a69aae28420c6ec342c9924aff5a8b6c0ccc1dc2f26f8c68906fbd1bc00f0f102dc50690596bb9e8c3443cdcbf93dabb91a7529d87ee8
DIST freeipmi-1.6.3.tar.gz 3414736 BLAKE2B 8ae8d3744c98c5264c449da4cdd3335e36372dbef45d53e8329203bbb3bf39433f67393c2f0009a98e7c5e6afa52f461c8873c3e33334fe9189f5750a539b8c9 SHA512 473dc26fe22e5d801cb640d5e99ded715e22e8c65d21632145e6711a24ffd60e09a842194d4cc87ad3f506f4b5456be393d87baf726d2479a34f6fc8644eedd7
-EBUILD freeipmi-1.4.8.ebuild 2437 BLAKE2B 94a08cc0def79256536a9b912610611b324804aa56b07e74db6dc69c9b96ec4013ed592d5a345b0f1f9016434b54aba80135d3656fa51a582ab1bdde60917ca4 SHA512 f1587c29e63fa8d11e98857a816c22f2e7bed14d6e5fbf65fff3e0fd9f7ae8a391993dfd28883808365f2be9a51994a2903e7905f13f1ec0fa9a309eddf39ad9
+DIST freeipmi-1.6.4.tar.gz 3415832 BLAKE2B 6ea1bc7a0ecd36e0fafda05eb67c2ac128e17103058108443b20c64d1cc98228308bd8283fcaaf8390ddcdbdd2f18ed9cc95277ec5ad67b23f2edf16a5585002 SHA512 c0a543abed2c6c20f797379423efe56c165ed5b89885568eafc9bfb78c31f409f367140f85f86c01e378be83085e979dfce30bbd560e6d6e242e5a7e2a923e0b
EBUILD freeipmi-1.5.7.ebuild 2369 BLAKE2B 9c2d64cd04e96409e6a1b5d1388ec20cd69092a0994556624b4dab33983695a6f65a92eef7b5ac29e2d2f4d95365f777fa503dcd981cdbe972eaef81a2cceb0b SHA512 cd19b406cf6f5d93d4cfb69da014fa548ac70ee60ddbd1f1ad2064ab449811570db8bebfa4397918f774de4a5d1f6fa25e5185758075ee9059a6edaca91699ac
-EBUILD freeipmi-1.6.2.ebuild 2377 BLAKE2B 1268b57f078dcd3f2de3cfe8e1118f7b5ec1aa12f95d2d12fabf7caca90619d012d3cdc9808bfcba4f5941102a55d4e72ef5c891365641b16323bff8d882c574 SHA512 3db2f55c4d99aa33c640ec930a203951c7787f9d14d8ae49daad3359f82f43ba8cef8e0f7f837927e0e67047572039725bdae28dfa7c5da873059cc7de4097b8
EBUILD freeipmi-1.6.3.ebuild 2407 BLAKE2B d37b0656b06e4f635b662a402dc32ce5fdbce6d66b9e9e2812a5d13b21fb75c878917cd910182c7c958561d429ccc183e79831f168c80e105211237f501673df SHA512 9faa6a1b420faf4936f5172be2fbfd9e0bce48d99c993d6893c3a0790369cc6d112453ebd19960bcddee92e6048bc9ff65a60eb7d382d12c0c45d0cc12af7a6e
+EBUILD freeipmi-1.6.4.ebuild 2427 BLAKE2B c36ab708c207f8a491e78aac5be9065b28d41b2bdc7cafe0024967c1cd06c5ab7fb42fd79d730724ea4e42d13accaa5cabff936c6dacaba80f7e3db73ac9ce36 SHA512 f9f162b8732bbc5b9a11a028d7bacf330e4e43204302767d8a8de8a24ffa135edae800abfae84ae857cd3437d0477e23ca2351a3d482c3a9e743c6fe8600d5ad
MISC metadata.xml 376 BLAKE2B f9bd1d470315ace8e1a7b71b77a2616131dec7530cba329cf10118df75e78b5c26e2891f3f5ff78b5df94f1ff67e93e05721d941a94cef847eabfea90b860abf SHA512 10922a1b392edce6cdb447eb2a06694570a88f765fd49eb7f154deed1cb3a33901c68ff1881f3068ae212ba6182c61e598e7ab7d4d683602f4016adc3ca7d7e8
diff --git a/sys-libs/freeipmi/freeipmi-1.4.8.ebuild b/sys-libs/freeipmi/freeipmi-1.4.8.ebuild
deleted file mode 100644
index 58dd6e67e7d7..000000000000
--- a/sys-libs/freeipmi/freeipmi-1.4.8.ebuild
+++ /dev/null
@@ -1,92 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-#AUTOTOOLS_AUTORECONF=1
-AT_M4DIR="config"
-
-inherit eutils multilib autotools-utils
-
-DESCRIPTION="Provides Remote-Console and System Management Software as per IPMI v1.5/2.0"
-HOMEPAGE="https://www.gnu.org/software/freeipmi/"
-
-MY_P="${P/_/.}"
-S="${WORKDIR}"/${MY_P}
-[[ ${MY_P} == *.beta* ]] && ALPHA="-alpha"
-SRC_URI="mirror://gnu${ALPHA}/${PN}/${MY_P}.tar.gz"
-
-LICENSE="GPL-3"
-SLOT="0"
-KEYWORDS="amd64 hppa x86"
-IUSE="debug nagios"
-
-RDEPEND="dev-libs/libgcrypt:0"
-DEPEND="${RDEPEND}
- virtual/os-headers"
-RDEPEND="${RDEPEND}
- nagios? (
- || ( net-analyzer/icinga net-analyzer/nagios )
- dev-lang/perl
- )
-"
-
-src_configure() {
- local myeconfargs=(
- $(use_enable debug)
- --disable-static
- --disable-init-scripts
- --localstatedir=/var
- )
-
- autotools-utils_src_configure
-}
-
-# There are no tests
-src_test() { :; }
-
-src_install() {
- autotools-utils_src_install
-
- # freeipmi by defaults install _all_ commands to /usr/sbin, but
- # quite a few can be run remotely as standard user, so move them
- # in /usr/bin afterwards.
- dodir /usr/bin
- for file in ipmi{detect,ping,power,console}; do
- mv "${D}"/usr/{s,}bin/${file} || die
-
- # The default install symlinks these commands to add a dash
- # after the ipmi prefix; we repeat those after move for
- # consistency.
- rm "${D}"/usr/sbin/${file/ipmi/ipmi-}
- dosym ${file} /usr/bin/${file/ipmi/ipmi-}
- done
-
- # Install the nagios plugin in its proper place, if desired
- if use nagios; then
- dodir /usr/$(get_libdir)/nagios/plugins
- mv "${D}"/usr/share/doc/${PF}/contrib/nagios/nagios_ipmi_sensors.pl \
- "${D}"/usr/$(get_libdir)/nagios/plugins/ || die
- fperms 0755 /usr/$(get_libdir)/nagios/plugins/nagios_ipmi_sensors.pl
-
- insinto /etc/icinga/conf.d
- newins "${FILESDIR}"/freeipmi.icinga freeipmi-command.cfg
- fi
-
- dodoc AUTHORS ChangeLog* DISCLAIMER* NEWS README* TODO doc/*.txt
-
- keepdir \
- /var/cache/ipmimonitoringsdrcache \
- /var/lib/freeipmi \
- /var/log/ipmiconsole
-
- # starting from version 1.2.0 the two daemons are similar enough
- newinitd "${FILESDIR}"/bmc-watchdog.initd.4 ipmidetectd
- newconfd "${FILESDIR}"/ipmidetectd.confd ipmidetectd
-
- newinitd "${FILESDIR}"/bmc-watchdog.initd.4 bmc-watchdog
- newconfd "${FILESDIR}"/bmc-watchdog.confd bmc-watchdog
-
- newinitd "${FILESDIR}"/bmc-watchdog.initd.4 ipmiseld
- newconfd "${FILESDIR}"/ipmiseld.confd ipmiseld
-}
diff --git a/sys-libs/freeipmi/freeipmi-1.6.2.ebuild b/sys-libs/freeipmi/freeipmi-1.6.4.ebuild
index dc39770131eb..13778cd4d674 100644
--- a/sys-libs/freeipmi/freeipmi-1.6.2.ebuild
+++ b/sys-libs/freeipmi/freeipmi-1.6.4.ebuild
@@ -1,26 +1,24 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=7
AT_M4DIR="config"
-inherit eutils multilib
-
DESCRIPTION="Provides Remote-Console and System Management Software as per IPMI v1.5/2.0"
HOMEPAGE="https://www.gnu.org/software/freeipmi/"
MY_P="${P/_/.}"
-S="${WORKDIR}"/${MY_P}
+S="${WORKDIR}/${MY_P}"
[[ ${MY_P} == *.beta* ]] && ALPHA="-alpha"
SRC_URI="mirror://gnu${ALPHA}/${PN}/${MY_P}.tar.gz"
LICENSE="GPL-3"
SLOT="0"
-KEYWORDS="~amd64 ~hppa ~ppc ~x86"
+KEYWORDS="~amd64 ~hppa ~x86"
IUSE="debug nagios"
-RDEPEND="dev-libs/libgcrypt:0"
+RDEPEND="dev-libs/libgcrypt:0="
DEPEND="${RDEPEND}
virtual/os-headers"
RDEPEND="${RDEPEND}
@@ -35,7 +33,7 @@ src_configure() {
$(use_enable debug)
--disable-static
--disable-init-scripts
- --localstatedir=/var
+ --localstatedir="${EPREFIX}"/var
)
econf "${myeconfargs[@]}"
@@ -51,21 +49,22 @@ src_install() {
# quite a few can be run remotely as standard user, so move them
# in /usr/bin afterwards.
dodir /usr/bin
- for file in ipmi{detect,ping,power,console}; do
- mv "${D}"/usr/{s,}bin/${file} || die
+ local prog
+ for prog in ipmi{detect,ping,power,console}; do
+ mv "${ED}"/usr/{s,}bin/${prog} || die
# The default install symlinks these commands to add a dash
# after the ipmi prefix; we repeat those after move for
# consistency.
- rm "${D}"/usr/sbin/${file/ipmi/ipmi-}
- dosym ${file} /usr/bin/${file/ipmi/ipmi-}
+ rm "${ED}"/usr/sbin/${prog/ipmi/ipmi-}
+ dosym ${prog} /usr/bin/${prog/ipmi/ipmi-}
done
# Install the nagios plugin in its proper place, if desired
if use nagios; then
dodir /usr/$(get_libdir)/nagios/plugins
- mv "${D}"/usr/share/doc/${PF}/contrib/nagios/nagios_ipmi_sensors.pl \
- "${D}"/usr/$(get_libdir)/nagios/plugins/ || die
+ mv "${ED}"/usr/share/doc/${PF}/contrib/nagios/nagios_ipmi_sensors.pl \
+ "${ED}"/usr/$(get_libdir)/nagios/plugins/ || die
fperms 0755 /usr/$(get_libdir)/nagios/plugins/nagios_ipmi_sensors.pl
insinto /etc/icinga/conf.d
@@ -88,4 +87,6 @@ src_install() {
newinitd "${FILESDIR}"/bmc-watchdog.initd.4 ipmiseld
newconfd "${FILESDIR}"/ipmiseld.confd ipmiseld
+
+ find "${ED}" -type f -name "*.la" -delete || die
}
diff --git a/sys-libs/glibc/Manifest b/sys-libs/glibc/Manifest
index 1b41b2987e50..1cdb443c8057 100644
--- a/sys-libs/glibc/Manifest
+++ b/sys-libs/glibc/Manifest
@@ -1,5 +1,4 @@
-AUX 2.19/glibc-2.19-hardened-configure-picdefault.patch 865 BLAKE2B 81431d341d389f5401bdcbc162a52d0419d97afedaee71ab417780bbc273579fa9ccd8966a7afd172325460e1010f50843ce37574390b17a6156e7751093e0bd SHA512 d8e6fea72e240f1fde8a487958463140a84e8bd6bb5b176f8ce84a34df3137943db9016300884f3efdd4da130e342448e57ed0c0dc6eb2956d647286ce1d00ce
-AUX 2.19/glibc-2.19-ia64-gcc-4.8-reloc-hack.patch 1360 BLAKE2B 19d218e91b1d3d38c526838600d0393de47a0e59ca3e05651bd28becb401021ddd2f6ef77b8740ca4e400f094ab5fd196f092cf25b20729eb4d42e2a200b9e03 SHA512 79876b12871b3e7693340bfdf99276ac0dfd6ff30bc977a9526af9e681fcbab2f25d3ac9e2b33f027c968b38a4b670237de54ffd08edc418423ecd82dddd1d67
+AUX 2.19/glibc-2.19-kernel-2.6.16-compat.patch 3214 BLAKE2B 64af88703bddaa301ce25d4400e00140fae536882443510466510766a60ac1cf4ceca35ca0ad4384f0cdc05b79352ac7da92f555561d1f6cdd65f7cc8464c6d7 SHA512 c21d80b7ae5b2691e5b6d43a42153193822ccc2b4418728edd5f2fa72412992d103b61418b57f9cf26e72378b24aa7cbaed05eeb31a4ec312a715d258cf5232b
AUX 2.25/glibc-2.25-gentoo-chk_fail.c 9068 BLAKE2B 6fabcbb981d92101ff3b97e8eed4da3c0ee4fc3d09ca344c2d0b7ee5e04fec66b5db314263541beeb1290bafa837795fef1a6300986de938d2958ba89a9c1f2f SHA512 4503002b0e2cee0b6efc4599152d24fcff330157d4e35992a77d0d83a2decc4cf2da2b8645a44d90d428a1d82300a4fd8d13c5937b7c89f368c12b3c9139be6f
AUX nscd.service 337 BLAKE2B 6b163465dd8db024652921892dc913da8dfc0984eec7ffce621229e48fa99dcedc3b5944844529190122c81f4884b6a6fe7836d37d2d812f34059c530856dec1 SHA512 2001100f3b054843c69b6fd2d38852c7c824282aa8998c25a3c0352db993705429d25c70d8ce6cb3579f836b7089644c520acac423ebd69cb1b36e94a77c5bea
AUX nscd.tmpfilesd 111 BLAKE2B 4abb7220564e248fc7eeeced41077f186f42594facbfac9a4c0ff36209baac529c219ad6ead8d8aa53ab2b092002f1006a4479459b9e9a7c5a0294cb7d822100 SHA512 53b80b331e1a85d8ee16eb2ce547a7249e944926c3d1cdd4a47a5301a5c842ffc7ec1e3dc0a731542a8facf8261c1c57121802d01741aa89898a3476c09da340
@@ -19,18 +18,22 @@ DIST glibc-2.28-patches-9.tar.xz 98588 BLAKE2B 4ab583be712994f949dee2512da6e12fd
DIST glibc-2.28.tar.xz 16484344 BLAKE2B 9aa8cbd5a145c2a6fde3a60b3d0a14b12b46ed79333ad1ca3e73464adcfe700277a17a9e7fd0ca36e355a0c5b0b27decfa091da320ba802741ad75cc955bbcc8 SHA512 521f820953ff07c69ece4c2186f59fc061a7f9747932cd70ef2995c2b2deee76eeb6de700d85071cdca5949179aa8ccee75eda7feca1394121ec7b821ad0a3f3
DIST glibc-2.29-patches-3.tar.xz 35812 BLAKE2B 90b8bc57b7a63f03617795c368b92e525eccfec462d638dbc25c581e5b7a2a72ffd5191842f5ac443a868cbc950838d7e5120e866d343a14b80c55dcbfa48f30 SHA512 4c9b78d9d1a8aa629418f2d758ef800857780b8a1fd8d3582b88348a513ca26ca7f6ac9110a8c6bae16949b360ba36840d184f42293cd4324760273592d1b438
DIST glibc-2.29-patches-5.tar.xz 64032 BLAKE2B 6c3104bd80aaba617201812a631b734ded4b02f8d4dadb5e353af48692f2a1509ddae1d34098de913ae5b3ac1a29111a44dfae71c3024fab4a805a22e9d66e33 SHA512 39add1388268ecf2029cb90b8312fb610b203f459a092dc1da8b46ce91ccfbbdff235592aa6174edf9efe71039d984ee121dc9adf7e18490cf92fe24561b1267
+DIST glibc-2.29-patches-6.tar.xz 64076 BLAKE2B 04c1baf838eff9275e79145d4a5a642dcd6572aadcdfc6782769f2de107dcd1648b81d0690068db8c0d53229efe2130e279f4aafe8a91238e5dd6a8a7120a433 SHA512 6494dcd23441fe308de97706f7abbea1571e0015d1456e719268b8026e1fb23733c2efd5256840f4b9f0df4f02ac7827b1fad56905cbd8919bca9c25b0afe822
DIST glibc-2.29.tar.xz 16515488 BLAKE2B b754e6825176538a2b8ca03fce014f0d87d333dc4d038bf0cda5ee8a2f484cd3ce93ad78ec126737e093ab64b55ceedf04cd08aecb4f8041daaa329e99717afa SHA512 146bc0769fe853d9edbf93cea7f74c5b3d84d69cb7614c62588e7acdecd1ec789a9d8949f3e8b99f8f36f2ccac740a003bed94f32b07817baf780b06cfeb6ed0
DIST glibc-2.30-patches-1.tar.xz 19364 BLAKE2B 853ae651cf48a78796ac0a3c9c84098731d5a43b37644ee5029d2e2b06dab0d1d96b9dd7c3fd896c5513f5f712beca13845c1e24c698fe824ce0f529a2a827d4 SHA512 23065ec67b1a6302eece79da1ba731aa158a2abc0c65aed755cafea388c19aa1f545a6ea6d9db1fd128d06c6878b4c73aea07c6acc053b56bc416143e96e1c05
+DIST glibc-2.30-patches-2.tar.xz 19588 BLAKE2B 672343ef8a44486304f03091844635febef9d1bc8000ab3382d702dcc1111a107b5e758355beaef8db5012f7e324e4c2365e10fc642b01c9f9a3a315de2dc7f6 SHA512 494155147b56e094a4427aed79e278b4a350928ddaff84330d6a40fad079131a4574f20c591dc95e572391b68ef72c49790571ee5323a2a541ec0757bcaeb161
DIST glibc-2.30.tar.xz 16576920 BLAKE2B bd5aae4c9854f40785b91f83c3b632de6d48d811027ddfe61651cb1bc617db8017d7914c23a770cdd3feed06fcc316da841eea916cdba54179e7eace4ea45484 SHA512 37483990cd653685873e96c45dd1651b32b441b6d7919a68ebe3bae31a0c3f7ce183fc9b110f0b268b353f80312f18370559a1e7aecea0e5aa755c8f2aef1d6b
-DIST glibc-9999-patches-13.tar.xz 18316 BLAKE2B c55359dda094dabfec85f53e48fcd43985d41211f29c0c3ba0d07c4ce28994f96c334c9fcc2a6b78e64123363253c701ed6e9335f4e74274c984734ac8881731 SHA512 627799f65f79e60ed3a9ba1a499d21e771f1b109934967c9fbdf3300b0c1509ef5382834e63c8ead23ffbaee80becf541da5b25e4e2cfa8f6baa801c3838c69d
-EBUILD glibc-2.19-r2.ebuild 40503 BLAKE2B 86f512cbe4154292834e51109b7f233aea8e8fb2a90c643a6d875553f91e03c2e214c165fe3d08f4f0943cfe1627fc7b7e42f885a93ac50cffbe9d3f6b917e4e SHA512 8dce817f9e5fc8a252d61f89df010485e267f0612506cd8b128f151d9965d8e5a84033d07e1caefe23da9aaab95f058675c831bc410fc7cb613b2e329663f656
+DIST glibc-9999-patches-14.tar.xz 17908 BLAKE2B a6e1f22a4358111ff757431c5d42fd020f6095584c3517aa854ea266129d1a177a7c09b310643f1cea32ffaf253806ac08f3aed864fb477097aaa2c4010450f4 SHA512 ef28b409b26472ec1d868167345aecfee70b1edf1863374dc2f25892f40c10f0826620a8b22fbbc9f737c8f611569b3412e8e2ea041da1ad1ef7f6398b82cddc
+EBUILD glibc-2.19-r2.ebuild 37974 BLAKE2B bff1f1a082705e06fdc44d91615a5e137b126e56006b2c2894b765738f710f9365eba0a7d3e7c21433419ffda53a0675d785fe389b1939b8a05c8a60cd05bc82 SHA512 edf5b1e688b438af20d46ef0b7c234abc8b1f3d0e6118146d7c5aa80fbc7bf40670c2ba59a9d16e115d5f0e32c8774ffb3d3c498d4a2a5853c868f9a2cbd5c39
EBUILD glibc-2.24-r4.ebuild 4988 BLAKE2B 8e08345c96e176984b73a073efca21f771d41af1af75106ec88a22bd55d7f69f28d9c01989026a3e58f3df4fac2a59db68d5ac8a8bbb0f411c75da8792f3402a SHA512 dd1d996eaf35197f7b7b6c111957eb98ef776d0a76a949b95f9bb17075dca43b2a354f8d15be133b9f3ff6c40a5b1f4ec28bd8d41c5cfc51da006eda8b005a05
EBUILD glibc-2.25-r11.ebuild 4975 BLAKE2B cef32f5d160644845e7cf45a9dd4c8cef1dcff8fca6b64c083c3e05d07533e445a6139939710b9284f7587bbf3977ca556caeb964e73ac21a382d942423d886a SHA512 f26645acc02f16209ec068641a800ef0a4ad2a422c9473e14a273fdece9b53074b837907d635a8585cf9dbb1acea14178166a4a3410aa4c70a745b89a764b6f1
EBUILD glibc-2.26-r7.ebuild 25509 BLAKE2B 49166ae538135fe9663954a2f2ae6778b240ba32ab77e600091e56f44ef06df91f856c1389e78431420a33cb381743f4b44d5f02bbe6041a01134795fd2fad14 SHA512 82111610d0de42b52cdd6452d8a7f09464a2aaceea8fee1d8d6dcc6a9ee35396a093448361111e62b8acdec06d84795600dab65dbbe4e951663827106e81268f
EBUILD glibc-2.27-r6.ebuild 41564 BLAKE2B 7a0d3bf89587630f59c8f4e271ec26db8695f1ccec95148d1d79c8bb14fb1382a37ada421c002ca0d66661b28ab1166acbfe884bcfeed8da413ff82d448ff141 SHA512 02d6d45d177bc43438a74918a8dcbd19507100b00ebd079102296ca197c05a957cdf9d58ffa11e1710d781016c4b6ab98c2aa492b2dd1483ad02de856fa2a54b
EBUILD glibc-2.28-r6.ebuild 41334 BLAKE2B 4de861388f365a5b38aa09bac691d2a6e22f4ff54942eb1fa044d125b9214d5519f10549214cfa46d96e968a6ec80b6e022a9e7000db8d351e2a03cb02530aa8 SHA512 52174bb1cafbf8401851efa950398a31d84319bf3b403f6db9bbbc0e0044b18f1c08e64ae181d062a33139d139eaca5706dd0df1a3b9f555a73a35389dcc2a6a
-EBUILD glibc-2.29-r2.ebuild 42670 BLAKE2B bc32330106dc20ad803ac3fc8a59d9ec81bc6007f62550127eb7b20c1994d461db3460f18d5791c5ac40457ce8670fc917fe5c0a120381fdab3e90132ad96975 SHA512 2f9073351fa328a99d2c16df6633815930a865199a9412328c277ac80eb4f5d7795026e88b0ebb1982ab3c0170fe0d6cd15a63ffa6a8bfc33c0b08628d57feea
+EBUILD glibc-2.29-r2.ebuild 42668 BLAKE2B 9fe4878b9f99c4c06185f8ff6cca5592e9650fbffa6ee5fdf8fe4f1f5a383a1c93998d7501d2441abd99eb59175dea3f8a156b3425f89f6b6d5a8240005ff615 SHA512 4fe050deca50f9ae95296b2da538d2d1cb47eddbc7e66cedc8090f6d8df9ff697dae42d615b9e71c5fbcadeaa0cc3011f5c1e28ebbe5ac352aac19e233a95f5f
EBUILD glibc-2.29-r4.ebuild 42974 BLAKE2B d156327652eae83c2ec8f1d30dde09d4b0a57c8ce1957277d6b5df6d72b3abfaf18fc092bda0256ae4b4bdd838a685ee3be647fa7978a72f06795d6a01ac543e SHA512 1eba277054fabaa88e236c26a2b38c8aa52d391b73d1e31686e659b228f2521a1914546220f67e7ea9b3bf54102b82cd6b6b2e3b85b7517e0ad497add4cdfcbd
-EBUILD glibc-2.30.ebuild 43395 BLAKE2B 15b7816fa3cabdebafad8d4667e77eff425b6f609170f120a9b2879e1d217013e81a1a8c67128fccbcafe2bc1fd297d2ac369d0b35266a36dcd3e32c4bf1c6d4 SHA512 7942bd9011ba05b652da3a1f93309f10e04be47bd55eaa32327a41c1f2733e3c6f0dfed22ab4c145644ae25327ba8d77e78c1875fa59728b860c90936a691632
-EBUILD glibc-9999.ebuild 42876 BLAKE2B 55a04ac734d2c4322e98123c4d28cea9c3c226c623efdd23fe3f6da39431b1ab26e9bc045c8ae488f11fe1e82a43d1d292da4a463dd7a06c9b50d00a522575d7 SHA512 51cc8edd2e3380e0519811f71c098e10f5b9080c376b93ac1db8148ed3a68665510db61fecbf66a3e0f87a224f21af462d8c52b95bd5acff48601cf587600bff
+EBUILD glibc-2.29-r5.ebuild 42971 BLAKE2B 4073abe9e595e85a7832bcbfeca702ddd505d66fd250a038551156ff94b9729ae6e2a471cec8f4738ffafae62089cfbbf8ae1bf63792c7711fcd095b941a31fc SHA512 6b9b1b2a4319d70b9d1001300e4c874b9eda053ee3edcde79a7be38e8aebb3a29859df006a446a0975af46c6c066e42ec991eebed9215df7be7a04f788c4855f
+EBUILD glibc-2.30-r1.ebuild 43261 BLAKE2B 33fa4f4accb38b7e60376db35932c33c0f3c11f671ae506e657600f64a0acf859155eb4f5b3b4507119aef941e289359f4d043397ea1ec8e1e300965d77cfc56 SHA512 c2e38e311820edcd508928c53f7a7b66e2aa88b547c29d1c4499ed48f80e27ee8a85f193cd950886240d681826b06726ddc6b6cd88a52e3a371b2969d36f159f
+EBUILD glibc-2.30.ebuild 43264 BLAKE2B a7a2c31914e2cce3ba035d3e5d58747e6568a195ebec44d758a93e1c2e76043c28662322cccf6ccf3f34e61690c55a6c6e32e67576b947594447cf545b6bf56d SHA512 070ee6fa0b537d345bcd03c69b299092285da386f456d609c5b3a11271d5202179b17d446436c5a7a2640fe1e03380745db448b6cf55f72e33cc70749fe7685d
+EBUILD glibc-9999.ebuild 42745 BLAKE2B d6193d86b916247f16a8f83a9ffd1d94203f480ae02eba99f5a6e755fecd1363ef8203ebc5b4bd3f8628e0f78d9a493fbb75b25ebe41f9a50a87a48a1a215e23 SHA512 e46ee7850be4a95d2563a054bb19296f73db2e7f23906e2e7d64310d5e6c9041d982deb1770a534ff902ac2e72ca36f85093dba046a715163f593aae0d7de090
MISC metadata.xml 1323 BLAKE2B 6a19ccbf9f068c6c3d3b945d3011dce3d7712dd74a2daeaa8244eef73fd86723b275ce018ec5557862278c23883fabfb27e91e0b88ff62c34fffdadd4b024411 SHA512 848adbf531103d69b8b0e7017c25de730daecccae220e337e475ba8dbcaa95c6d5e440330be56367974607050dfa1964026ed90bc699ab5f12fef35c88d67505
diff --git a/sys-libs/glibc/files/2.19/glibc-2.19-hardened-configure-picdefault.patch b/sys-libs/glibc/files/2.19/glibc-2.19-hardened-configure-picdefault.patch
deleted file mode 100644
index 341d8c5028e1..000000000000
--- a/sys-libs/glibc/files/2.19/glibc-2.19-hardened-configure-picdefault.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-Prevent default-fPIE from confusing configure into thinking
-PIC code is default. This causes glibc to build both PIC and
-non-PIC code as normal, which on the hardened compiler generates
-PIC and PIE.
-
-Patch by Kevin F. Quinn <kevquinn@gentoo.org>
-Fixed for glibc 2.19 by Magnus Granberg <zorry@ume.nu>
-
---- configure.ac
-+++ configure.ac
-@@ -2145,7 +2145,7 @@
- # error PIC is default.
- #endif
- EOF
--if eval "${CC-cc} -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then
-+if eval "${CC-cc} -fno-PIE -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then
- libc_cv_pic_default=no
- fi
- rm -f conftest.*])
---- configure
-+++ configure
-@@ -7698,7 +7698,7 @@
- # error PIC is default.
- #endif
- EOF
--if eval "${CC-cc} -S conftest.c 2>&5 1>&5"; then
-+if eval "${CC-cc} -fno-PIE -S conftest.c 2>&5 1>&5"; then
- libc_cv_pic_default=no
- fi
- rm -f conftest.*
diff --git a/sys-libs/glibc/files/2.19/glibc-2.19-ia64-gcc-4.8-reloc-hack.patch b/sys-libs/glibc/files/2.19/glibc-2.19-ia64-gcc-4.8-reloc-hack.patch
deleted file mode 100644
index 72a616a046a8..000000000000
--- a/sys-libs/glibc/files/2.19/glibc-2.19-ia64-gcc-4.8-reloc-hack.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-https://bugs.gentoo.org/503838
-http://gcc.gnu.org/PR60465
-https://sourceware.org/ml/libc-alpha/2015-12/msg00556.html
-https://trofi.github.io/posts/189-glibc-on-ia64-or-how-relocations-bootstrap.html
-
-newer versions of gcc generate relocations in the elf_get_dynamic_info func
-which glibc relies on to populate some info structs. those structs are then
-used by ldso to process relocations in itself. glibc requires that there are
-no relocations until that point (*after* elf_get_dynamic_info), so we end up
-crashing during elf_get_dynamic_info because the relocation has not yet been
-processed.
-
-this hack shuffles the code in a way that tricks gcc into not generating the
-relocation. we need to figure out something better for upstream.
-
---- a/elf/get-dynamic-info.h
-+++ b/elf/get-dynamic-info.h
-@@ -66,8 +66,12 @@ elf_get_dynamic_info (struct link_map *l, ElfW(Dyn) *temp)
- info[DT_VALTAGIDX (dyn->d_tag) + DT_NUM + DT_THISPROCNUM
- + DT_VERSIONTAGNUM + DT_EXTRANUM] = dyn;
- else if ((d_tag_utype) DT_ADDRTAGIDX (dyn->d_tag) < DT_ADDRNUM)
-- info[DT_ADDRTAGIDX (dyn->d_tag) + DT_NUM + DT_THISPROCNUM
-- + DT_VERSIONTAGNUM + DT_EXTRANUM + DT_VALNUM] = dyn;
-+ {
-+ d_tag_utype i =
-+ DT_ADDRTAGIDX (dyn->d_tag) + DT_NUM + DT_THISPROCNUM
-+ + DT_VERSIONTAGNUM + DT_EXTRANUM + DT_VALNUM;
-+ info[i] = dyn;
-+ }
- ++dyn;
- }
-
diff --git a/sys-libs/glibc/files/2.19/glibc-2.19-kernel-2.6.16-compat.patch b/sys-libs/glibc/files/2.19/glibc-2.19-kernel-2.6.16-compat.patch
new file mode 100644
index 000000000000..bf75f80cb7cc
--- /dev/null
+++ b/sys-libs/glibc/files/2.19/glibc-2.19-kernel-2.6.16-compat.patch
@@ -0,0 +1,85 @@
+Remove newer symbols that does not work on linux-2.6.16.
+
+This is only for Prefix standalone.
+
+Index: glibc-2.19/io/sys/stat.h
+===================================================================
+--- glibc-2.19.orig/io/sys/stat.h
++++ glibc-2.19/io/sys/stat.h
+@@ -361,10 +361,6 @@ extern int mkfifoat (int __fd, const cha
+ #ifdef __USE_ATFILE
+ /* Set file access and modification times relative to directory file
+ descriptor. */
+-extern int utimensat (int __fd, const char *__path,
+- const struct timespec __times[2],
+- int __flags)
+- __THROW __nonnull ((2));
+ #endif
+
+ #ifdef __USE_XOPEN2K8
+Index: glibc-2.19/posix/unistd.h
+===================================================================
+--- glibc-2.19.orig/posix/unistd.h
++++ glibc-2.19/posix/unistd.h
+@@ -419,7 +419,6 @@ extern int pipe (int __pipedes[2]) __THR
+ #ifdef __USE_GNU
+ /* Same as pipe but apply flags passed in FLAGS to the new file
+ descriptors. */
+-extern int pipe2 (int __pipedes[2], int __flags) __THROW __wur;
+ #endif
+
+ /* Schedule an alarm. In SECONDS seconds, the process will get a SIGALRM.
+Index: glibc-2.19/sysdeps/unix/sysv/linux/x86/bits/epoll.h
+===================================================================
+--- glibc-2.19.orig/sysdeps/unix/sysv/linux/x86/bits/epoll.h
++++ glibc-2.19/sysdeps/unix/sysv/linux/x86/bits/epoll.h
+@@ -19,11 +19,5 @@
+ # error "Never use <bits/epoll.h> directly; include <sys/epoll.h> instead."
+ #endif
+
+-/* Flags to be passed to epoll_create1. */
+-enum
+- {
+- EPOLL_CLOEXEC = 02000000
+-#define EPOLL_CLOEXEC EPOLL_CLOEXEC
+- };
+
+ #define __EPOLL_PACKED __attribute__ ((__packed__))
+Index: glibc-2.19/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
+===================================================================
+--- glibc-2.19.orig/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
++++ glibc-2.19/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
+@@ -187,8 +187,6 @@
+ # define F_GETPIPE_SZ 1032 /* Set pipe page size array. */
+ #endif
+ #ifdef __USE_XOPEN2K8
+-# define F_DUPFD_CLOEXEC 1030 /* Duplicate file descriptor with
+- close-on-exit set. */
+ #endif
+
+ /* For F_[GET|SET]FD. */
+Index: glibc-2.19/sysdeps/unix/sysv/linux/sys/epoll.h
+===================================================================
+--- glibc-2.19.orig/sysdeps/unix/sysv/linux/sys/epoll.h
++++ glibc-2.19/sysdeps/unix/sysv/linux/sys/epoll.h
+@@ -101,7 +101,6 @@ extern int epoll_create (int __size) __T
+
+ /* Same as epoll_create but with an FLAGS parameter. The unused SIZE
+ parameter has been dropped. */
+-extern int epoll_create1 (int __flags) __THROW;
+
+
+ /* Manipulate an epoll instance "epfd". Returns 0 in case of success,
+Index: glibc-2.19/time/sys/time.h
+===================================================================
+--- glibc-2.19.orig/time/sys/time.h
++++ glibc-2.19/time/sys/time.h
+@@ -140,8 +140,6 @@ extern int utimes (const char *__file, c
+
+ #ifdef __USE_BSD
+ /* Same as `utimes', but does not follow symbolic links. */
+-extern int lutimes (const char *__file, const struct timeval __tvp[2])
+- __THROW __nonnull ((1));
+
+ /* Same as `utimes', but takes an open file descriptor instead of a name. */
+ extern int futimes (int __fd, const struct timeval __tvp[2]) __THROW;
diff --git a/sys-libs/glibc/glibc-2.19-r2.ebuild b/sys-libs/glibc/glibc-2.19-r2.ebuild
index 58038d81dd61..42ed9d4e04de 100644
--- a/sys-libs/glibc/glibc-2.19-r2.ebuild
+++ b/sys-libs/glibc/glibc-2.19-r2.ebuild
@@ -3,7 +3,7 @@
EAPI=6
-inherit prefix eutils versionator toolchain-funcs flag-o-matic gnuconfig usr-ldscript \
+inherit prefix eutils toolchain-funcs flag-o-matic gnuconfig usr-ldscript \
multilib systemd multiprocessing
DESCRIPTION="GNU libc C library"
@@ -32,7 +32,7 @@ PATCH_VER=9
SRC_URI+=" https://dev.gentoo.org/~dilfridge/distfiles/${P}-patches-${PATCH_VER}.tar.bz2"
SRC_URI+=" multilib? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-${GCC_BOOTSTRAP_VER}-multilib-bootstrap.tar.bz2 )"
-IUSE="audit caps compile-locales debug doc gd hardened headers-only multilib nscd profile selinux suid systemtap vanilla"
+IUSE="audit caps compile-locales debug doc gd headers-only multilib nscd profile selinux suid systemtap vanilla"
# Minimum kernel version that glibc requires
# hppa requires 2.6.20
@@ -255,20 +255,10 @@ setup_target_flags() {
sparc64-*)
case $(get-flag mcpu) in
niagara[234])
- if version_is_at_least 2.8 ; then
- cpu="sparc64v2"
- elif version_is_at_least 2.4 ; then
- cpu="sparc64v"
- elif version_is_at_least 2.2.3 ; then
- cpu="sparc64b"
- fi
+ cpu="sparc64v2"
;;
niagara)
- if version_is_at_least 2.4 ; then
- cpu="sparc64v"
- elif version_is_at_least 2.2.3 ; then
- cpu="sparc64b"
- fi
+ cpu="sparc64v"
;;
ultrasparc3)
cpu="sparc64b"
@@ -284,24 +274,10 @@ setup_target_flags() {
sparc-*)
case $(get-flag mcpu) in
niagara[234])
- if version_is_at_least 2.8 ; then
- cpu="sparcv9v2"
- elif version_is_at_least 2.4 ; then
- cpu="sparcv9v"
- elif version_is_at_least 2.2.3 ; then
- cpu="sparcv9b"
- else
- cpu="sparcv9"
- fi
+ cpu="sparcv9v2"
;;
niagara)
- if version_is_at_least 2.4 ; then
- cpu="sparcv9v"
- elif version_is_at_least 2.2.3 ; then
- cpu="sparcv9b"
- else
- cpu="sparcv9"
- fi
+ cpu="sparcv9v"
;;
ultrasparc3)
cpu="sparcv9b"
@@ -368,21 +344,6 @@ setup_flags() {
filter-flags '-fstack-protector*'
append-flags '-fno-stack-protector'
-
- # Starting with gcc-6 (and fully upstreamed pie patches) we control
- # default enabled/disabled pie via use flags. So nothing to do
- # here then. #618160
- if [[ $(gcc-major-version) -lt 6 ]]; then
- if use hardened && tc-enables-pie ; then
- # Force PIC macro definition for all compilations since they're all
- # either -fPIC or -fPIE with the default-PIE compiler.
- append-cppflags -DPIC
- else
- # Don't build -fPIE without the default-PIE compiler and the
- # hardened-pie patch
- filter-flags -fPIE
- fi
- fi
}
want_tls() {
@@ -412,25 +373,6 @@ want__thread() {
return ${WANT__THREAD}
}
-use_multiarch() {
- # 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
- version_is_at_least ${nver} ${bver}
-}
-
# Setup toolchain variables that had historically been defined in the
# profiles for these archs.
setup_env() {
@@ -757,6 +699,8 @@ src_prepare() {
gnuconfig_update
+ eapply "${FILESDIR}"/2.19/glibc-2.19-kernel-2.6.16-compat.patch
+
cd "${WORKDIR}"
find . -name configure -exec touch {} +
@@ -764,25 +708,6 @@ src_prepare() {
# Fix permissions on some of the scripts.
chmod u+x "${S}"/scripts/*.sh
-
- cd "${S}"
-
- if use hardened ; then
- # We don't enable these for non-hardened as the output is very terse --
- # it only states that a crash happened. The default upstream behavior
- # includes backtraces and symbols.
- einfo "Installing Hardened Gentoo SSP and FORTIFY_SOURCE handler"
- cp "${FILESDIR}"/2.20/glibc-2.20-gentoo-stack_chk_fail.c debug/stack_chk_fail.c || die
- cp "${FILESDIR}"/2.25/glibc-2.25-gentoo-chk_fail.c debug/chk_fail.c || die
-
- if use debug ; then
- # Allow SIGABRT to dump core on non-hardened systems, or when debug is requested.
- sed -i \
- -e '/^CFLAGS-backtrace.c/ iCPPFLAGS-stack_chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
- -e '/^CFLAGS-backtrace.c/ iCPPFLAGS-chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
- debug/Makefile || die
- fi
- fi
}
glibc_do_configure() {
@@ -892,7 +817,6 @@ glibc_do_configure() {
--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}
diff --git a/sys-libs/glibc/glibc-2.29-r2.ebuild b/sys-libs/glibc/glibc-2.29-r2.ebuild
index a9ed33739e85..5352ae1f92b3 100644
--- a/sys-libs/glibc/glibc-2.29-r2.ebuild
+++ b/sys-libs/glibc/glibc-2.29-r2.ebuild
@@ -20,7 +20,7 @@ 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 ~riscv s390 sh ~sparc x86"
+ KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 ~riscv s390 sh sparc x86"
SRC_URI="mirror://gnu/glibc/${P}.tar.xz"
fi
diff --git a/sys-libs/glibc/glibc-2.29-r5.ebuild b/sys-libs/glibc/glibc-2.29-r5.ebuild
new file mode 100644
index 000000000000..d02d0fcb97d6
--- /dev/null
+++ b/sys-libs/glibc/glibc-2.29-r5.ebuild
@@ -0,0 +1,1473 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python3_{5,6,7} )
+
+inherit python-any-r1 prefix eutils eapi7-ver toolchain-funcs flag-o-matic gnuconfig usr-ldscript \
+ 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 ~riscv ~s390 ~sh ~sparc ~x86"
+ SRC_URI="mirror://gnu/glibc/${P}.tar.xz"
+fi
+
+RELEASE_VER=${PV}
+
+GCC_BOOTSTRAP_VER=20180511
+
+# Gentoo patchset
+PATCH_VER=6
+
+SRC_URI+=" https://dev.gentoo.org/~slyfox/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 +ssp 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}
+ ${PYTHON_DEPS}
+ >=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}
+ 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+="
+ >=net-dns/libidn2-2.0.5
+ 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}
+}
+
+# This prefix is applicable to CHOST when building against this
+# glibc. It is baked into the library at configure time.
+host_eprefix() {
+ is_crosscompile || echo "${EPREFIX}"
+}
+
+# This prefix is applicable to CBUILD when building against this
+# glibc. It determines the destination path at install time.
+build_eprefix() {
+ is_crosscompile && echo "${EPREFIX}"
+}
+
+# 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="$(host_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 just_headers ; 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 "$(build_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."
+ [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || 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
+}
+
+pkg_setup() {
+ # see bug 682570
+ [[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup
+}
+
+# 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 "${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}"
+
+ if is_crosscompile; then
+ # Assume worst-case bootstrap: glibc is buil first time
+ # when ${CTARGET}-g++ is not available yet. We avoid
+ # building auxiliary programs that require C++: bug #683074
+ # It should not affect final result.
+ export libc_cv_cxx_link_ok=no
+ # The line above has the same effect. We set CXX explicitly
+ # to make build logs less confusing.
+ export CXX=
+ fi
+ einfo " $(printf '%15s' 'Manual CXX:') ${CXX}"
+
+ echo
+
+ local myconf=()
+
+ case ${CTARGET} in
+ m68k*)
+ # setjmp() is not compatible with stack protection:
+ # https://sourceware.org/PR24202
+ myconf+=( --enable-stack-protector=no )
+ ;;
+ 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=$(usex ssp all no) )
+ ;;
+ 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="$(host_eprefix)/usr"
+ --sysconfdir="$(host_eprefix)/etc"
+ --localstatedir="$(host_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="$(host_eprefix)/sbin"
+ export libc_cv_slibdir="$(host_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="$(host_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 inplace=""
+
+ if [[ "${root}" == "--inplace-glibc" ]] ; then
+ inplace="--inplace-glibc"
+ root="$2"
+ fi
+
+ local locale_list="${root}/etc/locale.gen"
+
+ pushd "${ED}"/$(get_libdir)
+
+ if [[ -z $(locale-gen --list --config "${locale_list}") ]] ; then
+ [[ -z ${inplace} ]] && ewarn "Generating all locales; edit /etc/locale.gen to save time/space"
+ locale_list="${root}/usr/share/i18n/SUPPORTED"
+ fi
+
+ locale-gen ${inplace} --jobs $(makeopts_jobs) --config "${locale_list}" \
+ --destdir "${root}"
+
+ popd
+}
+
+glibc_do_src_install() {
+ local builddir=$(builddir nptl)
+ cd "${builddir}"
+
+ emake install_root="${D}$(build_eprefix)$(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
+ # riscv
+ lp64d /lib/ld-linux-riscv64-lp64d.so.1
+ lp64 /lib/ld-linux-riscv64-lp64.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
+
+ # HACK: If we're building for riscv, we need to additionally make sure that
+ # we can find the locale archive afterwards
+ case ${CTARGET} in
+ riscv*)
+ if [[ ! -e ${ED}/usr/lib/locale ]] ; then
+ dosym ../$(get_libdir)/locale /usr/lib/locale
+ fi
+ ;;
+ *) ;;
+ esac
+
+ 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 --inplace-glibc "${ED}"
+ sed -e 's:COMPILED_LOCALES="":COMPILED_LOCALES="1":' -i "${ED}"/usr/sbin/locale-gen || die
+ fi
+}
+
+glibc_headers_install() {
+ local builddir=$(builddir "headers")
+ cd "${builddir}"
+ emake install_root="${D}$(build_eprefix)$(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/glibc/glibc-2.30-r1.ebuild b/sys-libs/glibc/glibc-2.30-r1.ebuild
new file mode 100644
index 000000000000..2846ee6a61c4
--- /dev/null
+++ b/sys-libs/glibc/glibc-2.30-r1.ebuild
@@ -0,0 +1,1482 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python3_{5,6,7} )
+
+inherit python-any-r1 prefix eutils eapi7-ver toolchain-funcs flag-o-matic gnuconfig usr-ldscript \
+ 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"
+ KEYWORDS=""
+ SRC_URI="mirror://gnu/glibc/${P}.tar.xz"
+fi
+
+RELEASE_VER=${PV}
+
+GCC_BOOTSTRAP_VER=20180511
+
+# Gentoo patchset
+PATCH_VER=2
+
+SRC_URI+=" https://dev.gentoo.org/~slyfox/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 custom-cflags doc gd headers-only +multiarch multilib nscd profile selinux +ssp +static-libs 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}
+ ${PYTHON_DEPS}
+ >=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}
+ 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+="
+ >=net-dns/libidn2-2.0.5
+ 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}
+}
+
+# This prefix is applicable to CHOST when building against this
+# glibc. It is baked into the library at configure time.
+host_eprefix() {
+ is_crosscompile || echo "${EPREFIX}"
+}
+
+# This prefix is applicable to CBUILD when building against this
+# glibc. It determines the destination path at install time.
+build_eprefix() {
+ is_crosscompile && echo "${EPREFIX}"
+}
+
+# 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="$(host_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}
+
+ # Allow users to explicitly avoid flag sanitization via
+ # USE=custom-cflags.
+ if ! use custom-cflags; then
+ # 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
+ # Lock glibc at -O2; we want to be conservative here.
+ filter-flags '-O?'
+ append-flags -O2
+ fi
+ 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
+
+ # glibc's headers disallow -O0 and fail at build time:
+ # include/libc-symbols.h:75:3: #error "glibc cannot be compiled without optimization"
+ replace-flags -O0 -O1
+
+ 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 just_headers ; 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 "$(build_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."
+ [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || 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
+}
+
+pkg_setup() {
+ # see bug 682570
+ [[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup
+}
+
+# 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 "${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}"
+
+ if is_crosscompile; then
+ # Assume worst-case bootstrap: glibc is buil first time
+ # when ${CTARGET}-g++ is not available yet. We avoid
+ # building auxiliary programs that require C++: bug #683074
+ # It should not affect final result.
+ export libc_cv_cxx_link_ok=no
+ # The line above has the same effect. We set CXX explicitly
+ # to make build logs less confusing.
+ export CXX=
+ fi
+ einfo " $(printf '%15s' 'Manual CXX:') ${CXX}"
+
+ echo
+
+ local myconf=()
+
+ case ${CTARGET} in
+ m68k*)
+ # setjmp() is not compatible with stack protection:
+ # https://sourceware.org/PR24202
+ myconf+=( --enable-stack-protector=no )
+ ;;
+ 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=$(usex ssp all no) )
+ ;;
+ 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="$(host_eprefix)/usr"
+ --sysconfdir="$(host_eprefix)/etc"
+ --localstatedir="$(host_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="$(host_eprefix)/sbin"
+ export libc_cv_slibdir="$(host_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="$(host_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 inplace=""
+
+ if [[ "${root}" == "--inplace-glibc" ]] ; then
+ inplace="--inplace-glibc"
+ root="$2"
+ fi
+
+ local locale_list="${root}/etc/locale.gen"
+
+ pushd "${ED}"/$(get_libdir) >/dev/null
+
+ if [[ -z $(locale-gen --list --config "${locale_list}") ]] ; then
+ [[ -z ${inplace} ]] && ewarn "Generating all locales; edit /etc/locale.gen to save time/space"
+ locale_list="${root}/usr/share/i18n/SUPPORTED"
+ fi
+
+ locale-gen ${inplace} --jobs $(makeopts_jobs) --config "${locale_list}" \
+ --destdir "${root}"
+
+ popd >/dev/null
+}
+
+glibc_do_src_install() {
+ local builddir=$(builddir nptl)
+ cd "${builddir}"
+
+ emake install_root="${D}$(build_eprefix)$(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
+ # riscv
+ lp64d /lib/ld-linux-riscv64-lp64d.so.1
+ lp64 /lib/ld-linux-riscv64-lp64.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
+
+ # HACK: If we're building for riscv, we need to additionally make sure that
+ # we can find the locale archive afterwards
+ case ${CTARGET} in
+ riscv*)
+ if [[ ! -e ${ED}/usr/lib/locale ]] ; then
+ dosym ../$(get_libdir)/locale /usr/lib/locale
+ fi
+ ;;
+ *) ;;
+ esac
+
+ 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 --inplace-glibc "${ED}"
+ sed -e 's:COMPILED_LOCALES="":COMPILED_LOCALES="1":' -i "${ED}"/usr/sbin/locale-gen || die
+ fi
+}
+
+glibc_headers_install() {
+ local builddir=$(builddir "headers")
+ cd "${builddir}"
+ emake install_root="${D}$(build_eprefix)$(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
+
+ if ! use static-libs ; then
+ elog "Not installing static glibc libraries"
+ find "${ED}" -name "*.a" -and -not -name "*_nonshared.a" -delete
+ fi
+
+ 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
+ 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/glibc/glibc-2.30.ebuild b/sys-libs/glibc/glibc-2.30.ebuild
index eafa9c84edb3..743f14c253d4 100644
--- a/sys-libs/glibc/glibc-2.30.ebuild
+++ b/sys-libs/glibc/glibc-2.30.ebuild
@@ -1462,10 +1462,6 @@ pkg_postinst() {
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
diff --git a/sys-libs/glibc/glibc-9999.ebuild b/sys-libs/glibc/glibc-9999.ebuild
index e1955052ee36..cd66539a9220 100644
--- a/sys-libs/glibc/glibc-9999.ebuild
+++ b/sys-libs/glibc/glibc-9999.ebuild
@@ -29,7 +29,7 @@ RELEASE_VER=${PV}
GCC_BOOTSTRAP_VER=20180511
# Gentoo patchset
-PATCH_VER=13
+PATCH_VER=14
SRC_URI+=" https://dev.gentoo.org/~slyfox/distfiles/${P}-patches-${PATCH_VER}.tar.xz"
SRC_URI+=" multilib? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )"
@@ -1449,10 +1449,6 @@ pkg_postinst() {
fi
if ! is_crosscompile && [[ -z ${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
diff --git a/sys-libs/ldb/Manifest b/sys-libs/ldb/Manifest
index 79fb15f0eb0f..0fbdcd9f3264 100644
--- a/sys-libs/ldb/Manifest
+++ b/sys-libs/ldb/Manifest
@@ -1,4 +1,3 @@
-AUX ldb-1.1.24-optional-python.patch 2746 BLAKE2B 429a98e0f27c6ae0d1738b2eaf4de8a850dd54f18525f3f2fce382990e378d608164dc0b6a6e8b950f4c512f6c67e7f8f5f6880f9ea43b2a7922eaca9f112596 SHA512 caf287ceaa980cebf667d0dcb76f302ff5ab7e1a13f0dca94dfc0da5e96f9cc5d31a2f0facd1d82a74a19507f090e1138216ad7a6d847323c56344c13735ddcc
AUX ldb-1.1.27-optional_packages.patch 3596 BLAKE2B 0913225b0bb4a0918102d3eb399cf0f4eb690eb55483e24ade75d064e47d423714cdac00f816d8676e9f56e29f79f98c044cc50c9c42bd665b14311b1027708b SHA512 ddc567f926a82fd855ef1690ff14dd6995f3beec9cec3796377edf10d787f89bca7375c6990c29fc8a0dfd88a519f29bf331d8ecdc7a37a6f6e1de21780e4b4a
AUX ldb-1.1.29-disable-python.patch 2294 BLAKE2B 3a9d7da3c6c82e849d2b0fad8bd4906203645eeee23d69088ff3dfc2ac86eb2c6b3826fecb6328343de6897ff52d7ca2ce1b72acb63c05f950059cb8ef514911 SHA512 f13ebcae2b4c1a844cad65729b31926249887d82ad6d295857c5402a07fd88e76150adce5b34e1a4dc059e4ba29356d60f7f7a8e24b8ae622f2a3477914d7fe1
AUX ldb-1.1.31-fix_PKGCONFIGDIR-when-python-disabled.patch 701 BLAKE2B dd2398f9e1fa39bfc3de89928dd3b935fd6ee9db4bc2c4e381ba5672098ae9209b2d6e475fa2549a9cef2e3ce5e9a789557413fbdb1bbd68842cca89ce1e8094 SHA512 35ba295d94ab5ce767f39c4cd5eb48d57a6e4993977013ee6ae0d640f74b5437a4dff6f1d14dc44dbcdc25d4e51e5084b0e3216353b2af383d8f544993228170
@@ -7,30 +6,26 @@ AUX ldb-1.1.31-talloc-disable-python.patch 1706 BLAKE2B cc447f5077c82d7eb5846921
AUX ldb-1.2.3-disable_python.patch 2632 BLAKE2B c46ac5265168b37e94730b3a8a30b49199fdc722492248a69eb23306761df5764667e5c2e1f09e97c06a7c2a7932a8cdd047fb2d9d8e2ba9cff4d21bee148b06 SHA512 3b32d478318ef37fd221b06f427f0efce943c6da9a0a58b92ad935657fc29105b1ab79f2c9d1e1fa24cd6c4e8b701e6d631cbd04b3ebed8adeee47c4510f89a8
AUX ldb-1.4.0-optional_packages.patch 1662 BLAKE2B 3d6c8c31ad53b62a999934d1994475e502e83498df86ca590b560dc2bf34e6cce7b0896f2d747fadaf69da277b116f1cedbe27443f75e85206d482bd1df3dd15 SHA512 7e26631f93dbca355eaf08e32bbc95eeabdf196e75ba8cd0618ef8c772f17661e68e307d8742dabcde34ebe02aaf50c5ad966b77e862394f0683279babbdfb01
AUX ldb-1.5.2-optional_packages.patch 1441 BLAKE2B 0b9413cd9690aae2b2eb26f097d2509c0bbe0fc59f81bab22add57ffe0c603a8fb0c9be038d06693dcbb1d3817d4ad97a5931120b18bd9783efaac599fe0ccbc SHA512 2f313c3377385279ca3da6db21d926df0559d971e1fd42f8cce57b4001078c3817f472b85088a1f3b0e5ddcdfbbfd943199485d6e4a00412f62c883c6ea04afd
-DIST ldb-1.1.26.tar.gz 1262660 BLAKE2B 66dcc38eb97fe4357d06b301ed1de5cf868adc5f33ea8341a7cbdd5be45c85c31cda58782a66daf9fcada9d873971fc29556f0c331794ede9fc2a7f592480f52 SHA512 484689c5b87f223820e3613c056de5528a87736baef7b884df506fc47a3412b35ba2ef8e85f62e2d3da803fdab6b37bb328d4347a20bfc8fef8ed557646b6bbe
DIST ldb-1.1.29.tar.gz 1277551 BLAKE2B 449333d40073fd63d6d013ba0ae43fc3a0b8201948eabd440d164d182492002c1d92047d652105c2fb6a3e8383d4b75f45e38cc52efc5d9a0e2811113676203a SHA512 d37bbe84358e05d17483e2e963b8477da5ea351b855b454142c94af35f7987bede0f19faeaff17779efe04e3bb37c510437fcc59be99a17c826620fc25fd659c
DIST ldb-1.1.31.tar.gz 1337586 BLAKE2B 9454f91a621368cfc7cfdb709781653e947d63b275bb3b288049acb43ee3c02ae4f0be820ccf9e3bb32938d12598a91b7a6292b08c638ccfd59bd1be182f09c0 SHA512 49ccd57000cbcc6d828160f4457236b28853d766d641841471f61226156b6103fe563c43c950577b038ea3c0a54506bca94c640d3d5f912a3b8af95eb9ef2824
-DIST ldb-1.2.3.tar.gz 1344513 BLAKE2B 941174d6e2c51319c8690a8d8a87bea443d4fa4d738bd13243b502fdc9d590ba075fcf4a9920c38bb6fc15564f0b116089cd62d99e7cfe33649dc751910265ad SHA512 500ab069cf6cec39907300e3905d334163b5094087831708acc22c4199b006ef52af3b66aade7558a48fab7cd69be3af7883bda3816a83c576d01b36ab270247
DIST ldb-1.2.4.tar.gz 1346413 BLAKE2B 441cdf679ab4852e1c8d90ca8d9544d7983436c864cb3ea76b63f45177061c2763f9700b4be4be9ba53a4bcc9cec49b509dd39efb8f5f2171bc432641d1329c2 SHA512 093815cfa9e950299c4f09c58362136d72c439692f7d8670ecbf9cac49ecef6fd365f8fab5d39f41a4dd39e07f6c8d1a2616e843653d2fa0d7bdff346a118aa9
DIST ldb-1.3.6.tar.gz 1374574 BLAKE2B 654f35eb25aeb373540ead7cb10da66c92970ea6b100631cb14bacf937fec64e09b19ed3e09a976406e3f8d6347c4e17144c0a0bff8795316559be45353edbf7 SHA512 8fcd72598e948c55adaa832d6ebcbc03b979281032cb900af4304c1c68ce9cc94a1e1d4729d0c2a0b83a618cab716749d851160005a0093cf8a178e6dbea298d
DIST ldb-1.3.8.tar.gz 1375782 BLAKE2B dbca935e762af86b268308253615019b24af6727411e77947ceeadd3e0114c2ad2a14d4a4f1121bf58ccb080d44a8513d2094314b043604d885977a26e622c57 SHA512 06d1b4c2badbf0c27733a64f979c48af8b599747cef7cd7f5417cd55a76447e8f8987bd061694c5af63261fdb35433e3844122c14103d5cc8b4eaab1f4752541
-DIST ldb-1.4.6.tar.gz 1431798 BLAKE2B 748d6054af4b898fa475692a425d96541fa2c055ffdd4b8ca6635fea04d7b143b4e7301886f307300662140bc449a3ee3932801c7c5df10f6ba3ee5a10c7a46b SHA512 fb2be7842ecfda8788e8982831e34487f016814d1e8a757e93f8716019aaba4b9b7dd469e4ba11eb3990846fb55cdb2db2ec494eb7b0ff04f261d8309b1c98f4
DIST ldb-1.4.7.tar.gz 1430560 BLAKE2B b6b9a12b6f17ffee8e9a47673786d1247310655ca87bb0280fb8ce04a69c52435721fe5e8ab1ce18406e28dfeef57fe30b3b3fc42a4951505f8772bf5e7553ce SHA512 e53bdd831d37b87b5adaf17f46b883f177f97541ad957d134dbfc196bc37749074df7c8cafb8e2993c6aae9bc150ae8d88daad56c26de9f62c5259c479da7016
DIST ldb-1.5.4.tar.gz 1629123 BLAKE2B 3c71af079f2e5cb81e493d16d453c53bd0ee4c63720b0261ea6116244b2652ca581499c0b8c64949dccc95460aba7b4ef3afe7850563a830f3fb4b8753bdea2f SHA512 fc323e4283671c14d6dd4feb7e9ca943a63a166688077dbf3591f9d957cf821f9e739869842e15ca1ec4fd3764123d5afc6f4954b1af437bd1ec54df58366a22
DIST ldb-1.5.5.tar.gz 1629070 BLAKE2B 374042c77c9ec7bd88ad1d97757f171ae831a630751fc06bf22190355c1448fa8c2327d308cdbe5b46ca21236738548d2c1041c3dfb428e1dfee8053edf90050 SHA512 562e08b3d6564d08fed80dc43ca299c38fbd958dbe27ed1400e5eb5c3df0f4c7b7eaf502b13eec5544b168f26c5e6537615f65e28dcaeb6473d2ff3c3c7a4e4b
-DIST ldb-1.6.2.tar.gz 1629794 BLAKE2B 5219479c773aa87c4bd6917e60b963df9cf3c481468ed020b4e9c4a175110ce80fd1c7a4ca4e28d99c972e0891287485261310eab1bbd7b8b138ea59f168ac8c SHA512 089dee2465efe0811ff745b52b15d2d7638b940112a06680706d5401231864859605ff0392245d4c815e9b85f5a4ba782fc61d8dba215cc8198e7d9a6ddd255e
DIST ldb-1.6.3.tar.gz 1628668 BLAKE2B e9b6535eddf49496151e544f6879641c58a614f6de95463f7d0bf1953744953a5d55dde935d39b690d4c87e66914d8de0f0f5d4816a61fdecc81f8797584013e SHA512 a41b1fd2afa9a02dec37519f28e0e720b649c2a0aa6caebeb6697dbefdc6a055ef26500c5ccb0439b495d8c03218920b389fb9601d1cf5ca4d5046f192a5fefd
-EBUILD ldb-1.1.26.ebuild 2354 BLAKE2B d2842c0d9fab64092bdba589836f0e488ba3544bb4b74946c6aa881036dbcfba82ac94184ec04f3a12e752d065da61f3c1b2898b053dd260afec6cde14d2112d SHA512 195f61f5c6e120d159ec222105d2652b160a7a6c0aae1c6c97967a65cfca59acff8e895d121f375d3eefa7604e5b26fe84abc6136bf882ab6b100a838b44ee67
+DIST ldb-2.0.5.tar.gz 1669846 BLAKE2B d68046b385955c376118cb60e16939115332d88e8e67d157029397915c3e8f3d754abc9d93c64250ce990f7b82fb3947bdf5fba0f6f8bc457bc6dfd08e8bc534 SHA512 de9325f8bdd9ac782b3f8633444780f4aaa030e2c74c643220e845d9a779f8c8e174f0b9d9d8668de028cb832eb9d81965cb8e4471d90f9344dc48877a3abbe8
+DIST ldb-2.0.7.tar.gz 1674063 BLAKE2B e61f7bf4cfefcb5c1bf735c19a00027ce20ef393b613117e5637f7680ba7fcab1798744505b0db88e8bbdab41e0264e0fd1e643110ec47864de02ef315bd0dfd SHA512 0b1bd5970421c32bee1209179eac60682d7304aca597bca11dd477903f59b53a2fbc7d9e1717809e9a8e550564a9ca9139dd1127b9f4cefcc2437d7c8050985a
EBUILD ldb-1.1.29-r1.ebuild 2553 BLAKE2B 6e77ff3e4104829ac2555d8d6101acd72fd1d911cd0655a56ca4d49dd9c17f3b216bcab97717a90da10bf34f53d992176e58e1deeba50a660a3b76ee8717a9b7 SHA512 006f2462061ed3a4d988fec903fbde1bd09e9e6af0aad823056149b7b3d1b9c38c9a4ac21e35b02585c722d478ea70b6af8e379f9fec9d161e3fa28d20301759
EBUILD ldb-1.1.31.ebuild 2687 BLAKE2B e73862e80290279281942008ee500b877497cca22d3d8d31ea648f898e398fd780b595f6571e7f18bc51c9c83a573619472be9df14cd5cb516dd3c102c3b9be4 SHA512 bb16dc9c4a84b6c7174e0364237e7147138c90b1fc25f5635f923bfb6b2bf0871ebbab2e72f23522d6a7647e007c4fa5e7941611281040420c8850beda47f8c9
-EBUILD ldb-1.2.3.ebuild 2615 BLAKE2B a3ff83d0e194d99a08ba4a019ff2fab43b74656967d0d7ad2dcece072f15c3586516dce6a14dc2ab55b917c09b73651135a46907d65bfa1db179568777b722b0 SHA512 14a1cdb225b7e91ef6be3cad735b1abdae87330649e3e1db3ffc0fe8f98a54d66b8de17f5a9072307c1dcad3c3b99f57fd665f6008442782690ced25dc51a7ec
EBUILD ldb-1.2.4.ebuild 2615 BLAKE2B 00c6367deafa557c937672d501cb815bab81a48fe2a754a5f7a7cde7d37df458707f5693348aa0980864f0de99cbfcde694700efddb2d3b292046a76b6536216 SHA512 7986afc96409a48acf6fa484bd441a00387c39ab3d1961ea1bbaf6550a74830ef47b7f41e274b2b1bb9c2dcf52947acd722f85f65b9b78fb00ff5f6cb53d0179
EBUILD ldb-1.3.6.ebuild 2562 BLAKE2B f268d0fe7467c236f2b4c4ef82ca5d8c2b64f8b024e68a4b39e95494b79e427916aaf530e264ddd1a8c8fb72831bc81707b9c6b923ee2f57bbeae5d2d16638e8 SHA512 e3f7d92e8dd25c28100df928e5fcc9b6c2923ccadeed3ed3b3452d0b239caac93bc88eefc909695c9c8ffa590554b1798350b6301d1537167bc04a6f94746442
EBUILD ldb-1.3.8.ebuild 2568 BLAKE2B 70a6e2fbe4a120c37e97f724b308b051f4ff6affbf5b5800491e0e21e5f1bfdd864b9e0822830d9b9846e40201abd9ff1298bc3874a2c6fc127f7145d9d0aaef SHA512 53d06ad156952198db0a10472a4a78c910fda0fe4e7a9caf1f5938be916a41f5e4f242e865f0fd5df72ceab084ae75687b813597338a9509a54c3ea4f8c1f428
-EBUILD ldb-1.4.6.ebuild 2662 BLAKE2B 0ac8736523b19c57bae4ce81f2bf49aa6f5a0afc9a4698c96bf5ed240feddb0323dc1214525aba6171582bfdabf988c55861150c78be0834c514a157adae4b4d SHA512 dddb70565ce98942ecbdffa9114effa9ba9547d9517f893ddfdd63498e1b0728fe9725a1f622b9580da4323b14f0a72c8e77e0014b94b54bf54c6ffce069eb07
EBUILD ldb-1.4.7.ebuild 2662 BLAKE2B 0ac8736523b19c57bae4ce81f2bf49aa6f5a0afc9a4698c96bf5ed240feddb0323dc1214525aba6171582bfdabf988c55861150c78be0834c514a157adae4b4d SHA512 dddb70565ce98942ecbdffa9114effa9ba9547d9517f893ddfdd63498e1b0728fe9725a1f622b9580da4323b14f0a72c8e77e0014b94b54bf54c6ffce069eb07
EBUILD ldb-1.5.4.ebuild 2670 BLAKE2B 92adb14f3d666618f7e47eac844db836fb3af68ddb4c979d8dc6fcaa092df30686447e153584cc6ff6f25274c2243fe00de14539ad438f82b425a8b890b11b1f SHA512 10ff985fb74cb70b1ac96882d13e2697dd1eddee2f4c60a54929d5188ed5c5cac28c6dc4e23dc37b357a8e5e757ea82be0b582bca716c34e50d8dfb096cad996
EBUILD ldb-1.5.5.ebuild 2671 BLAKE2B fa05fba1b86166a83019bbf6d09595ab6210803d63e91718beab283106a0c21c6f9fee6bc399a8bb4ac9c4947c540e3cdfb8ce02a7dfa51e6acfb79c9def65f7 SHA512 9b39921c760d1c73a4fd3aa96fe94765728844b438b0ee9d6c42e87330667eb017f346b57e7679bcdd8daa2c91e0584502922792d45e5e81a547539fd14c0643
-EBUILD ldb-1.6.2.ebuild 2671 BLAKE2B fa05fba1b86166a83019bbf6d09595ab6210803d63e91718beab283106a0c21c6f9fee6bc399a8bb4ac9c4947c540e3cdfb8ce02a7dfa51e6acfb79c9def65f7 SHA512 9b39921c760d1c73a4fd3aa96fe94765728844b438b0ee9d6c42e87330667eb017f346b57e7679bcdd8daa2c91e0584502922792d45e5e81a547539fd14c0643
EBUILD ldb-1.6.3.ebuild 2671 BLAKE2B fa05fba1b86166a83019bbf6d09595ab6210803d63e91718beab283106a0c21c6f9fee6bc399a8bb4ac9c4947c540e3cdfb8ce02a7dfa51e6acfb79c9def65f7 SHA512 9b39921c760d1c73a4fd3aa96fe94765728844b438b0ee9d6c42e87330667eb017f346b57e7679bcdd8daa2c91e0584502922792d45e5e81a547539fd14c0643
+EBUILD ldb-2.0.5.ebuild 2669 BLAKE2B 20600ca8a56727fd4984e107dfb28569dc850c79c0b719ffa95201d8932916c51e44bc5a0fc2084537c1c4ced2ec290c6f9a16a22f2cf8433fa6f82f862ed717 SHA512 7e75e5505fd1193e3b604b5ea52945342c9264a38b8d2b0d27031a6cf4e291c826ca1945e72cbd8bd600eeba8fa49deebc45a413818f0976e219b166506c9645
+EBUILD ldb-2.0.7.ebuild 2669 BLAKE2B c8ed063507dadd7d69098b2f830e46558ab2e527006c0bd6f96fd2ccc9906cc5f8f9a11bc05943ae21de08d37e16e8262729d25119923c98eb09c6b41b0a0bf7 SHA512 3976d24cdcdd1d6159c80d71ec4bddb25fcf20f2ef2ba5d67a17f4748ff147e1a2d09820417947be6cdf514b83b9129fcf2339a7b83aa28c0f8f0d64c3bb1f92
MISC metadata.xml 445 BLAKE2B 959f0dc450ab8518bcbdbaf2802a3660c180e0eb95028e7b13fb0c0c0b47c8e68a81a1c970ca023ac441a1c43027b4b567c3643519b7c33ac6c0d1e11dcd0ff3 SHA512 b701ef9375735fb561c2e7c46ad13d30b62739fbf780e4343882898ecf13961e4f8381997109290e70a79993692aec2adc602bbc4bb9c881780349bebc75e4e1
diff --git a/sys-libs/ldb/files/ldb-1.1.24-optional-python.patch b/sys-libs/ldb/files/ldb-1.1.24-optional-python.patch
deleted file mode 100644
index d8dda63d44b7..000000000000
--- a/sys-libs/ldb/files/ldb-1.1.24-optional-python.patch
+++ /dev/null
@@ -1,72 +0,0 @@
---- a/wscript 2015-12-10 06:01:40.000000000 -0500
-+++ b/wscript 2016-01-06 15:05:57.013617848 -0500
-@@ -5,6 +5,7 @@
-
- blddir = 'bin'
-
-+import Logs
- import sys, os
-
- # find the buildtools directory
-@@ -13,7 +14,7 @@
- srcdir = srcdir + '/..'
- sys.path.insert(0, srcdir + '/buildtools/wafsamba')
-
--import wafsamba, samba_dist, Utils
-+import wafsamba, samba_dist, Utils, Options
-
- samba_dist.DIST_DIRS('''lib/ldb:. lib/replace:lib/replace lib/talloc:lib/talloc
- lib/tdb:lib/tdb lib/tdb:lib/tdb lib/tevent:lib/tevent
-@@ -28,8 +29,17 @@
- opt.RECURSE('lib/tevent')
- opt.RECURSE('lib/replace')
- opt.tool_options('python') # options for disabling pyc or pyo compilation
-+ if opt.IN_LAUNCH_DIR():
-+ opt.add_option('--disable-python',
-+ help=("disable the pyldb modules"),
-+ action="store_true", dest='disable_python', default=False)
-+
-
- def configure(conf):
-+ conf.env.standalone_ldb = conf.IN_LAUNCH_DIR()
-+
-+ conf.env.disable_python = getattr(Options.options, 'disable_python', False)
-+
- conf.RECURSE('lib/tdb')
- conf.RECURSE('lib/tevent')
-
-@@ -44,16 +54,18 @@
- conf.RECURSE('lib/replace')
- conf.find_program('python', var='PYTHON')
- conf.find_program('xsltproc', var='XSLTPROC')
-- conf.check_tool('python')
-- conf.check_python_version((2,4,2))
-- conf.SAMBA_CHECK_PYTHON_HEADERS(mandatory=True)
-+
-+ if not conf.env.disable_python:
-+ conf.SAMBA_CHECK_PYTHON(mandatory=False, version=(2,4,2))
-+ conf.SAMBA_CHECK_PYTHON_HEADERS(mandatory=False)
-+ if not conf.env.HAVE_PYTHON_H:
-+ Logs.warn('Disabling pyldb-util as python devel libs not found')
-+ conf.env.disable_python = True
-
- # where does the default LIBDIR end up? in conf.env somewhere?
- #
- conf.CONFIG_PATH('LDB_MODULESDIR', conf.SUBST_ENV_VAR('MODULESDIR') + '/ldb')
-
-- conf.env.standalone_ldb = conf.IN_LAUNCH_DIR()
--
- if not conf.env.standalone_ldb:
- if conf.CHECK_BUNDLED_SYSTEM_PKG('pyldb-util', minversion=VERSION,
- onlyif='talloc tdb tevent',
---- a/lib/talloc/wscript 2015-11-06 08:28:25.000000000 -0500
-+++ b/lib/talloc/wscript 2016-01-06 15:07:43.673478788 -0500
-@@ -48,7 +48,7 @@
- if conf.CHECK_BUNDLED_SYSTEM_PKG('talloc', minversion=VERSION,
- implied_deps='replace'):
- conf.define('USING_SYSTEM_TALLOC', 1)
-- if conf.CHECK_BUNDLED_SYSTEM_PKG('pytalloc-util', minversion=VERSION,
-+ if not conf.env.disable_python and conf.CHECK_BUNDLED_SYSTEM_PKG('pytalloc-util', minversion=VERSION,
- implied_deps='talloc replace'):
- conf.define('USING_SYSTEM_PYTALLOC_UTIL', 1)
-
diff --git a/sys-libs/ldb/ldb-1.1.26.ebuild b/sys-libs/ldb/ldb-1.1.26.ebuild
deleted file mode 100644
index 57f127cf033a..000000000000
--- a/sys-libs/ldb/ldb-1.1.26.ebuild
+++ /dev/null
@@ -1,97 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit python-single-r1 waf-utils multilib-minimal eutils
-
-DESCRIPTION="An LDAP-like embedded database"
-HOMEPAGE="https://ldb.samba.org/"
-SRC_URI="https://www.samba.org/ftp/pub/${PN}/${P}.tar.gz"
-
-LICENSE="LGPL-3"
-SLOT="0/${PV}"
-KEYWORDS="~alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd"
-IUSE="doc"
-
-RDEPEND="!elibc_FreeBSD? ( dev-libs/libbsd[${MULTILIB_USEDEP}] )
- dev-libs/popt[${MULTILIB_USEDEP}]
- >=sys-libs/talloc-2.1.5[python,${MULTILIB_USEDEP}]
- >=sys-libs/tevent-0.9.27[python(+),${MULTILIB_USEDEP}]
- >=sys-libs/tdb-1.3.8[python,${MULTILIB_USEDEP}]
- net-nds/openldap
- !!<net-fs/samba-3.6.0[ldb]
- !!>=net-fs/samba-4.0.0[ldb]
- ${PYTHON_DEPS}
- "
-
-DEPEND="dev-libs/libxslt
- doc? ( app-doc/doxygen )
- virtual/pkgconfig
- ${RDEPEND}"
-
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-WAF_BINARY="${S}/buildtools/bin/waf"
-
-MULTILIB_WRAPPED_HEADERS=( /usr/include/pyldb.h )
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.1.24-optional-python.patch
-)
-
-pkg_setup() {
- python-single-r1_pkg_setup
-}
-
-src_prepare() {
- default
- multilib_copy_sources
-}
-
-multilib_src_configure() {
- local myconf=(
- --disable-rpath \
- --disable-rpath-install --bundled-libraries=NONE \
- --with-modulesdir="${EPREFIX}"/usr/$(get_libdir)/samba \
- --builtin-libraries=NONE
- )
- if ! multilib_is_native_abi; then
- myconf+=( --disable-python )
- fi
- waf-utils_src_configure "${myconf[@]}"
-}
-
-multilib_src_compile(){
- waf-utils_src_compile
- multilib_is_native_abi && use doc && doxygen Doxyfile
-}
-
-multilib_src_test() {
- if multilib_is_native_abi; then
- WAF_MAKE=1 \
- PATH=buildtools/bin:../../../buildtools/bin:$PATH:"${BUILD_DIR}"/bin/shared/private/ \
- LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"${BUILD_DIR}"/bin/shared/private/:"${BUILD_DIR}"/bin/shared \
- waf test || die
- fi
-}
-
-multilib_src_install() {
- waf-utils_src_install
-
- if multilib_is_native_abi && use doc; then
- doman apidocs/man/man3/*.3
- docinto html
- dodoc -r apidocs/html/*
- fi
-}
-
-pkg_postinst() {
- if has_version sys-auth/sssd; then
- ewarn "You have sssd installed. It is known to break after ldb upgrades,"
- ewarn "so please try to rebuild it before reporting bugs."
- ewarn "See https://bugs.gentoo.org/404281"
- fi
-}
diff --git a/sys-libs/ldb/ldb-1.2.3.ebuild b/sys-libs/ldb/ldb-1.2.3.ebuild
deleted file mode 100644
index 9d3ffe48109b..000000000000
--- a/sys-libs/ldb/ldb-1.2.3.ebuild
+++ /dev/null
@@ -1,103 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit python-single-r1 waf-utils multilib-minimal eutils
-
-DESCRIPTION="An LDAP-like embedded database"
-HOMEPAGE="https://ldb.samba.org/"
-SRC_URI="https://www.samba.org/ftp/pub/${PN}/${P}.tar.gz"
-
-LICENSE="LGPL-3"
-SLOT="0/${PV}"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
-IUSE="doc +ldap python"
-
-RDEPEND="!elibc_FreeBSD? ( dev-libs/libbsd[${MULTILIB_USEDEP}] )
- dev-libs/popt[${MULTILIB_USEDEP}]
- >=dev-util/cmocka-1.1.1[${MULTILIB_USEDEP}]
- >=sys-libs/talloc-2.1.10[python?,${MULTILIB_USEDEP}]
- >=sys-libs/tevent-0.9.33[python(+)?,${MULTILIB_USEDEP}]
- >=sys-libs/tdb-1.3.15[python?,${MULTILIB_USEDEP}]
- python? ( ${PYTHON_DEPS} )
- ldap? ( net-nds/openldap )
-"
-
-DEPEND="dev-libs/libxslt
- doc? ( app-doc/doxygen )
- virtual/pkgconfig
- ${PYTHON_DEPS}
- ${RDEPEND}
-"
-
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
-
-WAF_BINARY="${S}/buildtools/bin/waf"
-
-MULTILIB_WRAPPED_HEADERS=( /usr/include/pyldb.h )
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.1.31-optional_packages.patch
- "${FILESDIR}"/${PN}-1.1.31-fix_PKGCONFIGDIR-when-python-disabled.patch
- "${FILESDIR}"/${PN}-1.2.3-disable_python.patch
-)
-
-pkg_setup() {
- python-single-r1_pkg_setup
-}
-
-src_prepare() {
- default
- multilib_copy_sources
-}
-
-multilib_src_configure() {
- local myconf=(
- $(usex ldap '' --disable-ldap)
- --disable-rpath
- --disable-rpath-install --bundled-libraries=NONE
- --with-modulesdir="${EPREFIX}"/usr/$(get_libdir)/samba
- --builtin-libraries=NONE
- )
- if ! multilib_is_native_abi; then
- myconf+=( --disable-python )
- else
- use python || myconf+=( --disable-python )
- fi
- waf-utils_src_configure "${myconf[@]}"
-}
-
-multilib_src_compile(){
- waf-utils_src_compile
- multilib_is_native_abi && use doc && doxygen Doxyfile
-}
-
-multilib_src_test() {
- if multilib_is_native_abi; then
- WAF_MAKE=1 \
- PATH=buildtools/bin:../../../buildtools/bin:$PATH:"${BUILD_DIR}"/bin/shared/private/ \
- LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"${BUILD_DIR}"/bin/shared/private/:"${BUILD_DIR}"/bin/shared \
- waf test || die
- fi
-}
-
-multilib_src_install() {
- waf-utils_src_install
-
- if multilib_is_native_abi && use doc; then
- doman apidocs/man/man3/*.3
- docinto html
- dodoc -r apidocs/html/*
- fi
-}
-
-pkg_postinst() {
- if has_version sys-auth/sssd; then
- ewarn "You have sssd installed. It is known to break after ldb upgrades,"
- ewarn "so please try to rebuild it before reporting bugs."
- ewarn "See https://bugs.gentoo.org/404281"
- fi
-}
diff --git a/sys-libs/ldb/ldb-1.6.2.ebuild b/sys-libs/ldb/ldb-2.0.5.ebuild
index 102b52891a13..d6605ba80356 100644
--- a/sys-libs/ldb/ldb-1.6.2.ebuild
+++ b/sys-libs/ldb/ldb-2.0.5.ebuild
@@ -20,9 +20,9 @@ RDEPEND="
!elibc_FreeBSD? ( dev-libs/libbsd[${MULTILIB_USEDEP}] )
dev-libs/popt[${MULTILIB_USEDEP}]
>=dev-util/cmocka-1.1.3[${MULTILIB_USEDEP}]
- >=sys-libs/talloc-2.1.16[python?,${MULTILIB_USEDEP}]
- >=sys-libs/tdb-1.3.18[python?,${MULTILIB_USEDEP}]
- >=sys-libs/tevent-0.9.39[python(+)?,${MULTILIB_USEDEP}]
+ >=sys-libs/talloc-2.2.0[python?,${MULTILIB_USEDEP}]
+ >=sys-libs/tdb-1.4.1[python?,${MULTILIB_USEDEP}]
+ >=sys-libs/tevent-0.10.0[python(+)?,${MULTILIB_USEDEP}]
ldap? ( net-nds/openldap )
lmdb? ( >=dev-db/lmdb-0.9.16[${MULTILIB_USEDEP}] )
python? ( ${PYTHON_DEPS} )
diff --git a/sys-libs/ldb/ldb-1.4.6.ebuild b/sys-libs/ldb/ldb-2.0.7.ebuild
index deef89dbbf01..f9b1e7524441 100644
--- a/sys-libs/ldb/ldb-1.4.6.ebuild
+++ b/sys-libs/ldb/ldb-2.0.7.ebuild
@@ -2,8 +2,8 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=6
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
+PYTHON_COMPAT=( python3_{5,6,7} )
+PYTHON_REQ_USE="threads(+)"
inherit python-single-r1 waf-utils multilib-minimal eutils
@@ -19,10 +19,10 @@ IUSE="doc +ldap +lmdb python"
RDEPEND="
!elibc_FreeBSD? ( dev-libs/libbsd[${MULTILIB_USEDEP}] )
dev-libs/popt[${MULTILIB_USEDEP}]
- >=dev-util/cmocka-1.1.1[${MULTILIB_USEDEP}]
- >=sys-libs/talloc-2.1.14[python?,${MULTILIB_USEDEP}]
- >=sys-libs/tdb-1.3.16[python?,${MULTILIB_USEDEP}]
- >=sys-libs/tevent-0.9.37[python(+)?,${MULTILIB_USEDEP}]
+ >=dev-util/cmocka-1.1.3[${MULTILIB_USEDEP}]
+ >=sys-libs/talloc-2.2.0[python?,${MULTILIB_USEDEP}]
+ >=sys-libs/tdb-1.4.2[python?,${MULTILIB_USEDEP}]
+ >=sys-libs/tevent-0.10.0[python(+)?,${MULTILIB_USEDEP}]
ldap? ( net-nds/openldap )
lmdb? ( >=dev-db/lmdb-0.9.16[${MULTILIB_USEDEP}] )
python? ( ${PYTHON_DEPS} )
@@ -42,7 +42,7 @@ WAF_BINARY="${S}/buildtools/bin/waf"
MULTILIB_WRAPPED_HEADERS=( /usr/include/pyldb.h )
PATCHES=(
- "${FILESDIR}"/${PN}-1.4.0-optional_packages.patch
+ "${FILESDIR}"/${PN}-1.5.2-optional_packages.patch
"${FILESDIR}"/${PN}-1.1.31-fix_PKGCONFIGDIR-when-python-disabled.patch
)
diff --git a/sys-libs/libkudzu/Manifest b/sys-libs/libkudzu/Manifest
index acf1a65fb931..e89ef57b5e01 100644
--- a/sys-libs/libkudzu/Manifest
+++ b/sys-libs/libkudzu/Manifest
@@ -1,5 +1,5 @@
AUX kudzu-1.2.57.1-sbusfix.patch 2217 BLAKE2B 27506402bd81f1a1be3e5213945dd6c6ca814085da9b7becf9cd2845242e17acf8a7936ce843eddc49f6e46590f09c9077d852fb21d15d051d9beeb6d57b4c4b SHA512 5b94734f63e1bb62cbfc349646c6dc4663e6ed2309e554e701943c35649193b14ea779a0c08e531ee931a94afdcc3e15529a8f410c658ea26d26659fe4147c71
AUX kudzu-1.2.57.1-sparc-keyboard.patch 5389 BLAKE2B b49bd002dcadf6f79ee468fe222f150660908e983e8ffa44cbbc446c8162e3494ecb2b959e11f59e19d56437cc163199e2f4e773cdb8e5e6bc86aa7e6b39606b SHA512 6b89de1ede96e1a523880a33975488957e87cfc31cc0155014bb8152123cafb7ad793edcd9d228b9946bc6005b544e6fb908185f4ff901e623ce200435982708
DIST kudzu-1.2.57.1.tar.gz 165855 BLAKE2B cd7a71a45a234701dd3e94b7378b37017a03cc78bf5230cc267c273fee4baf5338a5509572f0ba1bb23c8f585ec452c4a7f2d02159326c4133ad6abd80d36c3f SHA512 799e7cea840b7495fc007f4e34adc50fecd2fa7ceda2e2779e39639d0b93b10419bd44a0eb910b2e47024a49a4376330653a6fd96e5560c4828d55e18ab5d641
-EBUILD libkudzu-1.2.57.1.ebuild 1252 BLAKE2B 76ad04676691be22502cb0c8e5753c6e6fe906875ae199fa1e4c5281ca6dc84c5a399be153305b9badf7a9a45940cc709aa6fc79af724ffd434ba75a4fd72dc2 SHA512 ebed822a652dd36abeca95b8d397e4b181c2ba5719bc309847e678e57bd4448321b40251e518fe838619193cb71fc7acb2e4ee8f7a35ef0379e13628f84b0594
+EBUILD libkudzu-1.2.57.1.ebuild 1298 BLAKE2B fb2a64e5786715b2c9fa00c474dde55246f6c1f4a5ea2ccc2e90c7e8ea5a1a7027980b94ba55c8fe42d673f5e3ff8cd78d9a53ef72f99c67b2c1ec91553fd101 SHA512 b6be7a4022ad9e54b14db39ff0bfe9b2d97731212d1ccfde7b7db7f20ea82a8f0e92f7a44018cc4a7df7e2c9f401e4319a7e8521d00b0dbf11063470e548b7d8
MISC metadata.xml 251 BLAKE2B 914f6ce3b97ef33310dd17c219739df48b081adb06e58d6a38a10cf4368eea50a9096c7b274077b6ca67d17ab9601b7c46995bbc89479d2842705dcc3ba75461 SHA512 2da7a6b2b1b7153b8803cc52201fa006313bf75a25f7d917f26eadd7a6426529e4b30a57c3c24cca20865d9dc4f3d56fdfa14b10254158bea2dfeb2c64fcc18c
diff --git a/sys-libs/libkudzu/libkudzu-1.2.57.1.ebuild b/sys-libs/libkudzu/libkudzu-1.2.57.1.ebuild
index c7b44d76b7b2..c541f30d5fc9 100644
--- a/sys-libs/libkudzu/libkudzu-1.2.57.1.ebuild
+++ b/sys-libs/libkudzu/libkudzu-1.2.57.1.ebuild
@@ -27,6 +27,8 @@ RDEPEND="
S=${WORKDIR}/kudzu-${PV}
src_prepare() {
+ sed -i -e 's/-fpic/-fPIC/g' Makefile || die
+
epatch \
"${FILESDIR}"/kudzu-${PV}-sbusfix.patch \
"${FILESDIR}"/kudzu-${PV}-sparc-keyboard.patch
diff --git a/sys-libs/libselinux/Manifest b/sys-libs/libselinux/Manifest
index 448577b25480..a668cdec05f0 100644
--- a/sys-libs/libselinux/Manifest
+++ b/sys-libs/libselinux/Manifest
@@ -1,6 +1,8 @@
+AUX 0001-libselinux-Use-Python-distutils-to-install-SELinux-p.patch 8172 BLAKE2B 3c301b206a809311fd7eb1eb35b3925c064731146e35702b7dab5b47f41cb2a61723db7243d67caf4ce317f3b4ca2d1a999b0533e0185c44b2892e72d8cf8bb0 SHA512 287e82b5888f973bc3545b1777d9baa33965fb2bb3810834871b6843b163d11e4dacde9a7361088f715f70947e9087de89331b0b35dec1e37bddd523e5a12c1b
DIST libselinux-2.8.tar.gz 187759 BLAKE2B 1e0e1a5aa2230fd6080e921efe871e97fa9412176b72a0c9721f60c6190459e508644fa3370f3b5f513f088428844c7c615cda4567990ddee91c13e1ee88f9ed SHA512 2f15d08888fbef9b0cf7bf01893b513edc6738974e2d0eab7e3f79cef9be79cf966742b0d2693b5d2ec7defddb5f4d6c6f6280be9d4158ed41f7a18d50b9f019
DIST libselinux-2.9.tar.gz 211546 BLAKE2B 5b06b922690e48924865c98ed34ebfc1ce5e30e78dbeaccb6b9c931a35bed113c030f8f8575084429fe13b91aeafc73abaa24fe609a17ba54c8472d783f6ac61 SHA512 727b211d09f374d45aa3fa4dec7fd5463dfdcf5aaa47f7fcaccee51fb74896c3aa1a6f0bac9cdd47ebe4929effff13f66f5f70447b27b783dca5f7b1576d30d0
EBUILD libselinux-2.8-r1.ebuild 4185 BLAKE2B 215867146c515772f63c579ac9d3cb5e65b6493da8bcc5abf641aa1fb5e63d966c4c59ac0ed1e27c92834983bce308fa8c032f4da395c1857bbb317e0cce20ff SHA512 979454cea09f81e3b63ff62672deebb8b3dce3192ff27c6abb3382058182994c9de90e8660b421d1c671b87366588163f6b507de24b7ee5a8db4b78d6bc4a289
-EBUILD libselinux-2.9.ebuild 4168 BLAKE2B 3d6730ec0aca0a71dd050ab16975e94a2f7489f138374a9d8ad0f05f63d0b8dec5612ef4b60d56568d8635ba4d2220b7af184976a717aa28fc92967478e87830 SHA512 be33345efd9c20f91fd20acd8389fde057c0381dda2b1bd9bf15b0a17ec9868cfd932e5af87f5e4c69214450d016e8b1d6e3327bd200495e1d80cebfd5f106ac
+EBUILD libselinux-2.9-r1.ebuild 4257 BLAKE2B fdebf286772e557341bc0be3a893cfd3fc9ef4681f4a586f977fdf4dbcaafc0923ea3085a106cfccbf793ba11bd2ce06e88ff133477e93908268cfb02da342d5 SHA512 37e8ad4cb92d059841232e7bcfe6170b7ae3a11d1daba18df540604912e6211d899bfce577908540eba0e6b80bbf000a3121f91eca089b0b8f7070f5aaad3f7c
+EBUILD libselinux-2.9.ebuild 4166 BLAKE2B 820eebc2087a9731775a43fe7d8b34b692369e11419867a66e68ecd78a61608c8716d43ef390d8e4d39360dfb97e0e317e3ed24c7ab6a7bd2db4f5928c5ed59d SHA512 d575fa59d838a18e827d489c9a9212128e5f9c07eaa90ecaecc3a24565b467220893074149818f907b87611ca02595ac175bb98f8d30bc12616f56b08f7fb11e
EBUILD libselinux-9999.ebuild 4170 BLAKE2B e23a62ba8d06085e9bc2b5ea42e84637a503b243332c78d0429d407a49a482dc966b669ff061dc9f58895efe54ec423f175312d9081c5ccbe2760cf0e529f434 SHA512 c100b626adec06317ecefe13954a846f4d8d7c537e48bd39c7945231d0f5041a9db63d543e341b2ef7fbe751049856c64a2f8a398d1ed6ea099b73a4935ed711
MISC metadata.xml 676 BLAKE2B 530269a4d717ef305f4b15fe02c54e26f6acb9d73d6c7ac6ecd1f947712912f98120820a362e7cdc8e17019e88bc9c30162d54002bdea6facb2c41931e9c54f2 SHA512 7b33e0d113637a129a7894d8720feb9024d67466b86d475fbc3398f514b2ecc28c70dc759952376208d2022a00658eb120fc3561edbb9c7ecdc4404bed5f57a7
diff --git a/sys-libs/libselinux/files/0001-libselinux-Use-Python-distutils-to-install-SELinux-p.patch b/sys-libs/libselinux/files/0001-libselinux-Use-Python-distutils-to-install-SELinux-p.patch
new file mode 100644
index 000000000000..896876a00d6b
--- /dev/null
+++ b/sys-libs/libselinux/files/0001-libselinux-Use-Python-distutils-to-install-SELinux-p.patch
@@ -0,0 +1,205 @@
+From 2efa06857575e4118e91ca250b6b92da68b130d5 Mon Sep 17 00:00:00 2001
+From: Petr Lautrbach <plautrba@redhat.com>
+Date: Fri, 7 Jun 2019 17:35:44 +0200
+Subject: [PATCH] libselinux: Use Python distutils to install SELinux python
+ bindings
+
+Follow officially documented way how to build C extension modules using
+distutils - https://docs.python.org/3.8/extending/building.html#building
+
+Fixes:
+
+- selinux python module fails to load when it's built using SWIG-4.0:
+
+>>> import selinux
+Traceback (most recent call last):
+ File "<stdin>", line 1, in <module>
+ File "/usr/lib64/python3.7/site-packages/selinux/__init__.py", line 13, in <module>
+ from . import _selinux
+ImportError: cannot import name '_selinux' from 'selinux' (/usr/lib64/python3.7/site-packages/selinux/__init__.py)
+
+SWIG-4.0 changed (again?) its behavior so that it uses: from . import _selinux
+which looks for _selinux module in the same directory as where __init__.py is -
+$(PYLIBDIR)/site-packages/selinux. But _selinux module is installed into
+$(PYLIBDIR)/site-packages/ since a9604c30a5e2f ("libselinux: Change the location
+of _selinux.so").
+
+- audit2why python module fails to build with Python 3.8
+
+cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -DOVERRIDE_GETTID=0 -I../include -D_GNU_SOURCE -DDISABLE_RPM -DNO_ANDROID_BACKEND -DUSE_PCRE2 -DPCRE2_CODE_UNIT_WIDTH=8 -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -L. -shared -o python-3.8audit2why.so python-3.8audit2why.lo -lselinux -l:libsepol.a -Wl,-soname,audit2why.so,--version-script=audit2why.map,-z,defs
+/usr/bin/ld: python-3.8audit2why.lo: in function `finish':
+/builddir/build/BUILD/libselinux-2.9/src/audit2why.c:166: undefined reference to `PyArg_ParseTuple'
+/usr/bin/ld: python-3.8audit2why.lo: in function `_Py_INCREF':
+/usr/include/python3.8/object.h:449: undefined reference to `_Py_NoneStruct'
+/usr/bin/ld: /usr/include/python3.8/object.h:449: undefined reference to `_Py_NoneStruct'
+/usr/bin/ld: python-3.8audit2why.lo: in function `check_booleans':
+/builddir/build/BUILD/libselinux-2.9/src/audit2why.c:84: undefined reference to `PyExc_RuntimeError'
+...
+
+It's related to the following Python change
+https://docs.python.org/dev/whatsnew/3.8.html#debug-build-uses-the-same-abi-as-release-build
+
+Python distutils adds correct link options automatically.
+
+- selinux python module doesn't provide any Python metadata
+
+When selinux python module was built manually, it didn't provide any metadata.
+distutils takes care about that so that selinux Python module is visible for
+pip:
+
+$ pip3 list | grep selinux
+selinux 2.9
+
+Signed-off-by: Petr Lautrbach <plautrba@redhat.com>
+---
+ libselinux/src/.gitignore | 2 +-
+ libselinux/src/Makefile | 36 ++++++++----------------------------
+ libselinux/src/setup.py | 24 ++++++++++++++++++++++++
+ 3 files changed, 33 insertions(+), 29 deletions(-)
+ create mode 100644 libselinux/src/setup.py
+
+diff --git libselinux/src/.gitignore libselinux/src/.gitignore
+index 4dcc3b3b..428afe5a 100644
+--- libselinux/src/.gitignore
++++ libselinux/src/.gitignore
+@@ -1,4 +1,4 @@
+ selinux.py
+-selinuxswig_wrap.c
++selinuxswig_python_wrap.c
+ selinuxswig_python_exception.i
+ selinuxswig_ruby_wrap.c
+diff --git libselinux/src/Makefile libselinux/src/Makefile
+index e9ed0383..2b1696a0 100644
+--- libselinux/src/Makefile
++++ libselinux/src/Makefile
+@@ -36,7 +36,7 @@ TARGET=libselinux.so
+ LIBPC=libselinux.pc
+ SWIGIF= selinuxswig_python.i selinuxswig_python_exception.i
+ SWIGRUBYIF= selinuxswig_ruby.i
+-SWIGCOUT= selinuxswig_wrap.c
++SWIGCOUT= selinuxswig_python_wrap.c
+ SWIGPYOUT= selinux.py
+ SWIGRUBYCOUT= selinuxswig_ruby_wrap.c
+ SWIGLOBJ:= $(patsubst %.c,$(PYPREFIX)%.lo,$(SWIGCOUT))
+@@ -55,7 +55,7 @@ ifeq ($(LIBSEPOLA),)
+ LDLIBS_LIBSEPOLA := -l:libsepol.a
+ endif
+
+-GENERATED=$(SWIGCOUT) $(SWIGRUBYCOUT) selinuxswig_python_exception.i
++GENERATED=$(SWIGCOUT) $(SWIGRUBYCOUT) $(SWIGCOUT) selinuxswig_python_exception.i
+ SRCS= $(filter-out $(GENERATED) audit2why.c, $(sort $(wildcard *.c)))
+
+ MAX_STACK_SIZE=32768
+@@ -125,25 +125,18 @@ DISABLE_FLAGS+= -DNO_ANDROID_BACKEND
+ SRCS:= $(filter-out label_backends_android.c, $(SRCS))
+ endif
+
+-SWIG = swig -Wall -python -o $(SWIGCOUT) -outdir ./ $(DISABLE_FLAGS)
+-
+ SWIGRUBY = swig -Wall -ruby -o $(SWIGRUBYCOUT) -outdir ./ $(DISABLE_FLAGS)
+
+ all: $(LIBA) $(LIBSO) $(LIBPC)
+
+-pywrap: all $(SWIGFILES) $(AUDIT2WHYSO)
++pywrap: all selinuxswig_python_exception.i
++ CFLAGS="$(CFLAGS) $(SWIG_CFLAGS)" $(PYTHON) setup.py build_ext -I $(DESTDIR)$(INCLUDEDIR) -L $(DESTDIR)$(LIBDIR)
+
+ rubywrap: all $(SWIGRUBYSO)
+
+-$(SWIGLOBJ): $(SWIGCOUT)
+- $(CC) $(CFLAGS) $(SWIG_CFLAGS) $(PYINC) -fPIC -DSHARED -c -o $@ $<
+-
+ $(SWIGRUBYLOBJ): $(SWIGRUBYCOUT)
+ $(CC) $(CFLAGS) $(SWIG_CFLAGS) $(RUBYINC) -fPIC -DSHARED -c -o $@ $<
+
+-$(SWIGSO): $(SWIGLOBJ)
+- $(CC) $(CFLAGS) $(LDFLAGS) -L. -shared -o $@ $< -lselinux $(PYLIBS)
+-
+ $(SWIGRUBYSO): $(SWIGRUBYLOBJ)
+ $(CC) $(CFLAGS) $(LDFLAGS) -L. -shared -o $@ $^ -lselinux $(RUBYLIBS)
+
+@@ -161,29 +154,15 @@ $(LIBPC): $(LIBPC).in ../VERSION
+ selinuxswig_python_exception.i: ../include/selinux/selinux.h
+ bash -e exception.sh > $@ || (rm -f $@ ; false)
+
+-$(AUDIT2WHYLOBJ): audit2why.c
+- $(CC) $(filter-out -Werror, $(CFLAGS)) $(PYINC) -fPIC -DSHARED -c -o $@ $<
+-
+-$(AUDIT2WHYSO): $(AUDIT2WHYLOBJ) $(LIBSEPOLA)
+- $(CC) $(CFLAGS) $(LDFLAGS) -L. -shared -o $@ $^ -lselinux $(LDLIBS_LIBSEPOLA) $(PYLIBS) -Wl,-soname,audit2why.so,--version-script=audit2why.map,-z,defs
+-
+ %.o: %.c policy.h
+ $(CC) $(CFLAGS) $(TLSFLAGS) -c -o $@ $<
+
+ %.lo: %.c policy.h
+ $(CC) $(CFLAGS) -fPIC -DSHARED -c -o $@ $<
+
+-$(SWIGCOUT): $(SWIGIF)
+- $(SWIG) $<
+-
+-$(SWIGPYOUT): $(SWIGCOUT)
+-
+ $(SWIGRUBYCOUT): $(SWIGRUBYIF)
+ $(SWIGRUBY) $<
+
+-swigify: $(SWIGIF)
+- $(SWIG) $<
+-
+ install: all
+ test -d $(DESTDIR)$(LIBDIR) || install -m 755 -d $(DESTDIR)$(LIBDIR)
+ install -m 644 $(LIBA) $(DESTDIR)$(LIBDIR)
+@@ -194,10 +173,9 @@ install: all
+ ln -sf --relative $(DESTDIR)$(SHLIBDIR)/$(LIBSO) $(DESTDIR)$(LIBDIR)/$(TARGET)
+
+ install-pywrap: pywrap
+- test -d $(DESTDIR)$(PYTHONLIBDIR)/selinux || install -m 755 -d $(DESTDIR)$(PYTHONLIBDIR)/selinux
+- install -m 755 $(SWIGSO) $(DESTDIR)$(PYTHONLIBDIR)/_selinux$(PYCEXT)
+- install -m 755 $(AUDIT2WHYSO) $(DESTDIR)$(PYTHONLIBDIR)/selinux/audit2why$(PYCEXT)
++ $(PYTHON) setup.py install --prefix=$(PREFIX) `test -n "$(DESTDIR)" && echo --root $(DESTDIR)`
+ install -m 644 $(SWIGPYOUT) $(DESTDIR)$(PYTHONLIBDIR)/selinux/__init__.py
++ ln -sf --relative $(DESTDIR)$(PYTHONLIBDIR)/selinux/_selinux$(PYCEXT) $(DESTDIR)$(PYTHONLIBDIR)/_selinux$(PYCEXT)
+
+ install-rubywrap: rubywrap
+ test -d $(DESTDIR)$(RUBYINSTALL) || install -m 755 -d $(DESTDIR)$(RUBYINSTALL)
+@@ -208,6 +186,8 @@ relabel:
+
+ clean-pywrap:
+ -rm -f $(SWIGLOBJ) $(SWIGSO) $(AUDIT2WHYLOBJ) $(AUDIT2WHYSO)
++ $(PYTHON) setup.py clean
++ -rm -rf build *~ \#* *pyc .#*
+
+ clean-rubywrap:
+ -rm -f $(SWIGRUBYLOBJ) $(SWIGRUBYSO)
+diff --git libselinux/src/setup.py libselinux/src/setup.py
+new file mode 100644
+index 00000000..4dc03f55
+--- /dev/null
++++ libselinux/src/setup.py
+@@ -0,0 +1,24 @@
++#!/usr/bin/python3
++
++from distutils.core import Extension, setup
++
++setup(
++ name="selinux",
++ version="2.9",
++ description="SELinux python 3 bindings",
++ author="SELinux Project",
++ author_email="selinux@vger.kernel.org",
++ ext_modules=[
++ Extension('selinux._selinux',
++ sources=['selinuxswig_python.i'],
++ include_dirs=['../include'],
++ library_dirs=['.'],
++ libraries=['selinux']),
++ Extension('selinux.audit2why',
++ sources=['audit2why.c'],
++ include_dirs=['../include'],
++ library_dirs=['.'],
++ libraries=['selinux'],
++ extra_link_args=['-l:libsepol.a', '-Wl,--version-script=audit2why.map'])
++ ],
++)
+--
+2.21.0
+
diff --git a/sys-libs/libselinux/libselinux-2.9-r1.ebuild b/sys-libs/libselinux/libselinux-2.9-r1.ebuild
new file mode 100644
index 000000000000..0a941fc9a829
--- /dev/null
+++ b/sys-libs/libselinux/libselinux-2.9-r1.ebuild
@@ -0,0 +1,157 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+PYTHON_COMPAT=( python2_7 python3_5 python3_6 python3_7 )
+USE_RUBY="ruby24 ruby25"
+
+# No, I am not calling ruby-ng
+inherit multilib python-r1 toolchain-funcs multilib-minimal
+
+MY_P="${P//_/-}"
+SEPOL_VER="${PV}"
+MY_RELEASEDATE="20190315"
+
+DESCRIPTION="SELinux userland library"
+HOMEPAGE="https://github.com/SELinuxProject/selinux/wiki"
+
+if [[ ${PV} == 9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/SELinuxProject/selinux.git"
+ S="${WORKDIR}/${MY_P}/${PN}"
+else
+ SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_RELEASEDATE}/${MY_P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~arm64 ~mips ~x86"
+ S="${WORKDIR}/${MY_P}"
+fi
+
+LICENSE="public-domain"
+SLOT="0"
+IUSE="pcre2 python ruby static-libs ruby_targets_ruby24 ruby_targets_ruby25"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+RDEPEND=">=sys-libs/libsepol-${SEPOL_VER}:=[${MULTILIB_USEDEP}]
+ !pcre2? ( >=dev-libs/libpcre-8.33-r1:=[static-libs?,${MULTILIB_USEDEP}] )
+ pcre2? ( dev-libs/libpcre2:=[static-libs?,${MULTILIB_USEDEP}] )
+ python? ( ${PYTHON_DEPS} )
+ ruby? (
+ ruby_targets_ruby24? ( dev-lang/ruby:2.4 )
+ ruby_targets_ruby25? ( dev-lang/ruby:2.5 )
+ )
+ elibc_musl? ( sys-libs/fts-standalone )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ python? ( >=dev-lang/swig-2.0.9 )
+ ruby? ( >=dev-lang/swig-2.0.9 )"
+PATCHES=(
+ "${FILESDIR}/0001-libselinux-Use-Python-distutils-to-install-SELinux-p.patch"
+)
+
+src_prepare() {
+ default
+
+ multilib_copy_sources
+}
+
+multilib_src_compile() {
+ tc-export AR CC PKG_CONFIG RANLIB
+
+ emake \
+ LIBDIR="\$(PREFIX)/$(get_libdir)" \
+ SHLIBDIR="/$(get_libdir)" \
+ LDFLAGS="-fPIC ${LDFLAGS} -pthread" \
+ USE_PCRE2="$(usex pcre2 y n)" \
+ FTS_LDLIBS="$(usex elibc_musl '-lfts' '')" \
+ all
+
+ if multilib_is_native_abi && use python; then
+ building() {
+ emake \
+ LDFLAGS="-fPIC ${LDFLAGS} -lpthread" \
+ LIBDIR="\$(PREFIX)/$(get_libdir)" \
+ SHLIBDIR="/$(get_libdir)" \
+ USE_PCRE2="$(usex pcre2 y n)" \
+ FTS_LDLIBS="$(usex elibc_musl '-lfts' '')" \
+ pywrap
+ }
+ python_foreach_impl building
+ fi
+
+ if multilib_is_native_abi && use ruby; then
+ building() {
+ einfo "Calling rubywrap for ${1}"
+ # Clean up .lo file to force rebuild
+ rm -f src/selinuxswig_ruby_wrap.lo || die
+ emake \
+ RUBY=${1} \
+ LDFLAGS="-fPIC ${LDFLAGS} -lpthread" \
+ LIBDIR="\$(PREFIX)/$(get_libdir)" \
+ SHLIBDIR="/$(get_libdir)" \
+ USE_PCRE2="$(usex pcre2 y n)" \
+ FTS_LDLIBS="$(usex elibc_musl '-lfts' '')" \
+ rubywrap
+ }
+ for RUBYTARGET in ${USE_RUBY}; do
+ use ruby_targets_${RUBYTARGET} || continue
+
+ building ${RUBYTARGET}
+ done
+ fi
+}
+
+multilib_src_install() {
+ emake DESTDIR="${D}" \
+ LIBDIR="\$(PREFIX)/$(get_libdir)" \
+ SHLIBDIR="/$(get_libdir)" \
+ USE_PCRE2="$(usex pcre2 y n)" \
+ install
+
+ if multilib_is_native_abi && use python; then
+ installation() {
+ emake DESTDIR="${D}" \
+ LIBDIR="\$(PREFIX)/$(get_libdir)" \
+ SHLIBDIR="/$(get_libdir)" \
+ USE_PCRE2="$(usex pcre2 y n)" \
+ install-pywrap
+ python_optimize # bug 531638
+ }
+ python_foreach_impl installation
+ fi
+
+ if multilib_is_native_abi && use ruby; then
+ installation() {
+ einfo "Calling install-rubywrap for ${1}"
+ # Forcing (re)build here as otherwise the resulting SO file is used for all ruby versions
+ rm src/selinuxswig_ruby_wrap.lo
+ emake DESTDIR="${D}" \
+ LIBDIR="\$(PREFIX)/$(get_libdir)" \
+ SHLIBDIR="/$(get_libdir)" \
+ RUBY=${1} \
+ USE_PCRE2="$(usex pcre2 y n)" \
+ install-rubywrap
+ }
+ for RUBYTARGET in ${USE_RUBY}; do
+ use ruby_targets_${RUBYTARGET} || continue
+
+ installation ${RUBYTARGET}
+ done
+ fi
+
+ use static-libs || rm "${D}"/usr/lib*/*.a || die
+}
+
+pkg_postinst() {
+ # Fix bug 473502
+ for POLTYPE in ${POLICY_TYPES};
+ do
+ mkdir -p /etc/selinux/${POLTYPE}/contexts/files || die
+ touch /etc/selinux/${POLTYPE}/contexts/files/file_contexts.local || die
+ # Fix bug 516608
+ for EXPRFILE in file_contexts file_contexts.homedirs file_contexts.local ; do
+ if [[ -f "/etc/selinux/${POLTYPE}/contexts/files/${EXPRFILE}" ]]; then
+ sefcontext_compile /etc/selinux/${POLTYPE}/contexts/files/${EXPRFILE} \
+ || die "Failed to recompile contexts"
+ fi
+ done
+ done
+}
diff --git a/sys-libs/libselinux/libselinux-2.9.ebuild b/sys-libs/libselinux/libselinux-2.9.ebuild
index 8c1c79a1faec..01eb86ea822f 100644
--- a/sys-libs/libselinux/libselinux-2.9.ebuild
+++ b/sys-libs/libselinux/libselinux-2.9.ebuild
@@ -41,8 +41,8 @@ RDEPEND=">=sys-libs/libsepol-${SEPOL_VER}:=[${MULTILIB_USEDEP}]
elibc_musl? ( sys-libs/fts-standalone )"
DEPEND="${RDEPEND}
virtual/pkgconfig
- python? ( >=dev-lang/swig-2.0.9 )
- ruby? ( >=dev-lang/swig-2.0.9 )"
+ python? ( <dev-lang/swig-4_pre )
+ ruby? ( <dev-lang/swig-4_pre )"
src_prepare() {
eapply_user
diff --git a/sys-libs/libudev-compat/Manifest b/sys-libs/libudev-compat/Manifest
index 8eca20f65616..a8ad9d804aac 100644
--- a/sys-libs/libudev-compat/Manifest
+++ b/sys-libs/libudev-compat/Manifest
@@ -1,3 +1,3 @@
AUX udev_old.c 895 BLAKE2B ccc45a3820556764fe16303c92e7e8d91cd79e9ba3cf488b05f505c867fdac43e9c40d26f263a63484ca14bf0e1eccaccb4618a5794f79babde97b22c211c9ba SHA512 4eafd908621857d0f4b415b7349d8ab992f40e5c2297270973462bd022b1b3e34cb365d4969e2f7801ad41c303f55649ea7bcfe9d8a32c997dd681bdc41a0237
EBUILD libudev-compat-186-r1.ebuild 991 BLAKE2B 6a87f451a19c3eab44fd9b07a332315c74a56a67c722b0da420bc7a716eff310ba45a68f2c4f963adbcb76522bae47fc63de75d528c707e62137e653e6056a69 SHA512 8885e4fdfc78d54cc574a5ef42c41f5052391f5122d95308d8bb3dc47b5aaaf62e9d8ad61c5f34f4d0d59b1ecaebf738bb9b50f9da02615f4b38a1d6579b666a
-MISC metadata.xml 165 BLAKE2B ed7e2ebe9f71491aa6163627bdb6606e798b98ca85c053b50442182a245074a9e09b290835e7c8fb4a10e4e8227c16ec306fd16f337cb66904095d864e698e8b SHA512 bebe508b4e0a7ca4a046f9befd3d7ddb702756024756a5f0d9fb5ace5fe3f5a98f9d42afda4597b7d1338607b8d43e41c8fcd6d20d31da3ebad2b420edd2cb59
+MISC metadata.xml 247 BLAKE2B 158fa8dff063e01e64b4835fa1f199518ecf7d81282ee8c893efc0d4d73454e16adb3189ee8cd1272bbada6fb5ffc2b5aadbd796490c829cba1a4b8e3e20f29f SHA512 8bffd29ab89c8dc401ad49655e30a6bd3a953bf8f6c9309b318f3b03ed7bcf2e5c10533ac70967e549edcd512f6be13b9bce3e36175286370ba499dcb119f6fc
diff --git a/sys-libs/libudev-compat/metadata.xml b/sys-libs/libudev-compat/metadata.xml
index 58f638b2ac3e..54be7ff7e5d6 100644
--- a/sys-libs/libudev-compat/metadata.xml
+++ b/sys-libs/libudev-compat/metadata.xml
@@ -1,5 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <!--maintainer-needed-->
+ <maintainer type="person">
+ <email>chewi@gentoo.org</email>
+ <name>James Le Cuirot</name>
+ </maintainer>
</pkgmetadata>
diff --git a/sys-libs/libutempter/Manifest b/sys-libs/libutempter/Manifest
index 1efb45551440..b8d00694b690 100644
--- a/sys-libs/libutempter/Manifest
+++ b/sys-libs/libutempter/Manifest
@@ -1,3 +1,3 @@
DIST libutempter-1.1.6.tar.bz2 15705 BLAKE2B 147bf96990913019c35565507eb635ba60ff5ed67134805e9f146f8f70882615ff96d7b2e52b40fb73110905afb87893a72bdec4327d879e5bdc2ec1d39ff9f0 SHA512 6ada410b981d157ae20b578de8ce20997ec0446ec6de6859549b080aa65976fc9900d211600dab09dc3d0d109daabad0994a648b093b8781b442ff26ca17fede
EBUILD libutempter-1.1.6-r2.ebuild 1700 BLAKE2B 816a23d7d191ec7d86e700ca0c39c01994c21847fb088de981774ecd8860f4a8d63387ca47ecfa0d5972d34721cfc23fa947df15475287f4fc9777439248b2a0 SHA512 0989bf1f30a55aea2b98c2943c6d3d450bfccd7e2fb26dc38edce1dd46e5ad3cf5be53137ebbb4cd0cac7fec632a36b5c522c592e1973f455af48a6b23500b1b
-MISC metadata.xml 344 BLAKE2B 090f0e14a3a7fec427cbffa3abc85b6caf242a4f471358ba0614a23682a183a2ac93fd4d6695ab0059b0c7e5573d8429ea4600506050753e2ceca3c1217c394a SHA512 77307533cb1ddb71561957493f7062330c1748f62ab1381f369c5fb864f0e2a6608cfa5c86005b816c2a9a2523bb9a2264c807f1d6c31a5e2bb6177876b94ed9
+MISC metadata.xml 253 BLAKE2B 295e9d6d93aaa12af413972e1590c67087801cc09c9aa6b59d4606c0f4106d1dacf2baa9858559083b4c6d91beeef218d0729e8593a33788958da6d2897e8ce2 SHA512 54a9069aeb4165d2dff3d473c8001bc51613aac9dff3f7f5e9971a9891a737a31511ffa11cbd523febe581ac1d9de2bdf2f40410f0c4239138f2ccca3ef15555
diff --git a/sys-libs/libutempter/metadata.xml b/sys-libs/libutempter/metadata.xml
index 910808b6e1f8..56c124413057 100644
--- a/sys-libs/libutempter/metadata.xml
+++ b/sys-libs/libutempter/metadata.xml
@@ -5,8 +5,4 @@
<email>base-system@gentoo.org</email>
<name>Gentoo Base System</name>
</maintainer>
-<maintainer type="project">
- <email>x11@gentoo.org</email>
- <name>X11</name>
-</maintainer>
</pkgmetadata>
diff --git a/sys-libs/musl/Manifest b/sys-libs/musl/Manifest
index 7396deb538fe..e56128c30532 100644
--- a/sys-libs/musl/Manifest
+++ b/sys-libs/musl/Manifest
@@ -3,13 +3,9 @@ AUX musl-1.1.20-fix-getaddrinfo.patch 1877 BLAKE2B 2b213efe9da356f0b07a448c311cf
DIST getconf.c 11614 BLAKE2B ba49a573fc16d51780a0b0b81fbf7b64a1142f1dbad203c9609a59b6b07e7404f676c415383ae88c0aede95694821f6ee381bffd93cc3330501e17dc07d122bd SHA512 0d80f37b34a35e3d14b012257c50862dfeb9d2c81139ea2dfa101d981d093b009b9fa450ba27a708ac59377a48626971dfc58e20a3799084a65777a0c32cbc7d
DIST getent.c 9438 BLAKE2B dc20353583c10a001bd8fe8474f32b70254dc56da186d1cdbaf4081570c3d7a10497024da5815a485fc4728adc9eebd270aec99ba93b7546b38c728978e3e00b SHA512 b35de9847353b273516162ed4828a810c6130fc5b7de44ee4433003b3f99647b25792d9b1c40dfc67069add11f3fb850e5c35d4f1912dccac108059bbbdfd5a2
DIST iconv.c 2577 BLAKE2B 070ca87b30c90ab98c27d5faf7a2fcb64ff7c67ca212ee6072165b2146979c551f714954dbd465462a171837c59b6ea027e0206458a2df0f977e45f01be3ce48 SHA512 9d42d66fb1facce2b85dad919be5be819ee290bd26ca2db00982b2f8e055a0196290a008711cbe2b18ec9eee8d2270e3b3a4692c5a1b807013baa5c2b70a2bbf
-DIST musl-1.1.20.tar.gz 977827 BLAKE2B c8ce3cc1885e8103e1cf9d67183d89e5e222fd317158b20f25a8e1855a3cd5d16c79b4d95ff896fe7262f233141c3f3ca4dfc6a26a2373ab1d29a3c66b904e61 SHA512 d3a7a30aa375ca50d7dcfbd618581d59e1aa5378417f50a0ca5510099336fd74cc9db468e05c93dda3067abd890f6bd47af226c3446bb833adf0a5054bff2e5d
-DIST musl-1.1.21.tar.gz 987341 BLAKE2B e080ee040ad5b7901f72d27a7e269ae4173eed8774510546abc8e53727a7443ed3590a802e6d750e2841313efb23e0c4097e3bf6232f4b84a777317e9b8260e7 SHA512 fa6c4cc012626c5e517e0e10926fc845e3aa5f863ffaceeb38ac5b9ce0af631a37f6b94f470997db09aa0d5e03f4f28a2db83484b0f98481bea2239c1989d363
DIST musl-1.1.22.tar.gz 987296 BLAKE2B 0326751e1d1bd5b909938159e709daa1ca0b2e51a3f3dc1fc80caa3e7fc0e9fe0fa64d6dfe7d870057fa8e97100a3a89bfe4449fd4c04fe3af17d0f105dfb9cd SHA512 08a40d722672504427238e71c9e52a723c6a14735abe9581d6d4bb3f86662d5d51a3f32a6aed6420c1f9680e22a3a554a9b87ae342635be971e2db49cc9fdb87
DIST musl-1.1.23.tar.gz 1013779 BLAKE2B 0251604697f6e243d173c6a72d0a24ddbbce298f8e3a53d9d3a18d7f5ebf19f4e85584a494639c2470530b61c3189150bfaed3376e31acf4e1b2daa1c30860dc SHA512 a2278de9903852b08352d3e734a39d4616caa602496997ba843e8fea0e1c481761776745faf04536a149d1c4af416b68df681b6fbc9ae2de8794e18c2e853b09
-EBUILD musl-1.1.20-r1.ebuild 3131 BLAKE2B aa772ac4c028022eb5bebffeb746b8f9393376966f1b1feaa2d6c10d58d0cabf91bbafd9d70aa37fdf00e458141da01498d9e4c90d28c92538ea5f12ca0fe7ea SHA512 7312e4ed0a7d7de47e8ccaba7d5e752f8afac2d4c2e128500f93101e4cd02702ecf96acf0107e0359df8e96228fc276540541146cc4d062f5687ec26b10dc2ad
-EBUILD musl-1.1.21.ebuild 3050 BLAKE2B bec489a792cf8793c8a1ce14041f8210eb96a9159fb3a93ae52d810e878fb9a29e3a0fc5fcbc466a4756fdf73d45b4c28a154df2887067898430ef1f29a372d2 SHA512 40ca12c1c2e65b0f598f91ea0fbc2ddf374e7d6797d5fea19c5c33d4f68882da9e69f333a34e26bb54bef4741920f964e4a5941704d675963f8c10c36af79816
EBUILD musl-1.1.22.ebuild 3049 BLAKE2B a48d0553b5442614e9a4c11b8d5daf6dad9b3f9dcfa0f1b8fa83afc34eed9ae7655b5928baf1b1f2e7ebdd34e76bb5380fd51b4c5ba4870b04ed89716b5484b2 SHA512 d41cd576d8907045c97f7221e294955faef2be38190f3664b4f90b99c4d48570c277b4d2cc3408e60d65a43c94d28dd43a618dff9ec6f4f73cf99b185dd33f14
-EBUILD musl-1.1.23.ebuild 3054 BLAKE2B a7fab7e588b3dc356ebcae705ba9eecd5656fdeb01a0fb76b7d7815642e33b356cb655cfefa98c4a471c0b2c7bc40073b8b36ecde8e331ae6585ba059a9b54eb SHA512 1251eab79c1aeb716912d350cef661fe67bc1c030f57e5922d7b534d03c2d0de3e8b3d2c61bedef6160fcceeefd62524d987d067de443cde048e598a5c8f0346
+EBUILD musl-1.1.23.ebuild 3052 BLAKE2B b4c1eefdbeb949335f599afe5962d77936e8fd1c8e311bfccf10929f1f0c5cd33750821db1be42ac3bed869e1d38c5ca258850fafa4518a700c607074ce348c0 SHA512 1deaed83a3ed4685116550fb7960141e7b3b12be4d8d985bc31ea82cc2dba075aad3267fca3cadfa1f2bf3033551025d7eab96ee8057fe2d4d56c01ad101a514
EBUILD musl-9999.ebuild 3054 BLAKE2B a7fab7e588b3dc356ebcae705ba9eecd5656fdeb01a0fb76b7d7815642e33b356cb655cfefa98c4a471c0b2c7bc40073b8b36ecde8e331ae6585ba059a9b54eb SHA512 1251eab79c1aeb716912d350cef661fe67bc1c030f57e5922d7b534d03c2d0de3e8b3d2c61bedef6160fcceeefd62524d987d067de443cde048e598a5c8f0346
MISC metadata.xml 453 BLAKE2B d7b2840a6b0bb2ede2124f22bde34a9f77ac258792a9fbf9d9e3f552a85d6ee539a98c8704729efb75dec627db62b33759fc0cfdfd01614abbc4960a163c5019 SHA512 5d8bebce119ed34a6a6b8cb07b3ce056db5efc91db80709fc8031c955b16e29965f3741f75e9afbe9f428bbac1e39e7c30278cd63f04479e3a1493b006195e0a
diff --git a/sys-libs/musl/musl-1.1.20-r1.ebuild b/sys-libs/musl/musl-1.1.20-r1.ebuild
deleted file mode 100644
index 13a18acc7023..000000000000
--- a/sys-libs/musl/musl-1.1.20-r1.ebuild
+++ /dev/null
@@ -1,123 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit eutils flag-o-matic multilib toolchain-funcs
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="git://git.musl-libc.org/musl"
- inherit git-r3
- SRC_URI="
- 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=""
-else
- SRC_URI="http://www.musl-libc.org/releases/${P}.tar.gz
- 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"
-fi
-
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} == ${CHOST} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-
-DESCRIPTION="Light, fast and simple C library focused on standards-conformance and safety"
-HOMEPAGE="http://www.musl-libc.org/"
-LICENSE="MIT LGPL-2 GPL-2"
-SLOT="0"
-IUSE="headers-only"
-
-QA_SONAME="/usr/lib/libc.so"
-QA_DT_NEEDED="/usr/lib/libc.so"
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-just_headers() {
- use headers-only && is_crosscompile
-}
-
-pkg_setup() {
- if [ ${CTARGET} == ${CHOST} ] ; then
- case ${CHOST} in
- *-musl*) ;;
- *) die "Use sys-devel/crossdev to build a musl toolchain" ;;
- esac
- fi
-}
-
-src_prepare() {
- eapply "${FILESDIR}/${P}-fix-getaddrinfo.patch"
- eapply_user
-}
-
-src_configure() {
- tc-getCC ${CTARGET}
- just_headers && export CC=true
-
- local sysroot
- is_crosscompile && sysroot=/usr/${CTARGET}
- ./configure \
- --target=${CTARGET} \
- --prefix=${sysroot}/usr \
- --syslibdir=${sysroot}/lib \
- --disable-gcc-wrapper || die
-}
-
-src_compile() {
- emake obj/include/bits/alltypes.h
- just_headers && return 0
-
- emake
- if [[ ${CATEGORY} != cross-* ]] ; then
- $(tc-getCC) ${CFLAGS} "${DISTDIR}"/getconf.c -o "${T}"/getconf || die
- $(tc-getCC) ${CFLAGS} "${DISTDIR}"/getent.c -o "${T}"/getent || die
- $(tc-getCC) ${CFLAGS} "${DISTDIR}"/iconv.c -o "${T}"/iconv || die
- fi
-}
-
-src_install() {
- local target="install"
- just_headers && target="install-headers"
- emake DESTDIR="${D}" ${target}
- just_headers && return 0
-
- # musl provides ldd via a sym link to its ld.so
- local sysroot
- is_crosscompile && sysroot=/usr/${CTARGET}
- local ldso=$(basename "${D}"${sysroot}/lib/ld-musl-*)
- dosym ${sysroot}/lib/${ldso} ${sysroot}/usr/bin/ldd
-
- if [[ ${CATEGORY} != cross-* ]] ; then
- local arch=$("${D}"usr/lib/libc.so 2>&1 | sed -n '1s/^musl libc (\(.*\))$/\1/p')
- [[ -e "${D}"/lib/ld-musl-${arch}.so.1 ]] || die
- cp "${FILESDIR}"/ldconfig.in "${T}" || die
- sed -e "s|@@ARCH@@|${arch}|" "${T}"/ldconfig.in > "${T}"/ldconfig || die
- into /
- dosbin "${T}"/ldconfig
- into /usr
- dobin "${T}"/getconf
- dobin "${T}"/getent
- dobin "${T}"/iconv
- echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00musl || die
- doenvd "${T}"/00musl || die
- fi
-}
-
-pkg_postinst() {
- is_crosscompile && return 0
-
- [ "${ROOT}" != "/" ] && return 0
-
- ldconfig || die
- # reload init ...
- /sbin/telinit U 2>/dev/null
-}
diff --git a/sys-libs/musl/musl-1.1.21.ebuild b/sys-libs/musl/musl-1.1.21.ebuild
deleted file mode 100644
index 7ce0d5e96bc4..000000000000
--- a/sys-libs/musl/musl-1.1.21.ebuild
+++ /dev/null
@@ -1,118 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit eutils flag-o-matic multilib toolchain-funcs
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="git://git.musl-libc.org/musl"
- inherit git-r3
- SRC_URI="
- 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=""
-else
- SRC_URI="http://www.musl-libc.org/releases/${P}.tar.gz
- 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"
-fi
-
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} == ${CHOST} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-
-DESCRIPTION="Light, fast and simple C library focused on standards-conformance and safety"
-HOMEPAGE="http://www.musl-libc.org/"
-LICENSE="MIT LGPL-2 GPL-2"
-SLOT="0"
-IUSE="headers-only"
-
-QA_SONAME="/usr/lib/libc.so"
-QA_DT_NEEDED="/usr/lib/libc.so"
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-just_headers() {
- use headers-only && is_crosscompile
-}
-
-pkg_setup() {
- if [ ${CTARGET} == ${CHOST} ] ; then
- case ${CHOST} in
- *-musl*) ;;
- *) die "Use sys-devel/crossdev to build a musl toolchain" ;;
- esac
- fi
-}
-
-src_configure() {
- tc-getCC ${CTARGET}
- just_headers && export CC=true
-
- local sysroot
- is_crosscompile && sysroot=/usr/${CTARGET}
- ./configure \
- --target=${CTARGET} \
- --prefix=${sysroot}/usr \
- --syslibdir=${sysroot}/lib \
- --disable-gcc-wrapper || die
-}
-
-src_compile() {
- emake obj/include/bits/alltypes.h
- just_headers && return 0
-
- emake
- if [[ ${CATEGORY} != cross-* ]] ; then
- $(tc-getCC) ${CFLAGS} "${DISTDIR}"/getconf.c -o "${T}"/getconf || die
- $(tc-getCC) ${CFLAGS} "${DISTDIR}"/getent.c -o "${T}"/getent || die
- $(tc-getCC) ${CFLAGS} "${DISTDIR}"/iconv.c -o "${T}"/iconv || die
- fi
-}
-
-src_install() {
- local target="install"
- just_headers && target="install-headers"
- emake DESTDIR="${D}" ${target}
- just_headers && return 0
-
- # musl provides ldd via a sym link to its ld.so
- local sysroot
- is_crosscompile && sysroot=/usr/${CTARGET}
- local ldso=$(basename "${D}"${sysroot}/lib/ld-musl-*)
- dosym ${sysroot}/lib/${ldso} ${sysroot}/usr/bin/ldd
-
- if [[ ${CATEGORY} != cross-* ]] ; then
- local arch=$("${D}"usr/lib/libc.so 2>&1 | sed -n '1s/^musl libc (\(.*\))$/\1/p')
- [[ -e "${D}"/lib/ld-musl-${arch}.so.1 ]] || die
- cp "${FILESDIR}"/ldconfig.in "${T}" || die
- sed -e "s|@@ARCH@@|${arch}|" "${T}"/ldconfig.in > "${T}"/ldconfig || die
- into /
- dosbin "${T}"/ldconfig
- into /usr
- dobin "${T}"/getconf
- dobin "${T}"/getent
- dobin "${T}"/iconv
- echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00musl || die
- doenvd "${T}"/00musl || die
- fi
-}
-
-pkg_postinst() {
- is_crosscompile && return 0
-
- [ "${ROOT}" != "/" ] && return 0
-
- ldconfig || die
- # reload init ...
- /sbin/telinit U 2>/dev/null
-}
diff --git a/sys-libs/musl/musl-1.1.23.ebuild b/sys-libs/musl/musl-1.1.23.ebuild
index 22f16fa8bfb0..455b845402c8 100644
--- a/sys-libs/musl/musl-1.1.23.ebuild
+++ b/sys-libs/musl/musl-1.1.23.ebuild
@@ -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/readline/Manifest b/sys-libs/readline/Manifest
index 14067120dec7..5ccf5159a40d 100644
--- a/sys-libs/readline/Manifest
+++ b/sys-libs/readline/Manifest
@@ -49,5 +49,5 @@ EBUILD readline-5.2_p14.ebuild 1592 BLAKE2B e93c757eef8ee119694e15c59723e77caba2
EBUILD readline-6.3_p8-r3.ebuild 4390 BLAKE2B 2121e1c1d5b045fa0ae14db133a80e4b5290e0ce37e8a5e0406c7245a1cb21455573d1468221def3830c4290c49b0cb1189c020727f0292c3c639e82d9f9e7ac SHA512 90c7643acf92343a49ede4f776c23e16c8070018d912a2872cd555a88ea9f56b6b207cc415f451d1a1341e2c64aa41a7b126938f5436c9e866b4c2a7ee3ae3bb
EBUILD readline-7.0_p5.ebuild 4843 BLAKE2B 77f5eca75e11a2a2c3de59020a3030593670e402c2c58efe786507a3cbbda015f9714f187434d53eeb13b9d47a3fb8ae9f2a032c67272326e076fe56c44333cb SHA512 b116fd9a52913d615845f23ab5d37bca0b478b03779ed7aa229dc929565e47bcd757625f636088788721debd43171e133ea5f40e685918f6df519dd670e7db78
EBUILD readline-8.0.ebuild 4812 BLAKE2B 34c5b37ae51086570439f333067a8276f2160c9ab7d2b6e1a4639164ce9d199b253689dd69beba935231b251729b8af36ee938c12bba03d1440ae463b8f8f128 SHA512 c1afbacd9c1297570a6c8a116faad750a3236e25b7ec30bf2861492e0c3578d2002e9995c11aa9cce86c88cb5567c89c6f9b6343fc4d57f98a5edf5bb8e83c3b
-EBUILD readline-8.0_p1.ebuild 4826 BLAKE2B 289b16beca550658cffc74a87847620fa05ce8c0c91098715f3f568e3e8fdb5c5382bc7867d289179d44734e56f237b4093b01e2149135a84fe82b30496ab788 SHA512 358225d5c31629f8f21ed7e47d05e1c73a3a5eda761e2da070fa52697bcbb4c23292606e2f546d4c9d6a307d3c54d5e814d84f574674e1d99861bf0d7c254744
+EBUILD readline-8.0_p1.ebuild 4840 BLAKE2B d0dddfb82d703dd45801ff9079861a0213cb11063fa7608a195eb30b97b4d7e635eef028ff8f17daf37716b701ce514284bb7422ee5720c2bbcd7203a42dec1d SHA512 a8079e8578f0cc5c7fc616a76d69135fb3e95965328cd38097398458f760f812612951381b143106612f316068871a941d5d0c1b3ec396fbc457f4fd902e79b4
MISC metadata.xml 394 BLAKE2B e4fee9daaa3d2c66a9425c988c855768ddb74af714f9e259fad1e3a470ab10af041ec8ca82d106fd967317e555a492b35723d60fa913ffac200212af14ca5ae1 SHA512 e27930a59d80535721eda0d3c481b1d13a66915c6d9552d960c9ac788f3dcdb0ef3fc411803a36cc98441ebbb8a4e0c1086bc2bda01511549fbf2921a7017784
diff --git a/sys-libs/readline/readline-8.0_p1.ebuild b/sys-libs/readline/readline-8.0_p1.ebuild
index 7e6b19160ad4..b000aa3b553c 100644
--- a/sys-libs/readline/readline-8.0_p1.ebuild
+++ b/sys-libs/readline/readline-8.0_p1.ebuild
@@ -3,7 +3,7 @@
EAPI=7
-inherit flag-o-matic multilib-minimal toolchain-funcs usr-ldscript
+inherit flag-o-matic multilib-minimal preserve-libs toolchain-funcs usr-ldscript
# Official patches
# See ftp://ftp.cwru.edu/pub/bash/readline-7.0-patches/
diff --git a/sys-libs/talloc/Manifest b/sys-libs/talloc/Manifest
index f68be02e5794..1be4a20c68a2 100644
--- a/sys-libs/talloc/Manifest
+++ b/sys-libs/talloc/Manifest
@@ -1,13 +1,11 @@
DIST talloc-2.1.14.tar.gz 444589 BLAKE2B 3e47126eb41dc08befd22d7d41443dc5502d0bed239fa0fd32d63fe5374b4422165a7b364a8ad4a9f6e2d73b2db1dd4bada6aec3271c7b264f148d32974adcff SHA512 1fcc70bf283a4d9fb61faf1c57f80a9c158efbe996452740db9755e879ad72ee7bff6f6c9bed358e085c5c7f97c78800bb903161143af2202952b702141cc130
-DIST talloc-2.1.15.tar.gz 634092 BLAKE2B e7dfad56e0f6325f50a025e4c92bb1d3d2b1d93897ebef59103c3ca40065c2724a47bb2d1104238b368870d2a944aacabb5f686f20e55134fa83dd68b2e27f6f SHA512 41896f8877e9a52e70b9881c41667dc52d7c1b03c3b248020fd909b794a4c5a4addee3eb944aa80ecfa3b03e6e5e1f67a62b5f3a5dcdc412b3e975352057ff40
DIST talloc-2.1.16.tar.gz 634906 BLAKE2B 5f9f2e5ad53944d9a7b5bdb990aa6ab65a3f0d90cd9e368c16b11192e90fdecc873d59618dbf3e15896ecf7bbbbb2deaac91df6e231ad6b22b8e7c14bd382956 SHA512 a1affe4ad2a4cf19d4494017e0e6e37cdf9f8e6a98839c9e4e5c02758a7da7ea0040518de9b26707a60eb0a0eab29f939c6823e5840096dc124d351993e05c74
-DIST talloc-2.1.5.tar.gz 436193 BLAKE2B 88a9ca32b6c6ae869e1761cb027847797e4ef3bb58dc618bae4b00f95637a0a8511f8704fa03ca1ca935127413a10d5297ba3843f0ea6992a97ce586f66cb705 SHA512 b938d67fcf4c6618f1149b4ec665957a604e3b07ee26e96ed36d94312db8f56b50498f69f9a07782f7f10a25047604e32b0d1786e1051d5f36b696c2755f8741
DIST talloc-2.1.9.tar.gz 440335 BLAKE2B dde37d99b3cfb63209cdb832444f0416b7c05151cec537e220e13b1148d59b89fb712b4211e078b23f1c6608c8be6df6055d5f394b091ccdea3966c04cbb73be SHA512 a8f051bb15aba769ca286acad0946605d0053b0d149b4da2e6ecc333345f3e603d13a7f062452ae0f165615a4170ebdd7f41fc1b46c7a360000d5308bc304cbb
DIST talloc-2.2.0.tar.gz 633467 BLAKE2B efdb53dbd4d43ce5d682faec01fb53d9c4b5dd7e97cf125e12661e7432bb968f577416cccbd8ee5003811bdd03dcc949b2e7a06312c497fb9eef54667209a653 SHA512 e762c6443ff2c0c35a9dbf7ac6e64a9182c04a218ad0f26fd67ac9620d9ae26d68b8dd2b21ff37e1df0e53748c84bece27890c5c4939eaeb61c502a698802388
+DIST talloc-2.3.0.tar.gz 642364 BLAKE2B 148ad3b478617c34c16c2ef454796a5dc918fc0a3e91bd965943ba66860b9b7df21fd2b69f5481f46a712a55a8f1a5e39db9f4ac779896d17d090290292b2ed6 SHA512 f0020d83520ea24711040c44600180fabae7b0e0668a961a66f5d4f77d89b09d799ddadf781ee2d044ad059b2d6a2e5232068fd77b300a8366592c0ce2289837
EBUILD talloc-2.1.14.ebuild 2428 BLAKE2B 1c2e8e21042957a9d95ed3d70b60708e66764d488781aa7c022d5b85c1707983a3dd7053cfc747f41651c5351f423f2c5d3f350059b5b9abea39472eb1a44193 SHA512 742db47be8ccfbd887c9de07425df86de883b2d06c9a626404c4cf5e4b896f4e4c97451d8f47dbd5abee670df0e87bef880b3205a075773265a765a6dc3cca26
-EBUILD talloc-2.1.15.ebuild 2513 BLAKE2B e964cab897cdb8c81026453b5e93be852bfbc18bd905e1cc33d8fb6ce385cf9d29792f373da0158e54812a100e4c501d46115dedf59dc6f13be1792387fa279a SHA512 c3cfa0e4680e6d6c34d79e4e569f92fc719cbff4763ccaeafd31f495308a1f2849b0fcf4dde853089dbd7850236fccf164d91d647cccadf07dd620d164298400
EBUILD talloc-2.1.16.ebuild 2513 BLAKE2B e964cab897cdb8c81026453b5e93be852bfbc18bd905e1cc33d8fb6ce385cf9d29792f373da0158e54812a100e4c501d46115dedf59dc6f13be1792387fa279a SHA512 c3cfa0e4680e6d6c34d79e4e569f92fc719cbff4763ccaeafd31f495308a1f2849b0fcf4dde853089dbd7850236fccf164d91d647cccadf07dd620d164298400
-EBUILD talloc-2.1.5.ebuild 2282 BLAKE2B 9e895c62d6c90cf1556167492fdf5b3b4c08c138d7ee587ab8bedbeca5b5d01058022ed1c3eefc501dfb1a73bfb08757c6fdd199093f23be56f27c6ec44cb46e SHA512 8fbcffaa4ed36ae6dc507344f67dccbcf971baafdc71bde8b374ee60db36d7f5798a3278f62454bc15bee84f0505b336272b2823cd3002a74d185cefb5037806
EBUILD talloc-2.1.9.ebuild 2464 BLAKE2B 45c4b0941d72cca82bc5b1ed376cdc55268b064ea5de412e19aff23c7c230b00997ed8673637025a4377283de06646e02bcd5df1047018a493f8ba10d4a42eb5 SHA512 2cfcbe1828a508e6e0c4ea0136f1896e7767c2e8a7493c28c269cfe7ce52e24c97e238946ded2aafbc43a36520010bd7351e5b98a693ca411d0dd6d686337138
EBUILD talloc-2.2.0.ebuild 2577 BLAKE2B 497e92e4cfb306e9c6d3058bd8069e0b1f855bb0b672a717c607e31b939b55964b51a030a0f2fbf5e2a9af931adb3ddbde3e80ec2f58c27d07d92fefdcc152f9 SHA512 82e354452f3d80cd8be969d12e14509f37343708ca573ac8957cc4c9538e0477a397693351d2c9c9490644ae8d722f19602032c1fbcc8de11ddd0f3383533c3b
+EBUILD talloc-2.3.0.ebuild 2578 BLAKE2B 394e9c02640c54af327edebcda7afb7ff2c33257156975974f5403982b7d987d00f5c8e58413b0cad39bf5e43167a42e604167b92955960a0f8f6ec124394117 SHA512 41bcc9d45cbd3125957816f6e5fa5ff57b6cb73aeb66a084cb70746b985b330e2c221b6e8d66e1d0dc2c4526e62f0f63237cb6953331dee8c205e61c7b7a22a5
MISC metadata.xml 439 BLAKE2B 06eae26083fdab237958e15ac7e59ae728e1741eef080e2dbd47a9725a88f9120bfd03bcd98ec32a84bf8ee69d5721c7f3978c2c11d018136647d8f1778a1ab8 SHA512 e583aa7aa9a641067b3b38bf398ad6266980ee961e11d81b5d7c6d32cb8948879e27777a33a72376f79beca6f71aa79613db65049e6a1221922869239de9ccf3
diff --git a/sys-libs/talloc/talloc-2.1.5.ebuild b/sys-libs/talloc/talloc-2.1.5.ebuild
deleted file mode 100644
index b98d2dfa5797..000000000000
--- a/sys-libs/talloc/talloc-2.1.5.ebuild
+++ /dev/null
@@ -1,83 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit waf-utils python-single-r1 multilib multilib-minimal
-
-DESCRIPTION="Samba talloc library"
-HOMEPAGE="https://talloc.samba.org/"
-SRC_URI="https://www.samba.org/ftp/${PN}/${P}.tar.gz"
-
-LICENSE="GPL-3 LGPL-3+ LGPL-2"
-SLOT="0"
-KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~sparc-solaris"
-IUSE="compat +python"
-
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-RDEPEND="!elibc_FreeBSD? ( dev-libs/libbsd[${MULTILIB_USEDEP}] )
- python? ( ${PYTHON_DEPS} )
- !!<sys-libs/talloc-2.0.5"
-DEPEND="${RDEPEND}
- sys-devel/gettext
- dev-libs/libxslt
- ${PYTHON_DEPS}"
-
-WAF_BINARY="${S}/buildtools/bin/waf"
-
-RESTRICT="test"
-
-MULTILIB_WRAPPED_HEADERS=(
- # python goes only for native
- /usr/include/pytalloc.h
-)
-
-src_prepare() {
- # what would you expect of waf? i won't even waste time trying.
- multilib_copy_sources
-}
-
-multilib_src_configure() {
- local extra_opts=()
-
- use compat && extra_opts+=( --enable-talloc-compat1 )
- if ! multilib_is_native_abi || ! use python; then
- extra_opts+=( --disable-python )
- fi
-
- waf-utils_src_configure \
- "${extra_opts[@]}"
-}
-
-multilib_src_compile() {
- waf-utils_src_compile
-}
-
-multilib_src_install() {
- waf-utils_src_install
-
- # waf is stupid, and no, we can't fix the build-system, since it's provided
- # as a brilliant binary blob thats decompressed on the fly
- if [[ ${CHOST} == *-darwin* ]] ; then
- install_name_tool \
- -id "${EPREFIX}"/usr/$(get_libdir)/libtalloc.2.dylib \
- "${ED}"/usr/$(get_libdir)/libtalloc.2.0.5.dylib || die
- if use python ; then
- install_name_tool \
- -id "${EPREFIX}"/usr/$(get_libdir)/libpytalloc-util.2.dylib \
- "${ED}"/usr/$(get_libdir)/libpytalloc-util.2.0.5.dylib || die
- install_name_tool \
- -change "${S}/bin/default/libtalloc.dylib" \
- "${EPREFIX}"/usr/$(get_libdir)/libtalloc.2.dylib \
- "${ED}"/usr/$(get_libdir)/libpytalloc-util.2.0.5.dylib || die
- install_name_tool \
- -change "${S}/bin/default/libtalloc.dylib" \
- "${EPREFIX}"/usr/$(get_libdir)/libtalloc.2.dylib \
- "${D}"$(python_get_sitedir)/talloc.bundle || die
- fi
- fi
-}
diff --git a/sys-libs/talloc/talloc-2.1.15.ebuild b/sys-libs/talloc/talloc-2.3.0.ebuild
index 077f0c05371a..320f1bbb31d1 100644
--- a/sys-libs/talloc/talloc-2.1.15.ebuild
+++ b/sys-libs/talloc/talloc-2.3.0.ebuild
@@ -14,12 +14,18 @@ SRC_URI="https://www.samba.org/ftp/${PN}/${P}.tar.gz"
LICENSE="GPL-3 LGPL-3+ LGPL-2"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~sparc-solaris ~x64-solaris"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~sparc-solaris ~x64-solaris"
IUSE="compat +python"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-RDEPEND="!elibc_FreeBSD? ( dev-libs/libbsd[${MULTILIB_USEDEP}] )
+RDEPEND="!elibc_FreeBSD? (
+ !elibc_SunOS? (
+ !elibc_Darwin? (
+ dev-libs/libbsd[${MULTILIB_USEDEP}]
+ )
+ )
+ )
python? ( ${PYTHON_DEPS} )
!!<sys-libs/talloc-2.0.5"
DEPEND="${RDEPEND}
diff --git a/sys-libs/tdb/Manifest b/sys-libs/tdb/Manifest
index 5ffdf41af107..33aff7b83f23 100644
--- a/sys-libs/tdb/Manifest
+++ b/sys-libs/tdb/Manifest
@@ -1,13 +1,11 @@
DIST tdb-1.3.13.tar.gz 498002 BLAKE2B bf29b535acf3838942820a7dc841f635c457999d1ab7456bc598d73c79404dea9ab397eec1725d739bdc9b4a46b6b0ad068ad36d0e7247afccb795d410b15b06 SHA512 d12382a2f75e56d62d151df3390b3ae41c7502d67582812ec6da30913b13feb7ee98572ab5ad5b5ed3bceb41666c3154855727cf5ce249ef583c033819c05f0f
DIST tdb-1.3.16.tar.gz 504330 BLAKE2B 686b6b3d026094a0219f2c5d76f7258cf2f96538f614fa9078ca00368ad64c4e93f2e184c98f3d6f480fec909d94105fdf527d96f3b4ea291d81bb63420d2a99 SHA512 7b17852986e48a32f3f8f303dd2a26503a69fcf7849f22f51483334c9abda9f189b521679e51b4ee5a80197a8f304a084dde0f56d92cfe953d3a4ede557526d2
-DIST tdb-1.3.17.tar.gz 697224 BLAKE2B 6231c48924a2c164a6f55fc5cea0ce284fc5a34519e3cf26709322539118ed3dcdf21ecdeeb1a958a47c7502a625e66695f452d858a865965ce4fa60d65c55cd SHA512 ef25dad520a12d75e541802a46e418fe61ac691126600f24158cd5b95091b4c536ffc4d4aff6608cca087291fde0b86b44ff7b1a7837d816cd534e9688c39eff
DIST tdb-1.3.18.tar.gz 697970 BLAKE2B a6dff8dbe444ce35f6470dae7da1b6719052fb2030fd5526157c67374b0f54fb815c8f799060ea2a811e85ce208f626f18a48df9169e3f45d3f92998246b81cd SHA512 9b856b2a5b2d852ff0048ba7b1700ea46b8dad5d4e94027472fdce9f1db4b5afba9aec127b7a4c2a38d4722c8e0ea78c1734d102fa134ac802eace6b24358034
-DIST tdb-1.3.8.tar.gz 494106 BLAKE2B 3ac4418b642472859c37c20477ffcc255be6e435b84f59ee634fb5b80caa38aadbcc761fd2daf7c797f9d9a120dcf6e597b31306f8c67d3e890570dd94e4263f SHA512 9a7040206bbaae419a296714fe14fcbd3b67c0cef2b0f33563d52336aac2fe814049f5136a148fb049a273bb36fe81e3d777df58869c93f45d6e42b4adf9970b
DIST tdb-1.4.0.tar.gz 696994 BLAKE2B f1dc29d3a66bd898f0e69f195879aea56235c1b6f542c532b4335d87482a5a2d8a8bc9bd5b463a0a110431535a2b0ccebb779449536696e0b5aa7ea5f3bce02c SHA512 3c5e17f8011e61e855a745dbff18ba9f778534f34e1538a68c8854d8d1022494bcc3bf7a19f2b79c478e091b1b6b183723fe27b935c4cc6d058b6b147b6a325e
+DIST tdb-1.4.2.tar.gz 706236 BLAKE2B 5ec8938f2e62c146c73d8ef01dd73bc44f38df2ea65b9cd62694bfc532315ab8b0594975e5edfccd84f3ad504dbfc6eb08be96d9d0e5b679f2613c2f69a5f58b SHA512 1d1f83e1b79cc6ea2b5cbc755de4a370fb95ef0f592f3bd2b6d23b1be18555cd417a9254fdf276dc6bd7f3368af82a4569c1f1cdde13d98405a5d38f1291d832
EBUILD tdb-1.3.13.ebuild 1391 BLAKE2B 4be42a42cdd19e1d7dd1daae48a4267deb895ef0063d17f8676be06cb107215bfcc8623096e3b3e27d100723c58941f24c8d53c4b377f14b7e39592c5b6ffe69 SHA512 313984b1ffbdd4a200b5de2af741d4fd11e3bf31f9410776e704b5d3bbf4bbc36fe68fb32d2fd713967d74668f3f92eed5b0754780e319232e117cb18d611d1e
EBUILD tdb-1.3.16.ebuild 1387 BLAKE2B 850b09c126d0fb37c712c0644d5625710a2a8e50d6afbe42cd7bda39bef3b370c5f75ab6f49c16ed561b0eaa20d644b846d362b8dd39919b95f470c8bca8b11c SHA512 d949fe01f13419c886e20b323dc42591ebc0fe83792f893d69f851451c9c59defae060187c72a0853975268f61aeb7786ad418b4d7ef7aab8b5bda3c5718b097
-EBUILD tdb-1.3.17.ebuild 1415 BLAKE2B 6d8e4445727e2fc2cdb1fecc26d3812a6597bb4653d3f0d644d598c55ee259783c21b4eb219634b109f3c8ad47faf61c29a54e016daa7d31ee33a800166202f7 SHA512 cd39f0acdf6398778682ece69c604a91560a0145cb3a4048791df21987c635489cb1698d96e8f12954dcd3e5549edb6ee2f6df9b0f4722c79a469ccb91877693
EBUILD tdb-1.3.18.ebuild 1415 BLAKE2B 6d8e4445727e2fc2cdb1fecc26d3812a6597bb4653d3f0d644d598c55ee259783c21b4eb219634b109f3c8ad47faf61c29a54e016daa7d31ee33a800166202f7 SHA512 cd39f0acdf6398778682ece69c604a91560a0145cb3a4048791df21987c635489cb1698d96e8f12954dcd3e5549edb6ee2f6df9b0f4722c79a469ccb91877693
-EBUILD tdb-1.3.8.ebuild 1388 BLAKE2B 0367256f62c3f53f3e48ca2368290308a5aa08ab3868ac865364aa7c3d65395c2e3afe7f865797e41559fd76b77d310b5ed983ba87cb7b78ab87101f12dca16a SHA512 205a7f0fd792057f9c6777b3efc43e6f5afbc5f0a6a33613353eaa7398fd43a12e471952128abfe05df7523b45327e5cea8c42c211d3700091685bd4f900b5cb
EBUILD tdb-1.4.0.ebuild 1414 BLAKE2B ea602298422a15bb79a67d5306994aaf621f79e82e21bbe8ae8ac166b58c6ab18df90d5284ba67bffd65c9c291dfb585c54829db36eb533056a8cfc4aed2438c SHA512 81488f28112855b8c341b9331b95f2c63f19bc7ceb7541640682b404e129b70067dba293461ff5425d0d5a343cc155949b21f0409500ec2e9f71976775f38785
+EBUILD tdb-1.4.2.ebuild 1415 BLAKE2B 6d8e4445727e2fc2cdb1fecc26d3812a6597bb4653d3f0d644d598c55ee259783c21b4eb219634b109f3c8ad47faf61c29a54e016daa7d31ee33a800166202f7 SHA512 cd39f0acdf6398778682ece69c604a91560a0145cb3a4048791df21987c635489cb1698d96e8f12954dcd3e5549edb6ee2f6df9b0f4722c79a469ccb91877693
MISC metadata.xml 356 BLAKE2B 89cee65fc3e653bd568f34339d7d5e4ca0486ea124b175c88a966dde42a4128789669f2e0179e8d3ee2e4eb3df90f9de95441c3f2d61f3bdf47c1d87c95e1248 SHA512 59095952e57315232ef95494f2c30f520f13538f279df25f17a923a836194c4df78e11a03ff6fab814c1db1fe5a81cae2cf20988d77ef30e0c0d47f9a74f01cb
diff --git a/sys-libs/tdb/tdb-1.3.8.ebuild b/sys-libs/tdb/tdb-1.3.8.ebuild
deleted file mode 100644
index 0f88e563fdde..000000000000
--- a/sys-libs/tdb/tdb-1.3.8.ebuild
+++ /dev/null
@@ -1,60 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-
-inherit waf-utils multilib-minimal python-single-r1 eutils
-
-DESCRIPTION="A simple database API"
-HOMEPAGE="https://tdb.samba.org/"
-SRC_URI="https://www.samba.org/ftp/tdb/${P}.tar.gz"
-
-LICENSE="GPL-3"
-SLOT="0"
-KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
-IUSE="python"
-
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-RDEPEND="!elibc_FreeBSD? ( dev-libs/libbsd[${MULTILIB_USEDEP}] )
- python? ( ${PYTHON_DEPS} )"
-DEPEND="
- ${RDEPEND}
- ${PYTHON_DEPS}
- app-text/docbook-xml-dtd:4.2"
-
-WAF_BINARY="${S}/buildtools/bin/waf"
-
-src_prepare() {
- python_fix_shebang .
- multilib_copy_sources
-}
-
-multilib_src_configure() {
- local extra_opts=()
- if ! multilib_is_native_abi || ! use python; then
- extra_opts+=( --disable-python )
- fi
-
- waf-utils_src_configure \
- "${extra_opts[@]}"
-}
-
-multilib_src_compile() {
- # need to avoid parallel building, this looks like the sanest way with waf-utils/multiprocessing eclasses
- unset MAKEOPTS
- waf-utils_src_compile
-}
-
-multilib_src_test() {
- # the default src_test runs 'make test' and 'make check', letting
- # the tests fail occasionally (reason: unknown)
- emake check
-}
-
-multilib_src_install() {
- waf-utils_src_install
-}
diff --git a/sys-libs/tdb/tdb-1.3.17.ebuild b/sys-libs/tdb/tdb-1.4.2.ebuild
index 8e8d3ce12a4b..8e8d3ce12a4b 100644
--- a/sys-libs/tdb/tdb-1.3.17.ebuild
+++ b/sys-libs/tdb/tdb-1.4.2.ebuild
diff --git a/sys-libs/timezone-data/Manifest b/sys-libs/timezone-data/Manifest
index 63cacb4e7916..473066b67926 100644
--- a/sys-libs/timezone-data/Manifest
+++ b/sys-libs/timezone-data/Manifest
@@ -6,5 +6,6 @@ DIST tzdata2019a.tar.gz 378961 BLAKE2B f8ab67f1fac34ab81fa9995cd70399728e6755303
DIST tzdata2019b.tar.gz 384667 BLAKE2B c045d137cbb09e1109916dfdb1265ceb560d589ded9b05aa0cfe75f5fcb19057ded4d4f12f47c895020ed02bc4138de995eadac497eb3663579b094164d7e3ad SHA512 c0104078d994e501d80a41bea31364b1390a75c2fbf42968a8343a090e2ac2eddbc58770ca470b192ea19dec89fcc634141a1de703ea2ffa0325176a64afe1fc
EBUILD timezone-data-2018i.ebuild 5143 BLAKE2B 80f02bc5a5f5dc1c9bb7d2cb715ac12c485c9d921767f77b49eddb08ce99e94134b9a0fc9eb5117622674bcac50c8ba97a3e9bb146acc368cb9c537e101fb7eb SHA512 29975f74113f5f1bac6773627d86d40b0ce1b2446f7eede184dff32d6c36f730e92d8fc8fbe97c94ce4b11e7760477c1ea340c7eb233522ccbb57f421678d12f
EBUILD timezone-data-2019a.ebuild 5153 BLAKE2B a2ea08d19dbccfd1ae9b46d0c10fc6a41c2007a6a30c6a1d4eecb04f0ca79944be7fa6419fb23ab7fdaafd3ecd78209f8dd366bd7a6d987cdbadb734ee8ef468 SHA512 3337a58a66295785d1708c0121c60785d856f13d05da120e1963fa7fd08dec0e0815b998e9693810cb600f594db55cfd27955403e6123d5c8bfb9bee6b914b0d
-EBUILD timezone-data-2019b-r1.ebuild 5173 BLAKE2B ba837151c0ca678a826f03f21a63a32c50201022199031babfa563e364960e93259c807c1c48b246d8a932e5fb99276b8c8efa72f342da503ba79ece05a407e1 SHA512 75e0bb2299d4e0d44c7280e57ee3a6750f25d6732c2f890dcb901d9a55e3fb9f24852d5c89595db64e42d8525aaa38d35a12bcdd63a2fcbaf4e2fbc04df43d1e
+EBUILD timezone-data-2019b-r1.ebuild 5163 BLAKE2B 8717237ecf1b5e347d62f0745ba634615b7ac8c89be2e8f05e837dce1662393b338c5b7a63a1141202981bc484dc9d584ab9a127ba07f22eb7f57927927403b1 SHA512 5cdac6dd35d855edda5c42d107bca78a585e0333ad86904c49e2d3461579a0b2b89ebf93166106fa969ecd2c4d8418ca2e47e56c96e44fd77ded8247b49b2a32
+EBUILD timezone-data-2019b-r2.ebuild 5169 BLAKE2B e24c5e7f08e6ca0e8677ec49c0813dfc6ec040f696e6482bd8ba17fc6d4266faaa8e9d7dc77a7408f901fed050fad4bcdab496413209c38d6b965cf21e6acd1a SHA512 657bf2245e3477d2a34fda3a93bf5ad1b86d35b6a909853a5e6348d0bfcc22a74085bf8d00fd027e4afaaf201b5a39632331556e2f354af5dc94ad4dba987b52
MISC metadata.xml 658 BLAKE2B 75ee5deafa4e9c1336119b2b2b87de6f8520a29f8fa7901c4995bddbb0cb185de9a019ff7703d0a8aa7b2f685a9ec2ca518641ea0c0a1b6123aa05faa04274a1 SHA512 94b68a5195b17cd1a7283a90a42ba9e1dfb0e7dde7c16f48202233cc2fc20ea718a1588b57b2af372e3c35ed403276cdd59456165a225f149a813abff2144c73
diff --git a/sys-libs/timezone-data/timezone-data-2019b-r1.ebuild b/sys-libs/timezone-data/timezone-data-2019b-r1.ebuild
index a52e4d3a7263..f295c2eeaafa 100644
--- a/sys-libs/timezone-data/timezone-data-2019b-r1.ebuild
+++ b/sys-libs/timezone-data/timezone-data-2019b-r1.ebuild
@@ -14,7 +14,7 @@ SRC_URI="https://www.iana.org/time-zones/repository/releases/tzdata${data_ver}.t
LICENSE="BSD public-domain"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 ~riscv s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris"
IUSE="nls leaps_timezone elibc_FreeBSD"
DEPEND="nls? ( virtual/libintl )"
diff --git a/sys-libs/timezone-data/timezone-data-2019b-r2.ebuild b/sys-libs/timezone-data/timezone-data-2019b-r2.ebuild
new file mode 100644
index 000000000000..7a1382e40e91
--- /dev/null
+++ b/sys-libs/timezone-data/timezone-data-2019b-r2.ebuild
@@ -0,0 +1,178 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+inherit toolchain-funcs flag-o-matic
+
+code_ver=${PV}
+data_ver=${PV}
+DESCRIPTION="Timezone data (/usr/share/zoneinfo) and utilities (tzselect/zic/zdump)"
+HOMEPAGE="https://www.iana.org/time-zones"
+SRC_URI="https://www.iana.org/time-zones/repository/releases/tzdata${data_ver}.tar.gz
+ https://www.iana.org/time-zones/repository/releases/tzcode${code_ver}.tar.gz"
+
+LICENSE="BSD public-domain"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris"
+IUSE="nls leaps_timezone elibc_FreeBSD"
+
+DEPEND="nls? ( virtual/libintl )"
+RDEPEND="${DEPEND}
+ !sys-libs/glibc[vanilla(+)]"
+
+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
+}
+
+src_configure() {
+ tc-export CC
+
+ append-lfs-flags #471102
+
+ if use elibc_FreeBSD || use elibc_Darwin ; then
+ append-cppflags -DSTD_INSPIRED #138251
+ fi
+
+ append-cppflags -DHAVE_GETTEXT=$(usex nls 1 0) -DTZ_DOMAIN='\"libc\"'
+ LDLIBS=""
+ if use nls ; then
+ # See if an external libintl is available. #154181 #578424
+ local c="${T}/test"
+ echo 'main(){}' > "${c}.c"
+ if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} ${LDFLAGS} "${c}.c" -o "${c}" -lintl 2>/dev/null ; then
+ LDLIBS+=" -lintl"
+ fi
+ fi
+}
+
+_emake() {
+ emake \
+ REDO=$(usex leaps_timezone posix_right posix_only) \
+ TZDATA_TEXT= \
+ TOPDIR="${EPREFIX}" \
+ ZICDIR='$(TOPDIR)/usr/bin' \
+ "$@"
+}
+
+src_compile() {
+ _emake \
+ AR="$(tc-getAR)" \
+ cc="$(tc-getCC)" \
+ RANLIB="$(tc-getRANLIB)" \
+ CFLAGS="${CFLAGS} -std=gnu99 ${CPPFLAGS}" \
+ LDFLAGS="${LDFLAGS}" \
+ LDLIBS="${LDLIBS}"
+ if tc-is-cross-compiler ; then
+ _emake -C "${S}"-native \
+ AR="$(tc-getBUILD_AR)" \
+ cc="$(tc-getBUILD_CC)" \
+ RANLIB="$(tc-getBUILD_RANLIB)" \
+ CFLAGS="${BUILD_CFLAGS} ${BUILD_CPPFLAGS}" \
+ LDFLAGS="${BUILD_LDFLAGS}" \
+ LDLIBS="${LDLIBS}" \
+ zic
+ fi
+}
+
+src_test() {
+ # VALIDATE_ENV is used for extended/web based tests. Punt on them.
+ emake check VALIDATE_ENV=true
+}
+
+src_install() {
+ local zic=""
+ tc-is-cross-compiler && zic="zic=${S}-native/zic"
+ _emake install ${zic} DESTDIR="${D}" LIBDIR="/nukeit"
+ rm -rf "${D}/nukeit" "${ED}/etc" || die
+
+ insinto /usr/share/zoneinfo
+ doins "${S}"/leap-seconds.list
+
+ # Delete man pages installed by man-pages package.
+ rm "${ED}"/usr/share/man/man5/tzfile.5* "${ED}"/usr/share/man/man8/{tzselect,zdump,zic}.8 || die
+ dodoc CONTRIBUTING README NEWS *.html
+}
+
+get_TIMEZONE() {
+ local tz src="${EROOT}/etc/timezone"
+ if [[ -e ${src} ]] ; then
+ tz=$(sed -e 's:#.*::' -e 's:[[:space:]]*::g' -e '/^$/d' "${src}")
+ else
+ tz="FOOKABLOIE"
+ fi
+ [[ -z ${tz} ]] && return 1 || echo "${tz}"
+}
+
+pkg_preinst() {
+ local tz=$(get_TIMEZONE)
+ if [[ ${tz} == right/* || ${tz} == posix/* ]] ; then
+ eerror "The right & posix subdirs are no longer installed as subdirs -- they have been"
+ eerror "relocated to match upstream paths as sibling paths. Further, posix/xxx is the"
+ eerror "same as xxx, so you should simply drop the posix/ prefix. You also should not"
+ eerror "be using right/xxx for the system timezone as it breaks programs."
+ die "Please fix your timezone setting"
+ fi
+
+ # Trim the symlink by hand to avoid portage's automatic protection checks.
+ rm -f "${EROOT}"/usr/share/zoneinfo/posix
+
+ if has_version "<=${CATEGORY}/${PN}-2015c" ; then
+ elog "Support for accessing posix/ and right/ directly has been dropped to match"
+ elog "upstream. There is no need to set TZ=posix/xxx as it is the same as TZ=xxx."
+ elog "For TZ=right/, you can use TZ=../zoneinfo-leaps/xxx instead. See this post"
+ elog "for details: https://mm.icann.org/pipermail/tz/2015-February/022024.html"
+ fi
+}
+
+configure_tz_data() {
+ # make sure the /etc/localtime file does not get stale #127899
+ local tz src="${EROOT}/etc/timezone" etc_lt="${EROOT}/etc/localtime"
+
+ # If it's a symlink, assume the user knows what they're doing and
+ # they're managing it themselves. #511474
+ if [[ -L "${etc_lt}" ]] ; then
+ einfo "Assuming your ${etc_lt} symlink is what you want; skipping update."
+ return 0
+ fi
+
+ if ! tz=$(get_TIMEZONE) ; then
+ einfo "Assuming your empty ${etc_lt} file is what you want; skipping update."
+ return 0
+ fi
+ if [[ "${tz}" == "FOOKABLOIE" ]] ; then
+ elog "You do not have TIMEZONE set in ${src}."
+
+ if [[ ! -e "${etc_lt}" ]] ; then
+ cp -f "${EROOT}"/usr/share/zoneinfo/Factory "${etc_lt}"
+ elog "Setting ${etc_lt} to Factory."
+ else
+ elog "Skipping auto-update of ${etc_lt}."
+ fi
+ return 0
+ fi
+
+ if [[ ! -e "${EROOT}/usr/share/zoneinfo/${tz}" ]] ; then
+ elog "You have an invalid TIMEZONE setting in ${src}"
+ elog "Your ${etc_lt} has been reset to Factory; enjoy!"
+ tz="Factory"
+ fi
+ einfo "Updating ${etc_lt} with ${EROOT}/usr/share/zoneinfo/${tz}"
+ cp -f "${EROOT}/usr/share/zoneinfo/${tz}" "${etc_lt}"
+}
+
+pkg_config() {
+ configure_tz_data
+}
+
+pkg_postinst() {
+ configure_tz_data
+}