diff options
| author | root <root@alpha.trunkmasters.com> | 2026-09-18 21:53:21 -0500 |
|---|---|---|
| committer | root <root@alpha.trunkmasters.com> | 2026-09-18 21:53:21 -0500 |
| commit | 9720a11af1e64187117d3c485b8df96672a294fe (patch) | |
| tree | b59d49bd17ee8adbe820732ab0ddd8a05b9068f5 | |
| parent | ba2db746adde666ba2fbd08e45472b5de2d61510 (diff) | |
| download | baldeagleos-repo-9720a11af1e64187117d3c485b8df96672a294fe.tar.gz baldeagleos-repo-9720a11af1e64187117d3c485b8df96672a294fe.tar.xz baldeagleos-repo-9720a11af1e64187117d3c485b8df96672a294fe.zip | |
Checkpoint dirty output before beosrepo update
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 +} |
