Merge pull request #3797 from flatcar/buildbot/weekly-portage-stable-package-updates-2026-03-09

Weekly portage-stable package updates 2026-03-09
This commit is contained in:
Krzesimir Nowak 2026-03-11 18:08:22 +01:00 committed by GitHub
commit a899f2f97d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
123 changed files with 4846 additions and 3597 deletions

View File

@ -0,0 +1,5 @@
- base, dev: binutils-libs ([2.46.0](https://sourceware.org/pipermail/binutils/2026-February/148149.html))
- base, dev: intel-microcode ([20260227_p20260227](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/releases/tag/microcode-20260227))
- base, dev: libnl ([3.12.0](https://lists.infradead.org/pipermail/libnl/2025-December/002442.html))
- base, dev: pam ([1.7.2](https://github.com/linux-pam/linux-pam/releases/tag/v1.7.2))
- dev: binutils ([2.46.0](https://sourceware.org/pipermail/binutils/2026-February/148149.html))

View File

@ -125,11 +125,15 @@ sys-apps/azure-vm-utils
=sys-cluster/ipvsadm-1.31-r1 ~arm64
# Keep versions on both arches in sync.
=sys-devel/binutils-2.46.0
=sys-fs/lxcfs-6.0.5 ~arm64
# Bump early for newer features.
=sys-kernel/dracut-109* ~amd64 ~arm64
# Keep versions on both arches in sync.
=sys-libs/binutils-libs-2.46.0
# Our own ebuild fixing issues in Gentoo, hopefully will be fixed
# there too eventually.
=sys-libs/libselinux-3.8.1-r3 ~amd64 ~arm64

View File

@ -0,0 +1,39 @@
The following entry from binutils 2.46 NEWS file explains the breaking change:
* Internal changes to plugin support, and stricter target checking may result
in some errors being exposed in user options passed to the various binutils.
For example objcopy --target=TARGET now will only work if the input file is
for TARGET whereas prior versions of objcopy accepted other target input
files and produced a TARGET output. If you do in fact want the old
behaviour the correct usage is objcopy --output-target=TARGET.
Thus update the FORMAT variables to use --output-target instead.
diff '--color=auto' -u -r shim-15.8/Make.defaults shim-15.8-patched/Make.defaults
--- shim-15.8/Make.defaults 2024-01-22 19:18:05.000000000 -0000
+++ shim-15.8-patched/Make.defaults 2026-03-11 08:58:33.972284263 -0000
@@ -159,7 +159,7 @@
LIB_GCC = $(shell $(CC) $(ARCH_CFLAGS) -print-libgcc-file-name)
EFI_LIBS = -lefi -lgnuefi --start-group Cryptlib/libcryptlib.a Cryptlib/OpenSSL/libopenssl.a --end-group $(LIB_GCC)
-FORMAT ?= --target efi-app-$(ARCH)
+FORMAT ?= --output-target efi-app-$(ARCH)
LOCAL_EFI_PATH = gnu-efi/$(ARCH_GNUEFI)/gnuefi
LIBDIR = gnu-efi/$(ARCH_GNUEFI)/lib
diff '--color=auto' -u -r shim-15.8/gnu-efi/apps/Makefile shim-15.8-patched/gnu-efi/apps/Makefile
--- shim-15.8/gnu-efi/apps/Makefile 2024-01-22 19:18:05.000000000 -0000
+++ shim-15.8-patched/gnu-efi/apps/Makefile 2026-03-11 08:59:11.613462517 -0000
@@ -66,9 +66,9 @@
ifneq ($(HAVE_EFI_OBJCOPY),)
-FORMAT := --target efi-app-$(ARCH)
-$(TARGET_BSDRIVERS): FORMAT=--target efi-bsdrv-$(ARCH)
-$(TARGET_RTDRIVERS): FORMAT=--target efi-rtdrv-$(ARCH)
+FORMAT := --output-target efi-app-$(ARCH)
+$(TARGET_BSDRIVERS): FORMAT=--output-target efi-bsdrv-$(ARCH)
+$(TARGET_RTDRIVERS): FORMAT=--output-target efi-rtdrv-$(ARCH)
else

View File

@ -25,6 +25,7 @@ DEPEND="
PATCHES=(
"${FILESDIR}/0001-Fix-parallel-build-of-gnu-efi.patch"
"${FILESDIR}/0002-Fix-build-with-binutils-2-46.patch"
)
src_compile() {

View File

@ -16,7 +16,7 @@ SRC_URI="
LICENSE="BSD BSD-2 BSD-4 public-domain"
SLOT="0/13"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
IUSE="
acl blake2 +bzip2 +e2fsprogs expat +iconv lz4 +lzma lzo nettle
static-libs test xattr +zstd

View File

@ -1 +1,2 @@
DIST adcli-0.9.2.tar.bz2 93680 BLAKE2B b5958b276ee43a0ee54aa922f27ed266d4e9fbd1c86e0c007dac9fcf9cc022e1b3ba043b782fceb00066be2577390773dc99fb8d476a6b5e6523d44d008fb667 SHA512 ae8414a0af389b6845dd92d41446a80a9dc1734b874175323c0e491d99944eab442b95ae6d3a29fc69638d2e73bf8d2c369f6fa50e9ed3968527444b78606286
DIST adcli-0.9.3.1.tar.bz2 105198 BLAKE2B aa2f472601e2c01690ad37186dd90d267949198a34b2b6efad0f9cd1c4734cf4b1f3b27ea6cf34c7b7df7872f0d1cfb70adda99a82adb4fcd6c87f171ddd7d5c SHA512 ef393e09b3396ffb55d2f34feaa23caff249f2f92d5f3f03ea9d140cb2fc2bc45ea36a69760e941a9a053e460ed8d6632d7dc3ab9fc38897f00cea67e30a1b84

View File

@ -0,0 +1,45 @@
# Copyright 2021-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit autotools
DESCRIPTION="Tool for performing actions on an Active Directory domain"
HOMEPAGE="https://www.freedesktop.org/software/realmd/adcli/adcli.html"
SRC_URI="https://gitlab.freedesktop.org/realmd/adcli/-/archive/${PV}/${P}.tar.bz2"
LICENSE="LGPL-2.1"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~x86"
IUSE="doc netapi selinux"
DEPEND="
app-crypt/mit-krb5
net-nds/openldap:=[sasl]
netapi? ( net-fs/samba )"
# still pull in kerberos policies, provides labelling and might some day
# actually bring policies which are currently still internal (see src_configure)
RDEPEND="${DEPEND}
selinux? ( sec-policy/selinux-kerberos )"
BDEPEND="
doc? (
app-text/docbook-xml-dtd:4.3
app-text/xmlto
dev-libs/libxslt
)"
src_prepare() {
default
eautoreconf
}
src_configure() {
# builds its own policy, no selinux until policies are official
local myconf="--disable-selinux-support"
econf \
${myconf} \
$(use_enable doc) \
$(use_enable netapi offline-join-support) \
KRB5_CONFIG="${ESYSROOT}"/usr/bin/krb5-config
}

View File

@ -9,6 +9,9 @@
<email>proxy-maint@gentoo.org</email>
<name>Proxy Maintainers</name>
</maintainer>
<use>
<flag name="netapi">build support for <pkg>net-fs/samba</pkg>s offline join feature</flag>
</use>
<upstream>
<remote-id type="freedesktop-gitlab">realmd/adcli</remote-id>
</upstream>

View File

@ -1,5 +1,3 @@
DIST bash-completion-2.14.0.tar.xz 428980 BLAKE2B c28ec0cd348a3954461f7a865823a358e47c4b479c7812baa6d54aef856c958510967806550e62784955f9daf233a0b01edade19884e534df857472a3196e63e SHA512 2e12d2e57c932b931a6cfe59234f9d33d715538d6ea4eb72ed4ed3d8d2cf2cedaf08fcb6abaf3117e06115d892283e38a07b3abe5c91c026d2c06a0f64e347bd
DIST bash-completion-2.15.0.tar.xz 457836 BLAKE2B d2234cb2baf8494d2159e8abe6780e0879efb6fe9e851c0d51ebf09363c83652ef610658e2beca181adc0d6c844472a68a219be8b3ca51271fdfc53477f174ba SHA512 3b7e98801c3ceab7853c0603bdaa0cd6f0a658e0f7f24b092f341bd1794633b62d33e664035b6ab3c03b5a3dd941b16f87a415aade8a2707578c59cc48b1a9f7
DIST bash-completion-2.16.0.tar.xz 464764 BLAKE2B 389be47536f8f9aa383ff85bf19a00562b30b6d3e3652feaa01284987af13c2dc9850b59341956dd8e94e54251cd36902a60d5e3420ebfa2567216546144f675 SHA512 3711d6cb53cedff94efca0325479ac73f40b536fce250dbcc18ef120a8d0d2248f086ca26e245d163e6058d1b1087d57ced041317163d0e25592d6cb7acbc102
DIST bash-completion-2.17.0.tar.xz 482896 BLAKE2B ee11f2bff82b0852979e4843c7ad5e5b976e4d1e44ab5ed1b96da64fe9b32d91150f12f32bf7c6c0286cd2a0c424d786bbad47066403c71f8d3c8425487427dd SHA512 79f7a22de7df7a6a5cad2e8088ce7e013a3cd5542f3af825c04b2607c824022913dd775202ddab7964dd759e50d5bdf9be6451c70d488efaef10f7cf2f7ac73e
DIST bashcomp-2.0.3.tar.gz 3539 BLAKE2B 75304d144792cc7f6ad5455a05a65c33c646d6f7384d020a06a1fcf012cd51625a3dd0750ad539253453b1eede196c340286a1e81737f0835b5091609ba01295 SHA512 b2bd185ccbd4456939ccc731cc1983fcec2b9564a9920642a753fadd5d897fdb96b925ac1524657629d621d45b37d99076c8ae72511a827e96ff6c388d720008

View File

@ -1,188 +0,0 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
BASHCOMP_P=bashcomp-2.0.3
PYTHON_COMPAT=( python3_{10..12} )
inherit python-any-r1
DESCRIPTION="Programmable Completion for bash"
HOMEPAGE="https://github.com/scop/bash-completion"
SRC_URI="
https://github.com/scop/bash-completion/releases/download/${PV}/${P}.tar.xz
eselect? (
https://github.com/projg2/bashcomp2/releases/download/v${BASHCOMP_P#*-}/${BASHCOMP_P}.tar.gz
)
"
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
IUSE="+eselect test"
RESTRICT="!test? ( test )"
# completion collision with net-fs/mc
RDEPEND="
>=app-shells/bash-4.3_p30-r1:0
sys-apps/miscfiles
!<app-text/tree-2.1.1-r1
!!net-fs/mc
"
BDEPEND="
test? (
${RDEPEND}
$(python_gen_any_dep '
dev-python/pexpect[${PYTHON_USEDEP}]
dev-python/pytest[${PYTHON_USEDEP}]
dev-python/pytest-xdist[${PYTHON_USEDEP}]
')
)
"
PDEPEND="
>=app-shells/gentoo-bashcomp-20140911
"
PATCHES=(
"${FILESDIR}"/${PN}-2.14.0-optimize-kernel-modules.patch
)
strip_completions() {
# Remove unwanted completions.
local strip_completions=(
# Slackware package stuff, quite generic names cause collisions
# (e.g. with sys-apps/pacman)
explodepkg installpkg makepkg pkgtool removepkg upgradepkg
# Debian/Red Hat network stuff
ifdown ifup ifquery ifstatus
# Installed in app-editors/vim-core
xxd
# Now-dead symlinks to deprecated completions
hd ncal
# FreeBSD
freebsd-update kldload kldunload portinstall portsnap
pkg_deinstall pkg_delete pkg_info
# For GNU mailman, which isn't packaged. If mailman isn't installed,
# it triggers a QA warning.
arch
)
if [[ ${CHOST} != *solaris* ]]; then
# Triggers QA warning since it only defines a completion on Solaris,
# to avoid defining a bad one on macOS.
strip_completions+=(pkgutil)
fi
local file
for file in "${strip_completions[@]}"; do
rm "${ED}"/usr/share/bash-completion/completions/${file} ||
die "stripping ${file} failed"
done
# remove deprecated completions (moved to other packages)
rm "${ED}"/usr/share/bash-completion/completions/_* || die
}
python_check_deps() {
python_has_version "dev-python/pexpect[${PYTHON_USEDEP}]" &&
python_has_version "dev-python/pytest[${PYTHON_USEDEP}]" &&
python_has_version "dev-python/pytest-xdist[${PYTHON_USEDEP}]"
}
pkg_setup() {
use test && python-any-r1_pkg_setup
}
src_prepare() {
if use eselect; then
eapply "${WORKDIR}/${BASHCOMP_P}/bash-completion-blacklist-support.patch"
fi
default
}
src_test() {
local EPYTEST_DESELECT=(
# redhat-specific, we strip these completions
test/t/test_if{down,up}.py
# not available for icedtea
test/t/test_javaws.py
# TODO
test/t/test_vi.py::TestVi::test_2
test/t/test_xmlwf.py::TestXmlwf::test_2 #bug 886159
test/t/test_xrandr.py::TestXrandr::test_output_filter
)
local EPYTEST_IGNORE=(
# stupid test that async tests work
test/fixtures/pytest/test_async.py
)
local EPYTEST_XDIST=1
# portage's HOME override breaks tests
local -x HOME=$(unset HOME; echo ~)
addpredict "${HOME}"
# used in pytest tests
local -x NETWORK=none
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
local -x PYTEST_PLUGINS=xdist.plugin
emake -C completions check
epytest
}
src_install() {
# work-around race conditions, bug #526996
mkdir -p "${ED}"/usr/share/bash-completion/{completions,helpers} || die
emake DESTDIR="${D}" profiledir="${EPREFIX}"/etc/bash/bashrc.d install
strip_completions
dodoc AUTHORS CHANGELOG.md CONTRIBUTING.md README.md
# install the python completions for all targets, bug #622892
local TARGET
for TARGET in "${PYTHON_COMPAT[@]}"; do
if [[ ! -e "${ED}"/usr/share/bash-completion/completions/${TARGET/_/.} ]]; then
dosym python "${ED}"/usr/share/bash-completion/completions/${TARGET/_/.}
fi
done
# install the eselect module
if use eselect; then
insinto /usr/share/eselect/modules
doins "${WORKDIR}/${BASHCOMP_P}/bashcomp.eselect"
doman "${WORKDIR}/${BASHCOMP_P}/bashcomp.eselect.5"
fi
}
pkg_postinst() {
local v
for v in ${REPLACING_VERSIONS}; do
if ver_test "${v}" -lt 2.1-r90; then
ewarn "For bash-completion autoloader to work, all completions need to"
ewarn "be installed in /usr/share/bash-completion/completions. You may"
ewarn "need to rebuild packages that installed completions in the old"
ewarn "location. You can do this using:"
ewarn
ewarn "$ find ${EPREFIX}/usr/share/bash-completion -maxdepth 1 -type f '!' -name 'bash_completion' -exec emerge -1v {} +"
ewarn
ewarn "After the rebuild, you should remove the old setup symlinks:"
ewarn
ewarn "$ find ${EPREFIX}/etc/bash_completion.d -type l -delete"
fi
done
if has_version 'app-shells/zsh'; then
elog
elog "If you are interested in using the provided bash completion functions with"
elog "zsh, valuable tips on the effective use of bashcompinit are available:"
elog " http://www.zsh.org/mla/workers/2003/msg00046.html"
elog
fi
}

View File

@ -1,180 +0,0 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
BASHCOMP_P=bashcomp-2.0.3
PYTHON_COMPAT=( python3_{10..13} )
inherit eapi9-ver python-any-r1
DESCRIPTION="Programmable Completion for bash"
HOMEPAGE="https://github.com/scop/bash-completion"
SRC_URI="
https://github.com/scop/bash-completion/releases/download/${PV}/${P}.tar.xz
eselect? (
https://github.com/projg2/bashcomp2/releases/download/v${BASHCOMP_P#*-}/${BASHCOMP_P}.tar.gz
)
"
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
IUSE="+eselect test"
RESTRICT="!test? ( test )"
# completion collision with net-fs/mc
RDEPEND="
>=app-shells/bash-4.3_p30-r1:0
sys-apps/miscfiles
!<app-text/tree-2.1.1-r1
!!net-fs/mc
"
BDEPEND="
test? (
${RDEPEND}
$(python_gen_any_dep '
dev-python/pexpect[${PYTHON_USEDEP}]
dev-python/pytest[${PYTHON_USEDEP}]
dev-python/pytest-xdist[${PYTHON_USEDEP}]
')
)
"
PDEPEND="
>=app-shells/gentoo-bashcomp-20140911
"
PATCHES=(
"${FILESDIR}"/${PN}-2.14.0-optimize-kernel-modules.patch
)
strip_completions() {
# Remove unwanted completions.
local strip_completions=(
# Slackware package stuff, quite generic names cause collisions
# (e.g. with sys-apps/pacman)
explodepkg installpkg makepkg pkgtool removepkg upgradepkg
# Debian/Red Hat network stuff
ifdown ifup ifquery ifstatus
# Installed in app-editors/vim-core
xxd
# Now-dead symlinks to deprecated completions
hd ncal
# For GNU mailman, which isn't packaged. If mailman isn't installed,
# it triggers a QA warning.
arch
)
local file
for file in "${strip_completions[@]}"; do
rm "${ED}"/usr/share/bash-completion/completions/${file} ||
die "stripping ${file} failed"
done
# remove deprecated completions (moved to other packages)
rm "${ED}"/usr/share/bash-completion/completions/_* || die
}
python_check_deps() {
python_has_version "dev-python/pexpect[${PYTHON_USEDEP}]" &&
python_has_version "dev-python/pytest[${PYTHON_USEDEP}]" &&
python_has_version "dev-python/pytest-xdist[${PYTHON_USEDEP}]"
}
pkg_setup() {
use test && python-any-r1_pkg_setup
}
src_prepare() {
if use eselect; then
eapply "${WORKDIR}/${BASHCOMP_P}/bash-completion-blacklist-support.patch"
fi
default
}
src_test() {
local EPYTEST_DESELECT=(
# redhat-specific, we strip these completions
test/t/test_if{down,up}.py
# not available for icedtea
test/t/test_javaws.py
# TODO
test/t/test_vi.py::TestVi::test_2
test/t/test_xmlwf.py::TestXmlwf::test_2 #bug 886159
test/t/test_xrandr.py::TestXrandr::test_output_filter
test/t/unit/test_unit_dequote.py
test/t/test_sudo.py::TestSudo::test_1 #bug 935400
test/t/test_xfreerdp.py::TestXfreerdp::test_6 #bug 935400
test/t/unit/test_unit_command_offset.py::TestUnitCommandOffset::test_cmd_quoted #bug 931744
test/t/test_make.py::TestMake::test_6 #bug 931744
)
local EPYTEST_IGNORE=(
# stupid test that async tests work
test/fixtures/pytest/test_async.py
)
local EPYTEST_XDIST=1
# portage's HOME override breaks tests
local -x HOME=$(unset HOME; echo ~)
addpredict "${HOME}"
# used in pytest tests
local -x NETWORK=none
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
local -x PYTEST_PLUGINS=xdist.plugin
emake -C completions check
epytest
}
src_install() {
# work-around race conditions, bug #526996
mkdir -p "${ED}"/usr/share/bash-completion/{completions,helpers} || die
emake DESTDIR="${D}" profiledir="${EPREFIX}"/etc/bash/bashrc.d install
strip_completions
dodoc AUTHORS CHANGELOG.md CONTRIBUTING.md README.md
# install the python completions for all targets, bug #622892
local TARGET
for TARGET in "${PYTHON_COMPAT[@]}"; do
if [[ ! -e "${ED}"/usr/share/bash-completion/completions/${TARGET/_/.} ]]; then
dosym python "${ED}"/usr/share/bash-completion/completions/${TARGET/_/.}
fi
done
# install the eselect module
if use eselect; then
insinto /usr/share/eselect/modules
doins "${WORKDIR}/${BASHCOMP_P}/bashcomp.eselect"
doman "${WORKDIR}/${BASHCOMP_P}/bashcomp.eselect.5"
fi
}
pkg_postinst() {
if ver_replacing -lt 2.1-r90; then
ewarn "For bash-completion autoloader to work, all completions need to"
ewarn "be installed in /usr/share/bash-completion/completions. You may"
ewarn "need to rebuild packages that installed completions in the old"
ewarn "location. You can do this using:"
ewarn
ewarn "$ find ${EPREFIX}/usr/share/bash-completion -maxdepth 1 -type f '!' -name 'bash_completion' -exec emerge -1v {} +"
ewarn
ewarn "After the rebuild, you should remove the old setup symlinks:"
ewarn
ewarn "$ find ${EPREFIX}/etc/bash_completion.d -type l -delete"
fi
if has_version 'app-shells/zsh'; then
elog
elog "If you are interested in using the provided bash completion functions with"
elog "zsh, valuable tips on the effective use of bashcompinit are available:"
elog " http://www.zsh.org/mla/workers/2003/msg00046.html"
elog
fi
}

View File

@ -1,170 +0,0 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
BASHCOMP_P=bashcomp-2.0.3
PYTHON_COMPAT=( python3_{10..13} )
inherit autotools python-any-r1
DESCRIPTION="Programmable Completion for bash"
HOMEPAGE="https://github.com/scop/bash-completion"
SRC_URI="
https://github.com/scop/bash-completion/releases/download/${PV}/${P}.tar.xz
eselect? (
https://github.com/projg2/bashcomp2/releases/download/v${BASHCOMP_P#*-}/${BASHCOMP_P}.tar.gz
)
"
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
IUSE="+eselect test"
RESTRICT="!test? ( test )"
# completion collision with net-fs/mc
RDEPEND="
>=app-shells/bash-4.3_p30-r1:0
sys-apps/miscfiles
!<app-text/tree-2.1.1-r1
!!net-fs/mc
"
BDEPEND="
test? (
${RDEPEND}
$(python_gen_any_dep '
dev-python/pexpect[${PYTHON_USEDEP}]
dev-python/pytest[${PYTHON_USEDEP}]
dev-python/pytest-xdist[${PYTHON_USEDEP}]
')
)
"
PDEPEND="
>=app-shells/gentoo-bashcomp-20140911
"
PATCHES=(
"${FILESDIR}"/${PN}-2.14.0-optimize-kernel-modules.patch
"${FILESDIR}"/${PN}-2.16.0-libsecret-completion.patch
)
strip_completions() {
# Remove unwanted completions.
local strip_completions=(
# Slackware package stuff, quite generic names cause collisions
# (e.g. with sys-apps/pacman)
explodepkg installpkg makepkg pkgtool removepkg upgradepkg
# Debian/Red Hat network stuff
ifdown ifup ifquery ifstatus
# Installed in app-editors/vim-core
xxd
# Now-dead symlinks to deprecated completions
hd ncal
# For GNU mailman, which isn't packaged. If mailman isn't installed,
# it triggers a QA warning.
arch
)
local file
for file in "${strip_completions[@]}"; do
rm "${ED}"/usr/share/bash-completion/completions/${file} ||
die "stripping ${file} failed"
done
# remove deprecated completions (moved to other packages)
rm "${ED}"/usr/share/bash-completion/completions/_* || die
}
python_check_deps() {
python_has_version "dev-python/pexpect[${PYTHON_USEDEP}]" &&
python_has_version "dev-python/pytest[${PYTHON_USEDEP}]" &&
python_has_version "dev-python/pytest-xdist[${PYTHON_USEDEP}]"
}
pkg_setup() {
use test && python-any-r1_pkg_setup
}
src_prepare() {
if use eselect; then
eapply "${WORKDIR}/${BASHCOMP_P}/bash-completion-blacklist-support.patch"
fi
default
# Only needed for ${PN}-2.16.0-libsecret-completion.patch
eautoreconf
}
src_test() {
local EPYTEST_DESELECT=(
# redhat-specific, we strip these completions
test/t/test_if{down,up}.py
# not available for icedtea
test/t/test_javaws.py
# TODO
test/t/test_vi.py::TestVi::test_2
test/t/test_xmlwf.py::TestXmlwf::test_2 #bug 886159
test/t/test_xrandr.py::TestXrandr::test_output_filter
test/t/unit/test_unit_dequote.py
test/t/test_sudo.py::TestSudo::test_1 #bug 935400
test/t/test_xfreerdp.py::TestXfreerdp::test_6 #bug 935400
test/t/unit/test_unit_command_offset.py::TestUnitCommandOffset::test_cmd_quoted #bug 931744
test/t/test_make.py::TestMake::test_6 #bug 931744
)
local EPYTEST_IGNORE=(
# stupid test that async tests work
test/fixtures/pytest/test_async.py
)
local EPYTEST_XDIST=1
# portage's HOME override breaks tests
local -x HOME=$(unset HOME; echo ~)
addpredict "${HOME}"
# used in pytest tests
local -x NETWORK=none
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
local -x PYTEST_PLUGINS=xdist.plugin
emake -C completions check
epytest
}
src_install() {
# work-around race conditions, bug #526996
mkdir -p "${ED}"/usr/share/bash-completion/{completions,helpers} || die
emake DESTDIR="${D}" profiledir="${EPREFIX}"/etc/bash/bashrc.d install
strip_completions
dodoc AUTHORS CHANGELOG.md CONTRIBUTING.md README.md
# install the python completions for all targets, bug #622892
local TARGET
for TARGET in "${PYTHON_COMPAT[@]}"; do
if [[ ! -e "${ED}"/usr/share/bash-completion/completions/${TARGET/_/.} ]]; then
dosym python "${ED}"/usr/share/bash-completion/completions/${TARGET/_/.}
fi
done
# install the eselect module
if use eselect; then
insinto /usr/share/eselect/modules
doins "${WORKDIR}/${BASHCOMP_P}/bashcomp.eselect"
doman "${WORKDIR}/${BASHCOMP_P}/bashcomp.eselect.5"
fi
}
pkg_postinst() {
if has_version 'app-shells/zsh'; then
elog
elog "If you are interested in using the provided bash completion functions with"
elog "zsh, valuable tips on the effective use of bashcompinit are available:"
elog " http://www.zsh.org/mla/workers/2003/msg00046.html"
elog
fi
}

View File

@ -1,169 +0,0 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
BASHCOMP_P=bashcomp-2.0.3
PYTHON_COMPAT=( python3_{11..13} )
inherit autotools python-any-r1
DESCRIPTION="Programmable Completion for bash"
HOMEPAGE="https://github.com/scop/bash-completion"
SRC_URI="
https://github.com/scop/bash-completion/releases/download/${PV}/${P}.tar.xz
eselect? (
https://github.com/projg2/bashcomp2/releases/download/v${BASHCOMP_P#*-}/${BASHCOMP_P}.tar.gz
)
"
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
IUSE="+eselect test"
RESTRICT="!test? ( test )"
RDEPEND="
>=app-shells/bash-4.3_p30-r1:0
sys-apps/miscfiles
!<app-text/tree-2.1.1-r1
!!<=net-fs/mc-2025.04.16.18.13.26
"
BDEPEND="
test? (
${RDEPEND}
$(python_gen_any_dep '
dev-python/pexpect[${PYTHON_USEDEP}]
dev-python/pytest[${PYTHON_USEDEP}]
dev-python/pytest-xdist[${PYTHON_USEDEP}]
')
)
"
PDEPEND="
>=app-shells/gentoo-bashcomp-20140911
"
PATCHES=(
"${FILESDIR}"/${PN}-2.14.0-optimize-kernel-modules.patch
"${FILESDIR}"/${PN}-2.16.0-libsecret-completion.patch
)
strip_completions() {
# Remove unwanted completions.
local strip_completions=(
# Slackware package stuff, quite generic names cause collisions
# (e.g. with sys-apps/pacman)
explodepkg installpkg makepkg pkgtool removepkg upgradepkg
# Debian/Red Hat network stuff
ifdown ifup ifquery ifstatus
# Installed in app-editors/vim-core
xxd
# Now-dead symlinks to deprecated completions
hd ncal
# For GNU mailman, which isn't packaged. If mailman isn't installed,
# it triggers a QA warning.
arch
)
local file
for file in "${strip_completions[@]}"; do
rm "${ED}"/usr/share/bash-completion/completions/${file} ||
die "stripping ${file} failed"
done
# remove deprecated completions (moved to other packages)
rm "${ED}"/usr/share/bash-completion/completions/_* || die
}
python_check_deps() {
python_has_version "dev-python/pexpect[${PYTHON_USEDEP}]" &&
python_has_version "dev-python/pytest[${PYTHON_USEDEP}]" &&
python_has_version "dev-python/pytest-xdist[${PYTHON_USEDEP}]"
}
pkg_setup() {
use test && python-any-r1_pkg_setup
}
src_prepare() {
if use eselect; then
eapply "${WORKDIR}/${BASHCOMP_P}/bash-completion-blacklist-support.patch"
fi
default
# Only needed for ${PN}-2.16.0-libsecret-completion.patch
eautoreconf
}
src_test() {
local EPYTEST_DESELECT=(
# redhat-specific, we strip these completions
test/t/test_if{down,up}.py
# not available for icedtea
test/t/test_javaws.py
# TODO
test/t/test_vi.py::TestVi::test_2
test/t/test_xmlwf.py::TestXmlwf::test_2 #bug 886159
test/t/test_xrandr.py::TestXrandr::test_output_filter
test/t/unit/test_unit_dequote.py
test/t/test_sudo.py::TestSudo::test_1 #bug 935400
test/t/test_xfreerdp.py::TestXfreerdp::test_6 #bug 935400
test/t/unit/test_unit_command_offset.py::TestUnitCommandOffset::test_cmd_quoted #bug 931744
test/t/test_make.py::TestMake::test_6 #bug 931744
)
local EPYTEST_IGNORE=(
# stupid test that async tests work
test/fixtures/pytest/test_async.py
)
local EPYTEST_XDIST=1
# portage's HOME override breaks tests
local -x HOME=$(unset HOME; echo ~)
addpredict "${HOME}"
# used in pytest tests
local -x NETWORK=none
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
local -x PYTEST_PLUGINS=xdist.plugin
emake -C completions check
epytest
}
src_install() {
# work-around race conditions, bug #526996
mkdir -p "${ED}"/usr/share/bash-completion/{completions,helpers} || die
emake DESTDIR="${D}" profiledir="${EPREFIX}"/etc/bash/bashrc.d install
strip_completions
dodoc AUTHORS CHANGELOG.md CONTRIBUTING.md README.md
# install the python completions for all targets, bug #622892
local TARGET
for TARGET in "${PYTHON_COMPAT[@]}"; do
if [[ ! -e "${ED}"/usr/share/bash-completion/completions/${TARGET/_/.} ]]; then
dosym python "${ED}"/usr/share/bash-completion/completions/${TARGET/_/.}
fi
done
# install the eselect module
if use eselect; then
insinto /usr/share/eselect/modules
doins "${WORKDIR}/${BASHCOMP_P}/bashcomp.eselect"
doman "${WORKDIR}/${BASHCOMP_P}/bashcomp.eselect.5"
fi
}
pkg_postinst() {
if has_version 'app-shells/zsh'; then
elog
elog "If you are interested in using the provided bash completion functions with"
elog "zsh, valuable tips on the effective use of bashcompinit are available:"
elog " http://www.zsh.org/mla/workers/2003/msg00046.html"
elog
fi
}

View File

@ -1,167 +0,0 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
BASHCOMP_P=bashcomp-2.0.3
PYTHON_COMPAT=( python3_{10..13} )
inherit python-any-r1
DESCRIPTION="Programmable Completion for bash"
HOMEPAGE="https://github.com/scop/bash-completion"
SRC_URI="
https://github.com/scop/bash-completion/releases/download/${PV}/${P}.tar.xz
eselect? (
https://github.com/projg2/bashcomp2/releases/download/v${BASHCOMP_P#*-}/${BASHCOMP_P}.tar.gz
)
"
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
IUSE="+eselect test"
RESTRICT="!test? ( test )"
# completion collision with net-fs/mc
RDEPEND="
>=app-shells/bash-4.3_p30-r1:0
sys-apps/miscfiles
!<app-text/tree-2.1.1-r1
!!net-fs/mc
"
BDEPEND="
test? (
${RDEPEND}
$(python_gen_any_dep '
dev-python/pexpect[${PYTHON_USEDEP}]
dev-python/pytest[${PYTHON_USEDEP}]
dev-python/pytest-xdist[${PYTHON_USEDEP}]
')
)
"
PDEPEND="
>=app-shells/gentoo-bashcomp-20140911
"
PATCHES=(
"${FILESDIR}"/${PN}-2.14.0-optimize-kernel-modules.patch
)
strip_completions() {
# Remove unwanted completions.
local strip_completions=(
# Slackware package stuff, quite generic names cause collisions
# (e.g. with sys-apps/pacman)
explodepkg installpkg makepkg pkgtool removepkg upgradepkg
# Debian/Red Hat network stuff
ifdown ifup ifquery ifstatus
# Installed in app-editors/vim-core
xxd
# Now-dead symlinks to deprecated completions
hd ncal
# For GNU mailman, which isn't packaged. If mailman isn't installed,
# it triggers a QA warning.
arch
)
local file
for file in "${strip_completions[@]}"; do
rm "${ED}"/usr/share/bash-completion/completions/${file} ||
die "stripping ${file} failed"
done
# remove deprecated completions (moved to other packages)
rm "${ED}"/usr/share/bash-completion/completions/_* || die
}
python_check_deps() {
python_has_version "dev-python/pexpect[${PYTHON_USEDEP}]" &&
python_has_version "dev-python/pytest[${PYTHON_USEDEP}]" &&
python_has_version "dev-python/pytest-xdist[${PYTHON_USEDEP}]"
}
pkg_setup() {
use test && python-any-r1_pkg_setup
}
src_prepare() {
if use eselect; then
eapply "${WORKDIR}/${BASHCOMP_P}/bash-completion-blacklist-support.patch"
fi
default
}
src_test() {
local EPYTEST_DESELECT=(
# redhat-specific, we strip these completions
test/t/test_if{down,up}.py
# not available for icedtea
test/t/test_javaws.py
# TODO
test/t/test_vi.py::TestVi::test_2
test/t/test_xmlwf.py::TestXmlwf::test_2 #bug 886159
test/t/test_xrandr.py::TestXrandr::test_output_filter
test/t/unit/test_unit_dequote.py
test/t/test_sudo.py::TestSudo::test_1 #bug 935400
test/t/test_xfreerdp.py::TestXfreerdp::test_6 #bug 935400
test/t/unit/test_unit_command_offset.py::TestUnitCommandOffset::test_cmd_quoted #bug 931744
test/t/test_make.py::TestMake::test_6 #bug 931744
)
local EPYTEST_IGNORE=(
# stupid test that async tests work
test/fixtures/pytest/test_async.py
)
local EPYTEST_XDIST=1
# portage's HOME override breaks tests
local -x HOME=$(unset HOME; echo ~)
addpredict "${HOME}"
# used in pytest tests
local -x NETWORK=none
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
local -x PYTEST_PLUGINS=xdist.plugin
emake -C completions check
epytest
}
src_install() {
# work-around race conditions, bug #526996
mkdir -p "${ED}"/usr/share/bash-completion/{completions,helpers} || die
emake DESTDIR="${D}" profiledir="${EPREFIX}"/etc/bash/bashrc.d install
strip_completions
dodoc AUTHORS CHANGELOG.md CONTRIBUTING.md README.md
# install the python completions for all targets, bug #622892
local TARGET
for TARGET in "${PYTHON_COMPAT[@]}"; do
if [[ ! -e "${ED}"/usr/share/bash-completion/completions/${TARGET/_/.} ]]; then
dosym python "${ED}"/usr/share/bash-completion/completions/${TARGET/_/.}
fi
done
# install the eselect module
if use eselect; then
insinto /usr/share/eselect/modules
doins "${WORKDIR}/${BASHCOMP_P}/bashcomp.eselect"
doman "${WORKDIR}/${BASHCOMP_P}/bashcomp.eselect.5"
fi
}
pkg_postinst() {
if has_version 'app-shells/zsh'; then
elog
elog "If you are interested in using the provided bash completion functions with"
elog "zsh, valuable tips on the effective use of bashcompinit are available:"
elog " http://www.zsh.org/mla/workers/2003/msg00046.html"
elog
fi
}

View File

@ -2,10 +2,16 @@ DIST Python-2.7.18.tar.xz 12854736 BLAKE2B 060a621c91dd8e3d321aec99d44c17aa67381
DIST Python-2.7.18.tar.xz.asc 833 BLAKE2B 1d98770e46171971fb99994508d238c01d2755281d2f94353314014d9e83e0ec5f0b3e3950ea1fdf5fce9ba6b8f55312355845c2a3fc4291c27ee56fe6215448 SHA512 c2a5f5a52f47dec52460ad3275758d4e5de6e7075c3def4353c988d74d563a39b42cae2d5eb24e2a23a6247cef69100f91620b11a49c2359fbf99b203c9cbda8
DIST Python-3.10.19.tar.xz 19873020 BLAKE2B 194c36643fbdfaa777523ede07cc751c8de7dc549223ba1e48d55796fc8c7b1b6f835d62e8cd1d34e011497a9df971ad073a3949dfdfe88043a65e9cb7bb7f72 SHA512 9ea1e952bb5f7c9cc8d3efd8e7ae0059c129b6e09d12ded7d4e22476fad35f2c8186b1e003ea35a0099ffa5ff0a114985c3e960fba84e7037670b840a3e19c68
DIST Python-3.10.19.tar.xz.asc 833 BLAKE2B 7378ba5751974d758cbedb0b14d239883da8f6e514232909056952be5f66496d5b59d0435f6cc34b9df85fdf3969537c85eea044e6af9faed7041d2a78e77b2a SHA512 64bcee68c2f4e0718daaf19d405f4a5bd0ce3fc3d13bb5cbae8d4a36e419dd104c94323b497f1d06110f6b62a1b3b351279c534145f4e8cea9af0d7bb0a8b5c9
DIST Python-3.10.20.tar.xz 19868028 BLAKE2B 2c87aba3688454eeba9828689f7d6b4cd31d12b23cff8849f6565ba3731030a726f00285d95c301f4cd6ea4316a0b63b10b2d551e03c7eaf7750f69a422626e1 SHA512 591d3acf7ef47307b8c58fec9516731b374bcdf6eb21883410f67402f823a183f1abffec1116583e394610730f414d5a98b4c3437ea5174a4d2adbb99b8f6e5b
DIST Python-3.10.20.tar.xz.asc 833 BLAKE2B a0c698708b74cc9510374c07cc65b69fd492aeef1e910e58289f7f197edf5d42b4a14a09971c36fd8e8d01b744197a58ce081a8830610009306136ee3dc279ff SHA512 cb90ce514c63c63adc10cbb3db778eae626b922461715954daf08b3a3a99b8b4c750fded624787b7d28fc10a203b0e0e5494b91e5305ef56a23fda46c023c203
DIST Python-3.11.14.tar.xz 20326860 BLAKE2B d0db72842e46fd2b95d245e8fe4550a52ad2eabcb95900d8beb2f871ed25494dba395bf30e93591ecc42b99cd587c6ecb06578d1232fe51a04e37bf00dec307d SHA512 8b5aa917fe67dbaa3c306239ed56c16cd7a3b4b701fab0b3dc0d342d60176c75440713bcab0c59a3289ac4a0f06103bd31140c492556e1937fcdbd990675f9e5
DIST Python-3.11.14.tar.xz.asc 833 BLAKE2B 5b32ac50e6e725d9949bb6e89179d1c06c4e7d04ea82f6b80b64573c7e05b94da12de5738d0d7a5b73ad8d4cf1a5b35c5738c9e5a4ef93f97bb660f6f8b7cfc7 SHA512 d0049fd6f6d06ae5d86b3587080be060d522dd52e7e56270125541d5617582ea3977b75c7e585da005694665cfc5657e39033a730187c506edc252965f4df769
DIST Python-3.11.15.tar.xz 20332596 BLAKE2B 8be4dd30aff7a2615fd37754dc6ed1caede1507ef7716e500a2e1d1aa421668e810a2c13dfc743bcd47576a7715588476bd8c3d42275a24215a85109d6da7062 SHA512 1667f4839acfd23d05917a12993983b7dc3ab4438a37c72496fd040ac6981f4dea9dc95461ca701a6862beedb56c423fb83398b8b18e39e1efe12f539fced1c1
DIST Python-3.11.15.tar.xz.asc 833 BLAKE2B dd4134701ef36d22c7bca8ea16794d3e85dc2a2b6323b2babfdeb2652ade1db8b7d4256cb68a40ee1c1a2b5885666e25791c1e4d6c044cc8d49f68693ec65887 SHA512 673822ca037acb521bf7d3e7433f83cc2d60c8d102cfbf6695234e2a50ce12a7003040ad4017438510ebbb1ff0ba6727253fae250b07bc0e3d24b5578e80be52
DIST Python-3.12.12.tar.xz 20798712 BLAKE2B 3ce140b5b2c5e3b055118c8595385c7d79582c64cd8dfe9dbd062f8e38a7a995bf51f7c61e1faa768bd36c315c3493d27cd81c7425c7416454f41f77431eac0f SHA512 4b99d240dd96a6e154909dcffe87f8bb38193d634cd80a1c3d9e819b7a63af2afa46d5e6423e81f00dd388840dc29a4a71580f6aa1ce9a12e559c1d63f65a205
DIST Python-3.12.12.tar.xz.asc 963 BLAKE2B 243d7e8000768b562ff771ec8dd8fdc6be2bc36174a1f0f8b00038df2264c9d1c8a14913d07df2826fead822a16db18ef08b40d553f6a9bdc0ea39645d6d798a SHA512 32c10fd427c6f9f11595493d1b4d4c3cade85bffd439fe11e8b0b2c619e06734097b6aaedfdb4fe035b7fdd7196714dba77cdc806923e4454d5bcf60056991a0
DIST Python-3.12.13.tar.xz 20801708 BLAKE2B 94b99c75e3aba1d1a953b5447f8ad6b7ebec921bc8cf32a9dfd449e574e4b7e2a010f0f267c31c859acec0092669203c71c90386c80203968126d9dbfb6ae85d SHA512 e1eb66f0b34581f0155e3ce25ba72cf0b4b1107672ed0ad3e86bcfe616945c9204c41ffc492f32b1066b9154913ff88343038967ad8711dd05e6f2332fdb735b
DIST Python-3.12.13.tar.xz.asc 963 BLAKE2B e6bc572fd207fe203cf8018bca89777c7033e46d25cc598b5715658f556d26b6f3b1652f13518850ad62a37254ab4ecf5f770197cb847306ffef96b747840e88 SHA512 903fd3baa7e29891bb00fb159ec9c43804a71002c4cd38902d25bf4e5167f856b37d211a5b1098ee60e1ea41f8a10a1596dd2382edc6d7367d55dd4154807fc7
DIST Python-3.13.11.tar.xz 22704352 BLAKE2B 6c9c4dddcda36a0210155b759c01101b0429b17622d76a50881533b454335298e9f71ba300710afea2039425a08e4e1ea7eab27a18dc871950c3a32ad93ce663 SHA512 11a910785bb3edeb3888331f29d2514d539f08b07d3125186364ab0e261dab29c7e7c70fe08d89718c38b6053cbe932ac4a6062ac291871e6f4173d29425264a
DIST Python-3.13.11.tar.xz.asc 963 BLAKE2B a6e21908f8161ed014455a609004b9bce461cae61f1b3b26d56c2582e01134f7adb1634c12dc99a8c3a290564a42e5b1bdbec6cb6faaf3ea41245e8a2e17ed1c SHA512 10beaba6d0e84f0335c0add480114e98a64133ec70d320593349de86091ccbdd69743559297f9c8c5e9926089890fd0e7881388e86084f46a413e9579c59d23c
DIST Python-3.13.12.tar.xz 22926488 BLAKE2B a744a81e39e4897abcaf11d6186c106d703c668ca41beefc8d56003d3b37b84a64284f0e9ca9dcc26a6b7ac6faf495b98e5172159ff91e8c01d52993cdc354b7 SHA512 5edecdf13999d8629f31543dffdcba521dbb5633577e481ee49275e377509a2f6d700624c26f95b57a8ff9501378d10d7c07c1d0e7e19be0d6c88f05b6315a13
@ -29,10 +35,13 @@ DIST Python-3.9.25.tar.xz.asc 833 BLAKE2B 3ab506f78b53aed0b3ebbeb620e3763857aafc
DIST python-gentoo-patches-2.7.18_p16.tar.xz 35448 BLAKE2B 0139c0944f62f9cdd236f6a8557e0ed19704c7d72869af1cb7d8bd3e646a746cd4a0201e1b44232a5e78ef49f254db20b0d0271bf744fbfd4fe0f1e99b8f3e6c SHA512 810be590d0e06fab4b2165e6852ca49662f09dcd7e20b47a29f613ad7653252c8dfac3f0eb228d77c8a914efa7c08788b2fbd552a4b47504f5fd0ec17450c48f
DIST python-gentoo-patches-3.10.18.tar.xz 29664 BLAKE2B dd69f7866cebad2536b41056571d74cbd90800062b06612b7509c9ce8f258aef66586f3c6e08f52caaceb7b0a01a52502b9c763b6f7d94caac0e929d9d77219b SHA512 b4cf4ff2d7e5b73e1102acc2183c4da3e734bdbec1c284d1fef8aceba0d49246dcdc954d3e4119521fde1e895bab0754b34b346b736b46ce45aff1afc6d38cef
DIST python-gentoo-patches-3.10.19.tar.xz 29136 BLAKE2B 3dc3719a4e36d34529f81107c4b57a905df68c072732999cc701b8c8323361eef554b3b8db45d82eecb2eafff65892355ff85b19a3963c9a04077f660fd242b0 SHA512 3f55917563f3adf62c7e11e7411ddfc28ac1fdca1ba7d567c770897a4ae969a10911344c5808564b99bce1839a87bfc98bf41ce42719ba2885c2d35644cf260b
DIST python-gentoo-patches-3.10.20.tar.xz 29180 BLAKE2B 3179a983fd4f744a6d29cb345f9e3ee1348c4feeaf2eb67ff2f3069811764129b5fc10f728c2cbc3731c7d3bbe566f08d8d4b564b907d2492ea063c284424c1a SHA512 bd7c8fea81d3e7eada0e01ff60cf37133f66d61fab3d39778ded88f445f7830493c3ef2cfbd136bc1d15526730f4b4455d6b0adbefb6a275e6b8cfe53255eb34
DIST python-gentoo-patches-3.11.13.tar.xz 16492 BLAKE2B 8b188742dd3f25974cead290e5793c31f02741a901dce65137c596045fa2fbd5baaef332204af90f95ddcd864ee542b252c00b190e15c25af60a7bda771b116f SHA512 b5abad341d2eede81df445b56a98720466ec23df40a8a2e99a04dba5a106205655c8e2b64df0ca2630f036c8fe457ba64524280d137bbc99f52e4fd8e6bbd5ae
DIST python-gentoo-patches-3.11.14.tar.xz 15968 BLAKE2B 5bd091046feee03afd59a87b72c44b3a0874b23f89eb98020cc057f5651d31857721eb095bd056dae8bef85220dbe5aff2900cf8411dceb14e8775a4a2f09a93 SHA512 760df16f98c1a91164b43c13eb36073c74169321569791125fdad8682419b818736fe02e40c1aa1232a11081b1007c923a8fd2afd002eb4fdff0800da92d03e2
DIST python-gentoo-patches-3.11.15.tar.xz 15988 BLAKE2B 16e98450749ebd1c617acbb9aba380fff50a8f7dba19f3f99edd3bd387c1a5d61d78cbf493cf003dfe03d2be59374ad89077b39fe203059bbbb881ae02a72ea5 SHA512 b705c72a585e315eb3ba69ffbf2a80836f0fc894fa8ae2c22768e6aa8ac2a23aada5def3d2635193793f58e3da81f0f10281c47bd8e129e1fd2c9167d292265b
DIST python-gentoo-patches-3.12.11.tar.xz 12020 BLAKE2B b419d32b1d7bef9408027edda7eac9a920a877e1b8f521483df595199bad1bbadd9dd9500079c09beab63286a801bfb25da5f93a5d31462ed3e457a6e40ad6af SHA512 1b0eaff4c0df06554525a50576da7eadb4067c4f2970851e5c9e3e527a9ccc4216cbd65c45fd562af4a1cedc2c66278a74bee5cf5c1a65df8feb22f34f5a19e4
DIST python-gentoo-patches-3.12.12.tar.xz 12012 BLAKE2B 4a030f976e73160f74dd760a8cac55a5889bf821e998b717962aac8b79780c314dfbabf93a6919daa75565c3ef31dcf6af87f3ec6768db0ff02154c4c112ab08 SHA512 d5ee32b93fb4a1910a8e3aa0486ae284885c05bd03ada3540f4990b4f12c837cd154e76511db663542dde74d652c3d1d279098319dcc991e7195e8db5befea12
DIST python-gentoo-patches-3.12.13_p1.tar.xz 12408 BLAKE2B 2b232c2742eafcb803713c837b4ddaa38f45c88e707ec272571739570f9e2e5c94644681369d887992eadf5f0c1178489f1aa3a7d8163a2aa4ce6a86732e73da SHA512 e06d78ad24c9fbc3fa9c47b25ba722342ddd140aa30f624b41d605dae40d00ab956d879a247db2d7980c063a1472de40587a0d3cd6947e560aa7e8d0e4f89309
DIST python-gentoo-patches-3.13.11.tar.xz 8948 BLAKE2B bb6402400f931fed5d0fa2530f816ba78d7f6aff766e72692884a391929df76cedcc9a9b7a709d8ebffb38fe9256dd78a2b668d49951e07bf61a5388bce49b34 SHA512 f184a682a888a8781aa1a4eb3983d5861d4eec2d0c0729ab95f867aa4a901c65865cc429e9b871c62d5d113509c3f621c7c81d7c7e4600b8a712a8ec256270a9
DIST python-gentoo-patches-3.13.12.tar.xz 8992 BLAKE2B e7a26ddbd76f337a0f3958e55d6f77864308d3db5b5b8bec36aa50c1845d28284c6d0ce4c847eb0ca2a51367baaf454be9c62bc1932ffdff5a4ee06c9701c3b4 SHA512 ef87942f8d1d145112b2275d1fce9f6faea19c37ed3e37fd8762f4470ecaa1d87f5a471f287d3e1bf7507af351894c15872ceea0ea41d4903707c12d4cf0c4d0
DIST python-gentoo-patches-3.13.4.tar.xz 8912 BLAKE2B e3d9f2a12f801dc75e09c5301757f35216d712b5e5394f2ec3ce1d79d0cb57571dbca525e3d5c35b90fa059c2b78ee24341b6a51cbe9691deac84c9ee0578824 SHA512 1a7141accb7aa70c7bd8dd12528f7de031dfeab9ff089f3d044da0b7b52461e2d6d7d1467161e0fe1e259d9fa06d70bcf107d86ad3590e8cf73aa1132ef3aaf9

View File

@ -0,0 +1,572 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="8"
WANT_LIBTOOL="none"
inherit autotools check-reqs flag-o-matic multiprocessing pax-utils
inherit prefix toolchain-funcs verify-sig
MY_PV=${PV/_rc/rc}
MY_P="Python-${MY_PV%_p*}"
PYVER=$(ver_cut 1-2)
PATCHSET="python-gentoo-patches-${MY_PV}"
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
HOMEPAGE="
https://www.python.org/
https://github.com/python/cpython/
"
SRC_URI="
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
verify-sig? (
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc
)
"
S="${WORKDIR}/${MY_P}"
LICENSE="PSF-2"
SLOT="${PYVER}"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="
bluetooth debug +ensurepip examples gdbm libedit +ncurses pgo
+readline +sqlite +ssl test tk valgrind
"
RESTRICT="!test? ( test )"
# Do not add a dependency on dev-lang/python to this ebuild.
# If you need to apply a patch which requires python for bootstrapping, please
# run the bootstrap code on your dev box and include the results in the
# patchset. See bug 447752.
RDEPEND="
app-arch/bzip2:=
app-arch/xz-utils:=
app-misc/mime-types
>=dev-libs/expat-2.1:=
dev-libs/libffi:=
dev-libs/mpdecimal:=
dev-python/gentoo-common
>=virtual/zlib-1.1.3:=
virtual/libcrypt:=
virtual/libintl
gdbm? ( sys-libs/gdbm:=[berkdb] )
kernel_linux? ( sys-apps/util-linux:= )
ncurses? ( >=sys-libs/ncurses-5.2:= )
readline? (
!libedit? ( >=sys-libs/readline-4.1:= )
libedit? ( dev-libs/libedit:= )
)
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
ssl? ( >=dev-libs/openssl-1.1.1:= )
tk? (
>=dev-lang/tcl-8.0:=
>=dev-lang/tk-8.0:=
dev-tcltk/blt:=
dev-tcltk/tix
)
"
# bluetooth requires headers from bluez
DEPEND="
${RDEPEND}
bluetooth? ( net-wireless/bluez )
test? (
app-arch/xz-utils
dev-python/ensurepip-pip
dev-python/ensurepip-setuptools
)
valgrind? ( dev-debug/valgrind )
"
# autoconf-archive needed to eautoreconf
BDEPEND="
dev-build/autoconf-archive
app-alternatives/awk
virtual/pkgconfig
verify-sig? ( sec-keys/openpgp-keys-python )
"
PDEPEND="
ensurepip? (
dev-python/ensurepip-pip
dev-python/ensurepip-setuptools
)
"
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
# large file tests involve a 2.5G file being copied (duplicated)
CHECKREQS_DISK_BUILD=5500M
QA_PKGCONFIG_VERSION=${PYVER}
# false positives -- functions specific to *BSD
QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
pkg_pretend() {
use test && check-reqs_pkg_pretend
}
pkg_setup() {
use test && check-reqs_pkg_setup
}
src_unpack() {
if use verify-sig; then
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
fi
default
}
src_prepare() {
# Ensure that internal copies of expat and libffi are not used.
rm -r Modules/expat || die
rm -r Modules/_ctypes/libffi* || die
local PATCHES=(
"${WORKDIR}/${PATCHSET}"
)
default
# https://bugs.gentoo.org/850151
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die
# force the correct number of jobs
# https://bugs.gentoo.org/737660
local jobs=$(makeopts_jobs)
sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
eautoreconf
}
build_cbuild_python() {
# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
# propagated to sysconfig for built extensions
#
# -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
local -x CFLAGS= LDFLAGS=
local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
# We need to build our own Python on CBUILD first, and feed it in.
# bug #847910 and bug #864911.
local myeconfargs_cbuild=(
"${myeconfargs[@]}"
--prefix="${BROOT}"/usr
--libdir="${cbuild_libdir:2}"
# Avoid needing to load the right libpython.so.
--disable-shared
# As minimal as possible for the mini CBUILD Python
# we build just for cross.
--without-lto
--disable-optimizations
)
mkdir "${WORKDIR}"/${P}-${CBUILD} || die
pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
# We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating
# libdir correctly for cross.
PYTHON_DISABLE_MODULES+=" _ctypes _crypt" \
ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
# Avoid as many dependencies as possible for the cross build.
cat >> Makefile <<-EOF || die
MODULE_NIS=disabled
MODULE__DBM=disabled
MODULE__GDBM=disabled
MODULE__DBM=disabled
MODULE__SQLITE3=disabled
MODULE__HASHLIB=disabled
MODULE__SSL=disabled
MODULE__CURSES=disabled
MODULE__CURSES_PANEL=disabled
MODULE_READLINE=disabled
MODULE__TKINTER=disabled
MODULE_PYEXPAT=disabled
MODULE_ZLIB=disabled
EOF
# Unfortunately, we do have to build this immediately, and
# not in src_compile, because CHOST configure for Python
# will check the existence of the Python it was pointed to
# immediately.
PYTHON_DISABLE_MODULES+=" _ctypes _crypt" emake
popd &> /dev/null || die
}
src_configure() {
# disable automagic bluetooth headers detection
if ! use bluetooth; then
local -x ac_cv_header_bluetooth_bluetooth_h=no
fi
local disable
use gdbm || disable+=" gdbm"
use ncurses || disable+=" _curses _curses_panel"
use readline || disable+=" readline"
use sqlite || disable+=" _sqlite3"
use ssl || export PYTHON_DISABLE_SSL="1"
use tk || disable+=" _tkinter"
export PYTHON_DISABLE_MODULES="${disable}"
if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
fi
filter-flags -malign-double
# Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
# PKG_CONFIG needed for cross.
tc-export CXX PKG_CONFIG
local dbmliborder=
if use gdbm; then
dbmliborder+="${dbmliborder:+:}gdbm"
fi
# Set baseline test skip flags.
COMMON_TEST_SKIPS=(
# running gdb inside an ebuild as non-root, within sandbox,
# and possibly within a container is unreliable
-x test_gdb
)
# Arch-specific skips. See #931888 for a collection of these.
case ${CHOST} in
alpha*)
COMMON_TEST_SKIPS+=(
-x test_builtin
-x test_capi
-x test_cmath
-x test_float
# timeout
-x test_free_threading
-x test_math
-x test_numeric_tower
-x test_random
-x test_statistics
# bug 653850
-x test_resource
-x test_strtod
)
;;
mips*)
COMMON_TEST_SKIPS+=(
-x test_ctypes
-x test_external_inspection
-x test_statistics
)
;;
powerpc64-*) # big endian
COMMON_TEST_SKIPS+=(
-x test_descr
)
;;
riscv*)
COMMON_TEST_SKIPS+=(
-x test_urllib2
)
;;
sparc*)
COMMON_TEST_SKIPS+=(
# bug 788022
-x test_multiprocessing_fork
-x test_multiprocessing_forkserver
-x test_multiprocessing_spawn
-x test_ctypes
-x test_descr
# bug 931908
-x test_exceptions
)
;;
esac
# musl-specific skips
use elibc_musl && COMMON_TEST_SKIPS+=(
# various musl locale deficiencies
-x test__locale
-x test_c_locale_coercion
-x test_locale
-x test_re
# known issues with find_library on musl
# https://bugs.python.org/issue21622
-x test_ctypes
# fpathconf, ttyname errno values
-x test_os
)
if use pgo; then
local profile_task_flags=(
-m test
"-j$(makeopts_jobs)"
--pgo-extended
-u-network
# We use a timeout because of how often we've had hang issues
# here. It also matches the default upstream PROFILE_TASK.
--timeout 1200
"${COMMON_TEST_SKIPS[@]}"
-x test_dtrace
# All of these seem to occasionally hang for PGO inconsistently
# They'll even hang here but be fine in src_test sometimes.
# bug #828535 (and related: bug #788022)
-x test_asyncio
-x test_concurrent_futures
-x test_httpservers
-x test_logging
-x test_multiprocessing_fork
-x test_socket
-x test_xmlrpc
# Hangs (actually runs indefinitely executing itself w/ many cpython builds)
# bug #900429
-x test_tools
)
# Arch-specific skips. See #931888 for a collection of these.
case ${CHOST} in
alpha*)
profile_task_flags+=(
-x test_os
)
;;
hppa*)
profile_task_flags+=(
-x test_descr
# bug 931908
-x test_exceptions
-x test_os
)
;;
powerpc64-*) # big endian
profile_task_flags+=(
# bug 931908
-x test_exceptions
)
;;
riscv*)
profile_task_flags+=(
-x test_statistics
)
;;
esac
if has_version "app-arch/rpm" ; then
# Avoid sandbox failure (attempts to write to /var/lib/rpm)
profile_task_flags+=(
-x test_distutils
)
fi
local -x PROFILE_TASK="${profile_task_flags[*]}"
fi
local myeconfargs=(
# glibc-2.30 removes it; since we can't cleanly force-rebuild
# Python on glibc upgrade, remove it proactively to give
# a chance for users rebuilding python before glibc
ac_cv_header_stropts_h=no
--enable-shared
--without-static-libpython
--enable-ipv6
--infodir='${prefix}/share/info'
--mandir='${prefix}/share/man'
--with-dbmliborder="${dbmliborder}"
--with-libc=
--enable-loadable-sqlite-extensions
--without-ensurepip
--without-lto
--with-system-expat
--with-system-ffi
--with-system-libmpdec
--with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
$(use_with debug assertions)
$(use_enable pgo optimizations)
$(use_with readline readline "$(usex libedit editline readline)")
$(use_with valgrind)
)
# disable implicit optimization/debugging flags
local -x OPT=
# https://bugs.gentoo.org/700012
if tc-is-lto; then
append-cflags $(test-flags-CC -ffat-lto-objects)
myeconfargs+=(
--with-lto
)
fi
if tc-is-cross-compiler ; then
build_cbuild_python
# Point the imminent CHOST build to the Python we just
# built for CBUILD.
export PATH="${WORKDIR}/${P}-${CBUILD}:${PATH}"
fi
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
# propagated to sysconfig for built extensions
local -x CFLAGS_NODIST=${CFLAGS}
local -x LDFLAGS_NODIST=${LDFLAGS}
local -x CFLAGS= LDFLAGS=
# Fix implicit declarations on cross and prefix builds. Bug #674070.
if use ncurses; then
append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
fi
hprefixify setup.py
econf "${myeconfargs[@]}"
if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
eerror "configure has detected that the sem_open function is broken."
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
die "Broken sem_open function (bug 496328)"
fi
# install epython.py as part of stdlib
echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
}
src_compile() {
# Ensure sed works as expected
# https://bugs.gentoo.org/594768
local -x LC_ALL=C
# Prevent using distutils bundled by setuptools.
# https://bugs.gentoo.org/823728
export SETUPTOOLS_USE_DISTUTILS=stdlib
# Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't
# end up writing bytecode & violating sandbox.
# bug #831897
local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
# Gentoo hack to disable accessing system site-packages
export GENTOO_CPYTHON_BUILD=1
if use pgo ; then
# bug 660358
local -x COLUMNS=80
local -x PYTHONDONTWRITEBYTECODE=
local -x TMPDIR=/var/tmp
fi
# also need to clear the flags explicitly here or they end up
# in _sysconfigdata*
emake CPPFLAGS= CFLAGS= LDFLAGS=
# Restore saved value from above.
local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE}
# Work around bug 329499. See also bug 413751 and 457194.
if has_version dev-libs/libffi[pax-kernel]; then
pax-mark E python
else
pax-mark m python
fi
}
src_test() {
# Tests will not work when cross compiling.
if tc-is-cross-compiler; then
elog "Disabling tests due to crosscompiling."
return
fi
local test_opts=(
--verbose3
-u-network
-j "$(makeopts_jobs)"
"${COMMON_TEST_SKIPS[@]}"
)
# bug 660358
local -x COLUMNS=80
local -x PYTHONDONTWRITEBYTECODE=
local -x TMPDIR=/var/tmp
nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \
CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
local ret=${?}
[[ ${ret} -eq 0 ]] || die "emake test failed"
}
src_install() {
local libdir=${ED}/usr/lib/python${PYVER}
emake DESTDIR="${D}" TEST_MODULES=no altinstall
# Fix collisions between different slots of Python.
rm "${ED}/usr/$(get_libdir)/libpython3.so" || die
# Cheap hack to get version with ABIFLAGS
local abiver=$(cd "${ED}/usr/include"; echo python*)
if [[ ${abiver} != python${PYVER} ]]; then
# Replace python3.X with a symlink to python3.Xm
rm "${ED}/usr/bin/python${PYVER}" || die
dosym "${abiver}" "/usr/bin/python${PYVER}"
# Create python3.X-config symlink
dosym "${abiver}-config" "/usr/bin/python${PYVER}-config"
# Create python-3.5m.pc symlink
dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc"
fi
# python seems to get rebuilt in src_install (bug 569908)
# Work around it for now.
if has_version dev-libs/libffi[pax-kernel]; then
pax-mark E "${ED}/usr/bin/${abiver}"
else
pax-mark m "${ED}/usr/bin/${abiver}"
fi
rm -r "${libdir}"/ensurepip/_bundled || die
if ! use ensurepip; then
rm -r "${libdir}"/ensurepip || die
fi
if ! use sqlite; then
rm -r "${libdir}/"sqlite3 || die
fi
if ! use tk; then
rm -r "${ED}/usr/bin/idle${PYVER}" || die
rm -r "${libdir}/"{idlelib,tkinter} || die
fi
ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die
dodoc Misc/{ACKS,HISTORY,NEWS}
if use examples; then
docinto examples
find Tools -name __pycache__ -exec rm -fr {} + || die
dodoc -r Tools
fi
insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510
local libname=$(
printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' |
emake --no-print-directory -s -f - 2>/dev/null
)
newins Tools/gdb/libpython.py "${libname}"-gdb.py
newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER}
newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER}
sed \
-e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \
-e "s:@PYDOC@:pydoc${PYVER}:" \
-i "${ED}/etc/conf.d/pydoc-${PYVER}" \
"${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed"
}

View File

@ -0,0 +1,619 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="8"
WANT_LIBTOOL="none"
inherit autotools check-reqs flag-o-matic multiprocessing pax-utils
inherit prefix python-utils-r1 toolchain-funcs verify-sig
MY_PV=${PV/_rc/rc}
MY_P="Python-${MY_PV%_p*}"
PYVER=$(ver_cut 1-2)
PATCHSET="python-gentoo-patches-${MY_PV}"
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
HOMEPAGE="
https://www.python.org/
https://github.com/python/cpython/
"
SRC_URI="
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
verify-sig? (
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc
)
"
S="${WORKDIR}/${MY_P}"
LICENSE="PSF-2"
SLOT="${PYVER}"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="
bluetooth debug +ensurepip examples gdbm libedit +ncurses pgo
+readline +sqlite +ssl test tk valgrind
"
RESTRICT="!test? ( test )"
# Do not add a dependency on dev-lang/python to this ebuild.
# If you need to apply a patch which requires python for bootstrapping, please
# run the bootstrap code on your dev box and include the results in the
# patchset. See bug 447752.
RDEPEND="
app-arch/bzip2:=
app-arch/xz-utils:=
app-crypt/libb2
app-misc/mime-types
>=dev-libs/expat-2.1:=
dev-libs/libffi:=
dev-libs/mpdecimal:=
dev-python/gentoo-common
>=virtual/zlib-1.1.3:=
virtual/libcrypt:=
virtual/libintl
gdbm? ( sys-libs/gdbm:=[berkdb] )
kernel_linux? ( sys-apps/util-linux:= )
ncurses? ( >=sys-libs/ncurses-5.2:= )
readline? (
!libedit? ( >=sys-libs/readline-4.1:= )
libedit? ( dev-libs/libedit:= )
)
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
ssl? ( >=dev-libs/openssl-1.1.1:= )
tk? (
>=dev-lang/tcl-8.0:=
>=dev-lang/tk-8.0:=
dev-tcltk/blt:=
dev-tcltk/tix
)
"
# bluetooth requires headers from bluez
DEPEND="
${RDEPEND}
bluetooth? ( net-wireless/bluez )
test? (
app-arch/xz-utils
dev-python/ensurepip-pip
dev-python/ensurepip-setuptools
)
valgrind? ( dev-debug/valgrind )
"
# autoconf-archive needed to eautoreconf
BDEPEND="
dev-build/autoconf-archive
app-alternatives/awk
virtual/pkgconfig
verify-sig? ( sec-keys/openpgp-keys-python )
"
if [[ ${PV} != *_alpha* ]]; then
RDEPEND+="
dev-lang/python-exec[python_targets_python${PYVER/./_}(-)]
"
fi
PDEPEND="
ensurepip? (
dev-python/ensurepip-pip
dev-python/ensurepip-setuptools
)
"
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
# large file tests involve a 2.5G file being copied (duplicated)
CHECKREQS_DISK_BUILD=5500M
QA_PKGCONFIG_VERSION=${PYVER}
# false positives -- functions specific to *BSD
QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
pkg_pretend() {
use test && check-reqs_pkg_pretend
}
pkg_setup() {
use test && check-reqs_pkg_setup
}
src_unpack() {
if use verify-sig; then
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
fi
default
}
src_prepare() {
# Ensure that internal copies of expat and libffi are not used.
rm -r Modules/expat || die
rm -r Modules/_ctypes/libffi* || die
local PATCHES=(
"${WORKDIR}/${PATCHSET}"
)
default
# https://bugs.gentoo.org/850151
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die
# force the correct number of jobs
# https://bugs.gentoo.org/737660
local jobs=$(makeopts_jobs)
sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
eautoreconf
}
build_cbuild_python() {
# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
# propagated to sysconfig for built extensions
#
# -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
local -x CFLAGS= LDFLAGS=
local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
# We need to build our own Python on CBUILD first, and feed it in.
# bug #847910
local myeconfargs_cbuild=(
"${myeconfargs[@]}"
--prefix="${BROOT}"/usr
--libdir="${cbuild_libdir:2}"
# Avoid needing to load the right libpython.so.
--disable-shared
# As minimal as possible for the mini CBUILD Python
# we build just for cross to satisfy --with-build-python.
--without-lto
--without-readline
--disable-optimizations
)
mkdir "${WORKDIR}"/${P}-${CBUILD} || die
pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
# We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating
# libdir correctly for cross.
PYTHON_DISABLE_MODULES+=" _ctypes _crypt" \
ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
# Avoid as many dependencies as possible for the cross build.
cat >> Makefile <<-EOF || die
MODULE_NIS_STATE=disabled
MODULE__DBM_STATE=disabled
MODULE__GDBM_STATE=disabled
MODULE__DBM_STATE=disabled
MODULE__SQLITE3_STATE=disabled
MODULE__HASHLIB_STATE=disabled
MODULE__SSL_STATE=disabled
MODULE__CURSES_STATE=disabled
MODULE__CURSES_PANEL_STATE=disabled
MODULE_READLINE_STATE=disabled
MODULE__TKINTER_STATE=disabled
MODULE_PYEXPAT_STATE=disabled
MODULE_ZLIB_STATE=disabled
EOF
# Unfortunately, we do have to build this immediately, and
# not in src_compile, because CHOST configure for Python
# will check the existence of the --with-build-python value
# immediately.
PYTHON_DISABLE_MODULES+=" _ctypes _crypt" emake
popd &> /dev/null || die
}
src_configure() {
# disable automagic bluetooth headers detection
if ! use bluetooth; then
local -x ac_cv_header_bluetooth_bluetooth_h=no
fi
filter-flags -malign-double
# Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
# PKG_CONFIG needed for cross.
tc-export CXX PKG_CONFIG
local dbmliborder=
if use gdbm; then
dbmliborder+="${dbmliborder:+:}gdbm"
fi
# Set baseline test skip flags.
COMMON_TEST_SKIPS=(
# running gdb inside an ebuild as non-root, within sandbox,
# and possibly within a container is unreliable
-x test_gdb
# this is actually test_gdb.test_pretty_print
-x test_pretty_print
)
# Arch-specific skips. See #931888 for a collection of these.
case ${CHOST} in
alpha*)
COMMON_TEST_SKIPS+=(
-x test_builtin
-x test_capi
-x test_cmath
-x test_float
# timeout
-x test_free_threading
-x test_math
-x test_numeric_tower
-x test_random
-x test_statistics
# bug 653850
-x test_resource
-x test_strtod
)
;;
mips*)
COMMON_TEST_SKIPS+=(
-x test_ctypes
-x test_external_inspection
-x test_statistics
)
;;
powerpc64-*) # big endian
COMMON_TEST_SKIPS+=(
-x test_descr
)
;;
riscv*)
COMMON_TEST_SKIPS+=(
-x test_urllib2
)
;;
sparc*)
COMMON_TEST_SKIPS+=(
# bug 788022
-x test_multiprocessing_fork
-x test_multiprocessing_forkserver
-x test_multiprocessing_spawn
-x test_ctypes
-x test_descr
# bug 931908
-x test_exceptions
)
;;
esac
# musl-specific skips
use elibc_musl && COMMON_TEST_SKIPS+=(
# various musl locale deficiencies
-x test__locale
-x test_c_locale_coercion
-x test_locale
-x test_re
# known issues with find_library on musl
# https://bugs.python.org/issue21622
-x test_ctypes
# fpathconf, ttyname errno values
-x test_os
)
if use pgo; then
local profile_task_flags=(
-m test
"-j$(makeopts_jobs)"
--pgo-extended
-u-network
# We use a timeout because of how often we've had hang issues
# here. It also matches the default upstream PROFILE_TASK.
--timeout 1200
"${COMMON_TEST_SKIPS[@]}"
-x test_dtrace
# All of these seem to occasionally hang for PGO inconsistently
# They'll even hang here but be fine in src_test sometimes.
# bug #828535 (and related: bug #788022)
-x test_asyncio
-x test_concurrent_futures
-x test_httpservers
-x test_logging
-x test_multiprocessing_fork
-x test_socket
-x test_xmlrpc
# Hangs (actually runs indefinitely executing itself w/ many cpython builds)
# bug #900429
-x test_tools
)
# Arch-specific skips. See #931888 for a collection of these.
case ${CHOST} in
alpha*)
profile_task_flags+=(
-x test_os
)
;;
hppa*)
profile_task_flags+=(
-x test_descr
# bug 931908
-x test_exceptions
-x test_os
)
;;
powerpc64-*) # big endian
profile_task_flags+=(
# bug 931908
-x test_exceptions
)
;;
riscv*)
profile_task_flags+=(
-x test_statistics
)
;;
esac
if has_version "app-arch/rpm" ; then
# Avoid sandbox failure (attempts to write to /var/lib/rpm)
profile_task_flags+=(
-x test_distutils
)
fi
local -x PROFILE_TASK="${profile_task_flags[*]}"
fi
local myeconfargs=(
# glibc-2.30 removes it; since we can't cleanly force-rebuild
# Python on glibc upgrade, remove it proactively to give
# a chance for users rebuilding python before glibc
ac_cv_header_stropts_h=no
--enable-shared
--without-static-libpython
--enable-ipv6
--infodir='${prefix}/share/info'
--mandir='${prefix}/share/man'
--with-dbmliborder="${dbmliborder}"
--with-libc=
--enable-loadable-sqlite-extensions
--without-ensurepip
--without-lto
--with-system-expat
--with-system-ffi
--with-system-libmpdec
--with-platlibdir=lib
--with-pkg-config=yes
--with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
$(use_with debug assertions)
$(use_enable pgo optimizations)
$(use_with readline readline "$(usex libedit editline readline)")
$(use_with valgrind)
)
# disable implicit optimization/debugging flags
local -x OPT=
# https://bugs.gentoo.org/700012
if tc-is-lto; then
append-cflags $(test-flags-CC -ffat-lto-objects)
myeconfargs+=(
--with-lto
)
fi
if tc-is-cross-compiler ; then
build_cbuild_python
myeconfargs+=(
# Point the imminent CHOST build to the Python we just
# built for CBUILD.
--with-build-python="${WORKDIR}"/${P}-${CBUILD}/python
)
fi
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
# propagated to sysconfig for built extensions
local -x CFLAGS_NODIST=${CFLAGS}
local -x LDFLAGS_NODIST=${LDFLAGS}
local -x CFLAGS= LDFLAGS=
# Fix implicit declarations on cross and prefix builds. Bug #674070.
if use ncurses; then
append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
fi
hprefixify setup.py
econf "${myeconfargs[@]}"
if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
eerror "configure has detected that the sem_open function is broken."
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
die "Broken sem_open function (bug 496328)"
fi
# force-disable modules we don't want built
local disable_modules=( NIS )
use gdbm || disable_modules+=( _GDBM _DBM )
use sqlite || disable_modules+=( _SQLITE3 )
use ssl || disable_modules+=( _HASHLIB _SSL )
use ncurses || disable_modules+=( _CURSES _CURSES_PANEL )
use readline || disable_modules+=( READLINE )
use tk || disable_modules+=( _TKINTER )
local mod
for mod in "${disable_modules[@]}"; do
echo "MODULE_${mod}_STATE=disabled"
done >> Makefile || die
# install epython.py as part of stdlib
echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
}
src_compile() {
# Ensure sed works as expected
# https://bugs.gentoo.org/594768
local -x LC_ALL=C
# Prevent using distutils bundled by setuptools.
# https://bugs.gentoo.org/823728
export SETUPTOOLS_USE_DISTUTILS=stdlib
export PYTHONSTRICTEXTENSIONBUILD=1
# Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't
# end up writing bytecode & violating sandbox.
# bug #831897
local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
# Gentoo hack to disable accessing system site-packages
export GENTOO_CPYTHON_BUILD=1
if use pgo ; then
# bug 660358
local -x COLUMNS=80
local -x PYTHONDONTWRITEBYTECODE=
local -x TMPDIR=/var/tmp
fi
# also need to clear the flags explicitly here or they end up
# in _sysconfigdata*
emake CPPFLAGS= CFLAGS= LDFLAGS=
# Restore saved value from above.
local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE}
# Work around bug 329499. See also bug 413751 and 457194.
if has_version dev-libs/libffi[pax-kernel]; then
pax-mark E python
else
pax-mark m python
fi
}
src_test() {
# Tests will not work when cross compiling.
if tc-is-cross-compiler; then
elog "Disabling tests due to crosscompiling."
return
fi
# this just happens to skip test_support.test_freeze that is broken
# without bundled expat
# TODO: get a proper skip for it upstream
local -x LOGNAME=buildbot
local test_opts=(
--verbose3
-u-network
-j "$(makeopts_jobs)"
"${COMMON_TEST_SKIPS[@]}"
)
# bug 660358
local -x COLUMNS=80
local -x PYTHONDONTWRITEBYTECODE=
local -x TMPDIR=/var/tmp
nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \
CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
local ret=${?}
[[ ${ret} -eq 0 ]] || die "emake test failed"
}
src_install() {
local libdir=${ED}/usr/lib/python${PYVER}
# -j1 hack for now for bug #843458
emake -j1 DESTDIR="${D}" TEST_MODULES=no altinstall
# Fix collisions between different slots of Python.
rm "${ED}/usr/$(get_libdir)/libpython3.so" || die
# Cheap hack to get version with ABIFLAGS
local abiver=$(cd "${ED}/usr/include"; echo python*)
if [[ ${abiver} != python${PYVER} ]]; then
# Replace python3.X with a symlink to python3.Xm
rm "${ED}/usr/bin/python${PYVER}" || die
dosym "${abiver}" "/usr/bin/python${PYVER}"
# Create python3.X-config symlink
dosym "${abiver}-config" "/usr/bin/python${PYVER}-config"
# Create python-3.5m.pc symlink
dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc"
fi
# python seems to get rebuilt in src_install (bug 569908)
# Work around it for now.
if has_version dev-libs/libffi[pax-kernel]; then
pax-mark E "${ED}/usr/bin/${abiver}"
else
pax-mark m "${ED}/usr/bin/${abiver}"
fi
rm -r "${libdir}"/ensurepip/_bundled || die
if ! use ensurepip; then
rm -r "${libdir}"/ensurepip || die
fi
if ! use sqlite; then
rm -r "${libdir}/"sqlite3 || die
fi
if ! use tk; then
rm -r "${ED}/usr/bin/idle${PYVER}" || die
rm -r "${libdir}/"{idlelib,tkinter} || die
fi
ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die
dodoc Misc/{ACKS,HISTORY,NEWS}
if use examples; then
docinto examples
find Tools -name __pycache__ -exec rm -fr {} + || die
dodoc -r Tools
fi
insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510
local libname=$(
printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' |
emake --no-print-directory -s -f - 2>/dev/null
)
newins Tools/gdb/libpython.py "${libname}"-gdb.py
newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER}
newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER}
sed \
-e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \
-e "s:@PYDOC@:pydoc${PYVER}:" \
-i "${ED}/etc/conf.d/pydoc-${PYVER}" \
"${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed"
# python-exec wrapping support
local pymajor=${PYVER%.*}
local EPYTHON=python${PYVER}
local scriptdir=${D}$(python_get_scriptdir)
mkdir -p "${scriptdir}" || die
# python and pythonX
ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die
ln -s "python${pymajor}" "${scriptdir}/python" || die
# python-config and pythonX-config
# note: we need to create a wrapper rather than symlinking it due
# to some random dirname(argv[0]) magic performed by python-config
cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die
#!/bin/sh
exec "${abiver}-config" "\${@}"
EOF
chmod +x "${scriptdir}/python${pymajor}-config" || die
ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die
# 2to3, pydoc
ln -s "../../../bin/2to3-${PYVER}" "${scriptdir}/2to3" || die
ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die
# idle
if use tk; then
ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die
fi
}

View File

@ -0,0 +1,602 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="8"
WANT_LIBTOOL="none"
inherit autotools check-reqs flag-o-matic multiprocessing pax-utils
inherit python-utils-r1 toolchain-funcs verify-sig
MY_PV=${PV/_rc/rc}
MY_P="Python-${MY_PV%_p*}"
PYVER=$(ver_cut 1-2)
PATCHSET="python-gentoo-patches-${MY_PV}"
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
HOMEPAGE="
https://www.python.org/
https://github.com/python/cpython/
"
SRC_URI="
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
verify-sig? (
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc
)
"
S="${WORKDIR}/${MY_P}"
LICENSE="PSF-2"
SLOT="${PYVER}"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="
bluetooth debug +ensurepip examples gdbm libedit +ncurses pgo
+readline +sqlite +ssl test tk valgrind
"
RESTRICT="!test? ( test )"
# Do not add a dependency on dev-lang/python to this ebuild.
# If you need to apply a patch which requires python for bootstrapping, please
# run the bootstrap code on your dev box and include the results in the
# patchset. See bug 447752.
RDEPEND="
app-arch/bzip2:=
app-arch/xz-utils:=
app-crypt/libb2
app-misc/mime-types
>=dev-libs/expat-2.1:=
dev-libs/libffi:=
dev-libs/mpdecimal:=
dev-python/gentoo-common
>=virtual/zlib-1.1.3:=
virtual/libcrypt:=
virtual/libintl
gdbm? ( sys-libs/gdbm:=[berkdb] )
kernel_linux? ( sys-apps/util-linux:= )
ncurses? ( >=sys-libs/ncurses-5.2:= )
readline? (
!libedit? ( >=sys-libs/readline-4.1:= )
libedit? ( dev-libs/libedit:= )
)
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
ssl? ( >=dev-libs/openssl-1.1.1:= )
tk? (
>=dev-lang/tcl-8.0:=
>=dev-lang/tk-8.0:=
dev-tcltk/blt:=
dev-tcltk/tix
)
"
# bluetooth requires headers from bluez
DEPEND="
${RDEPEND}
bluetooth? ( net-wireless/bluez )
test? (
app-arch/xz-utils
dev-python/ensurepip-pip
dev-python/ensurepip-setuptools
dev-python/ensurepip-wheel
)
valgrind? ( dev-debug/valgrind )
"
# autoconf-archive needed to eautoreconf
BDEPEND="
dev-build/autoconf-archive
app-alternatives/awk
virtual/pkgconfig
verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 )
"
if [[ ${PV} != *_alpha* ]]; then
RDEPEND+="
dev-lang/python-exec[python_targets_python${PYVER/./_}(-)]
"
fi
PDEPEND="
ensurepip? ( dev-python/ensurepip-pip )
"
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
# large file tests involve a 2.5G file being copied (duplicated)
CHECKREQS_DISK_BUILD=5500M
QA_PKGCONFIG_VERSION=${PYVER}
# false positives -- functions specific to *BSD
QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
pkg_pretend() {
use test && check-reqs_pkg_pretend
}
pkg_setup() {
use test && check-reqs_pkg_setup
}
src_unpack() {
if use verify-sig; then
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
fi
default
}
src_prepare() {
# Ensure that internal copies of expat and libffi are not used.
# TODO: Makefile has annoying deps on expat headers
#rm -r Modules/expat || die
local PATCHES=(
"${WORKDIR}/${PATCHSET}"
)
default
# force the correct number of jobs
# https://bugs.gentoo.org/737660
sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die
# breaks tests when using --with-wheel-pkg-dir
rm -r Lib/test/wheeldata || die
eautoreconf
}
build_cbuild_python() {
# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
# propagated to sysconfig for built extensions
#
# -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
local -x CFLAGS= LDFLAGS=
local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
# We need to build our own Python on CBUILD first, and feed it in.
# bug #847910
local myeconfargs_cbuild=(
"${myeconfargs[@]}"
--prefix="${BROOT}"/usr
--libdir="${cbuild_libdir:2}"
# Avoid needing to load the right libpython.so.
--disable-shared
# As minimal as possible for the mini CBUILD Python
# we build just for cross to satisfy --with-build-python.
--without-lto
--without-readline
--disable-optimizations
)
mkdir "${WORKDIR}"/${P}-${CBUILD} || die
pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
# Avoid as many dependencies as possible for the cross build.
mkdir Modules || die
cat > Modules/Setup.local <<-EOF || die
*disabled*
nis
_dbm _gdbm
_sqlite3
_hashlib _ssl
_curses _curses_panel
readline
_tkinter
pyexpat
zlib
# We disabled these for CBUILD because Python's setup.py can't handle locating
# libdir correctly for cross. This should be rechecked for the pure Makefile approach,
# and uncommented if needed.
#_ctypes _crypt
EOF
ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
# Unfortunately, we do have to build this immediately, and
# not in src_compile, because CHOST configure for Python
# will check the existence of the --with-build-python value
# immediately.
emake
popd &> /dev/null || die
}
src_configure() {
# disable automagic bluetooth headers detection
if ! use bluetooth; then
local -x ac_cv_header_bluetooth_bluetooth_h=no
fi
filter-flags -malign-double
# Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
# PKG_CONFIG needed for cross.
tc-export CXX PKG_CONFIG
local dbmliborder=
if use gdbm; then
dbmliborder+="${dbmliborder:+:}gdbm"
fi
# Set baseline test skip flags.
COMMON_TEST_SKIPS=(
# running gdb inside an ebuild as non-root, within sandbox,
# and possibly within a container is unreliable
-x test_gdb
# this is actually test_gdb.test_pretty_print
-x test_pretty_print
)
# Arch-specific skips. See #931888 for a collection of these.
case ${CHOST} in
alpha*)
COMMON_TEST_SKIPS+=(
-x test_builtin
-x test_capi
-x test_cmath
-x test_float
# timeout
-x test_free_threading
-x test_math
-x test_numeric_tower
-x test_random
-x test_statistics
# bug 653850
-x test_resource
-x test_strtod
)
;;
mips*)
COMMON_TEST_SKIPS+=(
-x test_ctypes
-x test_external_inspection
-x test_statistics
)
;;
riscv*)
COMMON_TEST_SKIPS+=(
-x test_urllib2
)
;;
sparc*)
COMMON_TEST_SKIPS+=(
# bug 788022
-x test_multiprocessing_fork
-x test_multiprocessing_forkserver
-x test_multiprocessing_spawn
-x test_ctypes
# bug 931908
-x test_exceptions
)
;;
esac
# musl-specific skips
use elibc_musl && COMMON_TEST_SKIPS+=(
# various musl locale deficiencies
-x test__locale
-x test_c_locale_coercion
-x test_locale
-x test_re
# known issues with find_library on musl
# https://bugs.python.org/issue21622
-x test_ctypes
# fpathconf, ttyname errno values
-x test_os
)
if use pgo; then
local profile_task_flags=(
-m test
"-j$(makeopts_jobs)"
--pgo-extended
-u-network
# We use a timeout because of how often we've had hang issues
# here. It also matches the default upstream PROFILE_TASK.
--timeout 1200
"${COMMON_TEST_SKIPS[@]}"
-x test_dtrace
# All of these seem to occasionally hang for PGO inconsistently
# They'll even hang here but be fine in src_test sometimes.
# bug #828535 (and related: bug #788022)
-x test_asyncio
-x test_concurrent_futures
-x test_httpservers
-x test_logging
-x test_multiprocessing_fork
-x test_socket
-x test_xmlrpc
# Hangs (actually runs indefinitely executing itself w/ many cpython builds)
# bug #900429
-x test_tools
)
# Arch-specific skips. See #931888 for a collection of these.
case ${CHOST} in
alpha*)
profile_task_flags+=(
-x test_os
)
;;
hppa*)
profile_task_flags+=(
-x test_descr
# bug 931908
-x test_exceptions
-x test_os
)
;;
powerpc64-*) # big endian
profile_task_flags+=(
# bug 931908
-x test_exceptions
)
;;
riscv*)
profile_task_flags+=(
-x test_statistics
)
;;
esac
if has_version "app-arch/rpm" ; then
# Avoid sandbox failure (attempts to write to /var/lib/rpm)
profile_task_flags+=(
-x test_distutils
)
fi
local -x PROFILE_TASK="${profile_task_flags[*]}"
fi
local myeconfargs=(
# glibc-2.30 removes it; since we can't cleanly force-rebuild
# Python on glibc upgrade, remove it proactively to give
# a chance for users rebuilding python before glibc
ac_cv_header_stropts_h=no
--enable-shared
--without-static-libpython
--enable-ipv6
--infodir='${prefix}/share/info'
--mandir='${prefix}/share/man'
--with-dbmliborder="${dbmliborder}"
--with-libc=
--enable-loadable-sqlite-extensions
--without-ensurepip
--without-lto
--with-system-expat
--with-system-libmpdec
--with-platlibdir=lib
--with-pkg-config=yes
--with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
$(use_with debug assertions)
$(use_enable pgo optimizations)
$(use_with readline readline "$(usex libedit editline readline)")
$(use_with valgrind)
)
if tc-is-lto; then
myeconfargs+=(
--with-lto
)
fi
# Force-disable modules we don't want built.
# See Modules/Setup for docs on how this works. Setup.local contains our local deviations.
cat > Modules/Setup.local <<-EOF || die
*disabled*
nis
$(usev !gdbm '_gdbm _dbm')
$(usev !sqlite '_sqlite3')
$(usev !ssl '_hashlib _ssl')
$(usev !ncurses '_curses _curses_panel')
$(usev !readline 'readline')
$(usev !tk '_tkinter')
EOF
# disable implicit optimization/debugging flags
local -x OPT=
if tc-is-cross-compiler ; then
build_cbuild_python
myeconfargs+=(
# Point the imminent CHOST build to the Python we just
# built for CBUILD.
--with-build-python="${WORKDIR}"/${P}-${CBUILD}/python
)
fi
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
# propagated to sysconfig for built extensions
local -x CFLAGS_NODIST=${CFLAGS}
local -x LDFLAGS_NODIST=${LDFLAGS}
local -x CFLAGS= LDFLAGS=
# Fix implicit declarations on cross and prefix builds. Bug #674070.
if use ncurses; then
append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
fi
econf "${myeconfargs[@]}"
if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
eerror "configure has detected that the sem_open function is broken."
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
die "Broken sem_open function (bug 496328)"
fi
# install epython.py as part of stdlib
echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
}
src_compile() {
# Ensure sed works as expected
# https://bugs.gentoo.org/594768
local -x LC_ALL=C
export PYTHONSTRICTEXTENSIONBUILD=1
# Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't
# end up writing bytecode & violating sandbox.
# bug #831897
local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
# Gentoo hack to disable accessing system site-packages
export GENTOO_CPYTHON_BUILD=1
if use pgo ; then
# bug 660358
local -x COLUMNS=80
local -x PYTHONDONTWRITEBYTECODE=
local -x TMPDIR=/var/tmp
fi
# also need to clear the flags explicitly here or they end up
# in _sysconfigdata*
emake CPPFLAGS= CFLAGS= LDFLAGS=
# Restore saved value from above.
local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE}
# Work around bug 329499. See also bug 413751 and 457194.
if has_version dev-libs/libffi[pax-kernel]; then
pax-mark E python
else
pax-mark m python
fi
}
src_test() {
# Tests will not work when cross compiling.
if tc-is-cross-compiler; then
elog "Disabling tests due to crosscompiling."
return
fi
# this just happens to skip test_support.test_freeze that is broken
# without bundled expat
# TODO: get a proper skip for it upstream
local -x LOGNAME=buildbot
local test_opts=(
--verbose3
-u-network
-j "$(makeopts_jobs)"
"${COMMON_TEST_SKIPS[@]}"
)
# bug 660358
local -x COLUMNS=80
local -x PYTHONDONTWRITEBYTECODE=
local -x TMPDIR=/var/tmp
nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \
CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
local ret=${?}
[[ ${ret} -eq 0 ]] || die "emake test failed"
}
src_install() {
local libdir=${ED}/usr/lib/python${PYVER}
# the Makefile rules are broken
# https://github.com/python/cpython/issues/100221
mkdir -p "${libdir}"/lib-dynload || die
# -j1 hack for now for bug #843458
emake -j1 DESTDIR="${D}" TEST_MODULES=no altinstall
# Fix collisions between different slots of Python.
rm "${ED}/usr/$(get_libdir)/libpython3.so" || die
# Cheap hack to get version with ABIFLAGS
local abiver=$(cd "${ED}/usr/include"; echo python*)
if [[ ${abiver} != python${PYVER} ]]; then
# Replace python3.X with a symlink to python3.Xm
rm "${ED}/usr/bin/python${PYVER}" || die
dosym "${abiver}" "/usr/bin/python${PYVER}"
# Create python3.X-config symlink
dosym "${abiver}-config" "/usr/bin/python${PYVER}-config"
# Create python-3.5m.pc symlink
dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc"
fi
# python seems to get rebuilt in src_install (bug 569908)
# Work around it for now.
if has_version dev-libs/libffi[pax-kernel]; then
pax-mark E "${ED}/usr/bin/${abiver}"
else
pax-mark m "${ED}/usr/bin/${abiver}"
fi
rm -r "${libdir}"/ensurepip/_bundled || die
if ! use sqlite; then
rm -r "${libdir}/"sqlite3 || die
fi
if ! use tk; then
rm -r "${ED}/usr/bin/idle${PYVER}" || die
rm -r "${libdir}/"{idlelib,tkinter} || die
fi
ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die
dodoc Misc/{ACKS,HISTORY,NEWS}
if use examples; then
docinto examples
find Tools -name __pycache__ -exec rm -fr {} + || die
dodoc -r Tools
fi
insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510
local libname=$(
printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' |
emake --no-print-directory -s -f - 2>/dev/null
)
newins Tools/gdb/libpython.py "${libname}"-gdb.py
newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER}
newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER}
sed \
-e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \
-e "s:@PYDOC@:pydoc${PYVER}:" \
-i "${ED}/etc/conf.d/pydoc-${PYVER}" \
"${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed"
# python-exec wrapping support
local pymajor=${PYVER%.*}
local EPYTHON=python${PYVER}
local scriptdir=${D}$(python_get_scriptdir)
mkdir -p "${scriptdir}" || die
# python and pythonX
ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die
ln -s "python${pymajor}" "${scriptdir}/python" || die
# python-config and pythonX-config
# note: we need to create a wrapper rather than symlinking it due
# to some random dirname(argv[0]) magic performed by python-config
cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die
#!/bin/sh
exec "${abiver}-config" "\${@}"
EOF
chmod +x "${scriptdir}/python${pymajor}-config" || die
ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die
# 2to3, pydoc
ln -s "../../../bin/2to3-${PYVER}" "${scriptdir}/2to3" || die
ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die
# idle
if use tk; then
ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die
fi
}

View File

@ -1,2 +1,3 @@
DIST tcl-core8.6.16-src.tar.gz 7022932 BLAKE2B 9a20cc72a2654c8b4f2c9088fabef13321c414d4cc1125afbb0151ae198c6e665a7f18ffa798fcf2ed0ae1160e586819b834d745c5dfbb2b2ed5dc6d0e022d4d SHA512 b25de457523e1f884326db37acebc329d5f1a8ac2a2e0fbdfcefafc76de202ff8d1efe8ff687afa5da486c0a95ab4bde893aad6f70f0e570fa6911c5cf56d458
DIST tcl-core8.6.17-src.tar.gz 7030881 BLAKE2B 3120f53dfe238a750eface9b6f2c715432e8a640b65748c2ccafcebb0c8f4b9ee49d214fa708ea3cf17a7563e8a993a7b7fc1dbdde70055358e1c0d35a62efb4 SHA512 cc6ef374b4d005365d2453a1d25b22d9961631c8f4081ccdfba43c55901edd9f925d0ef66132b7d9d6c285445738028def243e727ecc5ffad94fb4851e5ae735
DIST tcl-core9.0.3-src.tar.gz 7164480 BLAKE2B 8aa9a38e9bb6f290dadf6f90a2aeede23ceb6c7df114c974c4d64ca0cfdc6db813d66e8b29df35f9985bafd7ee74ce4beb42fdeb39ba6bc9747395467eb38428 SHA512 9d2b8eee54e27ee9c7a951ac799ba1b08bc3cc11d957d65a1d78c3d42a234304ea09677e84af85e41dd9a32c91a77b82483805bf0a822288af1ab15e18c494d1

View File

@ -0,0 +1,12 @@
This resolves https://bugs.gentoo.org/731120
--- a/unix/configure.ac
+++ b/unix/configure.ac
@@ -895,7 +895,7 @@ TCL_BUILD_STUB_LIB_PATH="`pwd`/${TCL_STUB_LIB_FILE}"
TCL_STUB_LIB_PATH="${TCL_STUB_LIB_DIR}/${TCL_STUB_LIB_FILE}"
# Install time header dir can be set via --includedir
-eval "TCL_INCLUDE_SPEC=\"-I${includedir}\""
+eval "TCL_INCLUDE_SPEC=\"\""
#------------------------------------------------------------------------
# tclConfig.sh refers to this by a different name

View File

@ -0,0 +1,11 @@
--- a/unix/configure.ac 2020-12-26 10:39:12.107965844 +0100
+++ b/unix/configure.ac 2020-12-26 10:39:44.821378776 +0100
@@ -773,7 +773,7 @@
eval "TCL_LIB_FILE=${TCL_LIB_FILE}"
-test -z "$TCL_LIBRARY" && TCL_LIBRARY='$(prefix)/lib/tcl$(VERSION)'
+test -z "$TCL_LIBRARY" && TCL_LIBRARY='$(libdir)/tcl$(VERSION)'
PRIVATE_INCLUDE_DIR='$(includedir)'
HTML_DIR='$(DISTDIR)/html'

View File

@ -0,0 +1,132 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# Please bump with dev-lang/tk!
inherit autotools flag-o-matic multilib-minimal multilib toolchain-funcs
MY_P="${PN}${PV}"
DESCRIPTION="Tool Command Language"
HOMEPAGE="http://www.tcl.tk/"
SRC_URI="https://downloads.sourceforge.net/tcl/${PN}-core${PV}-src.tar.gz"
SPARENT="${WORKDIR}/${MY_P}"
S="${SPARENT}"/unix
LICENSE="tcltk Spencer-99"
SLOT="0/$(ver_cut 1-2)"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
IUSE="debug"
RDEPEND="virtual/zlib:=[${MULTILIB_USEDEP}]"
DEPEND="${RDEPEND}"
PATCHES=(
"${FILESDIR}"/${PN}-9.0.3-multilib.patch
"${FILESDIR}"/${PN}-8.6.8-conf.patch # Bug 125971
"${FILESDIR}"/${PN}-9.0.3-include-spec.patch # Bug 731120
)
QA_CONFIG_IMPL_DECL_SKIP=(
stat64 opendir64 rewinddir64 closedir64 # used to test for Large File Support
)
src_prepare() {
# Drop -Werror
sed -i \
-e "s: -Werror::g" \
dltest/Makefile.in \
|| die
pushd "${SPARENT}" &>/dev/null || die
# By dropping part of the compat directory a lot of licensing and attribution burden
# (BSD-3,...) is lifted from the user
rm compat/fake-* || die
rm compat/{dlfcn.h,gettod.c,mkstemp.c,strncasecmp.c,waitpid.c} \
|| die
rm doc/try.n || die
default
popd &>/dev/null || die
# httpold tests require network
rm ../tests/env.test \
../tests/http.test \
|| die
# workaround stack check issues, bug #280934
use hppa && append-cflags "-DTCL_NO_STACK_CHECK=1"
tc-export CC
sed \
-e '/chmod/s:555:755:g' \
-i Makefile.in || die
sed \
-e 's:-O[2s]\?::g' \
-i tcl.m4 || die
eautoconf
multilib_copy_sources
}
multilib_src_configure() {
# We went ahead and deleted the whole compat/ subdir which means
# the configure tests to detect broken versions need to pass (else
# we'll fail to build). This comes up when cross-compiling, but
# might as well get a minor configure speed up normally.
export ac_cv_func_memcmp_working="yes"
export tcl_cv_str{str,toul,tod}_unbroken="ok"
export tcl_cv_strtod_buggy="no"
econf \
$(use_enable debug symbols)
}
multilib_src_install() {
#short version number
local v1=$(ver_cut 1-2)
local mylibdir=$(get_libdir)
S= default
# fix the tclConfig.sh to eliminate refs to the build directory
# and drop unnecessary -L inclusion to default system libdir
sed \
-e "/^TCL_BUILD_LIB_SPEC=/s:-L$(pwd) *::g" \
-e "/^TCL_LIB_SPEC=/s:-L${EPREFIX}/usr/${mylibdir} *::g" \
-e "/^TCL_SRC_DIR=/s:${SPARENT}:${EPREFIX}/usr/${mylibdir}/tcl${v1}/include:g" \
-e "/^TCL_BUILD_STUB_LIB_SPEC=/s:-L$(pwd) *::g" \
-e "/^TCL_STUB_LIB_SPEC=/s:-L${EPREFIX}/usr/${mylibdir} *::g" \
-e "/^TCL_BUILD_STUB_LIB_PATH=/s:$(pwd):${EPREFIX}/usr/${mylibdir}:g" \
-e "/^TCL_LIBW_FILE=/s:'libtcl${v1}..TCL_DBGX..so':\"libtcl${v1}\$\{TCL_DBGX\}.so\":g" \
-i "${ED}"/usr/${mylibdir}/tclConfig.sh || die
if use prefix && [[ ${CHOST} != *-darwin* ]] ; then
sed \
-e "/^TCL_CC_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|g" \
-e "/^TCL_LD_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|" \
-i "${ED}"/usr/${mylibdir}/tclConfig.sh || die
fi
# install private headers
insinto /usr/${mylibdir}/tcl${v1}/include/unix
doins *.h
insinto /usr/${mylibdir}/tcl${v1}/include/generic
doins "${SPARENT}"/generic/*.h
rm -f "${ED}"/usr/${mylibdir}/tcl${v1}/include/generic/{tcl,tclDecls,tclPlatDecls}.h || die
# install symlink for libraries
dosym libtcl${v1}$(get_libname) /usr/${mylibdir}/libtcl$(get_libname)
mv "${ED}"/usr/${mylibdir}/libtclstub{,${v1}}.a || die
dosym libtclstub${v1}.a /usr/${mylibdir}/libtclstub.a
if multilib_is_native_abi; then
dosym tclsh${v1} /usr/bin/tclsh
fi
}

View File

@ -1,4 +1,4 @@
DIST libksba-1.6.7.tar.bz2 706437 BLAKE2B 95f51bc9a0a7ee14b91089aded3a420cf2f986a1599e39e36dc46fd0b71bef465af9c6576c19516d0aadae67399eca69ae0448239216ba486812884ebefa1ae7 SHA512 60cb9df9f502ca479818f45b78c4bc2b78f6f359be2b8da489ea98f8896a43ab2c20cf97526b79a3220fb32f1701e62a6481fe61e91e567186ecf4f33d8e64d3
DIST libksba-1.6.7.tar.bz2.sig 119 BLAKE2B 74b3fd7682ae526c7430fe3792f873838c366ec0de1d80b699370a8cefdfdfc386f883b1d45df8df62e64d9de992f4bbfa7f74cfbb38419694f1a11ff1d3110a SHA512 97df523f0640f8fed0c3c7603218058021475d5b0e47a36610aa88312a6bb5f302e1e2016f5721a9077d0d27b35b28c7c96d9843866c957c965b2c580d3ee60b
DIST libksba-1.6.8.tar.bz2 716917 BLAKE2B 13efba4f1f22de8e149049443ac1b68dea75c7526678f0a462c6922fb2f6de71c8c20d6c41b726e3083076f201576645b2f9181340fa2c49ca4de2ed1f6064fb SHA512 23522376b4ce89c9847d464723ba6052e410d2450dcd10e0da3f07e074c1169585823eea30a70aa572f4e8ec86121844476eeb90c8599dd21f22eab71333d5a8
DIST libksba-1.6.8.tar.bz2.sig 147 BLAKE2B 354363b66c12e72d1a5dcc888d74a9ce13f0154038f809e459b8d073c67665ac4434ee1198cd5d6a3ff011325802da5b5eace9ca41878db4f333fdeb08a0b9a8 SHA512 ac5fadfc57219aa5b350d9e8572c0389f58e9a9730fc38bc7a967b5345e7b2f7d5575517a1080577046a4a0d8ad9bced37bfb17f267a3b9be9bc03a486819c06
DIST libksba-1.6.8.tar.bz2.sig 294 BLAKE2B 257739517c1c5c0c6b0121de186ed7dfcc54e470070ce9466408e148fa16efdc8ba7146211a3574ac9a6bae95015be9d5545bc30459ac0f2f38873bac219a879 SHA512 ada3a9f6f26cb89c5c2926e51283bb26db7ec3a95da592b296e4b269889a6607c31ebb8b5b09e92afc987fa146c2f67b2f8a024808264a2c5dd9a8fd0b42c64c

View File

@ -30,7 +30,7 @@ else
"
S="${WORKDIR}/${LIBNL_P}"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-thomashaller )"
fi
@ -38,7 +38,7 @@ fi
LICENSE="LGPL-2.1 utils? ( GPL-2 )"
SLOT="3"
IUSE="+debug python test utils"
# test_kernel_route_roundtrip_* fais in 3.12.0
# test_kernel_route_roundtrip_* fails in 3.12.0
RESTRICT="!test? ( test ) test"
RDEPEND="python? ( ${PYTHON_DEPS} )"

View File

@ -38,7 +38,7 @@ fi
LICENSE="LGPL-2.1 utils? ( GPL-2 )"
SLOT="3"
IUSE="+debug python test utils"
# test_kernel_route_roundtrip_* fais in 3.12.0
# test_kernel_route_roundtrip_* fails in 3.12.0
RESTRICT="!test? ( test ) test"
RDEPEND="python? ( ${PYTHON_DEPS} )"

View File

@ -2,6 +2,7 @@ DIST libxml2-2.13.9.tar.xz 2426164 BLAKE2B b14cb6953983ee83b5de39b8d80f623edae61
DIST libxml2-2.14.6.tar.xz 2327580 BLAKE2B ad5d7cb64f8081559a671e9d79b3ebcd7313dada39d7f0c2854994153a9dff2ef85bc81336437f5881abe637bae51b62e9104b3a099113f4ee2252b604325291 SHA512 9a62230487255af7cdaf135cc8a0978dc82ff2ee8826f6b21cc8b39c8e0a6b9efeea1c12e6cb7ae3f869730fb4ed628158e2848dd512558fc5bf177c56862774
DIST libxml2-2.15.0.tar.xz 2004476 BLAKE2B 07a570cd38528eb253d67f1eb88d375c5b3e32dfb23e97662c6243b8af2c4087f2cc931015cc183ff9bc231be88b6099fda42104d77d6fb0126f7804f277a088 SHA512 26fdf2c4c7bba90f0ad9cb74debc94e2ba7db2d8461d2bb40764d479f1735d78e85e6835f0c7ae292d827d387ac74ba889915456d5f3f646de5e0b96a070fddb
DIST libxml2-2.15.1.tar.xz 2004588 BLAKE2B 73c4d17adacda67d71c5a120c7de2324df1db35963cadbe18166dafe122e1f10dcab9d4fed0e128c077a5ca31432bfaf72f742c42680251660d397ab8bc3538b SHA512 429c7d0dc3cbcb8de1bf6eb588fb8025fee009c9b25e87c96ecc5de57cc12b558b0ab8141f333d73ca687109335f297c9f9776abbb9da9afc9d8e79041c86b7f
DIST libxml2-2.15.2.tar.xz 3148720 BLAKE2B e8adec751b6c8c8fd8358bee0c33159813601f6306b318314ffbf85324fa3ebeee2e838608a7fe365ffe4b82c4700f328fc27ae9a75cd7ed67cf256067542c2e SHA512 35f18fee772e63e8ea6220e5f5435ef5aabb5692a4519a993ec9640576d08fa45d5097280add5c5ffb5c280359d05eeecab0df24cce0b7ec35eef102d607b0b8
DIST xmlts20130923.tar.gz 641522 BLAKE2B 63a47bc69278ef510cd0b3779aed729e1b309e30efa0015d28ed051cc03f9dfddb447ab57b07b3393e8f47393d15473b0e199c34cb1f5f746b15ddfaa55670be SHA512 d5c4d26b324ed21f4e0641cd7f8b76dbf9de80df8b519982e44d41c960df29fd03618e02e9693b2d11ad06d19c4a965274c95a048ec3b9653eacb919a7f8b733
DIST xsts-2002-01-16.tar.gz 6894439 BLAKE2B 1e9ec63d2c104655e64249e07440a04d862fcbcd4d4e19745d81b34994319b510a531c9d6df1491fae1e90b5d0764f0f1a827251ca8df5d613178b0eab01ef25 SHA512 43300af6d39c1e2221b0ed7318fe14c7464eeb6eb030ed1e22eb29b4ab17f014e2a4c8887c3a46ae5d243e3072da27f00f4e285498ae6f1288177d38d1108288
DIST xsts-2004-01-14.tar.gz 2761085 BLAKE2B 41545995fb3a65d053257c376c07d45ffd1041a433bfbdb46d4dd87a5afb60c18c8629a3d988323f9e7a1d709775b5a7e5930276a7121c0725a22705c0976e36 SHA512 32854388d7e720ad67156baf50bf2bae7bd878ca3e35fd7e44e57cad3f434f69d56bbbedd61509f8a1faf01c9eae74a078df8fe130780b182c05c05cb1c39ebe

View File

@ -0,0 +1,165 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# Note: Please bump in sync with dev-libs/libxslt
PYTHON_COMPAT=( python3_{11..14} )
PYTHON_REQ_USE="xml(+)"
inherit python-r1 meson-multilib
DESCRIPTION="XML C parser and toolkit"
HOMEPAGE="https://gitlab.gnome.org/GNOME/libxml2/-/wikis/home"
if [[ ${PV} == 9999 ]] ; then
EGIT_REPO_URI="https://gitlab.gnome.org/GNOME/libxml2"
inherit git-r3
else
inherit gnome.org
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
fi
S="${WORKDIR}/${PN}-${PV%_rc*}"
LICENSE="MIT"
# see so_version = v_maj + v_min_compat for subslot
SLOT="2/16"
IUSE="doc icu python readline static-libs test"
RESTRICT="!test? ( test )"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
RDEPEND="
virtual/libiconv
>=virtual/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}]
icu? ( >=dev-libs/icu-51.2-r1:=[${MULTILIB_USEDEP}] )
python? ( ${PYTHON_DEPS} )
readline? ( sys-libs/readline:= )
"
DEPEND="${RDEPEND}"
BDEPEND="
virtual/pkgconfig
doc? (
app-text/docbook-xsl-stylesheets
app-text/doxygen
dev-libs/libxslt
)
python? ( app-text/doxygen )
"
MULTILIB_CHOST_TOOLS=(
/usr/bin/xml2-config
)
PATCHES=(
"${FILESDIR}"/libxml2-2.14.2-no-git.patch
)
src_unpack() {
if [[ ${PV} == 9999 ]] ; then
git-r3_src_unpack
else
default
fi
cd "${S}" || die
}
src_prepare() {
default
sed -e "/^dir_doc/ s/meson.project_name()$/\'${PF}\'/" -i meson.build || die
}
python_configure() {
local emesonargs=(
$(meson_feature icu)
$(meson_native_use_feature readline)
$(meson_native_use_feature readline history)
-Ddocs=disabled
-Dpython=enabled
-Dschematron=enabled
)
mkdir "${BUILD_DIR}" || die
pushd "${BUILD_DIR}" >/dev/null || die
meson_src_configure
popd >/dev/null || die
}
multilib_src_configure() {
local emesonargs=(
-Ddefault_library=$(multilib_native_usex static-libs both shared)
$(meson_feature icu)
$(meson_native_use_feature doc docs)
$(meson_native_use_feature readline)
$(meson_native_use_feature readline history)
-Dpython=disabled
-Dschematron=enabled
# There has been a clean break with a soname bump.
# It's time to deal with the breakage.
# bug #935452
-Dlegacy=disabled
)
meson_src_configure
if multilib_is_native_abi && use python ; then
python_foreach_impl python_configure
fi
}
python_compile() {
pushd "${BUILD_DIR}" >/dev/null || die
meson_src_compile
popd >/dev/null || die
}
multilib_src_compile() {
meson_src_compile
if multilib_is_native_abi && use python ; then
python_foreach_impl python_compile
fi
}
multilib_src_test() {
meson_src_test
if multilib_is_native_abi && use python ; then
python_foreach_impl meson_src_test
fi
}
python_install() {
pushd "${BUILD_DIR}" >/dev/null || die
meson_src_install
python_optimize
popd >/dev/null || die
}
multilib_src_install() {
if multilib_is_native_abi && use python ; then
python_foreach_impl python_install
fi
meson_src_install
}
pkg_postinst() {
# We don't want to do the xmlcatalog during stage1, as xmlcatalog will not
# be in / and stage1 builds to ROOT=/tmp/stage1root. This fixes bug #208887.
if [[ -n "${ROOT}" ]]; then
elog "Skipping XML catalog creation for stage building (bug #208887)."
else
# Need an XML catalog, so no-one writes to a non-existent one
CATALOG="${EROOT}/etc/xml/catalog"
# We don't want to clobber an existing catalog though,
# only ensure that one is there
# <obz@gentoo.org>
if [[ ! -e "${CATALOG}" ]]; then
[[ -d "${EROOT}/etc/xml" ]] || mkdir -p "${EROOT}/etc/xml"
"${EPREFIX}"/usr/bin/xmlcatalog --create > "${CATALOG}"
einfo "Created XML catalog in ${CATALOG}"
fi
fi
}

View File

@ -1,3 +1,4 @@
DIST charset_normalizer-3.4.3.tar.gz 122371 BLAKE2B 9735b4419aec98a11e3b53fc96e892f63299d89653cda489a5938e90526d24241ee2224f2aed149ae2e4becdf2742335175e8c25a2952b76098cfca61edef72a SHA512 b8ee22e9da98d09a3a36b2cd49e0bb27956a444dd59a1d27f1244040147a4e09fbd67d112ec59ace2133fe92b72a4de3a26f0b678bc2b6455c3ead2c2aaa9cfd
DIST charset_normalizer-3.4.4.tar.gz 129418 BLAKE2B 0f462077fe20ffc9555a5628263b48370d50e43261f30abb7715e3c82ba3c7fcb3bec1c2adea65ad5864e0bd656b79fd5129fbd2791edee66ec2839d210f48d3 SHA512 ea3e15123b6a526ef52abeae2a8a8af0b044380606d4ef4a43ca1feb4c626b5899b511634ee8927b959f5ab1dbbd3c57651d1ac3a91c5ab67cd905034f759c9c
DIST charset_normalizer-3.4.4.tar.gz.provenance 9506 BLAKE2B 890a0a810b142da096c1c0d805d9014bac9d1facfd0d51439c12167b047ade62e0d50fc1e6ffb65f5b019586a0706bb21bd75d485c5b9041cfe693ce38b15207 SHA512 55c4a7299bc0c3b556f5d1d344a77c653f0537719bd68ecf036c6339a8e09c169dee1d4d967f86946074b3da2e09f4a85ad1473fe7500cf427faf3dd8a5f95a8
DIST charset_normalizer-3.4.5.tar.gz 134804 BLAKE2B 632f80f4afc5ed131ef7154cdfc3d8bb3d74caf96f55309f8dddfd6bd6c32ce56e8e38c657bd20129f44167236e8369b2454f430779cc62ab4d658fffef9e1f8 SHA512 4d58d983a948644d89a25f5563171447c8fadcc252a9a3471d4b5e5ffeff94ddd56bce6a5c3fa84744a15b37b14145f645cef9b1635ef2bfe470abe5e259f55b
DIST charset_normalizer-3.4.5.tar.gz.provenance 9583 BLAKE2B 8ab9655ddbf42e167d90d327c68826c803fc320cd54c90aba1fe09f2d383b58f58dabd19a7cce1c98a6d95cfdc8323af626aea32636d4f123c798607b729c9ef SHA512 d8aaeef462c2ef47196f69837cefe34d908457c51d0b8f25b4a1b1bbf875f1e3f7b97a175fd19a870c04adb5453fb46719b92518d95f43f3eb8a723cba9bde8a

View File

@ -1,10 +1,12 @@
# Copyright 2022-2025 Gentoo Authors
# Copyright 2022-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# please keep this ebuild at EAPI 8 -- sys-apps/portage dep
EAPI=8
DISTUTILS_USE_PEP517=standalone
DISTUTILS_EXT=1
PYPI_VERIFY_REPO=https://github.com/jawah/charset_normalizer
PYTHON_COMPAT=( python3_{11..14} pypy3_11 )
inherit distutils-r1 pypi
@ -17,15 +19,27 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
IUSE="+native-extensions"
BDEPEND="
native-extensions? (
$(python_gen_cond_dep '
dev-python/mypy[${PYTHON_USEDEP}]
' python3.{11..14})
)
dev-python/setuptools[${PYTHON_USEDEP}]
"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
python_compile() {
local -x CHARSET_NORMALIZER_USE_MYPYC=$(usex native-extensions 1 0)
distutils-r1_python_compile
}
python_test() {
epytest -o addopts=
}

View File

@ -1,2 +1,2 @@
DIST jaraco_context-6.0.2.tar.gz 14994 BLAKE2B e89f31c411ec2a383fe9125b6cc87931c0d223375632d76efe3fb63da6eb0db818862feefb53cc95e2384ff4fe044fe3bf9e495ea75cc6e14ae04a94eea9889c SHA512 18cc7381eeadea82df21219df0886c486f0b2338aea01e53c471c29d5a289e92d92f41a9943535f27a9f113ae889ee03d8f3323d777006b0dd653b422a412a09
DIST jaraco_context-6.1.0.tar.gz 15850 BLAKE2B e7d25d18fa97e77ce152b9152326e4980f305fd9ade71cc890546d8400c4102bb5bcc896b8ae079876f69e7d685d88d3c14bfae7aed46be5e28bad0c89caa77d SHA512 19f9fe4e00cc94f46177604e2a6e44af3c21be22b2059f8f7d0c586a77007196a163df68e545808b5f73d10c4e429903ff33274f110a15601481f4eff8cf9f8f
DIST jaraco_context-6.1.1.tar.gz 15832 BLAKE2B bf329f1cb601bb793f68caa214cc683d968ac3a08615522868f451df5c4430d131d1a1cb3d8ff8d4d9165c0502432d3f401896911c0c0ea2827af69871dd8f50 SHA512 38ea4be2972ae21f98d3c1d77363db8d82d88ff786757004d7adc576383960c8193cdd89e5662b0772b99072fe4cd7099815f179f8042a6d64f335c0d3dd66ff

View File

@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
RDEPEND="
$(python_gen_cond_dep '

View File

@ -9,3 +9,5 @@ DIST platformdirs-4.9.1.tar.gz 28392 BLAKE2B 4f471fee64760430175dbc01eb8d3384146
DIST platformdirs-4.9.1.tar.gz.provenance 9415 BLAKE2B 208160d5268e2f3fa48836def656e9c11936b268b882de278d07bb7ad4039ead7374b9450701439de09e54fb1b402362417b08494e5099ce7e86d3283832483c SHA512 6a5dcc1a186d9d8bc41169a898690d957312974f9754e104a9721da1347ad6a29c7c232c48c1b57a84745da4ddb1c71371eb298ca99ea6fe8de0bde4f42da53b
DIST platformdirs-4.9.2.tar.gz 28394 BLAKE2B 2a44ddd40489767c7961a202d70ebf49ff01b7ea6f098d67e99cc55693c11fb9ca598414f0f9433895295bc1ce43981ff1c942a3aaff6014024c9a77c9e9e8b2 SHA512 3abd4570abae3964c6afd52493b5f99f81c5543833f01ca8f8c59cbd00108b4d8030b0dc8e7991cb807b6817f28552f008e962c88b12db4fc07ce4015f05e8ec
DIST platformdirs-4.9.2.tar.gz.provenance 9509 BLAKE2B d5631eb6e1cd8f2916a6900d085ff03e10a7a31a24a15984715f2b06525fe2b620ffe1676bd62a3a0b730fef1c99245086bc02eb5fd22344c1f338837e4d9f18 SHA512 18bc0ae845dbf90ac50cff9a071a0e6df28c8e13aa5a849590db739137f67edd85230357d1a5337262753f2c5416b5a8f880c8e82e0d85b3800b17a312c8a7fc
DIST platformdirs-4.9.4.tar.gz 28737 BLAKE2B a71ac9b3b3b2a9a02e3cf8b20cc91740da278f6581753a360600c6c2ee6c887872f08bea324ea4334337d1ccf4bdf83fc7a2b14895dc72d6421598f9234dd17b SHA512 32108f239e76693f63789dd975463a44cbd4cc06f96a86a01d3d7fc675cb953a0d6818fb8fc92daef7f1ceba8bc62f2577d092d0e58c6c616740699a2140a0d7
DIST platformdirs-4.9.4.tar.gz.provenance 9698 BLAKE2B dc9bcf69c9bd816e61ff77096aa90f1abcabd6abad3d037d1bdf5efc354f02f53cb05b5779d874f4d9b3997172969f21777ac204050cd662dda3d8feb3ea006c SHA512 1321d072852a555f54721a6e3241aa808da665848afb3f91ca3bd47d8231dc21b85b566bd1064c5a92324aecfecc599a035ced9a8cdfff766ba53af44142d2b4

View File

@ -0,0 +1,50 @@
# Copyright 2021-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=flit
PYPI_VERIFY_REPO=https://github.com/tox-dev/platformdirs
PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t pypy3_11 )
inherit distutils-r1 pypi
DESCRIPTION="A small Python module for determining appropriate platform-specific dirs"
HOMEPAGE="
https://pypi.org/project/platformdirs/
https://github.com/tox-dev/platformdirs/
"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
BDEPEND="
test? (
dev-python/appdirs[${PYTHON_USEDEP}]
)
"
EPYTEST_PLUGINS=( pytest-mock )
distutils_enable_tests pytest
src_configure() {
grep -q 'build-backend = "hatchling' pyproject.toml ||
die "Upstream changed build-backend, recheck"
# write a custom pyproject.toml to ease setuptools bootstrap
cat > pyproject.toml <<-EOF || die
[build-system]
requires = ["flit_core >=3.2,<4"]
build-backend = "flit_core.buildapi"
[project]
name = "${PN}"
version = "${PV}"
description = 'A small Python package for determining appropriate platform-specific dirs, e.g. a "user data dir".'
EOF
# sigh
cat > src/platformdirs/version.py <<-EOF || die
__version__ = version = '${PV}'
__version_tuple__ = version_tuple = (${PV//./, })
EOF
}

View File

@ -1,9 +1,5 @@
DIST maturin-1.11.5-vendor.tar.xz 16507616 BLAKE2B 83b6607c91a0925ad52bbdb888eef01fa871a29129600471269d25c9a2a56206c845a56f1bfd5dbcaaf9b74da88df35e6f3c857d551834fc8564853d6e455b0e SHA512 94a8c8cb296afd33da5175e6ce39ecd8ccb739df30bfac0476551352a002032cefa5de6ea41c81f65cd905225d1cf8a13f473594560a8f2a29df563a4adc9e9a
DIST maturin-1.11.5.gh.tar.gz 596610 BLAKE2B f78673c59d13211771d37b74468041255cb8f7fa2113851e3fda2da8811e34c1a6e5c0eeb5d61430653342b97f899fff24984446e533759d3db06458afab2eda SHA512 49e7976be5790f524d5a423519c4ee73ccb450f0e84fea5ba691421cd8e303cb4166324d42985b1ae321a71c4295f244632da194a5be7cacbe7951cdbc0dbb92
DIST maturin-1.12.3-vendor.tar.xz 19238920 BLAKE2B a8e1595ee6a8a843f050308e639989544cb1f63e3587da313e4ed3452f2483ecf1302c569b557732eb990050979fe8b8943010316aff30aa837406b6b1d1f3cb SHA512 9035b935c77583053b79a580a66e0a8eaee5ee63d137b4598e911f4d5b5529dc8eefb2a5201715c7db034f9dbaff8b28c39e5c092770bf9c0d083524fd7130f8
DIST maturin-1.12.3.gh.tar.gz 641410 BLAKE2B 34266c48f8751306b69791739316f7abdebee27a904ab428e14e8739d958f504993b111eff770cd277dd7f63847e0237e524368dcbedec0630e7172104774d0d SHA512 281e42f73e51c7851752ee1c807632fbabf14d794fd867cd38287531bff0ab1f0c5dd167638064aab44fa677c9d4eb4e3b71bd2ee034b7d97ddafa84b79e3dae
DIST maturin-1.12.4-vendor.tar.xz 19246564 BLAKE2B e641b0d3c1fc4ef84c2f75fed654fb719230c8d9abaac303b0c3b07fdffd3323fe8188d5af5f75f58b17f700a8fcf770975c67e1c65ae727a099911069b50f2c SHA512 5c0131ed31381622a90ae5bf4f6be12a54414ec89fc150affc00a0f9be9900687602c8c70a2c3dddfb2fa9df7135e44ec9bb392883cdb06c715be66e9ac9fe42
DIST maturin-1.12.4.gh.tar.gz 643715 BLAKE2B 5021b14670738f6e295cc7e5f855488fde0829587aee9809a386ea83bfccf786c7e5c07fa8a3cecda3933c23dc2a18758d695714652345f9436a1d02d761c62a SHA512 bf4b7076f49cf02cd4fc3b463ce88e614c91085c7d02e450a90d3980222148c56afef0ea8c4dcd810075fe2fde4ea25e2cda6dae9d4b886a0c9aa36fe87e07a9
DIST maturin-1.12.5-vendor.tar.xz 19322640 BLAKE2B e8c537c78ed6cf6a590185d3b5b152fa1761098bfd05c0d68c579d2e0ff4dada3b680c564a26750ff7ff0e4d6870d9922828d59a05d61bb933d02077e0acf65a SHA512 5cba7f88f4a8716441c11ae27f59b3f8dc7debffe5c0f8d41b3dea4944f3d293da3361cea037ea762c4f63e933c8afe502d90f2ba1d19ca9006ff3a4d131cd8b
DIST maturin-1.12.5.gh.tar.gz 648930 BLAKE2B 46f32b6dd0bc8af554841aac26800449737fdb7556df6497bfb7694e8444cabd6c43bc0ead9cb9ebec1d365333136c4e79853ee8606fad1556b3ae0fb27e01b5 SHA512 1f0ea04bdf568839cba8aa3f521e3dc3ff6ffc3b0212731ae6ce2b551992dcf1ee798ba2ac2064bc36d9fbcc4b8541b6ccf588a9e8834955a9976e507711dc07
DIST maturin-1.12.6-vendor.tar.xz 19339996 BLAKE2B 5fa56bde7c2445eebd51802e58ae53cc9fa7742d04d0b79043f29bdedee8b3e0871042ca1481b310398c3ffd51b518f97bf74c13999c7bc0b83dd2b9e5e4799d SHA512 c32f476784de0d86e4d3ec47a92f9e7d17f5e257b81b7aef8914e76d03d822f8117bb45ea055cb6e391ca1dfa9b6ae211e1eab117cda9559316eff8a1111d2e3

View File

@ -1,157 +0,0 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
DISTUTILS_UPSTREAM_PEP517=standalone
PYTHON_COMPAT=( pypy3_11 python3_{11..14} )
RUST_MIN_VER=1.88.0
inherit cargo distutils-r1 flag-o-matic shell-completion toolchain-funcs
DESCRIPTION="Build and publish crates with pyo3, rust-cpython and cffi bindings"
HOMEPAGE="https://www.maturin.rs/"
SRC_URI="
https://github.com/PyO3/maturin/archive/refs/tags/v${PV}.tar.gz
-> ${P}.gh.tar.gz
https://dev.gentoo.org/~ionen/distfiles/${P}-vendor.tar.xz
"
# ^ tarball also includes test-crates' Cargo.lock(s) crates for tests
LICENSE="|| ( Apache-2.0 MIT ) doc? ( OFL-1.1 )"
LICENSE+="
0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD
CDLA-Permissive-2.0 MIT MPL-2.0 Unicode-3.0 ZLIB BZIP2
" # crates
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="doc +ssl test"
RESTRICT="!test? ( test )"
RDEPEND="
app-arch/xz-utils
app-arch/zstd:=
ssl? ( dev-libs/openssl:= )
"
DEPEND="${RDEPEND}"
BDEPEND="
virtual/pkgconfig
doc? ( >=app-text/mdbook-0.5 )
test? (
$(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]' 'python*')
dev-python/boltons[${PYTHON_USEDEP}]
dev-python/virtualenv[${PYTHON_USEDEP}]
dev-vcs/git
elibc_musl? ( dev-util/patchelf )
)
"
QA_FLAGS_IGNORED="usr/bin/${PN}"
src_prepare() {
distutils-r1_src_prepare
# we build the Rust executable (just once) via cargo_src_compile
sed -i -e '/setuptools_rust/d' -e '/rust_extensions/d' setup.py || die
if use test; then
# used to prevent use of network during tests, and silence pip
# if it finds unrelated issues with system packages (bug #913613)
cat > "${T}"/pip.conf <<-EOF || die
[global]
quiet = 2
[install]
no-index = yes
no-dependencies = yes
EOF
# uv does not work easily w/ network-sandbox, force virtualenv
sed -i 's/"uv"/"uv-not-found"/' tests/common/mod.rs || die
# increase timeouts for tests (bug #950332)
sed -i '/^#\[timeout/s/secs(60)/secs(300)/' tests/run.rs || die
# used by *git_sdist_generator tests
git init -q || die
git config --global user.email "larry@gentoo.org" || die
git config --global user.name "Larry the Cow" || die
git add . || die
git commit -qm init || die
fi
}
src_configure() {
export OPENSSL_NO_VENDOR=1
export ZSTD_SYS_USE_PKG_CONFIG=1
# https://github.com/rust-lang/stacker/issues/79
use s390 && ! is-flagq '-march=*' &&
append-cflags $(test-flags-CC -march=z10)
local myfeatures=(
# like release.yml + native-tls for better platform support than rustls
full
password-storage
$(usev ssl native-tls)
)
cargo_src_configure --no-default-features
}
python_compile_all() {
cargo_src_compile
use !doc || mdbook build -d "${T}"/html guide || die
if ! tc-is-cross-compiler; then
local maturin=$(cargo_target_dir)/maturin
"${maturin}" completions bash > "${T}"/${PN} || die
"${maturin}" completions fish > "${T}"/${PN}.fish || die
"${maturin}" completions zsh > "${T}"/_${PN} || die
else
ewarn "shell completion files were skipped due to cross-compilation"
fi
}
python_test() {
local -x MATURIN_TEST_PYTHON=${EPYTHON}
local -x PIP_CONFIG_FILE=${T}/pip.conf
local -x VIRTUALENV_SYSTEM_SITE_PACKAGES=1
# need this for (new) python versions not yet recognized by pyo3
local -x PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1
local skip=(
# picky cli output test that easily benignly fail (bug #937992)
--skip cli_tests
# avoid need for wasm over a single hello world test
--skip integration_wasm_hello_world
# fragile depending on rust version, also wants libpypy*-c.so for pypy
--skip pyo3_no_extension_module
# unimportant tests that require uv, and not obvious to get it
# to work with network-sandbox (not worth the trouble)
--skip develop_hello_world::case_2
--skip develop_pyo3_ffi_pure::case_2
# compliance test using zig requires an old libc to pass (bug #946967)
--skip integration_pyo3_mixed_py_subdir
# these currently attempt to install tomli regardless of python version
--skip pep517_default_profile
--skip pep517_editable_profile
)
cargo_src_test -- "${skip[@]}"
}
python_install_all() {
dobin "$(cargo_target_dir)"/maturin
dodoc Changelog.md README.md
use doc && dodoc -r "${T}"/html
if ! tc-is-cross-compiler; then
dobashcomp "${T}"/${PN}
dofishcomp "${T}"/${PN}.fish
dozshcomp "${T}"/_${PN}
fi
}

View File

@ -1,157 +0,0 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
DISTUTILS_UPSTREAM_PEP517=standalone
PYTHON_COMPAT=( pypy3_11 python3_{11..14} )
RUST_MIN_VER=1.88.0
inherit cargo distutils-r1 flag-o-matic shell-completion toolchain-funcs
DESCRIPTION="Build and publish crates with pyo3, rust-cpython and cffi bindings"
HOMEPAGE="https://www.maturin.rs/"
SRC_URI="
https://github.com/PyO3/maturin/archive/refs/tags/v${PV}.tar.gz
-> ${P}.gh.tar.gz
https://dev.gentoo.org/~ionen/distfiles/${P}-vendor.tar.xz
"
# ^ tarball also includes test-crates' Cargo.lock(s) crates for tests
LICENSE="|| ( Apache-2.0 MIT ) doc? ( OFL-1.1 )"
LICENSE+="
0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD
CDLA-Permissive-2.0 MIT MPL-2.0 Unicode-3.0 ZLIB BZIP2
" # crates
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="doc +ssl test"
RESTRICT="!test? ( test )"
RDEPEND="
app-arch/xz-utils
app-arch/zstd:=
ssl? ( dev-libs/openssl:= )
"
DEPEND="${RDEPEND}"
BDEPEND="
virtual/pkgconfig
doc? ( >=app-text/mdbook-0.5 )
test? (
$(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]' 'python*')
dev-python/boltons[${PYTHON_USEDEP}]
dev-python/virtualenv[${PYTHON_USEDEP}]
dev-vcs/git
elibc_musl? ( dev-util/patchelf )
)
"
QA_FLAGS_IGNORED="usr/bin/${PN}"
src_prepare() {
distutils-r1_src_prepare
# we build the Rust executable (just once) via cargo_src_compile
sed -i -e '/setuptools_rust/d' -e '/rust_extensions/d' setup.py || die
if use test; then
# used to prevent use of network during tests, and silence pip
# if it finds unrelated issues with system packages (bug #913613)
cat > "${T}"/pip.conf <<-EOF || die
[global]
quiet = 2
[install]
no-index = yes
no-dependencies = yes
EOF
# uv does not work easily w/ network-sandbox, force virtualenv
sed -i 's/"uv"/"uv-not-found"/' tests/common/mod.rs || die
# increase timeouts for tests (bug #950332)
sed -i '/^#\[timeout/s/secs(60)/secs(300)/' tests/run.rs || die
# used by *git_sdist_generator tests
git init -q || die
git config --global user.email "larry@gentoo.org" || die
git config --global user.name "Larry the Cow" || die
git add . || die
git commit -qm init || die
fi
}
src_configure() {
export OPENSSL_NO_VENDOR=1
export ZSTD_SYS_USE_PKG_CONFIG=1
# https://github.com/rust-lang/stacker/issues/79
use s390 && ! is-flagq '-march=*' &&
append-cflags $(test-flags-CC -march=z10)
local myfeatures=(
# like release.yml + native-tls for better platform support than rustls
full
password-storage
$(usev ssl native-tls)
)
cargo_src_configure --no-default-features
}
python_compile_all() {
cargo_src_compile
use !doc || mdbook build -d "${T}"/html guide || die
if ! tc-is-cross-compiler; then
local maturin=$(cargo_target_dir)/maturin
"${maturin}" completions bash > "${T}"/${PN} || die
"${maturin}" completions fish > "${T}"/${PN}.fish || die
"${maturin}" completions zsh > "${T}"/_${PN} || die
else
ewarn "shell completion files were skipped due to cross-compilation"
fi
}
python_test() {
local -x MATURIN_TEST_PYTHON=${EPYTHON}
local -x PIP_CONFIG_FILE=${T}/pip.conf
local -x VIRTUALENV_SYSTEM_SITE_PACKAGES=1
# need this for (new) python versions not yet recognized by pyo3
local -x PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1
local skip=(
# picky cli output test that easily benignly fail (bug #937992)
--skip cli_tests
# avoid need for wasm over a single hello world test
--skip integration_wasm_hello_world
# fragile depending on rust version, also wants libpypy*-c.so for pypy
--skip pyo3_no_extension_module
# unimportant tests that require uv, and not obvious to get it
# to work with network-sandbox (not worth the trouble)
--skip develop_hello_world::case_2
--skip develop_pyo3_ffi_pure::case_2
# compliance test using zig requires an old libc to pass (bug #946967)
--skip integration_pyo3_mixed_py_subdir
# these currently attempt to install tomli regardless of python version
--skip pep517_default_profile
--skip pep517_editable_profile
)
cargo_src_test -- "${skip[@]}"
}
python_install_all() {
dobin "$(cargo_target_dir)"/maturin
dodoc Changelog.md README.md
use doc && dodoc -r "${T}"/html
if ! tc-is-cross-compiler; then
dobashcomp "${T}"/${PN}
dofishcomp "${T}"/${PN}.fish
dozshcomp "${T}"/_${PN}
fi
}

View File

@ -1,4 +1,4 @@
# Copyright 1999-2024 Gentoo Authors
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: alternatives.eclass
@ -92,7 +92,7 @@ alternatives_makesym() {
# usage: alternatives_makesym <resulting symlink> [alternative targets..]
# make sure it is in the prefix, allow it already to be in the prefix
SYMLINK=${EPREFIX}/${1#${EPREFIX}}
SYMLINK=${EPREFIX}/${1#"${EPREFIX}"}
pref=${ROOT}
shift
ALTERNATIVES=$@
@ -101,7 +101,7 @@ alternatives_makesym() {
# and if one exists, link it and finish.
for alt in ${ALTERNATIVES}; do
alt=${EPREFIX}/${alt#${EPREFIX}}
alt=${EPREFIX}/${alt#"${EPREFIX}"}
if [ -f "${pref}${alt}" ]; then
#are files in same directory?
if [ "${alt%/*}" = "${SYMLINK%/*}" ]

View File

@ -1,4 +1,4 @@
# Copyright 1999-2024 Gentoo Authors
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: bash-completion-r1.eclass
@ -48,7 +48,7 @@ _bash-completion-r1_get_bashdir() {
path=$($(tc-getPKG_CONFIG) --variable="${1}" bash-completion) || die
# we need to return unprefixed, so strip from what pkg-config returns
# to us, bug #477692
echo "${path#${EPREFIX}}"
echo "${path#"${EPREFIX}"}"
else
echo "${2}"
fi

View File

@ -1373,7 +1373,7 @@ _distutils-r1_wrap_scripts() {
debug-print "${FUNCNAME}: installing wrapper at ${bindir}/${basename}"
dosym -r /usr/lib/python-exec/python-exec2 \
"${bindir#${EPREFIX}}/${basename}"
"${bindir#"${EPREFIX}"}/${basename}"
done
for f in "${non_python_files[@]}"; do

View File

@ -1,4 +1,4 @@
# Copyright 1999-2025 Gentoo Authors
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: python-r1.eclass
@ -780,7 +780,7 @@ python_replicate_script() {
(
exeopts -m 0755
exeinto "${PYTHON_SCRIPTDIR#${EPREFIX}}"
exeinto "${PYTHON_SCRIPTDIR#"${EPREFIX}"}"
doexe "${files[@]}"
)

View File

@ -1,4 +1,4 @@
# Copyright 1999-2025 Gentoo Authors
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: python-utils-r1.eclass
@ -679,7 +679,7 @@ python_newexe() {
local newfn=${2}
local scriptdir=$(python_get_scriptdir)
local d=${scriptdir#${EPREFIX}}
local d=${scriptdir#"${EPREFIX}"}
(
dodir "${wrapd}"
@ -817,7 +817,7 @@ python_domodule() {
else
# relative to site-packages
local sitedir=$(python_get_sitedir)
d=${sitedir#${EPREFIX}}/${_PYTHON_MODULEROOT//.//}
d=${sitedir#"${EPREFIX}"}/${_PYTHON_MODULEROOT//.//}
fi
if [[ ${EBUILD_PHASE} == install ]]; then

View File

@ -2791,7 +2791,7 @@ gcc_movelibs() {
# that you want to link against when building tools rather than building
# code to run on the target.
if is_crosscompile ; then
dodir "${HOSTLIBPATH#${EPREFIX}}"
dodir "${HOSTLIBPATH#"${EPREFIX}"}"
# XXX: Ideally, we'd use $(get_libdir) here, but it's
# not right for cross. See bug #942573 and bug #794181.
if [[ ${GCC_BUILD_PLUGINS} == 1 ]] ; then
@ -2801,7 +2801,7 @@ gcc_movelibs() {
# libgccjit gets installed to /usr/lib, not /usr/$(get_libdir). Probably
# due to a bug in gcc build system.
dodir "${LIBPATH#${EPREFIX}}"
dodir "${LIBPATH#"${EPREFIX}"}"
if is_jit ; then
mv "${ED}"/usr/lib/libgccjit* "${D}${LIBPATH}" || die

View File

@ -1,4 +1,4 @@
# Copyright 1999-2024 Gentoo Authors
# Copyright 2012-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: udev.eclass
@ -57,9 +57,9 @@ _udev_get_udevdir() {
local -x PKG_CONFIG_FDO_SYSROOT_RULES=1
if $($(tc-getPKG_CONFIG) --exists udev); then
local udevdir="$($(tc-getPKG_CONFIG) --variable=udevdir udev)"
echo "${udevdir#${EPREFIX}}"
echo "${udevdir#"${EPREFIX}"}"
else
echo /lib/udev
echo /usr/lib/udev
fi
}

View File

@ -11,7 +11,7 @@ SRC_URI="https://salsa.debian.org/${PN}-team/${PN}/-/archive/${PV}/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
IUSE="nls"
DEPEND="sys-libs/ncurses:="

View File

@ -1,3 +1,5 @@
DIST iptables-1.8.11.tar.xz 649284 BLAKE2B 82daca3940e253f6fda7cf5b3332488c31391ff66c0112c0cae2645ab61918f81e6028ea2b1e1385f21e4c5ff8cd64cba31072a2417a2ab696fe1c6b5464cea1 SHA512 4937020bf52d57a45b76e1eba125214a2f4531de52ff1d15185faeef8bea0cd90eb77f99f81baa573944aa122f350a7198cef41d70594e1b65514784addbcc40
DIST iptables-1.8.12.tar.xz 652440 BLAKE2B 5516aadcf413efde272b09d1747e78e19f1d9e5481cdfdfe2360ca5f16926bb17535f58e4014a3616c59da83f41b39fc71e591c916bc309c7ca31701785a9e7e SHA512 b25bd6f6f78a6192699bce44c2b29ca65351ef71198a84fa26d29c47cb24ed695ee0406f6581fa81ece4d30445bb0680def5dc328f7fc708b80cadcd0230fe49
DIST iptables-1.8.12.tar.xz.sig 566 BLAKE2B aaa2574b6ad3848d8bb6603481a0f0734e2a529c0e0a351ee0178848dd981d507fbebff3a2756f2bd91bce373d7c398f572195c9767457e0ea096a20d2fc32a5 SHA512 c1a22b6c6104a0395823a8695eafca6459d82af3467e70e88dc5625aeb6d3feba485a3f2baaf0e8e6ff1b979dc1c764427a6d6614a070476078d1e2f8cd3fd34
DIST iptables-1.8.13.tar.xz 652632 BLAKE2B 5bfaa3353c8aa8df34938e00739a6713b49697157268bb65302dac86b832c826d7b73c35ed5e71f376299c69d4a62c1d14d4b2d177c62a4f667d0b3c378a34fa SHA512 3aefd76ca60d00f46ba4d6f39cbcfdc60517d03b6714da25dcd67542f6f4eea8d82c4855bdd9124efe18b769f41951772b8340a6eda75b85f8dd52b2289b145b
DIST iptables-1.8.13.tar.xz.sig 566 BLAKE2B d150357e5ab3af9743fc4fb514b899d342446b8299ac02b9eb2a17893b690a657d457da3f6a35867bf8d2c46519a926100a222c71bf4d8594f9616143556adc5 SHA512 9b8ef597e1f73c2697f29b07ac010313696f52f478f10c65ec4c4e2dc933be50c74c5c236512e4d756220c4d2fd511fded88dc46f2376fc5d7e2bea71fd267ca

View File

@ -0,0 +1,181 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/netfilter.org.asc
inherit systemd toolchain-funcs autotools flag-o-matic verify-sig
DESCRIPTION="Linux kernel (2.4+) firewall, NAT and packet mangling tools"
HOMEPAGE="https://www.netfilter.org/projects/iptables/"
SRC_URI="
https://www.netfilter.org/projects/iptables/files/${P}.tar.xz
verify-sig? ( https://www.netfilter.org/projects/iptables/files/${P}.tar.xz.sig )
"
LICENSE="GPL-2"
# Subslot reflects PV when libxtables and/or libip*tc was changed
# the last time.
SLOT="0/1.8.3"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="conntrack netlink nftables pcap static-libs test"
RESTRICT="!test? ( test )"
# TODO: skip tests needing nftables if no xtables-nft-multi (bug #890628)
REQUIRED_USE="test? ( conntrack nftables )"
COMMON_DEPEND="
conntrack? ( >=net-libs/libnetfilter_conntrack-1.0.6 )
netlink? ( net-libs/libnfnetlink )
nftables? (
>=net-libs/libmnl-1.0:=
>=net-libs/libnftnl-1.2.6:=
)
pcap? ( net-libs/libpcap )
"
DEPEND="
${COMMON_DEPEND}
virtual/os-headers
>=sys-kernel/linux-headers-4.4:0
"
BDEPEND="
virtual/pkgconfig
nftables? (
app-alternatives/lex
app-alternatives/yacc
)
verify-sig? ( sec-keys/openpgp-keys-netfilter )
"
RDEPEND="
${COMMON_DEPEND}
nftables? ( net-misc/ethertypes )
!<net-firewall/ebtables-2.0.11-r1
!<net-firewall/arptables-0.0.5-r1
"
IDEPEND=">=app-eselect/eselect-iptables-20220320"
PATCHES=(
"${FILESDIR}"/${PN}-1.8.4-no-symlinks.patch
)
src_prepare() {
# Use the saner headers from the kernel
rm include/linux/{kernel,types}.h || die
default
eautoreconf
}
src_configure() {
# Some libs use $(AR) rather than libtool to build, bug #444282
tc-export AR
# Hack around struct mismatches between userland & kernel for some ABIs
# bug #472388
use amd64 && [[ ${ABI} == "x32" ]] && append-flags -fpack-struct
local myeconfargs=(
--sbindir="${EPREFIX}/sbin"
--libexecdir="${EPREFIX}/$(get_libdir)"
--enable-devel
--enable-ipv6
--enable-shared
$(use_enable conntrack connlabel)
$(use_enable nftables)
$(use_enable netlink libnfnetlink)
$(use_enable pcap bpf-compiler)
$(use_enable pcap nfsynproxy)
$(use_enable static-libs static)
)
econf "${myeconfargs[@]}"
}
src_compile() {
emake V=1
}
src_install() {
default
# Managed by eselect-iptables
# https://bugs.gentoo.org/881295
rm "${ED}/usr/bin/iptables-xml" || die
dodoc iptables/iptables.xslt
# All the iptables binaries are in /sbin, so might as well
# put these small files in with them
into /
dosbin iptables/iptables-apply
dosym iptables-apply /sbin/ip6tables-apply
doman iptables/iptables-apply.8
insinto /usr/include
doins include/ip{,6}tables.h
insinto /usr/include/iptables
doins include/iptables/internal.h
keepdir /var/lib/ip{,6}tables
newinitd "${FILESDIR}"/${PN}-r4.init iptables
newconfd "${FILESDIR}"/${PN}-r1.confd iptables
dosym iptables /etc/init.d/ip6tables
newconfd "${FILESDIR}"/ip6tables-r1.confd ip6tables
if use nftables; then
# Bug #647458
rm "${ED}"/etc/ethertypes || die
# Bugs #660886 and #669894
rm "${ED}"/sbin/{arptables,ebtables}{,-{save,restore}} || die
fi
systemd_dounit "${FILESDIR}"/systemd/ip{,6}tables-{re,}store.service
find "${ED}" -type f -name "*.la" -delete || die
}
pkg_postinst() {
local default_iptables="xtables-legacy-multi"
if ! eselect iptables show &>/dev/null; then
elog "Current iptables implementation is unset, setting to ${default_iptables}"
eselect iptables set "${default_iptables}"
fi
if use nftables; then
local tables
for tables in {arp,eb}tables; do
if ! eselect ${tables} show &>/dev/null; then
elog "Current ${tables} implementation is unset, setting to ${default_iptables}"
eselect ${tables} set xtables-nft-multi
fi
done
fi
eselect iptables show
}
pkg_prerm() {
if [[ -z ${REPLACED_BY_VERSION} ]]; then
elog "Unsetting iptables symlinks before removal"
eselect iptables unset
fi
if ! has_version 'net-firewall/ebtables'; then
elog "Unsetting ebtables symlinks before removal"
eselect ebtables unset
elif [[ -z ${REPLACED_BY_VERSION} ]]; then
elog "Resetting ebtables symlinks to ebtables-legacy"
eselect ebtables set ebtables-legacy
fi
if ! has_version 'net-firewall/arptables'; then
elog "Unsetting arptables symlinks before removal"
eselect arptables unset
elif [[ -z ${REPLACED_BY_VERSION} ]]; then
elog "Resetting arptables symlinks to arptables-legacy"
eselect arptables set arptables-legacy
fi
# The eselect module failing should not be fatal
return 0
}

View File

@ -1,4 +1,4 @@
# Copyright 1999-2025 Gentoo Authors
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@ -14,7 +14,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~loong ~m68k ~ppc ~ppc64 ~riscv ~x86"
KEYWORDS="amd64 arm64 ~loong ~m68k ~ppc ppc64 ~riscv x86"
IUSE="static-libs valgrind"
RDEPEND="dev-libs/glib:="

View File

@ -4,7 +4,9 @@ DIST openssh-10.1p1.tar.gz 1972831 BLAKE2B 08864c9302935cde87eec9d736a90b0bcf232
DIST openssh-10.1p1.tar.gz.asc 833 BLAKE2B c9df62728276464926ac7d28d54dd23a42bef150a9f64bfec14278d0e1817a876ee76b3329aca863997107bb8d4d43a694643f730249d9940d967b4c2a18fed3 SHA512 a4082bf8526d60094b5a3207995793c44448833b1cdd7ec91f04554fd8bddc1df3b45ee9ffe42de3bfc72d4968808834e289159e3c96f031e09a78da844641ae
DIST openssh-10.2p1.tar.gz 1974519 BLAKE2B 8c031b10b1642e21b46f7d1db84ba42692e378a54af3d8e5b5c8706c3a0a06d442a02ed8803063121e7ff325ea275cad4432b9eaa6a7f47a4d7cfad504953ab6 SHA512 66f3dd646179e71aaf41c33b6f14a207dc873d71d24f11c130a89dee317ee45398b818e5b94887b5913240964a38630d7bca3e481e0f1eff2e41d9e1cfdbdfc5
DIST openssh-10.2p1.tar.gz.asc 833 BLAKE2B 34e1a697e9565f5d4e8139537e76e123512285662576f6f2b513ba129d5e42310c1997e70d7c69b2c4fe1c85f9323ef686b8f83f12a73c5a4f229ff855efd7c6 SHA512 f1f71700b1b0b2117aed505488b98b7ebb51ce26e53184b08df0b07aa2c5a1e54dc4d3cbcbe871b5ad849a2a0e22b02af318ff22a68c980ab53b04be03c9bf3c
DIST openssh-9.8_p1-backports.tar.gz 5879 BLAKE2B 98f2864977f512cb658d129cc89385df25b57fb4ec5ac0cb5e2655ff7f8bffa795194a2177a78339999b0d25c9aea708469b322b9d7c814165e570fb5a66ee9b SHA512 541a629b3ce7d20df29b649478f7a4348bed876045cc2b3c95b6544cce87850cd05c1d405e85ce713fb137b7768402d2b0052a6478b781c30a2567ffebcd4322
DIST openssh-9.8p1.tar.gz 1910393 BLAKE2B 3bf983c4ef5358054ed0104cd51d3e0069fbc2b80d8522d0df644d5508ec1d26a67bf061b1b5698d1cdf0d2cbba16b4cdca12a4ce30da24429094576a075e192 SHA512 95dec2f18e58eb47994f3de4430253e0665e185564b65088ca5f4108870e05feddef8cda8d3c0a4b75f18b98cc2c024df0e27de53b48c1a16da8da483cb8292a
DIST openssh-9.8p1.tar.gz.asc 833 BLAKE2B 5291e8c03ab9a75acb44285cd7fc010f4a33551f142499624165dac708fc05a6d077df81555aa41037b45f6301e4e5db3161a7a23404473f8a233a877fc55cc3 SHA512 4df1f1be2c6ab7f3aebaedd0a773b0e8c8929abb30cd3415873ad55d012cfa113f792e888e5e772dd468c394aeb7e35d62893a514dbc0ab1a03acd79918657f7
DIST openssh-9.9_p2-backports.tar.gz 7994 BLAKE2B d2410b0cb2eb2056a4f1e5fabd6b0fe5a6ac8924159424fec6b3de3d7a5e3e8f1ed346522c52f9ce47fafb4001ad3be1d2f5493100a1b49f2c488dd63bbcb48b SHA512 8348aeb4e85a7763cf10d56fe7e5437206270dc4abb8ade65f86ad86b23be60f68c9aa7f83e021723c447d7746bdbfa82d4598481b4527b77f74872fa0783384
DIST openssh-9.9p2.tar.gz 1944499 BLAKE2B 1b5bc09482b3a807ccfee52c86c6be3c363acf0c8e774862e0ae64f76bfeb4ce7cf29b3ed2f99c04c89bb4977da0cf50a7a175b15bf1d9925de1e03c66f8306d SHA512 4c6d839aa3189cd5254c745f2bd51cd3f468b02f8e427b8d7a16b9ad017888a41178d2746dc51fb2d3fec5be00e54b9ab7c32c472ca7dec57a1dea4fc9840278
DIST openssh-9.9p2.tar.gz.asc 833 BLAKE2B 21d9ef3da2b54be47420327f1c724e38eef951ea11d646de81ac3ee2abf3d81f218424432cf5ac7d60cdae72e2190001f923dbdf5bed57f4a105ee1895261c9d SHA512 e7f9bc74d27e5cf8cbf4f5831fddd1d8ad00b03e51e7deb7f95ef17c5017ab7ce0116f4770374aaf6bd3a5f6013dab651a7651b21fa303d05ad6d14b537ab955

View File

@ -1,36 +0,0 @@
From 20950a7c047ca08f9317d27866c06587ed51a338 Mon Sep 17 00:00:00 2001
Message-ID: <20950a7c047ca08f9317d27866c06587ed51a338.1758727870.git.sam@gentoo.org>
From: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date: Tue, 26 Mar 2024 22:15:08 +0100
Subject: [PATCH 1/7] Fix detection of setres*id on GNU/Hurd
Like Linux, proper _SOURCE macros need to be set to get declarations of
various standard functions, notably setres*id. Now that Debian is using
-Werror=implicit-function-declaration this is really required. While at
it, define other _SOURCE macros like on GNU/Linux, since GNU/Hurd uses
the same glibc.
---
configure.ac | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/configure.ac b/configure.ac
index 5a865f8e1..2eede34c3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1348,6 +1348,13 @@ EOD
AC_DEFINE([BROKEN_SETVBUF], [1],
[LynxOS has broken setvbuf() implementation])
;;
+*-*-gnu*)
+ dnl GNU Hurd. Needs to be after the linux and the other *-gnu entries.
+ dnl Target SUSv3/POSIX.1-2001 plus BSD specifics.
+ dnl _DEFAULT_SOURCE is the new name for _BSD_SOURCE
+ dnl _GNU_SOURCE is needed for setres*id prototypes.
+ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600 -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_GNU_SOURCE"
+ ;;
esac
AC_MSG_CHECKING([compiler and flags for sanity])
--
2.51.0

View File

@ -1,30 +0,0 @@
From 34f7a962f992a43e33b5b6e2dd71f1582433d551 Mon Sep 17 00:00:00 2001
Message-ID: <34f7a962f992a43e33b5b6e2dd71f1582433d551.1758727870.git.sam@gentoo.org>
In-Reply-To: <20950a7c047ca08f9317d27866c06587ed51a338.1758727870.git.sam@gentoo.org>
References: <20950a7c047ca08f9317d27866c06587ed51a338.1758727870.git.sam@gentoo.org>
From: Darren Tucker <dtucker@dtucker.net>
Date: Thu, 4 Jul 2024 20:12:26 +1000
Subject: [PATCH 2/7] Add 9.8 branch to ci-status page.
---
.github/ci-status.md | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/.github/ci-status.md b/.github/ci-status.md
index fbf7c5fd6..4fa73894c 100644
--- a/.github/ci-status.md
+++ b/.github/ci-status.md
@@ -6,6 +6,10 @@ master :
[![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/openssh.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:openssh)
[![Coverity Status](https://scan.coverity.com/projects/21341/badge.svg)](https://scan.coverity.com/projects/openssh-portable)
+9.8 :
+[![C/C++ CI](https://github.com/openssh/openssh-portable/actions/workflows/c-cpp.yml/badge.svg?branch=V_9_8)](https://github.com/openssh/openssh-portable/actions/workflows/c-cpp.yml?query=branch:V_9_8)
+[![C/C++ CI self-hosted](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/selfhosted.yml/badge.svg?branch=V_9_8)](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/selfhosted.yml?query=branch:V_9_8)
+
9.7 :
[![C/C++ CI](https://github.com/openssh/openssh-portable/actions/workflows/c-cpp.yml/badge.svg?branch=V_9_7)](https://github.com/openssh/openssh-portable/actions/workflows/c-cpp.yml?query=branch:V_9_7)
[![C/C++ CI self-hosted](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/selfhosted.yml/badge.svg?branch=V_9_7)](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/selfhosted.yml?query=branch:V_9_7)
--
2.51.0

View File

@ -1,29 +0,0 @@
From b35a64dd7d5278af859ff8cca1fbe42d2c308ac0 Mon Sep 17 00:00:00 2001
Message-ID: <b35a64dd7d5278af859ff8cca1fbe42d2c308ac0.1758727870.git.sam@gentoo.org>
In-Reply-To: <20950a7c047ca08f9317d27866c06587ed51a338.1758727870.git.sam@gentoo.org>
References: <20950a7c047ca08f9317d27866c06587ed51a338.1758727870.git.sam@gentoo.org>
From: Darren Tucker <dtucker@dtucker.net>
Date: Sun, 7 Jul 2024 18:46:19 +1000
Subject: [PATCH 3/7] Cast to sockaddr * in systemd interface.
Fixes build with musl libx. bz#3707.
---
openbsd-compat/port-linux.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/openbsd-compat/port-linux.c b/openbsd-compat/port-linux.c
index 4c024c6d2..8adfec5a7 100644
--- a/openbsd-compat/port-linux.c
+++ b/openbsd-compat/port-linux.c
@@ -366,7 +366,7 @@ ssh_systemd_notify(const char *fmt, ...)
error_f("socket \"%s\": %s", path, strerror(errno));
goto out;
}
- if (connect(fd, &addr, sizeof(addr)) != 0) {
+ if (connect(fd, (struct sockaddr *)&addr, sizeof(addr)) != 0) {
error_f("socket \"%s\" connect: %s", path, strerror(errno));
goto out;
}
--
2.51.0

View File

@ -1,29 +0,0 @@
From c21fc9d953f6d858ea0a9d7da38359d2eb397ed0 Mon Sep 17 00:00:00 2001
Message-ID: <c21fc9d953f6d858ea0a9d7da38359d2eb397ed0.1758727870.git.sam@gentoo.org>
In-Reply-To: <20950a7c047ca08f9317d27866c06587ed51a338.1758727870.git.sam@gentoo.org>
References: <20950a7c047ca08f9317d27866c06587ed51a338.1758727870.git.sam@gentoo.org>
From: "djm@openbsd.org" <djm@openbsd.org>
Date: Wed, 10 Jul 2024 21:58:34 +0000
Subject: [PATCH 4/7] upstream: correct keyword; from Yatao Su via GHPR509
OpenBSD-Commit-ID: 81c778c76dea7ef407603caa157eb0c381c52ad2
---
sshd_config.5 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sshd_config.5 b/sshd_config.5
index 1ab0f41d9..ce872de52 100644
--- a/sshd_config.5
+++ b/sshd_config.5
@@ -1586,7 +1586,7 @@ accumulated.
.Pp
Penalties are enabled by default with the default settings listed below
but may disabled using the
-.Cm off
+.Cm no
keyword.
The defaults may be overridden by specifying one or more of the keywords below,
separated by whitespace.
--
2.51.0

View File

@ -1,250 +0,0 @@
From 26f73db15e0eee558a11b42a9d794d78c87dd11e Mon Sep 17 00:00:00 2001
Message-ID: <26f73db15e0eee558a11b42a9d794d78c87dd11e.1758727870.git.sam@gentoo.org>
In-Reply-To: <20950a7c047ca08f9317d27866c06587ed51a338.1758727870.git.sam@gentoo.org>
References: <20950a7c047ca08f9317d27866c06587ed51a338.1758727870.git.sam@gentoo.org>
From: Damien Miller <djm@mindrot.org>
Date: Mon, 11 Aug 2025 16:40:24 +1000
Subject: [PATCH 5/7] support sntrup761x25519-sha512 alias
OpenSSH 9.8 supports the sntrup761x25519-sha512@openssh.com
key agreement algorithm. As part of standardisation, this algorithm
has been assigned the name sntrup761x25519-sha512.
This commit enables the existing algorithm under this new name.
---
configure | 3 +++
kex-names.c | 2 ++
kex.h | 1 +
moduli.0 | 2 +-
myproposal.h | 1 +
scp.0 | 2 +-
sftp-server.0 | 2 +-
sftp.0 | 2 +-
ssh-add.0 | 2 +-
ssh-agent.0 | 2 +-
ssh-keygen.0 | 2 +-
ssh-keyscan.0 | 2 +-
ssh-keysign.0 | 2 +-
ssh-pkcs11-helper.0 | 2 +-
ssh-sk-helper.0 | 2 +-
ssh.0 | 2 +-
ssh_config.0 | 2 +-
sshd.0 | 2 +-
sshd_config.0 | 6 +++---
19 files changed, 24 insertions(+), 17 deletions(-)
diff --git a/configure b/configure
index 07d19fd30..32e38c4cb 100755
--- a/configure
+++ b/configure
@@ -13317,6 +13317,9 @@ EOD
printf "%s\n" "#define BROKEN_SETVBUF 1" >>confdefs.h
;;
+*-*-gnu*)
+ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600 -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_GNU_SOURCE"
+ ;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking compiler and flags for sanity" >&5
diff --git a/kex-names.c b/kex-names.c
index 339eb1c23..1869b8ee1 100644
--- a/kex-names.c
+++ b/kex-names.c
@@ -77,6 +77,8 @@ static const struct kexalg kexalgs[] = {
{ KEX_CURVE25519_SHA256, KEX_C25519_SHA256, 0, SSH_DIGEST_SHA256 },
{ KEX_CURVE25519_SHA256_OLD, KEX_C25519_SHA256, 0, SSH_DIGEST_SHA256 },
#ifdef USE_SNTRUP761X25519
+ { KEX_SNTRUP761X25519_SHA512_IANA, KEX_KEM_SNTRUP761X25519_SHA512, 0,
+ SSH_DIGEST_SHA512 },
{ KEX_SNTRUP761X25519_SHA512, KEX_KEM_SNTRUP761X25519_SHA512, 0,
SSH_DIGEST_SHA512 },
#endif
diff --git a/kex.h b/kex.h
index 34665eb20..ed22b929f 100644
--- a/kex.h
+++ b/kex.h
@@ -63,6 +63,7 @@
#define KEX_CURVE25519_SHA256 "curve25519-sha256"
#define KEX_CURVE25519_SHA256_OLD "curve25519-sha256@libssh.org"
#define KEX_SNTRUP761X25519_SHA512 "sntrup761x25519-sha512@openssh.com"
+#define KEX_SNTRUP761X25519_SHA512_IANA "sntrup761x25519-sha512"
#define COMP_NONE 0
/* pre-auth compression (COMP_ZLIB) is only supported in the client */
diff --git a/moduli.0 b/moduli.0
index 057a018ef..90700a16f 100644
--- a/moduli.0
+++ b/moduli.0
@@ -71,4 +71,4 @@ STANDARDS
M. Friedl, N. Provos, and W. Simpson, Diffie-Hellman Group Exchange for
the Secure Shell (SSH) Transport Layer Protocol, RFC 4419, March 2006.
-OpenBSD 7.5 April 16, 2022 OpenBSD 7.5
+OpenBSD 7.7 April 16, 2022 OpenBSD 7.7
diff --git a/myproposal.h b/myproposal.h
index ee6e9f741..0528cd783 100644
--- a/myproposal.h
+++ b/myproposal.h
@@ -25,6 +25,7 @@
*/
#define KEX_SERVER_KEX \
+ "sntrup761x25519-sha512," \
"sntrup761x25519-sha512@openssh.com," \
"curve25519-sha256," \
"curve25519-sha256@libssh.org," \
diff --git a/scp.0 b/scp.0
index e098ddf55..85d5f83d5 100644
--- a/scp.0
+++ b/scp.0
@@ -229,4 +229,4 @@ CAVEATS
requires careful quoting of any characters that have special meaning to
the remote shell, such as quote characters.
-OpenBSD 7.5 December 16, 2022 OpenBSD 7.5
+OpenBSD 7.7 December 16, 2022 OpenBSD 7.7
diff --git a/sftp-server.0 b/sftp-server.0
index 23fdda399..273b69908 100644
--- a/sftp-server.0
+++ b/sftp-server.0
@@ -95,4 +95,4 @@ HISTORY
AUTHORS
Markus Friedl <markus@openbsd.org>
-OpenBSD 7.5 July 27, 2021 OpenBSD 7.5
+OpenBSD 7.7 July 27, 2021 OpenBSD 7.7
diff --git a/sftp.0 b/sftp.0
index c6a9e60c4..0476733c1 100644
--- a/sftp.0
+++ b/sftp.0
@@ -435,4 +435,4 @@ SEE ALSO
T. Ylonen and S. Lehtinen, SSH File Transfer Protocol, draft-ietf-secsh-
filexfer-00.txt, January 2001, work in progress material.
-OpenBSD 7.5 December 16, 2022 OpenBSD 7.5
+OpenBSD 7.7 December 16, 2022 OpenBSD 7.7
diff --git a/ssh-add.0 b/ssh-add.0
index 30eed6672..20f1a88e2 100644
--- a/ssh-add.0
+++ b/ssh-add.0
@@ -206,4 +206,4 @@ AUTHORS
created OpenSSH. Markus Friedl contributed the support for SSH protocol
versions 1.5 and 2.0.
-OpenBSD 7.5 June 17, 2024 OpenBSD 7.5
+OpenBSD 7.7 June 17, 2024 OpenBSD 7.7
diff --git a/ssh-agent.0 b/ssh-agent.0
index 2e4ef7b6e..238fa54e2 100644
--- a/ssh-agent.0
+++ b/ssh-agent.0
@@ -137,4 +137,4 @@ AUTHORS
created OpenSSH. Markus Friedl contributed the support for SSH protocol
versions 1.5 and 2.0.
-OpenBSD 7.5 August 10, 2023 OpenBSD 7.5
+OpenBSD 7.7 August 10, 2023 OpenBSD 7.7
diff --git a/ssh-keygen.0 b/ssh-keygen.0
index a731a7fa8..13b032f46 100644
--- a/ssh-keygen.0
+++ b/ssh-keygen.0
@@ -904,4 +904,4 @@ AUTHORS
created OpenSSH. Markus Friedl contributed the support for SSH protocol
versions 1.5 and 2.0.
-OpenBSD 7.5 June 17, 2024 OpenBSD 7.5
+OpenBSD 7.7 June 17, 2024 OpenBSD 7.7
diff --git a/ssh-keyscan.0 b/ssh-keyscan.0
index 110399094..cf0962c82 100644
--- a/ssh-keyscan.0
+++ b/ssh-keyscan.0
@@ -120,4 +120,4 @@ AUTHORS
Davison <wayned@users.sourceforge.net> added support for protocol version
2.
-OpenBSD 7.5 June 17, 2024 OpenBSD 7.5
+OpenBSD 7.7 June 17, 2024 OpenBSD 7.7
diff --git a/ssh-keysign.0 b/ssh-keysign.0
index 577955d1b..ff3305809 100644
--- a/ssh-keysign.0
+++ b/ssh-keysign.0
@@ -47,4 +47,4 @@ HISTORY
AUTHORS
Markus Friedl <markus@openbsd.org>
-OpenBSD 7.5 June 17, 2024 OpenBSD 7.5
+OpenBSD 7.7 June 17, 2024 OpenBSD 7.7
diff --git a/ssh-pkcs11-helper.0 b/ssh-pkcs11-helper.0
index 564587259..4b1cb8d7d 100644
--- a/ssh-pkcs11-helper.0
+++ b/ssh-pkcs11-helper.0
@@ -32,4 +32,4 @@ HISTORY
AUTHORS
Markus Friedl <markus@openbsd.org>
-OpenBSD 7.5 April 29, 2022 OpenBSD 7.5
+OpenBSD 7.7 April 29, 2022 OpenBSD 7.7
diff --git a/ssh-sk-helper.0 b/ssh-sk-helper.0
index ea2117abd..4abc5e8a0 100644
--- a/ssh-sk-helper.0
+++ b/ssh-sk-helper.0
@@ -31,4 +31,4 @@ HISTORY
AUTHORS
Damien Miller <djm@openbsd.org>
-OpenBSD 7.5 April 29, 2022 OpenBSD 7.5
+OpenBSD 7.7 April 29, 2022 OpenBSD 7.7
diff --git a/ssh.0 b/ssh.0
index 78863b1b0..9c34e3e6e 100644
--- a/ssh.0
+++ b/ssh.0
@@ -1016,4 +1016,4 @@ AUTHORS
created OpenSSH. Markus Friedl contributed the support for SSH protocol
versions 1.5 and 2.0.
-OpenBSD 7.5 June 27, 2024 OpenBSD 7.5
+OpenBSD 7.7 June 27, 2024 OpenBSD 7.7
diff --git a/ssh_config.0 b/ssh_config.0
index ef6c0936a..f9a82781b 100644
--- a/ssh_config.0
+++ b/ssh_config.0
@@ -1428,4 +1428,4 @@ AUTHORS
created OpenSSH. Markus Friedl contributed the support for SSH protocol
versions 1.5 and 2.0.
-OpenBSD 7.5 June 17, 2024 OpenBSD 7.5
+OpenBSD 7.7 June 17, 2024 OpenBSD 7.7
diff --git a/sshd.0 b/sshd.0
index c7de2d311..eac127dcf 100644
--- a/sshd.0
+++ b/sshd.0
@@ -682,4 +682,4 @@ AUTHORS
versions 1.5 and 2.0. Niels Provos and Markus Friedl contributed support
for privilege separation.
-OpenBSD 7.5 June 17, 2024 OpenBSD 7.5
+OpenBSD 7.7 June 17, 2024 OpenBSD 7.7
diff --git a/sshd_config.0 b/sshd_config.0
index 6883dda4b..ca030fcca 100644
--- a/sshd_config.0
+++ b/sshd_config.0
@@ -950,8 +950,8 @@ DESCRIPTION
accumulated.
Penalties are enabled by default with the default settings listed
- below but may disabled using the off keyword. The defaults may
- be overridden by specifying one or more of the keywords below,
+ below but may disabled using the no keyword. The defaults may be
+ overridden by specifying one or more of the keywords below,
separated by whitespace. All keywords accept arguments, e.g.
"crash:2m".
@@ -1390,4 +1390,4 @@ AUTHORS
versions 1.5 and 2.0. Niels Provos and Markus Friedl contributed support
for privilege separation.
-OpenBSD 7.5 June 24, 2024 OpenBSD 7.5
+OpenBSD 7.7 June 24, 2024 OpenBSD 7.7
--
2.51.0

View File

@ -1,206 +0,0 @@
From d1460a177431d034248b62b36240f634482e48de Mon Sep 17 00:00:00 2001
Message-ID: <d1460a177431d034248b62b36240f634482e48de.1758727870.git.sam@gentoo.org>
In-Reply-To: <20950a7c047ca08f9317d27866c06587ed51a338.1758727870.git.sam@gentoo.org>
References: <20950a7c047ca08f9317d27866c06587ed51a338.1758727870.git.sam@gentoo.org>
From: Damien Miller <djm@mindrot.org>
Date: Wed, 13 Aug 2025 09:19:53 +1000
Subject: [PATCH 6/7] back out unrelated manpages changes
spotted by Colin Wilson
---
configure | 3 ---
moduli.0 | 2 +-
scp.0 | 2 +-
sftp-server.0 | 2 +-
sftp.0 | 2 +-
ssh-add.0 | 2 +-
ssh-agent.0 | 2 +-
ssh-keygen.0 | 2 +-
ssh-keyscan.0 | 2 +-
ssh-keysign.0 | 2 +-
ssh-pkcs11-helper.0 | 2 +-
ssh-sk-helper.0 | 2 +-
ssh.0 | 2 +-
ssh_config.0 | 2 +-
sshd.0 | 2 +-
sshd_config.0 | 6 +++---
16 files changed, 17 insertions(+), 20 deletions(-)
diff --git a/configure b/configure
index 32e38c4cb..07d19fd30 100755
--- a/configure
+++ b/configure
@@ -13317,9 +13317,6 @@ EOD
printf "%s\n" "#define BROKEN_SETVBUF 1" >>confdefs.h
;;
-*-*-gnu*)
- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600 -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_GNU_SOURCE"
- ;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking compiler and flags for sanity" >&5
diff --git a/moduli.0 b/moduli.0
index 90700a16f..057a018ef 100644
--- a/moduli.0
+++ b/moduli.0
@@ -71,4 +71,4 @@ STANDARDS
M. Friedl, N. Provos, and W. Simpson, Diffie-Hellman Group Exchange for
the Secure Shell (SSH) Transport Layer Protocol, RFC 4419, March 2006.
-OpenBSD 7.7 April 16, 2022 OpenBSD 7.7
+OpenBSD 7.5 April 16, 2022 OpenBSD 7.5
diff --git a/scp.0 b/scp.0
index 85d5f83d5..e098ddf55 100644
--- a/scp.0
+++ b/scp.0
@@ -229,4 +229,4 @@ CAVEATS
requires careful quoting of any characters that have special meaning to
the remote shell, such as quote characters.
-OpenBSD 7.7 December 16, 2022 OpenBSD 7.7
+OpenBSD 7.5 December 16, 2022 OpenBSD 7.5
diff --git a/sftp-server.0 b/sftp-server.0
index 273b69908..23fdda399 100644
--- a/sftp-server.0
+++ b/sftp-server.0
@@ -95,4 +95,4 @@ HISTORY
AUTHORS
Markus Friedl <markus@openbsd.org>
-OpenBSD 7.7 July 27, 2021 OpenBSD 7.7
+OpenBSD 7.5 July 27, 2021 OpenBSD 7.5
diff --git a/sftp.0 b/sftp.0
index 0476733c1..c6a9e60c4 100644
--- a/sftp.0
+++ b/sftp.0
@@ -435,4 +435,4 @@ SEE ALSO
T. Ylonen and S. Lehtinen, SSH File Transfer Protocol, draft-ietf-secsh-
filexfer-00.txt, January 2001, work in progress material.
-OpenBSD 7.7 December 16, 2022 OpenBSD 7.7
+OpenBSD 7.5 December 16, 2022 OpenBSD 7.5
diff --git a/ssh-add.0 b/ssh-add.0
index 20f1a88e2..30eed6672 100644
--- a/ssh-add.0
+++ b/ssh-add.0
@@ -206,4 +206,4 @@ AUTHORS
created OpenSSH. Markus Friedl contributed the support for SSH protocol
versions 1.5 and 2.0.
-OpenBSD 7.7 June 17, 2024 OpenBSD 7.7
+OpenBSD 7.5 June 17, 2024 OpenBSD 7.5
diff --git a/ssh-agent.0 b/ssh-agent.0
index 238fa54e2..2e4ef7b6e 100644
--- a/ssh-agent.0
+++ b/ssh-agent.0
@@ -137,4 +137,4 @@ AUTHORS
created OpenSSH. Markus Friedl contributed the support for SSH protocol
versions 1.5 and 2.0.
-OpenBSD 7.7 August 10, 2023 OpenBSD 7.7
+OpenBSD 7.5 August 10, 2023 OpenBSD 7.5
diff --git a/ssh-keygen.0 b/ssh-keygen.0
index 13b032f46..a731a7fa8 100644
--- a/ssh-keygen.0
+++ b/ssh-keygen.0
@@ -904,4 +904,4 @@ AUTHORS
created OpenSSH. Markus Friedl contributed the support for SSH protocol
versions 1.5 and 2.0.
-OpenBSD 7.7 June 17, 2024 OpenBSD 7.7
+OpenBSD 7.5 June 17, 2024 OpenBSD 7.5
diff --git a/ssh-keyscan.0 b/ssh-keyscan.0
index cf0962c82..110399094 100644
--- a/ssh-keyscan.0
+++ b/ssh-keyscan.0
@@ -120,4 +120,4 @@ AUTHORS
Davison <wayned@users.sourceforge.net> added support for protocol version
2.
-OpenBSD 7.7 June 17, 2024 OpenBSD 7.7
+OpenBSD 7.5 June 17, 2024 OpenBSD 7.5
diff --git a/ssh-keysign.0 b/ssh-keysign.0
index ff3305809..577955d1b 100644
--- a/ssh-keysign.0
+++ b/ssh-keysign.0
@@ -47,4 +47,4 @@ HISTORY
AUTHORS
Markus Friedl <markus@openbsd.org>
-OpenBSD 7.7 June 17, 2024 OpenBSD 7.7
+OpenBSD 7.5 June 17, 2024 OpenBSD 7.5
diff --git a/ssh-pkcs11-helper.0 b/ssh-pkcs11-helper.0
index 4b1cb8d7d..564587259 100644
--- a/ssh-pkcs11-helper.0
+++ b/ssh-pkcs11-helper.0
@@ -32,4 +32,4 @@ HISTORY
AUTHORS
Markus Friedl <markus@openbsd.org>
-OpenBSD 7.7 April 29, 2022 OpenBSD 7.7
+OpenBSD 7.5 April 29, 2022 OpenBSD 7.5
diff --git a/ssh-sk-helper.0 b/ssh-sk-helper.0
index 4abc5e8a0..ea2117abd 100644
--- a/ssh-sk-helper.0
+++ b/ssh-sk-helper.0
@@ -31,4 +31,4 @@ HISTORY
AUTHORS
Damien Miller <djm@openbsd.org>
-OpenBSD 7.7 April 29, 2022 OpenBSD 7.7
+OpenBSD 7.5 April 29, 2022 OpenBSD 7.5
diff --git a/ssh.0 b/ssh.0
index 9c34e3e6e..78863b1b0 100644
--- a/ssh.0
+++ b/ssh.0
@@ -1016,4 +1016,4 @@ AUTHORS
created OpenSSH. Markus Friedl contributed the support for SSH protocol
versions 1.5 and 2.0.
-OpenBSD 7.7 June 27, 2024 OpenBSD 7.7
+OpenBSD 7.5 June 27, 2024 OpenBSD 7.5
diff --git a/ssh_config.0 b/ssh_config.0
index f9a82781b..ef6c0936a 100644
--- a/ssh_config.0
+++ b/ssh_config.0
@@ -1428,4 +1428,4 @@ AUTHORS
created OpenSSH. Markus Friedl contributed the support for SSH protocol
versions 1.5 and 2.0.
-OpenBSD 7.7 June 17, 2024 OpenBSD 7.7
+OpenBSD 7.5 June 17, 2024 OpenBSD 7.5
diff --git a/sshd.0 b/sshd.0
index eac127dcf..c7de2d311 100644
--- a/sshd.0
+++ b/sshd.0
@@ -682,4 +682,4 @@ AUTHORS
versions 1.5 and 2.0. Niels Provos and Markus Friedl contributed support
for privilege separation.
-OpenBSD 7.7 June 17, 2024 OpenBSD 7.7
+OpenBSD 7.5 June 17, 2024 OpenBSD 7.5
diff --git a/sshd_config.0 b/sshd_config.0
index ca030fcca..6883dda4b 100644
--- a/sshd_config.0
+++ b/sshd_config.0
@@ -950,8 +950,8 @@ DESCRIPTION
accumulated.
Penalties are enabled by default with the default settings listed
- below but may disabled using the no keyword. The defaults may be
- overridden by specifying one or more of the keywords below,
+ below but may disabled using the off keyword. The defaults may
+ be overridden by specifying one or more of the keywords below,
separated by whitespace. All keywords accept arguments, e.g.
"crash:2m".
@@ -1390,4 +1390,4 @@ AUTHORS
versions 1.5 and 2.0. Niels Provos and Markus Friedl contributed support
for privilege separation.
-OpenBSD 7.7 June 24, 2024 OpenBSD 7.7
+OpenBSD 7.5 June 24, 2024 OpenBSD 7.5
--
2.51.0

View File

@ -1,48 +0,0 @@
From a38b48e77ccfe9528dd4a8516c114950fa7a111d Mon Sep 17 00:00:00 2001
Message-ID: <a38b48e77ccfe9528dd4a8516c114950fa7a111d.1758727870.git.sam@gentoo.org>
In-Reply-To: <20950a7c047ca08f9317d27866c06587ed51a338.1758727870.git.sam@gentoo.org>
References: <20950a7c047ca08f9317d27866c06587ed51a338.1758727870.git.sam@gentoo.org>
From: Damien Miller <djm@mindrot.org>
Date: Wed, 13 Aug 2025 09:16:34 +1000
Subject: [PATCH 7/7] mention sntrup761x25519-sha512 in manpages
Spotted by Colin Watson
---
ssh_config.5 | 1 +
sshd_config.5 | 3 +++
2 files changed, 4 insertions(+)
diff --git a/ssh_config.5 b/ssh_config.5
index 2e1902283..9473f4692 100644
--- a/ssh_config.5
+++ b/ssh_config.5
@@ -1281,6 +1281,7 @@ default set.
.Pp
The default is:
.Bd -literal -offset indent
+sntrup761x25519-sha512,
sntrup761x25519-sha512@openssh.com,
curve25519-sha256,curve25519-sha256@libssh.org,
ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,
diff --git a/sshd_config.5 b/sshd_config.5
index ce872de52..3c727f4d3 100644
--- a/sshd_config.5
+++ b/sshd_config.5
@@ -1050,11 +1050,14 @@ ecdh-sha2-nistp384
.It
ecdh-sha2-nistp521
.It
+sntrup761x25519-sha512
+.It
sntrup761x25519-sha512@openssh.com
.El
.Pp
The default is:
.Bd -literal -offset indent
+sntrup761x25519-sha512,
sntrup761x25519-sha512@openssh.com,
curve25519-sha256,curve25519-sha256@libssh.org,
ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,
--
2.51.0

View File

@ -1,87 +0,0 @@
From 4b8d141ec165aa29a48316768089cb03aed3aada Mon Sep 17 00:00:00 2001
Message-ID: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org>
From: Darren Tucker <dtucker@dtucker.net>
Date: Wed, 26 Feb 2025 18:16:03 +1100
Subject: [PATCH 01/10] Check for le32toh, le64toh, htole64 individually.
It appears that at least some versions of endian.h in glibc do not have
the latter two, so check for and replace each one individually.
bz#3794, ok djm@
---
configure.ac | 12 ++++++++++++
defines.h | 28 +++++++++++++++++++++-------
2 files changed, 33 insertions(+), 7 deletions(-)
diff --git a/configure.ac b/configure.ac
index 9053a9a2b..57a8d1007 100644
--- a/configure.ac
+++ b/configure.ac
@@ -536,6 +536,18 @@ AC_CHECK_HEADERS([ \
wchar.h \
])
+AC_CHECK_DECLS([le32toh, le64toh, htole64], [], [], [
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_ENDIAN_H
+# include <endian.h>
+#endif
+])
+
# On some platforms (eg SunOS4) sys/audit.h requires sys/[time|types|label.h]
# to be included first.
AC_CHECK_HEADERS([sys/audit.h], [], [], [
diff --git a/defines.h b/defines.h
index c1c21aba6..090f49f55 100644
--- a/defines.h
+++ b/defines.h
@@ -646,7 +646,9 @@ struct winsize {
# endif /* WORDS_BIGENDIAN */
#endif /* BYTE_ORDER */
-#ifndef HAVE_ENDIAN_H
+#if (defined(HAVE_DECL_LE32TOH) && HAVE_DECL_LE32TOH == 0) || \
+ (defined(HAVE_DECL_LE64TOH) && HAVE_DECL_LE64TOH == 0) || \
+ (defined(HAVE_DECL_HTOLE64) && HAVE_DECL_HTOLE64 == 0)
# define openssh_swap32(v) \
(uint32_t)(((uint32_t)(v) & 0xff) << 24 | \
((uint32_t)(v) & 0xff00) << 8 | \
@@ -662,13 +664,25 @@ struct winsize {
((uint64_t)(v) & 0xff000000000000ULL) >> 40 | \
((uint64_t)(v) & 0xff00000000000000ULL) >> 56)
# ifdef WORDS_BIGENDIAN
-# define le32toh(v) (openssh_swap32(v))
-# define le64toh(v) (openssh_swap64(v))
-# define htole64(v) (openssh_swap64(v))
+# if defined(HAVE_DECL_LE32TOH) && HAVE_DECL_LE32TOH == 0
+# define le32toh(v) (openssh_swap32(v))
+# endif
+# if defined(HAVE_DECL_LE64TOH) && HAVE_DECL_LE64TOH == 0
+# define le64toh(v) (openssh_swap64(v))
+# endif
+# if defined(HAVE_DECL_HTOLE64) && HAVE_DECL_HTOLE64 == 0
+# define htole64(v) (openssh_swap64(v))
+# endif
# else
-# define le32toh(v) ((uint32_t)v)
-# define le64toh(v) ((uint64_t)v)
-# define htole64(v) ((uint64_t)v)
+# if defined(HAVE_DECL_LE32TOH) && HAVE_DECL_LE32TOH == 0
+# define le32toh(v) ((uint32_t)v)
+# endif
+# if defined(HAVE_DECL_LE64TOH) && HAVE_DECL_LE64TOH == 0
+# define le64toh(v) ((uint64_t)v)
+# endif
+# if defined(HAVE_DECL_HTOLE64) && HAVE_DECL_HTOLE64 == 0
+# define htole64(v) ((uint64_t)v)
+# endif
# endif
#endif
--
2.51.0

View File

@ -1,118 +0,0 @@
From de4bcb51c893d81a741d4fac37c10107738a952f Mon Sep 17 00:00:00 2001
Message-ID: <de4bcb51c893d81a741d4fac37c10107738a952f.1758727915.git.sam@gentoo.org>
In-Reply-To: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org>
References: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org>
From: Darren Tucker <dtucker@dtucker.net>
Date: Wed, 26 Feb 2025 18:25:33 +1100
Subject: [PATCH 02/10] Update autoconf files for endian.h change.
---
config.h.in | 12 +++++++++++
configure | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 72 insertions(+)
diff --git a/config.h.in b/config.h.in
index 14bee6087..c841417f4 100644
--- a/config.h.in
+++ b/config.h.in
@@ -363,10 +363,22 @@
don't. */
#undef HAVE_DECL_HOWMANY
+/* Define to 1 if you have the declaration of `htole64', and to 0 if you
+ don't. */
+#undef HAVE_DECL_HTOLE64
+
/* Define to 1 if you have the declaration of `h_errno', and to 0 if you
don't. */
#undef HAVE_DECL_H_ERRNO
+/* Define to 1 if you have the declaration of `le32toh', and to 0 if you
+ don't. */
+#undef HAVE_DECL_LE32TOH
+
+/* Define to 1 if you have the declaration of `le64toh', and to 0 if you
+ don't. */
+#undef HAVE_DECL_LE64TOH
+
/* Define to 1 if you have the declaration of `loginfailed', and to 0 if you
don't. */
#undef HAVE_DECL_LOGINFAILED
diff --git a/configure b/configure
index b4d33b7cd..ec1de26c2 100755
--- a/configure
+++ b/configure
@@ -11325,6 +11325,65 @@ then :
fi
+ac_fn_check_decl "$LINENO" "le32toh" "ac_cv_have_decl_le32toh" "
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_ENDIAN_H
+# include <endian.h>
+#endif
+
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_le32toh" = xyes
+then :
+ ac_have_decl=1
+else $as_nop
+ ac_have_decl=0
+fi
+printf "%s\n" "#define HAVE_DECL_LE32TOH $ac_have_decl" >>confdefs.h
+ac_fn_check_decl "$LINENO" "le64toh" "ac_cv_have_decl_le64toh" "
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_ENDIAN_H
+# include <endian.h>
+#endif
+
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_le64toh" = xyes
+then :
+ ac_have_decl=1
+else $as_nop
+ ac_have_decl=0
+fi
+printf "%s\n" "#define HAVE_DECL_LE64TOH $ac_have_decl" >>confdefs.h
+ac_fn_check_decl "$LINENO" "htole64" "ac_cv_have_decl_htole64" "
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_ENDIAN_H
+# include <endian.h>
+#endif
+
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_htole64" = xyes
+then :
+ ac_have_decl=1
+else $as_nop
+ ac_have_decl=0
+fi
+printf "%s\n" "#define HAVE_DECL_HTOLE64 $ac_have_decl" >>confdefs.h
+
+
# On some platforms (eg SunOS4) sys/audit.h requires sys/[time|types|label.h]
# to be included first.
ac_fn_c_check_header_compile "$LINENO" "sys/audit.h" "ac_cv_header_sys_audit_h" "
@@ -27710,3 +27769,4 @@ if test "$AUDIT_MODULE" = "bsm" ; then
echo "WARNING: BSM audit support is currently considered EXPERIMENTAL."
echo "See the Solaris section in README.platform for details."
fi
+
--
2.51.0

View File

@ -1,30 +0,0 @@
From ef95df4089f0dba640671ca6acfb876a78794b83 Mon Sep 17 00:00:00 2001
Message-ID: <ef95df4089f0dba640671ca6acfb876a78794b83.1758727915.git.sam@gentoo.org>
In-Reply-To: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org>
References: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org>
From: Darren Tucker <dtucker@dtucker.net>
Date: Sat, 1 Mar 2025 10:28:59 +1100
Subject: [PATCH 03/10] Rebuild config files if Makefile changes.
This ensures paths are updated if they are changed by re-running configure.
Patch from rapier at psc.edu.
---
Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile.in b/Makefile.in
index 4243006b0..fc7a1a354 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -267,7 +267,7 @@ $(MANPAGES): $(MANPAGES_IN)
$(FIXPATHSCMD) $${manpage} | $(FIXALGORITHMSCMD) > $@; \
fi
-$(CONFIGFILES): $(CONFIGFILES_IN)
+$(CONFIGFILES): $(CONFIGFILES_IN) Makefile
conffile=`echo $@ | sed 's/.out$$//'`; \
$(FIXPATHSCMD) $(srcdir)/$${conffile} > $@
--
2.51.0

View File

@ -1,92 +0,0 @@
From 3b4adf2018ae8fdd48623b6b5ede182319a76b8f Mon Sep 17 00:00:00 2001
Message-ID: <3b4adf2018ae8fdd48623b6b5ede182319a76b8f.1758727915.git.sam@gentoo.org>
In-Reply-To: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org>
References: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org>
From: Damien Miller <djm@mindrot.org>
Date: Sun, 2 Mar 2025 22:06:53 +1100
Subject: [PATCH 04/10] include __builtin_popcount replacement function
Some systems/compilers lack __builtin_popcount(), so replace it as
necessary. Reported by Dennis Clarke; ok dtucker@
---
configure.ac | 13 +++++++++++++
libcrux_mlkem768_sha3.h | 8 ++++++--
mlkem768.sh | 10 +++++++++-
3 files changed, 28 insertions(+), 3 deletions(-)
diff --git a/configure.ac b/configure.ac
index 57a8d1007..dbe189066 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2041,6 +2041,19 @@ AC_CHECK_FUNCS([ \
warn \
])
+AC_MSG_CHECKING([whether compiler supports __builtin_popcount])
+AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+ #include <stdlib.h>
+ ]],
+ [[ int x = 123, y;
+ y = __builtin_popcount(123);
+ exit(y == 6 ? 0 : -1); ]])],
+ [ AC_MSG_RESULT([yes]) ], [
+ AC_MSG_RESULT([no])
+ AC_DEFINE([MISSING_BUILTIN_POPCOUNT], [1], [Define if your compiler lacks __builtin_popcount])
+ ]
+)
+
AC_CHECK_DECLS([bzero, memmem])
dnl Wide character support.
diff --git a/libcrux_mlkem768_sha3.h b/libcrux_mlkem768_sha3.h
index b8ac1436f..885e82baf 100644
--- a/libcrux_mlkem768_sha3.h
+++ b/libcrux_mlkem768_sha3.h
@@ -177,10 +177,14 @@ static inline uint32_t core_num__u32_8__from_le_bytes(uint8_t buf[4]) {
}
static inline uint32_t core_num__u8_6__count_ones(uint8_t x0) {
-#ifdef _MSC_VER
+#if defined(_MSC_VER)
return __popcnt(x0);
-#else
+#elif !defined(MISSING_BUILTIN_POPCOUNT)
return __builtin_popcount(x0);
+#else
+ const uint8_t v[16] = { 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4 };
+ return v[x0 & 0xf] + v[(x0 >> 4) & 0xf];
+
#endif
}
diff --git a/mlkem768.sh b/mlkem768.sh
index 3d12b2ed8..cbc3d14da 100644
--- a/mlkem768.sh
+++ b/mlkem768.sh
@@ -49,6 +49,11 @@ echo '#define KRML_HOST_EPRINTF(...)'
echo '#define KRML_HOST_EXIT(x) fatal_f("internal error")'
echo
+__builtin_popcount_replacement='
+ const uint8_t v[16] = { 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4 };
+ return v[x0 & 0xf] + v[(x0 >> 4) & 0xf];
+'
+
for i in $FILES; do
echo "/* from $i */"
# Changes to all files:
@@ -62,7 +67,10 @@ for i in $FILES; do
# Replace endian functions with versions that work.
perl -0777 -pe 's/(static inline void core_num__u64_9__to_le_bytes.*\n)([^}]*\n)/\1 v = htole64(v);\n\2/' |
perl -0777 -pe 's/(static inline uint64_t core_num__u64_9__from_le_bytes.*?)return v;/\1return le64toh(v);/s' |
- perl -0777 -pe 's/(static inline uint32_t core_num__u32_8__from_le_bytes.*?)return v;/\1return le32toh(v);/s'
+ perl -0777 -pe 's/(static inline uint32_t core_num__u32_8__from_le_bytes.*?)return v;/\1return le32toh(v);/s' |
+ # Compat for popcount.
+ perl -0777 -pe 's/\#ifdef (_MSC_VER)(.*?return __popcnt\(x0\);)/\#if defined(\1)\2/s' |
+ perl -0777 -pe "s/\\#else(\\n\\s+return __builtin_popcount\\(x0\\);)/\\#elif !defined(MISSING_BUILTIN_POPCOUNT)\\1\\n#else$__builtin_popcount_replacement/s"
;;
# Default: pass through.
*)
--
2.51.0

View File

@ -1,32 +0,0 @@
From d58ae05bb7838e1fdae967752f06b0b2471a63f5 Mon Sep 17 00:00:00 2001
Message-ID: <d58ae05bb7838e1fdae967752f06b0b2471a63f5.1758727915.git.sam@gentoo.org>
In-Reply-To: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org>
References: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org>
From: "djm@openbsd.org" <djm@openbsd.org>
Date: Sun, 2 Mar 2025 22:44:00 +0000
Subject: [PATCH 05/10] upstream: fix PerSourcePenalty incorrectly using
"crash" penalty when
LoginGraceTime was exceeded. Reported by irwin AT princeton.edu via bz3797
OpenBSD-Commit-ID: 1ba3e490a5a9451359618c550d995380af454d25
---
srclimit.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srclimit.c b/srclimit.c
index 33116fa52..c63a462e2 100644
--- a/srclimit.c
+++ b/srclimit.c
@@ -386,7 +386,7 @@ srclimit_penalise(struct xaddr *addr, int penalty_type)
reason = "penalty: connection prohibited by RefuseConnection";
break;
case SRCLIMIT_PENALTY_GRACE_EXCEEDED:
- penalty_secs = penalty_cfg.penalty_crash;
+ penalty_secs = penalty_cfg.penalty_grace;
reason = "penalty: exceeded LoginGraceTime";
break;
default:
--
2.51.0

View File

@ -1,80 +0,0 @@
From 7d5b6c7ec3c597a6d57f64d0db925142bccd38a3 Mon Sep 17 00:00:00 2001
Message-ID: <7d5b6c7ec3c597a6d57f64d0db925142bccd38a3.1758727915.git.sam@gentoo.org>
In-Reply-To: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org>
References: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org>
From: Damien Miller <djm@mindrot.org>
Date: Mon, 3 Mar 2025 14:21:12 +1100
Subject: [PATCH 06/10] regenerate configure, config.h.in
---
config.h.in | 3 +++
configure | 35 ++++++++++++++++++++++++++++++++++-
2 files changed, 37 insertions(+), 1 deletion(-)
diff --git a/config.h.in b/config.h.in
index c841417f4..57f63355b 100644
--- a/config.h.in
+++ b/config.h.in
@@ -1748,6 +1748,9 @@
/* Set this to your mail directory if you do not have _PATH_MAILDIR */
#undef MAIL_DIRECTORY
+/* Define if your compiler lacks __builtin_popcount */
+#undef MISSING_BUILTIN_POPCOUNT
+
/* Need setpgrp to for controlling tty */
#undef NEED_SETPGRP
diff --git a/configure b/configure
index ec1de26c2..a18079da2 100755
--- a/configure
+++ b/configure
@@ -16785,6 +16785,40 @@ then :
fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether compiler supports __builtin_popcount" >&5
+printf %s "checking whether compiler supports __builtin_popcount... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #include <stdlib.h>
+
+int
+main (void)
+{
+ int x = 123, y;
+ y = __builtin_popcount(123);
+ exit(y == 6 ? 0 : -1);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+else $as_nop
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+
+printf "%s\n" "#define MISSING_BUILTIN_POPCOUNT 1" >>confdefs.h
+
+
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+ conftest$ac_exeext conftest.$ac_ext
+
ac_fn_check_decl "$LINENO" "bzero" "ac_cv_have_decl_bzero" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"
if test "x$ac_cv_have_decl_bzero" = xyes
then :
@@ -27769,4 +27803,3 @@ if test "$AUDIT_MODULE" = "bsm" ; then
echo "WARNING: BSM audit support is currently considered EXPERIMENTAL."
echo "See the Solaris section in README.platform for details."
fi
-
--
2.51.0

View File

@ -1,44 +0,0 @@
From be8026caf9da985638c762c353c397c0922be233 Mon Sep 17 00:00:00 2001
Message-ID: <be8026caf9da985638c762c353c397c0922be233.1758727915.git.sam@gentoo.org>
In-Reply-To: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org>
References: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org>
From: "dtucker@openbsd.org" <dtucker@openbsd.org>
Date: Tue, 11 Mar 2025 11:46:44 +0000
Subject: [PATCH 07/10] upstream: Prime caches for DNS names needed for tests.
When running the SSHFP tests, particularly on an ephemeral VM, the first
query or two can fail for some reason, presumably because something isn't
fully initialized or something. To work around this, issue queries for the
names we'll need before we need them.
OpenBSD-Regress-ID: 900841133540e7dead253407db5a874a6ed09eca
---
regress/sshfp-connect.sh | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/regress/sshfp-connect.sh b/regress/sshfp-connect.sh
index f78646922..3c73a35d0 100644
--- a/regress/sshfp-connect.sh
+++ b/regress/sshfp-connect.sh
@@ -1,4 +1,4 @@
-# $OpenBSD: sshfp-connect.sh,v 1.4 2021/09/01 00:50:27 dtucker Exp $
+# $OpenBSD: sshfp-connect.sh,v 1.5 2025/03/11 11:46:44 dtucker Exp $
# Placed in the Public Domain.
# This test requires external setup and thus is skipped unless
@@ -29,6 +29,12 @@ if ! $SSH -Q key-plain | grep ssh-rsa >/dev/null; then
elif [ -z "${TEST_SSH_SSHFP_DOMAIN}" ]; then
skip "TEST_SSH_SSHFP_DOMAIN not set."
else
+ # Prime any DNS caches and resolvers.
+ for i in sshtest sshtest-sha1 sshtest-sha256; do
+ host -t sshfp ${i}.${TEST_SSH_SSHFP_DOMAIN} >/dev/null 2>&1
+ host -t sshfp ${i}-bad.${TEST_SSH_SSHFP_DOMAIN} >/dev/null 2>&1
+ done
+
# Set RSA host key to match fingerprints above.
mv $OBJ/sshd_proxy $OBJ/sshd_proxy.orig
$SUDO cp $SRC/rsa_openssh.prv $OBJ/host.ssh-rsa
--
2.51.0

View File

@ -1,41 +0,0 @@
From aab12549a939d07f638df486f910544c6b11b972 Mon Sep 17 00:00:00 2001
Message-ID: <aab12549a939d07f638df486f910544c6b11b972.1758727915.git.sam@gentoo.org>
In-Reply-To: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org>
References: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org>
From: Darren Tucker <dtucker@dtucker.net>
Date: Thu, 17 Oct 2024 19:18:23 +1100
Subject: [PATCH 08/10] MacOS 12 runners are deprecated, replace with 15.
---
.github/workflows/c-cpp.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml
index c179f73d1..c49aa5ee8 100644
--- a/.github/workflows/c-cpp.yml
+++ b/.github/workflows/c-cpp.yml
@@ -17,9 +17,9 @@ jobs:
target:
- ubuntu-20.04
- ubuntu-22.04
- - macos-12
- macos-13
- macos-14
+ - macos-15
- windows-2019
- windows-2022
config: [default]
@@ -100,9 +100,9 @@ jobs:
- { target: ubuntu-22.04, config: selinux }
- { target: ubuntu-22.04, config: kitchensink }
- { target: ubuntu-22.04, config: without-openssl }
- - { target: macos-12, config: pam }
- { target: macos-13, config: pam }
- { target: macos-14, config: pam }
+ - { target: macos-15, config: pam }
runs-on: ${{ matrix.target }}
steps:
- name: set cygwin git params
--
2.51.0

View File

@ -1,51 +0,0 @@
From 8e4bd6ebdbde0ff22e0c1c1f1a134ef255af7595 Mon Sep 17 00:00:00 2001
Message-ID: <8e4bd6ebdbde0ff22e0c1c1f1a134ef255af7595.1758727915.git.sam@gentoo.org>
In-Reply-To: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org>
References: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org>
From: "tb@openbsd.org" <tb@openbsd.org>
Date: Tue, 3 Dec 2024 15:53:51 +0000
Subject: [PATCH 09/10] upstream: Remove redundant field of definition check
This will allow us to get rid of EC_GROUP_method_of() in the near future.
ok djm
OpenBSD-Commit-ID: b4a3d2e00990cf5c2ec6881c21ddca67327c2df8
---
sshkey.c | 13 -------------
1 file changed, 13 deletions(-)
diff --git a/sshkey.c b/sshkey.c
index 1db83788d..44be674d1 100644
--- a/sshkey.c
+++ b/sshkey.c
@@ -2708,14 +2708,6 @@ sshkey_ec_validate_public(const EC_GROUP *group, const EC_POINT *public)
* EC_POINT_oct2point then the caller will need to explicitly check.
*/
- /*
- * We shouldn't ever hit this case because bignum_get_ecpoint()
- * refuses to load GF2m points.
- */
- if (EC_METHOD_get_field_type(EC_GROUP_method_of(group)) !=
- NID_X9_62_prime_field)
- goto out;
-
/* Q != infinity */
if (EC_POINT_is_at_infinity(group, public))
goto out;
@@ -2815,11 +2807,6 @@ sshkey_dump_ec_point(const EC_GROUP *group, const EC_POINT *point)
fprintf(stderr, "%s: BN_new failed\n", __func__);
goto out;
}
- if (EC_METHOD_get_field_type(EC_GROUP_method_of(group)) !=
- NID_X9_62_prime_field) {
- fprintf(stderr, "%s: group is not a prime field\n", __func__);
- goto out;
- }
if (EC_POINT_get_affine_coordinates_GFp(group, point,
x, y, NULL) != 1) {
fprintf(stderr, "%s: EC_POINT_get_affine_coordinates_GFp\n",
--
2.51.0

View File

@ -1,64 +0,0 @@
From 3eeda15eb9d3b9f2fd762ba3493ba88abe6bbcd9 Mon Sep 17 00:00:00 2001
Message-ID: <3eeda15eb9d3b9f2fd762ba3493ba88abe6bbcd9.1758727915.git.sam@gentoo.org>
In-Reply-To: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org>
References: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org>
From: "dtucker@openbsd.org" <dtucker@openbsd.org>
Date: Tue, 11 Mar 2025 07:42:08 +0000
Subject: [PATCH 10/10] upstream: Check if dbclient supports SHA1 before trying
SHA1-based
KEX.
Dropbear 2025.87 removed SHA1 support by default, which means
diffie-hellman-group14-sha1 is not available. Unfortunately there isn't a
flag to query supported KEX, so instead check MACs and if it doesn't have
SHA1 methods, assuming SHA1 based KEXes are likewise not available. Spotted
by anton@.
OpenBSD-Regress-ID: acfa8e26c001cb18b9fb81a27271c3b51288d304
---
regress/dropbear-kex.sh | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/regress/dropbear-kex.sh b/regress/dropbear-kex.sh
index d9f1b32c0..72717fbb7 100644
--- a/regress/dropbear-kex.sh
+++ b/regress/dropbear-kex.sh
@@ -1,4 +1,4 @@
-# $OpenBSD: dropbear-kex.sh,v 1.3 2024/06/19 10:10:46 dtucker Exp $
+# $OpenBSD: dropbear-kex.sh,v 1.4 2025/03/11 07:42:08 dtucker Exp $
# Placed in the Public Domain.
tid="dropbear kex"
@@ -10,8 +10,14 @@ fi
cp $OBJ/sshd_proxy $OBJ/sshd_proxy.bak
kex="curve25519-sha256 curve25519-sha256@libssh.org"
-if $SSH -Q kex | grep 'diffie-hellman-group14-sha1'; then
- kex="$kex diffie-hellman-group14-sha256 diffie-hellman-group14-sha1"
+if $SSH -Q kex | grep 'diffie-hellman-group14-sha256' >/dev/null; then
+ kex="$kex diffie-hellman-group14-sha256"
+fi
+# There's no flag to query KEX, so if MACs does not contain SHA1, assume
+# there's also SHA1-based KEX methods either.
+if $SSH -Q kex | grep 'diffie-hellman-group14-sha1' >/dev/null && \
+ $DBCLIENT -m help hst 2>&1 | grep -- '-sha1' >/dev/null ; then
+ kex="$kex diffie-hellman-group14-sha1"
fi
for k in $kex; do
@@ -19,8 +25,9 @@ for k in $kex; do
rm -f ${COPY}
# dbclient doesn't have switch for kex, so force in server
(cat $OBJ/sshd_proxy.bak; echo "KexAlgorithms $k") >$OBJ/sshd_proxy
- env HOME=$OBJ dbclient -y -i $OBJ/.dropbear/id_ed25519 2>$OBJ/dbclient.log \
- -J "$OBJ/ssh_proxy.sh" somehost cat ${DATA} > ${COPY}
+ env HOME=$OBJ \
+ ${DBCLIENT} -y -i $OBJ/.dropbear/id_ed25519 2>$OBJ/dbclient.log \
+ -J "$OBJ/ssh_proxy.sh" somehost cat ${DATA} > ${COPY}
if [ $? -ne 0 ]; then
fail "ssh cat $DATA failed"
fi
--
2.51.0

View File

@ -0,0 +1,38 @@
# /etc/conf.d/sshd: config file for /etc/init.d/sshd
# Where is your sshd_config file stored?
SSHD_CONFDIR="${RC_PREFIX%/}/etc/ssh"
# Any random options you want to pass to sshd.
# See the sshd(8) manpage for more info.
SSHD_OPTS=""
# Wait one second (length chosen arbitrarily) to see if sshd actually
# creates a PID file, or if it crashes for some reason like not being
# able to bind to the address in ListenAddress.
#SSHD_SSD_OPTS="--wait 1000"
# Pid file to use (needs to be absolute path).
#SSHD_PIDFILE="${RC_PREFIX%/}/run/sshd.pid"
# Path to the sshd binary (needs to be absolute path).
#SSHD_BINARY="${RC_PREFIX%/}/usr/sbin/sshd"
# Path to the ssh-keygen binary (needs to be absolute path).
#SSHD_KEYGEN_BINARY="${RC_PREFIX%/}/usr/bin/ssh-keygen"
# May be needed if ListenAddress is used to ensure that the interface
# has been configured.
#rc_need="net.eth0"

View File

@ -0,0 +1,68 @@
#!/sbin/openrc-run
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
extra_commands="checkconfig"
extra_started_commands="reload"
: ${SSHD_CONFDIR:=${RC_PREFIX%/}/etc/ssh}
: ${SSHD_CONFIG:=${SSHD_CONFDIR}/sshd_config}
: ${SSHD_PIDFILE:=${RC_PREFIX%/}/run/${SVCNAME}.pid}
: ${SSHD_BINARY:=${RC_PREFIX%/}/usr/sbin/sshd}
: ${SSHD_KEYGEN_BINARY:=${RC_PREFIX%/}/usr/bin/ssh-keygen}
command="${SSHD_BINARY}"
pidfile="${SSHD_PIDFILE}"
command_args="${SSHD_OPTS} -o PidFile=${pidfile} -f ${SSHD_CONFIG}"
# Wait one second (length chosen arbitrarily) to see if sshd actually
# creates a PID file, or if it crashes for some reason like not being
# able to bind to the address in ListenAddress (bug 617596).
: ${SSHD_SSD_OPTS:=--wait 1000}
start_stop_daemon_args="${SSHD_SSD_OPTS}"
depend() {
# Entropy can be used by ssh-keygen, among other things, but
# is not strictly required (bug 470020).
use logger dns entropy
}
checkconfig() {
checkpath --mode 0755 --directory "${RC_PREFIX%/}/var/empty"
if [ ! -e "${SSHD_CONFIG}" ] ; then
eerror "You need an ${SSHD_CONFIG} file to run sshd"
eerror "There is a sample file in /usr/share/doc/openssh"
return 1
fi
${SSHD_KEYGEN_BINARY} -A || return 2
"${command}" -t ${command_args} || return 3
}
start_pre() {
# Make sure that the user's config isn't busted before we try
# to start the daemon (this will produce better error messages
# than if we just try to start it blindly).
#
# We always need to call checkconfig because this function will
# also generate any missing host key and you can start a
# non-running service with "restart" argument.
checkconfig || return $?
}
stop_pre() {
# If this is a restart, check to make sure the user's config
# isn't busted before we stop the running daemon.
if [ "${RC_CMD}" = "restart" ] ; then
checkconfig || return $?
fi
}
reload() {
checkconfig || return $?
ebegin "Reloading ${SVCNAME}"
start-stop-daemon --signal HUP --pidfile "${pidfile}"
eend $?
}

View File

@ -0,0 +1,437 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# Remember to check the upstream release/stable branches for patches
# to backport! See https://marc.info/?l=openssh-unix-dev&m=172723798122122&w=2.
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openssh.org.asc
inherit user-info flag-o-matic autotools optfeature pam systemd toolchain-funcs verify-sig eapi9-ver
# Make it more portable between straight releases
# and _p? releases.
PARCH=${P/_}
DESCRIPTION="Port of OpenBSD's free SSH release"
HOMEPAGE="https://www.openssh.com/"
SRC_URI="
mirror://openbsd/OpenSSH/portable/${PARCH}.tar.gz
verify-sig? ( mirror://openbsd/OpenSSH/portable/${PARCH}.tar.gz.asc )
"
S="${WORKDIR}/${PARCH}"
LICENSE="BSD GPL-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
# Probably want to drop ssl defaulting to on in a future version.
IUSE="abi_mips_n32 audit debug kerberos ldns libedit livecd pam security-key selinux +ssl static test"
RESTRICT="!test? ( test )"
REQUIRED_USE="
ldns? ( ssl )
static? ( !kerberos !pam )
test? ( ssl )
"
LIB_DEPEND="
audit? ( sys-process/audit[static-libs(+)] )
ldns? (
net-libs/ldns[static-libs(+)]
net-libs/ldns[ecdsa(+),ssl(+)]
)
libedit? ( dev-libs/libedit:=[static-libs(+)] )
security-key? ( >=dev-libs/libfido2-1.5.0:=[static-libs(+)] )
selinux? ( >=sys-libs/libselinux-1.28[static-libs(+)] )
ssl? ( >=dev-libs/openssl-1.1.1l-r1:0=[static-libs(+)] )
virtual/libcrypt:=[static-libs(+)]
>=virtual/zlib-1.2.3:=[static-libs(+)]
"
RDEPEND="
acct-group/sshd
acct-user/sshd
!static? ( ${LIB_DEPEND//\[static-libs(+)]} )
pam? ( sys-libs/pam )
kerberos? ( virtual/krb5 )
"
DEPEND="
${RDEPEND}
virtual/os-headers
kernel_linux? ( !prefix-guest? ( >=sys-kernel/linux-headers-5.1 ) )
static? ( ${LIB_DEPEND} )
"
RDEPEND="
${RDEPEND}
!net-misc/openssh-contrib
pam? ( >=sys-auth/pambase-20081028 )
!prefix? ( sys-apps/shadow )
"
BDEPEND="
dev-build/autoconf
virtual/pkgconfig
verify-sig? ( sec-keys/openpgp-keys-openssh )
"
PATCHES=(
"${FILESDIR}/${PN}-9.4_p1-Allow-MAP_NORESERVE-in-sandbox-seccomp-filter-maps.patch"
"${FILESDIR}/${PN}-9.7_p1-config-tweaks.patch"
# Backports from upstream release branch
#"${FILESDIR}/${PV}"
# Our own backports
)
pkg_pretend() {
local i enabled_eol_flags disabled_eol_flags
for i in hpn sctp X509; do
if has_version "net-misc/openssh[${i}]"; then
enabled_eol_flags+="${i},"
disabled_eol_flags+="-${i},"
fi
done
if [[ -n ${enabled_eol_flags} && ${OPENSSH_EOL_USE_FLAGS_I_KNOW_WHAT_I_AM_DOING} != yes ]]; then
# Skip for binary packages entirely because of environment saving, bug #907892
[[ ${MERGE_TYPE} == binary ]] && return
ewarn "net-misc/openssh does not support USE='${enabled_eol_flags%,}' anymore."
ewarn "The Base system team *STRONGLY* recommends you not rely on this functionality,"
ewarn "since these USE flags required third-party patches that often trigger bugs"
ewarn "and are of questionable provenance."
ewarn
ewarn "If you must continue relying on this functionality, switch to"
ewarn "net-misc/openssh-contrib. You will have to remove net-misc/openssh from your"
ewarn "world file first: 'emerge --deselect net-misc/openssh'"
ewarn
ewarn "In order to prevent loss of SSH remote login access, we will abort the build."
ewarn "Whether you proceed with disabling the USE flags or switch to the -contrib"
ewarn "variant, when re-emerging you will have to set"
ewarn
ewarn " OPENSSH_EOL_USE_FLAGS_I_KNOW_WHAT_I_AM_DOING=yes"
die "Building net-misc/openssh[${disabled_eol_flags%,}] without OPENSSH_EOL_USE_FLAGS_I_KNOW_WHAT_I_AM_DOING=yes"
fi
# Make sure people who are using tcp wrappers are notified of its removal. #531156
if grep -qs '^ *sshd *:' "${EROOT}"/etc/hosts.{allow,deny} ; then
ewarn "Sorry, but openssh no longer supports tcp-wrappers, and it seems like"
ewarn "you're trying to use it. Update your ${EROOT}/etc/hosts.{allow,deny} please."
fi
}
src_prepare() {
# don't break .ssh/authorized_keys2 for fun
sed -i '/^AuthorizedKeysFile/s:^:#:' sshd_config || die
[[ -d ${WORKDIR}/patches ]] && PATCHES+=( "${WORKDIR}"/patches )
default
# These tests are currently incompatible with PORTAGE_TMPDIR/sandbox
sed -e '/\t\tpercent \\/ d' \
-i regress/Makefile || die
tc-export PKG_CONFIG
local sed_args=(
-e "s:-lcrypto:$(${PKG_CONFIG} --libs openssl):"
# Disable fortify flags ... our gcc does this for us
-e 's:-D_FORTIFY_SOURCE=2::'
)
# _XOPEN_SOURCE causes header conflicts on Solaris
[[ ${CHOST} == *-solaris* ]] && sed_args+=(
-e 's/-D_XOPEN_SOURCE//'
)
sed -i "${sed_args[@]}" configure{.ac,} || die
eautoreconf
}
src_configure() {
addwrite /dev/ptmx
use debug && append-cppflags -DSANDBOX_SECCOMP_FILTER_DEBUG
use static && append-ldflags -static
if [[ ${CHOST} == *-solaris* ]] ; then
# Solaris' glob.h doesn't have things like GLOB_TILDE, configure
# doesn't check for this, so force the replacement to be put in
# place
append-cppflags -DBROKEN_GLOB
fi
# use replacement, RPF_ECHO_ON doesn't exist here
[[ ${CHOST} == *-darwin* ]] && export ac_cv_func_readpassphrase=no
local myconf=(
--with-ldflags="${LDFLAGS}"
--disable-strip
--with-pid-dir="${EPREFIX}"$(usex kernel_linux '' '/var')/run
--sysconfdir="${EPREFIX}"/etc/ssh
--libexecdir="${EPREFIX}"/usr/$(get_libdir)/misc
--datadir="${EPREFIX}"/usr/share/openssh
--with-privsep-path="${EPREFIX}"/var/empty
--with-privsep-user=sshd
# optional at runtime; guarantee a known path
--with-xauth="${EPREFIX}"/usr/bin/xauth
# --with-hardening adds the following in addition to flags we
# already set in our toolchain:
# * -ftrapv (which is broken with GCC anyway),
# * -ftrivial-auto-var-init=zero (which is nice, but not the end of
# the world to not have)
# * -fzero-call-used-regs=used (history of miscompilations with
# Clang (bug #872548), ICEs on m68k (bug #920350, gcc PR113086,
# gcc PR104820, gcc PR104817, gcc PR110934)).
#
# Furthermore, OSSH_CHECK_CFLAG_COMPILE did not use AC_CACHE_CHECK
# until 10.1_p1, so we couldn't disable -fzero-call-used-regs=used.
#
# Therefore, just pass --without-hardening, given it doesn't negate
# our already hardened toolchain defaults, and avoids adding flags
# which are known-broken in both Clang and GCC and haven't been
# proven reliable.
--without-hardening
--without-pie
--without-stackprotect
# wtmpdb not yet packaged
--without-wtmpdb
$(use_with audit audit linux)
$(use_with kerberos kerberos5 "${EPREFIX}"/usr)
$(use_with ldns)
$(use_with libedit)
$(use_with pam)
$(use_with selinux)
$(use_with security-key security-key-builtin)
$(use_with ssl openssl)
$(use_with ssl ssl-engine)
)
if use elibc_musl; then
# musl defines bogus values for UTMP_FILE and WTMP_FILE (bug #753230)
myconf+=( --disable-utmp --disable-wtmp )
fi
econf "${myconf[@]}"
}
create_config_dropins() {
local locale_vars=(
# These are language variables that POSIX defines.
# http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08_02
LANG LC_ALL LC_COLLATE LC_CTYPE LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME
# These are the GNU extensions.
# https://www.gnu.org/software/autoconf/manual/html_node/Special-Shell-Variables.html
LANGUAGE LC_ADDRESS LC_IDENTIFICATION LC_MEASUREMENT LC_NAME LC_PAPER LC_TELEPHONE
)
mkdir -p "${WORKDIR}"/etc/ssh/ssh{,d}_config.d || die
cat <<-EOF > "${WORKDIR}"/etc/ssh/ssh_config.d/9999999gentoo.conf || die
# Send locale environment variables (bug #367017)
SendEnv ${locale_vars[*]}
# Send COLORTERM to match TERM (bug #658540)
SendEnv COLORTERM
EOF
cat <<-EOF > "${WORKDIR}"/etc/ssh/ssh_config.d/9999999gentoo-security.conf || die
RevokedHostKeys "${EPREFIX}/etc/ssh/ssh_revoked_hosts"
EOF
cat <<-EOF > "${WORKDIR}"/etc/ssh/ssh_revoked_hosts || die
# https://github.blog/2023-03-23-we-updated-our-rsa-ssh-host-key/
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==
EOF
cat <<-EOF > "${WORKDIR}"/etc/ssh/sshd_config.d/9999999gentoo.conf || die
# Allow client to pass locale environment variables (bug #367017)
AcceptEnv ${locale_vars[*]}
# Allow client to pass COLORTERM to match TERM (bug #658540)
AcceptEnv COLORTERM
EOF
cat <<-EOF > "${WORKDIR}"/etc/ssh/sshd_config.d/9999999gentoo-subsystem.conf || die
# override default of no subsystems
Subsystem sftp ${EPREFIX}/usr/$(get_libdir)/misc/sftp-server
EOF
if use pam ; then
cat <<-EOF > "${WORKDIR}"/etc/ssh/sshd_config.d/9999999gentoo-pam.conf || die
UsePAM yes
# This interferes with PAM.
PasswordAuthentication no
# PAM can do its own handling of MOTD.
PrintMotd no
PrintLastLog no
EOF
fi
if use livecd ; then
cat <<-EOF > "${WORKDIR}"/etc/ssh/sshd_config.d/9999999gentoo-livecd.conf || die
# Allow root login with password on livecds.
PermitRootLogin Yes
EOF
fi
}
src_compile() {
default
create_config_dropins
}
src_test() {
local tests=( compat-tests )
local shell=$(egetshell "${UID}")
if [[ ${shell} == */nologin ]] || [[ ${shell} == */false ]] ; then
ewarn "Running the full OpenSSH testsuite requires a usable shell for the 'portage'"
ewarn "user, so we will run a subset only."
tests+=( interop-tests file-tests unit )
else
tests+=( tests )
fi
local -x SUDO= SSH_SK_PROVIDER= TEST_SSH_UNSAFE_PERMISSIONS=1
mkdir -p "${HOME}"/.ssh || die
emake -j1 "${tests[@]}" </dev/null
}
src_install() {
emake install-nokeys DESTDIR="${D}"
fperms 600 /etc/ssh/sshd_config
dobin contrib/ssh-copy-id
newinitd "${FILESDIR}"/sshd-r2.initd sshd
newconfd "${FILESDIR}"/sshd-r2.confd sshd
exeinto /etc/user/init.d
newexe "${FILESDIR}"/ssh-agent.initd ssh-agent
if use pam; then
newpamd "${FILESDIR}"/sshd.pam_include.2 sshd
fi
doman contrib/ssh-copy-id.1
dodoc ChangeLog CREDITS OVERVIEW README* TODO sshd_config
rmdir "${ED}"/var/empty || die
systemd_dounit "${FILESDIR}"/sshd.socket
systemd_newunit "${FILESDIR}"/sshd.service.2 sshd.service
systemd_newunit "${FILESDIR}"/sshd_at.service.1 'sshd@.service'
# Install dropins with explicit mode, bug 906638, 915840
diropts -m0755
insopts -m0644
insinto /etc/ssh
doins -r "${WORKDIR}"/etc/ssh/ssh_config.d
doins "${WORKDIR}"/etc/ssh/ssh_revoked_hosts
diropts -m0700
insopts -m0600
doins -r "${WORKDIR}"/etc/ssh/sshd_config.d
}
pkg_preinst() {
if ! use ssl && has_version "${CATEGORY}/${PN}[ssl]"; then
show_ssl_warning=1
fi
}
pkg_postinst() {
# bug #139235
optfeature "x11 forwarding" x11-apps/xauth
if ver_replacing -lt "5.8_p1"; then
elog "Starting with openssh-5.8p1, the server will default to a newer key"
elog "algorithm (ECDSA). You are encouraged to manually update your stored"
elog "keys list as servers update theirs. See ssh-keyscan(1) for more info."
fi
if ver_replacing -lt "7.0_p1"; then
elog "Starting with openssh-6.7, support for USE=tcpd has been dropped by upstream."
elog "Make sure to update any configs that you might have. Note that xinetd might"
elog "be an alternative for you as it supports USE=tcpd."
fi
if ver_replacing -lt "7.1_p1"; then #557388 #555518
elog "Starting with openssh-7.0, support for ssh-dss keys were disabled due to their"
elog "weak sizes. If you rely on these key types, you can re-enable the key types by"
elog "adding to your sshd_config or ~/.ssh/config files:"
elog " PubkeyAcceptedKeyTypes=+ssh-dss"
elog "You should however generate new keys using rsa or ed25519."
elog "Starting with openssh-7.0, the default for PermitRootLogin changed from 'yes'"
elog "to 'prohibit-password'. That means password auth for root users no longer works"
elog "out of the box. If you need this, please update your sshd_config explicitly."
fi
if ver_replacing -lt "7.6_p1"; then
elog "Starting with openssh-7.6p1, openssh upstream has removed ssh1 support entirely."
elog "Furthermore, rsa keys with less than 1024 bits will be refused."
fi
if ver_replacing -lt "7.7_p1"; then
elog "Starting with openssh-7.7p1, we no longer patch openssh to provide LDAP functionality."
elog "Install sys-auth/ssh-ldap-pubkey and use OpenSSH's \"AuthorizedKeysCommand\" option"
elog "if you need to authenticate against LDAP."
elog "See https://wiki.gentoo.org/wiki/SSH/LDAP_migration for more details."
fi
if ver_replacing -lt "8.2_p1"; then
ewarn "After upgrading to openssh-8.2p1 please restart sshd, otherwise you"
ewarn "will not be able to establish new sessions. Restarting sshd over a ssh"
ewarn "connection is generally safe."
fi
if ver_replacing -lt "9.2_p1-r1" && systemd_is_booted; then
ewarn "From openssh-9.2_p1-r1 the supplied systemd unit file defaults to"
ewarn "'Restart=on-failure', which causes the service to automatically restart if it"
ewarn "terminates with an unclean exit code or signal. This feature is useful for most users,"
ewarn "but it can increase the vulnerability of the system in the event of a future exploit."
ewarn "If you have a web-facing setup or are concerned about security, it is recommended to"
ewarn "set 'Restart=no' in your sshd unit file."
fi
if ver_replacing -lt "10.2_p1-r1"; then
ewarn "The sshd init script no longer greps for ListenAddress in the sshd config."
ewarn "If you have configured the ListenAddress parameter, you may need to adjust"
ewarn "init script dependencies via rc_need in /etc/conf.d/sshd."
fi
if [[ -n ${show_ssl_warning} ]]; then
elog "Be aware that by disabling openssl support in openssh, the server and clients"
elog "no longer support dss/rsa/ecdsa keys. You will need to generate ed25519 keys"
elog "and update all clients/servers that utilize them."
fi
openssh_maybe_restart
}
openssh_maybe_restart() {
local ver
declare -a versions
read -ra versions <<<"${REPLACING_VERSIONS}"
for ver in "${versions[@]}"; do
# Exclude 9.8_p1 because it didn't have the safety check
[[ ${ver} == 9.8_p1 ]] && break
if [[ ${ver%_*} == "${PV%_*}" ]]; then
# No major version change has occurred
return
fi
done
if [[ ${ROOT} ]]; then
return
elif [[ -d /run/systemd/system ]] && sshd -t >/dev/null 2>&1; then
ewarn "The ebuild will now attempt to restart OpenSSH to avoid"
ewarn "bricking the running instance. See bug #709748."
ebegin "Attempting to restart openssh via 'systemctl try-restart sshd'"
systemctl try-restart sshd
eend $?
elif [[ -d /run/openrc ]]; then
# We don't check for sshd -t here because the OpenRC init script
# has a stop_pre() which does checkconfig, i.e. we defer to it
# to give nicer output for a failed sanity check.
ewarn "The ebuild will now attempt to restart OpenSSH to avoid"
ewarn "bricking the running instance. See bug #709748."
ebegin "Attempting to restart openssh via 'rc-service -q --ifstarted --nodeps sshd restart'"
rc-service -q --ifstarted --nodeps sshd restart
eend $?
fi
}

View File

@ -1,4 +1,4 @@
# Copyright 1999-2025 Gentoo Authors
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@ -15,6 +15,7 @@ HOMEPAGE="https://www.openssh.com/"
SRC_URI="
mirror://openbsd/OpenSSH/portable/${PARCH}.tar.gz
verify-sig? ( mirror://openbsd/OpenSSH/portable/${PARCH}.tar.gz.asc )
https://dev.gentoo.org/~floppym/dist/${P}-backports.tar.gz
"
S="${WORKDIR}/${PARCH}"
@ -81,7 +82,7 @@ PATCHES=(
"${FILESDIR}/${PN}-9.7_p1-config-tweaks.patch"
"${FILESDIR}/${PN}-9.8_p1-inetd.patch"
# Backports from upstream release branch
"${FILESDIR}/${PV}"
"${WORKDIR}/${P}-backports"
)
pkg_pretend() {

View File

@ -1,4 +1,4 @@
# Copyright 1999-2025 Gentoo Authors
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@ -18,6 +18,7 @@ HOMEPAGE="https://www.openssh.com/"
SRC_URI="
mirror://openbsd/OpenSSH/portable/${PARCH}.tar.gz
verify-sig? ( mirror://openbsd/OpenSSH/portable/${PARCH}.tar.gz.asc )
https://dev.gentoo.org/~floppym/dist/${P}-backports.tar.gz
"
S="${WORKDIR}/${PARCH}"
@ -83,7 +84,7 @@ PATCHES=(
"${FILESDIR}/${PN}-9.6_p1-fix-xmss-c99.patch"
"${FILESDIR}/${PN}-9.7_p1-config-tweaks.patch"
# Backports from upstream release branch
"${FILESDIR}/${PV}"
"${WORKDIR}/${P}-backports"
# Our own backports
"${FILESDIR}/${PN}-9.9_p1-x-forwarding-slow.patch"
)

View File

@ -17,6 +17,10 @@
#--- END OF EXAMPLES ---
# Michał Górny <mgorny@gentoo.org> (2026-03-03)
# OpenMP offloading GPU runtimes are not keyworded everywhre.
llvm-runtimes/clang-runtime -llvm_targets_AMDGPU -llvm_targets_NVPTX
# Ionen Wolkens <ionen@gentoo.org> (2026-02-11)
# net-libs/librist is available here
media-video/ffmpeg -rist

View File

@ -1,6 +1,10 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# Michał Górny <mgorny@gentoo.org> (2026-03-03)
# OpenMP offloading GPU runtimes are not keyworded everywhre.
llvm-runtimes/clang-runtime llvm_targets_AMDGPU llvm_targets_NVPTX
# Ionen Wolkens <ionen@gentoo.org> (2026-02-11)
# net-libs/librist currently has very few keywords
media-video/ffmpeg rist

View File

@ -1,6 +1,11 @@
# Copyright 1999-2024 Gentoo Authors
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# Ionen Wolkens <ionen@gentoo.org> (2026-03-03)
# This version fails to build on sparc (bug #970872), hoping
# will be fixed in 1.12.7.
~dev-util/maturin-1.12.6
# matoro <matoro_gentoo@matoro.tk> (2024-06-11)
# Extensive use of unaligned access, no plans to fix, #636552
# https://github.com/memcached/memcached/issues/902

View File

@ -1,4 +1,4 @@
# Copyright 1999-2025 Gentoo Authors.
# Copyright 1999-2026 Gentoo Authors.
# Distributed under the terms of the GNU General Public License v2
# Reference: GPU name and architecture codename documented by
@ -20,13 +20,15 @@ gfx950 - CDNA4 Accelerator, including AMD Instinct MI350X and MI355X
gfx1010 - RDNA GPU, codename navi10, including Radeon RX 5700XT/5700/5700M/5700B/5700XTB/5600XT/5600/5600M, Radeon Pro 5700XT/5700, Radeon Pro W5700X/W5700
gfx1011 - RDNA GPU, codename navi12, including Radeon Pro 5600M/V520
gfx1012 - RDNA GPU, codename navi14, including Radeon RX 5500XT/5500/5500M/5500XTB/5300/5300M, Radeon Pro 5500XT/5500M/5300/5300M, Radeon Pro W5500X/W5500/W5500M/W5300M
gfx1030 - RDNA2 GPU, codename navi21/sienna cichlid, including Radeon RX 6950XT/6900XT/6800XT/6800, Radeon Pro W6800
gfx1030 - RDNA2 GPU, codename navi21/sienna cichlid, including Radeon RX 6950XT/6900XT/6800XT/6800, Radeon Pro W6800/V620
gfx1031 - RDNA2 GPU, codename navi22/navy flounder, including Radeon RX 6750XT/6700XT/6800M/6700M
gfx1100 - RDNA3 GPU, codename navi31/plum bonito, including Radeon RX 7900XTX/7900XT, AMD Radeon Pro W7900/W7800
gfx1101 - RDNA3 GPU, codename navi32, including Radeon RX 7700XT/7800XT
gfx1102 - RDNA3 GPU, codename navi33, including Radeon RX 7600/7600M/7600M XT/7700S/7600S, AMD Radeon PRO W7600/W7500
gfx1100 - RDNA3 GPU, codename navi31/plum bonito, including Radeon RX 7900 XTX/XT/GRE, AMD Radeon Pro W7900/W7800
gfx1101 - RDNA3 GPU, codename navi32, including Radeon RX 7700XT/7800XT, AMD Radeon PRO W7700/V710
gfx1102 - RDNA3 GPU, codename navi33, including Radeon RX 7400/7600/7600M/7600M XT/7700S/7600S, AMD Radeon PRO W7600/W7500
gfx1103 - RDNA3 APU, codename navi3x, including Radeon 700M/780M
gfx1150 - RDNA 3.5 APU (Strix Point), including Radeon 890M
gfx1151 - RDNA 3.5 APU (Strix Halo), including Radeon 8060S
gfx1200 - RDNA4 GPU, codename navi44, including Radeon RX 9060XT
gfx1201 - RDNA4 GPU, codename navi48, including Radeon RX 9070/9070XT/9070GRE and Radeon AI PRO R9700
gfx1152 - RDNA 3.5 APU (Krackan Point), including Radeon 860M/840M
gfx1153 - RDNA 3.5 APU, including Radeon 820M
gfx1200 - RDNA4 GPU, codename navi44, including Radeon RX 9060XT/9060XT LP
gfx1201 - RDNA4 GPU, codename navi48, including Radeon RX 9070/9070XT/9070GRE and Radeon AI PRO R9600D/R9700

View File

@ -1,6 +1,10 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# Alexey Sokolov <alexey+gentoo@asokolov.org> (2026-03-02)
# Rewritten in Rust.
>=dev-util/bear-4
# Michał Górny <mgorny@gentoo.org> (2025-01-27)
# google-auth now unconditionally requires cryptography.
dev-python/google-api-core
@ -64,6 +68,7 @@ dev-python/sphinxcontrib-doxylink
>=dev-python/sphinxcontrib-httpdomain-2.0
dev-python/sybil
dev-python/testfixtures
dev-python/toml-fmt-common
dev-python/uv-build
dev-python/zmq-anyio
net-analyzer/fail2ban

View File

@ -36,6 +36,11 @@
#--- END OF EXAMPLES ---
# Alfredo Tupone <tupone@gentoo.org> (2026-03-05)
# Need more testing
>=dev-lang/tcl-9
>=dev-lang/tk-9
# Michał Górny <mgorny@gentoo.org> (2026-02-28)
# The test suite is broken since 1.16.0 (Nov 2025), and upstream did not
# address the problem so far: https://github.com/pypa/hatch/issues/2123
@ -204,11 +209,6 @@ net-analyzer/labrea
# issues. Removal on 2026-03-12. Bug #943786.
net-analyzer/echoping
# Sam James <sam@gentoo.org> (2026-02-09)
# Only needed by last-rited hyprland stack. Out-of-date by quite a few
# versions. Removal on 2026-03-11.
dev-cpp/glaze
# Sam James <sam@gentoo.org> (2026-02-09)
# This suite of packages is currently best placed in an overlay/external
# repository where users can more easily contribute. The ecosystem moves
@ -231,15 +231,15 @@ dev-cpp/glaze
#
# Quite out-of-date, many open bugs, and needs several new dependencies.
# Removal on 2026-03-11.
gui-libs/aquamarine
gui-libs/hyprutils
gui-libs/hyprland-qt-support
gui-libs/hyprcursor
dev-util/hyprwayland-scanner
dev-libs/hyprlang
dev-libs/hyprland-protocols
dev-libs/hyprgraphics
gui-wm/hyprland
<=gui-libs/aquamarine-0.9.3
<=gui-libs/hyprutils-0.8.4
<=gui-libs/hyprland-qt-support-0.1.0
<=gui-libs/hyprcursor-0.1.13
<=dev-util/hyprwayland-scanner-0.4.5
<=dev-libs/hyprlang-0.6.4
<=dev-libs/hyprland-protocols-0.6.4
<=dev-libs/hyprgraphics-0.1.5
<=gui-wm/hyprland-0.51.1
# Andreas Sturmlechner <asturm@gentoo.org> (2026-02-09)
# Broken for ages with dev-libs/boost-1.85 but no one except tinderbox

View File

@ -11,7 +11,6 @@ goproxy https://proxy.golang.org/ https://goproxy.io/
idsoftware ftp://ftp.fu-berlin.de/pc/games/idgames/idstuff ftp://ftp.gamers.org/pub/idgames/idstuff
imagemagick https://imagemagick.org/archive/releases/ https://mirror.checkdomain.de/imagemagick/releases/ https://ftp.acc.umu.se/mirror/imagemagick.org/ftp/releases/ ftp://ftp.fifi.org/pub/ImageMagick/releases/
kde https://download.kde.org https://mirror.csclub.uwaterloo.ca/kde ftp://mirrors.dotsrc.org/kde https://ftp.gwdg.de/pub/linux/kde https://ftp.mirrorservice.org/sites/ftp.kde.org/pub/kde
lokigames http://updates.lokigames.com
mariadb https://archive.mariadb.org/ https://ftp.bme.hu/pub/mirrors/mariadb/ https://ftp.nluug.nl/db/mariadb/ https://mirrors.up.pt/pub/mariadb/ https://rsync.osuosl.org/pub/mariadb/ https://mirror.netcologne.de/mariadb/
mplayer https://www1.mplayerhq.hu/MPlayer http://www2.mplayerhq.hu/MPlayer http://www7.mplayerhq.hu/MPlayer http://www8.mplayerhq.hu/MPlayer ftp://ftp1.mplayerhq.hu/MPlayer/ ftp://ftp6.mplayerhq.hu/MPlayer/ ftp://ftp7.mplayerhq.hu/MPlayer/ ftp://ftp8.mplayerhq.hu/MPlayer/
nongnu https://download.savannah.nongnu.org/releases/ https://ftp.cc.uoc.gr/mirrors/nongnu.org/ http://ftp.twaren.net/Unix/NonGNU/ https://mirror.csclub.uwaterloo.ca/nongnu/ ftp://mirror.csclub.uwaterloo.ca/nongnu/ https://mirrors.fe.up.pt/pub/nongnu/ ftp://mirrors.fe.up.pt/pub/nongnu/ https://nongnu.askapache.com/ https://nongnu.uib.no/ ftp://nongnu.uib.no/pub/nongnu/ http://savannah.c3sl.ufpr.br/ ftp://ftp.twaren.net/Unix/NonGNU/

View File

@ -60,6 +60,7 @@ QA_CONFIG_IMPL_DECL_SKIP=( makedev )
PATCHES=(
"${FILESDIR}/file-5.43-seccomp-fstatat64-musl.patch" #789336, not upstream yet
"${FILESDIR}/file-5.45-seccomp-sandbox.patch"
"${FILESDIR}/file-5.47-magic.py.patch"
)
src_prepare() {

View File

@ -0,0 +1,48 @@
https://bugs.gentoo.org/970842
From f70443485d6754b8e4ecb82dae1ec58102ab9dd5 Mon Sep 17 00:00:00 2001
From: Christos Zoulas <christos@zoulas.com>
Date: Tue, 3 Mar 2026 14:55:15 +0000
Subject: [PATCH] Use self._close Vincent Mihalkovic
---
python/magic.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/python/magic.py b/python/magic.py
index 14938281c6..24c32d2ddf 100644
--- a/python/magic.py
+++ b/python/magic.py
@@ -133,8 +133,8 @@ def close(self):
"""
Closes the magic database and deallocates any resources used.
"""
- if _close:
- _close(self._magic_t)
+ if self._close:
+ self._close(self._magic_t)
@staticmethod
def __tostr(s):
From f8f8745ccc0fac38561ba7a168c7b5638135bcec Mon Sep 17 00:00:00 2001
From: Christos Zoulas <christos@zoulas.com>
Date: Wed, 4 Mar 2026 10:26:12 +0000
Subject: [PATCH] convert tab to spaces
---
python/magic.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/python/magic.py b/python/magic.py
index 24c32d2dd..1db4a5d01 100644
--- a/python/magic.py
+++ b/python/magic.py
@@ -127,7 +127,7 @@ class magic_set(Structure):
class Magic(object):
def __init__(self, ms):
self._magic_t = ms
- self._close = _close
+ self._close = _close
def close(self):
"""

View File

@ -0,0 +1,20 @@
From 00be99d6ceae1439fd73a15f37d20710dd5798a5 Mon Sep 17 00:00:00 2001
Message-ID: <00be99d6ceae1439fd73a15f37d20710dd5798a5.1772593597.git.sam@gentoo.org>
In-Reply-To: <32e6f04bf47ea95773ea0d6d876c5fad8bb90834.1772593597.git.sam@gentoo.org>
References: <32e6f04bf47ea95773ea0d6d876c5fad8bb90834.1772593597.git.sam@gentoo.org>
From: "Arnold D. Robbins" <arnold@skeeve.com>
Date: Fri, 27 Feb 2026 11:03:04 +0200
Subject: [PATCH 4/9] Fix gensub() bug for use with MinRX. Add test case.
--- a/builtin.c
+++ b/builtin.c
@@ -2116,7 +2116,7 @@ do_sub(int nargs, unsigned int flags)
|| ((long) textlen <= 0 && matchstart == matchend)
|| research(rp, target->stptr, text - target->stptr,
use_gnu_matchers ? textlen : target->stlen,
- RE_NEED_START) == -1)
+ searchflags) == -1)
break;
}

View File

@ -0,0 +1,34 @@
From de8f760a6bea360dd90c9daafc035999c83a3056 Mon Sep 17 00:00:00 2001
Message-ID: <de8f760a6bea360dd90c9daafc035999c83a3056.1772593597.git.sam@gentoo.org>
In-Reply-To: <32e6f04bf47ea95773ea0d6d876c5fad8bb90834.1772593597.git.sam@gentoo.org>
References: <32e6f04bf47ea95773ea0d6d876c5fad8bb90834.1772593597.git.sam@gentoo.org>
From: "Arnold D. Robbins" <arnold@skeeve.com>
Date: Sun, 1 Mar 2026 20:52:16 +0200
Subject: [PATCH 6/9] Small efficiency fix in array.c.
--- a/array.c
+++ b/array.c
@@ -210,17 +210,17 @@ make_aname(const NODE *symbol)
slen = strlen(symbol->vname); /* subscript in parent array */
if (alen + slen + 4 > max_alen) { /* sizeof("[\"\"]") = 4 */
max_alen = alen + slen + 4 + SLEN;
- erealloc(aname, char *, (max_alen + 1) * sizeof(char *));
+ erealloc(aname, char *, (max_alen + 1) * sizeof(char));
}
alen += sprintf(aname + alen, "[\"%s\"]", symbol->vname);
} else {
alen = strlen(symbol->vname);
if (aname == NULL) {
max_alen = alen + SLEN;
- emalloc(aname, char *, (max_alen + 1) * sizeof(char *));
+ emalloc(aname, char *, (max_alen + 1) * sizeof(char));
} else if (alen > max_alen) {
max_alen = alen + SLEN;
- erealloc(aname, char *, (max_alen + 1) * sizeof(char *));
+ erealloc(aname, char *, (max_alen + 1) * sizeof(char));
}
memcpy(aname, symbol->vname, alen + 1);
}
--
2.53.0

View File

@ -5,10 +5,6 @@ From: "Arnold D. Robbins" <arnold@skeeve.com>
Date: Mon, 23 Feb 2026 10:59:41 +0200
Subject: Disable assertions in support/pma.c.
---
support/pma.c | 1 +
2 files changed, 7 insertions(+)
--- a/support/pma.c
+++ b/support/pma.c
@@ -27,6 +27,7 @@

View File

@ -0,0 +1,125 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
GAWK_IS_BETA=no
DESCRIPTION="GNU awk pattern-matching language"
HOMEPAGE="https://www.gnu.org/software/gawk/gawk.html"
if [[ ${GAWK_IS_BETA} == yes || ${PV} == *_beta* ]] ; then
if [[ ${PV} == *_beta* ]] ; then
# Beta versioning is sometimes for the release prior, e.g.
# 5.2.1_beta is labelled upstream as 5.2.0b.
MY_PV=${PV/_beta/b}
MY_PV=$(ver_cut 1-2 ${MY_PV}).$(($(ver_cut 3 ${MY_PV}) - 1))$(ver_cut 4- ${MY_PV})
MY_P=${PN}-${MY_PV}
S="${WORKDIR}"/${MY_P}
else
MY_P=${P}
fi
SRC_URI="https://www.skeeve.com/gawk/${MY_P}.tar.gz"
else
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gawk.asc
inherit verify-sig flag-o-matic
SRC_URI="mirror://gnu/gawk/${P}.tar.xz"
SRC_URI+=" verify-sig? ( mirror://gnu/gawk/${P}.tar.xz.sig )"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
fi
LICENSE="GPL-3+ pma? ( AGPL-3+ )"
SLOT="0"
# The gawk docs claim MPFR support is "on parole" and may be removed,
# https://www.gnu.org/software/gawk/manual/html_node/MPFR-On-Parole.html
# however this is somewhat outdated information, see
# https://public-inbox.org/libc-alpha/202412190851.4BJ8psq4404509@freefriends.org/
IUSE="+mpfr pma nls readline"
RDEPEND="
mpfr? (
dev-libs/gmp:=
dev-libs/mpfr:=
)
readline? ( sys-libs/readline:= )
"
DEPEND="${RDEPEND}"
BDEPEND="
>=sys-apps/texinfo-7.1
>=sys-devel/bison-3.5.4
nls? ( sys-devel/gettext )
"
if [[ ${GAWK_IS_BETA} != yes ]] ; then
BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-gawk )"
fi
PATCHES=(
"${FILESDIR}"/${P}-no-assertions-for-pma.patch
"${FILESDIR}"/${P}-Fix-gensub-bug-for-use-with-MinRX.-Add-test-case.patch
"${FILESDIR}"/${P}-Small-efficiency-fix-in-array.c.patch
)
src_prepare() {
default
use elibc_musl && append-cppflags -D__GNU_LIBRARY__
# Use symlinks rather than hardlinks, and disable version links
sed -i \
-e '/^LN =/s:=.*:= $(LN_S):' \
-e '/install-exec-hook:/s|$|\nfoo:|' \
Makefile.in doc/Makefile.in || die
# bug #413327
sed -i '/^pty1:$/s|$|\n_pty1:|' test/Makefile.in || die
# Fix standards conflict on Solaris
if [[ ${CHOST} == *-solaris* ]] ; then
sed -i \
-e '/\<_XOPEN_SOURCE\>/s/1$/600/' \
-e '/\<_XOPEN_SOURCE_EXTENDED\>/s/1//' \
extension/inplace.c || die
fi
}
src_configure() {
# README says gawk may not work properly if built with non-Bison.
# We already BDEPEND on Bison, so just unset YACC rather than
# guessing if we need to do yacc.bison or bison -y.
unset YACC
local myeconfargs=(
--cache-file="${S}"/config.cache
--libexec='$(libdir)/misc'
$(use_with mpfr)
$(use_enable nls)
$(use_enable pma)
$(use_with readline)
)
econf "${myeconfargs[@]}"
}
src_test() {
# bug #970495
local -x PAGER=cat
emake check
}
src_install() {
# Automatic dodocs barfs
rm -rf README_d || die
default
# Install headers
insinto /usr/include/awk
doins *.h
rm "${ED}"/usr/include/awk/config.h || die
}

View File

@ -1,3 +1,4 @@
DIST iproute2-6.16.0.tar.xz 931124 BLAKE2B d1c66f4d63edd6fa2701c92dbc47f8c4388d6a660d541d528e3463e8e261fda64df4a7f8930f510718c71ee82438b5c4859f072eb08c8ff1e4d1d65223108005 SHA512 88930ea1a3a901594a69dc04e533bfd1de0f5b79f176dedb45f11f01035bd680edccc8e04e56d0922ee430580581c646473a3baa941254739878f7ab946f17df
DIST iproute2-6.17.0.tar.xz 940952 BLAKE2B 49b88fd1eaea34376b086be02e72505ca62f52f3c53f3ee29cd273532521fabe8d38062277852dcc69f78b86b9460b213bbeedc9c51ce20d3bb1fd35d86b6fc8 SHA512 3d83d49233c1d984f15d285a46e2ec0eeb820c7cb84cfc84866921f37e8a57d31bc3953be07e8c79ed6079f326a25c3a85f591b0d67f9f689c0c70ccdb0fef77
DIST iproute2-6.18.0.tar.xz 945200 BLAKE2B 03af6c56beb8717f1d2ce77d91db1293188a45ed6b491924c37a6d7956da1b92106198503fc27dc12301648c2c0c5358883ce0fff046fb53e6e8be004696d6fd SHA512 c4a0852fbf0143b51a65adb6a29cbc838ecaed88b827574ea33ddd2e3f90c00732eaea06ff702a7122d82f7e4d926282f9fbb59b87e41be7da04403c73258fc2
DIST iproute2-6.19.0.tar.xz 958920 BLAKE2B 779818bb5f790edc6d594155e96ade6092744d4c035281291bc34a987d2bee8a566aad3fa6091c736fe27f79f75baeb975abbeee0e3dce45af7e81019097e512 SHA512 0ca41b0ccfc253ab80cc5f9c687c92ec685d4e25cfbbb7cc512b919784c3248e20cc7c928420e271f8b24a4f56d6a4282f3ba394e27267552004701662e56494

View File

@ -0,0 +1,42 @@
From https://lore.kernel.org/netdev/20260223223435.289652-1-slyich@gmail.com/
Bug: https://bugs.gentoo.org/970910
From: Sergei Trofimovich <slyich@gmail.com>
To: netdev@vger.kernel.org
Cc: Sergei Trofimovich <slyich@gmail.com>
Subject: [PATCH iproute2] include/json_print.h: add includes for `__u32` and `timeval` declarations
Date: Mon, 23 Feb 2026 22:34:35 +0000
Without the change the build fails on `musl` as:
```
../include/json_print.h:100:44: error: unknown type name __u32
100 | unsigned int print_range(const char *name, __u32 start, __u32 end);
| ^~~~~
...
../include/json_print.h:82:30: warning: struct timeval declared inside parameter list will not be visible outside of this definition or declaration
82 | _PRINT_FUNC(tv, const struct timeval *)
| ^~~~~~~
../include/json_print.h:57:45: note: in definition of macro _PRINT_FUNC
57 | type value) \
| ^~~~
../include/json_print.h: In function print_tv:
../include/json_print.h:60:48: error: passing argument 5 of print_color_tv from incompatible pointer type [-Wincompatible-pointer-types]
60 | value); \
| ^~~~~
| |
| const struct timeval *
```
--- a/include/json_print.h
+++ b/include/json_print.h
@@ -8,6 +8,10 @@
#ifndef _JSON_PRINT_H_
#define _JSON_PRINT_H_
+#include <sys/time.h> /* struct timeval typedef */
+
+#include <asm/types.h> /* __u32 typedef */
+
#include "json_writer.h"
#include "color.h"

View File

@ -0,0 +1,11 @@
diff --git a/dpll/Makefile b/dpll/Makefile
index 3a37184b..40dfb87b 100644
--- a/dpll/Makefile
+++ b/dpll/Makefile
@@ -1,5 +1,6 @@
# SPDX-License-Identifier: GPL-2.0
include ../config.mk
+include ../config.include
# iproute2 libraries
LIBNETLINK=../lib/libutil.a ../lib/libnetlink.a

View File

@ -0,0 +1,221 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit dot-a edo toolchain-funcs flag-o-matic
if [[ ${PV} == 9999 ]] ; then
EGIT_REPO_URI="https://git.kernel.org/pub/scm/linux/kernel/git/shemminger/iproute2.git"
inherit git-r3
else
SRC_URI="https://www.kernel.org/pub/linux/utils/net/${PN}/${P}.tar.xz"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
fi
DESCRIPTION="kernel routing and traffic control utilities"
HOMEPAGE="https://wiki.linuxfoundation.org/networking/iproute2"
LICENSE="GPL-2"
SLOT="0"
IUSE="atm berkdb bpf caps elf +iptables minimal nfs selinux"
# Needs root
RESTRICT="test"
# We could make libmnl optional, but it's tiny, so eh
RDEPEND="
!minimal? ( net-libs/libmnl:= )
atm? ( net-dialup/linux-atm )
berkdb? ( sys-libs/db:= )
bpf? ( >=dev-libs/libbpf-0.6:= )
caps? ( sys-libs/libcap )
elf? ( virtual/libelf:= )
iptables? ( >=net-firewall/iptables-1.4.20:= )
nfs? ( net-libs/libtirpc:= )
selinux? ( sys-libs/libselinux )
"
# We require newer linux-headers for ipset support (bug #549948) and some defines (bug #553876)
DEPEND="
${RDEPEND}
>=sys-kernel/linux-headers-3.16
"
BDEPEND="
app-arch/xz-utils
>=sys-devel/bison-2.4
app-alternatives/lex
virtual/pkgconfig
"
PATCHES=(
"${FILESDIR}"/${PN}-6.10.0-musl-2.patch # bug #926341
"${FILESDIR}"/${PN}-6.9.0-mtu.patch # bug #291907
"${FILESDIR}"/${PN}-6.8.0-configure-nomagic-nolibbsd.patch # bug #643722 & #911727
"${FILESDIR}"/${PN}-6.8.0-disable-libbsd-fallback.patch # bug #911727
"${FILESDIR}"/${PN}-6.18.0-netshaper.patch # bug #967691
"${FILESDIR}"/${PN}-6.19.0-dpll.patch # bug #967691
"${FILESDIR}"/${PN}-6.19.0-add-includes.patch # bug #970910
)
src_prepare() {
default
# Fix version if necessary
local versionfile="include/version.h"
if [[ ${PV} != 9999 ]] && ! grep -Fq "${PV}" ${versionfile} ; then
einfo "Fixing version string"
sed -i "s@\"[[:digit:]\.]\+\"@\"${PV}\"@" \
${versionfile} || die
fi
# echo -n is not POSIX compliant
sed -i 's@echo -n@printf@' configure || die
sed -i \
-e '/^CC :\?=/d' \
-e "/^LIBDIR/s:=.*:=/$(get_libdir):" \
-e "s|-O2|${CFLAGS} ${CPPFLAGS}|" \
-e "/^HOSTCC/s:=.*:= $(tc-getBUILD_CC):" \
-e "/^DBM_INCLUDE/s:=.*:=${T}:" \
Makefile || die
# Build against system headers
rm -r include/netinet || die #include/linux include/ip{,6}tables{,_common}.h include/libiptc
sed -i 's:TCPI_OPT_ECN_SEEN:16:' misc/ss.c || die
if use minimal ; then
sed -i -e '/^SUBDIRS=/s:=.*:=lib tc ip:' Makefile || die
fi
}
src_configure() {
tc-export AR CC PKG_CONFIG
lto-guarantee-fat
tc-export_build_env
export CBUILD_CFLAGS=${BUILD_CFLAGS}
# This sure is ugly. Should probably move into toolchain-funcs at some point.
local setns
pushd "${T}" >/dev/null || die
printf '#include <sched.h>\nint main(){return setns(0, 0);}\n' > test.c || die
if ${CC} ${CFLAGS} ${CPPFLAGS} -D_GNU_SOURCE ${LDFLAGS} test.c >&/dev/null ; then
setns=y
else
setns=n
fi
echo 'int main(){return 0;}' > test.c || die
if ! ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} test.c -lresolv >&/dev/null ; then
sed -i '/^LDLIBS/s:-lresolv::' "${S}"/Makefile || die
fi
popd >/dev/null || die
# build system does not pass CFLAGS to LDFLAGS, as is recommended by GCC upstream
# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-flto
# https://bugs.gentoo.org/929233
append-ldflags ${CFLAGS}
# run "configure" script first which will create "config.mk"...
# Using econf breaks since 5.14.0 (a9c3d70d902a0473ee5c13336317006a52ce8242)
eval "local -a EXTRA_ECONF=(${EXTRA_ECONF})"
edo ./configure --libbpf_force $(usex bpf on off) "${EXTRA_ECONF[@]}"
# Remove the definitions made by configure and allow them to be overridden
# by USE flags below.
# We have to do the cheesy only-sed-if-disabled because otherwise
# the *_FLAGS etc stuff found by configure will be used but result
# in a broken build.
if ! use berkdb ; then
sed -i -e '/HAVE_BERKELEY_DB/d' config.mk || die
fi
if ! use caps ; then
sed -i -e '/HAVE_CAP/d' config.mk || die
fi
if use minimal ; then
sed -i -e '/HAVE_MNL/d' config.mk || die
fi
if ! use elf ; then
sed -i -e '/HAVE_ELF/d' config.mk || die
fi
if ! use nfs ; then
sed -i -e '/HAVE_RPC/d' config.mk || die
fi
if ! use selinux ; then
sed -i -e '/HAVE_SELINUX/d' config.mk || die
fi
# ...Now switch on/off requested features via USE flags
# this is only useful if the test did not set other things, per bug #643722
# Keep in sync with ifs above, or refactor to be unified.
cat <<-EOF >> config.mk
TC_CONFIG_ATM := $(usex atm y n)
TC_CONFIG_XT := $(usex iptables y n)
TC_CONFIG_NO_XT := $(usex iptables n y)
# We've locked in recent enough kernel headers, bug #549948
TC_CONFIG_IPSET := y
HAVE_BERKELEY_DB := $(usex berkdb y n)
HAVE_CAP := $(usex caps y n)
HAVE_MNL := $(usex minimal n y)
HAVE_ELF := $(usex elf y n)
HAVE_RPC := $(usex nfs y n)
HAVE_SELINUX := $(usex selinux y n)
IP_CONFIG_SETNS := ${setns}
# Use correct iptables dir, bug #144265, bug #293709
IPT_LIB_DIR := $(use iptables && ${PKG_CONFIG} xtables --variable=xtlibdir)
EOF
}
src_compile() {
emake V=1 NETNS_RUN_DIR=/run/netns
}
src_test() {
emake check
}
src_install() {
if use minimal ; then
into /
dosbin tc/tc
dobin ip/ip
return 0
fi
emake \
DESTDIR="${D}" \
PREFIX="${EPREFIX}/usr" \
LIBDIR="${EPREFIX}"/$(get_libdir) \
SBINDIR="${EPREFIX}"/sbin \
CONFDIR="${EPREFIX}"/etc/iproute2 \
DOCDIR="${EPREFIX}"/usr/share/doc/${PF} \
MANDIR="${EPREFIX}"/usr/share/man \
ARPDDIR="${EPREFIX}"/var/lib/arpd \
install
dodir /bin
mv "${ED}"/{s,}bin/ip || die # bug #330115
mv "${ED}"/{s,}bin/ss || die # bug #547264
dolib.a lib/libnetlink.a
insinto /usr/include
doins include/libnetlink.h
# Collides with net-analyzer/ifstat
# https://bugs.gentoo.org/868321
mv "${ED}"/sbin/ifstat{,-iproute2} || die
if use berkdb ; then
keepdir /var/lib/arpd
# bug #47482, arpd doesn't need to be in /sbin
dodir /usr/bin
mv "${ED}"/sbin/arpd "${ED}"/usr/bin/ || die
elif [[ -d "${ED}"/var/lib/arpd ]]; then
rmdir --ignore-fail-on-non-empty -p "${ED}"/var/lib/arpd || die
fi
strip-lto-bytecode
}

View File

@ -11,7 +11,7 @@ inherit eapi9-ver
# - It's considered fine (and somewhat encouraged) for us to make snapshots
# if we want specific fixes, perhaps aligned with newer kernels, glibc, etc.
# Just generate it with 'make dist'. We can set DISTVERSION if we want a vanity
# name or if the comit hash is too long;
# name or if the commit hash is too long;
#
# - If we do use a snapshot, *don't* grab it directly from git and use it
# raw in the ebuild. Use 'make dist' as above;
@ -64,7 +64,7 @@ LICENSE="man-pages GPL-2+ BSD"
SLOT="0"
# Keep the following in sync with app-i18n/man-pages-l10n
MY_L10N=( cs da de el es fi fr hu id it ko mk nb nl pl pt-BR ro ru sr sv uk vi )
IUSE="l10n_ja l10n_ru l10n_zh-CN ${MY_L10N[@]/#/l10n_}"
IUSE="l10n_ja l10n_zh-CN ${MY_L10N[@]/#/l10n_}"
RESTRICT="binchecks"
RDEPEND="
@ -72,10 +72,6 @@ RDEPEND="
"
PDEPEND="
l10n_ja? ( app-i18n/man-pages-ja )
l10n_ru? ( || (
app-i18n/man-pages-l10n[l10n_ru(-)]
app-i18n/man-pages-ru
) )
l10n_zh-CN? ( app-i18n/man-pages-zh_CN )
"
for lang in "${MY_L10N[@]}"; do

View File

@ -11,7 +11,7 @@ inherit eapi9-ver
# - It's considered fine (and somewhat encouraged) for us to make snapshots
# if we want specific fixes, perhaps aligned with newer kernels, glibc, etc.
# Just generate it with 'make dist'. We can set DISTVERSION if we want a vanity
# name or if the comit hash is too long;
# name or if the commit hash is too long;
#
# - If we do use a snapshot, *don't* grab it directly from git and use it
# raw in the ebuild. Use 'make dist' as above;
@ -64,7 +64,7 @@ LICENSE="man-pages GPL-2+ BSD"
SLOT="0"
# Keep the following in sync with app-i18n/man-pages-l10n
MY_L10N=( cs da de el es fi fr hu id it ko mk nb nl pl pt-BR ro ru sr sv uk vi )
IUSE="l10n_ja l10n_ru l10n_zh-CN ${MY_L10N[@]/#/l10n_}"
IUSE="l10n_ja l10n_zh-CN ${MY_L10N[@]/#/l10n_}"
RESTRICT="binchecks"
RDEPEND="
@ -72,10 +72,6 @@ RDEPEND="
"
PDEPEND="
l10n_ja? ( app-i18n/man-pages-ja )
l10n_ru? ( || (
app-i18n/man-pages-l10n[l10n_ru(-)]
app-i18n/man-pages-ru
) )
l10n_zh-CN? ( app-i18n/man-pages-zh_CN )
"
for lang in "${MY_L10N[@]}"; do

View File

@ -11,7 +11,7 @@ inherit eapi9-ver
# - It's considered fine (and somewhat encouraged) for us to make snapshots
# if we want specific fixes, perhaps aligned with newer kernels, glibc, etc.
# Just generate it with 'make dist'. We can set DISTVERSION if we want a vanity
# name or if the comit hash is too long;
# name or if the commit hash is too long;
#
# - If we do use a snapshot, *don't* grab it directly from git and use it
# raw in the ebuild. Use 'make dist' as above;
@ -64,7 +64,7 @@ LICENSE="man-pages GPL-2+ BSD"
SLOT="0"
# Keep the following in sync with app-i18n/man-pages-l10n
MY_L10N=( cs da de el es fi fr hu id it ko mk nb nl pl pt-BR ro ru sr sv uk vi )
IUSE="l10n_ja l10n_ru l10n_zh-CN ${MY_L10N[@]/#/l10n_}"
IUSE="l10n_ja l10n_zh-CN ${MY_L10N[@]/#/l10n_}"
RESTRICT="binchecks"
RDEPEND="
@ -72,10 +72,6 @@ RDEPEND="
"
PDEPEND="
l10n_ja? ( app-i18n/man-pages-ja )
l10n_ru? ( || (
app-i18n/man-pages-l10n[l10n_ru(-)]
app-i18n/man-pages-ru
) )
l10n_zh-CN? ( app-i18n/man-pages-zh_CN )
"
for lang in "${MY_L10N[@]}"; do

View File

@ -1,4 +1,4 @@
DIST texinfo-7.2.92.tar.xz 6931756 BLAKE2B 0048ddd72dddb3bc58e05f0562514e80495fd98eb4c9b1fb950c941bec729dd07ac8575a5685ea63cfa993143f2e9c1c34df89dc5feb16407dfb314d82c24bd4 SHA512 3aafc0cb035e0f72e5539473cc76d9b0795f496d24cc6e128fec54b267b5b9a1b6ba4ee721dffd014a5a17d2eac0ed440b615a9c65918e2c74ce1e601dfdf654
DIST texinfo-7.2.92.tar.xz.sig 265 BLAKE2B ca333bd4010df6d78b36eb5b4bbe414859946c75726b16973e479a9f44bcc4f6e76d9c596f09da8e67fee06d63e1a59c028220b4db79efca6fabb4f9dcfbcb25 SHA512 259e280d13e880d3a82ef28fd670f5ef1d0bd8aacc915f9053420cc414c317e6f13d8c5501162b41ee0d7b6f5d764152a410b92bc20532fa3a89f59418600b9c
DIST texinfo-7.2.tar.xz 6408432 BLAKE2B fc6bd020310a437a73d5723d257ca3da1d15329e9e668fa78c49ac77759c2c990d4422c2a7071b217ea214b88389a0cbb43d3fcfa5fe9bf9651270167b15c342 SHA512 8e67337ae12a552fc620c43725507a4978710ea6630e98b0f5e98eb3f79a90e191dde5225699aa6217c26f171d277461f76150f0459cd07b40c3234d2f3d89bf
DIST texinfo-7.2.tar.xz.sig 265 BLAKE2B dc3a1b157efce581ff67b1605c646a5c78fe355176376b2ec8f5d35f0b1e28fc86ef03e73fe2f2ba4e50cc893d1ad379f6be1b8b627a6eb78560b37aeb37c880 SHA512 fcb5bcf655e16f8994b33242516cff7f5dc6684555c889fee4a4e5b01cbc9c8163d6ea5c77722b2bb8d6f65120650de4daff027bee135d1c29f82316211d8fb4
DIST texinfo-7.3.tar.xz 6940392 BLAKE2B e9c17aec5ebf9d22eb22b40a06a24de675fca6d511f448170983d474b0906e23c25a00b75907b260abf66e660aefa6d6af928a1785bcf9b2099a0e791aac7025 SHA512 fb1a16df67f870e79c31f4b96d8431d9c944eb84e5aa71e9d94890417ce63047918d55620fa63bd582232c47e9b412a6f95a11a2479f53f40e92e49bc018d926
DIST texinfo-7.3.tar.xz.sig 265 BLAKE2B 95d283be610ce45ce2aefdf2eb3cc9f46fe09d50685b344a16eba14c48a07315642199c5f950a93f115aacb1e5a1ee8181fcf8d0510e7e69417ec42919e5613f SHA512 161a4a3e12d35d3cda3a65c1960563421c1a8babd27cbd6d6f3d055fc5f4b2fe36278fca018870eb74523682e1b4c9c022b45799558d1eb305da96db9637a256

View File

@ -61,6 +61,7 @@ DEPEND="${RDEPEND}"
BDEPEND="
${REGEN_BDEPEND}
nls? ( >=sys-devel/gettext-0.19.6 )
test? ( dev-perl/Test-Deep )
"
src_prepare() {

View File

@ -44,7 +44,8 @@ fi
LICENSE="GPL-3+"
SLOT="0"
IUSE="nls +standalone static"
IUSE="nls +standalone static test"
RESTRICT="!test? ( test )"
RDEPEND="
|| ( app-doc/info-manual >=app-editors/emacs-26:* )
@ -60,6 +61,7 @@ DEPEND="${RDEPEND}"
BDEPEND="
${REGEN_BDEPEND}
nls? ( >=sys-devel/gettext-0.19.6 )
test? ( dev-perl/Test-Deep )
"
src_prepare() {

View File

@ -0,0 +1,87 @@
From 0262207f76088f6801e055b64125b2a1006de1e2 Mon Sep 17 00:00:00 2001
From: Christopher Byrne <salah.coronya@gmail.com>
Date: Sun, 1 Mar 2026 20:05:21 -0600
Subject: [PATCH] src/sss_client/common.c: Use getpwnam_r to avoid clobbering
struct passwd
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
If something else uses PAM (like openrc, see
https://github.com/OpenRC/openrc/pull/984) and getpwnam, and calls
something like pam_open_session, sssd's call to getpwnam in
init_sssd_ids clobbers the cached value by the other program.
Signed-off-by: Christopher Byrne <salah.coronya@gmail.com>
Reviewed-by: Alexey Tikhonov <atikhono@redhat.com>
Reviewed-by: Tomáš Halman <thalman@redhat.com>
---
src/sss_client/common.c | 51 +++++++++++++++++++++++++++++++++++++----
1 file changed, 47 insertions(+), 4 deletions(-)
diff --git a/src/sss_client/common.c b/src/sss_client/common.c
index 094936d8f..8a2e693da 100644
--- a/src/sss_client/common.c
+++ b/src/sss_client/common.c
@@ -148,11 +148,54 @@ static void init_sssd_ids(void)
/* 'libnss_sss' doesn't resolve SSSD_USER,
* so no need to set '_SSS_LOOPS'
*/
- struct passwd *pwd = getpwnam(SSSD_USER);
- if (pwd != NULL) {
- sss_sssd_uid = pwd->pw_uid;
- sss_sssd_gid = pwd->pw_gid;
+ struct passwd pwd;
+ struct passwd *result = NULL;
+ long sc_bufsize;
+ size_t bufsize;
+ char *buf;
+ char *newbuf;
+ int error;
+
+ sc_bufsize = sysconf(_SC_GETPW_R_SIZE_MAX);
+
+ if (sc_bufsize > 0)
+ bufsize = (size_t)sc_bufsize;
+ else {
+ bufsize = 16384;
+ }
+
+ buf = malloc(bufsize);
+
+ if (buf == NULL) {
+ return;
}
+
+ do {
+ error = getpwnam_r(SSSD_USER, &pwd, buf, bufsize, &result);
+ if (result == NULL) {
+ if (error == ERANGE) {
+ bufsize += 4096;
+
+ if (bufsize >= 65536) {
+ break;
+ }
+
+ newbuf = realloc(buf, bufsize);
+
+ if (newbuf == NULL) {
+ break;
+ }
+
+ buf = newbuf;
+ continue;
+ }
+ } else {
+ sss_sssd_uid = result->pw_uid;
+ sss_sssd_gid = result->pw_gid;
+ }
+ } while (result == NULL && error == ERANGE);
+
+ free(buf);
}
#endif
#endif /* SSSD_NON_ROOT_USER */
--
2.52.0

View File

@ -0,0 +1,365 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# Ukrainian translation causes compile failure, so skip it for now
#PLOCALES="ca de es fr ja ko pt_BR ru sv tr uk"
PLOCALES="ca de es fr ja ko pt_BR ru sv tr"
PLOCALES_BIN="${PLOCALES} bg cs eu fi hu id it ka nb nl pl pt tg zh_TW zh_CN"
PLOCALE_BACKUP="sv"
PYTHON_COMPAT=( python3_{11..14} )
inherit autotools linux-info multilib-minimal optfeature plocale \
python-single-r1 pam systemd tmpfiles udev toolchain-funcs verify-sig
DESCRIPTION="System Security Services Daemon provides access to identity and authentication"
HOMEPAGE="https://github.com/SSSD/sssd"
if [[ ${PV} != 9999 ]]; then
SRC_URI="https://github.com/SSSD/sssd/releases/download/${PV}/${P}.tar.gz
https://github.com/SSSD/sssd/releases/download/${PV}/${P}.tar.gz.asc"
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
else
inherit git-r3
EGIT_REPO_URI="https://github.com/SSSD/sssd.git"
EGIT_BRANCH="master"
fi
LICENSE="GPL-3"
SLOT="0"
IUSE="doc +netlink nfsv4 nls passkey python samba selinux systemd systemtap test"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
RESTRICT="!test? ( test )"
DEPEND="
>=app-crypt/mit-krb5-1.19.1[${MULTILIB_USEDEP}]
app-crypt/p11-kit
>=dev-libs/ding-libs-0.2
>=dev-libs/cyrus-sasl-2.1.25-r3[kerberos]
dev-libs/jansson:=
dev-libs/libpcre2:=
dev-libs/libunistring:=[${MULTILIB_USEDEP}]
>=dev-libs/popt-1.16
>=dev-libs/openssl-1.0.2:=
>=net-dns/bind-9.9[gssapi]
>=net-dns/c-ares-1.10.0-r1:=[${MULTILIB_USEDEP}]
>=net-nds/openldap-2.4.30:=[sasl,experimental]
net-fs/cifs-utils[acl]
>=sys-apps/dbus-1.6
>=sys-apps/keyutils-1.5:=
sys-libs/libcap
>=sys-libs/pam-0-r1[${MULTILIB_USEDEP}]
>=sys-libs/talloc-2.0.7
>=sys-libs/tdb-1.2.9
>=sys-libs/tevent-0.9.16
virtual/ldb:=
virtual/libintl
netlink? ( dev-libs/libnl:3 )
nfsv4? ( >=net-fs/nfs-utils-2.3.1-r2 )
nls? ( >=sys-devel/gettext-0.18 )
passkey? ( dev-libs/libfido2:= )
python? (
${PYTHON_DEPS}
systemd? (
$(python_gen_cond_dep '
dev-python/python-systemd[${PYTHON_USEDEP}]
')
)
)
samba? ( >=net-fs/samba-4.10.2[winbind] )
selinux? (
>=sys-libs/libselinux-2.1.9
>=sys-libs/libsemanage-2.1
)
systemd? (
sys-apps/systemd:=
sys-apps/util-linux
)
systemtap? ( dev-debug/systemtap )"
RDEPEND="${DEPEND}
acct-user/sssd
acct-group/sssd
selinux? ( >=sec-policy/selinux-sssd-2.20120725-r9 )"
DEPEND+="
sys-apps/shadow"
BDEPEND="
acct-user/sssd
acct-group/sssd
sys-libs/libcap
virtual/pkgconfig
${PYTHON_DEPS}
doc? ( app-text/doxygen )
nls? ( app-text/po4a
sys-devel/gettext )
test? (
dev-libs/check
dev-libs/softhsm:2
dev-util/cmocka
net-libs/gnutls[pkcs11,tools]
sys-libs/libfaketime
sys-libs/nss_wrapper
sys-libs/pam_wrapper
sys-libs/uid_wrapper
)
app-text/docbook-xml-dtd:4.4
>=dev-libs/libxslt-1.1.26
verify-sig? ( sec-keys/openpgp-keys-sssd )
"
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/sssd.asc
CONFIG_CHECK="~KEYS"
PATCHES=(
"${FILESDIR}/${PN}-2.8.2-krb5_pw_locked.patch"
"${FILESDIR}/${PN}-2.9.6-conditional-python-install.patch"
"${FILESDIR}/${PN}-2.10.0_beta2-fix-systemd-systemconfdir.patch"
"${FILESDIR}/${PN}-2.12.0-dont-clobber-getpwnam-buffer.patch"
)
MULTILIB_WRAPPED_HEADERS=(
/usr/include/ipa_hbac.h
/usr/include/sss_idmap.h
/usr/include/sss_nss_idmap.h
# --with-ifp
/usr/include/sss_sifp.h
/usr/include/sss_sifp_dbus.h
# from 1.15.3
/usr/include/sss_certmap.h
)
pkg_setup() {
linux-info_pkg_setup
python-single-r1_pkg_setup
}
src_prepare() {
default
plocale_get_locales > src/man/po/LINGUAS || die
sed -i \
-e "/_langs]/ s/ .*//" \
src/man/po/po4a.cfg \
|| die
enable_locale() {
local locale=${1}
sed -i \
-e "/_langs]/ s/$/ ${locale}/" \
src/man/po/po4a.cfg \
|| die
}
plocale_for_each_locale enable_locale
PLOCALES="${PLOCALES_BIN}"
plocale_get_locales > po/LINGUAS || die
sed -i \
-e 's:/var/run:/run:' \
src/examples/logrotate \
|| die
# disable flaky test, see https://github.com/SSSD/sssd/issues/5631
sed -i \
-e '/^\s*pam-srv-tests[ \\]*$/d' \
Makefile.am \
|| die
# requires valgrind headers installed, see
# https://github.com/SSSD/sssd/pull/7845
sed -i \
-e '/^\s*test_iobuf[ \\]*$/d' \
Makefile.am \
|| die
eautoreconf
multilib_copy_sources
}
src_configure() {
local native_dbus_cflags=$($(tc-getPKG_CONFIG) --cflags dbus-1 || die)
multilib-minimal_src_configure
}
multilib_src_configure() {
local myconf=()
myconf+=(
--libexecdir="${EPREFIX}"/usr/libexec
--localstatedir="${EPREFIX}"/var
--runstatedir="${EPREFIX}"/run
--sbindir="${EPREFIX}"/usr/sbin
--with-pid-path="${EPREFIX}"/run/sssd
--with-plugin-path="${EPREFIX}"/usr/$(get_libdir)/sssd
--enable-pammoddir="${EPREFIX}"/$(getpam_mod_dir)
--with-ldb-lib-dir="${EPREFIX}"/usr/$(get_libdir)/samba/ldb
--with-db-path="${EPREFIX}"/var/lib/sss/db
--with-gpo-cache-path="${EPREFIX}"/var/lib/sss/gpo_cache
--with-pubconf-path="${EPREFIX}"/var/lib/sss/pubconf
--with-pipe-path="${EPREFIX}"/var/lib/sss/pipes
--with-mcache-path="${EPREFIX}"/var/lib/sss/mc
--with-secrets-db-path="${EPREFIX}"/var/lib/sss/secrets
--with-log-path="${EPREFIX}"/var/log/sssd
--with-tmpfilesdir=/usr/lib/tmpfiles.d
--with-udevrulesdir="$(get_udevdir)/rules.d"
--with-kcm
--enable-kcm-renewal
--with-os=gentoo
--disable-rpath
--disable-static
# Valgrind is only used for tests
--disable-valgrind
$(use_with samba)
--with-smb-idmap-interface-version=6
--enable-cifs-idmap-plugin
$(multilib_native_use_with selinux)
--enable-krb5-locator-plugin
$(use_enable samba pac-responder)
$(multilib_native_use_with nfsv4 nfsv4-idmapd-plugin)
$(use_enable nls)
$(multilib_native_use_with netlink libnl)
--with-manpages
--with-sudo
$(multilib_native_with autofs)
$(multilib_native_with ssh)
--without-oidc-child
$(multilib_native_with passkey)
--with-subid
$(use_enable systemtap)
--without-python2-bindings
$(multilib_native_use_with python python3-bindings)
# Annoyingly configure requires that you pick systemd XOR sysv
--with-initscript=$(usex systemd systemd sysv)
--with-sssd-user=sssd
KRB5_CONFIG="${ESYSROOT}"/usr/bin/krb5-config
CPPFLAGS="${CPPFLAGS} -I${ESYSROOT}/usr/include/samba-4.0"
)
use systemd && myconf+=(
--with-systemdunitdir=$(systemd_get_systemunitdir)
)
if ! multilib_is_native_abi; then
# work-around all the libraries that are used for CLI and server
myconf+=(
{POPT,TALLOC,TDB,TEVENT,LDB}_{CFLAGS,LIBS}=' '
# ldb headers are fine since native needs it
# ldb lib fails... but it does not seem to bother
{DHASH,UNISTRING,INI_CONFIG_V{0,1,1_1,1_3}}_{CFLAGS,LIBS}=' '
{PCRE,CARES,SYSTEMD_LOGIN,SASL,DBUS,CRYPTO,P11_KIT}_{CFLAGS,LIBS}=' '
{NDR_NBT,SAMBA_UTIL,SMBCLIENT,NDR_KRB5PAC,JANSSON}_{CFLAGS,LIBS}=' '
# use native include path for dbus (needed for build)
DBUS_CFLAGS="${native_dbus_cflags}"
# non-pkgconfig checks
ac_cv_lib_ldap_ldap_search=yes
--without-kcm
--without-manpages
)
fi
econf "${myconf[@]}"
}
multilib_src_compile() {
if multilib_is_native_abi; then
default
use doc && emake docs
else
emake libnss_sss.la pam_sss.la pam_sss_gss.la
emake sssd_krb5_locator_plugin.la
use samba && emake sssd_pac_plugin.la
fi
}
multilib_src_test() {
if multilib_is_native_abi; then
local -x CK_TIMEOUT_MULTIPLIER=10
emake check VERBOSE=yes
fi
}
multilib_src_install() {
if multilib_is_native_abi; then
emake -j1 DESTDIR="${D}" install
if use python; then
python_fix_shebang "${ED}"
python_optimize
fi
else
# easier than playing with automake...
dopammod .libs/pam_sss.so
dopammod .libs/pam_sss_gss.so
into /
dolib.so .libs/libnss_sss.so*
exeinto /usr/$(get_libdir)/krb5/plugins/libkrb5
doexe .libs/sssd_krb5_locator_plugin.so
if use samba; then
exeinto /usr/$(get_libdir)/krb5/plugins/authdata
doexe .libs/sssd_pac_plugin.so
fi
fi
}
multilib_src_install_all() {
einstalldocs
insinto /etc/sssd
insopts -m600
doins src/examples/sssd-example.conf
insinto /etc/logrotate.d
insopts -m644
newins src/examples/logrotate sssd
newconfd "${FILESDIR}"/sssd.conf sssd
keepdir /var/lib/sss/db
keepdir /var/lib/sss/deskprofile
keepdir /var/lib/sss/gpo_cache
keepdir /var/lib/sss/keytabs
keepdir /var/lib/sss/mc
keepdir /var/lib/sss/pipes/private
keepdir /var/lib/sss/pubconf/krb5.include.d
keepdir /var/lib/sss/secrets
keepdir /var/log/sssd
keepdir /etc/sssd/conf.d
keepdir /etc/sssd/pki
# strip empty dirs
if ! use doc; then
rm -r "${ED}"/usr/share/doc/"${PF}"/doc || die
rm -r "${ED}"/usr/share/doc/"${PF}"/{hbac,idmap,nss_idmap}_doc || die
fi
rm -r "${ED}"/run || die
find "${ED}" -type f -name '*.la' -delete || die
}
pkg_postinst() {
udev_reload
tmpfiles_process sssd-tmpfiles.conf
echo
elog "You must set up sssd.conf (default installed into /etc/sssd)"
elog "and (optionally) configuration in /etc/pam.d in order to use SSSD"
elog "features."
echo
optfeature "Kerberos keytab renew (see krb5_renew_interval)" app-crypt/adcli
if ! use python; then
echo
ewarn "sssctl analyze will not work because the python USE flag is disabled."
fi
}
pkg_postrm() {
udev_reload
}

View File

@ -16,7 +16,7 @@ HOMEPAGE="https://github.com/SSSD/sssd"
if [[ ${PV} != 9999 ]]; then
SRC_URI="https://github.com/SSSD/sssd/releases/download/${PV}/${P}.tar.gz
https://github.com/SSSD/sssd/releases/download/${PV}/${P}.tar.gz.asc"
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
KEYWORDS="amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc x86"
else
inherit git-r3
EGIT_REPO_URI="https://github.com/SSSD/sssd.git"

View File

@ -3,7 +3,7 @@ DIST dejavu-sans-ttf-2.37.zip 417746 BLAKE2B c8904f3cd5a49370a7dc10e456684c88aea
DIST grub-2.12-bash-completion.patch.gz 3627 BLAKE2B 6ba80fd4fb4b28ae2e5a2387133d815da126a4eaa4b5cb24b13f4ba5a2499ab4099d10ada366ed39f84be2c38774122f48e1a1894768c5bee29149528610d095 SHA512 a9ee6d2253ae48d7f90907a9e975a3a1d01346bc621d8b8cddf7cc815cd91e078f6c61392724d13556ee64f099fa15c94fcb88a49ff02d4a90ebd376252cea5c
DIST grub-2.12.tar.xz 6675608 BLAKE2B a678f7fafb945d325c8cf47aa086f48357a8f6335b762f77038c30a3896b3b05491598d9931d5335841d224fffcbe4a9a43ca1479057c1f1ce52b8d2a952c431 SHA512 761c060a4c3da9c0e810b0ea967e3ebc66baa4ddd682a503ae3d30a83707626bccaf49359304a16b3a26fc4435fe6bea1ee90be910c84de3c2b5485a31a15be3
DIST grub-2.12.tar.xz.sig 566 BLAKE2B 9b77fe53041b99f1196743aa6d9fc9c727b17c6512129bab2b35005f2c70f371e30521ddd804bf0c666e36cf2667247980f385ca1ac911fa9b8e0311427dc01c SHA512 fbe971d8c382578b49d33902234edd9cbd084b70820a1a56a59df4ec30874c0dd4fe27f8dc44bb380716bb7480ca68a87d120a25b92a6a10ff6c8ec1b60548d3
DIST grub-2.14-lld-support.tar.xz 6828 BLAKE2B 586274c56558f4b782f6bbfa511549daea4497c95f279a4aa733fe77e1ed7ddf2ced2ce803df999425c6d30d4ad888573b2ee0e69b8b14ce8102c5606bb2a311 SHA512 89522a61c174a8cf0ae7183a93f2ca01da89ff5f251c2207195408064fa882353a919b3185c784958a0e28d79d037b409a4c58a0e97e803968fa2c8c615401f2
DIST grub-2.14-patches.tar.xz 10700 BLAKE2B 6a8850da59a56427c4e8159332e89b18c9c4f49fe95ecf4c7d8e9c8c905fea9d40a9c294e24cc4aa32f12175426f7e95fac16b16345092f8b9848c7f34b6a19e SHA512 eff9a7007f2230d642763ee8e9005da4041fffd9eb0527b909e871bf7681747f9e71ab5459b54f7ce5b9bb64a6d0659beb6fd0fb172488f62fe4148d4e73a86e
DIST grub-2.14.tar.xz 7725668 BLAKE2B 724bb430d8824bec39e6a025cf354a780b79260684c7c4e3d28beb08c8bee10d082a089fcb799f8f5eb6e83abcf8675fb7c5f5ddf443c5c0e61d6f180ee341af SHA512 5008e3b70072798d2b34301219fe174cc6bcfead40a9ab25fe32f30c62a392ffb7bf2eb629d481f4a6c19c2925324af3f08d7043e62623e746be2d8b3cbd1182
DIST grub-2.14.tar.xz.sig 566 BLAKE2B a26d44082a94b95efd13738a47dc37c33142f1d486b1643100c5e61f280464513679407c13ad3d362caf83ca63dc47ad0249a4291660dbc5aa47b739502cc6b5 SHA512 3087cc4c9abd4c16e5d57f3f9fcea83af471c1a5950d487ecb93908feac537df8720bc83854328891c46f26b202a16eadeec8d1ab343c6fe269986b6f9dd2de8
DIST unifont-15.0.06.pcf.gz 1358322 BLAKE2B 81811e3de390ca35d1a2dc1f1dee73464e97f44907ba522c218ba9c5e39ca3c9d767552780a257a97c156eb623c17786d9c0d2b67786d61df5ca33a1e10db7ca SHA512 0a28a406629c604f5cbf51f501528239a7ed50d19f93ea505bc5bdc72639e4b926b03f4b8782a5733041f7cdb4aebb9948ac7cfd5a8ad9a0fe309944e595517b

View File

@ -46,7 +46,7 @@ if [[ ${PV} != 9999 ]]; then
SRC_URI="
mirror://gnu/${PN}/${P}.tar.xz
verify-sig? ( mirror://gnu/${PN}/${P}.tar.xz.sig )
https://dev.gentoo.org/~floppym/dist/${P}-lld-support.tar.xz
https://dev.gentoo.org/~floppym/dist/${P}-patches.tar.xz
"
S=${WORKDIR}/${P%_*}
fi
@ -176,7 +176,7 @@ src_unpack() {
src_prepare() {
local PATCHES=(
"${WORKDIR}/${P}-lld-support"
"${WORKDIR}/${P}-patches"
)
default

View File

@ -35,7 +35,7 @@ else
[[ -z ${PATCH_VER} ]] || SRC_URI="${SRC_URI}
https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz"
SLOT=$(ver_cut 1-2)
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
fi
#

View File

@ -15,6 +15,7 @@ DIST gcc-13-20260205.tar.xz 84578824 BLAKE2B 889ff4c361b30c7429c1067445a3dd86b60
DIST gcc-13-20260212.tar.xz 84576196 BLAKE2B c637df92a9948bd88654509a9e03813daca16aff27909e35e47a7b1cf3a7e9abe07064c6bf2ee8223829a8203b6f7bab365d4cbd620d0a563c5cd9e6a73ba4f8 SHA512 9fdd87433a7b49c6a969dea2b023dabadbdec614b0eac84c5b0c459fd49df1786fb7b595e4015632691400bd6db2c5109db593709a5c0b89ce0b20021b888487
DIST gcc-13-20260219.tar.xz 84574608 BLAKE2B 72f5f1f292c5cd609ef05089dc9d524ce4a894a28aedbae38aa45369d8691efb2bb6aafc34870b5668634ccabbb68a029049767cae83678153f1cafedb422859 SHA512 037a489177de2fd42463d3993d857c33f3d2f7a78f9213070930f8226820b6546ba6b3a3c8fbfb47f2df4250154ac5f30e79f563b43ff850643bc4b9fc17d4c0
DIST gcc-13-20260226.tar.xz 84576560 BLAKE2B 02ad5b8bb991f5fcc951eb5d33492dea80747f4193d83d24bc308af54fb5d68a58274160f00ef0abeb731e9b72b2e9cd11312442835766d036bb7c8b203b4953 SHA512 19aa010b674edcf9a54cc2e5669cce6fd08c70b2233f9431d5d7cc89f6638f7a95b7cb9944f7d36ecf2c3c3074c21ecfa78b1b4e79ae0ff3185febaf5b87f0cd
DIST gcc-13-20260305.tar.xz 84579092 BLAKE2B 9141ecd9bc92282e6823ffb389557163912b22122140a6d30c63860e6855fcdd04a8203dc6678bb450467ead4c886c2460a83a5adefa58149e995db6a1eca911 SHA512 c204297cc5bfaf48aaecbcd08868d2fc97cd2813be3ce7e176e0b1074bdc12758bee4c6dec36f7681a2a7ee29daa07b092eec8fd19f02d26a171f5715268202f
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
@ -29,6 +30,7 @@ DIST gcc-14-20260206.tar.xz 88365888 BLAKE2B 8ab03dea6ef6f20bffb15198a327fc686a0
DIST gcc-14-20260213.tar.xz 88372424 BLAKE2B 7831805a232eb732cba36853849a2b3e7dfc8911a4944ac25e3baea08ed6282b7850a62acd6d13877e23b44f8744e684753c1cb08d2957434a1a602843ad4db2 SHA512 0957d2b63269f43abc59538021b59bfa9971188eb194d2de2ebd50726ee19aa0f2903652d0ed20e240d5df77c308f19365f7c55351b8c35c3f91a3da5d0d73d7
DIST gcc-14-20260220.tar.xz 88374408 BLAKE2B e06578c3e17aded587bc857b67229a49b7dc9070b8989f440f1861fbf88b466e603e5398b467f1f88a2fd990d7cb6cd3533fac47c95d53b7a1baa7bbdf712048 SHA512 a9080da674d31bb7b29685c49c4b0546ce8fe1a2bec607f50a3a94ead1ad4ac2015f0ae5510ce5ceb0c2ad089745ca0f55905bc36b087fe09f87c9471021e418
DIST gcc-14-20260227.tar.xz 88377520 BLAKE2B 1b542572649e0200934ddb2ee096f1ef4b06e12a86b12a98991f3e4cc8738659a2b02f4b6d77afd70064d59f731a4e6400c51e764598aa0facdd028ee1e9be0a SHA512 fac95c7f487463af7508f5ed6504a0d72f2a507d679dd4f3f10c827f2d0095e9743feabf410376a1995e0387d1e51939f112253ea0ff02c114731dd2bcd5d372
DIST gcc-14-20260306.tar.xz 88371144 BLAKE2B 88708d5bc8102cda936f22b00e8710d01e93bf38fc482cdcedd623fbf145697ca3aaecfb2a3238b9f40aaa5b8934a1747699fca1d2af27365bbe2c823c0e9420 SHA512 c0c36b9c02127fa246aea0aa86a20eb843505236646b47524f8eeac06bb210da05f94f6e52f4337b7bf384a776f5ca8adf65adb8f2604ed22a7b626fd7ca7c6c
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
@ -41,6 +43,7 @@ DIST gcc-15-20260207.tar.xz 92363192 BLAKE2B 8914359de9f39731cde87efe28b59256f09
DIST gcc-15-20260214.tar.xz 92376288 BLAKE2B 36aad1794fa23574501dc27b4ce88cce9aed13f6ee93f9797bd058388d68da1b3f93f5fa4b5dd2f02d99556e15ed1f92e9c6cfa45c9ecba2f9c3130c5ac4afff SHA512 e610aa9142e58ab59b32f7a83f62cf629ce08b41e1fe41ef56cbad72240c0d10dc1e784bb6e34962a03e271d0d8ca6ae95ca67886fa9f229668ad7e514dbc357
DIST gcc-15-20260221.tar.xz 92364832 BLAKE2B 899d0963c0b688fd8249cf9201b003e08b24f67ec397b0d29df24a972313560954c146d2eacb01ed894df1932091c8e1d77508d16c692dca71949263e6c10a11 SHA512 01485ac36fca7df2f132db7468158532ff8083d9227c1d57582b65047932e8202ab3ac1caf2c2bdedad58bcd31a6568217f51d3492e461ee7415b8e6506aa77d
DIST gcc-15-20260228.tar.xz 92382472 BLAKE2B e1f0aa167133e634248e940b8bd4e0b05d032b9fed03e6540d1497e3fa33f74a67e70fa22586a781e9305b99fe42bab60af694caba30de7277ef869a49640f0f SHA512 051918fd499be7ac77e3281e655f444ddb3e2e825ae3d895d56db3440b9ab67d374899fd52699adbd036458c5701b9dfa36806fa019b6bbf762de818432343b2
DIST gcc-15-20260307.tar.xz 92385576 BLAKE2B 8bedda7ff2cc8f75af831ff5ba36be1db1191cf18974a7f61961519188281053034b5eca74ee8b231a4c268303f3e7c89cea103c92e6ba550f17ba812d5d20a0 SHA512 8e0eefcb2c4cdaf266f4b2355784ae79d0c11881a0136b703113641663c76e74db2c3afdad7600ee08a909d28019e7ef4916298b2fd0ae7a0eff20c22574b989
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-3.tar.xz 17436 BLAKE2B ae72e3c5feb7b96c10eb0706efe95047f0516a66ec19488ad7281dd4c62d4c6f1d1d594c6a865c808293b30b4f57ee8bc018b90fcf5944ccb935bc391752aa74 SHA512 4d23fd0dacc33c069528ef0bd6ece3029a4b221e55c82347c2df8a6fa8b890c6e7eeaf15284204a4a29841678b033af2272481bde6fca8ebcc08f8c233f4e7e3
@ -52,12 +55,14 @@ DIST gcc-16-20260208.tar.xz 98344104 BLAKE2B 55968c9e137bab67ffed776a1ce9981ffc0
DIST gcc-16-20260215.tar.xz 98388052 BLAKE2B 924334293d0628a7457cda91aa46f5a3fa9c0d49915c497391efd1758a079ee9e1e210efe1514d526181a74d99c78f5bb9f074350136c03aa921fe41f17d6d59 SHA512 c2e7395d07f06f27a8e588b2f96dcb6630b1ac47aab0ab1ab6ee7055ec34661b4f0e17c7184e9fc0273765475829d652108f7f7c53c08f1b5f780e7df23809d0
DIST gcc-16-20260222.tar.xz 98490280 BLAKE2B a78546fe74ff97593cfc0e4c35d8bd67faa21fe2853918578f48b3e53170a295c6a98db0e5c1c252fe38b786bc35af5e7aa2db2f5ce39145025a31f298ff5834 SHA512 3dc5bbcb2ecbc0fa0262bbfeb8af75e5c90c3935bca825055d984e8cda87b31b03b16949eb2a3a88b3f89996302d9fd2b624fab6cdeea5b3e4a1f40c280a68ee
DIST gcc-16-20260301.tar.xz 98581536 BLAKE2B ab779e3c30965b182c13a7f25388f19b757cb071420d6ec17e1dbdc0364645f48d225a60c3f14f02e1d19b769b2741a46a4ffadbcf207b28a61a1e8238b5263f SHA512 3a9bb3d41793e780adf704690ae4d60345b504f6b19ee4c545b68f8df0ab1afce07046a7f90ac11710de87762d710bbf6d652f53bb3bbd4eef0db20db25c5acc
DIST gcc-16-20260308.tar.xz 98605400 BLAKE2B 757a6ddc67f21f733e0469bf0c8832281fd5457b93ec436812b8dab7d3e74c79482e7dc526a9d76fcfd819c4a42b5fce3c71fb36b278cf11e6cc87610f2229ac SHA512 2b4644dd3f225ed89d14eff1436a1d7977b7f39c55683bf789a7afe74ef2e699aa2ac25934ca5f3474397ff6d50fa5debfe46a56d47cb622f8d88ecb010d95d0
DIST gcc-16.0.0-musl-patches-1.tar.xz 3040 BLAKE2B 18b16357699780eb470cf44a10710281955140103198e0bd55b75e1efe3dbec233689edb11e1b9a62f782f3d97293af4906c18c2c41613b422eda085ee819467 SHA512 5ba580c7c7bb9e62935a5162d44d357cc31185a113acff7498ed7b1ac43fd0a35de7c3de0c87f02fe0be46b5e55b49bb35d1f5cd470058d21a9ea4096a37e13d
DIST gcc-16.0.0-patches-34.tar.xz 27964 BLAKE2B 69cb42657f2e52c8d54c98023261a2deb811d1dc7a63064eaf24936ea10ef6826350339f2273b9bb276959d10c8e819fcb671de9d96e16ce5ce6f1c8dd4071c5 SHA512 16ab66ed14083a5c00e28d2f8ae06319a6187049fbf0cea0929f0c80acb647801bc08dc7621472d9d639b763311dce586f81e6a8bb0c13a1fe796a9036a325e4
DIST gcc-16.0.0-patches-35.tar.xz 25940 BLAKE2B e6a7f7e550a83a706914a46d9226690e0fc8c130492f1c0c6e000a3bcfbcc28cab07437d6e0cbbfc9f511e9130f49272096bf1335e5e9bdbe9aa5812ca99ba42 SHA512 70f8128e24a5fcff4cafcddf2847bd439cf445359cf37d908749133ae0f69d6da18bfc6a8de9bc968963eec86f3eec9684df2db5eb66fe25717a4ed8b2533f4e
DIST gcc-16.0.0-patches-36.tar.xz 26860 BLAKE2B 87387001fa68c9d1007cc257168a5c2c3fae9151852a9eac74b1a184f554f8b5686f433efc5a676248a5e650bde4a3c74789ea8103d531ca0b8766fbbec23c98 SHA512 5b1feb07491375e4d343af625f1e6cdfd5797d7a7527885fb744880271eb0906ada69e823508454a44ca11b7715c339f2c2349b953e996f9f5170e4113810d17
DIST gcc-16.0.0-patches-37.tar.xz 25552 BLAKE2B 6fcd16c4d3e40ebb61bd371b1e234e3ccae4f869501b2affd3c705a385f0cfe6390ead5fb212e43999c62177d15149c1737ae32321d034eac8db7601458400bd SHA512 857ed03394b9222d46a4d908167a77b8ff5e0ebdce7eddaeb9eb73666c6f227d8074d4d1afb0bd5fdcdcd44ff9c99c27aba8ef27bbba0d91b7a6a459bb60739a
DIST gcc-16.0.0-patches-38.tar.xz 26208 BLAKE2B a2d717e2eca757bc8e2cf8eed7c03c7022847f7a8100555c098b447035cf802eba3aa5f3ea042a1464b8225368e8019ba30f486a1307b5050befb7bcb7f9678e SHA512 967bf16a72dd45bde5cc059a4a6a51453d1a039edfaf8634f8f631e33d0395f933a0fdc48406fd82dd824b221389d776ed0301d0d0a0db8dfe94dcde18feaa46
DIST gcc-16.0.0-patches-39.tar.xz 27360 BLAKE2B 33680cf4e1cd74c772d93d923d5500fd3ca5cbcc78c04e91c4ce996416c493f85a3e8d9cb9e61df56142485083c532321d8b0642930c5af3dadd7b18a836c41d SHA512 4c996fe13f6717645f953682c898bd464b094a6bf9a34464f51b39deeae7411f11d8eaa6e1d2d7c2ebb44c88bd7f01e161a9ba490e721a2b93decbe0dabda396
DIST gcc-8.5.0-patches-5.tar.xz 20188 BLAKE2B 45b29161105edc6344bb48f5bdf17e1aad6e8d9edb4d9434816425996c1b12c10f1303963776adad9db866d845f864d80d198a30e35ee6c204ca3659cf7a1401 SHA512 f22ab5d8e3116e2e896a5dcbbf5cef67dc5090182af364ef64fc22d2b28c029da5ed39f126f446721e388e7b6848239d01f5fc0346e49b96d5c04068b557f8f8
DIST gcc-8.5.0.tar.xz 63841008 BLAKE2B aa81a1a730fd7371360f6abed6ba78b5843fd18c58d5de5687acc320741b9e430e85df3535a1ef7a26051409be8d2f0945f503e5968480d919103123a99d4b12 SHA512 92f599680e6b7fbce88bcdda810f468777d541e5fddfbb287f7977d51093de2a5178bd0e6a08dfe37090ea10a0508a43ccd00220041abbbec33f1179bfc174d8
DIST gcc-9.5.0-patches-3.tar.xz 17888 BLAKE2B f2be05f32f4ecca41ebf4f402bf8fb3c11a36a8b7bd912ee9fe6baea980929774b629e12df7afb3405f1f5d044766a437b3eca5433f4af6c757f4a9dbb2e77eb SHA512 d31bb1964cdb2376572e4981b22c7ffa6fa695259c27af5d0d12aebc334cd1122c2f75739033f25f1e672300adeab2b3772622cb16099d002f3f8c5a8fe694f9

Some files were not shown because too many files have changed in this diff Show More