From 50eeb3531d76d4007cec69c88a7cee90d11a9193 Mon Sep 17 00:00:00 2001 From: Sam James Date: Sun, 19 Jul 2026 10:06:07 +0100 Subject: [PATCH 01/11] sys-devel/gcc: add 13.4.1_p20260715 Signed-off-by: Sam James --- sys-devel/gcc/Manifest | 1 + sys-devel/gcc/gcc-13.4.1_p20260715.ebuild | 68 +++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 sys-devel/gcc/gcc-13.4.1_p20260715.ebuild diff --git a/sys-devel/gcc/Manifest b/sys-devel/gcc/Manifest index 48617dd4fc7cd..f3a514584640d 100644 --- a/sys-devel/gcc/Manifest +++ b/sys-devel/gcc/Manifest @@ -22,6 +22,7 @@ DIST gcc-13-20260617.tar.xz 84606784 BLAKE2B 7f8b88839a714a16cfaa2796ae9601151bd DIST gcc-13-20260624.tar.xz 84614412 BLAKE2B 84395636773b8d14ac7908e7f9ae64c55ed369c7bef51de788ac8f95cbf17eb925e72f573241e835a44ec2fd39c3299348506042edab78c4b4f82fe32a042c4a SHA512 3509ad10d3c355831964785057ec1a50d5d36fc58cc21b9203ef16bbf0eafa31b7e487dfdb6aa00c750d82420c1a57aacde7424f72855a57cd07840892f0df62 DIST gcc-13-20260701.tar.xz 84614044 BLAKE2B b5c6a5ec54cd1bce45bad201892d59d9f672403f1b40c580da1cbb32fead817d09bdb674d9fc6ae664e97a8f1480fc635de3174f39608e09cde6e4d7def21d68 SHA512 4fa6cbfad37950f6f9cdecfc2782a570a5f59774adb2a24120049c4a2007730988a1eef80f36f1b0bfee2ebeef754fb30029140c3364089f3d2cd055e74f6462 DIST gcc-13-20260708.tar.xz 84617648 BLAKE2B 841a0f9806c74d01547c8d8f0e716f9991d81398a7f70279a654bf0079b6d79384974d173cdf927a7d1eeaaa7d3f0665d963ee1c95135bd16b92a4cf98719215 SHA512 b28615b77bdc4839b88775842a7763ba779fc1246adf2afedd6472ebdaed98f15819a7b746d8fbf028e564b8c596418e8593e9d42993ce18d92f15f55d50e4cf +DIST gcc-13-20260715.tar.xz 84621548 BLAKE2B 476965a264994adc359c7340fec5470013d33debea7b2a8b56ebfa01e61967a24a6d950ce9dbca68b558046a676ecb05751b37f7fec42841e1a9ba2fd3032409 SHA512 1979288927926526ef85712b1a4d4172e03204d89ef2f217f12ed69f9fdecd622d248ac68beb7c13392ee1c51857905fa8c56c75c1ca0c3af1802600d22c0e4e DIST gcc-13.2.0-musl-patches-2.tar.xz 5292 BLAKE2B c057d6574d03c05854edaa9f3fd40e9149662b04f3ac7a7db3eb078d73a7b535726d1bf52e5b12736dedb2f9898ad731f2e48a6421fcfbf7b90f929dee072fcb SHA512 a691da0c87c443a5e9d23731f4005f27871c5b12bc9102873ffa24d374aa7b9fbd187c4f5635d23fa9ffb17e351e76173c2d3fdf40646e355c4cb314b538de69 DIST gcc-13.2.0-patches-3.tar.xz 30956 BLAKE2B 29ce043b46645640ca1e983397af3e158588ad87575f0bc59451ea4a7dd5e3bb5b190ed031de6a22cd790d423ba111e95d222187dd09985dceb12db9f0a2d907 SHA512 4ffecae7be320124ad0c4e71e39e142b7aa8db0e70b5f486f491d7a33ea31efc6464c6abeea77df02a8bd5cf81f08225d625c8af5c27f9afa32c0d7d989f7a3c DIST gcc-13.2.0.tar.xz 87858592 BLAKE2B 0034b29d3d6cc05821f0c4253ce077805943aff7b370729dd203bda57d89c107edd657eeddc2fb1e69ea15c7b0323b961f46516c7f4af89a3ccf7fea84701be2 SHA512 d99e4826a70db04504467e349e9fbaedaa5870766cda7c5cab50cdebedc4be755ebca5b789e1232a34a20be1a0b60097de9280efe47bdb71c73251e30b0862a2 diff --git a/sys-devel/gcc/gcc-13.4.1_p20260715.ebuild b/sys-devel/gcc/gcc-13.4.1_p20260715.ebuild new file mode 100644 index 0000000000000..fea647d1997e2 --- /dev/null +++ b/sys-devel/gcc/gcc-13.4.1_p20260715.ebuild @@ -0,0 +1,68 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="13.3.0" +MUSL_GCC_VER="13.3.0" +PATCH_VER="9" +MUSL_VER="3" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ ${PV} == *.9999 ]] ; then + MY_PV_2=$(ver_cut 2) + MY_PV_3=1 + if [[ ${MY_PV_2} == 0 ]] ; then + MY_PV_2=0 + MY_PV_3=0 + else + MY_PV_2=$((${MY_PV_2} - 1)) + fi + + # e.g. 12.2.9999 -> 12.1.1 + TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3} +elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=releases/gcc-$(ver_cut 1) +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # Don't keyword live ebuilds + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + eapply_user +} From 2d5918f4df627e7d1fe5dd347182afb177fbae13 Mon Sep 17 00:00:00 2001 From: Sam James Date: Sun, 19 Jul 2026 10:09:55 +0100 Subject: [PATCH 02/11] sys-devel/gcc: add 14.4.1_p20260716 Signed-off-by: Sam James --- sys-devel/gcc/Manifest | 1 + sys-devel/gcc/gcc-14.4.1_p20260716.ebuild | 56 +++++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 sys-devel/gcc/gcc-14.4.1_p20260716.ebuild diff --git a/sys-devel/gcc/Manifest b/sys-devel/gcc/Manifest index f3a514584640d..c5025e730768a 100644 --- a/sys-devel/gcc/Manifest +++ b/sys-devel/gcc/Manifest @@ -41,6 +41,7 @@ DIST gcc-14-20260528.tar.xz 88521668 BLAKE2B 57465c22db8f3ed5660e8ea74ce5fce2465 DIST gcc-14-20260604.tar.xz 88473776 BLAKE2B 0d022d76185b04d314b05ee0e7906b030df6ca13efa254e5c64e625286af6e361659a359406bc90658b3d3e5379f0408500dda86a0af0aad3df88193ebe736dc SHA512 654e5484fe25986f51a55b12a959fa6c36d3640cbb8f62c63adda3e7222224048ddfd3cb87cac081759e1a2cd3732cdf17af9e6a3948aba227ddd3a4c0c2e72f DIST gcc-14-20260611.tar.xz 88470760 BLAKE2B b4c70945e290ce5a6eff36161ca0d3678dc809910e02785b9e3ac52664a6cf1ed8a824d3f4820572b77feafdd247d19f3b5aecd82d324bf29f2eb968a6b5e8fd SHA512 a66030357aaf596263386d3d91d686a739e77b6200a3fcbba40accc70049282efbd42a16323dd5c539a21239645c01ad625fd1ab537d8c9fa5b573e38ee59d3d DIST gcc-14-20260618.tar.xz 88486332 BLAKE2B 51717d015582d4b6e8690abb731681029354c53b8fdf6d8c4ff06d10aaae70ba8d89029c52d10c4e6792e09357378e8691ee96bbc77cdba28f5a12a5b2adefbb SHA512 1edaefad5cb9d76c364208e0b4fae5f3a7ba0583866551b1f48b41893ef4f902746812b8ab53c050e5c429db21c24693d48882b37b3df2881dbb9988e25846fa +DIST gcc-14-20260716.tar.xz 88509636 BLAKE2B 1e31c1c969a3ee7184d6e466dc9bf627e67e98f2c61fc4d34a74b02d7128718f7e8d0eb3a178b4e9734665fe93eeccf42e9bf5ba80e62b583044dab93b7939b1 SHA512 c587f5568ae6e8b9089dcb5e4753ad3ef5d807c3c30d329407e6be093e0a0ef26906c8dbc33a5aef20168371c10ded69c067e05acf42696eee45ade981ade321 DIST gcc-14.3.0-musl-patches-2.tar.xz 6888 BLAKE2B e2f9ce6d445b7ced8f78c18585887422ffdd32356368a456a7cfde5a1854515b32546c1d25a2ab8637ee62d04a2c0bda1afc8d53c44e5c80c12499918c3c18fc SHA512 0b59d228213024cd93d9ffbd4ae5947021db2dc71bd320cc0e4ccf523d39f72e61be25c1a49a343729fe7b9abf7181503de3e650b255d80ab6d969d0de317d19 DIST gcc-14.3.0-patches-4.tar.xz 28116 BLAKE2B 5804f10b40befad1cb9eab4e536377c08aed8c54d3de27f188ae2d52fa7c082a529ad9cb64f9574087afe74e64138c9fc918d653bd2c1d062b8b68d5c7ab640d SHA512 75ee4895efea0131107cf664a0f9fd10f38da0d0f93704e1920778e07f1a860d872a97e1e528f8e1ab754cca25948bb09c444b80cc04f5ae3a516336290bb99c DIST gcc-14.3.0-patches-5.tar.xz 53952 BLAKE2B 3e5f63d760caf3c18c0f683c00170bb71998b4f0e15552103359d5c0954144676f6ca60e3e367a94cbdff0ab9bec21f3e04e30c38aae8f7e79911da30e6aeb76 SHA512 1702b7f6ee791468d02fcb9d418d2dd48e10cd6dc6eab0cf455aaf848bb78d953b00690fd78cab1ddd5af02acc237072c99ee43f0e512ae3e2e5f922f40f0dfe diff --git a/sys-devel/gcc/gcc-14.4.1_p20260716.ebuild b/sys-devel/gcc/gcc-14.4.1_p20260716.ebuild new file mode 100644 index 0000000000000..4eb953d1246c2 --- /dev/null +++ b/sys-devel/gcc/gcc-14.4.1_p20260716.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="14.3.0" +PATCH_VER="6" +MUSL_VER="2" +MUSL_GCC_VER="14.3.0" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=releases/gcc-$(ver_cut 1) +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # m68k doesnt build (ICE, bug 932733) + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + eapply_user +} From 125f6ed199497262431bad13c4c88afbdb7e66a4 Mon Sep 17 00:00:00 2001 From: Sam James Date: Sun, 19 Jul 2026 10:10:56 +0100 Subject: [PATCH 03/11] sys-devel/gcc: add 15.3.1_p20260717 Signed-off-by: Sam James --- sys-devel/gcc/Manifest | 1 + sys-devel/gcc/gcc-15.3.1_p20260717.ebuild | 56 +++++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 sys-devel/gcc/gcc-15.3.1_p20260717.ebuild diff --git a/sys-devel/gcc/Manifest b/sys-devel/gcc/Manifest index c5025e730768a..7b976254568ad 100644 --- a/sys-devel/gcc/Manifest +++ b/sys-devel/gcc/Manifest @@ -62,6 +62,7 @@ DIST gcc-15-20260619.tar.xz 92462900 BLAKE2B 629e2958c836acb163e3d394c236e5d1323 DIST gcc-15-20260626.tar.xz 92467392 BLAKE2B 550f3c27ca29390f25930bd457457062bbcc9566371626a0bc80b0ed0d53db0d8d54abc70b53fc825e18e0175588b6b5cdc76607a13ab761aeab663a24a1c6a4 SHA512 b65845148f94a8667bf13bf9a2df471fd5e821dc11b78fc9020e541b63f891f18c782fdd2f933b7006621c76de58e60cb86077bea72bf02f660353ec5565210a DIST gcc-15-20260703.tar.xz 92460800 BLAKE2B 861549f8c17d79f9613e85ae455989e1ec96aa7d8da872e88254c70193fa2ab26918918ae8a290a5aa8986a55f1d91b3854fee308c5a8c86b960204ff750fbd5 SHA512 0a6889326713c1bac4486512f0d34ac6576293810ab5dd6678766185889e8f55c1af841dca5b3240e89c7aa3421be1fdccfcaf3f20ca58fbbfcf1bd25c958d9c DIST gcc-15-20260710.tar.xz 92477556 BLAKE2B 2517f39cc25e43ef36ed6de251ecdadf93a604f1de3f95f4fbf26eee8d52f13581e8065890a86a851227dac0709ea5250b4fd1830b64e8ca4110f13ba055c3a2 SHA512 45609630f6207327d7dc5a7e076b6105afb67a4bfa03ee17e392ae14fecb674cb530fe5068f8023f8a5569110fa4ca734d14d7490c11b28e838ba66be33053ae +DIST gcc-15-20260717.tar.xz 92482140 BLAKE2B ae84ad42a0f5a35a36c362340298c94c8e8a64c7695102bb3a29b394527033186bf3599323ae8b1a478e215806cee702bfa48740421c504eefbafacbe74d2086 SHA512 91aaf673637458ebf73df2b1d87c21c9cbf432211b98e6dff965ae0f073f2ea8be8921a9828711fb6c10b9b3ec2e20213d118a05c08f31b8192ab291b448375d DIST gcc-15.2.0-musl-patches-1.tar.xz 7168 BLAKE2B 6b7cfb123c3a691693240db815e6852a1e6c3820baa499368c463e0a0c1490c701053cfea10bf1d33f89dd2ba7bbddf63c4e6e0976590e3aaf1fee78b9282079 SHA512 ab80ffd69b9ead1fe06a9433faaa97ae53947d214999e77ea363fa6435de080d031a1aa6869e1dc088e800317952f2dc249a9e872113db56fb76f0a432240871 DIST gcc-15.2.0-patches-2.tar.xz 18708 BLAKE2B 09c54bd1b8436e12a3da1c3ee41017cd3e960268a5d4637252152b44a4cc93934d4dc93eff842d7dcee4d1688b7f2d98be48114ef5c864793242177f7549c933 SHA512 f11cfafe00f7d18e05a316bd1dc522477cc4118fdd65019cf85bca674ff0180951506fef84ce0b5b13190ccfe44c777a64afdc602a4580595005b43b79ae7411 DIST gcc-15.2.0-patches-4.tar.xz 19912 BLAKE2B 255d6435fe5b205d23d04eb885c55b421b1e6ffc30623fad5fe8a4cee5582f210e9851165b0976629d7e49288366a14635acdf1ad70f6d2fe288bdf88a9416a5 SHA512 f36c0a1e8abbb25cebfd93965950c072f33d8dbbc0be285e8e374a3602fe7e7cae3dfe44f24856d2231bcbfb40fe0c1de3b629e2f573d97f82212a7acf52ccc8 diff --git a/sys-devel/gcc/gcc-15.3.1_p20260717.ebuild b/sys-devel/gcc/gcc-15.3.1_p20260717.ebuild new file mode 100644 index 0000000000000..76e691e7f5afa --- /dev/null +++ b/sys-devel/gcc/gcc-15.3.1_p20260717.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="15.2.0" +PATCH_VER="8" +MUSL_VER="1" +MUSL_GCC_VER="15.2.0" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=master +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # Don't keyword live ebuilds + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch + eapply_user +} From 4cfd334d9079a7899797f39265e0dc70cc3ed749 Mon Sep 17 00:00:00 2001 From: Sam James Date: Sun, 19 Jul 2026 10:15:14 +0100 Subject: [PATCH 04/11] sys-devel/gcc: add 16.1.1_p20260718 Bug: https://bugs.gentoo.org/973410 Signed-off-by: Sam James --- sys-devel/gcc/Manifest | 1 + sys-devel/gcc/gcc-16.1.1_p20260718.ebuild | 56 +++++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 sys-devel/gcc/gcc-16.1.1_p20260718.ebuild diff --git a/sys-devel/gcc/Manifest b/sys-devel/gcc/Manifest index 7b976254568ad..5d8789e41cce3 100644 --- a/sys-devel/gcc/Manifest +++ b/sys-devel/gcc/Manifest @@ -83,6 +83,7 @@ DIST gcc-16-20260620.tar.xz 98961572 BLAKE2B 304dd54ac6e89cb6bf45a24b2f94b95d94c DIST gcc-16-20260627.tar.xz 98980236 BLAKE2B 48c1a93aa5bc19b8253a434e5d618cc90c8d43792ad1c5389b8594fa8510a1d328f82d94d3ebe75d18c4affeee39747c99ab5793a1cfb94b0c6c5f5ebece3e52 SHA512 2ce38e78a78fd9cd5d136c1013cf6b91d06a5572521145824442abe3ff0a738f46f9944a520f67fc9b6d7e5ab9c6a5c6c0660a9861c8fd8386b8f65ac1fa994c DIST gcc-16-20260704.tar.xz 98986144 BLAKE2B b076e3ead68d27af90c9154c3b0e56fbb6fa07cf7d6d951ae56bec32071487a156c7cbf26bf56a0c29cd3292dbda51b338bcd58f80438d39e08f252effe9afac SHA512 c3501b4a21c4de8dd6cb28b03cb42e9f6d167491ef39f8957d8995e14c4608fa7de9fe3c4ed9fbc0ad169fb24e2d40fdec1e6689c2abf0bc1e57126e1025ec26 DIST gcc-16-20260711.tar.xz 98998588 BLAKE2B 43a6fc591a66a240ec31f301eb5f38bf851e53750a720360f413fdb626ba74c56d5f9c949341d5320b6524003cfae6a712f063664a61da55f1bd968653a56fad SHA512 20b287bf06e263675c8f9bea7ae65432d375ab2005ebcdd7373d60b22ba87b3dfb7808f19167e251ad2c0fbf4d9d21ee1c8cb3736b3b349cbb2f98a25bf921b0 +DIST gcc-16-20260718.tar.xz 99011700 BLAKE2B 727ad34ae3f964ad86edd072c159cbb5201efd0cb5996cd515895e1f024a44572090e6595a1082509244b5a7fc4faf3bd75eee07883246905fbb66b9d6effa02 SHA512 b621bd5a602468576cbd563fec4a1a2f1b71e89a9f248403d3dd92d8d1c3d7e6439e93eed912d78f71b9ca0e3acff7f786ecb62d9560ba837dcaaddc6b38d946 DIST gcc-16.1.0-musl-patches-1.tar.xz 3036 BLAKE2B 348d0233c92e6b269011342a170989bb6375ff267b6ecfc00aafab2f793b925f1cccd654f438a4f88168a7999cab965aadfb6dfc9957a9b1a5bca62c326e0b84 SHA512 dc9c2d4a6e9088ad245039a962333ecba8476288844c686e7df9c867c8018451fccbd645a5690d554ee39809e6467285b3c619553edfed379c5f84c003bcb7e5 DIST gcc-16.1.0-patches-1.tar.xz 25128 BLAKE2B 487f8e1f204b8218ae54ef093fd3b99dd94a24e0fdc22ac37182b28e382e5601edc85e9af5c8374e76a576c8e8280cb84603e6f60bfb645a2adff5ee8e2e0070 SHA512 f5b4aefa101cef70c6bd78c689e90b0a30db14718ae2ff01827fe13af793f812616f16cc705fa333676f31025f3e840e243ef52851d32278b86d8b515589a2d9 DIST gcc-16.1.0-patches-2.tar.xz 26584 BLAKE2B 3597414aa1bedace5444834778bb666fc3372f3703975d5bc4656a792dbe498a76be582254bb3400f157cfcce2925c117d19595380fa2ffb6dab1e6f0d36ad57 SHA512 480a457b8944df5dd189c912d76457d650c348bce161465fd6031dd7c2803f8f9b26ef31b4ae8a8770c88eaa9c59a42c06ee1be3e1c8ec718974dda8b38a84ad diff --git a/sys-devel/gcc/gcc-16.1.1_p20260718.ebuild b/sys-devel/gcc/gcc-16.1.1_p20260718.ebuild new file mode 100644 index 0000000000000..3c65dcacdd623 --- /dev/null +++ b/sys-devel/gcc/gcc-16.1.1_p20260718.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="16.1.0" +PATCH_VER="3" +MUSL_VER="1" +MUSL_GCC_VER="16.1.0" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=master +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # Don't keyword live ebuilds + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch + eapply_user +} From b4aa7dbb3e098c58c77fabb1b1b5372603538571 Mon Sep 17 00:00:00 2001 From: Alfred Wingate Date: Sun, 19 Jul 2026 11:17:06 +0300 Subject: [PATCH 05/11] kde-frameworks/kimageformats: backport fix for occasional HEIF plug-in crashes Closes: https://bugs.gentoo.org/979518 Signed-off-by: Alfred Wingate Signed-off-by: Sam James --- ....0-fix-occasional-HEIF-plug-in-crash.patch | 33 +++++++++++++++++++ ....ebuild => kimageformats-6.28.0-r1.ebuild} | 4 +++ 2 files changed, 37 insertions(+) create mode 100644 kde-frameworks/kimageformats/files/kimageformats-6.28.0-fix-occasional-HEIF-plug-in-crash.patch rename kde-frameworks/kimageformats/{kimageformats-6.28.0.ebuild => kimageformats-6.28.0-r1.ebuild} (92%) diff --git a/kde-frameworks/kimageformats/files/kimageformats-6.28.0-fix-occasional-HEIF-plug-in-crash.patch b/kde-frameworks/kimageformats/files/kimageformats-6.28.0-fix-occasional-HEIF-plug-in-crash.patch new file mode 100644 index 0000000000000..debf2134403f9 --- /dev/null +++ b/kde-frameworks/kimageformats/files/kimageformats-6.28.0-fix-occasional-HEIF-plug-in-crash.patch @@ -0,0 +1,33 @@ +https://bugs.gentoo.org/979518 +https://bugs.kde.org/523105 +https://invent.kde.org/frameworks/kimageformats/-/merge_requests/525 +https://invent.kde.org/frameworks/kimageformats/-/commit/ad0fb9dde4ffb1977a3ea800d90a26665de687b8 + +From ad0fb9dde4ffb1977a3ea800d90a26665de687b8 Mon Sep 17 00:00:00 2001 +From: Kyle Alexander Buan +Date: Thu, 16 Jul 2026 15:33:49 +0800 +Subject: [PATCH] HEIF: keep reader callback table alive + +libheif retains the heif_reader pointer after +heif_context_read_from_reader returns. The callback table was scoped +to the non-sequential branch and could be destroyed before +tiled image decoding used it from worker threads. + +Give the callback table static storage duration. + +BUG: 523105 +--- a/src/imageformats/heif.cpp ++++ b/src/imageformats/heif.cpp +@@ -845,7 +845,8 @@ bool HEIFHandler::ensureDecoder() + buffer = deviceRead(dev, kMaxQVectorSize); + err = heif_context_read_from_memory(ctx, static_cast(buffer.constData()), buffer.size(), nullptr); + } else { +- heif_reader reader = create_heif_reader_for_qiodevice(); ++ // Must not be destroyed until decoding ends ++ static const heif_reader reader = create_heif_reader_for_qiodevice(); + err = heif_context_read_from_reader(ctx, &reader, dev, nullptr); + } + if (err.code) { +-- +GitLab + diff --git a/kde-frameworks/kimageformats/kimageformats-6.28.0.ebuild b/kde-frameworks/kimageformats/kimageformats-6.28.0-r1.ebuild similarity index 92% rename from kde-frameworks/kimageformats/kimageformats-6.28.0.ebuild rename to kde-frameworks/kimageformats/kimageformats-6.28.0-r1.ebuild index 6774356af6047..46362297f2975 100644 --- a/kde-frameworks/kimageformats/kimageformats-6.28.0.ebuild +++ b/kde-frameworks/kimageformats/kimageformats-6.28.0-r1.ebuild @@ -33,6 +33,10 @@ DEPEND="${RDEPEND} DOCS=( src/imageformats/AUTHORS ) +PATCHES=( + "${FILESDIR}"/kimageformats-6.28.0-fix-occasional-HEIF-plug-in-crash.patch # bug #979518 +) + src_configure() { local mycmakeargs=( -DKIMAGEFORMATS_WITH_KNOWN_CRASHES_JXR=OFF # TODO: check if ready upstream From 87fb5ab7cc25c65d260837093f83900967a890b1 Mon Sep 17 00:00:00 2001 From: Alfred Wingate Date: Sun, 19 Jul 2026 11:44:23 +0300 Subject: [PATCH 06/11] media-video/handbrake: update vendored ffmpeg Upstream commit: e7742b71afd41a7a9b68b8d79d6e30bacc270b72 Signed-off-by: Alfred Wingate Signed-off-by: Sam James --- media-video/handbrake/Manifest | 2 +- media-video/handbrake/handbrake-9999.ebuild | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/media-video/handbrake/Manifest b/media-video/handbrake/Manifest index e84525f5f1ad8..8fd085b974cf0 100644 --- a/media-video/handbrake/Manifest +++ b/media-video/handbrake/Manifest @@ -7,7 +7,7 @@ DIST handbrake-1.11.2.tar.bz2.sig 566 BLAKE2B 0963ca4f34217d6fe1f04d2ff205270138 DIST handbrake-ffmpeg-7.1.1.tar.bz2 13278839 BLAKE2B dbedc190d1b752f07e0dc30452fe37a02300da75c3269956f09a63ada6f510838b3e6fb12f9882dbac88a82750ef42a16ed34b2214dfbdc56455b17a2cdc63f8 SHA512 db2682bd3f7dbfe4a33a5a7f0803010258d14f92e98ff2a5fdd17197422bc5cbfd992a63b93c9c5fb2b2420371a82e34a16e155f135a2aaf03764ed71adbc16b DIST handbrake-ffmpeg-8.0.1.tar.bz2 13694841 BLAKE2B 943aae7bbdad657b563d708c2f1f05cd7442538c0cde5673850f3894555900464a0bbd1393fe064086bc980a67feb53c58dcc3fce770a56d5d5cde635a4bf090 SHA512 5a07bb78e9a4d98901005040e4e5f3bfa421a49524f43ba19517d0b04a017803db9427c0216d50be6328737e18a91866b1a660a1165d99c6af38aa374e98ecb2 DIST handbrake-ffmpeg-8.0.2.tar.bz2 13716142 BLAKE2B 2c64388067d814686a31c6ab33c1e38859924e5d3852c543e21fa47ca2533605b01615594531167c9e82b49e6ceb02e7f30e8c977f45c46bb9a3e059b211dc4d SHA512 23ebb5a3820771aeaa48f03f160476a80dcfe322f95dc2ce9fe0b03618915acf5fc6896d065f9061b2d80665e74206382752782bfa9da10cbf91380c3f7e5c97 -DIST handbrake-ffmpeg-8.1.1.tar.bz2 14087042 BLAKE2B 38001316febde28c851d086e072012b8e7b5819c0f1e32f37c7aaebd51f9d4b1270cbac600fe9c6289c1751bae56112b3d10b05417f213ac5d50803271fe4448 SHA512 8b91d11ee5ffd1738a363820e904fd3cf632a50dc5e4a6393128c3f3b43bd920737552bac56ec17d6bbbc4beba9fb5a5f19d603fa837489bb55a417a7fc1d69f +DIST handbrake-ffmpeg-8.1.2.tar.bz2 14093398 BLAKE2B cd94187be3320344df02a7be63dca102653994edb090c13fcaad5698e5877be76c7b0c9c65281a396fb84ba2d7daa8e7018b54f63574f96cbec6099da455f619 SHA512 2d0ef145759eb3d39ab02005a35390ab6cabc61715845de152072e003f7e586bc563bdd3313c085110f6688514a325292b77bad8546ca28a5a8e79c4a308e759 DIST handbrake-x265-snapshot-20250729-13276.tar.gz 1738652 BLAKE2B 59cba73b0d46cdaa40845e604e6b28ea428291d08b97ce144d13a072f164e18b0de20b2d4a62a92404ae32609a867d61e7b2d64099cac2124cc5c0640aad744a SHA512 50648176cf1e20e384be4145a525c193f515b73d3ff96ae2042b393ebb3ee3a8cab031e1c5314bdd67f53a6a00010226a5709cdb720dec47142a93c6828469af DIST handbrake-x265-snapshot-20260216-13309.tar.gz 1806557 BLAKE2B e6e50adc0d615e2870f91d948a65a3b1a4d8a83a452310e24ffbb5366fa7f0d806230aafd3c3265e35d25772d7726815e7639e23ec1cf668d85e95433c4379ae SHA512 33d2400059694f689cf6a607291df43eef99f1583e499f9ce6dd82db778ff4d8f53217fdc439f87ec50e4e400c9eaae22d45a5d60ee0672699e655859a3772a4 DIST handbrake-x265_4.2.tar.gz 1833442 BLAKE2B 8918d9c460b067e0600bbf2e894c79e718677dd1bf21b9f4fe502024f70f7724a914075fdd8ae90535b99a124ec0ffaa7aa2320365fed1b4a68ca1f220a7b890 SHA512 0c4ded0388b79ecdfe28b7f48da095ecb12a7e1fc7cd92f8d35a850087de562081582de69846a7d64e03889d6b8da620b5fa084dac3ab8734a05552f68bf8623 diff --git a/media-video/handbrake/handbrake-9999.ebuild b/media-video/handbrake/handbrake-9999.ebuild index c7d58b8606806..1b049ef970e6d 100644 --- a/media-video/handbrake/handbrake-9999.ebuild +++ b/media-video/handbrake/handbrake-9999.ebuild @@ -33,7 +33,7 @@ declare -A BUNDLED=( # Heavily patched in an incompatible way. # Issues related to using system ffmpeg historically. # See bug #829595 and #922828 - [ffmpeg]="https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs2/ffmpeg-8.1.1.tar.bz2;" + [ffmpeg]="https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs2/ffmpeg-8.1.2.tar.bz2;" # Patched in an incompatible way [x265]="https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs2/x265_4.2.tar.gz;x265" [x265_8bit]="https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs2/x265_4.2.tar.gz;x265" From bd645e35ef9110f49b7901e785da04027554ec64 Mon Sep 17 00:00:00 2001 From: Alfred Wingate Date: Sun, 19 Jul 2026 11:58:45 +0300 Subject: [PATCH 07/11] media-video/handbrake: fix build against >=nv-codec-headers-13.1 Bug: https://bugs.gentoo.org/979520 Signed-off-by: Alfred Wingate Signed-off-by: Sam James --- .../A99-fix-nv-codec-headers-13.1.patch | 54 +++++++++++++++++++ .../handbrake/handbrake-1.11.2-r1.ebuild | 3 ++ 2 files changed, 57 insertions(+) create mode 100644 media-video/handbrake/files/ffmpeg-8.0.2/A99-fix-nv-codec-headers-13.1.patch diff --git a/media-video/handbrake/files/ffmpeg-8.0.2/A99-fix-nv-codec-headers-13.1.patch b/media-video/handbrake/files/ffmpeg-8.0.2/A99-fix-nv-codec-headers-13.1.patch new file mode 100644 index 0000000000000..4a8954fb04dfb --- /dev/null +++ b/media-video/handbrake/files/ffmpeg-8.0.2/A99-fix-nv-codec-headers-13.1.patch @@ -0,0 +1,54 @@ +https://bugs.gentoo.org/979520 +https://github.com/FFmpeg/FFmpeg/commit/0a7c5e507b4448f02ca914c50654a3bc979d02dd + +From 0a7c5e507b4448f02ca914c50654a3bc979d02dd Mon Sep 17 00:00:00 2001 +From: Diego de Souza +Date: Thu, 5 Mar 2026 17:06:12 +0100 +Subject: [PATCH] avcodec/nvenc: fix compatibility with Video Codec SDK 13.1 + +NV_ENC_CLOCK_TIMESTAMP_SET was changed in SDK 13.1: countingType was +replaced by countingTypeLSB and countingTypeMSB. + +Signed-off-by: Diego de Souza +Signed-off-by: Timo Rothenpieler +--- a/libavcodec/nvenc.c ++++ b/libavcodec/nvenc.c +@@ -263,8 +263,10 @@ static void nvenc_map_preset(NvencContext *ctx) + + static void nvenc_print_driver_requirement(AVCodecContext *avctx, int level) + { +-#if NVENCAPI_CHECK_VERSION(13, 1) ++#if NVENCAPI_CHECK_VERSION(13, 2) + const char *minver = "(unknown)"; ++#elif NVENCAPI_CHECK_VERSION(13, 1) ++ const char *minver = "610.00"; + #elif NVENCAPI_CHECK_VERSION(13, 0) + const char *minver = "570.0"; + #elif NVENCAPI_CHECK_VERSION(12, 2) +@@ -2540,7 +2542,12 @@ static void nvenc_fill_time_code(AVCodecContext *avctx, const AVFrame *frame, NV + unsigned hh, mm, ss, ff, drop; + ff_timecode_set_smpte(&drop, &hh, &mm, &ss, &ff, avctx->framerate, tc[i + 1], 0, 0); + ++#ifdef NVENC_NEW_COUNTING_TYPE ++ time_code->clockTimestamp[i].countingTypeLSB = 0; ++ time_code->clockTimestamp[i].countingTypeMSB = 0; ++#else + time_code->clockTimestamp[i].countingType = 0; ++#endif + time_code->clockTimestamp[i].discontinuityFlag = 0; + time_code->clockTimestamp[i].cntDroppedFrames = drop; + time_code->clockTimestamp[i].nFrames = ff; +--- a/libavcodec/nvenc.h ++++ b/libavcodec/nvenc.h +@@ -111,6 +111,11 @@ typedef void ID3D11Device; + #define NVENC_HAVE_MVHEVC + #endif + ++// SDK 13.1 compile time feature checks ++#if NVENCAPI_CHECK_VERSION(13, 1) ++#define NVENC_NEW_COUNTING_TYPE ++#endif ++ + typedef struct NvencSurface + { + NV_ENC_INPUT_PTR input_surface; diff --git a/media-video/handbrake/handbrake-1.11.2-r1.ebuild b/media-video/handbrake/handbrake-1.11.2-r1.ebuild index efc530c7b8934..44883f53f1de6 100644 --- a/media-video/handbrake/handbrake-1.11.2-r1.ebuild +++ b/media-video/handbrake/handbrake-1.11.2-r1.ebuild @@ -149,6 +149,9 @@ src_unpack() { src_prepare() { default + # bug #979520 + cp "${FILESDIR}"/ffmpeg-8.0.2/A99-fix-nv-codec-headers-13.1.patch contrib/ffmpeg/ || die + mkdir download || die for name in "${!BUNDLED[@]}"; do IFS=$';' read -r uri use <<< ${BUNDLED[${name}]} From 9d433aed3a63c8257eb2594572469d8d69e24e97 Mon Sep 17 00:00:00 2001 From: Alfred Wingate Date: Sun, 19 Jul 2026 11:59:38 +0300 Subject: [PATCH 08/11] media-video/handbrake: drop 1.10.2 Signed-off-by: Alfred Wingate Signed-off-by: Sam James --- media-video/handbrake/Manifest | 4 - media-video/handbrake/handbrake-1.10.2.ebuild | 225 ------------------ 2 files changed, 229 deletions(-) delete mode 100644 media-video/handbrake/handbrake-1.10.2.ebuild diff --git a/media-video/handbrake/Manifest b/media-video/handbrake/Manifest index 8fd085b974cf0..eb823b6e15b43 100644 --- a/media-video/handbrake/Manifest +++ b/media-video/handbrake/Manifest @@ -1,13 +1,9 @@ -DIST handbrake-1.10.2.tar.bz2 9481895 BLAKE2B a7e2ec5cf5707d420eb01e561c2d57d5d93d21d1456483c84beb222a330e3ee96adefcd515f3512bac50d5417c3db35cfbd0f7cf2eba83e912f9470b8cd15768 SHA512 a1166ffb1597179e1ca58519cb6a7865ffbdedd5f1feda789cdb17cee94a9bb62b120926462bbc34b93c7ea53825099c45f70e809de7c456c88b60fce157b645 -DIST handbrake-1.10.2.tar.bz2.sig 566 BLAKE2B cde4ea4223ab9b346572637a27f7e6dfe07b97e56254355f8ab961e928c33630ac42c160d0d196b9e7ff897cf10089086a101b3ab4d93d59c79f4349cb6629d0 SHA512 9a33bc058a626c4bf1655abaaeae6641f7a71dd3db88ccb307e386623985791df7241e12ae6552f98a33b7a607b949cbe6fedaa9a36e5f16cd55fb44360455eb DIST handbrake-1.11.1.tar.bz2 11759752 BLAKE2B 303a8ea49342c3afe671adf057fb6cd4c31efef8cf4f075cc26d9a63559e099ac300c993cc5b385240325b04893a730b5618d14892f3a491353d14b8e6398ebe SHA512 c65568e1b37ede0c83e1fcef7e2e2ac607afe3eb92dbc9f897c18fa02b631172636eaa002227bdb0131e378421521044708d6b601280c6f4d92e674935138da3 DIST handbrake-1.11.1.tar.bz2.sig 566 BLAKE2B ec29064dcc84c02cef247756ac1f4cf92802d1422241b71d5e32a64980c57b97e852d77bbaf830a29aaad04095128c69694371fd782742b6ebbf9c458e0e73b7 SHA512 fe8909189766d74162a4827a86a4e058962830b55a7cc472b422435bb412f81b184c539cee040687727486294ec64a550cc4aae32c221eaa3aff8fc29cebed83 DIST handbrake-1.11.2.tar.bz2 11761530 BLAKE2B 044d7d5c278a52dc3a1675eade9c5cf2722e630a9dd6c33254277d7746d7f0a55970b255dab72fcbf4c1e59f03faff4d98325ccdf8d17fdc3a4aa281b219c188 SHA512 cff45f284b4bda479d0ed5a84859807524fefce3345d8dc1c80ffe0c271559e315f4e6c96b9df07147f02f73d8b309f969d3371f0613221983761f73f26db419 DIST handbrake-1.11.2.tar.bz2.sig 566 BLAKE2B 0963ca4f34217d6fe1f04d2ff20527013845ded17e7d3beaf5196c5c747e6989d3c20e5b3e066976119682777129c558e2c39f3187d83db3d63f640f90b9ff33 SHA512 986c8a85dbe77a44d1871507e79378677bec9e91180129e78b21b14ea028a26f8d93d2e3df957c152c6541488f29748e728d2abf5f610cb83f67494d96c0e399 -DIST handbrake-ffmpeg-7.1.1.tar.bz2 13278839 BLAKE2B dbedc190d1b752f07e0dc30452fe37a02300da75c3269956f09a63ada6f510838b3e6fb12f9882dbac88a82750ef42a16ed34b2214dfbdc56455b17a2cdc63f8 SHA512 db2682bd3f7dbfe4a33a5a7f0803010258d14f92e98ff2a5fdd17197422bc5cbfd992a63b93c9c5fb2b2420371a82e34a16e155f135a2aaf03764ed71adbc16b DIST handbrake-ffmpeg-8.0.1.tar.bz2 13694841 BLAKE2B 943aae7bbdad657b563d708c2f1f05cd7442538c0cde5673850f3894555900464a0bbd1393fe064086bc980a67feb53c58dcc3fce770a56d5d5cde635a4bf090 SHA512 5a07bb78e9a4d98901005040e4e5f3bfa421a49524f43ba19517d0b04a017803db9427c0216d50be6328737e18a91866b1a660a1165d99c6af38aa374e98ecb2 DIST handbrake-ffmpeg-8.0.2.tar.bz2 13716142 BLAKE2B 2c64388067d814686a31c6ab33c1e38859924e5d3852c543e21fa47ca2533605b01615594531167c9e82b49e6ceb02e7f30e8c977f45c46bb9a3e059b211dc4d SHA512 23ebb5a3820771aeaa48f03f160476a80dcfe322f95dc2ce9fe0b03618915acf5fc6896d065f9061b2d80665e74206382752782bfa9da10cbf91380c3f7e5c97 DIST handbrake-ffmpeg-8.1.2.tar.bz2 14093398 BLAKE2B cd94187be3320344df02a7be63dca102653994edb090c13fcaad5698e5877be76c7b0c9c65281a396fb84ba2d7daa8e7018b54f63574f96cbec6099da455f619 SHA512 2d0ef145759eb3d39ab02005a35390ab6cabc61715845de152072e003f7e586bc563bdd3313c085110f6688514a325292b77bad8546ca28a5a8e79c4a308e759 -DIST handbrake-x265-snapshot-20250729-13276.tar.gz 1738652 BLAKE2B 59cba73b0d46cdaa40845e604e6b28ea428291d08b97ce144d13a072f164e18b0de20b2d4a62a92404ae32609a867d61e7b2d64099cac2124cc5c0640aad744a SHA512 50648176cf1e20e384be4145a525c193f515b73d3ff96ae2042b393ebb3ee3a8cab031e1c5314bdd67f53a6a00010226a5709cdb720dec47142a93c6828469af DIST handbrake-x265-snapshot-20260216-13309.tar.gz 1806557 BLAKE2B e6e50adc0d615e2870f91d948a65a3b1a4d8a83a452310e24ffbb5366fa7f0d806230aafd3c3265e35d25772d7726815e7639e23ec1cf668d85e95433c4379ae SHA512 33d2400059694f689cf6a607291df43eef99f1583e499f9ce6dd82db778ff4d8f53217fdc439f87ec50e4e400c9eaae22d45a5d60ee0672699e655859a3772a4 DIST handbrake-x265_4.2.tar.gz 1833442 BLAKE2B 8918d9c460b067e0600bbf2e894c79e718677dd1bf21b9f4fe502024f70f7724a914075fdd8ae90535b99a124ec0ffaa7aa2320365fed1b4a68ca1f220a7b890 SHA512 0c4ded0388b79ecdfe28b7f48da095ecb12a7e1fc7cd92f8d35a850087de562081582de69846a7d64e03889d6b8da620b5fa084dac3ab8734a05552f68bf8623 diff --git a/media-video/handbrake/handbrake-1.10.2.ebuild b/media-video/handbrake/handbrake-1.10.2.ebuild deleted file mode 100644 index 3808ff3696cf1..0000000000000 --- a/media-video/handbrake/handbrake-1.10.2.ebuild +++ /dev/null @@ -1,225 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{11..14} ) - -inherit edo flag-o-matic multiprocessing python-any-r1 toolchain-funcs xdg - -DESCRIPTION="Open-source, GPL-licensed, multiplatform, multithreaded video transcoder" -HOMEPAGE="https://handbrake.fr/ https://github.com/HandBrake/HandBrake" - -if [[ ${PV} == *9999* ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/HandBrake/HandBrake.git" -else - inherit verify-sig - MY_P="HandBrake-${PV}" - SRC_URI=" - https://github.com/HandBrake/HandBrake/releases/download/${PV}/${MY_P}-source.tar.bz2 - -> ${P}.tar.bz2 - verify-sig? ( - https://github.com/HandBrake/HandBrake/releases/download/${PV}/${MY_P}-source.tar.bz2.sig - -> ${P}.tar.bz2.sig - ) - " - S="${WORKDIR}/${MY_P}" - KEYWORDS="amd64 ~arm64 ~x86" -fi - -# contrib//module.defs -declare -A BUNDLED=( - # Heavily patched in an incompatible way. - # Issues related to using system ffmpeg historically. - # See bug #829595 and #922828 - [ffmpeg]="https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs2/ffmpeg-7.1.1.tar.bz2;" - # Patched in an incompatible way - [x265]="https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs2/x265-snapshot-20250729-13276.tar.gz;x265" - [x265_8bit]="https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs2/x265-snapshot-20250729-13276.tar.gz;x265" - [x265_10bit]="https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs2/x265-snapshot-20250729-13276.tar.gz;x265" - [x265_12bit]="https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs2/x265-snapshot-20250729-13276.tar.gz;x265" -) - -bundle_src_uri() { - local name - for name in "${!BUNDLED[@]}"; do - local OLDIFS splitted tarball uri use - OLDIFS=$IFS; IFS=';'; splitted=( ${BUNDLED[${name}]} ); IFS=$OLDIFS - uri=${splitted[0]} - use=${splitted[1]} - - tarball=${uri##*/} - if [[ -n ${use} ]]; then - SRC_URI+=" ${use}? ( ${uri} -> handbrake-${tarball} )" - else - SRC_URI+=" ${uri} -> handbrake-${tarball}" - fi - done -} - -bundle_src_uri - -LICENSE="GPL-2" -SLOT="0" -IUSE="amf +fdk gui libdovi numa nvenc qsv x265" - -REQUIRED_USE="numa? ( x265 )" - -# >=media-libs/libvpl-1.13.0: bug #957811 (check libhb/qsvcommon.h for new platform codenames) -COMMON_DEPEND=" - app-arch/bzip2 - >=app-arch/xz-utils-5.2.6 - dev-libs/jansson:= - >=media-libs/dav1d-1.0.0:= - >=media-libs/libjpeg-turbo-2.1.4:= - >=media-libs/libass-0.16.0:= - >=media-libs/libbluray-1.3.4:= - media-libs/libdvdnav - >=media-libs/libdvdread-6.1.3:= - media-libs/libtheora:= - media-libs/libvorbis - >=media-libs/libvpx-1.12.0:= - media-libs/opus - >=media-libs/speex-1.2.1 - =media-libs/svt-av1-3.0.0:= - >=media-libs/x264-0.0.20220222:= - >=media-libs/zimg-3.0.4 - media-sound/lame - virtual/zlib:= - fdk? ( media-libs/fdk-aac:= ) - libdovi? ( media-libs/libdovi:= ) - gui? ( - >=gui-libs/gtk-4.6:4[gstreamer] - dev-libs/glib:2 - >=dev-libs/libxml2-2.10.3:= - x11-libs/gdk-pixbuf:2 - x11-libs/pango - ) - numa? ( sys-process/numactl ) - nvenc? ( media-libs/nv-codec-headers ) - qsv? ( - media-libs/libva:= - >=media-libs/libvpl-1.13.0:= - ) -" -RDEPEND=" - ${COMMON_DEPEND} - amf? ( media-video/amdgpu-pro-amf ) -" -DEPEND=" - ${COMMON_DEPEND} - amf? ( media-libs/amf-headers ) -" -# cmake needed for custom script: bug #852701 -BDEPEND=" - ${PYTHON_DEPS} - dev-build/cmake - dev-lang/nasm - gui? ( - dev-build/meson - sys-devel/gettext - ) -" -if [[ ${PV} != 9999 ]]; then - BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-handbrake )" - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/handbrake.asc -fi - -PATCHES=( - "${FILESDIR}"/handbrake-1.9.0-link-libdovi-properly.patch - "${FILESDIR}"/handbrake-1.9.0-include-vpl-properly.patch - "${FILESDIR}"/handbrake-1.9.2-set-ffmpeg-toolchain-explicitly.patch - "${FILESDIR}"/handbrake-1.9.2-allow-overriding-tools-via-env.patch -) - -src_unpack() { - if [[ ${PV} == 9999 ]]; then - git-r3_src_unpack - else - use verify-sig && verify-sig_verify_detached "${DISTDIR}"/${P}.tar.bz2{,.sig} - unpack ${P}.tar.bz2 - fi -} - -src_prepare() { - default - - mkdir download || die - for name in "${!BUNDLED[@]}"; do - IFS=$';' read -r uri use <<< ${BUNDLED[${name}]} - local tarball="${uri##*/}" - if [[ -n ${use} ]]; then - use ${use} || continue - fi - cp "${DISTDIR}/handbrake-${tarball}" download/${tarball} || die - done - - # Get rid of leftover bundled library build definitions - sed -i -E \ - -e "/MODULES \+= contrib\// { /($(IFS=$'|'; echo "${!BUNDLED[*]}"))$/! d }" \ - "${S}"/make/include/main.defs || die - - # noop fetching - sed -i -e '/DF..*.exe/ { s/= .*/= true/ }' make/include/tool.defs || die - - # Use whichever python is set by portage - sed -i -e "s/for p in .*/for p in ${EPYTHON}/" configure || die -} - -src_configure() { - tc-export CC CXX AR RANLIB NM - - # noop strip - local -x STRIP="true" - - # ODR violations, lto-type-mismatches - # bug #878899 - filter-lto - - local myconfargs=( - --force - --verbose - --disable-df-fetch - --disable-df-verify - --launch-jobs=$(get_makeopts_jobs) - --prefix="${EPREFIX}/usr" - --disable-flatpak - --no-harden #bug #890279 - $(use_enable amf vce) - $(use_enable fdk fdk-aac) - $(use_enable gui gtk) - $(use_enable libdovi) - $(use_enable numa) - $(use_enable nvenc) - $(use_enable x265) - $(use_enable qsv) - ) - - edo ./configure ${myconfargs[@]} -} - -src_compile() { - emake -C build -} - -src_install() { - emake -C build DESTDIR="${D}" install - dodoc README.markdown AUTHORS.markdown NEWS.markdown THANKS.markdown -} - -pkg_postinst() { - einfo "Gentoo builds of HandBrake are NOT SUPPORTED by upstream as they" - einfo "do not use the bundled (and often patched) upstream libraries." - einfo "" - einfo "Please do not raise bugs with upstream because of these ebuilds," - einfo "report bugs to Gentoo's bugzilla or Multimedia forum instead." - - einfo "For the CLI version of HandBrake, you can use \`HandBrakeCLI\`." - if use gui ; then - einfo "For the GUI version of HandBrake, you can run \`ghb\`." - fi - - xdg_pkg_postinst -} From 0f7982acb227740a52d6e91aa4705dd13c4b4070 Mon Sep 17 00:00:00 2001 From: Alfred Wingate Date: Sun, 19 Jul 2026 12:00:06 +0300 Subject: [PATCH 09/11] media-video/handbrake: sort use flag descriptions Signed-off-by: Alfred Wingate Signed-off-by: Sam James --- media-video/handbrake/metadata.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/media-video/handbrake/metadata.xml b/media-video/handbrake/metadata.xml index 0d2b4e3f76cce..70400304b2c89 100644 --- a/media-video/handbrake/metadata.xml +++ b/media-video/handbrake/metadata.xml @@ -13,8 +13,8 @@ Support for encoding h265 using AMD VCE encoder Support for encoding AAC using media-libs/fdk-aac Support for Dolby Vision using media-libs/libdovi - Support for NVDEC (NVCUVID) hardware accelerated video decoding Support for x265's NUMA capabilities + Support for NVDEC (NVCUVID) hardware accelerated video decoding Support for encoding h264 using Intel Quick Sync Video Support for encoding h265 using media-libs/x265 From 4ab72cee5f0061f7d844c9ed3215c1d2db160cd9 Mon Sep 17 00:00:00 2001 From: Alfred Wingate Date: Sun, 19 Jul 2026 12:11:34 +0300 Subject: [PATCH 10/11] media-video/handbrake: hookup new vaapi feature Upstream commit: 2aa59a5a2926c838f6856b64af735b9e978d2d9b Signed-off-by: Alfred Wingate Signed-off-by: Sam James --- media-video/handbrake/handbrake-9999.ebuild | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/media-video/handbrake/handbrake-9999.ebuild b/media-video/handbrake/handbrake-9999.ebuild index 1b049ef970e6d..720a1cafb5817 100644 --- a/media-video/handbrake/handbrake-9999.ebuild +++ b/media-video/handbrake/handbrake-9999.ebuild @@ -62,7 +62,7 @@ bundle_src_uri LICENSE="GPL-2" SLOT="0" -IUSE="amf +fdk gui libdovi numa nvdec nvenc qsv x265" +IUSE="amf +fdk gui libdovi numa nvdec nvenc qsv vaapi x265" REQUIRED_USE=" numa? ( x265 ) @@ -105,6 +105,7 @@ COMMON_DEPEND=" media-libs/libva:= >=media-libs/libvpl-1.13.0:= ) + vaapi? ( media-libs/libva:=[X] ) " RDEPEND=" ${COMMON_DEPEND} @@ -200,8 +201,9 @@ src_configure() { $(use_enable numa) $(use_enable nvdec) $(use_enable nvenc) - $(use_enable x265) $(use_enable qsv) + $(use_enable vaapi) + $(use_enable x265) ) edo ./configure ${myconfargs[@]} From c49e0f17ce4c0653337b4149aa3b73a8b88a262f Mon Sep 17 00:00:00 2001 From: Joonas Niilola Date: Sun, 19 Jul 2026 12:17:11 +0300 Subject: [PATCH 11/11] dev-libs/nss: add 3.126 - rebase bmo#2027768 patch to fix gcm build error on big endian. Signed-off-by: Joonas Niilola --- dev-libs/nss/Manifest | 1 + ...o-missing-gcm-stubs-if-on-big-endian.patch | 91 ++++ dev-libs/nss/nss-3.126.ebuild | 438 ++++++++++++++++++ 3 files changed, 530 insertions(+) create mode 100644 dev-libs/nss/files/nss-3.126-bmo-2027768-fix-build-failure-due-to-missing-gcm-stubs-if-on-big-endian.patch create mode 100644 dev-libs/nss/nss-3.126.ebuild diff --git a/dev-libs/nss/Manifest b/dev-libs/nss/Manifest index e94de5d48c3fa..1c5e17dbfc35f 100644 --- a/dev-libs/nss/Manifest +++ b/dev-libs/nss/Manifest @@ -1,3 +1,4 @@ DIST nss-3.104-cacert-class1-class3.patch 22038 BLAKE2B 66e2dd47230d6aa58a767e35c9c069fa29f3111d470345e0f69486d1eead3cd1741939ac394f6b9b637e79a10d658cfb1a9da4387953b8968a9001bab94d4de0 SHA512 bafc4212e0e0ca3eb129a5b88767727159c6ec3da450c7625d0b282f82699378d64eaa2c3fecb72c61000ec9b6d3c24f20bc7defdac6edc673e0fbb26e0c1f7e DIST nss-3.112.5.tar.gz 76633068 BLAKE2B 389b2c98c8e99a951f1dc496107e72d87e11cbfb25e595dde5a2c4586760dd4cf7297599177bda7f2b261aacb26eda7447c8c964bb606ece7363327301ae95b5 SHA512 2ca321ce81785ceff5642592270514cf233ab9f68165610bbad2fda8dacd97f4616671f43d29e39940b86cf86909edfece45c34c505e924090ac8a2df248c584 DIST nss-3.125.tar.gz 78567913 BLAKE2B 14d4a710464f9889a29441fba61556aab1b4074c284e21312272db6c43649398269235e9a3398b17052344dc535f36477d090a41bbb803de50052817471a2444 SHA512 8051cd13a1963d1a1b019e8aef6255fa6780170ea9d435b13ce81224c6e646968608dea7426c0903a4b83090acc25c06eba021b908981b65dca9748afc5471c6 +DIST nss-3.126.tar.gz 78769092 BLAKE2B c0afe01a87593768f10f47bf50340fe6337d3ddcfed10706379d150e7b42b0c8aab146b09b2fead172687bc3481db83f5611014600ddeefe607ed79e5eca08b9 SHA512 58d3b77e449ce4d3408051f1cf08ee1b7b0d86f8382d5d2103acc097de3503345e78edaf06af824122efe8cdb20eca7c0f295692aedbf5a14676411be27624b9 diff --git a/dev-libs/nss/files/nss-3.126-bmo-2027768-fix-build-failure-due-to-missing-gcm-stubs-if-on-big-endian.patch b/dev-libs/nss/files/nss-3.126-bmo-2027768-fix-build-failure-due-to-missing-gcm-stubs-if-on-big-endian.patch new file mode 100644 index 0000000000000..c7145daf69baf --- /dev/null +++ b/dev-libs/nss/files/nss-3.126-bmo-2027768-fix-build-failure-due-to-missing-gcm-stubs-if-on-big-endian.patch @@ -0,0 +1,91 @@ +diff --git a/coreconf/Linux.mk b/coreconf/Linux.mk +--- a/coreconf/Linux.mk ++++ b/coreconf/Linux.mk +@@ -186,10 +186,18 @@ + FREEBL_LOWHASH = 1 + endif + endif + endif + ++# Test toolchain for endianness and set LITTLE_ENDIAN variable accordingly ++ENDIANNESS := $(shell echo | $(CC) -dM -E - | grep __BYTE_ORDER__) ++ifeq ($(findstring __ORDER_LITTLE_ENDIAN__,$(ENDIANNESS)),__ORDER_LITTLE_ENDIAN__) ++ LITTLE_ENDIAN := 1 ++else ++ LITTLE_ENDIAN := 0 ++endif ++ + USE_SYSTEM_ZLIB = 1 + ZLIB_LIBS = -lz + + # The -rpath '$$ORIGIN' linker option instructs this library to search for its + # dependencies in the same directory where it resides. +diff '--color=auto' -Naur a/lib/freebl/Makefile b/lib/freebl/Makefile +--- a/lib/freebl/Makefile 2026-07-19 11:30:59.568272858 +0300 ++++ b/lib/freebl/Makefile 2026-07-19 12:20:56.138305051 +0300 +@@ -112,7 +112,10 @@ + # NSS_X64 means the target is a 64-bits 64 CPU architecture + # NSS_X86_OR_X64 means the target is either x86 or x64 + ifeq (,$(filter-out i386 x386 x86 x86_64,$(CPU_ARCH))) +- DEFINES += -DNSS_X86_OR_X64 -DHAVE_PLATFORM_GHASH ++ DEFINES += -DNSS_X86_OR_X64 ++ ifeq ($(LITTLE_ENDIAN),1) ++ DEFINES += -DHAVE_PLATFORM_GHASH ++ endif + EXTRA_SRCS += ghash-x86.c aes-x86.c + $(OBJDIR)/ghash-x86.o: CFLAGS += -mpclmul -maes + $(OBJDIR)/aes-x86.o: CFLAGS += -mpclmul -maes +@@ -138,7 +141,10 @@ + endif + ifeq ($(CPU_ARCH),aarch64) + ifdef CC_IS_CLANG +- DEFINES += -DUSE_HW_AES -DUSE_HW_SHA1 -DUSE_HW_SHA2 -DHAVE_PLATFORM_GHASH ++ DEFINES += -DUSE_HW_AES -DUSE_HW_SHA1 -DUSE_HW_SHA2 ++ ifeq ($(LITTLE_ENDIAN),1) ++ DEFINES += -DHAVE_PLATFORM_GHASH ++ endif + EXTRA_SRCS += aes-armv8.c ghash-aarch64.c sha1-armv8.c sha256-armv8.c + else ifeq (1,$(CC_IS_GCC)) + # GCC versions older than 4.9 don't support ARM AES. The check +@@ -146,11 +152,17 @@ + # and then rejects any major versions prior to 5. Note that + # there has been no GCC 4.10, as it was renamed to GCC 5. + ifneq (,$(filter 4.9,$(word 1,$(GCC_VERSION)).$(word 2,$(GCC_VERSION)))) +- DEFINES += -DUSE_HW_AES -DUSE_HW_SHA1 -DUSE_HW_SHA2 -DHAVE_PLATFORM_GHASH ++ DEFINES += -DUSE_HW_AES -DUSE_HW_SHA1 -DUSE_HW_SHA2 ++ ifeq ($(LITTLE_ENDIAN),1) ++ DEFINES += -DHAVE_PLATFORM_GHASH ++ endif + EXTRA_SRCS += aes-armv8.c ghash-aarch64.c sha1-armv8.c sha256-armv8.c + endif + ifeq (,$(filter 0 1 2 3 4,$(word 1,$(GCC_VERSION)))) +- DEFINES += -DUSE_HW_AES -DUSE_HW_SHA1 -DUSE_HW_SHA2 -DHAVE_PLATFORM_GHASH ++ DEFINES += -DUSE_HW_AES -DUSE_HW_SHA1 -DUSE_HW_SHA2 ++ ifeq ($(LITTLE_ENDIAN),1) ++ DEFINES += -DHAVE_PLATFORM_GHASH ++ endif + EXTRA_SRCS += aes-armv8.c ghash-aarch64.c sha1-armv8.c sha256-armv8.c + endif + endif +@@ -183,7 +195,9 @@ + endif + ifeq ($(CPU_ARCH),arm) + ifndef NSS_DISABLE_ARM32_NEON +- DEFINES += -DHAVE_PLATFORM_GHASH ++ ifeq ($(LITTLE_ENDIAN),1) ++ DEFINES += -DHAVE_PLATFORM_GHASH ++ endif + EXTRA_SRCS += ghash-arm32-neon.c + endif + ifdef CC_IS_CLANG +@@ -316,7 +330,9 @@ + MPI_SRCS += mpi_arm.c + endif + ifeq ($(CPU_ARCH),ppc) +- DEFINES += -DHAVE_PLATFORM_GHASH ++ ifeq ($(LITTLE_ENDIAN),1) ++ DEFINES += -DHAVE_PLATFORM_GHASH ++ endif + EXTRA_SRCS += ghash-ppc.c + ifdef USE_64 + DEFINES += -DNSS_NO_INIT_SUPPORT diff --git a/dev-libs/nss/nss-3.126.ebuild b/dev-libs/nss/nss-3.126.ebuild new file mode 100644 index 0000000000000..c5a8017c26dd1 --- /dev/null +++ b/dev-libs/nss/nss-3.126.ebuild @@ -0,0 +1,438 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit dot-a flag-o-matic multilib toolchain-funcs multilib-minimal + +NSPR_VER="4.39" +RTM_NAME="NSS_${PV//./_}_RTM" + +# If the release is made in Github only, not released at the official archive.mozilla.org. These +# Github-only tarballs have a different directory structure. Leave the variable empty for +# archive.mozilla.org release: +# GH_ONLY_REL= +GH_ONLY_REL= + +DESCRIPTION="Mozilla's Network Security Services library that implements PKI support" +HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS" + +if [[ -n ${GH_ONLY_REL} ]] ; then + SRC_URI="https://github.com/nss-dev/nss/archive/refs/tags/${RTM_NAME}.tar.gz -> ${P}.tar.gz" + S="${WORKDIR}/${PN}-${RTM_NAME}" +else + SRC_URI="https://archive.mozilla.org/pub/security/nss/releases/${RTM_NAME}/src/${P}.tar.gz" + S="${WORKDIR}/${P}/${PN}" +fi +SRC_URI+=" cacert? ( https://dev.gentoo.org/~juippis/mozilla/patchsets/nss-3.104-cacert-class1-class3.patch )" + +LICENSE="|| ( MPL-2.0 GPL-2 LGPL-2.1 )" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-solaris" +IUSE="cacert test test-full +utils cpu_flags_ppc_altivec cpu_flags_x86_avx2 cpu_flags_x86_sse3 cpu_flags_ppc_vsx" + +REQUIRED_USE="test-full? ( test )" + +PROPERTIES="test_network" +RESTRICT="test" + +# pkg-config called by nss-config -> virtual/pkgconfig in RDEPEND +RDEPEND=" + >=dev-libs/nspr-${NSPR_VER}[${MULTILIB_USEDEP}] + >=dev-db/sqlite-3.8.2[${MULTILIB_USEDEP}] + >=virtual/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}] + virtual/pkgconfig +" +DEPEND="${RDEPEND}" +BDEPEND="dev-lang/perl" + +MULTILIB_CHOST_TOOLS=( + /usr/bin/nss-config +) + +PATCHES=( + "${FILESDIR}"/nss-3.126-bmo-2027768-fix-build-failure-due-to-missing-gcm-stubs-if-on-big-endian.patch + "${FILESDIR}"/nss-3.103-gentoo-fixes-add-pkgconfig-files.patch + "${FILESDIR}"/nss-3.21-gentoo-fixup-warnings.patch +) + +src_prepare() { + default + + if use cacert ; then + eapply -p2 "${DISTDIR}"/nss-3.104-cacert-class1-class3.patch + fi + + pushd coreconf >/dev/null || die + # hack nspr paths + echo 'INCLUDES += -I$(DIST)/include/dbm' \ + >> headers.mk || die "failed to append include" + + # modify install path + sed -e '/CORE_DEPTH/s:SOURCE_PREFIX.*$:SOURCE_PREFIX = $(CORE_DEPTH)/dist:' \ + -i source.mk || die + + # Respect LDFLAGS + sed -i -e 's/\$(MKSHLIB) -o/\$(MKSHLIB) \$(LDFLAGS) -o/g' rules.mk + + # Workaround make-4.4's change to sub-make, bmo#1800237, bgo#882069 + sed -i -e "s/^CPU_TAG = _.*/CPU_TAG = _$(nssarch)/" Linux.mk || die + + popd >/dev/null || die + + # Fix pkgconfig file for Prefix + sed -i -e "/^PREFIX =/s:= /usr:= ${EPREFIX}/usr:" \ + config/Makefile || die + + # use host shlibsign if need be #436216 + if tc-is-cross-compiler ; then + sed -i \ + -e 's:"${2}"/shlibsign:shlibsign:' \ + cmd/shlibsign/sign.sh || die + fi + + # dirty hack + sed -i -e "/CRYPTOLIB/s:\$(SOFTOKEN_LIB_DIR):../freebl/\$(OBJDIR):" \ + lib/ssl/config.mk || die + sed -i -e "/CRYPTOLIB/s:\$(SOFTOKEN_LIB_DIR):../../lib/freebl/\$(OBJDIR):" \ + cmd/platlibs.mk || die + + multilib_copy_sources + lto-guarantee-fat + + strip-flags +} + +multilib_src_configure() { + # Ensure we stay multilib aware + sed -i -e "/@libdir@/ s:lib64:$(get_libdir):" config/Makefile || die +} + +nssarch() { + # Most of the arches are the same as $ARCH + local t=${1:-${CHOST}} + case ${t} in + *86*-pc-solaris2*) echo "i86pc" ;; + aarch64*) echo "aarch64" ;; + hppa*) echo "parisc" ;; + i?86*) echo "i686" ;; + x86_64*) echo "x86_64" ;; + *) tc-arch ${t} ;; + esac +} + +# @USAGE: +nssbits() { + case $1 in + 4) [[ $2 == x86_64* ]] && echo USE_X32=1 ;; + 8) echo USE_64=1 ;; + esac +} + +multilib_src_compile() { + tc-export_build_env + + local makeargs=( + CC="$(tc-getCC)" + CCC="$(tc-getCXX)" + AR="$(tc-getAR) rc \$@" + RANLIB="$(tc-getRANLIB)" + OPTIMIZER= + disable_ckbi=0 + $(nssbits "$(tc-get-ptr-size)" "${CHOST}") + ) + + # Take care of nspr settings #436216 + local myCPPFLAGS="${CPPFLAGS} $($(tc-getPKG_CONFIG) nspr --cflags) -D_FILE_OFFSET_BITS=64" + unset NSPR_INCLUDE_DIR + + export NSS_ALLOW_SSLKEYLOGFILE=1 + export NSS_ENABLE_WERROR=0 #567158 + export BUILD_OPT=1 + export NSS_USE_SYSTEM_SQLITE=1 + export NSDISTMODE=copy + export FREEBL_NO_DEPEND=1 + export FREEBL_LOWHASH=1 + export NSS_SEED_ONLY_DEV_URANDOM=1 + export USE_SYSTEM_ZLIB=1 + export ZLIB_LIBS=-lz + export ASFLAGS="" + # Fix build failure on arm64 + export NS_USE_GCC=1 + # Detect compiler type and set proper environment value + if tc-is-gcc; then + export CC_IS_GCC=1 + elif tc-is-clang; then + export CC_IS_CLANG=1 + + # bgo#927839 + export NSS_DISABLE_UNLOAD=1 + fi + + export NSS_DISABLE_GTESTS=$(usex !test 1 0) + + # Include exportable custom settings defined by users, #900915 + # Two examples uses: + # EXTRA_NSSCONF="MYONESWITCH=1" + # EXTRA_NSSCONF="MYVALUE=0 MYOTHERVALUE=1 MYTHIRDVALUE=1" + # e.g. + # EXTRA_NSSCONF="NSS_ALLOW_SSLKEYLOGFILE=0" + # or + # EXTRA_NSSCONF="NSS_ALLOW_SSLKEYLOGFILE=0 NSS_ENABLE_WERROR=1" + # etc. + if [[ -n "${EXTRA_NSSCONF}" ]]; then + ewarn "EXTRA_NSSCONF applied, please disable custom settings before reporting bugs." + read -a myextranssconf <<< "${EXTRA_NSSCONF}" + + for (( i=0; i<${#myextranssconf[@]}; i++ )); do + export "${myextranssconf[$i]}" + echo "exported ${myextranssconf[$i]}" + done + fi + + # explicitly disable altivec/vsx if not requested + # https://bugs.gentoo.org/789114 + case ${ARCH} in + ppc*) + use cpu_flags_ppc_altivec || export NSS_DISABLE_ALTIVEC=1 + use cpu_flags_ppc_vsx || export NSS_DISABLE_CRYPTO_VSX=1 + ;; + esac + + use cpu_flags_x86_avx2 || export NSS_DISABLE_AVX2=1 + use cpu_flags_x86_sse3 || export NSS_DISABLE_SSE3=1 + + local d + + # Disables calling shlibsign during the build #956431 and #436216 + tc-is-cross-compiler && makeargs+=( CROSS_COMPILE=1 ) + + # Build the host tools first. + LDFLAGS="${BUILD_LDFLAGS}" \ + XCFLAGS="${BUILD_CFLAGS} -D_FILE_OFFSET_BITS=64" \ + NSPR_LIB_DIR="${T}/fakedir" \ + emake -C coreconf \ + CC="$(tc-getBUILD_CC)" \ + $(nssbits "$(tc-get-build-ptr-size)" "${CBUILD}") + makeargs+=( NSINSTALL="${PWD}/$(find -type f -name nsinstall)" ) + + # Then build the target tools. + for d in . lib/dbm ; do + CPPFLAGS="${myCPPFLAGS}" \ + XCFLAGS="${CFLAGS} ${CPPFLAGS} -D_FILE_OFFSET_BITS=64" \ + NSPR_LIB_DIR="${T}/fakedir" \ + emake "${makeargs[@]}" -C ${d} OS_TEST="$(nssarch)" + done +} + +multilib_src_test() { + einfo "Tests can take a *long* time, especially on a multilib system." + einfo "~10 minutes per lib configuration with only 'standard' tests," + einfo "~40 minutes per lib configuration with 'full' tests. Bug #852755" + + # https://www.linuxfromscratch.org/blfs/view/svn/postlfs/nss.html + # https://firefox-source-docs.mozilla.org/security/nss/legacy/nss_sources_building_testing/index.html#running_the_nss_test_suite + # https://www-archive.mozilla.org/projects/security/pki/nss/testnss_32.html (older) + export BUILD_OPT=1 + export HOST="localhost" + export DOMSUF="localdomain" + export USE_IP=TRUE + export IP_ADDRESS="127.0.0.1" + + # Only run the standard cycle instead of full, reducing testing time from 45 minutes to 15 + # per lib implementation. + if use test-full ; then + # export NSS_CYCLES="standard pkix sharedb" + :; + else + export NSS_CYCLES="standard" + fi + + NSINSTALL="${PWD}/$(find -type f -name nsinstall)" + + cd "${BUILD_DIR}"/tests || die + # Hack to get current objdir (prefixed dir where built binaries are) + # Without this, at least multilib tests go wrong when building the amd64 variant + # after x86. + local objdir=$(find "${BUILD_DIR}"/dist -maxdepth 1 -iname Linux* | rev | cut -d/ -f1 | rev) + + # Can tweak to a subset of tests in future if we need to, but would prefer not + OBJDIR="${objdir}" DIST="${BUILD_DIR}/dist" MOZILLA_ROOT="${BUILD_DIR}" ./all.sh || die +} + +# Altering these 3 libraries breaks the CHK verification. +# All of the following cause it to break: +# - stripping +# - prelink +# - ELF signing +# http://www.mozilla.org/projects/security/pki/nss/tech-notes/tn6.html +# Either we have to NOT strip them, or we have to forcibly resign after +# stripping. +#local_libdir="$(get_libdir)" +#export STRIP_MASK=" +# */${local_libdir}/libfreebl3.so* +# */${local_libdir}/libnssdbm3.so* +# */${local_libdir}/libsoftokn3.so*" + +export NSS_CHK_SIGN_LIBS="freebl3 nssdbm3 softokn3" + +generate_chk() { + local shlibsign="$1" + local libdir="$2" + einfo "Resigning core NSS libraries for FIPS validation" + shift 2 + local i + for i in ${NSS_CHK_SIGN_LIBS} ; do + local libname=lib${i}.so + local chkname=lib${i}.chk + "${shlibsign}" \ + -i "${libdir}"/${libname} \ + -o "${libdir}"/${chkname}.tmp \ + && mv -f \ + "${libdir}"/${chkname}.tmp \ + "${libdir}"/${chkname} \ + || die "Failed to sign ${libname}" + done +} + +cleanup_chk() { + local libdir="$1" + shift 1 + local i + for i in ${NSS_CHK_SIGN_LIBS} ; do + local libfname="${libdir}/lib${i}.so" + # If the major version has changed, then we have old chk files. + [ ! -f "${libfname}" -a -f "${libfname}.chk" ] \ + && rm -f "${libfname}.chk" + done +} + +multilib_src_install() { + pushd dist >/dev/null || die + + dodir /usr/$(get_libdir) + cp -L */lib/*$(get_libname) "${ED}"/usr/$(get_libdir) || die "copying shared libs failed" + local i + for i in freebl nssb nssckfw ; do + cp -L */lib/lib${i}.a "${ED}"/usr/$(get_libdir) || die "copying libs failed" + done + + # Install nss-config and pkgconfig file + dodir /usr/bin + cp -L */bin/nss-config "${ED}"/usr/bin || die + dodir /usr/$(get_libdir)/pkgconfig + cp -L */lib/pkgconfig/nss.pc "${ED}"/usr/$(get_libdir)/pkgconfig || die + + # create an nss-softokn.pc from nss.pc for libfreebl and some private headers + # bug 517266 + sed -e 's#Libs:#Libs: -lfreebl#' \ + -e 's#Cflags:#Cflags: -I${includedir}/private#' \ + */lib/pkgconfig/nss.pc >"${ED}"/usr/$(get_libdir)/pkgconfig/nss-softokn.pc \ + || die "could not create nss-softokn.pc" + + # all the include files + insinto /usr/include/nss + doins public/nss/*.{h,api} + insinto /usr/include/nss/private + doins private/nss/{blapi,alghmac,cmac}.h + + popd >/dev/null || die + + local f nssutils + # Always enabled because we need it for chk generation. + nssutils=( shlibsign ) + + if multilib_is_native_abi ; then + if use utils; then + # The tests we do not need to install. + #nssutils_test="bltest crmftest dbtest dertimetest + #fipstest remtest sdrtest" + # checkcert utils has been removed in nss-3.22: + # https://bugzilla.mozilla.org/show_bug.cgi?id=1187545 + # https://hg.mozilla.org/projects/nss/rev/df1729d37870 + # certcgi has been removed in nss-3.36: + # https://bugzilla.mozilla.org/show_bug.cgi?id=1426602 + # conflict removed in 3.122. + nssutils+=( + addbuiltin + atob + baddbdir + btoa + certutil + cmsutil + crlutil + derdump + digest + makepqg + mangle + modutil + multinit + nonspr10 + ocspclnt + oidcalc + p7content + p7env + p7sign + p7verify + pk11mode + pk12util + pp + rsaperf + selfserv + signtool + signver + ssltap + strsclnt + symkeyutil + tstclnt + vfychain + vfyserv + ) + # install man-pages for utils (bug #516810) + doman doc/nroff/*.1 + fi + pushd dist/*/bin >/dev/null || die + for f in ${nssutils[@]}; do + dobin ${f} + done + popd >/dev/null || die + fi + strip-lto-bytecode +} + +pkg_postinst() { + if [[ -n "${ROOT}" ]]; then + elog "You appear to to be installing in a seperate \$ROOT" + elog "to complete the setup and re-sign libraries please run:" + elog "emerge --config '=${CATEGORY}/${PF}'" + else + sign_libraries + fi +} + +pkg_config() { + sign_libraries +} + +sign_libraries() { + multilib_pkg_postinst() { + # We must re-sign the libraries AFTER they are stripped. + local shlibsign="${EROOT}/usr/bin/shlibsign" + # See if we can execute it (cross-compiling & such). #436216 + "${shlibsign}" -h >&/dev/null + if [[ $? -gt 1 ]] ; then + shlibsign="shlibsign" + fi + generate_chk "${shlibsign}" "${EROOT}"/usr/$(get_libdir) + } + + multilib_foreach_abi multilib_pkg_postinst +} + +pkg_postrm() { + multilib_pkg_postrm() { + cleanup_chk "${EROOT}"/usr/$(get_libdir) + } + + multilib_foreach_abi multilib_pkg_postrm +}