diff options
Diffstat (limited to 'sys-libs')
25 files changed, 1936 insertions, 17 deletions
diff --git a/sys-libs/Manifest.gz b/sys-libs/Manifest.gz Binary files differindex 2dac1f7aeff6..b5f9eb695eed 100644 --- a/sys-libs/Manifest.gz +++ b/sys-libs/Manifest.gz diff --git a/sys-libs/blocksruntime/Manifest b/sys-libs/blocksruntime/Manifest new file mode 100644 index 000000000000..e1d36758f7b9 --- /dev/null +++ b/sys-libs/blocksruntime/Manifest @@ -0,0 +1,4 @@ +AUX blocksruntime-0_pre20171027-ldflags-soname.patch 933 BLAKE2B 335a135b321bc57cfd63afa0c40ae91316dc5f446c4c412270ab78f3a2b9ee435900ebcdd8bb57dbd60d6a3d0bc412825a7f344141f3ef8ef6a042f29af34cc8 SHA512 7887727d2005dc70dee37b3dadbe49deeb9de7013e2d49f80248f71211a45f70e9a986991eb9bfc93668d635698f40504072fefdfca88511f8fc39121ba6f8f6 +DIST blocksruntime-0_pre20171027.tar.gz 40571 BLAKE2B 5cb5cee10d482a3028b6ed496f7ed4fba25504c5e188dd21be37f0a65b72750e0ce31f7243e9cd848d10323e43e7d058fd2f7eb5ffed9a64e543d418ac96cfac SHA512 4008730f7ee4173f22c40220c4b87cd3f5cfadd12d5ddbaec244e3c4164111f036d0b859cf4bb5f2425313148f5c6445de30af2d4ccc83e1b97a66895ccc6dc5 +EBUILD blocksruntime-0_pre20171027.ebuild 905 BLAKE2B 60f6b3e05c433843c60238a64049cd6b1be61ff1bf5619e6e41989a43a51735f7e1c845edf9005e3becbb8cbe4e6c50ee2509bed81400b84161a5c8600f96010 SHA512 667e95c61e777c99057eedb2ebc197b6a584f2c0bcbd417065f66cccc86834564aa78226b7183a00c9beed5e665bca8530cba745d56cc0f2ec077fbc07c4a864 +MISC metadata.xml 337 BLAKE2B e2e4dc3f4bf390d4cd54194e85e6e2104e962d0ddd7b7381ddb7e1974c778bfe7d86162087b267faff5c306a6583b9ac092a79305e750ab6b1dbab758c6e780e SHA512 3dcbdca3013c551d20488c1b2d53525c5bc4e234403a2051c0dd8e7ad9db15f9cc946778764e1bf4aa19816a66a3922ed879614c01e46265195535fa91ebc481 diff --git a/sys-libs/blocksruntime/blocksruntime-0_pre20171027.ebuild b/sys-libs/blocksruntime/blocksruntime-0_pre20171027.ebuild new file mode 100644 index 000000000000..a855b832dba2 --- /dev/null +++ b/sys-libs/blocksruntime/blocksruntime-0_pre20171027.ebuild @@ -0,0 +1,41 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit toolchain-funcs vcs-snapshot + +COMMIT=9cc93ae2b58676c23fd02cf0c686fa15b7a3ff81 # 27 Oct 2017 + +DESCRIPTION="BlocksRuntime library needed for clang's -fblocks support" +HOMEPAGE="https://github.com/mackyle/blocksruntime" +SRC_URI="https://github.com/mackyle/blocksruntime/archive/${COMMIT}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="static-libs" + +RDEPEND="" +DEPEND="${RDEPEND}" + +PATCHES=( + "${FILESDIR}"/${PN}-0_pre20171027-ldflags-soname.patch +) + +src_prepare() { + default + + tc-export CC AR RANLIB +} + +src_compile() { + ./buildlib -shared || die +} + +src_install() { + prefix="${EPREFIX}/usr" \ + libdir="${EPREFIX}/usr/$(get_libdir)" \ + DESTDIR="${D}" \ + ./installlib $(use static-libs || echo -shared) || die +} diff --git a/sys-libs/blocksruntime/files/blocksruntime-0_pre20171027-ldflags-soname.patch b/sys-libs/blocksruntime/files/blocksruntime-0_pre20171027-ldflags-soname.patch new file mode 100644 index 000000000000..66e9f1993bd8 --- /dev/null +++ b/sys-libs/blocksruntime/files/blocksruntime-0_pre20171027-ldflags-soname.patch @@ -0,0 +1,34 @@ +--- a/buildlib ++++ b/buildlib +@@ -28,11 +28,13 @@ if [ -n "$shared" ]; then + SHLIB="${LIB%.a}.dylib" + SHOPT="-dynamiclib -Wl,-all_load" + SHOPT2= ++ SONAME= + ;; + *) + SHLIB="${LIB%.a}.so" + SHOPT="-shared -Wl,-whole-archive" + SHOPT2="-Wl,-no-whole-archive" ++ SONAME="-Wl,-soname=${SHLIB}.0" + ;; + esac + fi +@@ -108,5 +110,5 @@ echo "SRC=$SRC" + [ -z "$shared" ] || + ( + PS4= && set -ex +- "$CC" $FPIC $CFLAGS -o "$SHLIB" $SHOPT $LIB $SHOPT2 ++ "$CC" $FPIC $CFLAGS $LDFLAGS -o "$SHLIB" $SHOPT $LIB $SHOPT2 ${SONAME} + ) || exit +--- a/installlib ++++ b/installlib +@@ -91,5 +91,7 @@ docmd "install -d "$DESTDIR"$includedir "$DESTDIR"$libdir" + docmd "install -m 644 $HEADER "$DESTDIR"$includedir/" + [ -z "$LIB" ] || + docmd "install -m 644 $LIB "$DESTDIR"$libdir/" +-[ -z "$SHLIB" ] || ++[ -z "$SHLIB" ] || { + docmd "install -m $SHLIBMODE $SHLIB "$DESTDIR"$libdir/" ++docmd "ln -s $SHLIB "$DESTDIR"$libdir/${SHLIB}.0" ++} diff --git a/sys-libs/blocksruntime/metadata.xml b/sys-libs/blocksruntime/metadata.xml new file mode 100644 index 000000000000..4ce153662dd9 --- /dev/null +++ b/sys-libs/blocksruntime/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>slyfox@gentoo.org</email> + <name>Sergei Trofimovich</name> + </maintainer> + <upstream> + <remote-id type="github">mackyle/blocksruntime</remote-id> + </upstream> +</pkgmetadata> diff --git a/sys-libs/db/Manifest b/sys-libs/db/Manifest index cbac24e965fc..5101fd202b6c 100644 --- a/sys-libs/db/Manifest +++ b/sys-libs/db/Manifest @@ -1,6 +1,7 @@ AUX db-1.85-gentoo-paths.patch 688 BLAKE2B bce69d9f256dcc108e80b5fe52ea2395dd34662605cf6595e0cbfe87642385b719e16177202fb8876d63ac23559acfc579ef291a5ddfa465f2cfd74b36d531e3 SHA512 7431dc5f24c7575753f9453eb99425e4c958c98d48a95f1de153580fed62f7dcb04715719b663d69ff6fd445f06f991e27a4af391b4b16ea53bea78d5980baa9 AUX db-18.1.25-sqlite-configure-path.patch 800 BLAKE2B d7fc137c1abe918ea94081a88c974d4001752a682752a7907f50a8efac000b57ed50362c8001423667c3c2e535ac19c82ccef33996111900c489d639ad2d870d SHA512 704e07b65df058a8d09fa7f8789b1ba81ffeac90767b8084ad828158aff7e59a54f21f8834f912c5af26de58e6cecc3eb95da1c9ca051dbaaa0e1d65419df594 AUX db-18.1.25-test-link.patch 1443 BLAKE2B 819038f07f0329575eecdb5891b16114507d9a530b434eabf748367baf86be979198dd7aeb904af14d9b3643e013e2ec34257bc254724351dc62dab30029b5b8 SHA512 e3cba1c842dffbbf1bbf353111ce41cf46078d03d9b42052ad72081e9b9434eeb3eedad42d532dba9f2c90b36a620f2a2f9a65fb98477e5b1fa6dfc04ba1ec0e +AUX db-18.1.40-fix-docs.patch 613 BLAKE2B 5b3c5f8b35624eac5c14caedac9ffadecae26122a0024b2c42c75d9c10e8ac414b2195a29cece5a680ef30355d20c5bf5405dd7bb03647fbf2d603c5abc66417 SHA512 ddd0daa3de0efa363764abf1dade45914f6bdf44d883c2b0b3ea1c96c2cff0889b5078beea274113169c9b056135a09905e5083d6be3e3139e74f86ef61deb1f AUX db-3.2.9-fix-dep-link.patch 1005 BLAKE2B c04ae14ca17e77807d44949176e47aa4e5d98f1407e74c9272ad2b9dc0eaf062a2eeba8d9a9130285cdcbb6418f4dd4d8dd22c89c914578ef9fbef8caa414940 SHA512 42f8a6e495266209d7c9bf35bfba801abddffb10488b7b156a790bacdf8fe2d3d3113d8d0a1afddeca238736f64cf8a881141d181fd4a211e4b04da9ed010587 AUX db-3.2.9-gcc43.patch 459 BLAKE2B 0f23b5e5b119cb61b4630d7c789e00b98fca6be576743292de8cb5dbd4a2e92406fbe251596721044a30763fb56e682799743aae2f6ad4e6859ac3b1a3ad9b14 SHA512 899ccf4d350a0f246cf701502dcf9bd06c8375dea0a89d0438c0ff0312cb0505c904a812645d3d1f1fbfe9b59b69ebedcf4da693ea2f68b7b0eabca3dab114b7 AUX db-4.0.14-fix-dep-link.patch 1119 BLAKE2B 1532fa79d47c6b406f88302abcf007713cf4301a098eb17d159975cd6a0d2c80fe24c83611433b029560980c96b6cc5f66b662445114811cde27399f0e934b25 SHA512 5c7895d8c284c5b9c2305319e20afb8b98a43974bb2ff16012ab322abf131e0d050632fd7c67a0dad47df719da2c53316c6a36f5b6686196cd1b27ced3dae7c4 @@ -24,6 +25,7 @@ AUX db-6.2-jni-check-prefix-first.patch 1302 BLAKE2B 4703beff3c14e0218d4b8b3b911 AUX db-6.2.32-jni-check-prefix-first.patch 1575 BLAKE2B 5230393b8f40e6ef329590b0037a975dbc60f23f3ce8a603e3c21cec5b0bb311a225c1d8558cc3c6bfdb658e88c83f441c45aaf556051aee8ba83f9262616ba0 SHA512 eb0739c46f88ad9538e4a467e8547f97404747633942ec6b05eabcfb7ba427ff66c00aa5dc95cb9518056b861c240898db4745dd3626ed95e7cb01c54b47dccd DIST db-1.85-r3.1.patch.bz2 14641 BLAKE2B 5ca59487a433a5e5b5fed7a8737c20df041be56733fe9209047f9e53845fa034576c29ad74407509ab96473e4eef0138a3a47de6c348d27209f0e39df85b9f5f SHA512 32b1810515476758ece7415f241378460a4051bf5ee23fb464748f84a90a56ff2c5119ed93028114d64f1b1691b1c694c2301ff825edd89cdee90a870a68b6f4 DIST db-18.1.32.tar.gz 44244747 BLAKE2B b539d8966a269f6a9440ef442248849f12c6b1eda79b9a41074e1eb0eb4930fd4674dd0e20a114e4020fe2ce19832572c4c86d458835da39a99f639dc3c4e23e SHA512 890b3047c28114ac30794c0234126b0b2a3e699f3ed259831091f02d51885e3583dd10c0ef0cecc215b9b8d80b48a2d3a82a5793cd3816afb45f6cc19ae23f25 +DIST db-18.1.40.tar.gz 30763705 BLAKE2B c7235cbdf82d8e38450c98baa1ff67132f6132d59a43dd2d6ed8bc2672b7924b4cbd93320278a0a3a78e454caff622b4480abe8dcc20c94ae56a78b3569a76fd SHA512 53787164fb8a198a0178c7f58d891c2b0943d1c52b11fe9de525938469327e85664f0bc63e33d740c171bc370954710a6b3e8b9be2a08237fb9757a795c5b19e DIST db-3.2.9.tar.gz 2085238 BLAKE2B 10cb1c102bf5db52ec16181ccbb02a8c4560f42afd2382689ee4903fcd63bf3ab4802482a065a85b1d34c8fb9f620fceb985155b1390de7ca404c121b6b4b6bc SHA512 5f07b27ae0cbd2832e5db9473cd4f2d4aebeee25ed8245ebd2c297a576571635ca5cf75e63e0967b1e90978128a5b6f5d8112559c56927d5bc5eb0d9fd3a2e95 DIST db-4.2.52.tar.gz 4073147 BLAKE2B 0bb9649a08df9b425f28471eb65c0efac0b7833b4c5c841b9ef53a142669b549e1f1b78cf42eeceea05ebb271aacd513d115070ea028f77fb1830bb9fcc7c8a9 SHA512 47a4e1353fe4f5c2160952a8f7a09b73fdf2dfcd222a8214e12630cec3139a624907bba83a06f10f8492b4dce328a979e9155ee049b9a88798edaca62cfe60d1 DIST db-4.3.29.tar.gz 6103264 BLAKE2B eda13cd5c8b9421044f6c8b6b41ec318ff33e19da15f8d5e3075612186e60cfce30069078f712841058224ed58caf69d43960156ac645651670665390eae28e1 SHA512 93d36c040b25739b92c52504e117a9c7f4b671463d61d00029e70d0bc8171311f5d04211f7d966b8a9ef8c2a85a5ebe8cc55e4469c3c7c0e468caa4221f691fc @@ -63,6 +65,7 @@ DIST patch.4.7.25.3 8442 BLAKE2B 666b643b3bf0d1e5ef5e445ae03228f436a5528bc197338 DIST patch.4.7.25.4 5647 BLAKE2B 60ecb24fb137f7aeacb9689d8edc41791f78f96d1aa15c7fa47032371533d668c5dc12a5e1641945402f0e21f4e596cebb5010ac170ef462279b2efb887be020 SHA512 df9810034773a9d0556cbd174e4f131f0461402bf3f476ae5da1deb92f3e2e9ef789687c5cc5c2df6385f6b14251e893be225ffacd895d71dfb305b9de32567e EBUILD db-1.85-r4.ebuild 1306 BLAKE2B ecd0cc2b53b8ef0a1cf0a0b3934d41d0f45e190dd62cdbac291d53e7512ed6abcbdcd06d94ba49abe1c722d5f912985ac68d31932fd12dd56180301de5f5a8ff SHA512 e8ecdcd559c6a9abc78d47f9efc011475105715be1d875ba2733b22d836dcc6228fb59999ef2a6d7dc8c26e4895f020e000200778070de7821ae2fab621fa510 EBUILD db-18.1.32.ebuild 6940 BLAKE2B 869d66cd41771a5fb8ca879079c3c166645b6047d75429c0f12e55e975fc784d7acdbf69cbbc6e46940583cd840896d39368840d3d466f5e54cf3ef2f11c3c04 SHA512 d741d0203a37cc47cbff6adbc2d2072130823f54be2d50096191307b4b88ff62d660884ea2b5d701a3ee86ec9a2d17490a6635628298751d3d1aa5917ca9e434 +EBUILD db-18.1.40.ebuild 6771 BLAKE2B b9bd4262dc684c638db48d8739a374c28879eeb4a26ebbf5ab5954264008643fba6abaa91c5cb2484c2220aee0dcfcc410f22b8d117a6762795ee7741cb60d8f SHA512 b2721666e9deba98d0309f7db173fe112cc7d27465904da62bad0519617c596ffe267eba7a5304c83ac6c6c1b88102c87a69c6b0df4de145fc8104becba649c1 EBUILD db-3.2.9_p2-r1.ebuild 4898 BLAKE2B ed7d56c9bfa4593755cfd5f769a099f6fdb4e2a091f938501be28fcc0a2e96c1642be763a4bffe0ea992b4063cf3b64f3f92999b88755fe4f43344a113803b71 SHA512 acadbbd870165059a9cf640126679974eb7034d53b878ca71a5117d3792f8224a7806a02c31a5b34619b60f6a733344d9ffebf0a19f3e65d3afd3fb98546e045 EBUILD db-4.2.52_p5-r3.ebuild 4628 BLAKE2B c0091684c0b7b0fff8a3bcb5079e1407a8b8df8d948f2bdac41ed805cf12ca748ea51ca693be9bb33807056f95c05bd2ff6f2cd0b6a6d9dc799d61802a943ee9 SHA512 d124c6d5a71fd813e368550ff096fa1ed4d20cac6cffd40942d682f77c54a5e56ecfdfa5843ca1faed65c4e54513e083ebc730f46e159427260073f16d889a8e EBUILD db-4.3.29_p1-r3.ebuild 4538 BLAKE2B 96c516cff7265d233970675813e8baad5f348fca381ebc600cb7c6566bcc1bd4782098117e18ec24322b0d106c5edbd49e32367035a6174376b3e56bbffb8007 SHA512 508347615aa4de923ade8124e9697102b5fc40ed2dbde727dbc7ebd82fbfc4ae5600f92ee437d5b66da00ccbdafeec01a912f6755f708c65b2b8693b156c8169 diff --git a/sys-libs/db/db-18.1.40.ebuild b/sys-libs/db/db-18.1.40.ebuild new file mode 100644 index 000000000000..c4022d840e79 --- /dev/null +++ b/sys-libs/db/db-18.1.40.ebuild @@ -0,0 +1,244 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +inherit db flag-o-matic java-pkg-opt-2 autotools multilib multilib-minimal eapi7-ver toolchain-funcs + +#Number of official patches +#PATCHNO=`echo ${PV}|sed -e "s,\(.*_p\)\([0-9]*\),\2,"` +PATCHNO=${PV/*.*.*_p} +if [[ ${PATCHNO} == "${PV}" ]] ; then + MY_PV=${PV} + MY_P=${P} + PATCHNO=0 +else + MY_PV=${PV/_p${PATCHNO}} + MY_P=${PN}-${MY_PV} +fi + +RESTRICT="fetch + !test? ( test )" + +S_BASE="${WORKDIR}/${MY_P}" +S="${S_BASE}/dist" +DESCRIPTION="Oracle Berkeley DB" +HOMEPAGE="http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html" +SRC_URI="https://download.oracle.com/otn/berkeley-db/${MY_P}.tar.gz" +for (( i=1 ; i<=${PATCHNO} ; i++ )) ; do + SRC_URI+=" http://www.oracle.com/technology/products/berkeley-db/db/update/${MY_PV}/patch.${MY_PV}.${i}" +done + +LICENSE="AGPL-3" +SLOT="$(ver_cut 1-2)" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sparc ~x86" +IUSE="doc java cxx tcl test" + +REQUIRED_USE="test? ( tcl )" + +# the entire testsuite needs the TCL functionality +DEPEND="tcl? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] ) + test? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] ) + java? ( >=virtual/jdk-1.5 ) + >=sys-devel/binutils-2.16.1" +RDEPEND="tcl? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] ) + java? ( >=virtual/jre-1.5 )" + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/db$(ver_cut 1-2)/db.h +) + +PATCHES=( + # bug #510506 + "${FILESDIR}"/${PN}-4.8.24-java-manifest-location.patch + + # use the includes from the prefix + "${FILESDIR}"/${PN}-6.2.32-jni-check-prefix-first.patch + "${FILESDIR}"/${PN}-4.2-listen-to-java-options.patch + + # The upstream testsuite copies .lib and the binaries for each parallel test + # core, ~300MB each. This patch uses links instead, saves a lot of space. + "${FILESDIR}"/${PN}-18.1.25-test-link.patch + + "${FILESDIR}"/${PN}-18.1.40-fix-docs.patch +) + +src_prepare() { + cd "${WORKDIR}"/"${MY_P}" + for (( i=1 ; i<=${PATCHNO} ; i++ )) + do + eapply "${DISTDIR}"/patch."${MY_PV}"."${i}" + done + + default + + # Upstream release script grabs the dates when the script was run, so lets + # end-run them to keep the date the same. + export REAL_DB_RELEASE_DATE="$(awk \ + '/^DB_VERSION_STRING=/{ gsub(".*\\(|\\).*","",$0); print $0; }' \ + "${S_BASE}"/dist/configure)" + sed -r -i \ + -e "/^DB_RELEASE_DATE=/s~=.*~='${REAL_DB_RELEASE_DATE}'~g" \ + "${S_BASE}"/dist/RELEASE || die + + # Include the SLOT for Java JAR files + # This supersedes the unused jarlocation patches. + sed -r -i \ + -e '/jarfile=.*\.jar$/s,(.jar$),-$(LIBVERSION)\1,g' \ + "${S_BASE}"/dist/Makefile.in || die + + cd "${S_BASE}"/dist || die + rm -f aclocal/libtool.m4 + sed -i \ + -e '/AC_PROG_LIBTOOL$/aLT_OUTPUT' \ + configure.ac || die + sed -i \ + -e '/^AC_PATH_TOOL/s/ sh, none/ bash, none/' \ + aclocal/programs.m4 || die + AT_M4DIR="aclocal aclocal_java" eautoreconf + # Upstream sucks - they do autoconf and THEN replace the version variables. + . ./RELEASE + for v in \ + DB_VERSION_{FAMILY,LETTER,RELEASE,MAJOR,MINOR} \ + DB_VERSION_{PATCH,FULL,UNIQUE_NAME,STRING,FULL_STRING} \ + DB_VERSION \ + DB_RELEASE_DATE ; do + local ev="__EDIT_${v}__" + sed -i -e "s/${ev}/${!v}/g" configure || die + done + + # This is a false positive skip in the tests as the test-reviewer code + # looks for 'Skipping\s' + sed -i \ + -e '/db_repsite/s,Skipping:,Skipping,g' \ + "${S_BASE}"/test/tcl/reputils.tcl || die +} + +multilib_src_configure() { + # sql_compat will cause a collision with sqlite3 + # --enable-sql_compat + # Don't --enable-sql* because we don't want to use bundled sqlite. + # See Gentoo bug #605688 + local myeconfargs=( + --enable-compat185 + --enable-dbm + --enable-o_direct + # Requires openssl-1.0 + --with-repmgr-ssl=no + --without-uniquename + --disable-sql + --disable-sql_codegen + --disable-sql_compat + $([[ ${ABI} == arm ]] && echo --with-mutex=ARM/gcc-assembly) + $([[ ${ABI} == amd64 ]] && echo --with-mutex=x86/gcc-assembly) + $(use_enable cxx) + $(use_enable cxx stl) + $(multilib_native_use_enable java) + $(use_enable test) + ) + + tc-ld-disable-gold #470634 + + # compilation with -O0 fails on amd64, see bug #171231 + if [[ ${ABI} == amd64 ]]; then + local CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS} + replace-flags -O0 -O2 + is-flagq -O[s123] || append-flags -O2 + fi + + # Add linker versions to the symbols. Easier to do, and safer than header file + # mumbo jumbo. + if use userland_GNU ; then + append-ldflags -Wl,--default-symver + fi + + # use `set` here since the java opts will contain whitespace + if multilib_is_native_abi && use java ; then + myconf+=( + --with-java-prefix="${JAVA_HOME}" + --with-javac-flags="$(java-pkg_javac-args)" + ) + fi + + # Bug #270851: test needs TCL support + if use tcl || use test ; then + myeconfargs+=( + --enable-tcl + --with-tcl="${EPREFIX}/usr/$(get_libdir)" + ) + else + myeconfargs+=(--disable-tcl ) + fi + + ECONF_SOURCE="${S_BASE}"/dist \ + STRIP="true" \ + econf "${myeconfargs[@]}" +} + +multilib_src_install() { + emake install DESTDIR="${D}" + + db_src_install_headerslot + + db_src_install_usrlibcleanup + + if multilib_is_native_abi && use java; then + java-pkg_regso "${ED%/}"/usr/"$(get_libdir)"/libdb_java*.so + java-pkg_dojar "${ED%/}"/usr/"$(get_libdir)"/*.jar + rm -f "${ED%/}"/usr/"$(get_libdir)"/*.jar + fi +} + +multilib_src_install_all() { + db_src_install_usrbinslot + + db_src_install_doc + + dodir /usr/sbin + # This file is not always built, and no longer exists as of db-4.8 + if [[ -f "${ED%/}"/usr/bin/berkeley_db_svc ]] ; then + mv "${ED%/}"/usr/bin/berkeley_db_svc \ + "${ED%/}"/usr/sbin/berkeley_db"${SLOT/./}"_svc || die + fi +} + +pkg_postinst() { + multilib_foreach_abi db_fix_so +} + +pkg_postrm() { + multilib_foreach_abi db_fix_so +} + +src_test() { + # db_repsite is impossible to build, as upstream strips those sources. + # db_repsite is used directly in the setup_site_prog, + # setup_site_prog is called from open_site_prog + # which is called only from tests in the multi_repmgr group. + #sed -ri \ + # -e '/set subs/s,multi_repmgr,,g' \ + # "${S_BASE}/test/testparams.tcl" + sed -ri \ + -e '/multi_repmgr/d' \ + "${S_BASE}/test/tcl/test.tcl" || die + + # This is the only failure in 5.2.28 so far, and looks like a false positive. + # Repmgr018 (btree): Test of repmgr stats. + # Repmgr018.a: Start a master. + # Repmgr018.b: Start a client. + # Repmgr018.c: Run some transactions at master. + # Rep_test: btree 20 key/data pairs starting at 0 + # Rep_test.a: put/get loop + # FAIL:07:05:59 (00:00:00) perm_no_failed_stat: expected 0, got 1 + sed -ri \ + -e '/set parms.*repmgr018/d' \ + -e 's/repmgr018//g' \ + "${S_BASE}/test/tcl/test.tcl" || die + + multilib-minimal_src_test +} + +multilib_src_test() { + multilib_is_native_abi || return + + S=${BUILD_DIR} db_src_test +} diff --git a/sys-libs/db/files/db-18.1.40-fix-docs.patch b/sys-libs/db/files/db-18.1.40-fix-docs.patch new file mode 100644 index 000000000000..7bed9f1cbca0 --- /dev/null +++ b/sys-libs/db/files/db-18.1.40-fix-docs.patch @@ -0,0 +1,19 @@ +Fixes + + cp: cannot stat 'bdb-sql': No such file or directory + cp: cannot stat 'gsg_db_server': No such file or directory + +--- a/dist/Makefile.in ++++ b/dist/Makefile.in +@@ -1299,8 +1299,8 @@ uninstall_utilities: + + # We install csharp docs even on UNIX so we don't have a + # broken link on the landing page. +-DOCLIST=api_reference articles bdb-sql collections csharp gsg \ +- gsg_db_rep gsg_db_server gsg_txn index.html installation \ ++DOCLIST=api_reference articles collections csharp gsg \ ++ gsg_db_rep gsg_txn index.html installation \ + java license porting programmer_reference upgrading + + install_docs: + diff --git a/sys-libs/glibc/Manifest b/sys-libs/glibc/Manifest index 197258dc101b..619e96e0b453 100644 --- a/sys-libs/glibc/Manifest +++ b/sys-libs/glibc/Manifest @@ -6,6 +6,7 @@ AUX host.conf-1 936 BLAKE2B 1576b57e079c8596ae86d518da364b4d50f0dafb6879c2a7eb1f AUX nscd-1 1897 BLAKE2B aefa781de3181c5609ac2659632f0a5bdfa6bbc8e22b73fdf5c28ca36184b5614bb2febd581d0c41a1f3dd72c45a191866cbc827f5e7009722b6d839518a27d6 SHA512 b2edbdc33fb4290378d9520bfcefcbb5183e8b8f0e80cf3573fb4ce6cf309e21f59178f31eec4ada90b4b37e502038e71b31f93b2ba2c7fa36a7eef1b1d9bf70 AUX nscd.service 337 BLAKE2B 6b163465dd8db024652921892dc913da8dfc0984eec7ffce621229e48fa99dcedc3b5944844529190122c81f4884b6a6fe7836d37d2d812f34059c530856dec1 SHA512 2001100f3b054843c69b6fd2d38852c7c824282aa8998c25a3c0352db993705429d25c70d8ce6cb3579f836b7089644c520acac423ebd69cb1b36e94a77c5bea AUX nscd.tmpfilesd 111 BLAKE2B 4abb7220564e248fc7eeeced41077f186f42594facbfac9a4c0ff36209baac529c219ad6ead8d8aa53ab2b092002f1006a4479459b9e9a7c5a0294cb7d822100 SHA512 53b80b331e1a85d8ee16eb2ce547a7249e944926c3d1cdd4a47a5301a5c842ffc7ec1e3dc0a731542a8facf8261c1c57121802d01741aa89898a3476c09da340 +DIST backport-rv32.txz 26416 BLAKE2B 7a6b593859f88a3c040f06324dace4cc6137d14d4580fad9ea285829666d761c3dd01c190746e86846c219423124c77a55bc57b6e56efe6401a9c99d7fa445cd SHA512 d08dc02c4f0a3c5a15c57fbb5190588121c0e0728e6ab2119483407a98625efe58b3c83b44d750b0146171e63dcf8a6dbb6d1a057d042f794eed9adbd1f0293e DIST gcc-4.7.3-r1-multilib-bootstrap.tar.bz2 8064097 BLAKE2B 3cc5c82cd57d0fbd26d9a376ee8ca02f119fe9d653311cbe4d2b7b93aec2290adac3be271be19a7fdedae2e11e4b6e32360184e557204e100ad64357f5575d4b SHA512 40b93e194ad41a75d649d84d1c49070680f253a13f0617803243bc61c44fed1ca2d0a7572a97ebb79353f312b58b5f6360be916dd7435928cc53935082e15269 DIST gcc-multilib-bootstrap-20180511.tar.xz 2392908 BLAKE2B f3cf614399368acd8908f60d894c6344a2fa09383b30c1633a0682bc668367c8a2f8c6fec2d41b6e2178d709a2bd8db57e8b2ab56ba263c7d56f819c15acd061 SHA512 98c766e913693ab42ff790557acde2a36a8001e2648046a685b21964200df8d4d52d8452d499c0068c6648284d086ce062c2d36e2c6c2fd8aacd232d193f2853 DIST glibc-2.19-patches-9.tar.bz2 24584 BLAKE2B a96e930a5bd20fa75d9f259cc2117fa5ce98072274a24a5823bf877e3739fa4c001a94d7865e065ee0527f3974430d27da8038e042340a451ad2052c62724f26 SHA512 a95b3063ade974a3556480b798b317d33c7423a8cb9e69f67249ffb8b3d3c671d70d2d5f782c1efadc0bec4cc49a96d4fe89911f3dfcd85b459f69f3b4f38f0e @@ -26,6 +27,7 @@ EBUILD glibc-2.25-r11.ebuild 6063 BLAKE2B a995a2553fad56abe09f0f890e2c70f9456867 EBUILD glibc-2.30-r8.ebuild 43113 BLAKE2B e567ea4544419609ce3f02ac06ce8ee2175d11502e947187334ec02cca11dacbb5453d514fe8b1c77418259e8f0bbd4306cdfa6aa573426e95ba56f910a9534c SHA512 b85c7656eb09b9702d352b2e20c334d70b764ddedacc6a218b3a921c990314ec80a4ff14e234a3bebf810f3482c45b323e9edc3c2044266341125b7095186126 EBUILD glibc-2.30-r9.ebuild 43269 BLAKE2B cfc1ca115def60424b14d76270e0b57dec754992bec50d52110e437c62a68bea860062e65705ba64ddd3e8156e61b6542227678a3613c782f441411d606b286b SHA512 37fe44bf17fe1d3b8f001dfea6326a64c21843a07bb2dc0229856c53eca8d2a6ec13687c3fd038a47045db817f8242deb7d30219b8f08b4b051cd86ccdbe1310 EBUILD glibc-2.31-r6.ebuild 44378 BLAKE2B 0e123cb1baaecf80c587133becb26ffa8cf01da7f407f3741fb6f2557262fb404381130c3bf280f515b176bee39a8a52d98fc935ad0a23861a78caca2fada551 SHA512 1a1728a26509339e261aed4aaebc4870cf1d9154cd736726b66856b5065c824625f65b60d8e3030287283dad509f624e6fe3e13dc3dd4b0abb45b2f670bc3dc9 +EBUILD glibc-2.32-r1.ebuild 44748 BLAKE2B 69bd3219aae26964c743cdccb46b04a9a2fad734e32bd853c41d3f7a8b7de48c3aa9c54af48ca1fe583487b84b008afddba791707e07ea95d844d106c507847d SHA512 a3859eb73e952991659e33abfd24859dbd2484181f69d83e3c42be068470529b3f95c3f9e3e12c6a81421cc4b0663ca2d871f4fddec7d160c95fe56e8740b236 EBUILD glibc-2.32.ebuild 44384 BLAKE2B 114aaddf3c1e3b2f9cf905e77d6b23ebccc4c72ba0e1eb0441cd80ddab36c6fa1e8888b10cf1ee75952be0b298edb019428e7e5c5ebc56e032c32321e9646ef7 SHA512 223b77b5b1b818490fed1250e66b7f25f230560bc2cf090e565d563a5c3018de0c31613b0c10e3449a692d3cee2b2a67764238c4408bfb84d886b9f9b5e00f1f -EBUILD glibc-9999.ebuild 44099 BLAKE2B 0a69313853d99e0c7fda2ed4a6c555f575054523638ccb246be80e87b5d48d34b10e0e78040c5ceb77747651acc45dfb41e4aad2f73bc23fdb7fab4f863b4f29 SHA512 81aae4bd77a3271d70251aa1660b0e89a4d7392769aeb98e6afa1175f2f3a81e35f90236534115bcbabe9ede3ee49edbdd768ee605c026b5700dd974ad179b1e +EBUILD glibc-9999.ebuild 44186 BLAKE2B 1ece1a20a2ec0c8a710f36fedd65dca77bdd30398b04ef4f0730df610d0fc68f0b5a032b823179511af3f379d2a44a9e826fc2adfda4139b1e80c3ba9c08331b SHA512 5fc334310399c48fc464c8bbec513ae2bf23c3d221d84133cc1aa2bc9b080f0bcea7de5e2f3b151f51cc1ef84606e49cda8f46a627f7b5ce581105b299cb0411 MISC metadata.xml 1491 BLAKE2B 4688b54e937163824a5895f4fbbcc9f09152378c68416f62294f7f1506379ecb82de43e8d2c6a64d1647c16700abe7c750b3cc658a9c7053891b3a9504f2ae93 SHA512 f6c002a52bb81471fbb631c7c430e1e91f6fdefc84a0c1f330606ac6347067b60f8a6d078169d49d2b30fa6991883466fff05caf4f93f53c00e5ced625dd8c88 diff --git a/sys-libs/glibc/glibc-2.32-r1.ebuild b/sys-libs/glibc/glibc-2.32-r1.ebuild new file mode 100644 index 000000000000..b51024529ad6 --- /dev/null +++ b/sys-libs/glibc/glibc-2.32-r1.ebuild @@ -0,0 +1,1505 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{6,7,8} ) + +inherit python-any-r1 prefix eutils toolchain-funcs flag-o-matic gnuconfig \ + multilib systemd multiprocessing + +DESCRIPTION="GNU libc C library" +HOMEPAGE="https://www.gnu.org/software/libc/" +LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE" +SLOT="2.2" + +EMULTILIB_PKG="true" + +# Gentoo patchset (ignored for live ebuilds) +PATCH_VER=1 +PATCH_DEV=dilfridge + +if [[ ${PV} == 9999* ]]; then + inherit git-r3 +else + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + SRC_URI="mirror://gnu/glibc/${P}.tar.xz" + SRC_URI+=" https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz" + SRC_URI+=" riscv? ( https://dev.gentoo.org/~dilfridge/distfiles/backport-rv32.txz )" +fi + +RELEASE_VER=${PV} + +GCC_BOOTSTRAP_VER=20180511 + +LOCALE_GEN_VER=2.10 + +SRC_URI+=" https://gitweb.gentoo.org/proj/locale-gen.git/snapshot/locale-gen-${LOCALE_GEN_VER}.tar.gz" +SRC_URI+=" multilib? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )" + +IUSE="audit caps cet compile-locales +crypt custom-cflags doc gd headers-only +multiarch multilib nscd profile selinux +ssp +static-libs static-pie 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 + +# Note [Disable automatic stripping] +# Disabling automatic stripping for a few reasons: +# - portage's attempt to strip breaks non-native binaries at least on +# arm: bug #697428 +# - portage's attempt to strip libpthread.so.0 breaks gdb thread +# enumeration: bug #697910. This is quite subtle: +# * gdb uses glibc's libthread_db-1.0.so to enumerate threads. +# * libthread_db-1.0.so needs access to libpthread.so.0 local symbols +# via 'ps_pglobal_lookup' symbol defined in gdb. +# * 'ps_pglobal_lookup' uses '.symtab' section table to resolve all +# known symbols in 'libpthread.so.0'. Specifically 'nptl_version' +# (unexported) is used to sanity check compatibility before enabling +# debugging. +# Also see https://sourceware.org/gdb/wiki/FAQ#GDB_does_not_see_any_threads_besides_the_one_in_which_crash_occurred.3B_or_SIGTRAP_kills_my_program_when_I_set_a_breakpoint +# * normal 'strip' command trims '.symtab' +# Thus our main goal here is to prevent 'libpthread.so.0' from +# losing it's '.symtab' entries. +# As Gentoo's strip does not allow us to pass less aggressive stripping +# options and does not check the machine target we strip selectively. + +# 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. +# Lastly, let's avoid some openssh nastiness, bug 708224, as +# convenience to our users. +BDEPEND=" + ${PYTHON_DEPS} + >=app-misc/pax-utils-0.1.10 + sys-devel/bison + doc? ( sys-apps/texinfo ) +" +COMMON_DEPEND=" + gd? ( media-libs/gd:2= ) + nscd? ( selinux? ( + audit? ( sys-process/audit ) + caps? ( sys-libs/libcap ) + ) ) + suid? ( caps? ( sys-libs/libcap ) ) + selinux? ( sys-libs/libselinux ) + systemtap? ( dev-util/systemtap ) + !<net-misc/openssh-8.1_p1-r2 +" +DEPEND="${COMMON_DEPEND} + test? ( >=net-dns/libidn2-2.3.0 ) +" +RDEPEND="${COMMON_DEPEND} + sys-apps/gentoo-functions +" + +RESTRICT="!test? ( test )" + +if [[ ${CATEGORY} == cross-* ]] ; then + BDEPEND+=" !headers-only? ( + >=${CATEGORY}/binutils-2.24 + >=${CATEGORY}/gcc-6 + )" + [[ ${CATEGORY} == *-linux* ]] && DEPEND+=" ${CATEGORY}/linux-headers" +else + BDEPEND+=" + >=sys-devel/binutils-2.24 + >=sys-devel/gcc-6 + " + DEPEND+=" virtual/os-headers " + RDEPEND+=" + >=net-dns/libidn2-2.3.0 + vanilla? ( !sys-libs/timezone-data ) + " + PDEPEND+=" !vanilla? ( sys-libs/timezone-data )" +fi + +# Ignore tests whitelisted below +GENTOO_GLIBC_XFAIL_TESTS="${GENTOO_GLIBC_XFAIL_TESTS:-yes}" + +# The following tests fail due to the Gentoo build system and are thus +# executed but ignored: +XFAIL_TEST_LIST=( + # 9) Failures of unknown origin + tst-latepthread + + # buggy test, assumes /dev/ and /dev/null on a single filesystem + # 'mount --bind /dev/null /chroot/dev/null' breaks it. + # https://sourceware.org/PR25909 + tst-support_descriptors + + # Flaky test, known to fail occasionally: + # https://sourceware.org/PR19329 + # https://bugs.gentoo.org/719674#c12 + tst-stack4 +) + +# +# 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 + + # Most of the time CC is already set, but not in early sanity checks. + nonfatal emake glibc-test CC="${CC-$(tc-getCC ${CTARGET})}" + 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'; 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 + # TODO: See cross-compile issues listed above for x86. + [[ ${ABI} == 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'; 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 (ABI=${ABI})" + fi + ;; + mips) + # The mips abi cannot support the GNU style hashes. #233233 + filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both + ;; + ppc) + # Many arch-specific implementations do not work on ppc with + # cache-block not equal to 128 bytes. This breaks memset: + # https://sourceware.org/PR26522 + # https://bugs.gentoo.org/737996 + # Use default -mcpu=. For ppc it means non-multiarch setup. + filter-flags '-mcpu=*' + ;; + sparc) + # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though. + filter-flags "-fcall-used-g7" + append-flags "-fcall-used-g6" + + local cpu + case ${CTARGET} in + sparc64-*) + cpu="sparc64" + case $(get-flag mcpu) in + v9) + # 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 + append-flags "-Wa,-xarch=v9a" + ;; + esac + ;; + sparc-*) + case $(get-flag mcpu) in + v8|supersparc|hypersparc|leon|leon3) + cpu="sparcv8" + ;; + *) + cpu="sparcv9" + ;; + 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})} + 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}" +} + +# 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() { + # Prevent native builds from downgrading + if [[ ${MERGE_TYPE} != "buildonly" ]] && \ + [[ -z ${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 [[ ${PV} == 9999* ]] ; then + EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/toolchain/glibc-patches.git" + EGIT_CHECKOUT_DIR=${WORKDIR}/patches-git + git-r3_src_unpack + mv patches-git/9999 patches || die + + EGIT_REPO_URI="https://sourceware.org/git/glibc.git" + EGIT_CHECKOUT_DIR=${S} + git-r3_src_unpack + else + unpack ${P}.tar.xz + + cd "${WORKDIR}" || die + unpack glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.xz + fi + + cd "${WORKDIR}" || die + unpack locale-gen-${LOCALE_GEN_VER}.tar.gz + use riscv && unpack backport-rv32.txz +} + +src_prepare() { + local patchsetname + if ! use vanilla ; then + if [[ ${PV} == 9999* ]] ; then + patchsetname="from git master" + else + patchsetname="${RELEASE_VER}-${PATCH_VER}" + fi + elog "Applying Gentoo Glibc Patchset ${patchsetname}" + eapply "${WORKDIR}"/patches + einfo "Done." + + if use riscv ; then + elog "Adding rv32 backport patchset for glibc-2.32 (experimental)" + eapply "${WORKDIR}"/backport-rv32 + einfo "Done." + fi + fi + + default + + gnuconfig_update + + cd "${WORKDIR}" + find . -name configure -exec touch {} + + + # move the external locale-gen to its old place + mkdir extra || die + mv locale-gen-${LOCALE_GEN_VER} extra/locale || die + + 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 NM READELF; 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}" + + # Always use tuple-prefixed toolchain. For non-native ABI glibc's configure + # can't detect them automatically due to ${CHOST} mismatch and fallbacks + # to unprefixed tools. Similar to multilib.eclass:multilib_toolchain_setup(). + export NM="$(tc-getNM ${CTARGET})" + export READELF="$(tc-getREADELF ${CTARGET})" + einfo " $(printf '%15s' 'Manual NM:') ${NM}" + einfo " $(printf '%15s' 'Manual READELF:') ${READELF}" + + 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 ) + ;; + *) + # Use '=strong' instead of '=all' to protect only functions + # worth protecting from stack smashes. + # '=all' is also known to have a problem in IFUNC resolution + # tests: https://sourceware.org/PR25680, bug #712356. + myconf+=( --enable-stack-protector=$(usex ssp strong 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=$(build_eprefix)$(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_enable crypt) + $(use_multiarch || echo --disable-multi-arch) + $(use_enable static-pie) + $(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=$(build_eprefix)$(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)" +} + +src_compile() { + if just_headers ; then + return + fi + + foreach_abi do_src_compile +} + +glibc_src_test() { + cd "$(builddir nptl)" + + local myxfailparams="" + if [[ "${GENTOO_GLIBC_XFAIL_TESTS}" == "yes" ]] ; then + for myt in ${XFAIL_TEST_LIST[@]} ; do + myxfailparams+="test-xfail-${myt}=yes " + done + fi + + # sandbox does not understand unshare() and prevents + # writes to /proc/, which makes many tests fail + + SANDBOX_ON=0 LD_PRELOAD= emake ${myxfailparams} 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 + + set -- locale-gen ${inplace} --jobs $(makeopts_jobs) --config "${locale_list}" \ + --destdir "${root}" + echo "$@" + "$@" + + popd >/dev/null +} + +glibc_do_src_install() { + local builddir=$(builddir nptl) + cd "${builddir}" + + emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install + + # 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) + + # Avoid stripping binaries not targeted by ${CHOST}. Or else + # ${CHOST}-strip would break binaries build for ${CTARGET}. + is_crosscompile && dostrip -x / + # gdb thread introspection relies on local libpthreas symbols. stripping breaks it + # See Note [Disable automatic stripping] + dostrip -x $(alt_libdir)/libpthread-${upstream_pv}.so + + 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 + ilp32d /lib/ld-linux-riscv32-ilp32d.so.1 + ilp32 /lib/ld-linux-riscv32-ilp32.so.1 + 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 posix/gai.conf nss/nsswitch.conf + + # Gentoo-specific + newins "${FILESDIR}"/host.conf-1 host.conf + + if use nscd ; then + doins nscd/nscd.conf + + newinitd "$(prefixify_ro "${FILESDIR}"/nscd-1)" 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 + 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_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 +} + +# 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 + + [[ -n ${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 && [[ -z ${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-9999.ebuild b/sys-libs/glibc/glibc-9999.ebuild index 67b4c1240006..13ff94e526a8 100644 --- a/sys-libs/glibc/glibc-9999.ebuild +++ b/sys-libs/glibc/glibc-9999.ebuild @@ -1236,6 +1236,8 @@ glibc_do_src_install() { ppc /lib/ld.so.1 ppc64 /lib64/ld64.so.1 # riscv + ilp32d /lib/ld-linux-riscv32-ilp32d.so.1 + ilp32 /lib/ld-linux-riscv32-ilp32.so.1 lp64d /lib/ld-linux-riscv64-lp64d.so.1 lp64 /lib/ld-linux-riscv64-lp64.so.1 # s390 diff --git a/sys-libs/gwenhywfar/Manifest b/sys-libs/gwenhywfar/Manifest index a2c95276fb66..73b8de7c4b5e 100644 --- a/sys-libs/gwenhywfar/Manifest +++ b/sys-libs/gwenhywfar/Manifest @@ -1,3 +1,3 @@ DIST gwenhywfar-5.1.2.tar.gz 2354910 BLAKE2B e73519d33da9268f90ae2924b177c4ef684c9d991faa1f788f8c30ea669fa27d645481e6e41673b22d2796376aaab9cec72de6874b89c2fe141102cfbac2d2e4 SHA512 20374ed6c134b310f375eb286d83bf6074e397e3c6e22b0370d06fb870b9506f171a9276cad9a809331d8917e3bca1eca30a5d5776818ca7f5b06100474a7e0f -EBUILD gwenhywfar-5.1.2.ebuild 2776 BLAKE2B 22f440a493d276db92fc79053355bd33eb10780074976211daaa68572df63fe8e20e9f04fc2e4c824c1a6cc18632a09fed52cb2309758488d8b61ab0ecab62ab SHA512 7ddd030da30072aa5ef39c3b8b31fef035c6216b012b1caca24deae790f14fcbdb6d9c06dc548139cfdde2233255a8cea7feb320ed6c7c5c1766447fcd6808b4 +EBUILD gwenhywfar-5.1.2.ebuild 2783 BLAKE2B af1f16ea97f1fc19ab3185369a375896e24b198d97e338319da2011c29e31a261db331e8463a1df7a24828e258145c79880a96fddd84770fe177498ccc77f35e SHA512 50dc4ee66df60b5ddd339262f0d2d66a409609ea4dded49e1092eb0bfa23006fe05319eb3080ff99e2283493904c1282c6532632640c4e671f688f9c1cebed24 MISC metadata.xml 691 BLAKE2B 9130a34b5011ee2a5b446794a036961e6e83e3083ba580a4d77da2686d9cc75620f0b38cc21d5c4014361d698cf4ff24084ae93b46cdecaaf1e7c522d4f5d3d4 SHA512 3eb26d730501a60512fca15ea05d27e9c74bd020961b09c406837cc2de8558b6abca63336857c0206c41825101afa9f3eef91280afbd7147733cb811e5469213 diff --git a/sys-libs/gwenhywfar/gwenhywfar-5.1.2.ebuild b/sys-libs/gwenhywfar/gwenhywfar-5.1.2.ebuild index 4a12e38137a8..cfb7644453e1 100644 --- a/sys-libs/gwenhywfar/gwenhywfar-5.1.2.ebuild +++ b/sys-libs/gwenhywfar/gwenhywfar-5.1.2.ebuild @@ -12,7 +12,7 @@ SRC_URI="https://www.aquamaniac.de/rdm/attachments/download/234/${MY_P}.tar.gz" LICENSE="LGPL-2.1" SLOT="0/79" # correspond with libgwenhywfar.so version -KEYWORDS="amd64 ~hppa ~ppc ~ppc64 ~sparc x86" +KEYWORDS="amd64 ~arm64 ~hppa ~ppc ~ppc64 ~sparc x86" IUSE="debug designer doc fox gtk libressl qml qt5 sensors serialport test webkit" REQUIRED_USE="designer? ( qt5 ) qml? ( qt5 ) sensors? ( qt5 ) serialport? ( qt5 ) webkit? ( qt5 )" diff --git a/sys-libs/libchipcard/Manifest b/sys-libs/libchipcard/Manifest index a0aeee13111f..f258df39ddac 100644 --- a/sys-libs/libchipcard/Manifest +++ b/sys-libs/libchipcard/Manifest @@ -1,3 +1,3 @@ DIST libchipcard-5.1.5rc2.tar.gz 877820 BLAKE2B dfe82e3d6aea26e95e5f69298ea17ad4bb9a1d106cca02a9fc23f5aa5ea338471ae5628248350e01571f4819567da2a0f5a3699d56d8f02ed58971d6ac715abe SHA512 5e86068bd688f72e04073dbd076f21646a6b75d2a7a73c25bba4396e8657c4df28cf5cfb61eef7b243186f8313cea1262e415f2acad5348fa5179b46d7f96ed1 -EBUILD libchipcard-5.1.5_rc2.ebuild 1118 BLAKE2B 103ae85fc36f5b188d20ff22c518d7b5b10f61140d5b476fee53d1c108f840f84fe16db9cf503dd1294af5e40415dad181af26e7637d3ac548a4a2c66b169c4a SHA512 f2c66cb386ce04f26339616b6799155b7aafaa5d0cbaa4d075ce8e0c4653484bc706d9c64423607332cebf9eb24594520feabf1cabf5d835ddee59441ffe03e5 +EBUILD libchipcard-5.1.5_rc2.ebuild 1125 BLAKE2B bea1ad33a208fdee22bbe923174b54f01b0ab86611a311f923f84f95e75842bef495faa21fa69b7faf13eed71e6e5ea1bf5f8599d60cdd9f1e05c2e208a08c3a SHA512 f2bb2dc2032dd078a2e78bfaf9ca9d88942689de9a46916daab7bace0a1c740314558798ca26ffbdd7f179ca6e7abd63ea1b9442ecde23ab6317f401a0172f85 MISC metadata.xml 210 BLAKE2B a547b5e8dbb5d674ce2df4bcc6ee71c3aae3b0c7863c38a66c1fac3cf0f0c16c7bb302264082f345d2da87d0e544d321e6fd8385a16d01620a733a8ab29082a3 SHA512 27fbc849a311e57c8dbad0cae9975d564c03ae8a7b495b2e7a5cd160c6a09c0101e695ba4d2edf07c0d4c4d7329ff9a4bd91656aa685623342883b83bcb9ac0f diff --git a/sys-libs/libchipcard/libchipcard-5.1.5_rc2.ebuild b/sys-libs/libchipcard/libchipcard-5.1.5_rc2.ebuild index de3fba0624f7..d7a4578bb9f2 100644 --- a/sys-libs/libchipcard/libchipcard-5.1.5_rc2.ebuild +++ b/sys-libs/libchipcard/libchipcard-5.1.5_rc2.ebuild @@ -11,7 +11,7 @@ SRC_URI="https://www.aquamaniac.de/rdm/attachments/download/229/${MY_P}.tar.gz" LICENSE="LGPL-2.1" SLOT="0" -KEYWORDS="amd64 ~hppa ~ppc ~ppc64 ~sparc x86" +KEYWORDS="amd64 ~arm64 ~hppa ~ppc ~ppc64 ~sparc x86" IUSE="doc examples" BDEPEND=" diff --git a/sys-libs/libieee1284/Manifest b/sys-libs/libieee1284/Manifest index 2bdea3c88233..d11e465ef8e5 100644 --- a/sys-libs/libieee1284/Manifest +++ b/sys-libs/libieee1284/Manifest @@ -2,4 +2,5 @@ DIST libieee1284-0.2.11.tar.bz2 278804 BLAKE2B 6bdc7051c91c7d1b7e601eb17823c4dbd EBUILD libieee1284-0.2.11-r4.ebuild 1025 BLAKE2B e50142b0567c2d6b2fcec53bc8e3a459856d026e2d9c1ba9199b23369ca4f301b8988aca7fcfd6b9dc2e4a55c51c461ac2712d769544a3dd1ac399a46efa9b94 SHA512 8095ceaa46d5f7a5c951b06d630011ab314129ba3fe47f045ca2aeddf9feac5f1dd84bd2d19cb258808ef25f4d99e5279875f6aa20e3f02569034f31a17b9304 EBUILD libieee1284-0.2.11-r5.ebuild 1013 BLAKE2B 902fe1fccb3fe1c1bc93427ebbcb6dc64f5c1604c9bf186d8a46b3428852bd1e16e50d4e74eff66583c71d762bcad319c3ed771e639da3bfb66bc0d019ed80ce SHA512 a0402f7479b19387069e6a11040bc3227da357fb32b0d3dd00619baaaeddfa2c8c02fa562b01079d0218767774b60b55c3b05baa3f487ea8602634cd434e4005 EBUILD libieee1284-0.2.11-r6.ebuild 1031 BLAKE2B 3a97190fec0c07adb48ad6e067ac4a6e231355625770711177090e7a2c84cfcf4c39dda602af6bcfba1264b877819277114fac193b215e9e11d03c6edff018fa SHA512 25fe6c91c02dd2ae8517c261ccdfd73e6f4f123f4e42d947f99571d8d947d465833c45acb911772fe046008174657655bdd26a6ed02b7915f2740e011862cb18 +EBUILD libieee1284-0.2.11-r7.ebuild 966 BLAKE2B b1bde33861450fd11de30b0fd71297bc09ce4468503c192d05ec9c1370a7d10226b0a591c6aa3adf407967669b6b2f5df6d0c9b4ff2fc19074728f383bab92e8 SHA512 23ae534184d5563de0c8c87c00ccd059cb92a6516a8b6b90e44cd810aa692018ba1d72bce9da90b38e7d8159fae26976851cc4a288df47c12b14cf4cd8ed3de6 MISC metadata.xml 331 BLAKE2B 72d060e5e77b6247387c4a7da0c70c86902f650cb90e37ddb1342c743d8160803edc6f2884549e13cc55b5e0507fde4253f0e4898c36cb5653d0fce7f4d23c58 SHA512 f0855a91eb73804b3df9fcf9c821fdbfca67206c57152e7db3346c195ae3c8a204a7f0179c2449861799ff081d468dbd7709768d50073838bba19a447f252b5c diff --git a/sys-libs/libieee1284/libieee1284-0.2.11-r7.ebuild b/sys-libs/libieee1284/libieee1284-0.2.11-r7.ebuild new file mode 100644 index 000000000000..fcfc9ea12e08 --- /dev/null +++ b/sys-libs/libieee1284/libieee1284-0.2.11-r7.ebuild @@ -0,0 +1,51 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +PYTHON_COMPAT=( python2_7 ) + +inherit autotools python-single-r1 multilib-minimal + +DESCRIPTION="Library to query devices using IEEE1284" +HOMEPAGE="http://cyberelk.net/tim/software/libieee1284/" +SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 ppc x86" +IUSE="doc static-libs" + +BDEPEND="doc? ( + app-text/docbook-sgml-utils + >=app-text/docbook-sgml-dtd-4.1 + app-text/docbook-dsssl-stylesheets + dev-perl/XML-RegExp + )" + +src_prepare() { + default + + mv configure.{in,ac} || die + + eautoreconf +} + +multilib_src_configure() { + local myeconfargs=( + --enable-shared + --without-python + $(use_enable static-libs static) + ) + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" +} + +multilib_src_install_all() { + einstalldocs + dodoc doc/interface* + + if ! use static-libs; then + find "${ED}" -name '*.la' -delete || die + fi +} diff --git a/sys-libs/libnih/Manifest b/sys-libs/libnih/Manifest index e67008e4402f..334756144230 100644 --- a/sys-libs/libnih/Manifest +++ b/sys-libs/libnih/Manifest @@ -6,5 +6,5 @@ AUX libnih-1.0.3-pkg-config.patch 393 BLAKE2B 77ed2af4429624e03e86f00cdb58c015f1 AUX libnih-1.0.3-signal-race.patch 1432 BLAKE2B b08b7356d2fae755fbe45b2a45b4081c9e1b27ab5aa3a1f71a6945ced5048bc587883de5b9181887a8124f4fc025bcbea4e668ae0e93d5b97e56f67788dd42a8 SHA512 5bd1ff4d7774db62cb6f54721c3b30b5fba1f085a69b28da12f85f448efacb6efd0dd9b9b61801ceb3fc94ca1616fb898bdce33e873f9e57486e44f26c063ed5 DIST libnih-1.0.3.tar.gz 1187624 BLAKE2B f8f9fcdda86eabff39de0b0f92cd1f8c1c0eeb0c86ec4970e5bef1cc0dff0fda83db64975ece93d5d8ede5d0613d5f363dd7456c59fe966feb5e61e5b8913627 SHA512 fce40d2445b28c27b8838631681ca3206a4f053b2dd4fc488fc9ef98bbd3d933e3d62b82cf346be2ef1677f6457f692cf5544cd915a6bb1e5c618f98ffa101b4 EBUILD libnih-1.0.3-r3.ebuild 1499 BLAKE2B 81ebd631c031c5f18ca79c582cd582c21b5d605e65976c48f0a75623ed0469bee634387ef976f2c8910ac2365c9944cd9cbd960836704908a4af9c6e62fb113e SHA512 845a2a47d3e193f3c09e5c0486252da24c246dccd409b56d702725995ee1845e719c14fa3ecba6916d2f986aed9762e6f0776792d64206a68af1314a4885fc3d -EBUILD libnih-1.0.3-r4.ebuild 1554 BLAKE2B 567a5f2c72519457a1e035bc23c6568245ec7bf4c6179d9a8531ccfb8393e2dc42c39c982c94e3561934e93060c9c6d139874479dc8fb2c82c6e6c257c005fc1 SHA512 5791a42e4a742e86e6d7910781abccd3f3f875229b9015f902a4bbb75bba970308dd10337edc79a2473e3c1ecff8df5ba344719a28cc106e7a65bc162ed1c6e2 +EBUILD libnih-1.0.3-r4.ebuild 1552 BLAKE2B 21a4741dd091df02a6e156cf515111de2461990b728a01913874b8c594d27f8d3968f8b5b1e0716047124ca0253a9597a50575558ee475bdba7c2c442a31e54d SHA512 f2aea977ec4fd90692122468bd41352aacafab31c499bda5c95c0565b436d5842965793b86ccc78186f0254a05af5deb987f477bc9c64f5034e00829f55e4306 MISC metadata.xml 241 BLAKE2B 02f7c7b912751df8725055416a093647e79dfdbf7f06c9f56246c67f6a1176997454dd3aaaa493ecf7d00d8ae295066e2861ac10bee860a94eef6085437561af SHA512 31e21c0bed310c4a025385f24c5b76f2e588999912fa548ca343947d95ad448b3a1232211cd4427607550c0f5de2e562e2b4e492415b6d207c954a516b811a84 diff --git a/sys-libs/libnih/libnih-1.0.3-r4.ebuild b/sys-libs/libnih/libnih-1.0.3-r4.ebuild index 57cef452203c..4453646be49d 100644 --- a/sys-libs/libnih/libnih-1.0.3-r4.ebuild +++ b/sys-libs/libnih/libnih-1.0.3-r4.ebuild @@ -11,7 +11,7 @@ SRC_URI="https://launchpad.net/${PN}/$(ver_cut 1-2)/${PV}/+download/${P}.tar.gz" LICENSE="GPL-2" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 hppa ~ia64 ~mips ppc ppc64 ~s390 sparc ~x86" +KEYWORDS="~alpha ~amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~s390 sparc ~x86" IUSE="+dbus nls static-libs +threads" # The configure phase will check for valgrind headers, and the tests will use diff --git a/sys-libs/libosinfo/Manifest b/sys-libs/libosinfo/Manifest index 86b7b83fe5df..be694211277c 100644 --- a/sys-libs/libosinfo/Manifest +++ b/sys-libs/libosinfo/Manifest @@ -1,5 +1,5 @@ DIST libosinfo-1.6.0.tar.gz 1024787 BLAKE2B 4d0783b41f8c9ed7472c798acede0cd1f3808858ab954e838e8d7543dc50a9819d1f26b0cb02a97c8ed8ebee47db1b915aab5daadc0be2742e8f5c1ba8451a75 SHA512 53359095e40ef12e0cc142ddc92119b4a753bb47a728f13a8ff500a19108a44eb1f6ebe4ed67b04347a707dd0c0d55bcfe6815b57d187237dddd7376ebe9cf5e DIST libosinfo-1.8.0.tar.xz 273324 BLAKE2B 0d289df4eb1eb0f9793227b7925cfc37e253a4db0da5c420e7b058d4c060ae50a5609bd25f7d07822e0110e535561f675cf8eddbe6bce0875757f10ee30b2c22 SHA512 1d831443af9eea6a5ba1edccafcd47e56fc55e3cc43c0572044abc9c70c4eb8bbe0d95019d42bbdc3b680a2f52511863412ea9587c6eb553353b3802e94b2960 EBUILD libosinfo-1.6.0.ebuild 1455 BLAKE2B 303988e1c94622f9819071aec92f0cb3659b9cf5ac025406a85839ed0ddb8f187fd77b7f9c11bb898802d36d49f508da06fd42a27eaa2b696e797a8fd5588ac3 SHA512 5b3da89d1da8fd76f72523262249e45b719d6e23f3f2983b9780a41fcadde2b8e6447645368c2c86527a4c3ebc40569e121a0af65ad402b810b3854d7f8b1714 -EBUILD libosinfo-1.8.0-r1.ebuild 1520 BLAKE2B 809038bc8375c036f98850b2bfcfcdb94c861e252599cba1ad9da2d5e0ad7ef8afaeff4085dd9f265fe5de26017d38d13cb35561551c8acb346f215c978411e8 SHA512 9bf4859a74ad01b64af1cdb8a8043112be45434b4fbcb980e06dc4a3e5175d07bb0d0df83c0c50e8e1eb5d5c6c801fcb64f2e13874eb706cae76423a3d217665 +EBUILD libosinfo-1.8.0-r1.ebuild 1517 BLAKE2B dddb734dbb4428417fa830d31f9e1bbc8f165d5d8a6d03ff8e929b3025a8106b1e7a2db2cc4191bbba2e0b77da85768a54a70fb85480569d9a2f772f63e4cc67 SHA512 541d1a76d09bd950909f4b754286095d48af5614e3552d56316272f846d8a5eefc5c8c5fa68d210be69f0c31fc3dfde226097b5dc747e378efef86e52c48d642 MISC metadata.xml 249 BLAKE2B e71e1b95fee768c696704acbf7e3cf0e599ed2bc8de92bae0141d1194ef9e842bdc292798904487a9b90ddfda9b0e84abd3b76b1518576c1d288240e4e46f110 SHA512 c40662134899a5c9f0369a1017806f35adf3280a0b3c91726f7a8ca6012a073a8b471583f5bfb6fe95faac1dcf607e8e2e43f8c91d48ec46f4a8824e2f551506 diff --git a/sys-libs/libosinfo/libosinfo-1.8.0-r1.ebuild b/sys-libs/libosinfo/libosinfo-1.8.0-r1.ebuild index 4b5e771089fe..c2bc2665e86c 100644 --- a/sys-libs/libosinfo/libosinfo-1.8.0-r1.ebuild +++ b/sys-libs/libosinfo/libosinfo-1.8.0-r1.ebuild @@ -17,7 +17,7 @@ IUSE="gtk-doc +introspection +vala test" RESTRICT="!test? ( test )" REQUIRED_USE="vala? ( introspection )" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sparc ~x86" +KEYWORDS="~alpha amd64 ~arm arm64 ~ia64 ~ppc ~ppc64 ~sparc x86" # Unsure about osinfo-db-tools rdep, but at least fedora does it too RDEPEND=" diff --git a/sys-libs/libutempter/Manifest b/sys-libs/libutempter/Manifest index 1dc7de354641..fc6b0a3c6e84 100644 --- a/sys-libs/libutempter/Manifest +++ b/sys-libs/libutempter/Manifest @@ -3,5 +3,5 @@ DIST libutempter-1.2.0.tar.gz 17353 BLAKE2B 35e66a32e70fa59639f9a4fb71ba0e89c88a DIST libutempter-1.2.1.tar.gz 17429 BLAKE2B 88ae0a03a8a614b960082ce4d4006ec4e3eb8148b319ae964ac3ba3f684f08f5dd670e693f25d52d04a280f7b2aed6d2894cbbc0e2db3f71ab68e6910ffb58d1 SHA512 d3a3bab7d2c2a68534c5ad41dd02bde849eb08df5dbb895a79b50b74d269c48c4cfcd12c4654941ccb7cdd43f486cfdc19148fa470870562f5cd324ce9782429 EBUILD libutempter-1.1.6-r3.ebuild 1694 BLAKE2B 2190ccd25ddbe4c74f8ff67892c83654e7e37a89ce2b86a855bdd59fa96efd4d76edf9aa7d28bc562469b9ef0b1136263ee848717f75090635a8aceb7ad522c9 SHA512 a251f3a15cbec7df5f07c84337ec9d9dfbcbbc0908dceff6e722aff2e7689c306f4806c4b3ca3559d121b54d7b09e722b432a826513d96dff5d18bce215ebade EBUILD libutempter-1.2.0.ebuild 1705 BLAKE2B 0421ad465302e3e8ccbd4369b1ae44043653d751e24168189e0a2dfb1912748fb7c29b0123a27db8587f3dd53697b0fdd95063929614e009ac348b95c59ca0d3 SHA512 8687abd08901b2577f0cf47a7c9820e45858a322c5cbb854c0f72dc362c7777c48f2fd5ed208d15dd574b798f7c300ff582afaeaf01e8fdda3ca5b98be1240ed -EBUILD libutempter-1.2.1.ebuild 1705 BLAKE2B 0421ad465302e3e8ccbd4369b1ae44043653d751e24168189e0a2dfb1912748fb7c29b0123a27db8587f3dd53697b0fdd95063929614e009ac348b95c59ca0d3 SHA512 8687abd08901b2577f0cf47a7c9820e45858a322c5cbb854c0f72dc362c7777c48f2fd5ed208d15dd574b798f7c300ff582afaeaf01e8fdda3ca5b98be1240ed +EBUILD libutempter-1.2.1.ebuild 1712 BLAKE2B 2d69570c2dbb7737b81d6bbc84627fc2a9d432049b960fa8eb0e9abd5dcbf57456896de97d173d0e31be64526577c31d6d07a6adf6388aa674c535b5caceb982 SHA512 325e01ebe83551be24bc6022e8bde1e932c5a99ed7fb4ae95d226adb813d9da4d9f6c2571063cd38f0d56145202388b0d5cae0962d9d341019a722b227a0a2b9 MISC metadata.xml 253 BLAKE2B 295e9d6d93aaa12af413972e1590c67087801cc09c9aa6b59d4606c0f4106d1dacf2baa9858559083b4c6d91beeef218d0729e8593a33788958da6d2897e8ce2 SHA512 54a9069aeb4165d2dff3d473c8001bc51613aac9dff3f7f5e9971a9891a737a31511ffa11cbd523febe581ac1d9de2bdf2f40410f0c4239138f2ccca3ef15555 diff --git a/sys-libs/libutempter/libutempter-1.2.1.ebuild b/sys-libs/libutempter/libutempter-1.2.1.ebuild index 271a41f8bde7..bf423adf43ea 100644 --- a/sys-libs/libutempter/libutempter-1.2.1.ebuild +++ b/sys-libs/libutempter/libutempter-1.2.1.ebuild @@ -11,7 +11,7 @@ SRC_URI="ftp://ftp.altlinux.org/pub/people/ldv/${PN}/${P}.tar.gz" LICENSE="LGPL-2.1" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" IUSE="static-libs elibc_FreeBSD" RDEPEND=" diff --git a/sys-libs/pam/Manifest b/sys-libs/pam/Manifest index 5d7161d9212a..b4b544481c84 100644 --- a/sys-libs/pam/Manifest +++ b/sys-libs/pam/Manifest @@ -1,7 +1,7 @@ AUX pam-remove-browsers.patch 985 BLAKE2B 3e258e00f7287436b1b6a97323764612a3098dc4effb12e62cd8d55151ace2b97b6ea7b67ae33613aa6b3cca318bfbfc310b48a99b0c81e1beaa9d16188e69eb SHA512 42d89d35fc754e51112040a5468067ee9f6a3a411e538cb634187e28975040c0b7ef48fab166ec6a20a849f6ed9d74a069355269cf708d9985ded6b87fe13ed1 DIST pam-1.4.0_p20200809-doc.tar.xz 42680 BLAKE2B e8371bd76b589db06ce95f2d10343be163aa5149f566f7d9bd5e9cd0340b95eecedb6a7d20d299fd2188c736fca3c69c0bd2f8eea4541dfd3312227c3dcf4e2d SHA512 5007aaa811b6321f124245493c6a4bc9ae07ab4ff651fc817843e8b4a74661c07418e2479363a72c35320f0f1cb469a2494c5d354dc819b920de7d1918e6ce5e DIST pam-4dd9b97b762cc73816cb867d49c9d0d0b91d642c.tar.gz 765455 BLAKE2B 8a8543b51c9fa877cd48d483d9af489df00376f92f26fea648d38a0ce3168702888a662e5d3c7423cce8a5d56896e84e4c1829e56d08fca8c3ab878b20945a7d SHA512 bdb236a47a5810449fb96546ff89d70dec185a215b0d047178a12e40945fde4ffdb801dbbd87ff95eead1bb7acb4748333a2d3383881d5de0dbd89ec5ceddd3f -DIST pam-d5cb4409ab6b04a6ed7c00245e2c9a430f352b16.tar.gz 810548 BLAKE2B e061528fa57ba9fcb418422d368b7bb960b5f6eec3ed4b9e438be0ec4acdaf925af3322a334ced8c498e700b090ae37f5084f13d2bf8c6874d53c58f03548bc7 SHA512 3db1e13bc8a037b22e0ae1aac0311982877a2e2d33643ee32813025f9a9c727421f2fd6c442eba936e8043c59deb476daf78fda34fc7b6b95c015614751975f4 +DIST pam-e42e178c71c11bb25740a5177eed110ee17b8af2.tar.gz 810595 BLAKE2B 897f64a7f55c033601665b0ecc292cdcbd0d9b2f24199ed6ca5fc69c2da4da7401677493bed09a118b1fc0a475dc016fc7a3a318787c650212b056064ed0b817 SHA512 3c2bc401df51dbd4118698afc80a0448559bc6b5d8c7c45c800c2f6421034a131c0bee971f9640aec6b0d77f8a31ec055c7a84a646d9a11690dfda4af4e1068a EBUILD pam-1.3.1_p20200128-r1.ebuild 3522 BLAKE2B 39445b685c2f2bb4237dcaa4e72eee7a426a00b4385b442a4e0c5f1092324446c62918f9642e7afe76b9b85bf2d55f6af3129c842c98450fae57bd22fa93a6d0 SHA512 7420fa938ab27a76a5a7b3c7921f815e85cf38a96b53407efbd4806ae043f84db1b3a32afa76fa400c6c279ceb6c72786cbc49e58dbbae9adc7b59459b5b7508 -EBUILD pam-1.4.0_p20200809.ebuild 3793 BLAKE2B 3501f29331acd5a98c980f699791a6cec17837454cd69737a71aeb8b0f8e4d98497b5a27c2a42b3b1902aa4cfb615e852e0a0fe7ff4baaae0542db59baa8b045 SHA512 1bcb577cd157c0ff7361995927201b9485dbb7ba39b3584a499d1b64c7790964ab7b2170bcd4827f81bab21ca19a517a19f1fdc2449ba425a5251a845048efb8 +EBUILD pam-1.4.0_p20200829.ebuild 3874 BLAKE2B 79afdd656faa38801d9fa64deac6b209adc494a7f07f6a235caac6ab52f4a5f8860f846502e65273999d7aef4c869f88fb8feef894cb2b897bf9398091660624 SHA512 d887a46ec17f239d7bcb09d36604fe5a51d0638bf22e702939eabaa9a773e3fada9566423f66b0583348d9aef8503db8782f047605b46ae8b470d2dddbe7324d MISC metadata.xml 1086 BLAKE2B 39d2291ff9553394ce684a87a49a2c41b18689102d8cf352c905ce2ede28508501aa41a4a473d287c461b77e5732aa4ed0eaac94db94c851ed9491bffdac8acf SHA512 6743a2021ef7d7ab9fc547b270c17b205747a498e0e2bafc07ad171d52657a4aa3f84803c2b4e5c088b73b1732d600b5b2189c958d4b15fba8e081714790fc72 diff --git a/sys-libs/pam/pam-1.4.0_p20200809.ebuild b/sys-libs/pam/pam-1.4.0_p20200829.ebuild index 4fea18d00b1c..5dfee2448fa0 100644 --- a/sys-libs/pam/pam-1.4.0_p20200809.ebuild +++ b/sys-libs/pam/pam-1.4.0_p20200829.ebuild @@ -8,9 +8,9 @@ inherit autotools db-use fcaps toolchain-funcs usr-ldscript multilib-minimal DESCRIPTION="Linux-PAM (Pluggable Authentication Modules)" HOMEPAGE="https://github.com/linux-pam/linux-pam" -COMMIT_HASH="d5cb4409ab6b04a6ed7c00245e2c9a430f352b16" +COMMIT_HASH="e42e178c71c11bb25740a5177eed110ee17b8af2" SRC_URI="https://github.com/linux-pam/linux-pam/archive/${COMMIT_HASH}.tar.gz#/${PN}-${COMMIT_HASH}.tar.gz - https://dev.gentoo.org/~zlogene/distfiles/${CATEGORY}/${PN}/${P}-doc.tar.xz" + https://dev.gentoo.org/~zlogene/distfiles/${CATEGORY}/${PN}-1.4.0_p20200809-doc.tar.xz" LICENSE="|| ( BSD GPL-2 )" SLOT="0" @@ -30,7 +30,8 @@ DEPEND=" audit? ( >=sys-process/audit-2.2.2[${MULTILIB_USEDEP}] ) berkdb? ( >=sys-libs/db-4.8.30-r1:=[${MULTILIB_USEDEP}] ) selinux? ( >=sys-libs/libselinux-2.2.2-r4[${MULTILIB_USEDEP}] ) - nis? ( >=net-libs/libtirpc-0.2.4-r2[${MULTILIB_USEDEP}] )" + nis? ( net-libs/libnsl[${MULTILIB_USEDEP}] + >=net-libs/libtirpc-0.2.4-r2[${MULTILIB_USEDEP}] )" RDEPEND="${DEPEND}" @@ -62,6 +63,7 @@ multilib_src_configure() { --includedir="${EPREFIX}"/usr/include/security --libdir="${EPREFIX}"/usr/$(get_libdir) --exec-prefix="${EPREFIX}" + --enable-unix --disable-prelude --disable-cracklib --disable-tally @@ -107,7 +109,7 @@ multilib_src_install_all() { d /run/sepermit 0755 root root _EOF_ - for i in "${WORKDIR}"/${P}-doc/*; do + for i in "${WORKDIR}"/${PN}-1.4.0_p20200809-doc/*; do doman ${i} done } |