summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-09-18 21:53:21 -0500
committerroot <root@alpha.trunkmasters.com>2026-09-18 21:53:21 -0500
commit9720a11af1e64187117d3c485b8df96672a294fe (patch)
treeb59d49bd17ee8adbe820732ab0ddd8a05b9068f5
parentba2db746adde666ba2fbd08e45472b5de2d61510 (diff)
downloadsrcux-9720a11af1e64187117d3c485b8df96672a294fe.tar.gz
srcux-9720a11af1e64187117d3c485b8df96672a294fe.tar.xz
srcux-9720a11af1e64187117d3c485b8df96672a294fe.zip
Checkpoint dirty output before beosrepo update
-rw-r--r--acct-user/ollama/ollama-0.ebuild (renamed from acct-user/ollama/ollama-3.ebuild)8
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-11.18.ebuild216
-rw-r--r--dev-cpp/glaze/files/glaze-5.2.1-unbundle-test-deps.patch64
-rw-r--r--dev-cpp/glaze/files/glaze-5.5.4-unbundle-test-deps.patch (renamed from dev-cpp/glaze/files/glaze-7.0.2-unbundle-test-deps.patch)19
-rw-r--r--dev-cpp/glaze/glaze-5.2.1.ebuild (renamed from dev-cpp/glaze/glaze-7.0.2.ebuild)6
-rw-r--r--dev-cpp/glaze/glaze-5.5.4.ebuild44
-rw-r--r--dev-cpp/glaze/glaze-8.1.0.ebuild41
-rw-r--r--dev-lang/deno-bin/deno-bin-2.9.4.ebuild (renamed from dev-lang/deno-bin/deno-bin-2.9.7.ebuild)0
-rw-r--r--dev-lang/deno-bin/deno-bin-2.9.5.ebuild63
-rw-r--r--dev-libs/openssl-compat/files/gentoo.config-1.0.2 (renamed from dev-libs/openssl-compat/files/gentoo.config-0.9.8)61
-rw-r--r--dev-libs/openssl-compat/files/gentoo.config-1.0.4184
-rw-r--r--dev-libs/openssl-compat/files/openssl-0.9.8e-bsd-sparc64.patch25
-rw-r--r--dev-libs/openssl-compat/files/openssl-0.9.8h-ldflags.patch29
-rw-r--r--dev-libs/openssl-compat/files/openssl-0.9.8m-binutils.patch24
-rw-r--r--dev-libs/openssl-compat/files/openssl-0.9.8z_p8-perl-5.26.patch13
-rw-r--r--dev-libs/openssl-compat/files/openssl-0.9.8z_p8-termios.patch11
-rw-r--r--dev-libs/openssl-compat/files/openssl-1.1.0j-parallel_install_fix.patch21
-rw-r--r--dev-libs/openssl-compat/files/openssl-1.1.1i-riscv32.patch61
-rw-r--r--dev-libs/openssl-compat/openssl-compat-0.9.8z_p8-r3.ebuild172
-rw-r--r--dev-libs/openssl-compat/openssl-compat-1.0.2u-r2.ebuild239
-rw-r--r--dev-libs/openssl-compat/openssl-compat-1.1.1u.ebuild219
-rw-r--r--dev-libs/openssl-compat/openssl-compat-3.6.2.ebuild175
-rw-r--r--dev-libs/openssl-compat/openssl-compat-3.6.4.ebuild184
-rw-r--r--gui-apps/waybar/files/meson-fix-build.patch38
-rw-r--r--gui-apps/waybar/files/tray-icons-fix.patch99
-rw-r--r--gui-apps/waybar/files/waybar-0.15.0-add-hyprland-lua-ipc.patch163
-rw-r--r--gui-apps/waybar/waybar-0.10.4-r1.ebuild101
-rw-r--r--gui-apps/waybar/waybar-0.11.0-r1.ebuild105
-rw-r--r--gui-apps/waybar/waybar-0.11.0.ebuild101
-rw-r--r--gui-apps/waybar/waybar-0.12.0.ebuild105
-rw-r--r--gui-apps/waybar/waybar-0.14.0.ebuild121
-rw-r--r--media-libs/glew/glew-1.10.0-r101.ebuild72
-rw-r--r--media-libs/glew/glew-1.6.0-r101.ebuild71
-rw-r--r--media-video/ffmpeg/ffmpeg-9.0.2.ebuild628
-rw-r--r--net-wireless/sdrplay/sdrplay-2.13.1-r1.ebuild50
-rw-r--r--sys-block/hpssacli/hpssacli-2.40.13.0-r2.ebuild62
-rw-r--r--sys-block/hpssacli/hpssacli-3.40.3.0-r1.ebuild63
-rw-r--r--sys-devel/gcc/gcc-8.5.0-r2.ebuild25
-rw-r--r--sys-firmware/vgabios/vgabios-0.7a-r1.ebuild67
-rw-r--r--sys-firmware/vgabios/vgabios-0.7a.ebuild69
40 files changed, 2505 insertions, 1314 deletions
diff --git a/acct-user/ollama/ollama-3.ebuild b/acct-user/ollama/ollama-0.ebuild
index 5734021f3150..3ee94c300953 100644
--- a/acct-user/ollama/ollama-3.ebuild
+++ b/acct-user/ollama/ollama-0.ebuild
@@ -1,18 +1,16 @@
-# Copyright 2024-2025 Gentoo Authors
+# Copyright 2024-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=8
+EAPI=9
inherit acct-user
DESCRIPTION="A user for ollama"
-ACCT_USER_ID=-1
+ACCT_USER_ID=562
ACCT_USER_HOME=/var/lib/ollama
ACCT_USER_HOME_PERMS=0750
ACCT_USER_GROUPS=( ollama )
-KEYWORDS="~amd64"
-
IUSE="cuda"
acct-user_add_deps
diff --git a/app-emulation/wine-vanilla/wine-vanilla-11.18.ebuild b/app-emulation/wine-vanilla/wine-vanilla-11.18.ebuild
deleted file mode 100644
index f1bef564158c..000000000000
--- a/app-emulation/wine-vanilla/wine-vanilla-11.18.ebuild
+++ /dev/null
@@ -1,216 +0,0 @@
-# Copyright 2022-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit optfeature wine
-
-WINE_GECKO=2.47.4
-WINE_MONO=11.3.0
-
-if [[ ${PV} == 9999 ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git"
-else
- (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0
- SRC_URI="https://dl.winehq.org/wine/source/${WINE_SDIR}/wine-${PV}.tar.xz"
- S=${WORKDIR}/wine-${PV}
- KEYWORDS="-* ~amd64 ~arm64 ~x86"
-fi
-
-DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets"
-HOMEPAGE="
- https://www.winehq.org/
- https://gitlab.winehq.org/wine/wine/
-"
-
-LICENSE="
- LGPL-2.1+
- BSD BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff public-domain
-"
-SLOT="${PV}"
-IUSE="
- +X +alsa bluetooth cups +dbus dos ffmpeg +fontconfig +gecko gphoto2
- +gstreamer kerberos +mono netapi nls odbc opencl +opengl pcap perl
- pulseaudio samba scanner +sdl selinux smartcard +ssl +truetype udev
- usb v4l vaapi +vulkan wayland xinerama
-"
-REQUIRED_USE="
- X? ( truetype )
- bluetooth? ( dbus )
- opengl? ( || ( X wayland ) )
-"
-
-# tests are non-trivial to run, can hang easily, don't play well with
-# sandbox, and several need real opengl/vulkan or network access
-RESTRICT="test"
-
-# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
-WINE_DLOPEN_DEPEND="
- X? (
- x11-libs/libXcomposite[${WINE_USEDEP}]
- x11-libs/libXcursor[${WINE_USEDEP}]
- x11-libs/libXfixes[${WINE_USEDEP}]
- x11-libs/libXi[${WINE_USEDEP}]
- x11-libs/libXrandr[${WINE_USEDEP}]
- x11-libs/libXrender[${WINE_USEDEP}]
- x11-libs/libXxf86vm[${WINE_USEDEP}]
- xinerama? ( x11-libs/libXinerama[${WINE_USEDEP}] )
- )
- cups? ( net-print/cups[${WINE_USEDEP}] )
- dbus? ( sys-apps/dbus[${WINE_USEDEP}] )
- fontconfig? ( media-libs/fontconfig[${WINE_USEDEP}] )
- kerberos? ( virtual/krb5[${WINE_USEDEP}] )
- netapi? ( net-fs/samba[${WINE_USEDEP}] )
- odbc? ( dev-db/unixODBC[${WINE_USEDEP}] )
- opengl? ( media-libs/libglvnd[X?,${WINE_USEDEP}] )
- sdl? ( media-libs/libsdl2[haptic,joystick,${WINE_USEDEP}] )
- ssl? ( net-libs/gnutls:=[${WINE_USEDEP}] )
- truetype? ( media-libs/freetype[${WINE_USEDEP}] )
- v4l? ( media-libs/libv4l[${WINE_USEDEP}] )
- vaapi? ( media-libs/libva:=[${WINE_USEDEP}] )
- vulkan? ( media-libs/vulkan-loader[X?,wayland?,${WINE_USEDEP}] )
-"
-WINE_COMMON_DEPEND="
- ${WINE_DLOPEN_DEPEND}
- X? (
- x11-libs/libX11[${WINE_USEDEP}]
- x11-libs/libXext[${WINE_USEDEP}]
- )
- alsa? ( media-libs/alsa-lib[${WINE_USEDEP}] )
- ffmpeg? ( media-video/ffmpeg:=[${WINE_USEDEP}] )
- gphoto2? ( media-libs/libgphoto2:=[${WINE_USEDEP}] )
- gstreamer? (
- dev-libs/glib:2[${WINE_USEDEP}]
- media-libs/gst-plugins-base:1.0[${WINE_USEDEP}]
- media-libs/gstreamer:1.0[${WINE_USEDEP}]
- )
- opencl? ( virtual/opencl[${WINE_USEDEP}] )
- pcap? ( net-libs/libpcap[${WINE_USEDEP}] )
- pulseaudio? ( media-libs/libpulse[${WINE_USEDEP}] )
- scanner? ( media-gfx/sane-backends[${WINE_USEDEP}] )
- smartcard? ( sys-apps/pcsc-lite[${WINE_USEDEP}] )
- udev? ( virtual/libudev:=[${WINE_USEDEP}] )
- usb? ( dev-libs/libusb:1[${WINE_USEDEP}] )
- wayland? (
- dev-libs/wayland[${WINE_USEDEP}]
- x11-libs/libxkbcommon[${WINE_USEDEP}]
- )
-"
-RDEPEND="
- ${WINE_COMMON_DEPEND}
- app-emulation/wine-desktop-common
- dos? (
- || (
- games-emulation/dosbox
- games-emulation/dosbox-staging
- )
- )
- gecko? (
- app-emulation/wine-gecko:${WINE_GECKO}[${WINE_USEDEP}]
- wow64? ( app-emulation/wine-gecko[abi_x86_32] )
- )
- gstreamer? ( media-plugins/gst-plugins-meta:1.0[${WINE_USEDEP}] )
- mono? ( app-emulation/wine-mono:${WINE_MONO} )
- perl? (
- dev-lang/perl
- dev-perl/XML-LibXML
- )
- samba? ( net-fs/samba[winbind] )
- selinux? ( sec-policy/selinux-wine )
-"
-DEPEND="
- ${WINE_COMMON_DEPEND}
- >=sys-kernel/linux-headers-6.14
- X? ( x11-base/xorg-proto )
- bluetooth? ( net-wireless/bluez )
- opencl? ( dev-util/opencl-headers )
-"
-BDEPEND="
- sys-devel/bison
- sys-devel/flex
- virtual/pkgconfig
- amd64? ( dev-lang/nasm )
- nls? ( sys-devel/gettext )
- wayland? ( dev-util/wayland-scanner )
- x86? ( dev-lang/nasm )
-"
-
-QA_CONFIG_IMPL_DECL_SKIP=(
- __clear_cache # unused on amd64+x86 (bug #900338)
- res_getservers # false positive
-)
-QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
-# intentionally ignored: https://gitlab.winehq.org/wine/wine/-/commit/433c2f8c06
-QA_FLAGS_IGNORED="usr/lib/.*/wine/.*-unix/wine-preloader"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-7.0-noexecstack.patch
- "${FILESDIR}"/${PN}-8.13-rpath.patch
-)
-
-src_configure() {
- local wineconfargs=(
- $(use_enable gecko mshtml)
- $(use_enable mono mscoree)
- --disable-tests
-
- $(use_with X x)
- $(use_with alsa)
- --without-capi #977907
- $(use_with cups)
- $(use_with dbus)
- $(use_with ffmpeg)
- $(use_with fontconfig)
- $(use_with gphoto2 gphoto)
- $(use_with gstreamer)
- --without-hwloc # currently only used on FreeBSD
- $(use_with kerberos gssapi)
- $(use_with kerberos krb5)
- $(use_with netapi)
- $(use_with nls gettext)
- $(use_with opencl)
- $(use_with opengl)
- --without-oss # media-sound/oss is not packaged (OSSv4)
- $(use_with pcap)
- $(use_with pulseaudio pulse)
- $(use_with scanner sane)
- $(use_with sdl)
- $(use_with smartcard pcsclite)
- $(use_with ssl gnutls)
- $(use_with truetype freetype)
- $(use_with udev)
- $(use_with usb)
- $(use_with v4l v4l2)
- $(use_with vaapi va)
- $(use_with vulkan)
- $(use_with wayland)
- $(use_with xinerama)
-
- $(usev !bluetooth '
- ac_cv_header_bluetooth_bluetooth_h=no
- ac_cv_header_bluetooth_rfcomm_h=no
- ')
- $(usev !odbc ac_cv_lib_soname_odbc=)
- )
-
- wine_src_configure
-}
-
-src_install() {
- use perl || local WINE_SKIP_INSTALL=(
- ${WINE_DATADIR}/man/man1/wine{dump,maker}.1
- ${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}}
- )
-
- wine_src_install
-
- dodoc ANNOUNCE* AUTHORS README* documentation/README*
-}
-
-pkg_postinst() {
- wine_pkg_postinst
-
- optfeature "/dev/hidraw* access used for *some* controllers (e.g. DualShock4)" \
- games-util/game-device-udev-rules
-}
diff --git a/dev-cpp/glaze/files/glaze-5.2.1-unbundle-test-deps.patch b/dev-cpp/glaze/files/glaze-5.2.1-unbundle-test-deps.patch
new file mode 100644
index 000000000000..8ccf74af061f
--- /dev/null
+++ b/dev-cpp/glaze/files/glaze-5.2.1-unbundle-test-deps.patch
@@ -0,0 +1,64 @@
+diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
+index 028b3994..0b105eb2 100644
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -1,17 +1,9 @@
+ include(FetchContent)
+
+-FetchContent_Declare(
+- ut
+- GIT_REPOSITORY https://github.com/openalgz/ut
+- GIT_TAG v0.0.5
+- GIT_SHALLOW TRUE
+-)
++find_package(ut2-glaze REQUIRED)
+
+ message(STATUS "Fetching dependencies...")
+ set_directory_properties(PROPERTIES EXCLUDE_FROM_ALL TRUE)
+-set(CMAKE_SKIP_INSTALL_RULES ON CACHE BOOL "" FORCE)
+-FetchContent_MakeAvailable(ut)
+-set(CMAKE_SKIP_INSTALL_RULES OFF CACHE BOOL "" FORCE)
+ set_directory_properties(PROPERTIES EXCLUDE_FROM_ALL FALSE)
+ message(STATUS "...finished fetching dependencies.")
+
+@@ -20,7 +12,7 @@ add_code_coverage_all_targets()
+
+ add_library(glz_test_common INTERFACE)
+ target_compile_features(glz_test_common INTERFACE cxx_std_23)
+-target_link_libraries(glz_test_common INTERFACE ut::ut glaze::glaze)
++target_link_libraries(glz_test_common INTERFACE ut2-glaze::ut2-glaze glaze::glaze)
+ if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
+ target_compile_options(glz_test_common INTERFACE -fno-exceptions -fno-rtti)
+ if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
+@@ -46,7 +38,7 @@ endif()
+
+ add_library(glz_test_exceptions INTERFACE)
+ target_compile_features(glz_test_exceptions INTERFACE cxx_std_23)
+-target_link_libraries(glz_test_exceptions INTERFACE ut::ut glaze::glaze)
++target_link_libraries(glz_test_exceptions INTERFACE ut2-glaze::ut2-glaze glaze::glaze)
+ if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
+ target_compile_options(glz_test_exceptions INTERFACE)
+ target_compile_options(glz_test_exceptions INTERFACE -Wall -Wextra -pedantic)
+diff --git a/tests/asio_repe/CMakeLists.txt b/tests/asio_repe/CMakeLists.txt
+index 1518b4e5..3cc27f67 100644
+--- a/tests/asio_repe/CMakeLists.txt
++++ b/tests/asio_repe/CMakeLists.txt
+@@ -1,14 +1,9 @@
+ project(asio_repe)
+
+-FetchContent_Declare(
+- asio
+- GIT_REPOSITORY https://github.com/chriskohlhoff/asio.git
+- GIT_TAG asio-1-32-0
+- GIT_SHALLOW TRUE
+-)
+-FetchContent_MakeAvailable(asio)
++find_package(PkgConfig REQUIRED)
++pkg_check_modules(asio GLOBAL IMPORTED_TARGET REQUIRED asio)
+
+ add_executable(${PROJECT_NAME} ${PROJECT_NAME}.cpp)
+
+ target_include_directories(${PROJECT_NAME} PRIVATE include ${asio_SOURCE_DIR}/asio/include)
+-target_link_libraries(${PROJECT_NAME} PRIVATE glz_test_exceptions)
+\ No newline at end of file
++target_link_libraries(${PROJECT_NAME} PRIVATE glz_test_exceptions)
diff --git a/dev-cpp/glaze/files/glaze-7.0.2-unbundle-test-deps.patch b/dev-cpp/glaze/files/glaze-5.5.4-unbundle-test-deps.patch
index 59f1415e7fed..fdcf4618d29a 100644
--- a/dev-cpp/glaze/files/glaze-7.0.2-unbundle-test-deps.patch
+++ b/dev-cpp/glaze/files/glaze-5.5.4-unbundle-test-deps.patch
@@ -1,8 +1,5 @@
- tests/CMakeLists.txt | 14 +++-----------
- 1 file changed, 3 insertions(+), 11 deletions(-)
-
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
-index ade41281..63fed1c7 100644
+index a2988c34..04f4e7e9 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -1,17 +1,9 @@
@@ -11,7 +8,7 @@ index ade41281..63fed1c7 100644
-FetchContent_Declare(
- ut
- GIT_REPOSITORY https://github.com/openalgz/ut
-- GIT_TAG v1.1.0
+- GIT_TAG v1.0.0
- GIT_SHALLOW TRUE
-)
+find_package(ut2-glaze REQUIRED)
@@ -24,21 +21,21 @@ index ade41281..63fed1c7 100644
set_directory_properties(PROPERTIES EXCLUDE_FROM_ALL FALSE)
message(STATUS "...finished fetching dependencies.")
-@@ -76,7 +68,7 @@ add_code_coverage_all_targets()
+@@ -20,7 +12,7 @@ add_code_coverage_all_targets()
add_library(glz_test_common INTERFACE)
target_compile_features(glz_test_common INTERFACE cxx_std_23)
--target_link_libraries(glz_test_common INTERFACE ut::ut glaze::glaze glz_asio)
-+target_link_libraries(glz_test_common INTERFACE ut2-glaze::ut2-glaze glaze::glaze glz_asio)
+-target_link_libraries(glz_test_common INTERFACE ut::ut glaze::glaze)
++target_link_libraries(glz_test_common INTERFACE ut2-glaze::ut2-glaze glaze::glaze)
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
target_compile_options(glz_test_common INTERFACE -fno-exceptions -fno-rtti)
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
-@@ -102,7 +94,7 @@ endif()
+@@ -46,7 +38,7 @@ endif()
add_library(glz_test_exceptions INTERFACE)
target_compile_features(glz_test_exceptions INTERFACE cxx_std_23)
--target_link_libraries(glz_test_exceptions INTERFACE ut::ut glaze::glaze glz_asio)
-+target_link_libraries(glz_test_exceptions INTERFACE ut2-glaze::ut2-glaze glaze::glaze glz_asio)
+-target_link_libraries(glz_test_exceptions INTERFACE ut::ut glaze::glaze)
++target_link_libraries(glz_test_exceptions INTERFACE ut2-glaze::ut2-glaze glaze::glaze)
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
target_compile_options(glz_test_exceptions INTERFACE)
target_compile_options(glz_test_exceptions INTERFACE -Wall -Wextra -pedantic)
diff --git a/dev-cpp/glaze/glaze-7.0.2.ebuild b/dev-cpp/glaze/glaze-5.2.1.ebuild
index bf3255dce0da..0c21e07e7a82 100644
--- a/dev-cpp/glaze/glaze-7.0.2.ebuild
+++ b/dev-cpp/glaze/glaze-5.2.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2025-2026 Gentoo Authors
+# Copyright 2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -13,14 +13,14 @@ S="${WORKDIR}/glaze-${PV}"
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64"
+KEYWORDS="amd64"
IUSE="examples fuzzing test"
RESTRICT="!test? ( test )"
DEPEND="
test? (
dev-cpp/asio
- >=dev-cpp/eigen-3.4
+ >=dev-cpp/eigen-3.4:=
dev-cpp/ut2-glaze
)
"
diff --git a/dev-cpp/glaze/glaze-5.5.4.ebuild b/dev-cpp/glaze/glaze-5.5.4.ebuild
new file mode 100644
index 000000000000..0c21e07e7a82
--- /dev/null
+++ b/dev-cpp/glaze/glaze-5.5.4.ebuild
@@ -0,0 +1,44 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="Extremely fast, in memory, JSON and interface library for modern C++"
+HOMEPAGE="https://github.com/stephenberry/glaze"
+SRC_URI="https://github.com/stephenberry/glaze/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+S="${WORKDIR}/glaze-${PV}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="examples fuzzing test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ test? (
+ dev-cpp/asio
+ >=dev-cpp/eigen-3.4:=
+ dev-cpp/ut2-glaze
+ )
+"
+RDEPEND="${DEPEND}"
+
+# Unbundle test dependencies otherwise they are fetched from github at build time
+PATCHES=(
+ "${FILESDIR}/${P}-unbundle-test-deps.patch"
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_SKIP_INSTALL_RULES=OFF
+ -Dglaze_DEVELOPER_MODE=ON
+ -Dglaze_ENABLE_FUZZING=$(usex fuzzing)
+ -Dglaze_BUILD_EXAMPLES=$(usex examples)
+ -DBUILD_TESTING=$(usex test)
+ )
+
+ cmake_src_configure
+}
diff --git a/dev-cpp/glaze/glaze-8.1.0.ebuild b/dev-cpp/glaze/glaze-8.1.0.ebuild
new file mode 100644
index 000000000000..c87b505c179c
--- /dev/null
+++ b/dev-cpp/glaze/glaze-8.1.0.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="Extremely fast, in memory, JSON and interface library for modern C++"
+HOMEPAGE="https://github.com/stephenberry/glaze"
+SRC_URI="
+ https://github.com/stephenberry/glaze/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
+"
+
+S="${WORKDIR}/glaze-${PV}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="examples fuzzing test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ test? (
+ dev-cpp/asio
+ >=dev-cpp/eigen-3.4:=
+ >=dev-cpp/ut2-glaze-1.2.1
+ )
+"
+RDEPEND="${DEPEND}"
+
+src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_SKIP_INSTALL_RULES=OFF
+ -Dglaze_DEVELOPER_MODE=ON
+ -Dglaze_ENABLE_FUZZING=$(usex fuzzing)
+ -Dglaze_BUILD_EXAMPLES=$(usex examples)
+ -DBUILD_TESTING=$(usex test)
+ )
+
+ cmake_src_configure
+}
diff --git a/dev-lang/deno-bin/deno-bin-2.9.7.ebuild b/dev-lang/deno-bin/deno-bin-2.9.4.ebuild
index 5baf84ee6900..5baf84ee6900 100644
--- a/dev-lang/deno-bin/deno-bin-2.9.7.ebuild
+++ b/dev-lang/deno-bin/deno-bin-2.9.4.ebuild
diff --git a/dev-lang/deno-bin/deno-bin-2.9.5.ebuild b/dev-lang/deno-bin/deno-bin-2.9.5.ebuild
new file mode 100644
index 000000000000..5baf84ee6900
--- /dev/null
+++ b/dev-lang/deno-bin/deno-bin-2.9.5.ebuild
@@ -0,0 +1,63 @@
+# Copyright 2025-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=9
+
+inherit shell-completion toolchain-funcs
+
+DESCRIPTION="Modern runtime for JavaScript and TypeScript"
+HOMEPAGE="https://deno.com/"
+SRC_URI="
+ amd64? (
+ https://github.com/denoland/deno/releases/download/v${PV}/deno-x86_64-unknown-linux-gnu.zip
+ -> ${P}-amd64.zip
+ )
+ arm64? (
+ https://github.com/denoland/deno/releases/download/v${PV}/deno-aarch64-unknown-linux-gnu.zip
+ -> ${P}-arm64.zip
+ )
+"
+S=${WORKDIR}
+
+LICENSE="MIT"
+LICENSE+="
+ Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD CC0-1.0 ISC MIT
+ MPL-2.0 openssl Unicode-3.0 Unicode-DFS-2016 ZLIB
+" # crates
+SLOT="0"
+KEYWORDS="-* ~amd64 ~arm64"
+
+RDEPEND="
+ || (
+ llvm-runtimes/libgcc
+ sys-devel/gcc:*
+ )
+ sys-libs/glibc
+"
+BDEPEND="
+ app-arch/unzip
+"
+
+QA_PREBUILT="usr/bin/deno"
+
+src_compile() {
+ if ! tc-is-cross-compiler; then
+ ./deno completions bash > "${T}"/deno || die
+ ./deno completions fish > "${T}"/deno.fish || die
+ ./deno completions zsh > "${T}"/_deno || die
+ else
+ ewarn "shell completion files were skipped due to cross-compilation"
+ fi
+}
+
+src_install() {
+ dobin deno
+
+ newenvd - 50deno <<<"DENO_NO_UPDATE_CHECK=1"
+
+ if ! tc-is-cross-compiler; then
+ dobashcomp "${T}"/deno
+ dofishcomp "${T}"/deno.fish
+ dozshcomp "${T}"/_deno
+ fi
+}
diff --git a/dev-libs/openssl-compat/files/gentoo.config-0.9.8 b/dev-libs/openssl-compat/files/gentoo.config-1.0.2
index e74e87ee8aba..6d4cd3112618 100644
--- a/dev-libs/openssl-compat/files/gentoo.config-0.9.8
+++ b/dev-libs/openssl-compat/files/gentoo.config-1.0.2
@@ -13,8 +13,9 @@
if [[ $1 == "test" ]] ; then
for c in \
"arm-gentoo-linux-uclibc |linux-generic32 -DL_ENDIAN" \
- "armv5b-linux-gnu |linux-generic32 -DB_ENDIAN" \
+ "armv5b-linux-gnu |linux-armv4 -DB_ENDIAN" \
"x86_64-pc-linux-gnu |linux-x86_64" \
+ "alpha-linux-gnu |linux-alpha-gcc" \
"alphaev56-unknown-linux-gnu |linux-alpha+bwx-gcc" \
"i686-pc-linux-gnu |linux-elf" \
"whatever-gentoo-freebsdX.Y |BSD-generic32" \
@@ -25,12 +26,15 @@ if [[ $1 == "test" ]] ; then
"hppa64-aldsF-linux-gnu5.3 |linux-generic32 -DB_ENDIAN" \
"powerpc-gentOO-linux-uclibc |linux-ppc" \
"powerpc64-unk-linux-gnu |linux-ppc64" \
+ "powerpc64le-linux-gnu |linux-ppc64le" \
"x86_64-apple-darwinX |darwin64-x86_64-cc" \
"powerpc64-apple-darwinX |darwin64-ppc-cc" \
"i686-apple-darwinX |darwin-i386-cc" \
"i386-apple-darwinX |darwin-i386-cc" \
"powerpc-apple-darwinX |darwin-ppc-cc" \
"i586-pc-winnt |winnt-parity" \
+ "s390-ibm-linux-gnu |linux-generic32 -DB_ENDIAN" \
+ "s390x-linux-gnu |linux64-s390x" \
;do
CHOST=${c/|*}
ret_want=${c/*|}
@@ -51,14 +55,17 @@ fi
# Detect the operating system
case ${CHOST} in
- *-aix*) system="aix";;
- *-darwin*) system="darwin";;
- *-freebsd*) system="BSD";;
- *-hpux*) system="hpux";;
- *-linux*) system="linux";;
- *-solaris*) system="solaris";;
- *-winnt*) system="winnt";;
- *) exit 0;;
+ *-aix*) system="aix";;
+ *-darwin*) system="darwin";;
+ *-freebsd*) system="BSD";;
+ *-hpux*) system="hpux";;
+ *-linux*) system="linux";;
+ *-solaris*) system="solaris";;
+ *-winnt*) system="winnt";;
+ x86_64-*-mingw*) system="mingw64";;
+ *mingw*) system="mingw";;
+ *-gnu*) system="hurd";;
+ *) exit 0;;
esac
@@ -74,29 +81,44 @@ machine=""
chost_machine=${CHOST%%-*}
case ${system} in
linux)
- case ${chost_machine} in
- alphaev56*) machine=alpha+bwx-${compiler};;
+ case ${chost_machine}:${ABI} in
+ aarch64*be*) machine="aarch64 -DB_ENDIAN";;
+ aarch64*) machine="aarch64 -DL_ENDIAN";;
+ alphaev56*|\
alphaev[678]*)machine=alpha+bwx-${compiler};;
alpha*) machine=alpha-${compiler};;
+ armv[4-9]*b*) machine="armv4 -DB_ENDIAN";;
+ armv[4-9]*) machine="armv4 -DL_ENDIAN";;
arm*b*) machine="generic32 -DB_ENDIAN";;
arm*) machine="generic32 -DL_ENDIAN";;
+ avr*) machine="generic32 -DL_ENDIAN";;
+ bfin*) machine="generic32 -DL_ENDIAN";;
# hppa64*) machine=parisc64;;
hppa*) machine="generic32 -DB_ENDIAN";;
- i[0-9]86*) machine=elf;;
+ i[0-9]86*|\
+ x86_64*:x86) machine=elf;;
ia64*) machine=ia64;;
m68*) machine="generic32 -DB_ENDIAN";;
mips*el*) machine="generic32 -DL_ENDIAN";;
mips*) machine="generic32 -DB_ENDIAN";;
+ powerpc64*le*)machine=ppc64le;;
powerpc64*) machine=ppc64;;
+ powerpc*le*) machine="generic32 -DL_ENDIAN";;
powerpc*) machine=ppc;;
# sh64*) machine=elf;;
sh*b*) machine="generic32 -DB_ENDIAN";;
sh*) machine="generic32 -DL_ENDIAN";;
+ # TODO: Might want to do -mcpu probing like glibc to determine a
+ # better default for sparc-linux-gnu targets. This logic will
+ # break v7 and older systems when they use it.
sparc*v7*) machine="generic32 -DB_ENDIAN";;
- sparc64*) machine=sparcv9;;
+ sparc64*) machine=sparcv9 system=linux64;;
+ sparc*v9*) machine=sparcv9;;
+ sparc*v8*) machine=sparcv8;;
sparc*) machine=sparcv8;;
- s390x*) machine="generic64 -DB_ENDIAN";;
+ s390x*) machine=s390x system=linux64;;
s390*) machine="generic32 -DB_ENDIAN";;
+ x86_64*:x32) machine=x32;;
x86_64*) machine=x86_64;;
esac
;;
@@ -137,6 +159,17 @@ solaris)
winnt)
machine=parity
;;
+mingw*)
+ # special case ... no xxx-yyy style name
+ echo ${system}
+ ;;
+hurd)
+ case ${chost_machine} in
+ i[0-9]86*) machine=x86;;
+ x86_64*) machine=x86_64;;
+ *) machine=generic32;;
+ esac
+ ;;
esac
diff --git a/dev-libs/openssl-compat/files/gentoo.config-1.0.4 b/dev-libs/openssl-compat/files/gentoo.config-1.0.4
new file mode 100644
index 000000000000..735ab493c577
--- /dev/null
+++ b/dev-libs/openssl-compat/files/gentoo.config-1.0.4
@@ -0,0 +1,184 @@
+#!/usr/bin/env bash
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+#
+# Openssl doesn't play along nicely with cross-compiling
+# like autotools based projects, so let's teach it new tricks.
+#
+# Review the bundled 'config' script to see why kind of targets
+# we can pass to the 'Configure' script.
+
+
+# Testing routines
+if [[ $1 == "test" ]] ; then
+ for c in \
+ "arm-gentoo-linux-uclibc |linux-generic32 -DL_ENDIAN" \
+ "armv5b-linux-gnu |linux-armv4 -DB_ENDIAN" \
+ "x86_64-pc-linux-gnu |linux-x86_64" \
+ "alpha-linux-gnu |linux-alpha-gcc" \
+ "alphaev56-unknown-linux-gnu |linux-alpha+bwx-gcc" \
+ "i686-pc-linux-gnu |linux-elf" \
+ "whatever-gentoo-freebsdX.Y |BSD-generic32" \
+ "i686-gentoo-freebsdX.Y |BSD-x86-elf" \
+ "sparc64-alpha-freebsdX.Y |BSD-sparc64" \
+ "ia64-gentoo-freebsd5.99234 |BSD-ia64" \
+ "x86_64-gentoo-freebsdX.Y |BSD-x86_64" \
+ "hppa64-aldsF-linux-gnu5.3 |linux-generic32 -DB_ENDIAN" \
+ "powerpc-gentOO-linux-uclibc |linux-ppc" \
+ "powerpc64-unk-linux-gnu |linux-ppc64" \
+ "powerpc64le-linux-gnu |linux-ppc64le" \
+ "x86_64-apple-darwinX |darwin64-x86_64-cc" \
+ "powerpc64-apple-darwinX |darwin64-ppc-cc" \
+ "i686-apple-darwinX |darwin-i386-cc" \
+ "i386-apple-darwinX |darwin-i386-cc" \
+ "powerpc-apple-darwinX |darwin-ppc-cc" \
+ "i586-pc-winnt |winnt-parity" \
+ "s390-ibm-linux-gnu |linux-generic32 -DB_ENDIAN" \
+ "s390x-linux-gnu |linux64-s390x" \
+ ;do
+ CHOST=${c/|*}
+ ret_want=${c/*|}
+ ret_got=$(CHOST=${CHOST} "$0")
+
+ if [[ ${ret_want} == "${ret_got}" ]] ; then
+ echo "PASS: ${CHOST}"
+ else
+ echo "FAIL: ${CHOST}"
+ echo -e "\twanted: ${ret_want}"
+ echo -e "\twe got: ${ret_got}"
+ fi
+ done
+ exit 0
+fi
+[[ -z ${CHOST} && -n $1 ]] && CHOST=$1
+
+
+# Detect the operating system
+case ${CHOST} in
+ *-aix*) system="aix";;
+ *-darwin*) system="darwin";;
+ *-freebsd*) system="BSD";;
+ *-hpux*) system="hpux";;
+ *-linux*) system="linux";;
+ *-solaris*) system="solaris";;
+ *-winnt*) system="winnt";;
+ x86_64-*-mingw*) system="mingw64";;
+ *mingw*) system="mingw";;
+ *-gnu*) system="hurd";;
+ *) exit 0;;
+esac
+
+
+# Compiler munging
+compiler="gcc"
+if [[ ${CC} == "ccc" ]] ; then
+ compiler=${CC}
+fi
+
+
+# Detect target arch
+machine=""
+chost_machine=${CHOST%%-*}
+case ${system} in
+linux)
+ case ${chost_machine}:${ABI} in
+ aarch64*be*) machine="aarch64 -DB_ENDIAN";;
+ aarch64*) machine="aarch64 -DL_ENDIAN";;
+ alphaev56*|\
+ alphaev[678]*)machine=alpha+bwx-${compiler};;
+ alpha*) machine=alpha-${compiler};;
+ armv[4-9]*b*) machine="armv4 -DB_ENDIAN";;
+ armv[4-9]*) machine="armv4 -DL_ENDIAN";;
+ arm*b*) machine="generic32 -DB_ENDIAN";;
+ arm*) machine="generic32 -DL_ENDIAN";;
+ avr*) machine="generic32 -DL_ENDIAN";;
+ bfin*) machine="generic32 -DL_ENDIAN";;
+ # hppa64*) machine=parisc64;;
+ hppa*) machine="generic32 -DB_ENDIAN";;
+ i[0-9]86*|\
+ x86_64*:x86) machine=x86;;
+ ia64*) machine=ia64;;
+ loongarch64*) machine="loongarch64 -DL_ENDIAN" system=linux64;;
+ m68*) machine="latomic -DB_ENDIAN";;
+ mips*el*:o32) machine="mips32 -DL_ENDIAN";;
+ mips*:o32) machine="mips32 -DB_ENDIAN";;
+ mips*el*:n32) machine="mips64 -DL_ENDIAN";;
+ mips*:n32) machine="mips64 -DB_ENDIAN";;
+ mips*el*:n64) machine="mips64 -DL_ENDIAN" system=linux64;;
+ mips*:n64) machine="mips64 -DB_ENDIAN" system=linux64;;
+ powerpc64*le*)machine=ppc64le;;
+ powerpc64*) machine=ppc64;;
+ powerpc*le*) machine="generic32 -DL_ENDIAN";;
+ powerpc*) machine=ppc;;
+ riscv32*) machine="generic32 -DL_ENDIAN";;
+ riscv64*) machine="riscv64 -DL_ENDIAN" system=linux64;;
+ # sh64*) machine=elf;;
+ sh*b*) machine="generic32 -DB_ENDIAN";;
+ sh*) machine="generic32 -DL_ENDIAN";;
+ # TODO: Might want to do -mcpu probing like glibc to determine a
+ # better default for sparc-linux-gnu targets. This logic will
+ # break v7 and older systems when they use it.
+ sparc*v7*) machine="generic32 -DB_ENDIAN";;
+ sparc64*) machine=sparcv9 system=linux64;;
+ sparc*v9*) machine=sparcv9;;
+ sparc*v8*) machine=sparcv8;;
+ sparc*) machine=sparcv8;;
+ s390x*) machine=s390x system=linux64;;
+ s390*) machine="generic32 -DB_ENDIAN";;
+ x86_64*:x32) machine=x32;;
+ x86_64*) machine=x86_64;;
+ esac
+ ;;
+BSD)
+ case ${chost_machine} in
+ alpha*) machine=generic64;;
+ i[6-9]86*) machine=x86-elf;;
+ ia64*) machine=ia64;;
+ sparc64*) machine=sparc64;;
+ x86_64*) machine=x86_64;;
+ *) machine=generic32;;
+ esac
+ ;;
+aix)
+ machine=${compiler}
+ ;;
+darwin)
+ case ${chost_machine} in
+ powerpc64) machine=ppc-cc; system=${system}64;;
+ powerpc) machine=ppc-cc;;
+ i?86*) machine=i386-cc;;
+ x86_64) machine=x86_64-cc; system=${system}64;;
+ esac
+ ;;
+hpux)
+ case ${chost_machine} in
+ ia64) machine=ia64-${compiler} ;;
+ esac
+ ;;
+solaris)
+ case ${chost_machine} in
+ i386) machine=x86-${compiler} ;;
+ x86_64*) machine=x86_64-${compiler}; system=${system}64;;
+ sparcv9*) machine=sparcv9-${compiler}; system=${system}64;;
+ sparc*) machine=sparcv8-${compiler};;
+ esac
+ ;;
+winnt)
+ machine=parity
+ ;;
+mingw*)
+ # special case ... no xxx-yyy style name
+ echo ${system}
+ ;;
+hurd)
+ case ${chost_machine} in
+ i[0-9]86*) machine=x86;;
+ x86_64*) machine=x86_64;;
+ *) machine=generic32;;
+ esac
+ ;;
+esac
+
+
+# If we have something, show it
+[[ -n ${machine} ]] && echo ${system}-${machine}
diff --git a/dev-libs/openssl-compat/files/openssl-0.9.8e-bsd-sparc64.patch b/dev-libs/openssl-compat/files/openssl-0.9.8e-bsd-sparc64.patch
deleted file mode 100644
index a798164a9069..000000000000
--- a/dev-libs/openssl-compat/files/openssl-0.9.8e-bsd-sparc64.patch
+++ /dev/null
@@ -1,25 +0,0 @@
---- a/Configure
-+++ b/Configure
-@@ -365,7 +365,7 @@
- # -DMD32_REG_T=int doesn't actually belong in sparc64 target, it
- # simply *happens* to work around a compiler bug in gcc 3.3.3,
- # triggered by RIPEMD160 code.
--"BSD-sparc64", "gcc:-DB_ENDIAN -DTERMIOS -O3 -DMD32_REG_T=int -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC2_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC2 BF_PTR:::des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"BSD-sparc64", "gcc:-DB_ENDIAN -DTERMIOS -O3 -DMD32_REG_T=int -Wall::${BSDthreads}:ULTRASPARC::SIXTY_FOUR_BIT_LONG RC2_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC2 BF_PTR:::des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
- "BSD-ia64", "gcc:-DL_ENDIAN -DTERMIOS -O3 -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${ia64_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
- "BSD-x86_64", "gcc:-DL_ENDIAN -DTERMIOS -O3 -DMD32_REG_T=int -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-
-
-the -B flag is a no-op nowadays
-
---- a/crypto/des/Makefile
-+++ b/crypto/des/Makefile
-@@ -62,7 +62,7 @@
- $(CC) $(CFLAGS) -o des des.o cbc3_enc.o $(LIB)
-
- des_enc-sparc.S: asm/des_enc.m4
-- m4 -B 8192 asm/des_enc.m4 > des_enc-sparc.S
-+ m4 asm/des_enc.m4 > des_enc-sparc.S
-
- # ELF
- dx86-elf.s: asm/des-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
diff --git a/dev-libs/openssl-compat/files/openssl-0.9.8h-ldflags.patch b/dev-libs/openssl-compat/files/openssl-0.9.8h-ldflags.patch
deleted file mode 100644
index 64cc7bde0504..000000000000
--- a/dev-libs/openssl-compat/files/openssl-0.9.8h-ldflags.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-http://bugs.gentoo.org/181438
-http://bugs.gentoo.org/327421
-https://rt.openssl.org/Ticket/Display.html?id=3332&user=guest&pass=guest
-
-make sure we respect LDFLAGS
-
-also make sure we don't add useless -rpath flags to the system libdir
-
---- openssl-0.9.8h/Makefile.org
-+++ openssl-0.9.8h/Makefile.org
-@@ -180,6 +181,7 @@
- MAKEDEPEND='$$$${TOP}/util/domd $$$${TOP} -MD ${MAKEDEPPROG}' \
- DEPFLAG='-DOPENSSL_NO_DEPRECATED ${DEPFLAG}' \
- MAKEDEPPROG='${MAKEDEPPROG}' \
-+ LDFLAGS='${LDFLAGS}' \
- SHARED_LDFLAGS='${SHARED_LDFLAGS}' \
- KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}' \
- EXE_EXT='${EXE_EXT}' SHARED_LIBS='${SHARED_LIBS}' \
---- openssl-0.9.8h/Makefile.shared
-+++ openssl-0.9.8h/Makefile.shared
-@@ -153,7 +153,7 @@
- NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \
- SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,-soname=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"
-
--DO_GNU_APP=LDFLAGS="$(CFLAGS) -Wl,-rpath,$(LIBRPATH)"
-+DO_GNU_APP=LDFLAGS="$(LDFLAGS) $(CFLAGS)"
-
- #This is rather special. It's a special target with which one can link
- #applications without bothering with any features that have anything to
diff --git a/dev-libs/openssl-compat/files/openssl-0.9.8m-binutils.patch b/dev-libs/openssl-compat/files/openssl-0.9.8m-binutils.patch
deleted file mode 100644
index 9fa79b9a65fb..000000000000
--- a/dev-libs/openssl-compat/files/openssl-0.9.8m-binutils.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-http://bugs.gentoo.org/289130
-
-Ripped from Fedora
-
---- openssl-1.0.0-beta4/crypto/sha/asm/sha1-x86_64.pl.binutils 2009-11-12 15:17:29.000000000 +0100
-+++ openssl-1.0.0-beta4/crypto/sha/asm/sha1-x86_64.pl 2009-11-12 17:24:18.000000000 +0100
-@@ -150,7 +150,7 @@ ___
- sub BODY_20_39 {
- my ($i,$a,$b,$c,$d,$e,$f)=@_;
- my $j=$i+1;
--my $K=($i<40)?0x6ed9eba1:0xca62c1d6;
-+my $K=($i<40)?0x6ed9eba1:-0x359d3e2a;
- $code.=<<___ if ($i<79);
- lea $K($xi,$e),$f
- mov `4*($j%16)`(%rsp),$xi
-@@ -187,7 +187,7 @@ sub BODY_40_59 {
- my ($i,$a,$b,$c,$d,$e,$f)=@_;
- my $j=$i+1;
- $code.=<<___;
-- lea 0x8f1bbcdc($xi,$e),$f
-+ lea -0x70e44324($xi,$e),$f
- mov `4*($j%16)`(%rsp),$xi
- mov $b,$t0
- mov $b,$t1
diff --git a/dev-libs/openssl-compat/files/openssl-0.9.8z_p8-perl-5.26.patch b/dev-libs/openssl-compat/files/openssl-0.9.8z_p8-perl-5.26.patch
deleted file mode 100644
index c932b820425c..000000000000
--- a/dev-libs/openssl-compat/files/openssl-0.9.8z_p8-perl-5.26.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-https://bugs.gentoo.org/639876
-
---- a/crypto/des/asm/des-586.pl
-+++ b/crypto/des/asm/des-586.pl
-@@ -4,7 +4,7 @@
- # Svend Olaf Mikkelsen <svolaf@inet.uni-c.dk>
- #
-
--push(@INC,"perlasm","../../perlasm");
-+push(@INC,".","perlasm","../../perlasm");
- require "x86asm.pl";
- require "cbc.pl";
- require "desboth.pl";
diff --git a/dev-libs/openssl-compat/files/openssl-0.9.8z_p8-termios.patch b/dev-libs/openssl-compat/files/openssl-0.9.8z_p8-termios.patch
deleted file mode 100644
index 5beb692a5b94..000000000000
--- a/dev-libs/openssl-compat/files/openssl-0.9.8z_p8-termios.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/crypto/ui/ui_openssl.c
-+++ b/crypto/ui/ui_openssl.c
-@@ -186,7 +186,7 @@
- # undef SGTTY
- #endif
-
--#if defined(linux) && !defined(TERMIO)
-+#if defined(linux) && !defined(TERMIO) && !defined(TERMIOS)
- # undef TERMIOS
- # define TERMIO
- # undef SGTTY
diff --git a/dev-libs/openssl-compat/files/openssl-1.1.0j-parallel_install_fix.patch b/dev-libs/openssl-compat/files/openssl-1.1.0j-parallel_install_fix.patch
new file mode 100644
index 000000000000..c837e208cf6a
--- /dev/null
+++ b/dev-libs/openssl-compat/files/openssl-1.1.0j-parallel_install_fix.patch
@@ -0,0 +1,21 @@
+https://github.com/openssl/openssl/issues/7679
+
+--- a/Configurations/unix-Makefile.tmpl
++++ b/Configurations/unix-Makefile.tmpl
+@@ -77,8 +77,14 @@
+ # to. You're welcome.
+ sub dependmagic {
+ my $target = shift;
+-
+- return "$target: build_generated\n\t\$(MAKE) depend && \$(MAKE) _$target\n_$target";
++ my $magic = <<"_____";
++$target: build_generated depend
++ \$(MAKE) _$target
++_$target
++_____
++ # Remove line ending
++ $magic =~ s|\R$||;
++ return $magic;
+ }
+ '';
+ -}
diff --git a/dev-libs/openssl-compat/files/openssl-1.1.1i-riscv32.patch b/dev-libs/openssl-compat/files/openssl-1.1.1i-riscv32.patch
new file mode 100644
index 000000000000..c94b0323eb43
--- /dev/null
+++ b/dev-libs/openssl-compat/files/openssl-1.1.1i-riscv32.patch
@@ -0,0 +1,61 @@
+From 5b5e2985f355c8e99c196d9ce5d02c15bebadfbc Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair.francis@wdc.com>
+Date: Thu, 29 Aug 2019 13:56:21 -0700
+Subject: [PATCH] Add support for io_pgetevents_time64 syscall
+
+32-bit architectures that are y2038 safe don't include syscalls that use
+32-bit time_t. Instead these architectures have suffixed syscalls that
+always use a 64-bit time_t. In the case of the io_getevents syscall the
+syscall has been replaced with the io_pgetevents_time64 syscall instead.
+
+This patch changes the io_getevents() function to use the correct
+syscall based on the avaliable syscalls and the time_t size. We will
+only use the new 64-bit time_t syscall if the architecture is using a
+64-bit time_t. This is to avoid having to deal with 32/64-bit
+conversions and relying on a 64-bit timespec struct on 32-bit time_t
+platforms. As of Linux 5.3 there are no 32-bit time_t architectures
+without __NR_io_getevents. In the future if a 32-bit time_t architecture
+wants to use the 64-bit syscalls we can handle the conversion.
+
+This fixes build failures on 32-bit RISC-V.
+
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+
+Reviewed-by: Richard Levitte <levitte@openssl.org>
+Reviewed-by: Paul Dale <paul.dale@oracle.com>
+(Merged from https://github.com/openssl/openssl/pull/9819)
+---
+ engines/e_afalg.c | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+diff --git a/engines/e_afalg.c b/engines/e_afalg.c
+index dacbe358cb..99516cb1bb 100644
+--- a/engines/e_afalg.c
++++ b/engines/e_afalg.c
+@@ -125,7 +125,23 @@ static ossl_inline int io_getevents(aio_context_t ctx, long min, long max,
+ struct io_event *events,
+ struct timespec *timeout)
+ {
++#if defined(__NR_io_getevents)
+ return syscall(__NR_io_getevents, ctx, min, max, events, timeout);
++#elif defined(__NR_io_pgetevents_time64)
++ /* Let's only support the 64 suffix syscalls for 64-bit time_t.
++ * This simplifies the code for us as we don't need to use a 64-bit
++ * version of timespec with a 32-bit time_t and handle converting
++ * between 64-bit and 32-bit times and check for overflows.
++ */
++ if (sizeof(timeout->tv_sec) == 8)
++ return syscall(__NR_io_pgetevents_time64, ctx, min, max, events, timeout, NULL);
++ else {
++ errno = ENOSYS;
++ return -1;
++ }
++#else
++# error "We require either the io_getevents syscall or __NR_io_pgetevents_time64."
++#endif
+ }
+
+ static void afalg_waitfd_cleanup(ASYNC_WAIT_CTX *ctx, const void *key,
+--
+2.26.2
+
diff --git a/dev-libs/openssl-compat/openssl-compat-0.9.8z_p8-r3.ebuild b/dev-libs/openssl-compat/openssl-compat-0.9.8z_p8-r3.ebuild
deleted file mode 100644
index 4f7b116337d8..000000000000
--- a/dev-libs/openssl-compat/openssl-compat-0.9.8z_p8-r3.ebuild
+++ /dev/null
@@ -1,172 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# this ebuild is only for the libcrypto.so.0.9.8 and libssl.so.0.9.8 SONAME for ABI compat
-
-EAPI="8"
-
-inherit flag-o-matic toolchain-funcs multilib-minimal
-
-#PLEVEL=$(printf "\\$(printf '%03o' $((${PV##*_p} + 96)))")
-PLEVEL='h' # _p8 -> tr '[1-9]' '[a-i]' -> 'h'
-MY_PV=${PV/_p*/${PLEVEL}}
-MY_P=openssl-${MY_PV}
-DESCRIPTION="Toolkit for SSL v2/v3 and TLS v1"
-HOMEPAGE="https://www.openssl.org/"
-SRC_URI="mirror://openssl/source/${MY_P}.tar.gz"
-S="${WORKDIR}/${MY_P}"
-
-LICENSE="openssl"
-SLOT="0.9.8"
-KEYWORDS="~amd64 ~x86"
-IUSE="bindist gmp kerberos cpu_flags_x86_sse2 test tls-compression"
-RESTRICT="!bindist? ( bindist )
- test"
-
-RDEPEND="
- gmp? ( >=dev-libs/gmp-5.1.3-r1[${MULTILIB_USEDEP}] )
- tls-compression? ( virtual/zlib:=[${MULTILIB_USEDEP}] )
- kerberos? ( >=app-crypt/mit-krb5-1.11.4[${MULTILIB_USEDEP}] )
-"
-DEPEND="
- ${RDEPEND}
-"
-BDEPEND="
- >=dev-lang/perl-5
- test? (
- sys-apps/diffutils
- sys-devel/bc
- )
-"
-
-# Do not install any docs
-DOCS=()
-
-PATCHES=(
- "${FILESDIR}"/openssl-0.9.8e-bsd-sparc64.patch
- "${FILESDIR}"/openssl-0.9.8h-ldflags.patch #181438
- "${FILESDIR}"/openssl-0.9.8m-binutils.patch #289130
- "${FILESDIR}"/openssl-0.9.8z_p8-perl-5.26.patch
- "${FILESDIR}"/openssl-0.9.8z_p8-termios.patch
-)
-
-src_prepare() {
- default
-
- # disable fips in the build
- # make sure the man pages are suffixed #302165
- # don't bother building man pages if they're disabled
- sed -i \
- -e '/DIRS/s: fips : :g' \
- -e '/^MANSUFFIX/s:=.*:=ssl:' \
- -e '/^MAKEDEPPROG/s:=.*:=$(CC):' \
- -e $(has noman FEATURES \
- && echo '/^install:/s:install_docs::' \
- || echo '/^MANDIR=/s:=.*:=/usr/share/man:') \
- Makefile{,.org} \
- || die
- # show the actual commands in the log
- sed -i '/^SET_X/s:=.*:=set -x:' Makefile.shared || die
- # update the enginedir path.
- # punt broken config we don't care about as it fails sanity check.
- # force TERMIOS because glibc no longer has TERMIO.
- sed -i \
- -e '/^"debug-ben-debug-64"/d' \
- -e "/foo.*engines/s|/lib/engines|/$(get_libdir)/engines|" \
- -e 's/-DTERMIO\b/-DTERMIOS/g' \
- Configure || die
-
- # since we're forcing $(CC) as makedep anyway, just fix
- # the conditional as always-on
- # helps clang (#417795), and versioned gcc (#499818)
- sed -i 's/expr.*MAKEDEPEND.*;/true;/' util/domd || die
-
- # quiet out unknown driver argument warnings since openssl
- # doesn't have well-split CFLAGS and we're making it even worse
- # and 'make depend' uses -Werror for added fun (#417795 again)
- [[ ${CC} == *clang* ]] && append-flags -Qunused-arguments
-
- # allow openssl to be cross-compiled
- cp "${FILESDIR}"/gentoo.config-0.9.8 gentoo.config || die "cp cross-compile failed"
- chmod a+rx gentoo.config || die
-
- append-flags -fno-strict-aliasing
- append-flags -Wa,--noexecstack
-
- sed -i '1s,^:$,#!/usr/bin/perl,' Configure || die #141906
- sed -i '/^"debug-bodo/d' Configure || die # 0.9.8za shipped broken
- ./config --test-sanity || die "I AM NOT SANE"
-
- multilib_copy_sources
-}
-
-multilib_src_configure() {
- unset APPS #197996
- unset SCRIPTS #312551
-
- tc-export CC AR RANLIB
-
- # Clean out patent-or-otherwise-encumbered code
- # Camellia: Royalty Free https://en.wikipedia.org/wiki/Camellia_(cipher)
- # IDEA: Expired https://en.wikipedia.org/wiki/International_Data_Encryption_Algorithm
- # EC: ????????? ??/??/2015 https://en.wikipedia.org/wiki/Elliptic_Curve_Cryptography
- # MDC2: Expired https://en.wikipedia.org/wiki/MDC-2
- # RC5: 5,724,428 03/03/2015 https://en.wikipedia.org/wiki/RC5
-
- use_ssl() { use $1 && echo "enable-${2:-$1} ${*:3}" || echo "no-${2:-$1}" ; }
- echoit() { echo "$@" ; "$@" ; }
-
- local krb5=$(has_version app-crypt/mit-krb5 && echo "MIT" || echo "Heimdal")
-
- local sslout=$(./gentoo.config)
- einfo "Use configuration ${sslout:-(openssl knows best)}"
- local config="Configure"
- [[ -z ${sslout} ]] && config="config"
-
- echoit \
- ./${config} \
- ${sslout} \
- $(use cpu_flags_x86_sse2 || echo "no-sse2") \
- enable-camellia \
- $(use_ssl !bindist ec) \
- enable-idea \
- enable-mdc2 \
- $(use_ssl !bindist rc5) \
- enable-tlsext \
- $(use_ssl gmp gmp -lgmp) \
- $(use_ssl kerberos krb5 --with-krb5-flavor=${krb5}) \
- $(use_ssl tls-compression zlib) \
- --prefix=/usr \
- --openssldir=/etc/ssl \
- shared threads \
- || die "Configure failed"
-
- # Clean out hardcoded flags that openssl uses
- local CFLAG=$(grep ^CFLAG= Makefile | LC_ALL=C sed \
- -e 's:^CFLAG=::' \
- -e 's:-fomit-frame-pointer ::g' \
- -e 's:-O[0-9] ::g' \
- -e 's:-march=[-a-z0-9]* ::g' \
- -e 's:-mcpu=[-a-z0-9]* ::g' \
- -e 's:-m[a-z0-9]* ::g' \
- )
- sed -i \
- -e "/^LIBDIR=/s|=.*|=$(get_libdir)|" \
- -e "/^CFLAG/s|=.*|=${CFLAG} ${CFLAGS}|" \
- -e "/^SHARED_LDFLAGS=/s|$| ${LDFLAGS}|" \
- Makefile || die
-}
-
-multilib_src_compile() {
- # depend is needed to use $confopts
- emake -j1 depend
- emake -j1 build_libs
-}
-
-multilib_src_test() {
- emake -j1 test
-}
-
-multilib_src_install() {
- dolib.so lib{crypto,ssl}.so.0.9.8
-}
diff --git a/dev-libs/openssl-compat/openssl-compat-1.0.2u-r2.ebuild b/dev-libs/openssl-compat/openssl-compat-1.0.2u-r2.ebuild
new file mode 100644
index 000000000000..10f9e4f8bcc3
--- /dev/null
+++ b/dev-libs/openssl-compat/openssl-compat-1.0.2u-r2.ebuild
@@ -0,0 +1,239 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+inherit flag-o-matic toolchain-funcs multilib-minimal
+
+# openssl-1.0.2-patches-1.6 contain additional CVE patches
+# which got fixed with this release.
+# Please use 1.7 version number when rolling a new tarball!
+PATCH_SET="openssl-1.0.2-patches-1.5"
+
+MY_P=openssl-${PV/_/-}
+
+# This patch set is based on the following files from Fedora 25,
+# see https://src.fedoraproject.org/rpms/openssl/blob/25/f/openssl.spec
+# for more details:
+# - hobble-openssl (SOURCE1)
+# - ec_curve.c (SOURCE12) -- MODIFIED
+# - ectest.c (SOURCE13)
+# - openssl-1.1.1-ec-curves.patch (PATCH37) -- MODIFIED
+BINDIST_PATCH_SET="openssl-1.0.2t-bindist-1.0.tar.xz"
+
+DESCRIPTION="full-strength general purpose cryptography library (including SSL and TLS)"
+HOMEPAGE="https://www.openssl.org/"
+SRC_URI="mirror://openssl/source/${MY_P}.tar.gz
+ bindist? (
+ mirror://gentoo/bb/${BINDIST_PATCH_SET}
+ )
+ !vanilla? (
+ https://dev.gentoo.org/~chutzpah/dist/openssl/${PATCH_SET}.tar.xz
+ )
+ mirror://gentoo/ec/openssl-compat-1.0.2u-versioned-symbols.patch.gz"
+
+LICENSE="openssl"
+SLOT="1.0.0"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc x86"
+IUSE="+asm bindist gmp kerberos rfc3779 sctp cpu_flags_x86_sse2 sslv2 +sslv3 static-libs test +tls-heartbeat vanilla tls-compression"
+
+RESTRICT="!bindist? ( bindist )
+ test"
+
+RDEPEND="gmp? ( >=dev-libs/gmp-5.1.3-r1[static-libs(+)?,${MULTILIB_USEDEP}] )
+ kerberos? ( >=app-crypt/mit-krb5-1.11.4[${MULTILIB_USEDEP}] )
+ tls-compression? ( >=virtual/zlib-1.2.8-r1:=[static-libs(+)?,${MULTILIB_USEDEP}] )
+ !=dev-libs/openssl-1.0.2*:0
+ !dev-libs/openssl:1.0.0"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ >=dev-lang/perl-5
+ sctp? ( >=net-misc/lksctp-tools-1.0.12 )
+ test? (
+ sys-apps/diffutils
+ app-alternatives/bc
+ )"
+
+# Do not install any docs
+DOCS=()
+
+S="${WORKDIR}/${MY_P}"
+
+MULTILIB_WRAPPED_HEADERS=(
+ usr/include/openssl/opensslconf.h
+)
+
+src_prepare() {
+ mv "${WORKDIR}"/openssl-compat-1.0.2u-versioned-symbols.patch "${WORKDIR}"/patch || die
+
+ if use bindist; then
+ mv "${WORKDIR}"/bindist-patches/hobble-openssl "${WORKDIR}" || die
+ bash "${WORKDIR}"/hobble-openssl || die
+
+ cp -f "${WORKDIR}"/bindist-patches/ec_curve.c "${S}"/crypto/ec/ || die
+ cp -f "${WORKDIR}"/bindist-patches/ectest.c "${S}"/crypto/ec/ || die
+
+ eapply "${WORKDIR}"/bindist-patches/ec-curves.patch
+
+ # Also see the configure parts below:
+ # enable-ec \
+ # $(use_ssl !bindist ec2m) \
+ # $(use_ssl !bindist srp) \
+ fi
+
+ # keep this in sync with app-misc/c_rehash
+ SSL_CNF_DIR="/etc/ssl"
+
+ # Make sure we only ever touch Makefile.org and avoid patching a file
+ # that gets blown away anyways by the Configure script in src_configure
+ rm -f Makefile
+
+ if ! use vanilla ; then
+ eapply "${WORKDIR}"/patch/*.patch
+ fi
+
+ eapply_user
+
+ # disable fips in the build
+ # make sure the man pages are suffixed #302165
+ # don't bother building man pages if they're disabled
+ sed -i \
+ -e '/DIRS/s: fips : :g' \
+ -e '/^MANSUFFIX/s:=.*:=ssl:' \
+ -e '/^MAKEDEPPROG/s:=.*:=$(CC):' \
+ -e $(has noman FEATURES \
+ && echo '/^install:/s:install_docs::' \
+ || echo '/^MANDIR=/s:=.*:='${EPREFIX}'/usr/share/man:') \
+ Makefile.org \
+ || die
+ # show the actual commands in the log
+ sed -i '/^SET_X/s:=.*:=set -x:' Makefile.shared
+
+ # since we're forcing $(CC) as makedep anyway, just fix
+ # the conditional as always-on
+ # helps clang (#417795), and versioned gcc (#499818)
+ # this breaks build with 1.0.2p, not sure if it is needed anymore
+ #sed -i 's/expr.*MAKEDEPEND.*;/true;/' util/domd || die
+
+ # quiet out unknown driver argument warnings since openssl
+ # doesn't have well-split CFLAGS and we're making it even worse
+ # and 'make depend' uses -Werror for added fun (#417795 again)
+ [[ ${CC} == *clang* ]] && append-flags -Qunused-arguments
+
+ # allow openssl to be cross-compiled
+ cp "${FILESDIR}"/gentoo.config-1.0.2 gentoo.config || die
+ chmod a+rx gentoo.config || die
+
+ append-flags -fno-strict-aliasing
+ append-flags $(test-flags-CC -Wa,--noexecstack)
+ append-cppflags -DOPENSSL_NO_BUF_FREELISTS
+
+ sed -i '1s,^:$,#!'${EPREFIX}'/usr/bin/perl,' Configure #141906
+ # The config script does stupid stuff to prompt the user. Kill it.
+ sed -i '/stty -icanon min 0 time 50; read waste/d' config || die
+ ./config --test-sanity || die "I AM NOT SANE"
+
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ unset APPS #197996
+ unset SCRIPTS #312551
+ unset CROSS_COMPILE #311473
+
+ tc-export CC AR RANLIB RC
+
+ # Clean out patent-or-otherwise-encumbered code
+ # Camellia: Royalty Free https://en.wikipedia.org/wiki/Camellia_(cipher)
+ # IDEA: Expired https://en.wikipedia.org/wiki/International_Data_Encryption_Algorithm
+ # EC: ????????? ??/??/2015 https://en.wikipedia.org/wiki/Elliptic_Curve_Cryptography
+ # MDC2: Expired https://en.wikipedia.org/wiki/MDC-2
+ # RC5: Expired https://en.wikipedia.org/wiki/RC5
+
+ use_ssl() { usex $1 "enable-${2:-$1}" "no-${2:-$1}" " ${*:3}" ; }
+ echoit() { echo "$@" ; "$@" ; }
+
+ local krb5=$(has_version app-crypt/mit-krb5 && echo "MIT" || echo "Heimdal")
+
+ # See if our toolchain supports __uint128_t. If so, it's 64bit
+ # friendly and can use the nicely optimized code paths. #460790
+ local ec_nistp_64_gcc_128
+ # Disable it for now though #469976
+ #if ! use bindist ; then
+ # echo "__uint128_t i;" > "${T}"/128.c
+ # if ${CC} ${CFLAGS} -c "${T}"/128.c -o /dev/null >&/dev/null ; then
+ # ec_nistp_64_gcc_128="enable-ec_nistp_64_gcc_128"
+ # fi
+ #fi
+
+ local sslout=$(./gentoo.config)
+ einfo "Use configuration ${sslout:-(openssl knows best)}"
+ local config="Configure"
+ [[ -z ${sslout} ]] && config="config"
+
+ # Fedora hobbled-EC needs 'no-ec2m', 'no-srp'
+ # Make sure user flags don't get added *yet* to avoid duplicated
+ # flags.
+ CFLAGS= LDFLAGS= echoit \
+ ./${config} \
+ ${sslout} \
+ $(use cpu_flags_x86_sse2 || echo "no-sse2") \
+ enable-camellia \
+ enable-ec \
+ $(use_ssl !bindist ec2m) \
+ $(use_ssl !bindist srp) \
+ ${ec_nistp_64_gcc_128} \
+ enable-idea \
+ enable-mdc2 \
+ enable-rc5 \
+ enable-tlsext \
+ $(use_ssl asm) \
+ $(use_ssl gmp gmp -lgmp) \
+ $(use_ssl kerberos krb5 --with-krb5-flavor=${krb5}) \
+ $(use_ssl rfc3779) \
+ $(use_ssl sctp) \
+ $(use_ssl sslv2 ssl2) \
+ $(use_ssl sslv3 ssl3) \
+ $(use_ssl tls-heartbeat heartbeats) \
+ $(use_ssl tls-compression zlib) \
+ --prefix="${EPREFIX}"/usr \
+ --openssldir="${EPREFIX}"${SSL_CNF_DIR} \
+ --libdir=$(get_libdir) \
+ shared threads \
+ || die
+
+ # Clean out hardcoded flags that openssl uses
+ local DEFAULT_CFLAGS=$(grep ^CFLAG= Makefile | LC_ALL=C sed \
+ -e 's:^CFLAG=::' \
+ -e 's:\(^\| \)-fomit-frame-pointer::g' \
+ -e 's:\(^\| \)-O[^ ]*::g' \
+ -e 's:\(^\| \)-march=[^ ]*::g' \
+ -e 's:\(^\| \)-mcpu=[^ ]*::g' \
+ -e 's:\(^\| \)-m[^ ]*::g' \
+ -e 's:^ *::' \
+ -e 's: *$::' \
+ -e 's: \+: :g' \
+ -e 's:\\:\\\\:g'
+ )
+
+ # Now insert clean default flags with user flags
+ sed -i \
+ -e "/^CFLAG/s|=.*|=${DEFAULT_CFLAGS} ${CFLAGS}|" \
+ -e "/^LDFLAGS=/s|=[[:space:]]*$|=${LDFLAGS}|" \
+ Makefile || die
+}
+
+multilib_src_compile() {
+ # depend is needed to use $confopts; it also doesn't matter
+ # that it's -j1 as the code itself serializes subdirs
+ emake -j1 V=1 depend
+ emake build_libs
+}
+
+multilib_src_test() {
+ emake -j1 test
+}
+
+multilib_src_install() {
+ dolib.so lib{crypto,ssl}.so.${SLOT}
+}
diff --git a/dev-libs/openssl-compat/openssl-compat-1.1.1u.ebuild b/dev-libs/openssl-compat/openssl-compat-1.1.1u.ebuild
new file mode 100644
index 000000000000..1e66e479a373
--- /dev/null
+++ b/dev-libs/openssl-compat/openssl-compat-1.1.1u.ebuild
@@ -0,0 +1,219 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit edo flag-o-matic toolchain-funcs multilib-minimal
+
+MY_P=openssl-${PV/_/-}
+DESCRIPTION="Full-strength general purpose cryptography library (including SSL and TLS)"
+HOMEPAGE="https://www.openssl.org/"
+SRC_URI="mirror://openssl/source/${MY_P}.tar.gz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="openssl"
+SLOT="$(ver_cut 1-3)"
+if [[ ${PV} != *_pre* ]] ; then
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
+fi
+IUSE="+asm rfc3779 sctp cpu_flags_x86_sse2 sslv3 static-libs test tls-compression tls-heartbeat vanilla weak-ssl-ciphers"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ !=dev-libs/openssl-1.1.1*:0
+ tls-compression? ( >=virtual/zlib-1.2.8-r1:=[static-libs(+)?,${MULTILIB_USEDEP}] )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ >=dev-lang/perl-5
+ sctp? ( >=net-misc/lksctp-tools-1.0.12 )
+ test? (
+ sys-apps/diffutils
+ app-alternatives/bc
+ kernel_linux? ( sys-process/procps )
+ )
+"
+
+# Do not install any docs
+DOCS=()
+
+PATCHES=(
+ # General patches which are suitable to always apply
+ # If they're Gentoo specific, add to USE=-vanilla logic in src_prepare!
+ "${FILESDIR}"/${PN/-compat}-1.1.0j-parallel_install_fix.patch # bug #671602
+ "${FILESDIR}"/${PN/-compat}-1.1.1i-riscv32.patch
+)
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ # must check in pkg_setup; sysctl doesn't work with userpriv!
+ if use test && use sctp; then
+ # test_ssl_new will fail with "Ensure SCTP AUTH chunks are enabled in kernel"
+ # if sctp.auth_enable is not enabled.
+ local sctp_auth_status=$(sysctl -n net.sctp.auth_enable 2>/dev/null)
+ if [[ -z "${sctp_auth_status}" ]] || [[ ${sctp_auth_status} != 1 ]]; then
+ die "FEATURES=test with USE=sctp requires net.sctp.auth_enable=1!"
+ fi
+ fi
+}
+
+src_prepare() {
+ # Allow openssl to be cross-compiled
+ cp "${FILESDIR}"/gentoo.config-1.0.4 gentoo.config || die
+ chmod a+rx gentoo.config || die
+
+ # Keep this in sync with app-misc/c_rehash
+ SSL_CNF_DIR="/etc/ssl"
+
+ # Make sure we only ever touch Makefile.org and avoid patching a file
+ # that gets blown away anyways by the Configure script in src_configure
+ rm -f Makefile
+
+ if ! use vanilla ; then
+ PATCHES+=(
+ # Add patches which are Gentoo-specific customisations here
+ )
+ fi
+
+ default
+
+ if use test && use sctp && has network-sandbox ${FEATURES}; then
+ einfo "Disabling test '80-test_ssl_new.t' which is known to fail with FEATURES=network-sandbox ..."
+ rm test/recipes/80-test_ssl_new.t || die
+ fi
+
+ # Quiet out unknown driver argument warnings since openssl
+ # doesn't have well-split CFLAGS and we're making it even worse
+ # and 'make depend' uses -Werror for added fun (bug #417795 again)
+ tc-is-clang && append-flags -Qunused-arguments
+
+ # We really, really need to build OpenSSL w/ strict aliasing disabled.
+ # It's filled with violations and it *will* result in miscompiled
+ # code. This has been in the ebuild for > 10 years but even in 2022,
+ # it's still relevant:
+ # - https://github.com/llvm/llvm-project/issues/55255
+ # - https://github.com/openssl/openssl/issues/18225
+ # - https://github.com/openssl/openssl/issues/18663#issuecomment-1181478057
+ # Don't remove the no strict aliasing bits below!
+ filter-flags -fstrict-aliasing
+ append-flags -fno-strict-aliasing
+
+ append-cppflags -DOPENSSL_NO_BUF_FREELISTS
+
+ append-flags $(test-flags-CC -Wa,--noexecstack)
+
+ # Remove test target when FEATURES=test isn't set
+ if ! use test ; then
+ sed \
+ -e '/^$config{dirs}/s@ "test",@@' \
+ -i Configure || die
+ fi
+
+ if use prefix && [[ ${CHOST} == *-solaris* ]] ; then
+ # use GNU ld full option, not to confuse it on Solaris
+ sed -i \
+ -e 's/-Wl,-M,/-Wl,--version-script=/' \
+ -e 's/-Wl,-h,/-Wl,--soname=/' \
+ Configurations/10-main.conf || die
+
+ # fix building on Solaris 10
+ # https://github.com/openssl/openssl/issues/6333
+ sed -i \
+ -e 's/-lsocket -lnsl -ldl/-lsocket -lnsl -ldl -lrt/' \
+ Configurations/10-main.conf || die
+ fi
+
+ local sslout=$(./gentoo.config)
+ einfo "Using configuration: ${sslout:-(openssl knows best)}"
+ local config="perl Configure"
+ [[ -z ${sslout} ]] && config="sh config -v"
+
+ # The config script does stupid stuff to prompt the user. Kill it.
+ sed -i '/stty -icanon min 0 time 50; read waste/d' config || die
+ edo ${config} ${sslout} --test-sanity
+
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ # bug #197996
+ unset APPS
+ # bug #312551
+ unset SCRIPTS
+ # bug #311473
+ unset CROSS_COMPILE
+
+ tc-export AR CC CXX RANLIB RC
+
+ use_ssl() { usex $1 "enable-${2:-$1}" "no-${2:-$1}" " ${*:3}" ; }
+
+ local krb5=$(has_version app-crypt/mit-krb5 && echo "MIT" || echo "Heimdal")
+
+ # See if our toolchain supports __uint128_t. If so, it's 64bit
+ # friendly and can use the nicely optimized code paths, bug #460790.
+ #local ec_nistp_64_gcc_128
+ #
+ # Disable it for now though (bug #469976)
+ # Do NOT re-enable without substantial discussion first!
+ #
+ #echo "__uint128_t i;" > "${T}"/128.c
+ #if ${CC} ${CFLAGS} -c "${T}"/128.c -o /dev/null >&/dev/null ; then
+ # ec_nistp_64_gcc_128="enable-ec_nistp_64_gcc_128"
+ #fi
+
+ local sslout=$(./gentoo.config)
+ einfo "Use configuration ${sslout:-(openssl knows best)}"
+ local config="perl Configure"
+ [[ -z ${sslout} ]] && config="sh config -v"
+
+ # "disable-deprecated" option breaks too many consumers.
+ # Don't set it without thorough revdeps testing.
+ # Make sure user flags don't get added *yet* to avoid duplicated
+ # flags.
+ local myeconfargs=(
+ ${sslout}
+
+ $(use cpu_flags_x86_sse2 || echo "no-sse2")
+ enable-camellia
+ enable-ec
+ enable-ec2m
+ enable-sm2
+ enable-srp
+ $(use elibc_musl && echo "no-async")
+ ${ec_nistp_64_gcc_128}
+ enable-idea
+ enable-mdc2
+ enable-rc5
+ $(use_ssl sslv3 ssl3)
+ $(use_ssl sslv3 ssl3-method)
+ $(use_ssl asm)
+ $(use_ssl rfc3779)
+ $(use_ssl sctp)
+ $(use test || echo "no-tests")
+ $(use_ssl tls-compression zlib)
+ $(use_ssl tls-heartbeat heartbeats)
+ $(use_ssl weak-ssl-ciphers)
+
+ --prefix="${EPREFIX}"/usr
+ --openssldir="${EPREFIX}"${SSL_CNF_DIR}
+ --libdir=$(get_libdir)
+
+ shared
+ threads
+ )
+
+ edo ${config} "${myeconfargs[@]}"
+}
+
+multilib_src_compile() {
+ emake all
+}
+
+multilib_src_test() {
+ emake -j1 test
+}
+
+multilib_src_install() {
+ dolib.so lib{crypto,ssl}.so.$(ver_cut 1-2 "${SLOT}")
+}
diff --git a/dev-libs/openssl-compat/openssl-compat-3.6.2.ebuild b/dev-libs/openssl-compat/openssl-compat-3.6.2.ebuild
new file mode 100644
index 000000000000..86d925410287
--- /dev/null
+++ b/dev-libs/openssl-compat/openssl-compat-3.6.2.ebuild
@@ -0,0 +1,175 @@
+# 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/openssl.org.asc
+
+inherit edo flag-o-matic toolchain-funcs multilib-minimal verify-sig
+
+MY_P=openssl-${PV/_/-}
+
+DESCRIPTION="Full-strength general purpose cryptography library (including SSL and TLS)"
+HOMEPAGE="https://openssl-library.org/"
+SRC_URI="
+ https://github.com/openssl/openssl/releases/download/${MY_P}/${MY_P}.tar.gz
+ verify-sig? (
+ https://github.com/openssl/openssl/releases/download/${MY_P}/${MY_P}.tar.gz.asc
+ )
+"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="Apache-2.0"
+SLOT="$(ver_cut 1)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+IUSE="+asm cpu_flags_x86_sse2 +quic rfc3779 sctp test tls-compression vanilla weak-ssl-ciphers"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ !=dev-libs/openssl-$(ver_cut 1)*:0
+ tls-compression? ( >=virtual/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}] )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ >=dev-lang/perl-5
+ sctp? ( >=net-misc/lksctp-tools-1.0.12 )
+ test? (
+ sys-apps/diffutils
+ app-alternatives/bc
+ sys-process/procps
+ )
+ verify-sig? ( >=sec-keys/openpgp-keys-openssl-20240920 )
+"
+
+# Do not install any docs
+DOCS=()
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ # must check in pkg_setup; sysctl doesn't work with userpriv!
+ if use test && use sctp ; then
+ # test_ssl_new will fail with "Ensure SCTP AUTH chunks are enabled in kernel"
+ # if sctp.auth_enable is not enabled.
+ local sctp_auth_status=$(sysctl -n net.sctp.auth_enable 2>/dev/null)
+ if [[ -z "${sctp_auth_status}" ]] || [[ ${sctp_auth_status} != 1 ]] ; then
+ die "FEATURES=test with USE=sctp requires net.sctp.auth_enable=1!"
+ fi
+ fi
+}
+
+src_prepare() {
+ # Keep this in sync with app-misc/c_rehash
+ SSL_CNF_DIR="/etc/ssl"
+
+ # Make sure we only ever touch Makefile.org and avoid patching a file
+ # that gets blown away anyways by the Configure script in src_configure
+ rm -f Makefile || die
+
+ if ! use vanilla ; then
+ PATCHES+=(
+ # Add patches which are Gentoo-specific customisations here
+ )
+ fi
+
+ default
+
+ if use test && use sctp && has network-sandbox ${FEATURES} ; then
+ einfo "Disabling test '80-test_ssl_new.t' which is known to fail with FEATURES=network-sandbox ..."
+ rm test/recipes/80-test_ssl_new.t || die
+ fi
+
+ # Test fails depending on kernel configuration, bug #699134
+ rm test/recipes/30-test_afalg.t || die
+
+ # Quiet out unknown driver argument warnings since openssl
+ # doesn't have well-split CFLAGS and we're making it even worse
+ # and 'make depend' uses -Werror for added fun (bug #417795 again)
+ tc-is-clang && append-flags -Qunused-arguments
+
+ # We really, really need to build OpenSSL w/ strict aliasing disabled.
+ # It's filled with violations and it *will* result in miscompiled
+ # code. This has been in the ebuild for > 10 years but even in 2022,
+ # it's still relevant:
+ # - https://github.com/llvm/llvm-project/issues/55255
+ # - https://github.com/openssl/openssl/issues/12247
+ # - https://github.com/openssl/openssl/issues/18225
+ # - https://github.com/openssl/openssl/issues/18663#issuecomment-1181478057
+ # Don't remove the no strict aliasing bits below!
+ filter-flags -fstrict-aliasing
+ append-flags -fno-strict-aliasing
+ # The OpenSSL developers don't test with LTO right now, it leads to various
+ # warnings/errors (which may or may not be false positives), it's considered
+ # unsupported, and it's not tested in CI: https://github.com/openssl/openssl/issues/18663.
+ filter-lto
+
+ append-flags $(test-flags-CC -Wa,--noexecstack)
+
+ # bug #895308 -- check inserts GNU ld-compatible arguments
+ [[ ${CHOST} == *-darwin* ]] || append-atomic-flags
+ # Configure doesn't respect LIBS
+ export LDLIBS="${LIBS}"
+
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ # bug #197996
+ unset APPS
+ # bug #312551
+ unset SCRIPTS
+ # bug #311473
+ unset CROSS_COMPILE
+
+ tc-export AR CC CXX RANLIB RC
+
+ use_ssl() { usex $1 "enable-${2:-$1}" "no-${2:-$1}" " ${*:3}" ; }
+
+ local sslout=$(bash "${FILESDIR}/gentoo.config-1.0.4")
+ einfo "Using configuration: ${sslout:-(openssl knows best)}"
+
+ # https://github.com/openssl/openssl/blob/master/INSTALL.md#enable-and-disable-features
+ local myeconfargs=(
+ ${sslout}
+
+ no-docs
+ $(use cpu_flags_x86_sse2 || echo "no-sse2")
+ enable-camellia
+ enable-ec
+ enable-ec2m
+ enable-sm2
+ enable-srp
+ $(use elibc_musl && echo "no-async")
+ enable-idea
+ enable-mdc2
+ enable-rc5
+ $(use_ssl asm)
+ $(use quic && echo "enable-quic")
+ $(use_ssl rfc3779)
+ $(use_ssl sctp)
+ $(use test || echo "no-tests")
+ $(use_ssl tls-compression zlib)
+ $(use_ssl weak-ssl-ciphers)
+
+ --prefix="${EPREFIX}/usr"
+ --openssldir="${EPREFIX}${SSL_CNF_DIR}"
+ --libdir=$(get_libdir)
+
+ shared
+ threads
+ )
+
+ edo perl Configure "${myeconfargs[@]}"
+}
+
+multilib_src_compile() {
+ emake build_sw
+}
+
+multilib_src_test() {
+ emake -j1 test
+}
+
+multilib_src_install() {
+ dolib.so lib{crypto,ssl}.so.$(ver_cut 1)
+}
diff --git a/dev-libs/openssl-compat/openssl-compat-3.6.4.ebuild b/dev-libs/openssl-compat/openssl-compat-3.6.4.ebuild
new file mode 100644
index 000000000000..50b62afb81ee
--- /dev/null
+++ b/dev-libs/openssl-compat/openssl-compat-3.6.4.ebuild
@@ -0,0 +1,184 @@
+# 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/openssl.org.asc
+
+inherit edo flag-o-matic toolchain-funcs multilib-minimal multiprocessing
+inherit verify-sig
+
+MY_P=openssl-${PV/_/-}
+
+DESCRIPTION="Full-strength general purpose cryptography library (including SSL and TLS)"
+HOMEPAGE="https://openssl-library.org/"
+SRC_URI="
+ https://github.com/openssl/openssl/releases/download/${MY_P}/${MY_P}.tar.gz
+ verify-sig? (
+ https://github.com/openssl/openssl/releases/download/${MY_P}/${MY_P}.tar.gz.asc
+ )
+"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="Apache-2.0"
+SLOT="$(ver_cut 1)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+IUSE="+asm cpu_flags_x86_sse2 +quic rfc3779 sctp test tls-compression vanilla weak-ssl-ciphers"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ !=dev-libs/openssl-$(ver_cut 1)*:0
+ tls-compression? ( >=virtual/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}] )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ >=dev-lang/perl-5
+ sctp? ( >=net-misc/lksctp-tools-1.0.12 )
+ test? (
+ sys-apps/diffutils
+ app-alternatives/bc
+ sys-process/procps
+ )
+ verify-sig? ( >=sec-keys/openpgp-keys-openssl-20260617-r1 )
+"
+
+# Do not install any docs
+DOCS=()
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ # must check in pkg_setup; sysctl doesn't work with userpriv!
+ if use test && use sctp ; then
+ # test_ssl_new will fail with "Ensure SCTP AUTH chunks are enabled in kernel"
+ # if sctp.auth_enable is not enabled.
+ local sctp_auth_status=$(sysctl -n net.sctp.auth_enable 2>/dev/null)
+ if [[ -z "${sctp_auth_status}" ]] || [[ ${sctp_auth_status} != 1 ]] ; then
+ die "FEATURES=test with USE=sctp requires net.sctp.auth_enable=1!"
+ fi
+ fi
+}
+
+src_prepare() {
+ # Keep this in sync with app-misc/c_rehash
+ SSL_CNF_DIR="/etc/ssl"
+
+ # Make sure we only ever touch Makefile.org and avoid patching a file
+ # that gets blown away anyways by the Configure script in src_configure
+ rm -f Makefile || die
+
+ if ! use vanilla ; then
+ PATCHES+=(
+ # Add patches which are Gentoo-specific customisations here
+ )
+ fi
+
+ default
+
+ if use test && use sctp && has network-sandbox ${FEATURES} ; then
+ einfo "Disabling test '80-test_ssl_new.t' which is known to fail with FEATURES=network-sandbox ..."
+ rm test/recipes/80-test_ssl_new.t || die
+ fi
+
+ # Test fails depending on kernel configuration, bug #699134
+ rm test/recipes/30-test_afalg.t || die
+
+ # Quiet out unknown driver argument warnings since openssl
+ # doesn't have well-split CFLAGS and we're making it even worse
+ # and 'make depend' uses -Werror for added fun (bug #417795 again)
+ tc-is-clang && append-flags -Qunused-arguments
+
+ # We really, really need to build OpenSSL w/ strict aliasing disabled.
+ # It's filled with violations and it *will* result in miscompiled
+ # code. This has been in the ebuild for > 10 years but even in 2022,
+ # it's still relevant:
+ # - https://github.com/llvm/llvm-project/issues/55255
+ # - https://github.com/openssl/openssl/issues/12247
+ # - https://github.com/openssl/openssl/issues/18225
+ # - https://github.com/openssl/openssl/issues/18663#issuecomment-1181478057
+ # Don't remove the no strict aliasing bits below!
+ filter-flags -fstrict-aliasing
+ append-flags -fno-strict-aliasing
+ # The OpenSSL developers don't test with LTO right now, it leads to various
+ # warnings/errors (which may or may not be false positives), it's considered
+ # unsupported, and it's not tested in CI: https://github.com/openssl/openssl/issues/18663.
+ filter-lto
+
+ append-flags $(test-flags-CC -Wa,--noexecstack)
+
+ # bug #895308 -- check inserts GNU ld-compatible arguments
+ [[ ${CHOST} == *-darwin* ]] || append-atomic-flags
+ # Configure doesn't respect LIBS
+ export LDLIBS="${LIBS}"
+
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ # bug #197996
+ unset APPS
+ # bug #312551
+ unset SCRIPTS
+ # bug #311473
+ unset CROSS_COMPILE
+
+ tc-export AR CC CXX RANLIB RC
+
+ use_ssl() { usex $1 "enable-${2:-$1}" "no-${2:-$1}" " ${*:3}" ; }
+
+ local sslout=$(bash "${FILESDIR}/gentoo.config-1.0.4")
+ einfo "Using configuration: ${sslout:-(openssl knows best)}"
+
+ # https://github.com/openssl/openssl/blob/master/INSTALL.md#enable-and-disable-features
+ local myeconfargs=(
+ ${sslout}
+
+ no-docs
+ $(use cpu_flags_x86_sse2 || echo "no-sse2")
+ enable-camellia
+ enable-ec
+ enable-ec2m
+ enable-sm2
+ enable-srp
+ $(use elibc_musl && echo "no-async")
+ enable-idea
+ enable-mdc2
+ enable-rc5
+ $(use_ssl asm)
+ $(use quic && echo "enable-quic")
+ $(use_ssl rfc3779)
+ $(use_ssl sctp)
+ $(use test || echo "no-tests")
+ $(use_ssl tls-compression zlib)
+ $(use_ssl weak-ssl-ciphers)
+
+ --prefix="${EPREFIX}/usr"
+ --openssldir="${EPREFIX}${SSL_CNF_DIR}"
+ --libdir=$(get_libdir)
+
+ shared
+ threads
+ )
+
+ edo perl Configure "${myeconfargs[@]}"
+}
+
+multilib_src_compile() {
+ emake build_sw
+}
+
+multilib_src_test() {
+ # See https://github.com/openssl/openssl/blob/master/test/README.md for options.
+ #
+ # VFP = show subtests verbosely and show failed tests verbosely
+ # Normal V=1 would show everything verbosely but this slows things down.
+ #
+ # -j1 here for https://github.com/openssl/openssl/issues/21999, but it
+ # shouldn't matter as tests were already built earlier, and HARNESS_JOBS
+ # controls running the tests.
+ emake -Onone -j1 HARNESS_JOBS="$(makeopts_jobs)" VFP=1 test
+}
+
+multilib_src_install() {
+ dolib.so lib{crypto,ssl}.so.$(ver_cut 1)
+}
diff --git a/gui-apps/waybar/files/meson-fix-build.patch b/gui-apps/waybar/files/meson-fix-build.patch
new file mode 100644
index 000000000000..cee64a56a395
--- /dev/null
+++ b/gui-apps/waybar/files/meson-fix-build.patch
@@ -0,0 +1,38 @@
+From 69c61c3d9ae8f7397d64570412655007ea086c56 Mon Sep 17 00:00:00 2001
+From: ShengYi Hung <aokblast@FreeBSD.org>
+Date: Sun, 23 Aug 2026 12:45:10 +0800
+Subject: [PATCH] meson: Fix unwinding error in libunwind over glibc
+
+glibc's pthread_cancel dlopens libgcc_s.so.1 and uses its unwinder,
+while libc++abi's personality routine resolves the Unwind* accessors
+from the global scope, where LLVM libunwind wins. This causes the two
+unwinders to interpret each other's unwind context incorrectly, and
+cancelling a thread segfaults. Pull libgcc_s into DT_NEEDED before
+libc++abi/libunwind so all Unwind* symbols resolve to the same unwinder.
+---
+ meson.build | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 5dc7338d5f..88be32e27b 100644
+--- a/meson.build
++++ b/meson.build
+@@ -17,7 +17,17 @@ cpp_link_args = []
+
+ if get_option('libcxx')
+ cpp_args += ['-stdlib=libc++']
+- cpp_link_args += ['-stdlib=libc++', '-lc++abi']
++ cpp_link_args += ['-stdlib=libc++']
++ # glibc's pthread_cancel dlopens libgcc_s.so.1 and forces the unwind through
++ # that unwinder, while libc++abi's personality routine resolves the _Unwind_*
++ # accessors through the global scope, where LLVM libunwind wins. The two read
++ # each other's unwind context as their own, so cancelling a thread
++ # (SleeperThread::stop) segfaults. Pull libgcc_s into DT_NEEDED ahead of
++ # libc++abi/libunwind so every _Unwind_* symbol resolves to one unwinder.
++ if compiler.has_link_argument('-lgcc_s')
++ cpp_link_args += ['-Wl,--push-state,--no-as-needed', '-lgcc_s', '-Wl,--pop-state']
++ endif
++ cpp_link_args += ['-lc++abi']
+ endif
+
+ if compiler.has_link_argument('-lc++fs')
diff --git a/gui-apps/waybar/files/tray-icons-fix.patch b/gui-apps/waybar/files/tray-icons-fix.patch
new file mode 100644
index 000000000000..95bf11ffca16
--- /dev/null
+++ b/gui-apps/waybar/files/tray-icons-fix.patch
@@ -0,0 +1,99 @@
+diff --git a/src/modules/sni/item.cpp b/src/modules/sni/item.cpp
+index 8afb39fb3..6c4ec8c06 100644
+--- a/src/modules/sni/item.cpp
++++ b/src/modules/sni/item.cpp
+@@ -104,11 +104,9 @@ void Item::proxyReady(Glib::RefPtr<Gio::AsyncResult>& result) {
+ this->updateImage();
+
+ } catch (const Glib::Error& err) {
+- spdlog::error("Failed to create DBus Proxy for {} {}: {}", bus_name, object_path,
+- std::string(err.what()));
++ spdlog::error("Failed to create DBus Proxy for {} {}: {}", bus_name, object_path, err.what());
+ } catch (const std::exception& err) {
+- spdlog::error("Failed to create DBus Proxy for {} {}: {}", bus_name, object_path,
+- std::string(err.what()));
++ spdlog::error("Failed to create DBus Proxy for {} {}: {}", bus_name, object_path, err.what());
+ }
+ }
+
+@@ -126,15 +124,14 @@ ToolTip get_variant<ToolTip>(const Glib::VariantBase& value) {
+ result.text = get_variant<Glib::ustring>(container.get_child(2));
+ auto description = get_variant<Glib::ustring>(container.get_child(3));
+ if (!description.empty()) {
+- result.text = fmt::format("<b>{}</b>\n{}", std::string(result.text), std::string(description));
++ result.text = fmt::format("<b>{}</b>\n{}", result.text, description);
+ }
+ return result;
+ }
+
+ void Item::setProperty(const Glib::ustring& name, Glib::VariantBase& value) {
+ try {
+- spdlog::trace("Set tray item property: {}.{} = {}", id.empty() ? bus_name : id,
+- std::string(name), get_variant<std::string>(value));
++ spdlog::trace("Set tray item property: {}.{} = {}", id.empty() ? bus_name : id, name, value);
+
+ if (name == "Category") {
+ category = get_variant<std::string>(value);
+@@ -179,12 +176,10 @@ void Item::setProperty(const Glib::ustring& name, Glib::VariantBase& value) {
+ }
+ } catch (const Glib::Error& err) {
+ spdlog::warn("Failed to set tray item property: {}.{}, value = {}, err = {}",
+- id.empty() ? bus_name : id, std::string(name), get_variant<std::string>(value),
+- std::string(err.what()));
++ id.empty() ? bus_name : id, name, value, err.what());
+ } catch (const std::exception& err) {
+ spdlog::warn("Failed to set tray item property: {}.{}, value = {}, err = {}",
+- id.empty() ? bus_name : id, std::string(name), get_variant<std::string>(value),
+- std::string(err.what()));
++ id.empty() ? bus_name : id, name, value, err.what());
+ }
+ }
+
+@@ -226,9 +221,9 @@ void Item::processUpdatedProperties(Glib::RefPtr<Gio::AsyncResult>& _result) {
+
+ this->updateImage();
+ } catch (const Glib::Error& err) {
+- spdlog::warn("Failed to update properties: {}", std::string(err.what()));
++ spdlog::warn("Failed to update properties: {}", err.what());
+ } catch (const std::exception& err) {
+- spdlog::warn("Failed to update properties: {}", std::string(err.what()));
++ spdlog::warn("Failed to update properties: {}", err.what());
+ }
+ update_pending_.clear();
+ }
+@@ -250,7 +245,7 @@ static const std::map<std::string_view, std::set<std::string_view>> signal2props
+
+ void Item::onSignal(const Glib::ustring& sender_name, const Glib::ustring& signal_name,
+ const Glib::VariantContainerBase& arguments) {
+- spdlog::trace("Tray item '{}' got signal {}", id, std::string(signal_name));
++ spdlog::trace("Tray item '{}' got signal {}", id, signal_name);
+ auto changed = signal2props.find(signal_name.raw());
+ if (changed != signal2props.end()) {
+ if (update_pending_.empty()) {
+diff --git a/subprojects/fmt.wrap b/subprojects/fmt.wrap
+index 42b615963..fd508477f 100644
+--- a/subprojects/fmt.wrap
++++ b/subprojects/fmt.wrap
+@@ -1,13 +1,13 @@
+ [wrap-file]
+-directory = fmt-11.0.1
+-source_url = https://github.com/fmtlib/fmt/archive/11.0.1.tar.gz
+-source_filename = fmt-11.0.1.tar.gz
+-source_hash = 7d009f7f89ac84c0a83f79ed602463d092fbf66763766a907c97fd02b100f5e9
+-patch_filename = fmt_11.0.1-1_patch.zip
+-patch_url = https://wrapdb.mesonbuild.com/v2/fmt_11.0.1-1/get_patch
+-patch_hash = 0a8b93d1ee6d84a82d3872a9bfb4c3977d8a53f7f484d42d1f7ed63ed496d549
+-source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/fmt_11.0.1-1/fmt-11.0.1.tar.gz
+-wrapdb_version = 11.0.1-1
++directory = fmt-11.0.2
++source_url = https://github.com/fmtlib/fmt/archive/11.0.2.tar.gz
++source_filename = fmt-11.0.2.tar.gz
++source_hash = 6cb1e6d37bdcb756dbbe59be438790db409cdb4868c66e888d5df9f13f7c027f
++patch_filename = fmt_11.0.2-1_patch.zip
++patch_url = https://wrapdb.mesonbuild.com/v2/fmt_11.0.2-1/get_patch
++patch_hash = 90c9e3b8e8f29713d40ca949f6f93ad115d78d7fb921064112bc6179e6427c5e
++source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/fmt_11.0.2-1/fmt-11.0.2.tar.gz
++wrapdb_version = 11.0.2-1
+
+ [provide]
+ fmt = fmt_dep
diff --git a/gui-apps/waybar/files/waybar-0.15.0-add-hyprland-lua-ipc.patch b/gui-apps/waybar/files/waybar-0.15.0-add-hyprland-lua-ipc.patch
deleted file mode 100644
index c28cba9cc8bf..000000000000
--- a/gui-apps/waybar/files/waybar-0.15.0-add-hyprland-lua-ipc.patch
+++ /dev/null
@@ -1,163 +0,0 @@
-commit 37d6ad727c0973e343bf4bf07031f61aba772d56
-Author: Higor Prado <higorevop@gmail.com>
-
- fix(hyprland/workspaces): adapt dispatch commands for Lua IPC protocol
-
-diff --git a/include/modules/hyprland/backend.hpp b/include/modules/hyprland/backend.hpp
-index 2e0ef657..84e056fa 100644
---- a/include/modules/hyprland/backend.hpp
-+++ b/include/modules/hyprland/backend.hpp
-@@ -3,6 +3,7 @@
- #include <filesystem>
- #include <list>
- #include <mutex>
-+#include <optional>
- #include <string>
- #include <thread>
- #include <utility>
-@@ -34,6 +35,10 @@ class IPC {
- Json::Value getSocket1JsonReply(const std::string& rq);
- static std::filesystem::path getSocketFolder(const char* instanceSig);
-
-+ /// Dispatch a Hyprland command. Automatically uses the correct protocol
-+ /// (legacy text or Lua-based) depending on the running Hyprland version.
-+ static std::string dispatch(const std::string& dispatcher, const std::string& arg);
-+
- protected:
- static std::filesystem::path socketFolder_;
-
-@@ -41,6 +46,15 @@ class IPC {
- void socketListener();
- void parseIPC(const std::string&);
-
-+ /// Detect whether the running Hyprland uses the Lua-based IPC protocol.
-+ /// Returns true for Hyprland >= 0.54 (Lua config), false for older versions.
-+ static bool isLuaProtocol();
-+
-+ /// Build a Lua-format dispatch command string.
-+ static std::string buildLuaDispatch(const std::string& dispatcher, const std::string& arg);
-+
-+ static std::optional<bool> s_luaProtocolDetected_; // cached detection result
-+
- std::thread ipcThread_;
- std::mutex callbackMutex_;
- util::JsonParser parser_;
-diff --git a/src/modules/hyprland/backend.cpp b/src/modules/hyprland/backend.cpp
-index 7060d304..1f772ecb 100644
---- a/src/modules/hyprland/backend.cpp
-+++ b/src/modules/hyprland/backend.cpp
-@@ -10,11 +10,13 @@
- #include <unistd.h>
-
- #include <filesystem>
-+#include <optional>
- #include <string>
-
- namespace waybar::modules::hyprland {
-
- std::filesystem::path IPC::socketFolder_;
-+std::optional<bool> IPC::s_luaProtocolDetected_;
-
- std::filesystem::path IPC::getSocketFolder(const char* instanceSig) {
- static std::mutex folderMutex;
-@@ -243,4 +245,69 @@ Json::Value IPC::getSocket1JsonReply(const std::string& rq) {
- return parser_.parse(reply);
- }
-
-+bool IPC::isLuaProtocol() {
-+ if (s_luaProtocolDetected_.has_value()) {
-+ return *s_luaProtocolDetected_;
-+ }
-+
-+ // Probe: send a harmless old-style dispatch and check the error.
-+ // In Lua-based Hyprland (>= 0.54) the error contains "hl.dispatch".
-+ // In older versions it returns "ok" or a different error.
-+ auto reply = getSocket1Reply("dispatch workspace __waybar_probe__");
-+ bool luaProto = reply.find("hl.dispatch") != std::string::npos;
-+
-+ if (luaProto) {
-+ spdlog::info("Hyprland IPC: detected Lua-based dispatch protocol (Hyprland >= 0.54)");
-+ } else {
-+ spdlog::info("Hyprland IPC: detected legacy dispatch protocol");
-+ }
-+
-+ s_luaProtocolDetected_ = luaProto;
-+ return luaProto;
-+}
-+
-+std::string IPC::buildLuaDispatch(const std::string& dispatcher, const std::string& arg) {
-+ // Map old-style dispatchers to the new Lua hl.dsp API.
-+ //
-+ // Old format: dispatch workspace 1
-+ // New format: /dispatch hl.dsp.focus({ workspace = "1" })
-+ //
-+ // Old format: dispatch focusworkspaceoncurrentmonitor 2
-+ // New format: /dispatch hl.dsp.focus({ workspace = "2", monitor = "current" })
-+ //
-+ // Old format: dispatch togglespecialworkspace name
-+ // New format: /dispatch hl.dsp.workspace.toggle_special("name")
-+
-+ if (dispatcher == "workspace") {
-+ return "/dispatch hl.dsp.focus({ workspace = \"" + arg + "\" })";
-+ }
-+ if (dispatcher == "focusworkspaceoncurrentmonitor") {
-+ return "/dispatch hl.dsp.focus({ workspace = \"" + arg + "\", monitor = \"current\" })";
-+ }
-+ if (dispatcher == "togglespecialworkspace") {
-+ if (arg.empty()) {
-+ return "/dispatch hl.dsp.workspace.toggle_special()";
-+ }
-+ return "/dispatch hl.dsp.workspace.toggle_special(\"" + arg + "\")";
-+ }
-+
-+ // Fallback for any other dispatcher: try the old format wrapped in dispatch().
-+ // This may not work for all dispatchers, but it's a reasonable default.
-+ spdlog::warn("Hyprland IPC: unknown dispatcher '{}' in Lua mode, attempting generic format",
-+ dispatcher);
-+ return "/dispatch hl.dsp." + dispatcher + "(\"" + arg + "\")";
-+}
-+
-+std::string IPC::dispatch(const std::string& dispatcher, const std::string& arg) {
-+ if (isLuaProtocol()) {
-+ return getSocket1Reply(buildLuaDispatch(dispatcher, arg));
-+ }
-+ // Legacy format: "dispatch <dispatcher> <arg>"
-+ std::string cmd = "dispatch " + dispatcher;
-+ if (!arg.empty()) {
-+ cmd += " " + arg;
-+ }
-+ return getSocket1Reply(cmd);
-+}
-+
- } // namespace waybar::modules::hyprland
-diff --git a/src/modules/hyprland/workspace.cpp b/src/modules/hyprland/workspace.cpp
-index 4cdd8910..b8090bd0 100644
---- a/src/modules/hyprland/workspace.cpp
-+++ b/src/modules/hyprland/workspace.cpp
-@@ -71,20 +71,20 @@ bool Workspace::handleClicked(GdkEventButton* bt) const {
- try {
- if (id() > 0) { // normal
- if (m_workspaceManager.moveToMonitor()) {
-- m_ipc.getSocket1Reply("dispatch focusworkspaceoncurrentmonitor " + std::to_string(id()));
-+ IPC::dispatch("focusworkspaceoncurrentmonitor", std::to_string(id()));
- } else {
-- m_ipc.getSocket1Reply("dispatch workspace " + std::to_string(id()));
-+ IPC::dispatch("workspace", std::to_string(id()));
- }
- } else if (!isSpecial()) { // named (this includes persistent)
- if (m_workspaceManager.moveToMonitor()) {
-- m_ipc.getSocket1Reply("dispatch focusworkspaceoncurrentmonitor name:" + name());
-+ IPC::dispatch("focusworkspaceoncurrentmonitor", "name:" + name());
- } else {
-- m_ipc.getSocket1Reply("dispatch workspace name:" + name());
-+ IPC::dispatch("workspace", "name:" + name());
- }
- } else if (id() != -99) { // named special
-- m_ipc.getSocket1Reply("dispatch togglespecialworkspace " + name());
-+ IPC::dispatch("togglespecialworkspace", name());
- } else { // special
-- m_ipc.getSocket1Reply("dispatch togglespecialworkspace");
-+ IPC::dispatch("togglespecialworkspace", "");
- }
- return true;
- } catch (const std::exception& e) {
diff --git a/gui-apps/waybar/waybar-0.10.4-r1.ebuild b/gui-apps/waybar/waybar-0.10.4-r1.ebuild
new file mode 100644
index 000000000000..02de587d2d29
--- /dev/null
+++ b/gui-apps/waybar/waybar-0.10.4-r1.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit meson
+
+DESCRIPTION="Highly customizable Wayland bar for Sway and Wlroots based compositors"
+HOMEPAGE="https://github.com/Alexays/Waybar"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/Alexays/${PN^}.git"
+else
+ SRC_URI="https://github.com/Alexays/${PN^}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="amd64 ~arm64"
+ S="${WORKDIR}/${PN^}-${PV}"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="evdev experimental jack +libinput +logind mpd mpris network pipewire pulseaudio sndio systemd test tray +udev upower wifi"
+REQUIRED_USE="
+ upower? ( logind )
+"
+
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ >=app-text/scdoc-1.9.2
+ >=dev-util/gdbus-codegen-2.80.5-r1
+ dev-util/wayland-scanner
+ virtual/pkgconfig
+"
+RDEPEND="
+ dev-cpp/cairomm:0
+ dev-cpp/glibmm:2
+ dev-cpp/gtkmm:3.0
+ dev-libs/glib:2
+ dev-libs/jsoncpp:=
+ dev-libs/libsigc++:2
+ >=dev-libs/libfmt-8.1.1:=
+ >=dev-libs/spdlog-1.10.0:=
+ dev-libs/date:=
+ dev-libs/wayland
+ gui-libs/gtk-layer-shell
+ media-video/pipewire:=
+ x11-libs/gtk+:3[wayland]
+ x11-libs/libxkbcommon
+ evdev? ( dev-libs/libevdev )
+ jack? ( virtual/jack )
+ libinput? ( dev-libs/libinput:= )
+ logind? (
+ || ( sys-apps/systemd
+ sys-auth/elogind )
+ )
+ mpd? ( media-libs/libmpdclient )
+ mpris? ( >=media-sound/playerctl-2 )
+ network? ( dev-libs/libnl:3 )
+ pipewire? ( media-video/wireplumber:0/0.5 )
+ pulseaudio? ( media-libs/libpulse )
+ sndio? ( media-sound/sndio:= )
+ systemd? ( sys-apps/systemd:= )
+ tray? (
+ dev-libs/libayatana-appindicator
+ dev-libs/libdbusmenu[gtk3]
+ )
+ udev? ( virtual/libudev:= )
+ upower? ( sys-power/upower:= )
+ wifi? ( sys-apps/util-linux )
+"
+DEPEND="${RDEPEND}
+ dev-libs/wayland-protocols
+ test? ( dev-cpp/catch:0 )
+"
+
+src_configure() {
+ local emesonargs=(
+ -Dman-pages=enabled
+ -Dcava=disabled
+ $(meson_feature evdev libevdev)
+ $(meson_feature jack)
+ $(meson_feature libinput)
+ $(meson_feature logind)
+ $(meson_feature mpd)
+ $(meson_feature mpris)
+ $(meson_feature network libnl)
+ $(meson_feature pulseaudio)
+ $(meson_feature pipewire wireplumber)
+ $(meson_feature pipewire)
+ $(meson_feature sndio)
+ $(meson_feature systemd)
+ $(meson_feature test tests)
+ $(meson_feature tray dbusmenu-gtk)
+ $(meson_feature udev libudev)
+ $(meson_feature upower upower_glib)
+ $(meson_feature wifi rfkill)
+ $(meson_use experimental)
+ )
+ meson_src_configure
+}
diff --git a/gui-apps/waybar/waybar-0.11.0-r1.ebuild b/gui-apps/waybar/waybar-0.11.0-r1.ebuild
new file mode 100644
index 000000000000..845a6694bb69
--- /dev/null
+++ b/gui-apps/waybar/waybar-0.11.0-r1.ebuild
@@ -0,0 +1,105 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit meson
+
+DESCRIPTION="Highly customizable Wayland bar for Sway and Wlroots based compositors"
+HOMEPAGE="https://github.com/Alexays/Waybar"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/Alexays/${PN^}.git"
+else
+ SRC_URI="https://github.com/Alexays/${PN^}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="amd64 ~arm64"
+ S="${WORKDIR}/${PN^}-${PV}"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="evdev experimental jack +libinput +logind mpd mpris network pipewire pulseaudio sndio systemd test tray +udev upower wifi"
+REQUIRED_USE="
+ upower? ( logind )
+"
+
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ >=app-text/scdoc-1.9.2
+ >=dev-util/gdbus-codegen-2.80.5-r1
+ dev-util/wayland-scanner
+ virtual/pkgconfig
+"
+RDEPEND="
+ dev-cpp/cairomm:0
+ dev-cpp/glibmm:2
+ dev-cpp/gtkmm:3.0
+ dev-libs/glib:2
+ dev-libs/jsoncpp:=
+ dev-libs/libsigc++:2
+ >=dev-libs/libfmt-8.1.1:=
+ >=dev-libs/spdlog-1.10.0:=
+ dev-libs/date:=
+ dev-libs/wayland
+ gui-libs/gtk-layer-shell
+ media-video/pipewire:=
+ x11-libs/gtk+:3[wayland]
+ x11-libs/libxkbcommon
+ evdev? ( dev-libs/libevdev )
+ jack? ( virtual/jack )
+ libinput? ( dev-libs/libinput:= )
+ logind? (
+ || ( sys-apps/systemd
+ sys-auth/elogind )
+ )
+ mpd? ( media-libs/libmpdclient )
+ mpris? ( >=media-sound/playerctl-2 )
+ network? ( dev-libs/libnl:3 )
+ pipewire? ( media-video/wireplumber:0/0.5 )
+ pulseaudio? ( media-libs/libpulse )
+ sndio? ( media-sound/sndio:= )
+ systemd? ( sys-apps/systemd:= )
+ tray? (
+ dev-libs/libayatana-appindicator
+ dev-libs/libdbusmenu[gtk3]
+ )
+ udev? ( virtual/libudev:= )
+ upower? ( sys-power/upower:= )
+ wifi? ( sys-apps/util-linux )
+"
+DEPEND="${RDEPEND}
+ dev-libs/wayland-protocols
+ test? ( dev-cpp/catch:0 )
+"
+
+PATCHES=(
+ "${FILESDIR}"/tray-icons-fix.patch
+)
+
+src_configure() {
+ local emesonargs=(
+ -Dman-pages=enabled
+ -Dcava=disabled
+ $(meson_feature evdev libevdev)
+ $(meson_feature jack)
+ $(meson_feature libinput)
+ $(meson_feature logind)
+ $(meson_feature mpd)
+ $(meson_feature mpris)
+ $(meson_feature network libnl)
+ $(meson_feature pulseaudio)
+ $(meson_feature pipewire wireplumber)
+ $(meson_feature pipewire)
+ $(meson_feature sndio)
+ $(meson_feature systemd)
+ $(meson_feature test tests)
+ $(meson_feature tray dbusmenu-gtk)
+ $(meson_feature udev libudev)
+ $(meson_feature upower upower_glib)
+ $(meson_feature wifi rfkill)
+ $(meson_use experimental)
+ )
+ meson_src_configure
+}
diff --git a/gui-apps/waybar/waybar-0.11.0.ebuild b/gui-apps/waybar/waybar-0.11.0.ebuild
new file mode 100644
index 000000000000..20a16f9595aa
--- /dev/null
+++ b/gui-apps/waybar/waybar-0.11.0.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit meson
+
+DESCRIPTION="Highly customizable Wayland bar for Sway and Wlroots based compositors"
+HOMEPAGE="https://github.com/Alexays/Waybar"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/Alexays/${PN^}.git"
+else
+ SRC_URI="https://github.com/Alexays/${PN^}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm64"
+ S="${WORKDIR}/${PN^}-${PV}"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="evdev experimental jack +libinput +logind mpd mpris network pipewire pulseaudio sndio systemd test tray +udev upower wifi"
+REQUIRED_USE="
+ upower? ( logind )
+"
+
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ >=app-text/scdoc-1.9.2
+ >=dev-util/gdbus-codegen-2.80.5-r1
+ dev-util/wayland-scanner
+ virtual/pkgconfig
+"
+RDEPEND="
+ dev-cpp/cairomm:0
+ dev-cpp/glibmm:2
+ dev-cpp/gtkmm:3.0
+ dev-libs/glib:2
+ dev-libs/jsoncpp:=
+ dev-libs/libsigc++:2
+ >=dev-libs/libfmt-8.1.1:=
+ >=dev-libs/spdlog-1.10.0:=
+ dev-libs/date:=
+ dev-libs/wayland
+ gui-libs/gtk-layer-shell
+ media-video/pipewire:=
+ x11-libs/gtk+:3[wayland]
+ x11-libs/libxkbcommon
+ evdev? ( dev-libs/libevdev )
+ jack? ( virtual/jack )
+ libinput? ( dev-libs/libinput:= )
+ logind? (
+ || ( sys-apps/systemd
+ sys-auth/elogind )
+ )
+ mpd? ( media-libs/libmpdclient )
+ mpris? ( >=media-sound/playerctl-2 )
+ network? ( dev-libs/libnl:3 )
+ pipewire? ( media-video/wireplumber:0/0.5 )
+ pulseaudio? ( media-libs/libpulse )
+ sndio? ( media-sound/sndio:= )
+ systemd? ( sys-apps/systemd:= )
+ tray? (
+ dev-libs/libayatana-appindicator
+ dev-libs/libdbusmenu[gtk3]
+ )
+ udev? ( virtual/libudev:= )
+ upower? ( sys-power/upower:= )
+ wifi? ( sys-apps/util-linux )
+"
+DEPEND="${RDEPEND}
+ dev-libs/wayland-protocols
+ test? ( dev-cpp/catch:0 )
+"
+
+src_configure() {
+ local emesonargs=(
+ -Dman-pages=enabled
+ -Dcava=disabled
+ $(meson_feature evdev libevdev)
+ $(meson_feature jack)
+ $(meson_feature libinput)
+ $(meson_feature logind)
+ $(meson_feature mpd)
+ $(meson_feature mpris)
+ $(meson_feature network libnl)
+ $(meson_feature pulseaudio)
+ $(meson_feature pipewire wireplumber)
+ $(meson_feature pipewire)
+ $(meson_feature sndio)
+ $(meson_feature systemd)
+ $(meson_feature test tests)
+ $(meson_feature tray dbusmenu-gtk)
+ $(meson_feature udev libudev)
+ $(meson_feature upower upower_glib)
+ $(meson_feature wifi rfkill)
+ $(meson_use experimental)
+ )
+ meson_src_configure
+}
diff --git a/gui-apps/waybar/waybar-0.12.0.ebuild b/gui-apps/waybar/waybar-0.12.0.ebuild
new file mode 100644
index 000000000000..93a8f6ef1466
--- /dev/null
+++ b/gui-apps/waybar/waybar-0.12.0.ebuild
@@ -0,0 +1,105 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit meson optfeature
+
+DESCRIPTION="Highly customizable Wayland bar for Sway and Wlroots based compositors"
+HOMEPAGE="https://github.com/Alexays/Waybar"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/Alexays/${PN^}.git"
+else
+ SRC_URI="https://github.com/Alexays/${PN^}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="amd64 ~arm64"
+ S="${WORKDIR}/${PN^}-${PV}"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="evdev experimental jack +libinput +logind mpd mpris network pipewire pulseaudio sndio systemd test tray +udev upower wifi"
+REQUIRED_USE="
+ upower? ( logind )
+"
+
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ >=app-text/scdoc-1.9.2
+ >=dev-util/gdbus-codegen-2.80.5-r1
+ dev-util/wayland-scanner
+ virtual/pkgconfig
+"
+RDEPEND="
+ dev-cpp/cairomm:0
+ dev-cpp/glibmm:2
+ dev-cpp/gtkmm:3.0
+ dev-libs/glib:2
+ dev-libs/jsoncpp:=
+ dev-libs/libsigc++:2
+ >=dev-libs/libfmt-8.1.1:=
+ >=dev-libs/spdlog-1.10.0:=
+ dev-libs/date:=
+ dev-libs/wayland
+ >=gui-libs/gtk-layer-shell-0.9.0
+ media-video/pipewire:=
+ x11-libs/gtk+:3[wayland]
+ x11-libs/libxkbcommon
+ evdev? ( dev-libs/libevdev )
+ jack? ( virtual/jack )
+ libinput? ( dev-libs/libinput:= )
+ logind? (
+ || ( sys-apps/systemd
+ sys-auth/elogind )
+ )
+ mpd? ( media-libs/libmpdclient )
+ mpris? ( >=media-sound/playerctl-2 )
+ network? ( dev-libs/libnl:3 )
+ pipewire? ( media-video/wireplumber:0/0.5 )
+ pulseaudio? ( media-libs/libpulse )
+ sndio? ( media-sound/sndio:= )
+ systemd? ( sys-apps/systemd:= )
+ tray? (
+ dev-libs/libayatana-appindicator
+ dev-libs/libdbusmenu[gtk3]
+ )
+ udev? ( virtual/libudev:= )
+ upower? ( sys-power/upower:= )
+ wifi? ( sys-apps/util-linux )
+"
+DEPEND="${RDEPEND}
+ dev-libs/wayland-protocols
+ test? ( dev-cpp/catch:0 )
+"
+
+src_configure() {
+ local emesonargs=(
+ -Dman-pages=enabled
+ -Dcava=disabled
+ $(meson_feature evdev libevdev)
+ $(meson_feature jack)
+ $(meson_feature libinput)
+ $(meson_feature logind)
+ $(meson_feature mpd)
+ $(meson_feature mpris)
+ $(meson_feature network libnl)
+ $(meson_feature pulseaudio)
+ $(meson_feature pipewire wireplumber)
+ $(meson_feature pipewire)
+ $(meson_feature sndio)
+ $(meson_feature systemd)
+ $(meson_feature test tests)
+ $(meson_feature tray dbusmenu-gtk)
+ $(meson_feature udev libudev)
+ $(meson_feature upower upower_glib)
+ $(meson_feature wifi rfkill)
+ $(meson_use experimental)
+ )
+ meson_src_configure
+}
+
+pkg_postinst() {
+ optfeature "default icons support" "media-fonts/fontawesome"
+}
diff --git a/gui-apps/waybar/waybar-0.14.0.ebuild b/gui-apps/waybar/waybar-0.14.0.ebuild
new file mode 100644
index 000000000000..494b727a9d27
--- /dev/null
+++ b/gui-apps/waybar/waybar-0.14.0.ebuild
@@ -0,0 +1,121 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit meson optfeature toolchain-funcs
+
+DESCRIPTION="Highly customizable Wayland bar for Sway and Wlroots based compositors"
+HOMEPAGE="https://github.com/Alexays/Waybar"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/Alexays/${PN^}.git"
+else
+ SRC_URI="https://github.com/Alexays/${PN^}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="amd64 ~arm64"
+ S="${WORKDIR}/${PN^}-${PV}"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="backlight evdev experimental gps jack +libinput +logind mpd mpris network niri pipewire pulseaudio sndio systemd test tray +udev upower wifi"
+REQUIRED_USE="
+ upower? ( logind )
+ backlight? ( udev logind )
+"
+
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ >=app-text/scdoc-1.9.2
+ >=dev-util/gdbus-codegen-2.80.5-r1
+ dev-util/wayland-scanner
+ virtual/pkgconfig
+"
+RDEPEND="
+ dev-cpp/cairomm:0
+ dev-cpp/glibmm:2
+ dev-cpp/gtkmm:3.0
+ dev-libs/glib:2
+ dev-libs/jsoncpp:=
+ dev-libs/libsigc++:2
+ >=dev-libs/libfmt-8.1.1:=
+ >=dev-libs/spdlog-1.10.0:=
+ dev-libs/date:=
+ dev-libs/wayland
+ >=gui-libs/gtk-layer-shell-0.9.0
+ media-video/pipewire:=
+ x11-libs/gtk+:3[wayland]
+ x11-libs/libxkbcommon
+ evdev? ( dev-libs/libevdev )
+ gps? ( sci-geosciences/gpsd:= )
+ jack? ( virtual/jack )
+ libinput? ( dev-libs/libinput:= )
+ logind? (
+ systemd? ( sys-apps/systemd )
+ !systemd? ( sys-auth/elogind )
+ )
+ mpd? ( media-libs/libmpdclient )
+ mpris? ( >=media-sound/playerctl-2 )
+ network? ( dev-libs/libnl:3 )
+ pipewire? ( media-video/wireplumber:0/0.5 )
+ pulseaudio? ( media-libs/libpulse )
+ sndio? ( media-sound/sndio:= )
+ systemd? ( sys-apps/systemd:= )
+ tray? (
+ dev-libs/libayatana-appindicator
+ dev-libs/libdbusmenu[gtk3]
+ )
+ udev? ( virtual/libudev:= )
+ upower? ( sys-power/upower:= )
+ wifi? ( sys-apps/util-linux )
+"
+DEPEND="${RDEPEND}
+ dev-libs/wayland-protocols
+ test? ( dev-cpp/catch:0 )
+"
+PATCHES=(
+ "${FILESDIR}"/meson-fix-build.patch
+)
+
+src_configure() {
+ local cxx_stdlib=$(tc-get-cxx-stdlib)
+ einfo "C++ standard library: ${cxx_stdlib:-unknown}"
+ local libcxx=false
+ if [[ ${cxx_stdlib} == libc++ ]]; then
+ libcxx=true
+ fi
+
+ local emesonargs=(
+ -Dlibcxx=${libcxx}
+ -Dman-pages=enabled
+ -Dcava=disabled # depends on LukashonakV/cava fork, but media-sound/cava is karlstav/cava
+ $(meson_feature evdev libevdev)
+ $(meson_feature gps)
+ $(meson_feature jack)
+ $(meson_feature libinput)
+ $(meson_feature logind)
+ $(meson_feature mpd)
+ $(meson_feature mpris)
+ $(meson_feature network libnl)
+ $(meson_feature pulseaudio)
+ $(meson_feature pipewire wireplumber)
+ $(meson_feature pipewire)
+ $(meson_feature sndio)
+ $(meson_feature systemd)
+ $(meson_feature test tests)
+ $(meson_feature tray dbusmenu-gtk)
+ $(meson_feature udev libudev)
+ $(meson_feature upower upower_glib)
+ $(meson_feature wifi rfkill)
+ $(meson_use backlight login-proxy)
+ $(meson_use experimental)
+ $(meson_use niri) # communicates by socket with gui-wm/niri::guru
+ )
+ meson_src_configure
+}
+
+pkg_postinst() {
+ optfeature "default icons support" "media-fonts/fontawesome"
+}
diff --git a/media-libs/glew/glew-1.10.0-r101.ebuild b/media-libs/glew/glew-1.10.0-r101.ebuild
new file mode 100644
index 000000000000..ee2ce0348197
--- /dev/null
+++ b/media-libs/glew/glew-1.10.0-r101.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit multilib-minimal toolchain-funcs
+
+DESCRIPTION="The OpenGL Extension Wrangler Library"
+HOMEPAGE="https://glew.sourceforge.net/"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tgz"
+
+LICENSE="BSD MIT"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~sparc ~x86 ~x64-macos ~x64-solaris"
+
+RDEPEND=">=virtual/opengl-7.0-r1[${MULTILIB_USEDEP}]
+ !=media-libs/glew-1.10*:0"
+
+DEPEND="${RDEPEND}
+ x11-base/xorg-proto
+ x11-libs/libX11"
+
+DOCS=""
+
+src_prepare() {
+ default
+
+ sed -i \
+ -e '/$(CC) $(CFLAGS) -o/s:$(CFLAGS):$(CFLAGS) $(LDFLAGS):' \
+ -e '/glew.lib:/s|lib/$(LIB.STATIC) ||' \
+ -e '/glew.lib.mx:/s|lib/$(LIB.STATIC.MX) ||' \
+ Makefile || die
+
+ # don't do stupid Solaris specific stuff that won't work in Prefix
+ cp config/Makefile.linux config/Makefile.solaris || die
+
+ multilib_copy_sources
+}
+
+glew_system() {
+ # Set the SYSTEM variable instead of probing. #523444 #595280
+ case ${CHOST} in
+ *linux*) echo "linux" ;;
+ *-darwin*) echo "darwin" ;;
+ *-solaris*) echo "solaris" ;;
+ mingw*|*-mingw*) echo "mingw" ;;
+ *) die "Unknown system ${CHOST}" ;;
+ esac
+}
+
+set_opts() {
+ myglewopts=(
+ AR="$(tc-getAR)"
+ STRIP=true
+ CC="$(tc-getCC)"
+ LD="$(tc-getCC) ${LDFLAGS}"
+ SYSTEM="$(glew_system)"
+ M_ARCH=""
+ LDFLAGS.EXTRA=""
+ LDFLAGS.GL="-lGL" # Don't need X libs!
+ POPT="${CFLAGS}"
+ )
+}
+
+multilib_src_compile() {
+ set_opts
+ emake glew.lib{,.mx} "${myglewopts[@]}"
+}
+
+multilib_src_install() {
+ newlib.so lib/libGLEW.so.${SLOT}.* libGLEW.so.${SLOT}
+ newlib.so lib/libGLEWmx.so.${SLOT}.* libGLEWmx.so.${SLOT}
+}
diff --git a/media-libs/glew/glew-1.6.0-r101.ebuild b/media-libs/glew/glew-1.6.0-r101.ebuild
new file mode 100644
index 000000000000..81b28e0c3d1b
--- /dev/null
+++ b/media-libs/glew/glew-1.6.0-r101.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit multilib-minimal toolchain-funcs
+
+DESCRIPTION="The OpenGL Extension Wrangler Library"
+HOMEPAGE="https://glew.sourceforge.net/"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tgz"
+
+LICENSE="BSD MIT"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~sparc ~x86 ~x64-macos ~x64-solaris"
+
+RDEPEND=">=virtual/opengl-7.0-r1[${MULTILIB_USEDEP}]"
+
+DEPEND="${RDEPEND}
+ x11-base/xorg-proto
+ x11-libs/libX11"
+
+DOCS=""
+
+src_prepare() {
+ default
+
+ sed -i \
+ -e '/$(CC) $(CFLAGS) -o/s:$(CFLAGS):$(CFLAGS) $(LDFLAGS):' \
+ -e '/glew.lib:/s|lib/$(LIB.STATIC) ||' \
+ -e '/glew.lib.mx:/s|lib/$(LIB.STATIC.MX) ||' \
+ Makefile || die
+
+ # don't do stupid Solaris specific stuff that won't work in Prefix
+ cp config/Makefile.linux config/Makefile.solaris || die
+
+ multilib_copy_sources
+}
+
+glew_system() {
+ # Set the SYSTEM variable instead of probing. #523444 #595280
+ case ${CHOST} in
+ *linux*) echo "linux" ;;
+ *-darwin*) echo "darwin" ;;
+ *-solaris*) echo "solaris" ;;
+ mingw*|*-mingw*) echo "mingw" ;;
+ *) die "Unknown system ${CHOST}" ;;
+ esac
+}
+
+set_opts() {
+ myglewopts=(
+ AR="$(tc-getAR)"
+ STRIP=true
+ CC="$(tc-getCC)"
+ LD="$(tc-getCC) ${LDFLAGS}"
+ SYSTEM="$(glew_system)"
+ M_ARCH=""
+ LDFLAGS.EXTRA=""
+ LDFLAGS.GL="-lGL" # Don't need X libs!
+ POPT="${CFLAGS}"
+ )
+}
+
+multilib_src_compile() {
+ set_opts
+ emake glew.lib{,.mx} "${myglewopts[@]}"
+}
+
+multilib_src_install() {
+ newlib.so lib/libGLEW.so.${SLOT}.* libGLEW.so.${SLOT}
+ newlib.so lib/libGLEWmx.so.${SLOT}.* libGLEWmx.so.${SLOT}
+}
diff --git a/media-video/ffmpeg/ffmpeg-9.0.2.ebuild b/media-video/ffmpeg/ffmpeg-9.0.2.ebuild
deleted file mode 100644
index 3af698d0c87f..000000000000
--- a/media-video/ffmpeg/ffmpeg-9.0.2.ebuild
+++ /dev/null
@@ -1,628 +0,0 @@
-# Copyright 2025-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit flag-o-matic multilib-minimal toolchain-funcs udev
-
-FFMPEG_SOC_PATCH=
-FFMPEG_SUBSLOT=61.63.63 # avutil.avcodec.avformat SONAME
-
-if [[ ${PV} == 9999 ]]; then
- inherit git-r3
- EGIT_REPO_URI=(
- https://git.ffmpeg.org/ffmpeg.git
- https://github.com/FFmpeg/FFmpeg.git
- )
-else
- inherit verify-sig
- SRC_URI="
- https://ffmpeg.org/releases/ffmpeg-${PV}.tar.xz
- verify-sig? ( https://ffmpeg.org/releases/ffmpeg-${PV}.tar.xz.asc )
- ${FFMPEG_SOC_PATCH:+"
- soc? ( https://dev.gentoo.org/~chewi/distfiles/${FFMPEG_SOC_PATCH} )
- "}
- "
- S=${WORKDIR}/ffmpeg-${PV} # avoid ${P} for ffmpeg-compat
- # unkeyworded for testing
- #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos"
-fi
-
-DESCRIPTION="Complete solution to record/convert/stream audio and video"
-HOMEPAGE="
- https://ffmpeg.org/
- https://code.ffmpeg.org/FFmpeg/FFmpeg/
-"
-
-[[ ${PN} == *-compat ]] && FFMPEG_UNSLOTTED= || FFMPEG_UNSLOTTED=1
-
-FFMPEG_IUSE_MAP=(
- # [+]flag[:[^][!]opt1,...][@<v3|nonfree>]], ^ = native-only, ! = override
- # remember to keep LICENSE, REQUIRED_USE, and RESTRICT in sync
- X:libxcb,libxcb-shape,libxcb-shm,libxcb-xfixes,xlib
- alsa
- amf
- amrenc:libvo-amrwbenc@v3
- amr:libopencore-amrnb,libopencore-amrwb@v3
- appkit
- bluray:libbluray
- bs2b:libbs2b
- bzip2:bzlib
- cairo
- cdio:libcdio
- chromaprint
- codec2:libcodec2
- cuda-clang:cuda-llvm
- +dav1d:libdav1d
- ${FFMPEG_UNSLOTTED:+doc:^htmlpages}
- +drm:libdrm
- dvd:libdvdnav,libdvdread
- fdk:libfdk-aac@nonfree
- flite:libflite
- +fontconfig:libfontconfig
- frei0r
- fribidi:libfribidi
- gcrypt
- gme:libgme
- gmp:@v3
- +gnutls # unused if USE=openssl, default for bug #905113,#917627
- +gpl
- gsm:libgsm
- iec61883:libiec61883
- ieee1394:libdc1394
- jack:libjack
- jpeg2k:libopenjpeg
- jpegxl:libjxl
- kvazaar:libkvazaar
- ladspa
- lame:libmp3lame
- lcms:lcms2
- libaom
- libaribb24:@v3 # reminder: req use on gpl unneeded if >=1.0.4 (not in tree)
- +libass
- libcaca
- libilbc
- liblc3
- libplacebo
- librtmp:librtmp
- libsoxr
- lv2
- lzma
- modplug:libmodplug
- nvenc:cuvid,ffnvcodec,nvdec,nvenc
- opencolorio:^libopencolorio # no multilib
- ocr:libtesseract
- openal
- opencl
- opengl
- openh264:libopenh264
- openmpt:libopenmpt
- openssl:openssl,!gnutls@v3ifgpl # still LGPL2.1+ if USE=-gpl
- opus:libopus
- pulseaudio:libpulse
- qrcode:libqrencode
- qsv:libvpl
- quirc:libquirc
- rabbitmq:^librabbitmq # no multilib
- rav1e:^librav1e # no multilib
- rist:^librist # no multilib
- rubberband:librubberband
- samba:libsmbclient@v3 # GPL-3+ only
- sdl:sdl2
- snappy:libsnappy
- sndio
- speex:libspeex
- srt:libsrt
- ssh:libssh
- svg:librsvg
- svt-av1:libsvtav1
- theora:libtheora
- +truetype:libfreetype,libharfbuzz
- twolame:libtwolame
- v4l:libv4l2
- vaapi
- vdpau
- vidstab:libvidstab
- vmaf:libvmaf
- vorbis:libvorbis
- vpx:libvpx
- # vulkan-static: it still uses shared, only means no dlopen()
- vulkan:vulkan,vulkan-static
- webp:libwebp
- x264:libx264
- x265:libx265
- +xml:libxml2
- xvid:libxvid
- zeromq:^libzmq # no multilib
- zimg:libzimg
- +zlib
- zvbi:libzvbi
-)
-
-# all-rights is used to express the GPL incompatibility (RESTRICT=bindist)
-LICENSE="
- gpl? (
- GPL-2+
- amr? ( GPL-3+ ) amrenc? ( GPL-3+ ) libaribb24? ( GPL-3+ )
- gmp? ( GPL-3+ ) openssl? ( GPL-3+ )
- fdk? ( all-rights-reserved )
- )
- !gpl? (
- LGPL-2.1+
- amr? ( LGPL-3+ ) amrenc? ( LGPL-3+ ) libaribb24? ( LGPL-3+ )
- gmp? ( LGPL-3+ )
- )
- samba? ( GPL-3+ )
-"
-[[ ${FFMPEG_UNSLOTTED} ]] && : 0 || : "$(ver_cut 1)"
-SLOT="${_}/${FFMPEG_SUBSLOT}"
-IUSE="
- ${FFMPEG_IUSE_MAP[*]%:*}
- ${FFMPEG_UNSLOTTED:+chromium}
- ${FFMPEG_SOC_PATCH:+soc}
-"
-REQUIRED_USE="
- cuda-clang? ( nvenc )
- fribidi? ( truetype )
- gmp? ( !librtmp )
- libplacebo? ( vulkan )
- libaribb24? ( gpl ) cdio? ( gpl ) dvd? ( gpl ) frei0r? ( gpl )
- rubberband? ( gpl ) samba? ( gpl ) vidstab? ( gpl ) x264? ( gpl )
- x265? ( gpl ) xvid? ( gpl )
- ${FFMPEG_UNSLOTTED:+chromium? ( opus )}
- ${FFMPEG_SOC_PATCH:+soc? ( drm )}
-"
-RESTRICT="gpl? ( fdk? ( bindist ) )"
-
-# dlopen: amdgpu-pro-amf
-COMMON_DEPEND="
- virtual/libiconv[${MULTILIB_USEDEP}]
- X? (
- x11-libs/libX11[${MULTILIB_USEDEP}]
- x11-libs/libXext[${MULTILIB_USEDEP}]
- x11-libs/libXv[${MULTILIB_USEDEP}]
- x11-libs/libxcb:=[${MULTILIB_USEDEP}]
- )
- alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
- amr? ( media-libs/opencore-amr[${MULTILIB_USEDEP}] )
- amrenc? ( media-libs/vo-amrwbenc[${MULTILIB_USEDEP}] )
- bluray? ( media-libs/libbluray:=[${MULTILIB_USEDEP}] )
- bs2b? ( media-libs/libbs2b[${MULTILIB_USEDEP}] )
- bzip2? ( app-arch/bzip2[${MULTILIB_USEDEP}] )
- cairo? ( x11-libs/cairo[${MULTILIB_USEDEP}] )
- cdio? ( dev-libs/libcdio-paranoia:=[${MULTILIB_USEDEP}] )
- chromaprint? ( media-libs/chromaprint:=[${MULTILIB_USEDEP}] )
- codec2? ( media-libs/codec2:=[${MULTILIB_USEDEP}] )
- dav1d? ( media-libs/dav1d:=[${MULTILIB_USEDEP}] )
- dvd? (
- media-libs/libdvdnav[${MULTILIB_USEDEP}]
- media-libs/libdvdread:=[${MULTILIB_USEDEP}]
- )
- drm? ( x11-libs/libdrm[${MULTILIB_USEDEP}] )
- fdk? ( media-libs/fdk-aac:=[${MULTILIB_USEDEP}] )
- flite? ( app-accessibility/flite[${MULTILIB_USEDEP}] )
- fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
- frei0r? ( media-plugins/frei0r-plugins[${MULTILIB_USEDEP}] )
- fribidi? ( dev-libs/fribidi[${MULTILIB_USEDEP}] )
- gcrypt? ( dev-libs/libgcrypt:=[${MULTILIB_USEDEP}] )
- gme? ( media-libs/game-music-emu[${MULTILIB_USEDEP}] )
- gmp? ( dev-libs/gmp:=[${MULTILIB_USEDEP}] )
- gnutls? ( !openssl? (
- net-libs/gnutls:=[${MULTILIB_USEDEP}]
- ) )
- gsm? ( media-sound/gsm[${MULTILIB_USEDEP}] )
- iec61883? (
- media-libs/libiec61883[${MULTILIB_USEDEP}]
- sys-libs/libavc1394[${MULTILIB_USEDEP}]
- sys-libs/libraw1394[${MULTILIB_USEDEP}]
- )
- ieee1394? (
- media-libs/libdc1394:2=[${MULTILIB_USEDEP}]
- sys-libs/libraw1394[${MULTILIB_USEDEP}]
- )
- jack? ( virtual/jack[${MULTILIB_USEDEP}] )
- jpeg2k? ( media-libs/openjpeg:2=[${MULTILIB_USEDEP}] )
- jpegxl? ( media-libs/libjxl:=[${MULTILIB_USEDEP}] )
- kvazaar? ( media-libs/kvazaar:=[${MULTILIB_USEDEP}] )
- lame? ( media-sound/lame[${MULTILIB_USEDEP}] )
- lcms? ( media-libs/lcms:2[${MULTILIB_USEDEP}] )
- libaom? ( media-libs/libaom:=[${MULTILIB_USEDEP}] )
- libaribb24? ( media-libs/aribb24[${MULTILIB_USEDEP}] )
- libass? ( media-libs/libass:=[${MULTILIB_USEDEP}] )
- libcaca? ( media-libs/libcaca[${MULTILIB_USEDEP}] )
- libilbc? ( media-libs/libilbc:=[${MULTILIB_USEDEP}] )
- liblc3? ( >=media-sound/liblc3-1.1[${MULTILIB_USEDEP}] )
- libplacebo? ( media-libs/libplacebo:=[vulkan,${MULTILIB_USEDEP}] )
- librtmp? ( media-video/rtmpdump[${MULTILIB_USEDEP}] )
- libsoxr? ( media-libs/soxr[${MULTILIB_USEDEP}] )
- lv2? (
- media-libs/lilv[${MULTILIB_USEDEP}]
- media-libs/lv2[${MULTILIB_USEDEP}]
- )
- lzma? ( app-arch/xz-utils[${MULTILIB_USEDEP}] )
- modplug? ( media-libs/libmodplug[${MULTILIB_USEDEP}] )
- opencolorio? ( media-libs/opencolorio:= )
- ocr? ( app-text/tesseract:=[${MULTILIB_USEDEP}] )
- openal? ( media-libs/openal[${MULTILIB_USEDEP}] )
- opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
- opengl? ( media-libs/libglvnd[X,${MULTILIB_USEDEP}] )
- openh264? ( media-libs/openh264:=[${MULTILIB_USEDEP}] )
- openmpt? ( media-libs/libopenmpt[${MULTILIB_USEDEP}] )
- openssl? ( >=dev-libs/openssl-3:=[${MULTILIB_USEDEP}] )
- opus? ( media-libs/opus[${MULTILIB_USEDEP}] )
- pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
- qrcode? ( media-gfx/qrencode:=[${MULTILIB_USEDEP}] )
- qsv? ( media-libs/libvpl:=[${MULTILIB_USEDEP}] )
- quirc? ( media-libs/quirc:=[${MULTILIB_USEDEP}] )
- rabbitmq? ( net-libs/rabbitmq-c:= )
- rav1e? ( >=media-video/rav1e-0.5:=[capi] )
- rist? ( net-libs/librist )
- rubberband? ( media-libs/rubberband:=[${MULTILIB_USEDEP}] )
- samba? ( net-fs/samba:=[client,${MULTILIB_USEDEP}] )
- sdl? (
- media-libs/libsdl2[sound(+),video(+),${MULTILIB_USEDEP}]
- libplacebo? ( media-libs/libsdl2[vulkan] )
- )
- snappy? ( app-arch/snappy:=[${MULTILIB_USEDEP}] )
- sndio? ( media-sound/sndio:=[${MULTILIB_USEDEP}] )
- speex? ( media-libs/speex[${MULTILIB_USEDEP}] )
- srt? ( net-libs/srt:=[${MULTILIB_USEDEP}] )
- ssh? ( net-libs/libssh:=[sftp,${MULTILIB_USEDEP}] )
- svg? (
- dev-libs/glib:2[${MULTILIB_USEDEP}]
- >=gnome-base/librsvg-2.52:2[${MULTILIB_USEDEP}]
- x11-libs/cairo[${MULTILIB_USEDEP}]
- )
- svt-av1? ( >=media-libs/svt-av1-0.9:=[${MULTILIB_USEDEP}] )
- theora? ( media-libs/libtheora:=[encode,${MULTILIB_USEDEP}] )
- truetype? (
- media-libs/freetype:2[${MULTILIB_USEDEP}]
- media-libs/harfbuzz:=[${MULTILIB_USEDEP}]
- )
- twolame? ( media-sound/twolame[${MULTILIB_USEDEP}] )
- v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
- vaapi? ( media-libs/libva:=[X?,${MULTILIB_USEDEP}] )
- vdpau? (
- x11-libs/libX11[${MULTILIB_USEDEP}]
- x11-libs/libvdpau[${MULTILIB_USEDEP}]
- )
- vidstab? ( media-libs/vidstab[${MULTILIB_USEDEP}] )
- vmaf? ( media-libs/libvmaf:=[${MULTILIB_USEDEP}] )
- vorbis? ( media-libs/libvorbis[${MULTILIB_USEDEP}] )
- vpx? ( media-libs/libvpx:=[${MULTILIB_USEDEP}] )
- vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
- webp? ( media-libs/libwebp:=[${MULTILIB_USEDEP}] )
- x264? ( media-libs/x264:=[${MULTILIB_USEDEP}] )
- x265? ( media-libs/x265:=[${MULTILIB_USEDEP}] )
- xml? ( dev-libs/libxml2:=[${MULTILIB_USEDEP}] )
- xvid? ( media-libs/xvid[${MULTILIB_USEDEP}] )
- zeromq? ( net-libs/zeromq:= )
- zimg? ( media-libs/zimg[${MULTILIB_USEDEP}] )
- zlib? ( virtual/zlib:=[${MULTILIB_USEDEP}] )
- zvbi? ( media-libs/zvbi[${MULTILIB_USEDEP}] )
- ${FFMPEG_SOC_PATCH:+"
- soc? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
- "}
-"
-RDEPEND="
- ${COMMON_DEPEND}
- amf? ( media-video/amdgpu-pro-amf )
-"
-DEPEND="
- ${COMMON_DEPEND}
- X? ( x11-base/xorg-proto )
- amf? ( >=media-libs/amf-headers-1.5.2 )
- kernel_linux? ( >=sys-kernel/linux-headers-6 )
- ladspa? ( media-libs/ladspa-sdk )
- nvenc? ( >=media-libs/nv-codec-headers-12.1.14.0 )
- opencl? ( dev-util/opencl-headers )
- vulkan? (
- dev-util/spirv-headers
- >=dev-util/vulkan-headers-1.4.317
- )
-"
-BDEPEND="
- app-alternatives/awk
- virtual/pkgconfig
- amd64? ( dev-lang/nasm )
- cuda-clang? ( llvm-core/clang:*[llvm_targets_NVPTX] )
- vulkan? ( media-libs/shaderc )
- ${FFMPEG_UNSLOTTED:+"
- dev-lang/perl
- doc? ( sys-apps/texinfo )
- "}
-"
-[[ ${PV} != 9999 ]] &&
- BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-ffmpeg )"
-
-DOCS=( CREDITS Changelog README.md doc/APIchanges )
-[[ ${PV} != 9999 ]] && DOCS+=( RELEASE_NOTES )
-
-MULTILIB_WRAPPED_HEADERS=(
- /usr/include/libavutil/avconfig.h
-)
-
-PATCHES=(
- "${FILESDIR}"/ffmpeg-6.1-opencl-parallel-gmake-fix.patch
-)
-
-pkg_pretend() {
- # TODO: drop this after a few months
- if has_version "${CATEGORY}/${PN}[mp3]" && use !lame; then #952971
- ewarn "${PN}'s 'mp3' USE was renamed to 'lame', please enable it"
- ewarn "if wish to keep the ability to encode using media-sound/lame."
- ewarn "This is *not* needed if only want mp3 playback."
- fi
-}
-
-pkg_setup() {
- [[ ${MERGE_TYPE} != binary ]] || return
-
- if use chromaprint && has_version 'media-libs/chromaprint[tools]'; then
- ewarn "media-libs/chromaprint is installed with USE=tools which links to"
- ewarn "ffmpeg, and USE=chromaprint is enabled on ffmpeg which links to"
- ewarn "chromaprint (circular). This may cause issues when updating ffmpeg."
- ewarn
- ewarn "If get a build failure with 'ERROR: chromaprint not found' or so,"
- ewarn "first rebuild chromaprint with USE=-tools, then rebuild ffmpeg, and"
- ewarn "then finally rebuild chromaprint with USE=tools again (bug #862996)."
- fi
-
- [[ ${EXTRA_FFMPEG_CONF} ]] && # drop this eventually
- die "EXTRA_FFMPEG_CONF is set in the environment, please use EXTRA_ECONF instead"
-}
-
-src_unpack() {
- if [[ ${PV} == 9999 ]]; then
- git-r3_src_unpack
- else
- use verify-sig &&
- verify-sig_verify_detached "${DISTDIR}"/ffmpeg-${PV}.tar.xz{,.asc} \
- "${BROOT}"/usr/share/openpgp-keys/ffmpeg.asc
- default
- fi
-}
-
-src_prepare() {
- in_iuse chromium && PATCHES+=( "${FILESDIR}"/chromium-r3.patch )
- in_iuse soc && use soc && PATCHES+=( "${DISTDIR}"/${FFMPEG_SOC_PATCH} )
-
- default
-
- # respect user preferences
- sed -i '/cflags -fdiagnostics-color/d' configure || die
-
- # handle here to avoid repeating for each ABI below (bug #923491)
- FFMPEG_ENABLE_LTO=
- if tc-is-lto; then
- : "$(get-flag -flto)" # get -flto=<val> (e.g. =thin)
- FFMPEG_ENABLE_LTO=--enable-lto${_#-flto}
-
- tc-ld-is-mold && tc-is-clang && FFMPEG_ENABLE_LTO= #963835
- fi
- filter-lto
-}
-
-multilib_src_configure() {
- local conf=( "${S}"/configure ) # not autotools-based
-
- local prefix=${EPREFIX}/usr
- if [[ ! ${FFMPEG_UNSLOTTED} ]]; then
- prefix+=/lib/ffmpeg${SLOT%/*}
- # could get SONAME clashes, so prefer rpath over LDPATH
- conf+=(
- --enable-rpath
- --disable-doc
- )
- fi
-
- conf+=(
- --prefix="${prefix}"
- --libdir="${prefix}"/$(get_libdir)
- --shlibdir="${prefix}"/$(get_libdir)
- --mandir="${prefix}"/share/man
- --docdir="${EPREFIX}"/usr/share/doc/${PF}/html
-
- --ar="$(tc-getAR)"
- --cc="$(tc-getCC)"
- --cxx="$(tc-getCXX)"
- --nm="$(tc-getNM)"
- --pkg-config="$(tc-getPKG_CONFIG)"
- --ranlib="$(tc-getRANLIB)"
- --disable-stripping
-
- # overrides users' -g/-O, let *FLAGS handle these
- --disable-debug
- --disable-optimizations
- --optflags=' '
-
- # pass option over *FLAGS due to special logic (bug #566282,#754654)
- ${FFMPEG_ENABLE_LTO}
-
- # basic defaults that should not really need a USE
- --enable-iconv
- --enable-pic
- --enable-shared
- --disable-static
- $(multilib_native_enable manpages) # needs pod2man
- --disable-podpages
- --disable-txtpages
-
- # disabled primarily due to being unpackaged
- --disable-decklink
- --disable-libaribcaption
- --disable-libdavs2
- --disable-libklvanc
- --disable-liblcevc-dec
- --disable-libmpeghdec
- --disable-libmysofa
- --disable-liboapv
- --disable-libonnxruntime
- --disable-libopenvino
- --disable-libshine
- --disable-libsvtjpegxs
- --disable-libtls
- --disable-libuavs3d
- --disable-libvvenc
- --disable-libxavs
- --disable-libxavs2
- --disable-libxevd
- --disable-libxevdb
- --disable-libxeve
- --disable-libxeveb
- --disable-ohcodec
- --disable-pocketsphinx
- --disable-rkmpp
- --disable-vapoursynth
- --disable-whisper
-
- # disabled for other or additional reasons
- --disable-cuda-nvcc # prefer cuda-llvm for less issues
- --disable-liblensfun # https://trac.ffmpeg.org/ticket/9112 (abandoned?)
- --disable-libmfx # prefer libvpl for USE=qsv
- --disable-libopencv # leaving for later due to circular opencv[ffmpeg]
- --disable-libtensorflow # causes headaches, and is gone
- --disable-libtorch # support may need special attention (bug #936127)
- --disable-mbedtls # messy with slots, tests underlinking issues
- --disable-mmal # prefer USE=soc
-
- # to avoid obscure issues like bug #915384 and simplify the ebuild,
- # not passing the following (use EXTRA_ECONF if really must):
- # --cpu: adds -march=<exact> after the user's more adapted
- # =native, its logic also does not account for -mno-*
- # --disable/enable-<cpufeature>: safer to detect at runtime
- )
-
- in_iuse soc && use soc &&
- conf+=(
- --enable-libudev
- --enable-sand
- --enable-v4l2-request
- )
-
- # broken on x32 (bug #427004), and not PIC safe on x86 (bug #916067)
- [[ ${ABI} == @(x32|x86) ]] && conf+=( --disable-asm )
-
- # disable due to asm-related failures on ppc (bug #951464, ppc64be)
- # https://trac.ffmpeg.org/ticket/9604 (ppc64el)
- # https://trac.ffmpeg.org/ticket/10955 (ppc64el)
- # (review re-enabling if resolved, or if debian allows it again)
- use ppc || use ppc64 && conf+=( --disable-asm )
-
- if tc-is-cross-compiler; then
- conf+=(
- --enable-cross-compile
- --arch="$(tc-arch-kernel)"
- --cross-prefix="${CHOST}-"
- --host-cc="$(tc-getBUILD_CC)"
- )
- case ${CHOST} in
- *mingw32*) conf+=( --target-os=mingw32 );;
- *linux*) conf+=( --target-os=linux );;
- esac
- elif use arm; then
- # TODO?: could *always* pass tc-arch-kernel, albeit that function
- # is meant for the kernel and just mostly matches by accident
- conf+=( --arch=arm ) #969514
- fi
-
- # skipping tests is handled at configure-time
- local skip_tests=()
-
- # tests known failing on BE arches, skip for now given potential
- # fixes are complex and would rather wait for fixed release
- # (shouldn't impact most BE users, scarcely used features)
- # https://code.ffmpeg.org/FFmpeg/FFmpeg/issues/22564
- # https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/22274
- [[ $(tc-endian) == big ]] &&
- skip_tests+=(
- filter-drawvg-video
- vsynth{1,2,3}-ffvhuff420p12
- )
-
- # zlib-ng is not bitexact w/ zlib producing mismatching md5sum (bug #965737)
- has_version 'sys-libs/zlib-ng[compat]' &&
- skip_tests+=(
- lavf-{apng{,.png},gray16be.png,png,rgb48be.png}
- mov-mp4-frag-flush
- vsynth{1,2,3}-{flashsv,mpng,zlib}
- )
-
- (( ${#skip_tests[@]} )) &&
- conf+=( --ignore-tests=$(IFS=,; echo "${skip_tests[*]}") )
-
- # import options from FFMPEG_IUSE_MAP
- local flag license mod v
- local -A optmap=() licensemap=()
- for v in "${FFMPEG_IUSE_MAP[@]}"; do
- [[ ${v} =~ \+?([^:]+):?([^@]*)@?(.*) ]] || die "${v}"
- flag=${BASH_REMATCH[1]}
- license=${BASH_REMATCH[3]}
- v=${BASH_REMATCH[2]:-${flag}}
- for v in ${v//,/ }; do
- mod=${v::1}
- v=${v#[\!\^]}
- if [[ ${mod} == '!' ]]; then
- if use ${flag}; then
- optmap[${v}]=--disable-${v}
- unset licensemap[${v}]
- fi
- elif [[ ! -v optmap[${v}] ]]; then
- if [[ ${mod} == '^' ]]; then
- optmap[${v}]=$(multilib_native_use_enable ${flag} ${v})
- else
- optmap[${v}]=$(use_enable ${flag} ${v})
- fi
- use ${flag} && licensemap[${v}]=${license}
- fi
- done
- done
- for license in "${licensemap[@]}"; do
- case ${license} in
- v3ifgpl) use gpl || continue ;&
- v3) optmap[v3]=--enable-version3 ;;
- nonfree) use gpl && optmap[nonfree]=--enable-nonfree ;;
- esac
- done
- conf+=(
- "${optmap[@]}"
- ${EXTRA_ECONF}
- )
-
- einfo "${conf[*]}"
- "${conf[@]}" || die "configure failed, see ${BUILD_DIR}/ffbuild/config.log"
-}
-
-multilib_src_compile() {
- mkdir -p fftools/resources/ || die #965687
- mkdir -p libav{codec,filter}/vulkan/ || die #974907
-
- emake V=1
-
- in_iuse chromium && use chromium && multilib_is_native_abi &&
- emake V=1 libffmpeg
-}
-
-multilib_src_test() {
- local -x LD_LIBRARY_PATH=$(printf %s: "${BUILD_DIR}"/lib*)${LD_LIBRARY_PATH}
- emake V=1 -k fate
-}
-
-multilib_src_install() {
- emake V=1 DESTDIR="${D}" install
- in_iuse chromium && use chromium && multilib_is_native_abi &&
- emake V=1 DESTDIR="${D}" install-libffmpeg
-}
-
-multilib_src_install_all() {
- in_iuse soc && use soc && udev_dorules "${FILESDIR}"/60-dma-heap-ffmpeg.rules
- einstalldocs
-}
-
-pkg_postinst() {
- in_iuse soc && use soc && udev_reload
-}
-
-pkg_postrm() {
- in_iuse soc && use soc && udev_reload
-}
diff --git a/net-wireless/sdrplay/sdrplay-2.13.1-r1.ebuild b/net-wireless/sdrplay/sdrplay-2.13.1-r1.ebuild
new file mode 100644
index 000000000000..60f674d398fd
--- /dev/null
+++ b/net-wireless/sdrplay/sdrplay-2.13.1-r1.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+
+inherit unpacker udev multilib-minimal
+
+MY_PV_1=$(ver_cut 1)
+MY_PV_12=$(ver_cut 1-2)
+
+DESCRIPTION="SDRplay API/HW driver for all RSPs"
+HOMEPAGE="https://www.sdrplay.com"
+SRC_URI="http://www.sdrplay.com/software/SDRplay_RSP_API-Linux-${PV}.run"
+
+LICENSE="SDRplay"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="virtual/libusb:1
+ virtual/udev"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}"
+
+QA_PREBUILT="usr/lib64/libmirsdrapi-rsp.so.${MY_PV_12}
+usr/lib32/libmirsdrapi-rsp.so.${MY_PV_12}"
+
+multilib_src_install_all() {
+ insinto /usr/include/
+ doins mirsdrapi-rsp.h
+
+ udev_dorules 66-mirics.rules
+ udev_reload
+}
+
+multilib_src_install() {
+ if [ "${MULTILIB_ABI_FLAG}" = "abi_x86_32" ]; then
+ dolib.so "${S}/i686/libmirsdrapi-rsp.so.${MY_PV_12}"
+ fi
+
+ if [ "${MULTILIB_ABI_FLAG}" = "abi_x86_64" ]; then
+ dolib.so "${S}/x86_64/libmirsdrapi-rsp.so.${MY_PV_12}"
+ fi
+
+ dosym libmirsdrapi-rsp.so.${MY_PV_12} "${EROOT}/usr/$(get_libdir)/libmirsdrapi-rsp.so.${MY_PV_1}"
+ dosym libmirsdrapi-rsp.so.${MY_PV_1} "${EROOT}/usr/$(get_libdir)/libmirsdrapi-rsp.so"
+}
diff --git a/sys-block/hpssacli/hpssacli-2.40.13.0-r2.ebuild b/sys-block/hpssacli/hpssacli-2.40.13.0-r2.ebuild
new file mode 100644
index 000000000000..b52f1d77c8a2
--- /dev/null
+++ b/sys-block/hpssacli/hpssacli-2.40.13.0-r2.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit pax-utils rpm
+
+MY_PV=$(ver_rs 2 '-')
+
+DESCRIPTION="HPE Smart Storage Administrator (HPE SSA) CLI (HPSSACLI, formerly HPACUCLI)"
+HOMEPAGE="http://h20564.www2.hpe.com/hpsc/swd/public/detail?swItemId=MTX_04bffb688a73438598fef81ddd"
+SRC_URI="
+ amd64? ( https://downloads.linux.hpe.com/SDR/repo/spp/RHEL/6/x86_64/current/${PN}-${MY_PV}.x86_64.rpm )
+ x86? ( https://downloads.linux.hpe.com/SDR/repo/spp/RHEL/6/i686/current/${PN}-${MY_PV}.i386.rpm )"
+
+LICENSE="hpe"
+SLOT="0"
+KEYWORDS="-* amd64 x86"
+RESTRICT="mirror bindist"
+
+RDEPEND="elibc_glibc? ( >sys-libs/glibc-2.14 )
+ >=sys-libs/libunwind-0.99
+ >=sys-process/procps-3.3.6"
+
+DOCS=( license.txt readme.txt )
+
+MY_HPSSACLI_BASEDIR="/opt/hp/hpssacli"
+
+QA_PREBUILT="${MY_HPSSACLI_BASEDIR:1}/hpssa*.bin"
+QA_EXECSTACK="${MY_HPSSACLI_BASEDIR:1}/hpssa*.bin"
+
+src_unpack() {
+ rpm_src_unpack
+
+ mkdir "${S}" || die "Failed to create '${S}'"
+}
+
+src_prepare() {
+ default
+
+ # Create a clean $S
+ mv "${WORKDIR}"/opt/hp/hpssacli/bld/hpss* "${S}" || die "Failed to to copy 'hpss*' related files"
+ mv "${S}"/hpssacli.license "${S}"/license.txt || die "Renaming hpssacli.license failed!"
+ mv "${S}"/hpssacli*.txt "${S}"/readme.txt || die "Renaming hpssacli*.txt failed!"
+ rm -rf "${WORKDIR}"/opt || die "Failed to cleanup '${WORKDIR}/opt'"
+ rm -rf "${WORKDIR}"/usr || die "Failed to cleanup '${WORKDIR}/usr'"
+}
+
+src_install() {
+ newsbin "${FILESDIR}"/"${PN}-wrapper" ${PN}
+ dosym ${PN} /usr/sbin/hpssascripting
+
+ exeinto "${MY_HPSSACLI_BASEDIR}"
+ for bin in "${S}"/hpssa{cli,scripting}; do
+ local basename=$(basename "${bin}")
+ newexe "${bin}" ${basename}.bin
+ done
+
+ dodoc "${DOCS[@]}"
+
+ pax-mark m "${D}${HPSSACLI_BASEDIR}"/*.bin
+}
diff --git a/sys-block/hpssacli/hpssacli-3.40.3.0-r1.ebuild b/sys-block/hpssacli/hpssacli-3.40.3.0-r1.ebuild
new file mode 100644
index 000000000000..1ec8e9744d5c
--- /dev/null
+++ b/sys-block/hpssacli/hpssacli-3.40.3.0-r1.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit pax-utils rpm
+
+MY_PV=$(ver_rs 2 '-')
+
+DESCRIPTION="HPE Smart Storage Administrator (HPE SSA) CLI (HPSSACLI, formerly HPACUCLI)"
+HOMEPAGE="https://support.hpe.com/hpsc/swd/public/detail?swItemId=MTX_688838b13b194c7abe1aa98584"
+SRC_URI="https://downloads.linux.hpe.com/SDR/repo/spp/2019.03.0/packages/ssacli-${MY_PV}.x86_64.rpm"
+
+LICENSE="hpe"
+SLOT="0"
+KEYWORDS="-* amd64"
+RESTRICT="mirror bindist"
+
+RDEPEND="
+ elibc_glibc? ( sys-libs/glibc )
+ sys-libs/libunwind
+ sys-process/procps"
+
+DOCS=( license.txt readme.txt )
+
+MY_HPSSACLI_BASEDIR="/opt/hp/hpssacli"
+
+QA_PREBUILT="${MY_HPSSACLI_BASEDIR:1}/hpssa*.bin"
+QA_EXECSTACK="${MY_HPSSACLI_BASEDIR:1}/hpssa*.bin"
+
+src_unpack() {
+ rpm_src_unpack
+
+ mkdir "${S}" || die "Failed to create '${S}'"
+}
+
+src_prepare() {
+ default
+
+ # Create a clean $S
+ mv "${WORKDIR}"/opt/smartstorageadmin/ssacli/bin/ssa* "${S}" || die "Failed to to copy 'ssa*' related files"
+ mv "${S}"/ssacli "${S}"/hpssacli || die "Renaming ssacli failed!"
+ mv "${S}"/ssascripting "${S}"/hpssascripting || die "Renaming ssascripting failed!"
+ mv "${S}"/ssacli.license "${S}"/license.txt || die "Renaming ssacli.license failed!"
+ mv "${S}"/ssacli*.txt "${S}"/readme.txt || die "Renaming ssacli*.txt failed!"
+ rm -r "${WORKDIR}"/opt || die "Failed to cleanup '${WORKDIR}/opt'"
+ rm -r "${WORKDIR}"/usr || die "Failed to cleanup '${WORKDIR}/usr'"
+}
+
+src_install() {
+ newsbin "${FILESDIR}"/"${PN}-wrapper" ${PN}
+ dosym ${PN} /usr/sbin/hpssascripting
+
+ exeinto "${MY_HPSSACLI_BASEDIR}"
+ for bin in "${S}"/hpssa{cli,scripting}; do
+ local basename=$(basename "${bin}")
+ newexe "${bin}" ${basename}.bin
+ done
+
+ dodoc "${DOCS[@]}"
+
+ pax-mark m "${D}${HPSSACLI_BASEDIR}"/*.bin
+}
diff --git a/sys-devel/gcc/gcc-8.5.0-r2.ebuild b/sys-devel/gcc/gcc-8.5.0-r2.ebuild
new file mode 100644
index 000000000000..50c75bcc3a77
--- /dev/null
+++ b/sys-devel/gcc/gcc-8.5.0-r2.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+
+# Maintenance notes and explanations of GCC handling are on the wiki:
+# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc
+
+TOOLCHAIN_PATCH_SUFFIX="xz"
+TOOLCHAIN_HAS_TESTS=1
+PATCH_VER="5"
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit toolchain
+
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ elibc_glibc? ( >=sys-libs/glibc-2.13 )
+ >=${CATEGORY}/binutils-2.20"
+
+if [[ ${CATEGORY} != cross-* ]] ; then
+ PDEPEND="${PDEPEND} elibc_glibc? ( >=sys-libs/glibc-2.13 )"
+fi
diff --git a/sys-firmware/vgabios/vgabios-0.7a-r1.ebuild b/sys-firmware/vgabios/vgabios-0.7a-r1.ebuild
new file mode 100644
index 000000000000..84a7f9b665bc
--- /dev/null
+++ b/sys-firmware/vgabios/vgabios-0.7a-r1.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+# Can't really call them backports when they're fixes that upstream
+# won't carry
+FIXES=1
+
+DESCRIPTION="VGA BIOS implementation"
+HOMEPAGE="http://www.nongnu.org/vgabios/"
+SRC_URI="https://savannah.gnu.org/download/${PN}/${P}.tgz
+ https://dev.gentoo.org/~cardoe/distfiles/${P}-fixes-${FIXES}.tar.bz2"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 x86"
+IUSE="binary debug"
+BDEPEND="!binary? ( sys-devel/dev86 )"
+
+src_prepare() {
+ if [[ -n ${FIXES} ]] ; then
+ eapply patches/*.patch
+ fi
+
+ default
+}
+
+src_compile() {
+ if ! use binary ; then
+ emake clean # Necessary to clean up the pre-built pieces
+ emake biossums
+ emake
+ fi
+}
+
+src_install() {
+ insinto /usr/share/vgabios
+
+ # Stock VGABIOS
+ newins VGABIOS-lgpl-latest.bin vgabios.bin
+ use debug && newins VGABIOS-lgpl-latest.debug.bin vgabios.debug.bin
+
+ # Cirrus
+ newins VGABIOS-lgpl-latest.cirrus.bin vgabios-cirrus.bin
+ use debug && newins VGABIOS-lgpl-latest.cirrus.debug.bin \
+ vgabios-cirrus.debug.bin
+
+ if ! use binary ; then
+ # QXL
+ newins VGABIOS-lgpl-latest.qxl.bin vgabios-qxl.bin
+ use debug && newins VGABIOS-lgpl-latest.qxl.debug.bin \
+ vgabios-qxl.debug.bin
+
+ # Standard VGA
+ newins VGABIOS-lgpl-latest.stdvga.bin vgabios-stdvga.bin
+ use debug && newins VGABIOS-lgpl-latest.stdvga.debug.bin \
+ vgabios-stdvga.debug.bin
+
+ # VMWare
+ newins VGABIOS-lgpl-latest.vmware.bin vgabios-vmware.bin
+ use debug && newins VGABIOS-lgpl-latest.vmware.debug.bin \
+ vgabios-vmware.debug.bin
+ else
+ ewarn "USE=binary only includes default & cirrus bios builds"
+ fi
+}
diff --git a/sys-firmware/vgabios/vgabios-0.7a.ebuild b/sys-firmware/vgabios/vgabios-0.7a.ebuild
new file mode 100644
index 000000000000..85d6d4c72bce
--- /dev/null
+++ b/sys-firmware/vgabios/vgabios-0.7a.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+# Can't really call them backports when they're fixes that upstream
+# won't carry
+FIXES=1
+
+DESCRIPTION="VGA BIOS implementation"
+HOMEPAGE="http://www.nongnu.org/vgabios/"
+SRC_URI="https://savannah.gnu.org/download/${PN}/${P}.tgz
+ https://dev.gentoo.org/~cardoe/distfiles/${P}-fixes-${FIXES}.tar.bz2"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="debug"
+
+BDEPEND="amd64? ( sys-devel/dev86 )
+ x86? ( sys-devel/dev86 )"
+
+src_prepare() {
+ if [[ -n ${FIXES} ]] ; then
+ eapply patches/*.patch
+ fi
+
+ default
+}
+
+src_compile() {
+ if use amd64 || use x86 ; then
+ emake clean # Necessary to clean up the pre-built pieces
+ emake biossums
+ emake
+ fi
+}
+
+src_install() {
+ insinto /usr/share/vgabios
+
+ if use amd64 || use x86 ; then
+ # Stock VGABIOS
+ newins VGABIOS-lgpl-latest.bin vgabios.bin
+ use debug && newins VGABIOS-lgpl-latest.debug.bin vgabios.debug.bin
+
+ # Cirrus
+ newins VGABIOS-lgpl-latest.cirrus.bin vgabios-cirrus.bin
+ use debug && newins VGABIOS-lgpl-latest.cirrus.debug.bin \
+ vgabios-cirrus.debug.bin
+
+ # QXL
+ newins VGABIOS-lgpl-latest.qxl.bin vgabios-qxl.bin
+ use debug && newins VGABIOS-lgpl-latest.qxl.debug.bin \
+ vgabios-qxl.debug.bin
+
+ # Standard VGA
+ newins VGABIOS-lgpl-latest.stdvga.bin vgabios-stdvga.bin
+ use debug && newins VGABIOS-lgpl-latest.stdvga.debug.bin \
+ vgabios-stdvga.debug.bin
+
+ # VMWare
+ newins VGABIOS-lgpl-latest.vmware.bin vgabios-vmware.bin
+ use debug && newins VGABIOS-lgpl-latest.vmware.debug.bin \
+ vgabios-vmware.debug.bin
+ else
+ doins bins/*
+ fi
+}