Merge updates from master

This commit is contained in:
Repository mirror & CI
2026-07-19 09:31:02 +00:00
16 changed files with 871 additions and 234 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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: <pointer bytes> <tuple>
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
}

View File

@@ -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 <me@kylxbn.com>
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<const void *>(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

View File

@@ -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

View File

@@ -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.1.tar.bz2 14087042 BLAKE2B 38001316febde28c851d086e072012b8e7b5819c0f1e32f37c7aaebd51f9d4b1270cbac600fe9c6289c1751bae56112b3d10b05417f213ac5d50803271fe4448 SHA512 8b91d11ee5ffd1738a363820e904fd3cf632a50dc5e4a6393128c3f3b43bd920737552bac56ec17d6bbbc4beba9fb5a5f19d603fa837489bb55a417a7fc1d69f
DIST handbrake-x265-snapshot-20250729-13276.tar.gz 1738652 BLAKE2B 59cba73b0d46cdaa40845e604e6b28ea428291d08b97ce144d13a072f164e18b0de20b2d4a62a92404ae32609a867d61e7b2d64099cac2124cc5c0640aad744a SHA512 50648176cf1e20e384be4145a525c193f515b73d3ff96ae2042b393ebb3ee3a8cab031e1c5314bdd67f53a6a00010226a5709cdb720dec47142a93c6828469af
DIST handbrake-ffmpeg-8.1.2.tar.bz2 14093398 BLAKE2B cd94187be3320344df02a7be63dca102653994edb090c13fcaad5698e5877be76c7b0c9c65281a396fb84ba2d7daa8e7018b54f63574f96cbec6099da455f619 SHA512 2d0ef145759eb3d39ab02005a35390ab6cabc61715845de152072e003f7e586bc563bdd3313c085110f6688514a325292b77bad8546ca28a5a8e79c4a308e759
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

View File

@@ -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 <ddesouza@nvidia.com>
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 <ddesouza@nvidia.com>
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
--- 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;

View File

@@ -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/<project>/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-4
>=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
}

View File

@@ -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}]}

View File

@@ -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"
@@ -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[@]}

View File

@@ -13,8 +13,8 @@
<flag name="amf">Support for encoding h265 using AMD VCE encoder</flag>
<flag name="fdk">Support for encoding AAC using <pkg>media-libs/fdk-aac</pkg></flag>
<flag name="libdovi">Support for Dolby Vision using <pkg>media-libs/libdovi</pkg></flag>
<flag name="nvdec">Support for NVDEC (NVCUVID) hardware accelerated video decoding</flag>
<flag name="numa">Support for x265's NUMA capabilities</flag>
<flag name="nvdec">Support for NVDEC (NVCUVID) hardware accelerated video decoding</flag>
<flag name="qsv">Support for encoding h264 using Intel Quick Sync Video</flag>
<flag name="x265">Support for encoding h265 using <pkg>media-libs/x265</pkg></flag>
</use>

View File

@@ -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
@@ -40,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
@@ -60,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
@@ -80,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

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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
}