diff --git a/bootstrap_sdk b/bootstrap_sdk index 834506ee6d2..0c636beda2b 100755 --- a/bootstrap_sdk +++ b/bootstrap_sdk @@ -65,16 +65,7 @@ ROOT_OVERLAY=${TEMPDIR}/stage4_overlay if [[ "$STAGES" =~ stage4 ]]; then info "Setting release to ${FLATCAR_VERSION}" rm -rf "${ROOT_OVERLAY}" - # need to setup the lib->lib64 symlink correctly - libdir=$(get_sdk_libdir) - mkdir -p "${ROOT_OVERLAY}/usr/${libdir}" - if [[ "${libdir}" != lib ]]; then - if [[ "$(get_sdk_symlink_lib)" == "yes" ]]; then - ln -s "${libdir}" "${ROOT_OVERLAY}/usr/lib" - else - mkdir -p "${ROOT_OVERLAY}/usr/lib" - fi - fi + mkdir -p "${ROOT_OVERLAY}" "${BUILD_LIBRARY_DIR}/set_lsb_release" \ --root "${ROOT_OVERLAY}" fi diff --git a/build_library/build_image_util.sh b/build_library/build_image_util.sh index 221095d45cd..4ff46dcb03c 100755 --- a/build_library/build_image_util.sh +++ b/build_library/build_image_util.sh @@ -102,32 +102,13 @@ zip_update_tools() { --arch "$(get_sdk_arch)" --output-dir "${BUILD_DIR}" --zip-name "${update_zip}" } -# ldconfig cannot generate caches for non-native arches. -# Use qemu & the native ldconfig to work around that. -# http://code.google.com/p/chromium/issues/detail?id=378377 run_ldconfig() { - local root_fs_dir=$1 - case ${ARCH} in - arm64) - sudo qemu-aarch64 "${root_fs_dir}"/usr/sbin/ldconfig -r "${root_fs_dir}";; - x86|amd64) - sudo ldconfig -r "${root_fs_dir}";; - *) - die "Unable to run ldconfig for ARCH ${ARCH}" - esac + # This wrapper is created by setup_board. + sudo "ldconfig-${BOARD}" -r "$1" } run_localedef() { - local root_fs_dir="$1" loader=() - case ${ARCH} in - arm64) - loader=( qemu-aarch64 -L "${root_fs_dir}" );; - amd64) - loader=( "${root_fs_dir}/usr/lib64/ld-linux-x86-64.so.2" \ - --library-path "${root_fs_dir}/usr/lib64" );; - *) - die "Unable to run localedef for ARCH ${ARCH}";; - esac + local root_fs_dir="$1" info "Generating C.UTF-8 locale..." local i18n="${root_fs_dir}/usr/share/i18n" # localedef will silently fall back to /usr/share/i18n if missing so @@ -135,8 +116,8 @@ run_localedef() { [[ -f "${i18n}/charmaps/UTF-8.gz" ]] || die [[ -f "${i18n}/locales/C" ]] || die sudo mkdir -p "${root_fs_dir}/usr/lib/locale" - sudo I18NPATH="${i18n}" "${loader[@]}" "${root_fs_dir}/usr/bin/localedef" \ - --prefix="${root_fs_dir}" --charmap=UTF-8 --inputfile=C C.UTF-8 + sudo I18NPATH="${i18n}" "bwrap-${BOARD}" "${root_fs_dir}" /usr/bin/localedef \ + --charmap=UTF-8 --inputfile=C C.UTF-8 } # Basic command to emerge binary packages into the target image. diff --git a/build_library/catalyst.sh b/build_library/catalyst.sh index 3e792417bed..c4055cee63a 100644 --- a/build_library/catalyst.sh +++ b/build_library/catalyst.sh @@ -25,6 +25,7 @@ BINPKGS= DISTDIR= TEMPDIR= STAGES= +unset QEMU DEFINE_string catalyst_root "${DEFAULT_CATALYST_ROOT}" \ "Path to directory for all catalyst images and other files." @@ -97,6 +98,7 @@ cflags: -O2 -pipe cxxflags: -O2 -pipe ldflags: -Wl,-O2 -Wl,--as-needed source_subpath: ${SEED} +${QEMU+interpreter: $(type -P "${QEMU}")} EOF } @@ -207,6 +209,16 @@ catalyst_init() { SEED="seed/${FLAGS_seed_tarball##*/}" SEED="${SEED%.tar.*}" fi + + # Emulate the build, if needed. Note the SDK itself may already be emulated, + # so check the requested arch against the kernel's real arch, not uname -m. + if [[ ${ARCH} != $(get_portage_arch "$(< /proc/sys/kernel/arch)") ]]; then + case "${ARCH}" in + amd64) QEMU=qemu-x86_64 ;; + arm64) QEMU=qemu-aarch64 ;; + riscv) QEMU=qemu-riscv64 ;; + esac + fi } write_configs() { @@ -226,6 +238,9 @@ write_configs() { ln -sfT '/mnt/host/source/src/third_party/coreos-overlay/coreos/user-patches' \ "${TEMPDIR}"/portage/patches + + [[ -n ${QEMU} ]] || + rm "${TEMPDIR}"/portage/package.env/qemu } build_stage() { diff --git a/build_library/portage/env/releng/qemu b/build_library/portage/env/releng/qemu new file mode 100644 index 00000000000..de86517db4d --- /dev/null +++ b/build_library/portage/env/releng/qemu @@ -0,0 +1 @@ +FEATURES="-pid-sandbox -network-sandbox -ipc-sandbox" diff --git a/build_library/portage/package.env/qemu b/build_library/portage/package.env/qemu new file mode 100644 index 00000000000..60c290a8ba7 --- /dev/null +++ b/build_library/portage/package.env/qemu @@ -0,0 +1 @@ +*/* releng/qemu diff --git a/build_library/prod_image_util.sh b/build_library/prod_image_util.sh index b6d760fba2a..d45936f06da 100755 --- a/build_library/prod_image_util.sh +++ b/build_library/prod_image_util.sh @@ -139,6 +139,7 @@ create_prod_image() { sudo rm -rf "${BUILD_DIR}/root_fs_dir2" # clean-ups of things we do not need + sudo find ${root_fs_dir}/usr/bin -empty -delete # Bind mounts created by bwrap sudo rm ${root_fs_dir}/etc/csh.env sudo rm -rf ${root_fs_dir}/etc/env.d sudo rm -rf ${root_fs_dir}/usr/include diff --git a/build_library/set_lsb_release b/build_library/set_lsb_release index f86c968909f..514bba7c2de 100755 --- a/build_library/set_lsb_release +++ b/build_library/set_lsb_release @@ -45,6 +45,7 @@ sudo ln -sf "../usr/share/flatcar/lsb-release" "${ROOT_FS_DIR}/etc/lsb-release" # And the new standard, os-release # https://www.freedesktop.org/software/systemd/man/os-release.html +sudo mkdir -p "${ROOT_FS_DIR}/usr/lib" sudo_clobber "${ROOT_FS_DIR}/usr/lib/os-release" </dev/null -# Source qemu library path -. /etc/profile.d/qemu-aarch64.sh 2> /dev/null || true - # Output a backtrace all the way back to the raw invocation, suppressing # only the _dump_trace frame itself. _dump_trace() { @@ -992,38 +989,3 @@ BOAT echo -e "${V_VIDOFF}" die "$* failed" } - -# The binfmt_misc support in the kernel is required. -# The aarch64 binaries should be executed through -# "/usr/bin/qemu-aarch64-static" -setup_qemu_static() { - local root_fs_dir="$1" - case "${BOARD}" in - amd64-usr) return 0;; - arm64-usr) - if [[ -f "${root_fs_dir}/sbin/ldconfig" ]]; then - sudo cp /usr/bin/qemu-aarch64 "${root_fs_dir}"/usr/bin/qemu-aarch64-static - echo export QEMU_LD_PREFIX=\"/build/arm64-usr/\" | sudo tee /etc/profile.d/qemu-aarch64.sh - . /etc/profile.d/qemu-aarch64.sh - else - die "Missing basic layout in target rootfs" - fi - ;; - *) die "Unsupported arch" ;; - esac -} - -clean_qemu_static() { - local root_fs_dir="$1" - case "${BOARD}" in - amd64-usr) return 0;; - arm64-usr) - if [[ -f "${root_fs_dir}/usr/bin/qemu-aarch64-static" ]]; then - sudo rm "${root_fs_dir}"/usr/bin/qemu-aarch64-static - else - die "File not found" - fi - ;; - *) die "Unsupported arch" ;; - esac -} diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/config/env/dev-lang/rust b/sdk_container/src/third_party/coreos-overlay/coreos/config/env/dev-lang/rust index c467aedeada..d72efdb3d5e 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos/config/env/dev-lang/rust +++ b/sdk_container/src/third_party/coreos-overlay/coreos/config/env/dev-lang/rust @@ -2,5 +2,6 @@ INSTALL_MASK+=" *rustdoc*" I_KNOW_WHAT_I_AM_DOING_CROSS=1 RUST_CROSS_TARGETS=( - $(aarch64-cros-linux-gnu-gcc --version >/dev/null && echo "AArch64:aarch64-unknown-linux-gnu:aarch64-cros-linux-gnu") + $(use arm64 || { aarch64-cros-linux-gnu-gcc --version &>/dev/null && echo "AArch64:aarch64-unknown-linux-gnu:aarch64-cros-linux-gnu"; }) + $(use amd64 || { x86_64-cros-linux-gnu-gcc --version &>/dev/null && echo "X86:x86_64-unknown-linux-gnu:x86_64-cros-linux-gnu" ; }) ) diff --git a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/amd64/sdk/package.use b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/amd64/sdk/package.use index e69de29bb2d..21b5b3ee045 100644 --- a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/amd64/sdk/package.use +++ b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/amd64/sdk/package.use @@ -0,0 +1,3 @@ +# Don't build the user space emulator for this arch. It's not needed and gets in +# the way when using Catalyst with QEMU. +app-emulation/qemu -qemu_user_targets_x86_64 diff --git a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/arm64/sdk/package.use b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/arm64/sdk/package.use new file mode 100644 index 00000000000..c3e3f1eaed4 --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/arm64/sdk/package.use @@ -0,0 +1,3 @@ +# Don't build the user space emulator for this arch. It's not needed and gets in +# the way when using Catalyst with QEMU. +app-emulation/qemu -qemu_user_targets_aarch64 diff --git a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/arm64/sdk/transition/parent b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/arm64/sdk/transition/parent new file mode 100644 index 00000000000..627544f8c19 --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/arm64/sdk/transition/parent @@ -0,0 +1,2 @@ +.. +:coreos/targets/sdk/transition diff --git a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.accept_keywords b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.accept_keywords index 2d5bc352c4e..d4a54b9795d 100644 --- a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.accept_keywords +++ b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.accept_keywords @@ -124,3 +124,6 @@ sys-apps/azure-vm-utils # Our own ebuild fixing issues in Gentoo, hopefully will be fixed # there too eventually. =sys-libs/libselinux-3.8.1-r3 ~amd64 ~arm64 + +# Needed to build this amd64-specific package on other arches. +=sys-apps/iucode_tool-2.3.1-r2 ~amd64 ~arm64 diff --git a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/profile.bashrc b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/profile.bashrc index 6165f45d053..b8dfb442218 100644 --- a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/profile.bashrc +++ b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/profile.bashrc @@ -1,8 +1,6 @@ # Dumping ground for build-time helpers to utilize since SYSROOT/tmp/ # can be nuked at any time. CROS_BUILD_BOARD_TREE="${SYSROOT}/build" -CROS_BUILD_BOARD_BIN="${CROS_BUILD_BOARD_TREE}/bin" - CROS_ADDONS_TREE="/mnt/host/source/src/third_party/coreos-overlay/coreos" # Are we merging for the board sysroot, or for the SDK, or for @@ -118,12 +116,6 @@ cros_setup_hooks() { } cros_setup_hooks -# Since we're storing the wrappers in a board sysroot, make sure that -# is actually in our PATH. -cros_pre_pkg_setup_sysroot_build_bin_dir() { - PATH+=":${CROS_BUILD_BOARD_BIN}" -} - # Avoid modifications of the preexisting users - these are provided by # our baselayout and usermod can't change anything there anyway (it # complains that the user is not in /etc/passwd). diff --git a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/targets/sdk/make.defaults b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/targets/sdk/make.defaults index 3fb2f4e9a72..5a6fa0111d9 100644 --- a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/targets/sdk/make.defaults +++ b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/targets/sdk/make.defaults @@ -5,12 +5,6 @@ USE="cros_host expat man -pam" # Enable CPU architectures needed by Rust builds LLVM_TARGETS="X86 AArch64" -# Both x86_64 and i386 targets are required for grub testing -QEMU_SOFTMMU_TARGETS="x86_64 i386 aarch64" - -# For cross build support. -QEMU_USER_TARGETS="aarch64" - # add cros_host to bootstrapping USE flags so SDK / toolchains bootstrapping # will use vim's vimrc instead of baselayouts', BOOTSTRAP_USE="$BOOTSTRAP_USE cros_host" diff --git a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/targets/sdk/package.use b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/targets/sdk/package.use index 641b433bda1..2108e23b8b9 100644 --- a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/targets/sdk/package.use +++ b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/targets/sdk/package.use @@ -12,7 +12,7 @@ app-crypt/gnupg smartcard usb # for qemu app-arch/bzip2 static-libs -app-emulation/qemu -doc -jpeg ncurses python static-user virtfs qemu_softmmu_targets_x86_64 qemu_softmmu_targets_aarch64 +app-emulation/qemu -doc -jpeg ncurses python static-user virtfs qemu_softmmu_targets_aarch64 qemu_softmmu_targets_x86_64 qemu_user_targets_aarch64 qemu_user_targets_x86_64 dev-libs/glib static-libs dev-libs/libaio static-libs dev-libs/libpcre2 static-libs diff --git a/sdk_container/src/third_party/portage-stable/eclass/sysroot.eclass b/sdk_container/src/third_party/portage-stable/eclass/sysroot.eclass index f17d6bcec2b..3427c421bf2 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/sysroot.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/sysroot.eclass @@ -1,4 +1,4 @@ -# Copyright 2025 Gentoo Authors +# Copyright 2025-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: sysroot.eclass @@ -41,18 +41,55 @@ qemu_arch() { esac } +# @FUNCTION: qemu_arch_if_needed +# @DESCRIPTION: +# If QEMU is needed to run binaries for the given target or CHOST on the build +# system, return the QEMU architecture, otherwise return status code 1. +qemu_arch_if_needed() { + local target=${1:-${CHOST}} + local qemu_arch=$(qemu_arch "${target}") + + # We ideally compare CHOST against CBUILD, but binary packages cache the + # CBUILD value from the system that originally built them. + if [[ ${MERGE_TYPE} != binary ]]; then + if [[ ${qemu_arch} == $(qemu_arch "${CBUILD}") ]]; then + return 1 + else + echo "${qemu_arch}" + return 0 + fi + fi + + # So for binary packages, compare against the machine hardware name instead. + # Don't use uname because that may lie. /proc knows the real value. + case "${qemu_arch}/$(< /proc/sys/kernel/arch)" in + "${qemu_arch}/${qemu_arch}") return 1 ;; + arm/armv*) return 1 ;; + hppa/parisc*) return 1 ;; + i386/i?86) return 1 ;; + mips64*/mips64) return 1 ;; + mipsn32*/mips64) return 1 ;; + mips*/mips) return 1 ;; + esac + + echo "${qemu_arch}" + return 0 +} + # @FUNCTION: sysroot_make_run_prefixed # @DESCRIPTION: # Create a wrapper script for directly running executables within a (sys)root # without changing the root directory. The path to that script is returned. If -# no sysroot has been set, then this function returns unsuccessfully. +# no (sys)root has been set, then return status code 1. If the wrapper cannot be +# created for a permissible reason like QEMU being missing or broken, then +# return status code 2. # # The script explicitly uses QEMU if this is necessary and it is available in # this environment. It may otherwise implicitly use a QEMU outside this # environment if binfmt_misc has been used with the F flag. It is not feasible # to add a conditional dependency on QEMU. sysroot_make_run_prefixed() { - local QEMU_ARCH=$(qemu_arch) SCRIPT MYROOT MYEROOT LIBGCC + local QEMU_ARCH SCRIPT MYROOT MYEROOT LIBGCC if [[ ${EBUILD_PHASE_FUNC} == src_* ]]; then [[ -z ${SYSROOT} ]] && return 1 @@ -80,10 +117,31 @@ sysroot_make_run_prefixed() { fi fi - if [[ ${QEMU_ARCH} == $(qemu_arch "${CBUILD}") ]]; then + if [[ ${CHOST} = *-mingw32 ]]; then + if ! type -P wine >/dev/null; then + einfo "Wine not found. Continuing without ${SCRIPT##*/} wrapper." + return 2 + fi + + # UNIX paths can work, but programs will not expect this in %PATH%. + local winepath="Z:${LIBGCC};Z:${MYEROOT}/bin;Z:${MYEROOT}/usr/bin;Z:${MYEROOT}/$(get_libdir);Z:${MYEROOT}/usr/$(get_libdir)" + + # Assume that Wine can do its own CPU emulation. + install -m0755 /dev/stdin "${SCRIPT}" <<-EOF || die + #!/bin/sh + SANDBOX_ON=0 LD_PRELOAD= WINEPATH="\${WINEPATH}\${WINEPATH+;};${winepath//\//\\}" exec wine "\${@}" + EOF + elif ! QEMU_ARCH=$(qemu_arch_if_needed); then # glibc: ld.so is a symlink, ldd is a binary. # musl: ld.so doesn't exist, ldd is a symlink. - local DLINKER=$(find "${MYEROOT}"/usr/bin/{ld.so,ldd} -type l -print -quit 2>/dev/null || die "failed to find dynamic linker") + local DLINKER candidate + for candidate in "${MYEROOT}"/usr/bin/{ld.so,ldd}; do + if [[ -L ${candidate} ]]; then + DLINKER=${candidate} + break + fi + done + [[ -n ${DLINKER} ]] || die "failed to find dynamic linker" # musl symlinks ldd to ld-musl.so to libc.so. We want the ld-musl.so # path, not the libc.so path, so don't resolve the symlinks entirely. @@ -102,6 +160,19 @@ sysroot_make_run_prefixed() { #!/bin/sh QEMU_SET_ENV="\${QEMU_SET_ENV}\${QEMU_SET_ENV+,}LD_LIBRARY_PATH=\${LD_LIBRARY_PATH}\${LD_LIBRARY_PATH+:}${LIBGCC}" QEMU_LD_PREFIX="${MYROOT}" exec $(type -P "qemu-${QEMU_ARCH}") "\${@}" EOF + + # Meson will fail if the given exe_wrapper does not work, regardless of + # whether one is actually needed. This is bad if QEMU is not installed + # and worse if QEMU does not support the architecture. We therefore need + # to perform our own test up front. + local test="${SCRIPT}-test" + echo 'int main(void) { return 0; }' > "${test}.c" || die "failed to write ${test##*/}" + $(tc-getCC) ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} "${test}.c" -o "${test}" || die "failed to build ${test##*/}" + + if ! "${SCRIPT}" "${test}" &>/dev/null; then + einfo "Failed to run ${test##*/}. Continuing without ${SCRIPT##*/} wrapper." + return 2 + fi fi echo "${SCRIPT}" @@ -111,11 +182,30 @@ sysroot_make_run_prefixed() { # @DESCRIPTION: # Create a wrapper script with sysroot_make_run_prefixed if necessary, and use # it to execute the given command, otherwise just execute the command directly. +# Return unsuccessfully if the wrapper cannot be created. sysroot_run_prefixed() { local script - if script=$(sysroot_make_run_prefixed); then - "${script}" "${@}" - else - "${@}" - fi + script=$(sysroot_make_run_prefixed) + + case $? in + 0) "${script}" "${@}" ;; + 1) "${@}" ;; + *) return $? ;; + esac +} + +# @FUNCTION: sysroot_try_run_prefixed +# @DESCRIPTION: +# Create a wrapper script with sysroot_make_run_prefixed if necessary, and use +# it to execute the given command, otherwise just execute the command directly. +# Print a warning and return successfully if the wrapper cannot be created. +sysroot_try_run_prefixed() { + local script + script=$(sysroot_make_run_prefixed) + + case $? in + 0) "${script}" "${@}" ;; + 1) "${@}" ;; + *) ewarn "Unable to run command under prefix: $*" ;; + esac } diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/iucode_tool/files/iucode_tool-2.3.1-non-x86.patch b/sdk_container/src/third_party/portage-stable/sys-apps/iucode_tool/files/iucode_tool-2.3.1-non-x86.patch new file mode 100644 index 00000000000..772f05d33ce --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/iucode_tool/files/iucode_tool-2.3.1-non-x86.patch @@ -0,0 +1,47 @@ +https://gitlab.com/iucode-tool/iucode-tool/-/merge_requests/5 + +From dd2511c343b4eb62a28edf330dfc9e2c2e750a88 Mon Sep 17 00:00:00 2001 +From: James Le Cuirot +Date: Mon, 2 Feb 2026 11:16:13 +0000 +Subject: [PATCH] iucode_tool: Allow building on non-x86 little endian + architectures + +This is obviously an Intel x86-specific tool, but that doesn't mean it +cannot be used elsewhere to prepare x86 images. The code is still +endian-sensitive though, so the configure check to disallow big endian +remains. + +Signed-off-by: James Le Cuirot +--- a/iucode_tool.c ++++ b/iucode_tool.c +@@ -30,7 +30,10 @@ + #include + #include + #include ++ ++#if defined(__x86_64__) || defined(__i386__) + #include ++#endif + + #include "intel_microcode.h" + +@@ -2933,11 +2936,16 @@ static int scan_system_processors(unsigned int strategy, + assert(filter_list); + + print_msg(3, "trying to get CPUID information directly"); ++#if defined(__x86_64__) || defined(__i386__) + if (!(__get_cpuid(0, &id0, &id1, &id2, &id3) && + __get_cpuid(1, &sig, &idx, &idx, &idx))) { + print_msg(1, "microcode signature unavailable"); + return 0; + } ++#else ++ print_msg(1, "CPUID instruction not available on this architecture"); ++ return 0; ++#endif + + /* + * fail-safe: only change filter_list_allow (switch away from "select +-- +2.51.2 + diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/iucode_tool/iucode_tool-2.3.1-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/iucode_tool/iucode_tool-2.3.1-r2.ebuild new file mode 100644 index 00000000000..75c903aa169 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/iucode_tool/iucode_tool-2.3.1-r2.ebuild @@ -0,0 +1,21 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Tool to manipulate Intel X86 and X86-64 processor microcode update collections" +HOMEPAGE="https://gitlab.com/iucode-tool/" +SRC_URI="https://gitlab.com/iucode-tool/releases/raw/master/${PN/_/-}_${PV}.tar.xz" +S="${WORKDIR}/${PN/_/-}-${PV}" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" + +RDEPEND="elibc_musl? ( sys-libs/argp-standalone )" +DEPEND="${RDEPEND}" + +PATCHES=( + "${FILESDIR}"/${PN}-2.3.1-limits-include.patch + "${FILESDIR}"/${PN}-2.3.1-non-x86.patch +) diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/Manifest b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/Manifest index 584e5452236..43cd6221fa7 100644 --- a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/Manifest +++ b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/Manifest @@ -1,63 +1,55 @@ -DIST NVIDIA-Linux-aarch64-535.274.02.run 269962412 BLAKE2B e4026c6ebf72ce7220a4dca688a349b27bdea518dd5eaeb3ecf153a246a8155775668cf3b2593b02abde747299cbae438e45af5c73c19627a93b6528051128e6 SHA512 a5d6187844c43bc56878d20b147ba36663db2c3b5f6ea31c2e84c364b88cac115417e1f2e073c9bf03ec698880921b6f98c1129b952d3156cf88c89156bdb046 -DIST NVIDIA-Linux-aarch64-570.207.run 290858757 BLAKE2B d04bfc5457ba3e2cf7e6bebf333c9085c83f1e437880d3a34ffa53e3ae094119875738893b4cccdb83d7699373c83d7d71182815a77ddd2834db9990eda28864 SHA512 90aac68738872349ead074e158193d847256b0a2f4d850e16a03aa165041aeb5d86413a6e3879253c90e4d96b3d624b839924a6f4f666e18903621154bdab305 -DIST NVIDIA-Linux-aarch64-580.119.02.run 313944261 BLAKE2B 18cf6bcfdb42597973e162d28ea45c45bdacfab0042789a8cc0572ff5896ffedbf63053d119c535e1c8fdaa43476068823bc684d5742b7f69d9965d518058df4 SHA512 d4926bada63b7a8e8bf430a45e4d98fda7b0a6b5f0f981258cf66752c64f022a3484e719257958779bd0e7371116bc8ae09f5724f53956c8299c3ec986d2b205 -DIST NVIDIA-Linux-aarch64-580.95.05.run 313379170 BLAKE2B 70431f394ce9d112afcf0742539289e399286ecefbdd86ad71c750acee21c3b965b435d77d54b290866a6c60c7601da5c8bbc2d6edce0b8e4dcd43d21ee2ec35 SHA512 e07b31824f7e6dd485df5c73e3a58f85962239ea20a92f18d82b9c55564d69309fe5bb279f39ed8ef152ccdbffc6d0fdf7bccfa3c794e4ecd9fac83bcfbb91a9 -DIST NVIDIA-Linux-aarch64-590.44.01.run 319562942 BLAKE2B 08547c7e4b746ab72f04b2b9f9fdeaade5057deb46d12c9a914e3e6c131a3b13a74a7713dfd6177e5a648f87f00935349f92814c101004bea3090602813a391b SHA512 95849eaba6761ba5e7435d8cb4d9f72b55e6b9e8d90b90be517f64b5d0fc329cffd80489b558c224370b869a11be13eb96ebb481a113b64b8bb24c48348f0657 +DIST NVIDIA-Linux-aarch64-535.288.01.run 269886661 BLAKE2B 9f9e994fcefd81e75db9a9c280668ad55423085e34eb9083043bad3f1317379ba14ffc9442fe94ee26b600f1ecf2e19f83708dae1c599b6a9df69d94ac3e116f SHA512 e8df9e97500a87d68e8c8d1f9601a8b37f2dd93773928a96b605a515d37e9382782cbdc0900cd6151923ae385045c644af3e37cc006771830ac0b0a532afb09c +DIST NVIDIA-Linux-aarch64-570.211.01.run 290912556 BLAKE2B 4335d6a6b7a55bc7d2717071c6be968b63c90932592534be8eff28290a8bf98614b37bb52b4ee0f9563a6f0fdacf6b0e8a04b8eedbe8081587962f3599209a88 SHA512 22816d8f798d6ce141ff2ce750b5df1ca4fef9b1ba79762157fd7f93c1ea905c74f421dc6ac2b7bf5b383192d2baa735d7a7d240523be815defb68be54c4a6be +DIST NVIDIA-Linux-aarch64-580.126.09.run 313588580 BLAKE2B bb98dc322fb0bb21a11aaebd2101528efc651ed833870326fbc4570f54264a4b536e8669351153817b47dcb81b9aeac88b7d664cf6971e5182b9d4203c453a29 SHA512 7ec0fd917bade1eb14b135bab2ade17a5116546190c3011379be7105404485016e26a5fb1ece5a4800eea39ac10c1abea19cc40be6f8f31188b3eeb78344a6c7 +DIST NVIDIA-Linux-aarch64-580.126.18.run 313585073 BLAKE2B 9cf8680392434126ae60cc4260f6a3ee44a74c8a5c5623e9990feb6b73cd4fc4661c2111214b192957ccc0c0e2623c3649685e739bc7440e36cbcbf4949bfc3f SHA512 b453b8aa9fa4fdaa1ce532f69a52317606d41728958a49f05e9725c093ebe8e90c65b5e5ad095ebcf5febdcd2d712bf0246ce06746078d8333c75bb7559b4245 DIST NVIDIA-Linux-aarch64-590.48.01.run 319634379 BLAKE2B ff1b0641f8d4dfc834d9627fa934c5491bddcb9e6f5396a07d6d7831c15e2ab396614ff1ab6b5af4a69b42b8c6a022215cc1e3531eca7ca177c9d940f52281ea SHA512 ec81da1a11dd9609427e40434cba69d7c0426e4d60cb5c078c66ec992b6dd44483df2c9dfe02deb4db3a815a4c801b3c42f6ac2b08f0506327f1cdfe5446211d DIST NVIDIA-Linux-x86-390.157.run 49417041 BLAKE2B 435b5e0e60468cc74b41cc5d9b5bb0105d29c11a2d408457835212a96519c9334ecf19278b36749d3ff7f498f5b0ae45a2efae2d428703dac21245c62f1efebe SHA512 dae9ac2c12f9ad90f7441e00e01a984147c577892421911d7f67f6a31e616ac1cb7d434bc9c7f58fbd9b8ae909521b5bece607a63c79588c0bb9d99c6bad5fb0 DIST NVIDIA-Linux-x86_64-390.157.run 85835541 BLAKE2B 44b855cd11f3b2f231f9fb90492ae2e67a67ea3ea83c413e7c90956d38c9730a8bd0321281ae03c6afce633d102f5b499aed25622b9bfd31bdd2c98f0717e95b SHA512 4780503a4cff0180b1b1f37d20a6ba3438dd78b51fa7f69b98d35521835e5d61099129746929d51d63afa2d47b672b3e145e1e1897584dc3799e7f822c5b3a0a DIST NVIDIA-Linux-x86_64-470.256.02.run 272850014 BLAKE2B 0fdc867f92b82b2a60810c3b43751cad7ac2c39928c92c6c343c0c6044f4d7d923d93b8599db3f7c999c0ee7d16940e65d991a61cbb30e1d9e49c5639ac6bdc8 SHA512 a837946dd24d7945c1962a695f1f31965f3ceb6927f52cd08fd51b8db138b7a888bbeab69243f5c8468a7bd7ccd47f5dbdb48a1ca81264866c1ebb7d88628f88 -DIST NVIDIA-Linux-x86_64-535.274.02.run 341804470 BLAKE2B 0d848295d8f0f8fe3b4ab6c0204bfc3ac26f75df253b6595137e99177e4ccd490e0c8d4330f6789137d906fdec317033e59b5f22213a38ef3c9daae2968f71b8 SHA512 cc89f84c4f8d76d8d1532e67630426b3988e778bc7474059231971333cd81d6a552d8f5ca329f9e3c540229bbc247b665d2276298e3c302975ab0f0562ddaafb -DIST NVIDIA-Linux-x86_64-570.207.run 376235013 BLAKE2B 76d2092705673d743f2e64136d2073de2004ea71b3fdde7dd0ae1e11fd5f1e0dd5174324589f2386dadb85c2d2992b62229575b0cf33b20137aab16d51b0c566 SHA512 587ed8a274af0a9a3f029951a1a86a16e1ab367c07e8eb928d17e0d4ad79f13700a9aef0b3a42bae9d14a832141e9b02b117636b12788b58364430335bff9167 -DIST NVIDIA-Linux-x86_64-580.119.02.run 397786077 BLAKE2B 2a57a0c53deaa1d31c3bb1ca53f05ab017cccdbdd95a99748997d2988359c9ff4f2cb824304b75e4288801f0882deeaef9712785b4e1c659282c25d610be089a SHA512 b773deaa58823d3907488527507df6831959c1b8215ad34e1fdf7025d318d9ca7610d0b103252252c4e4097ec97d4224f99a3e9701327dc15eadc66e906af250 -DIST NVIDIA-Linux-x86_64-580.94.13.run 398047606 BLAKE2B 9261ecf5c4586a22656219a1cc4e56966f0eb431c21b5238a0f6bab0a9691781cc5b879708d9e0afaf726db9e70f63c62948298c3fc7161a7f9e9f5a9d4cce46 SHA512 b64176d9729e8b237c9e982e07e12fde4dad8f4b3ee1cf73447eedb0566a4beb6417ac5a5f97744ba6b32f48c8d5d22b1076de0375bdcb0f53c4c6724aea494a -DIST NVIDIA-Linux-x86_64-580.95.05.run 396658958 BLAKE2B 7e23e5243023de357329f8f57b65a386306fd898a78c68b01d67a9572ac0d64b2d87c0cf3265c23fc4c13192d92060196ee173c34cb485a693035478cb3fc82e SHA512 21e8076f593ce255c8e96dd456524f700e76b230130659ed73a279432dd9f2aa60735411c6fc906e9f60882e905cc1c5b91aaf80d5d5e64d317b1dd27f6e4c13 -DIST NVIDIA-Linux-x86_64-590.44.01.run 416205886 BLAKE2B b8a4f02ce1b3697f45d5932606a8d9816e8dd38e4957b0d069f9759cacffb42fb741084009c012017e92a785fe9ff3810d7fd420f832873a2c890c7e29d5acd5 SHA512 8fb0cd0b09b3b997029e97314fb8b4f63a5b567c17d99b63321e72b3e002c5e912694c5049babae80e7eafdbcc966d46e50bb942ddefe3e9da28623b5b119005 +DIST NVIDIA-Linux-x86_64-535.288.01.run 341968325 BLAKE2B e37428855b41c295e5c6df66a029f4a1f6916af932a159587002c6b20b58c8280faee1a4fd6edf4791439df4da6bd21d18b3c9bdf300b3923f5dd30666f44d90 SHA512 8ccd90cc37cef6591412c9c0d3a48af9fe08bf5d715a2e8a9c0adab1fb8e72b716ec75c8b81bc0ac9d09d6f82fa8e01af144bfba5d58cfe7a524c47aa97ae6e1 +DIST NVIDIA-Linux-x86_64-570.211.01.run 376192072 BLAKE2B 56a135681eba576377106b5ee4bad4e0ec7e41e512db8e32297fbafe03455ee4e9e0dafe782588dd3832fde74ecfd9ee5858ec662f3dc2ef3f1e1dab7a9c909d SHA512 3e751d90a8f126e369c5167e2d5ba8b218dd306ccf00907290ae70fb1c3f752f0ad0b973ce356a1a24cd0f19c31a07169cfd5705613a6bbb5918881635650839 +DIST NVIDIA-Linux-x86_64-580.126.09.run 396807358 BLAKE2B a8b7fe16718a8f9ec6d93cad71e07c96d837ff612ae21a96018981fc904839c6d85dc2515c1d640361483fad59b5fd79bdae6a32951ec2f5db4a9115d24798dc SHA512 d5c41131304b29d55d0caf8cd84c95b454d81e68d7b23ca893504c63d84dd78726e2dbd7f076b7f12be518e641d110d131ac178336d61a00bcc81b7a1890799d +DIST NVIDIA-Linux-x86_64-580.126.18.run 396862844 BLAKE2B fa2d992d4f23beac7a10bc5d17695ee0c211e3afcb6fb9135f09b8eebed86db226b1cb4b9646917ab28f6127136b349fbc02deeecef2c5625f2be6a178cd268e SHA512 3007896838256c5534d7a04958f38f2837314b09d05e595966ba68789b0166fd8c1a574b29c8dd9ee5414822c9aebad9f9c7e5db777b811701fcac2b92245f0f +DIST NVIDIA-Linux-x86_64-580.94.18.run 397082112 BLAKE2B c8ca38518debb4ed7bc26114aeb375acfe7da7f63056f08a9422f8e785f8488b1bfb9a66410985e8f883266f0befcd5bcd08e6bd4e0489c31bdf6374abe42bd1 SHA512 b1141f13cf2160e25004c9147328e60afb48b17866c907adfe1db6730ed50163fe5b8ff641d180c4b0420c0f47c0928585e52bf23c196d43a375d7a9466f8fe7 DIST NVIDIA-Linux-x86_64-590.48.01.run 416273526 BLAKE2B 57bc232f3d5cc52b3ba7c097e5c04b0e128947b34f75c8c7a75135ebbdda565dd9ae829f3707cfef35a9b8b554f2b46a50756f6b256a0f0280c22cf9ecefb2e1 SHA512 31fd82af707dbe9a6d3848766925386f5e91c5fae0a605819450eb8e5a5a52eaab3ae5cff50b4dd36bc5c32fe1aabc29a6a79438d6614988c7b08f509ef0da6d -DIST NVIDIA-kernel-module-source-535.274.02.tar.xz 12513068 BLAKE2B e9f9fbdc70ee634dd26d626b0d5252e01c748fa8fc5b50af02a18f0dc75e2a40ced2fbaf24c4389dd207936849f6d614f18ef06ed35111ed26f3f6fce9017592 SHA512 4a660e08c03840de0b8d5bee079ff203a864131ed3eb4805e80da6c071b6953a6acee6d81788c4ea076399db6270e34844d5ac3898914195f530d2e0ef1c96ab -DIST NVIDIA-kernel-module-source-570.207.tar.xz 17948940 BLAKE2B 7573f8f3083564038649e0a7fe0feb1cec313a1950b06200198e0802b7f3553212cea2100f563659f425c139eefaf976bea388886180be895e12f7631ac86b0c SHA512 de2306aa80ce057965a2d2d7570035feaef4016a6d9e37f7ffb9f19ddf6e892ab8eda14bfc893122c6f2321e406272b7cffc84a053321650c29d3a25d359c6f9 -DIST NVIDIA-kernel-module-source-580.119.02.tar.xz 22236204 BLAKE2B ec10077a776bfc3d933461fd2f188070cbb653a18743fa6089a62ec39981f76b19e201d59df51f1dbc3db74ba0a6d88bed9272d0633b0d092e4eed6ef3f6d5d6 SHA512 ffd90759137648378b35e59cc81459d75853b6ff6ef60dd3de83c6120be32166505f7d7a25f88440f51929e24a9181dee4310d4bec006b5ed86a46581a9b13d4 -DIST NVIDIA-kernel-module-source-580.95.05.tar.xz 22215620 BLAKE2B 179e2e1f820840273e54b55cd45233c6b5e26c1eb80e8e4fc7099a1704820cfe761c17839befcb9ddca2fe7e85b7ddf62e9a51b912e1f300b02ee8941d6467db SHA512 183e35afc583748f5d5fc60970be7e1e0b99de40bf0e9428d3acfd56f913724cc8aa242a276c327ad11e09290818883c8045ab3319dc0e919201687359f7cdc6 -DIST NVIDIA-kernel-module-source-590.44.01.tar.xz 22515256 BLAKE2B a71a59a6c5abbc5011164444f95730b8d96b1025b3d685ea69720a3afa658baeb0f4a6d9d8180d79b76cfb9e972f47c9525dd61e86322a820d17ba6a2eececc1 SHA512 a63f48f1f3a52d973597f6f261e8d9849165a33d561b5e70b6b84bbec3b3a66029a49a1e710f68c70b853104349ab1f583009c8885b4d259be115da6e9ba36ad +DIST NVIDIA-kernel-module-source-535.288.01.tar.xz 12538144 BLAKE2B 597c58a62591e82b77fb29527d240bd2043b37439a1e7089ce5ab7ecb514ca3cae5be415aa4324f1156c08ddc1138c02e58337df5f38eaf7f19294773e4bcebc SHA512 b70d95af6737c36f8573d877a3473d38ecf3d7a4a35b899c38c1682888b455dcc60f6738ccee60a584477856b79dd25e6a10ffd1a4503c1d78a88902ba8329b4 +DIST NVIDIA-kernel-module-source-570.211.01.tar.xz 17951900 BLAKE2B d40d2c1b4a92dfe8da95e1000413dfb484c9c96ad232dd5db14246378f6df8e73f04706592a536025c3d5512d5e663e7841de8bda782e3611b4b594b9b107ad4 SHA512 c988270d3aaa707310c3924de83eb5f5bdc4d022d1666eb3f41ed46eff35e98a765d4d6d34c22c02ac507016bed3c34af1da2e1befc285ec9158031a4a1447e4 +DIST NVIDIA-kernel-module-source-580.126.09.tar.xz 22250272 BLAKE2B 218c0df05f9506b22281a575db566d48760a7ab3df7f2c4d171d5157f44979efb6f40e8aebaec26e830cf3495bf2366ab406919293d2eab6e543567c0cae14fb SHA512 1c62f12e39d827f1a9dc13d934f8d690e3cf3da7838f39044b1175b612eb03e2f452424f6e456fed81bfa448c8a2dfe94b58e71bff08c4e5d5d8c944c74cdb2e +DIST NVIDIA-kernel-module-source-580.126.18.tar.xz 22192576 BLAKE2B ed2b39aaed517a3a55633c6e0fc5605641bf85fcf370b1c8e7eb3950d3cf9112b6c3656ef3aff3fedbbbb769bb7f975a87f218b91c4131a9930cc04c8df27bf0 SHA512 810c596cdb40666b5dbccf9c1d358ef155e9171a489513f78fee73f48d73798fee0f655d8a9c994144d933ff9a9e0fc362f7c4918f87c8dfa9f00d30beee102e DIST NVIDIA-kernel-module-source-590.48.01.tar.xz 22530000 BLAKE2B eae57ceccc78f0730fc4962b20f08f270bd21960e84ad5985433590e5229403a74bfc2518540f9e2ef07d319d9cb2288edfbe0d5f7a27cc7e0903aa61fed388c SHA512 6fe32d5d1a84df0baeaaecd4a847ba73a89bcd1b51d5f9c7525efd2af891f6d5512c1ac97c8b766ba1d1103312c53e5406653589e22684df9260fd75977591a6 DIST nvidia-installer-390.157.tar.bz2 150323 BLAKE2B 8058ca87a6dea956d564af9f7eab9b1fc82b1f2382bd5cb2f6d97cbe2e19292533522d5f8f2eacbeb16520372715fcb72f8f9b0998962af5d4e75522c8d74524 SHA512 93a7ece648602157496c8e27a88864ede341a100f5328a4c1a25faf8f0b94d252060e5e2f71d0c302fd0566c10773c30b76b3b5f431d8039b71c90a7969f7d7e DIST nvidia-installer-470.256.02.tar.bz2 146269 BLAKE2B 4402e725c8fd0157eb84d4ec140a33f97e873014577487ef1e32fb8921cabe79c60ff46532e5bfaabb2b6ac894f7c80086dbab19e61906e2e27346fb85f98829 SHA512 c962dc17d9696256d1ebedcaeb3010994f2ce3895aedc47987599ebfec132a9b9a249d2ece6502b15bd4a93f9b0106aa13487a7da5f64199c274ce11eba27cfd -DIST nvidia-installer-535.274.02.tar.bz2 148772 BLAKE2B 7a70926628e137a0687acdc613a3afcd9fafab300e6c3ab467f9fef65c66911795a326cd08d49190870939576f358760b44949ba20df6060936f98e1385a2435 SHA512 c2a61bb9637d7fe9de89d7e3945fe84c6f672c8f16c4c12d513ba0b0679146321f4565be1266fcd5145ed7a0610cb59ae9f6fd7f7cf565f24e028272688899ee -DIST nvidia-installer-570.207.tar.bz2 169253 BLAKE2B 1364655663682923df7504e76ddf157f4c5368442e6e21541ed12c54c1c35ce97370307a751a72a3d2fb2dd878852106392ef5e8dcdaf5f2a42d29e26ad60077 SHA512 253f15603e4ad27be655fb945cd60180fe9272e394cf587227c95f1648f8c0ec91973e6a603135d82976c8a650adef7003a7e4fe8372f6df88c4b512a29832dc -DIST nvidia-installer-580.119.02.tar.bz2 169905 BLAKE2B f6a08292a824879266e75efbb2ae28f49a40799d0a2d3390d031e2259b419f475e50bc0effca4cc32aae76370bde79c4078f362d892d07b938092de90c28d6c3 SHA512 cbe597dfa8a801aae053520917ba90735ad03194b51d767eb8afcb283e2ae6d0c93690d1fe2ec7e24b896680dbd8c53b99f246c3de6bd94a2588e4773ec82a27 -DIST nvidia-installer-580.95.05.tar.bz2 169558 BLAKE2B 5e52aca8950b83b2a0366fc39dba5b89d22248ced974807f33dababfc06b41b5c40ff238552e61fec54625a6b2bceb8401ebb4fb69b47e33e565058d1796cb9e SHA512 1f20838f4e20d77c9596aa886f53bc4abedfc5e5634665d3bd571fb920013b2dfdf7dcd082b0cfebdf4d104e87203965cff6a04863f9b0bd43f9e25264217578 -DIST nvidia-installer-590.44.01.tar.bz2 170890 BLAKE2B e6bbd5f862673217dd4359533bb3c275c3319af69b2a912e43ea5d1fbb0cde2434c0decf2330bf3ac94d78cbd21fcbda6c5cd7e1b34bb44dc6313be3257072b7 SHA512 558fcb1984a5a399e7b388923f43821913b523cacd8a4496c05db92362b270f6e58bdb838be7f5ebb02bd3422dd43cbff952f3ce506cf7fc0c42b5fc92d3b3f8 +DIST nvidia-installer-535.288.01.tar.bz2 148906 BLAKE2B c559bfaeddd1af6c72647fb2e5c46638817339bd59ced80bcc6acfa14304f5ab07123aa0e43d18feff5d2582f08ceb0f84d2b97eef783bcd833c12f751e4c945 SHA512 b5d92a68b39a11709dae83ded0d9b860f9ff4cef514a1eb957305daf80d4354a272a88e4a58db61547b0073e57c2913f2dc038c2d51b2eb649fc9ae25eb42954 +DIST nvidia-installer-570.211.01.tar.bz2 169330 BLAKE2B 100cdb3e0cccb19e3bbf69d4289d079a64cbca95fc20f4d48179190b5e61cfdcbfeb5b95c381c70824c185975356a70af4c89efb53ca0cbc5c61fc95d974ca77 SHA512 90efcd442feacd7f9d9bf25fddb77c521b2e7c79063703c320ce2bbd50a5cce950b0937ec926e89081634c6606c18861efda0e6288e24fab5ee31cd5d52d211f +DIST nvidia-installer-580.126.09.tar.bz2 169652 BLAKE2B 664354a67b56f3fbf323b7231b73c7af3510ec4b8f00533904e0771c6c76dfe98855cb7348bf177fc4902109519d1803ff8074f1fa2c4b7b0b007e459b9eb743 SHA512 9cb0be263204d6a90aeacd694066c12790d1dd513e40deef284fdb979e4227764fdf5e7692956cc08d4db270f17c4c7a3fa53e3033c863ec652fb4f48c33a8ef +DIST nvidia-installer-580.126.18.tar.bz2 169283 BLAKE2B 87e64a32358d5547dee98293b7a507465d1375bc1262f011d181112aa4d3f2103b2820587d688f92cf3cc8f6bf0e120e695998d47ca98de9c950c16f0428b0a9 SHA512 54bb99cd8b17004f7ed0ab87ef781104410d6eb57be2789c15550fbb2215473cc1180410c8dd2b2f75af3132c1047eeb5e906f45fcd7d6931dec3b1bb1db9d9c DIST nvidia-installer-590.48.01.tar.bz2 170826 BLAKE2B 450bd298e6c574ae6dc085714c130984058f6e606c3de628c5adeefddbfde3bf2e025b1e422948311e9e028cfbc6e8d4c68a22a10d30a9a28466f3105aa7c13c SHA512 4c776ad602594a5d2ced2570fd26b51e5fdf5b7613c43263a7f647a5d3d550c6c35960a6cd8884766a71f0b34c397e7d8bd0507b84043cbbc1c04a82ec067932 DIST nvidia-modprobe-390.157.tar.bz2 35306 BLAKE2B 80d202b39c2f95ec0f909712c2e101483af50124092c32efb33bd98ff58ddfb97b737ff07f1ddc941f688c1b4c26a15f392566d522e18506771f10422fcd571c SHA512 109bbe24a3758b568ea65fe1e9d78f69fae6108ec0497b796c885a3912825fe04ffd7389a3e22987f1a10a2926bf6eaa384faabc59478aa3ee244dd3ac91c6d3 DIST nvidia-modprobe-470.256.02.tar.bz2 38769 BLAKE2B 0db444b09b0b6d24c04877fae95249e781d82b3141f90eb05d869b64d2b6e65ad00bf44c4e427c64dbd4765fa99a8699f80a1d95b00c66137a54dc878d7ea298 SHA512 c1cbfa6c8e188e5a5eb5d390b9a903406cbff103d212fc30e611e4023be3fde896ad84e8bb45b030beb5d1bcd8155c9e55a8f9636c45ce1e2a5c03f672989a31 -DIST nvidia-modprobe-535.274.02.tar.bz2 40749 BLAKE2B 85cab6efd924d6a10a1336334ef2b3dd7005da9315518b59a865feffd889aaebfe428d142dee4cdc03eb4f77850c314abc1ba1b60083d0339c2466ed3c30b220 SHA512 cad7dd263ac430457fcb2a1e8659f53d436e2c46330ded165698c5b8ff0a52795edc837f724178f5c929e25aebf6c6094d14eb08e9469a17bd1673195cbc849b -DIST nvidia-modprobe-570.207.tar.bz2 41621 BLAKE2B 84b84be1ace3554be45b56866ffec617e4d4c838889257fffe19fea5811414cc417b7d6e297b32f23e0c2ab092ff911b3c7d04de168c84f4c9fccbd52be69c8a SHA512 d13dbefbe730a9aca3786effb5c7b361b5405b687bd17096b5815756e1c58ed265250b0faaf99da4fb29bb67c7d7da7d4d4609d2f2be03d8a9cfaa74e27cea5b -DIST nvidia-modprobe-580.119.02.tar.bz2 41697 BLAKE2B ccfa263a8e7b2a069ca8a2775b3c62816f3480d2cfd67bf2ca229dd8f7a56b0217eb03ed45ee8155c11c3c44b91c7533042d4a147242c9edc2c7656f2fdd6f68 SHA512 e4b83c88a0dc5978d137b37c545c5100681b32030333d6cf47ef7ab0f15ff8f689ec7a615c01650f0cb89932a91db0745ceb1e555f4c958b2a31562712185582 -DIST nvidia-modprobe-580.95.05.tar.bz2 41708 BLAKE2B 17988280c9c54fdc86dcf757903f18f83d1eb44b25a1386f8cc9bf098aec87b77c52bd3da9ea77511716c678e4354e8a40bee1561a953ed56eda350ab4a3e464 SHA512 67faabda2388515fcad71ffc965c7506156116f4e020837da33b0f17bd30aa05cd2d28a54711990684110133ad1a58a8db5473f58f2e5e587bc8edf5253a9351 -DIST nvidia-modprobe-590.44.01.tar.bz2 41704 BLAKE2B 224db886b27160e65f4b36fced5ae2b1915daf14228c1da613351cccc0669ac2dcf528bd5c10e105fe68a42bc981c44a7c6bad261e29cf286f5c52a8d4583305 SHA512 162b6106c6d98886f374c3351197a3239b416f678524f08e9e8490979a36df74d6c7c0a3d18c5cdb288d2492bb39d1ab43251806cb83bbd90db61d6f98e9dc00 +DIST nvidia-modprobe-535.288.01.tar.bz2 40729 BLAKE2B 60a8a22bcbaefb4d7ab1bbddba814939078b88a0ffb3f3fafece04910b476370f5e1f38878b1c0f109abe4449193dcbfcd308efadd03d28786b78dd2eaeac75b SHA512 0acb8e676fbc230978b97302df98450ee11fc7d59927c46643a8f92d5aec99a5d1d1bca861203a013cfbc61cadf89ed74e2fa999932264b833e3b5a53d42836e +DIST nvidia-modprobe-570.211.01.tar.bz2 41631 BLAKE2B 953113337b742ea246bf24a47cbe679f03d89ecfa48a655f179b0913dd7d9c1742f4b1bd765c4d4263c9d45c352de87bff9f0a5a2c3aa48c86f221177cd5d1fb SHA512 c1bbba303b587f18e824cd2dd9a74341d5a03ee56c6adff67bb33c4f65ed16742f094dca9457a04d68b676c3671756e47d996090523827f42c8780329988e3fb +DIST nvidia-modprobe-580.126.09.tar.bz2 41685 BLAKE2B 6024b6ecbd8732c98892c01920b633de6e96316d63d80570befb7cb35078349b6737371592d92ac8d60b3662454a9bd5f6f9be8023a614e6233186b48204d8ee SHA512 fecbebeeb9add103726bab211f58d1f4afb85cb47affa960a19e057c78c7ccf975b8e32043591a6e9c93402a8ae7f7232ba3b5aadd4f30e2f531914bb4787c43 +DIST nvidia-modprobe-580.126.18.tar.bz2 41651 BLAKE2B f2b8c639e50841f844e32ec4e41381af034c99ec81250fec68d7a79af5e61b005fd43c802d2dc9983f74b9816b8f6996b2580d21aca21ba3dcf4097fdb6dc11c SHA512 a179eb37f9513f962976d58c16417f90e6b51d43dacbed720d05727f1d6404dff1f81b4206dc913161198776028636187fab6812c2ec96fa9cca70d9e63c0652 DIST nvidia-modprobe-590.48.01.tar.bz2 41660 BLAKE2B 0780a1aa529d95323b37115efa529dab030cbea589a03ddc70460f4176e7aa88388401ce8508a093a2e9a0ad406589e9e94ff0391021307e879cbcacec8b6759 SHA512 805a70d5012fbc26af3787104e39b3626b2ed7d53a4989365d2fbf6926daf817eec1dc6b7cd50dfbfe29bbd71569ac3095f0a37cad2199994dbdaa76720d8fb0 DIST nvidia-persistenced-390.157.tar.bz2 48654 BLAKE2B 2cf6c92da90acff55e8c180a06b0c6a29d48be9fd8ca3c541202fd14f0697220fba6b66452942aa7ae7cc8821f5c5eb9fa8f7a31d2248624e5f9141d83a176b8 SHA512 70f0707ed6f2b877e69ef90cf782f66cbc9d2071db53ca09ceb7b89427b0fe176708517340621fa251539b7d481b238adeeb60261674eed74de1f62db6dbb72e DIST nvidia-persistenced-470.256.02.tar.bz2 46567 BLAKE2B 8f837322a3b88412fd2f6acf38721b49a6cb444fbd842d652519e5596f2e545d8f06bbdf017f46a22301ce87455f96147fab2829ca5fbf26131ec3e4a772e282 SHA512 4fd19258649b7d39945fb5c8578bf11ab118617dd14f3d11cdf15cb3fe77daf7b4719e4ae57af59031b1b809d02f4e8e8afed0ec60b9d0aed4d2488bd3013cd9 -DIST nvidia-persistenced-535.274.02.tar.bz2 48596 BLAKE2B 1f87652351ebdca97b1b145e421abdb2381fe9d824ebde12eb60983cf8480f60dc530337fd2a47d5120f3c77a6fbd895fca2497dacb31ed234a9e5cb357703c4 SHA512 2e8e3929039af7f468a4d43ea5a6452aba86fd715d229883212b9223603d0ecb7417380354e70c85366b173905708947f3bb1919e09382f69a62f502f7c6ae7a -DIST nvidia-persistenced-570.207.tar.bz2 61835 BLAKE2B 6dc810a183dd37f33b7cd2e9dcead6369adfffe1e2e85b40c0b18a72044131d1098be1e06550ac3fff39706aa2cff348ccbbc243fececef9de8147997a7cc98e SHA512 c178ddd4125c6002c414d14c162f272a144fc0621b6c51916bb8304a6fd7658cba6f1cc175fe65270b589ea8fa529531dff99ff3ac5336cf2f0f53775e07d7ad -DIST nvidia-persistenced-580.119.02.tar.bz2 62213 BLAKE2B d88ded3f8b99f975e71a6474f24f6e0179cc6a58f862b5796b962c8119a9c3f672a5a26a6caf834b8a27693ac2e394c85710117cb1d75d60963dbf41aad23c80 SHA512 052af6bbad837821ae50372595a14df9140fc0ef10199ea4667fd6fb1cd6524c84ee0570621f5e63b7234ded9bf3f1093402295752af3732bfc59176339515cc -DIST nvidia-persistenced-580.95.05.tar.bz2 62343 BLAKE2B ad5a8b185accac6e8488f7b6d138e71db783590ca3b9890a1034771977b2f598c4f920bc48e65dc254b925e71d7f59e935cf1e43c90982e81b48266ac5da4171 SHA512 624c052fd7e7aab74e86c07ab281448415f9900cade11c255f7b6907e7de26180513e83d7374b4a823ab431a0ce2c5a74ae51f8de3889bddeb959ec73c373605 -DIST nvidia-persistenced-590.44.01.tar.bz2 62203 BLAKE2B c656171144f8bf0c209a7d34813040ee3c19128520d07d72e46ad54972982b9d1ea9999bb31ed30b3f6479d1a8ac9c2476eebfe0cb71e41bfe7b062c1f8dc132 SHA512 41b373df321e58bb196b46ae0eeb83c3514f562fcb3ac0b159ea82446ef4e759a8a7a9952248b2fa28dc5294ecb2ad390c815933a05b1cba49023fb4b721b660 +DIST nvidia-persistenced-535.288.01.tar.bz2 48600 BLAKE2B 025d2d28a078354898a501eef857d496e504279e45ab2b167a4abd5345d50e8effa1432a46da7ffc0276faed5698fb02afec21eee810335daac638e4656d7ce8 SHA512 b92c96b12346d8e26321679ae51532e8d28eff6c2998b6e781ea840eecf022823e47b48ac0c918c1069eb04a601833c4e70c88f66eb4891bdea2a85666597d90 +DIST nvidia-persistenced-570.211.01.tar.bz2 61779 BLAKE2B 02ac6f53eb4c053ca894f79b49d2a4b1b1f8e9f1a349053794542e72112bf0fab87aa2ee317d486758aaf77811c929d0aa8fbbcef9de8cc59836445ef845cb7d SHA512 5cb8feb56bf245e8e51e65d3d6d31f2b588e7b84ca29330e564d3c27ab37ceb67df0f80f8b37dfafb49a9fe8d7fef6b26d6334c6403902737298e8f3b23d1cb3 +DIST nvidia-persistenced-580.126.09.tar.bz2 62240 BLAKE2B 980dfd0a2c852c97e246f36f69c984808ca01cdba299b2be51a2cd7e5125d56a98280a003a32ccaf6873afc3183f13aed0433077aa399475fb404e5d7811b37c SHA512 b6699cafb543d958911086c6773f7ac1ac3c32bb20b3a88c92e029f303f48f8daec7338cf080bf74ff97f26f4c92f640c1f51cf95fc9a601e666317fadf882ea +DIST nvidia-persistenced-580.126.18.tar.bz2 62246 BLAKE2B 2dd91f79713631afebd574bd3eed8fe2867083bece0ba9f57ffc3d41221729e39b2e04a2514b137c7a9407b0cb9569de3dc0c8f5ae78f9a15c78600c6feb8198 SHA512 32394ef4922b466a56f666ecea913831338af02a9768b85275ad1bbd9a7f75379e17597828412a4080a0dcfafb7e9bd5510d6244539594ca60a22a541de8458e DIST nvidia-persistenced-590.48.01.tar.bz2 62193 BLAKE2B e6f03ce2f24f1ddc6b1dc9b7a8dd22de4541d5ec82f85c58943cf48f295e7f77555765b01edcce1c7f5ba67580c51273de8b8200d522c49e2321cffcfc8aeb6b SHA512 960f37355e58da20af92f0f0df091709623e32d9ef4eaba34d1f6b52f71227ac7c3a7f84aec64460952fa32986672f9373774ab1e65149ed426c59be47d7f2d8 DIST nvidia-settings-390.157.tar.bz2 1108938 BLAKE2B d9ec1ab5d7f157d74627272adf752a671dd17e2ede02069437b6180b927fe315b15cc6416d584ab2f038b76fe01e5b64514a834f24d88ac16676e55205fdecdd SHA512 b16699009bf56a1ff3b623a528c58061c4f5a2c5c4a373756a07bcd667743a1df7c733a572d2d0baa835a904ac2fda8a5c85890dcc00c3a0f223e0467aea902d DIST nvidia-settings-470.256.02.tar.bz2 1062273 BLAKE2B 8e66201e7861469b12932595ef8f9fd29d4cfd570c2576ae7fbb7383f61c55ac71fe721cc431e79d6d69f86d998b5b4c3cafe531b573f439e6b499b0fc047a19 SHA512 626e66118ae2e62eacfdf44e37529c409b945a6f33637b9690d74abd87a2afb581aaca5f90328d280da99ceb659959d0e5dc5c22ef8013b2205b2b1c72e08007 -DIST nvidia-settings-535.274.02.tar.bz2 1094628 BLAKE2B 065eab7e3a6d2a38e437b133eeebddd647467ecfb110f1f356a37df2309e738372902bd8ad7cccb0643da0ef0a310536bc336e8583bf2a9058d580f4795a4b92 SHA512 bcaff79ebf66197a4228c6cda17995f6f0d1a6e8f1f156b907f5e7d7f06bdbf318b4fe084591e3f767ba4efc3a0986d2506fb4775ee09613d2c8f438762db1dd -DIST nvidia-settings-570.207.tar.bz2 1124342 BLAKE2B 7a1725d7ffb81df4d6d32fb4732aab44af5a84f8e42546e162924ec45fac06075e27748a2bdedfddddb8abf3387c07a79d8d23a7fea505f5efe213117a90ba08 SHA512 ed8a250c21f6fff50c6ebac6b6dcb016ce29bfef602ae57e4df87082e43640746bd900aef52c60b2415a23f658e3a8a5d3336c4cccaf9efcfc97d089bed11e8b -DIST nvidia-settings-580.119.02.tar.bz2 1132592 BLAKE2B c36458c81a9392c94312d0566c67ebcc60b11551211c1d0605cd45f2b01aef406d1ad49bb448a98daed47d53cc13f4d5cc0a2ea0ebdb9d34edebb772706fbd69 SHA512 34ef7943b3edac7f3d8bf8f191ba2c65da4d14307e053216b70bb0573182df0630a243f390d0455255a84d6fdb88e93dc886eb4edb49f31da5acdea400579089 -DIST nvidia-settings-580.95.05.tar.bz2 1131496 BLAKE2B 5eb45787d743319593ca36c6d95fc9e93a020615935211c627dbebccecf92b8dd7d28c6d63a95a07c8cad1a70a65b0ddcc0040564ece0bf3383478ae59bd3aa2 SHA512 8c60d4df230e253d5fdeda972f0a8a9285ee419fe9be34aa3d25c06d4954bb9b6fc6db789f3a621813fb817f6de6fbdec6d79f70d519f1ddcb6b25b8378d6480 -DIST nvidia-settings-590.44.01.tar.bz2 1134395 BLAKE2B b7a8a6f543f50bb2c399c45eba3cda4459518366868938f904a64412e83fca813cf6f545713c7dea2c9c8ac671b99192ba9e6e96c91fbccf4b4f8974a7a5471b SHA512 8aa2987381ebf3e7c8cf85264a4482368578ae28319edb53c1be70130faf27a62b2fc291225c503b499095c05c4a50d0d2d6845e9ccd080395b511a6ebc474dd +DIST nvidia-settings-535.288.01.tar.bz2 1094513 BLAKE2B 8b7112b44bbe3445b63ddc245edbdb717436432482e9f87398863ffd08c520b6ac3527d3d47a75cc7e0ddec3931302e3029ccd7050db1abcc317ebf697284e01 SHA512 f1a817d9463a928fe47fed14da5d1bc0b9cbe0a910cbf01fca0d4edbee0effa989ec1cbf34e0aba6cc8516cf7bdadbc60ee6f0e4178e3c6cfb78301a1ef5aa8b +DIST nvidia-settings-570.211.01.tar.bz2 1123957 BLAKE2B 7355319d29f96aeeada3cd1ffd08b053fa76a5f2f0dd35fac383ff5c1ffd4abba95d0a7f0f421fc4b74a11f2c94352c9e2db363034e5361a0d18017a321261f2 SHA512 8f29c02597eedd934531e703c617aaa7504effe836257de07c664145e07690b0b34b8c893c01e9e561bf90cb3c15b1b6c116e2a7a88ea1a733f2872490c10441 +DIST nvidia-settings-580.126.09.tar.bz2 1132737 BLAKE2B 9d32e702265c8802fee8694cd5b1170c4c19dce8e5c33047376368492a6b531ee09b9aaa81617db5b48dde6e8d1b34f5010fbe7e720598997e68f754c5985b05 SHA512 57ae5968056fbe5c76a2a0bebcd42c5a530874c787be2439ed7dd0e916dad20b1151f9ab91073751bbf0bbd344e70d32598ceec03344691a7fe2812e8a3d1c19 +DIST nvidia-settings-580.126.18.tar.bz2 1132578 BLAKE2B d903f91d84de3f98fcb6c32601c77297ad8cb34e74dc5719a36e5777a4f2003207f7ec3c41defaea4b26af739099a84648f994720db700090b81f7980d3e7cdb SHA512 6980829ba2e4517f0765b3a0321e408182627ed4f08601b9a44cbb7fd35bac46ba6eedc890e585ac9d1feb971fc0a0f3ae6992f3ee30bfe496cdec97ef4d6f30 DIST nvidia-settings-590.48.01.tar.bz2 1134292 BLAKE2B 901a3bad03d4eaca3f78afc154539f72aa882ae19052b43b6bfb267a3be1ded4af607fbc05d1a379a8038a22fa5a9c19dd6c393f3436cda97cc7049820f1ec57 SHA512 c82737dc8894a35b7e87afd99fb98c0a4093ec8fd48590cc8e09154d55f948ceaf48fff31c7d015adcceab31a00c5ec4334fe1e90aec94c4bb076118b789dd4c DIST nvidia-xconfig-390.157.tar.bz2 107399 BLAKE2B 0cbb3b1ba508ddc3ba4a161c290b31bf7a67f67880bdbd01171a962c5fa97ca945b1ef17932403f8589309380743f1da632c728d8accb6d4e56dbd895e7486bb SHA512 50b390811c9bf091b14add41f886925b17496b41006b7d3981d2398caa65cf5db8a579c8cebed78278384bf3acc629befb07b54339c61abcc75852c0dcb8b8ca DIST nvidia-xconfig-470.256.02.tar.bz2 108698 BLAKE2B e468574e4bc57e7279d4120e2b08a201671b50d408be0c530eabe5da7d45daaf21cbf5c7fa31410d0d732fe8ea1551cbfb21d1ae193c1b3f5b5c50c764c9e236 SHA512 9dcec1e0c2b56b4d38a5f2c76086302f8bc0860cc15012cce29c3a5062f801a48b6a2bb78344361b07a2717b58502783441a2daf402d9973a17526175b1f15ca -DIST nvidia-xconfig-535.274.02.tar.bz2 111008 BLAKE2B 4311cf01a7224a0fdf2d8730b2a88931d53916cd627740e6e8e73dbbd29641dfc32721c9886094799953464a69b80aa1fae1d6cf4b203c512ad65d2ae7f5356a SHA512 6c2d5e068f1e6d1c37041b179203608144797893e31c99133e1189a31e219176b3e032222d935679f4c30a79cb960741cecdaca0b552feb75eb10366aa9d66fa -DIST nvidia-xconfig-570.207.tar.bz2 111226 BLAKE2B 63ecc5f170fadb60fb841727799a31a4bd5a8465ca4b890d1d959a3559fe396ffd4ef4d9f0f79abbd59114894411fa584e1abb3e535d4ac47421480a40d5b4f3 SHA512 4250eef4f367d2d2a7e99cc393c1c738fb84240248c482343acc2b3a197d3c2cd7668c455d5d64758d83823dd17393d1699bed13ac9f8eb05b4b62150a2dde57 -DIST nvidia-xconfig-580.119.02.tar.bz2 111561 BLAKE2B 8e23563e05168de19f616c2fa7aaa69d626c9d21c3d7f7f876f60a711222779d87c1bdec7203bb9bbd401f198c0e1ea87ff586077cb7be78455722d1bef90b3a SHA512 68ae0de9adf9d33ef8d4703d508549a2268be5c11668cc067848b86fb920c428fb83dbb31a8497ccc9edcb43b2510b3c36bd7b4ded3a2cc0f022f372af418b29 -DIST nvidia-xconfig-580.95.05.tar.bz2 111488 BLAKE2B abaf3fa63c19129df539a1e0eb4466ff7b8ccf81527c69b6bcfb16df2abf0950541791ecca130ff59ec0028a5a92c1a0912bc1d35a48efbd331a58f224699db6 SHA512 4fa0d411e8c41ee5f24443ef9f88a261c006b5b487f6745d54eac27805a8a810ef5ffba1da3952a39978e1ccfe39114399722e392d282791a648c69a88b7777e -DIST nvidia-xconfig-590.44.01.tar.bz2 111036 BLAKE2B a8108784699b6b8e507a916152a2a02918db4da1f0ee24d4e31dbd1de779bef910f69fbfe0414df33d58b0ca1656f2d9a6fd4796c472078b5d919a14dd0b42ff SHA512 85b64c0fe5d6633b3aa95276f521b828b98278376b5be428080e257752332618867ded6805e8b50cbe9331bc4dd9fbdbdfd3c29e46fed1da890a993acbb3f613 +DIST nvidia-xconfig-535.288.01.tar.bz2 110671 BLAKE2B 94f8f5c651df7d43de308938312b2c97e8a0292a2575914250e22dc62e139cba36be038453d6f1688e8ebb90883ce0806424eee7ca6fd3a5cee5e9884cfc8d60 SHA512 4368625df5eec5ec8296b9f561a8dc32fda958fd4ea37a4bc9da42303529d6366b41a028d2d9614ba0dcd029a3a5740c15e4fa1febec31da7df51b0b276a831c +DIST nvidia-xconfig-570.211.01.tar.bz2 111263 BLAKE2B 9d6e7e973156d91ce1a213a95aa31269d811024ebf358dfad42c0771cafc6c4f2d4257994d67e67ac637a1107527511d8f8219446e9a57560bab8ba7d4d2684c SHA512 8e8be1e95998fde590bdb5c0246764a426d623c8bf9e705e7bff649f1daebb86726cead4add570622e34aea9a38b697d31d11d7a2fc741dd91af2ccaaa024cd1 +DIST nvidia-xconfig-580.126.09.tar.bz2 111541 BLAKE2B bab1f4347613ffe30ada9df4fa387a8426f4c829c4346cdb57cfa4334f93b2048b1296033e8ea79c1a5210ae8021ab5e4aa7d8dcbec216a886f5be14b684fdf4 SHA512 810e831e2522029e82e5bde1eab9ec641da271336c430eb2ce5645e7e765f179694fdb93a41e49ba2c951c0b0edc2fdffa77d088e9678ab206eabe45866c6c09 +DIST nvidia-xconfig-580.126.18.tar.bz2 111880 BLAKE2B 669b02a4dd3d3b08937f67f7812ac6b4f715d471526b3c5178623699fff2b89c596c199d1b8fa1837bb2a5c784f8adf68d1977686da8c586c5abd3f8b49d71f9 SHA512 769cff278522fd3a5435d0b2c31c627f4091be996f2e13ede2df064e025a32cdbe6818e5a81e86a0338a6e7b9c96b9aa4bd7d8a9ff737f738a46f0be63c9b90a DIST nvidia-xconfig-590.48.01.tar.bz2 110986 BLAKE2B 6ec7f5eee2ca4c4a96f0607ac94ec3d491137a0e8750a6ae4c46feddced61f7a8b1eb77aa333008a69ceab7ad071671b7449bb2ed9ba285359fd1cb991a9c9b2 SHA512 e85dbd9ba5e056fb6f8a4618df35fa1692d0037e50122a5659ebda043a9b380fdf72aaa56f82b64e5525c36f429ed9bbd7f0e319c608f7c50355d47ab3b24077 -DIST open-gpu-kernel-modules-580.94.13.tar.gz 23297773 BLAKE2B e694d81d489de376664d3e3afac2c127b4bac9db0a255f04a1a4b48ecdbf52e23d6523230ece371a30beb4699425d30f8c627bcf8c33214f87f46eddf18922c7 SHA512 03b150cc425f23bc9f567ab731a139379508e1368ed2ea7323ec9ab5fbc91839fede00dadbaf5c21ba2c3f0ffb5cafde0bc7871db1512838dd8b8f85c3a5fad2 +DIST open-gpu-kernel-modules-580.94.18.tar.gz 23301123 BLAKE2B d05530e8dd763a5305a20fd7a47a99f5bb9088cee68fc023f00c94c48f6477b0db504fa95f3ff1262d21cd57b05af529341bebfc69ec3ce904ac0315d424b0f7 SHA512 71fb699c57061d226ddfc1e8974c9c3f50d68af651e0d56afb425482b35c8892c67f60f9a41bde86e3f6d93b15bb8661d1f57b55b0fc18c84a6b8775ca5328c4 diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/files/nvidia-590.conf b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/files/nvidia-580.conf similarity index 83% rename from sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/files/nvidia-590.conf rename to sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/files/nvidia-580.conf index 5ab27a9e9d6..36d71d1664c 100644 --- a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/files/nvidia-590.conf +++ b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/files/nvidia-580.conf @@ -17,6 +17,12 @@ options nvidia-drm modeset=1 # if need to troubleshoot issues, and re-enable if unrelated. #options nvidia-drm fbdev=0 +# Disable use of the GSP firmware, only an option when USE=kernel-open +# is disabled (which in turn disables usage of Blackwell 50xx or newer +# GPUs). This should not be touched unless it is causing known issues. +# Notably may be needed to get Runtime D3 to work with Turing GPUs. +#options nvidia NVreg_EnableGpuFirmware=0 + # Suspend options. Note that Allocations=1 requires suspend hooks currently # only used when either systemd or elogind is used to suspend. If using # neither or have issues, try Allocations=0 (revert if it does not help diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/files/nvidia-kernel-module-source-580.126.09-kernel6.19.patch b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/files/nvidia-kernel-module-source-580.126.09-kernel6.19.patch new file mode 100644 index 00000000000..bab13eac328 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/files/nvidia-kernel-module-source-580.126.09-kernel6.19.patch @@ -0,0 +1,18 @@ +https://bugs.gentoo.org/970010 +--- a/kernel-module-source/kernel-open/nvidia-uvm/uvm_hmm.c ++++ b/kernel-module-source/kernel-open/nvidia-uvm/uvm_hmm.c +@@ -22,4 +22,5 @@ + *******************************************************************************/ + ++#include + #include "uvm_hmm.h" + +@@ -79,5 +80,7 @@ + // function will need to be revisited + // +-#if defined(NV_ZONE_DEVICE_PAGE_INIT_HAS_ORDER_ARG) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 19, 0) ++#define ZONE_DEVICE_PAGE_INIT(page) zone_device_page_init(page, page_pgmap(page), 0); ++#elif defined(NV_ZONE_DEVICE_PAGE_INIT_HAS_ORDER_ARG) + #define ZONE_DEVICE_PAGE_INIT(page) zone_device_page_init(page, 0) + #else diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/files/nvidia-kernel-module-source-590.48.01-kernel6.19.patch b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/files/nvidia-kernel-module-source-590.48.01-kernel6.19.patch new file mode 100644 index 00000000000..0b48d877323 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/files/nvidia-kernel-module-source-590.48.01-kernel6.19.patch @@ -0,0 +1,99 @@ +https://bugs.gentoo.org/970010 +--- a/kernel-module-source/kernel-open/nvidia-uvm/uvm_hmm.c ++++ b/kernel-module-source/kernel-open/nvidia-uvm/uvm_hmm.c +@@ -57,4 +57,5 @@ + #include + #include ++#include + + #include "uvm_common.h" +@@ -2141,5 +2142,9 @@ + UVM_ASSERT(!page_count(dpage)); + UVM_ASSERT(!dpage->zone_device_data); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 19, 0) ++ zone_device_page_init(dpage, page_pgmap(dpage), 0); ++#else + zone_device_page_init(dpage); ++#endif + dpage->zone_device_data = gpu_chunk; + atomic64_inc(&va_block->hmm.va_space->hmm.allocated_page_count); +--- a/kernel-module-source/kernel-open/nvidia-uvm/uvm_pmm_gpu.c ++++ b/kernel-module-source/kernel-open/nvidia-uvm/uvm_pmm_gpu.c +@@ -178,4 +178,6 @@ + #include "uvm_linux.h" + ++#include ++ + #if defined(CONFIG_PCI_P2PDMA) && defined(NV_STRUCT_PAGE_HAS_ZONE_DEVICE_DATA) + #include +@@ -3000,6 +3002,12 @@ + } + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 19, 0) ++static void devmem_folio_free(struct folio *folio) ++{ ++ struct page *page = &folio->page; ++#else + static void devmem_page_free(struct page *page) + { ++#endif + uvm_gpu_chunk_t *chunk = uvm_pmm_devmem_page_to_chunk(page); + uvm_gpu_t *gpu = uvm_gpu_chunk_get_gpu(chunk); +@@ -3061,5 +3069,9 @@ + static const struct dev_pagemap_ops uvm_pmm_devmem_ops = + { ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 19, 0) ++ .folio_free = devmem_folio_free, ++#else + .page_free = devmem_page_free, ++#endif + .migrate_to_ram = devmem_fault_entry, + }; +@@ -3149,6 +3161,12 @@ + } + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 19, 0) ++static void device_p2p_folio_free(struct folio *folio) ++{ ++ struct page *page = &folio->page; ++#else + static void device_p2p_page_free(struct page *page) + { ++#endif + uvm_device_p2p_mem_t *p2p_mem = page->zone_device_data; + +@@ -3159,12 +3177,24 @@ + + #if UVM_CDMM_PAGES_SUPPORTED() ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 19, 0) ++static void device_coherent_folio_free(struct folio *folio) ++{ ++ device_p2p_folio_free(folio); ++} ++#else + static void device_coherent_page_free(struct page *page) + { + device_p2p_page_free(page); + } ++#endif + + static const struct dev_pagemap_ops uvm_device_coherent_pgmap_ops = + { ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 19, 0) ++ .folio_free = device_coherent_folio_free, ++#else + .page_free = device_coherent_page_free, ++#endif + }; + +@@ -3303,5 +3333,9 @@ + static const struct dev_pagemap_ops uvm_device_p2p_pgmap_ops = + { ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 19, 0) ++ .folio_free = device_p2p_folio_free, ++#else + .page_free = device_p2p_page_free, ++#endif + }; + diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/metadata.xml b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/metadata.xml index 05def8b1636..d7260344c52 100644 --- a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/metadata.xml @@ -12,10 +12,8 @@ Use the open source variant of the drivers (only - works for Turing/Ampere or newer GPUs, aka GTX 1650+ - -- recommended with >=560.xx drivers if usable and - is *required* for 50xx Blackwell or newer GPUs -- - always-enabled regardless of USE in >=590.xx) + usable with Turing/Ampere or newer GPUs, aka GTX 1650+ + -- note 50xx Blackwell or newer cards *require* this) Install the persistence daemon for keeping devices state when unused (e.g. for headless) Install the NVIDIA dynamic boost support daemon (only useful with specific laptops, ignore if unsure) diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-535.274.02.ebuild b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-535.288.01.ebuild similarity index 98% rename from sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-535.274.02.ebuild rename to sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-535.288.01.ebuild index aecc28257f6..55126f020b2 100644 --- a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-535.274.02.ebuild +++ b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-535.288.01.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -26,7 +26,6 @@ LICENSE="NVIDIA-2023 Apache-2.0 BSD BSD-2 GPL-2 MIT ZLIB curl openssl" SLOT="0/${PV%%.*}" KEYWORDS="-* amd64 ~arm64" IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced powerd +static-libs +tools wayland" -REQUIRED_USE="kernel-open? ( modules )" COMMON_DEPEND=" acct-group/video @@ -183,6 +182,14 @@ src_compile() { local xnvflags=-fPIC #840389 tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)" + # Same as uname -m. + local target_arch + case ${ARCH} in + amd64) target_arch=x86_64 ;; + arm64) target_arch=aarch64 ;; + *) die "Unrecognised architecture: ${ARCH}" ;; + esac + NV_ARGS=( PREFIX="${EPREFIX}"/usr HOST_CC="$(tc-getBUILD_CC)" @@ -190,6 +197,7 @@ src_compile() { BUILD_GTK2LIB= NV_USE_BUNDLED_LIBJANSSON=0 NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out + TARGET_ARCH="${target_arch}" WAYLAND_AVAILABLE=$(usex wayland 1 0) XNVCTRL_CFLAGS="${xnvflags}" ) @@ -218,6 +226,7 @@ src_compile() { CC="${KERNEL_CC}" # needed for above gnu17 workaround IGNORE_CC_MISMATCH=yes NV_VERBOSE=1 SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}" + TARGET_ARCH="${target_arch}" # kernel takes "x86" and "x86_64" as meaning the same, but nvidia # makes the distinction (since 550.135) and is not happy with "x86" @@ -555,7 +564,7 @@ pkg_postinst() { ewarn "[2] https://wiki.gentoo.org/wiki/Nouveau" fi - if use kernel-open; then + if use kernel-open && use modules; then ewarn "\nOpen source variant of ${PN} was selected, be warned it is experimental" ewarn "and only for modern GPUs (e.g. GTX 1650+). Try to disable if run into issues." ewarn "Please also see: ${EROOT}/usr/share/doc/${PF}/html/kernel_open.html" diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-570.207.ebuild b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-570.211.01.ebuild similarity index 98% rename from sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-570.207.ebuild rename to sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-570.211.01.ebuild index b344456365b..4d3677fc847 100644 --- a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-570.207.ebuild +++ b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-570.211.01.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -26,7 +26,6 @@ LICENSE="NVIDIA-2025 Apache-2.0 BSD BSD-2 GPL-2 MIT ZLIB curl openssl" SLOT="0/${PV%%.*}" KEYWORDS="-* amd64 ~arm64" IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced powerd +static-libs +tools wayland" -REQUIRED_USE="kernel-open? ( modules )" COMMON_DEPEND=" acct-group/video @@ -61,10 +60,7 @@ RDEPEND=" powerd? ( sys-apps/dbus[abi_x86_32(-)?] ) wayland? ( >=gui-libs/egl-gbm-1.1.1-r2[abi_x86_32(-)?] - || ( - >=gui-libs/egl-wayland-1.1.13.1[abi_x86_32(-)?] - gui-libs/egl-wayland2[abi_x86_32(-)?] - ) + >=gui-libs/egl-wayland-1.1.13.1[abi_x86_32(-)?] X? ( gui-libs/egl-x11[abi_x86_32(-)?] ) ) " @@ -186,6 +182,14 @@ src_compile() { local xnvflags=-fPIC #840389 tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)" + # Same as uname -m. + local target_arch + case ${ARCH} in + amd64) target_arch=x86_64 ;; + arm64) target_arch=aarch64 ;; + *) die "Unrecognised architecture: ${ARCH}" ;; + esac + NV_ARGS=( PREFIX="${EPREFIX}"/usr HOST_CC="$(tc-getBUILD_CC)" @@ -193,6 +197,7 @@ src_compile() { BUILD_GTK2LIB= NV_USE_BUNDLED_LIBJANSSON=0 NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out + TARGET_ARCH="${target_arch}" WAYLAND_AVAILABLE=$(usex wayland 1 0) XNVCTRL_CFLAGS="${xnvflags}" ) @@ -217,6 +222,7 @@ src_compile() { local modargs=( IGNORE_CC_MISMATCH=yes NV_VERBOSE=1 SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}" + TARGET_ARCH="${target_arch}" # kernel takes "x86" and "x86_64" as meaning the same, but nvidia # makes the distinction (since 550.135) and is not happy with "x86" @@ -569,7 +575,7 @@ pkg_postinst() { ewarn "[2] https://wiki.gentoo.org/wiki/Nouveau" fi - if use kernel-open && [[ ! -v NV_HAD_KERNEL_OPEN ]]; then + if use kernel-open && use modules && [[ ! -v NV_HAD_KERNEL_OPEN ]]; then ewarn "\nOpen source variant of ${PN} was selected, note that it requires" ewarn "Turing/Ampere+ GPUs (aka GTX 1650+). Try disabling if run into issues." ewarn "Also see: ${EROOT}/usr/share/doc/${PF}/html/kernel_open.html" diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.126.09-r1.ebuild b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.126.09-r1.ebuild new file mode 100644 index 00000000000..89f7e24ef28 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.126.09-r1.ebuild @@ -0,0 +1,605 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MODULES_OPTIONAL_IUSE=+modules +inherit desktop dot-a eapi9-pipestatus eapi9-ver flag-o-matic linux-mod-r1 +inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info + +MODULES_KERNEL_MAX=6.19 +NV_URI="https://download.nvidia.com/XFree86/" + +DESCRIPTION="NVIDIA Accelerated Graphics Driver" +HOMEPAGE="https://www.nvidia.com/" +SRC_URI=" + amd64? ( ${NV_URI}Linux-x86_64/${PV}/NVIDIA-Linux-x86_64-${PV}.run ) + arm64? ( ${NV_URI}Linux-aarch64/${PV}/NVIDIA-Linux-aarch64-${PV}.run ) + $(printf "${NV_URI}%s/%s-${PV}.tar.bz2 " \ + nvidia-{installer,modprobe,persistenced,settings,xconfig}{,}) + ${NV_URI}NVIDIA-kernel-module-source/NVIDIA-kernel-module-source-${PV}.tar.xz +" +# nvidia-installer is unused but here for GPL-2's "distribute sources" +S=${WORKDIR} + +LICENSE=" + NVIDIA-2025 Apache-2.0 Boost-1.0 BSD BSD-2 GPL-2 MIT ZLIB + curl openssl public-domain +" +SLOT="0/${PV%%.*}" +KEYWORDS="-* amd64 ~arm64" +IUSE=" + +X abi_x86_32 abi_x86_64 kernel-open persistenced powerd + +static-libs +tools wayland +" + +COMMON_DEPEND=" + acct-group/video + X? ( x11-libs/libpciaccess ) + persistenced? ( + acct-user/nvpd + net-libs/libtirpc:= + ) + tools? ( + >=app-accessibility/at-spi2-core-2.46:2 + dev-libs/glib:2 + dev-libs/jansson:= + media-libs/harfbuzz:= + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/gtk+:3[X] + x11-libs/libX11 + x11-libs/libXext + x11-libs/libXxf86vm + x11-libs/pango + ) +" +RDEPEND=" + ${COMMON_DEPEND} + dev-libs/openssl:0/3 + sys-libs/glibc + X? ( + media-libs/libglvnd[X,abi_x86_32(-)?] + x11-libs/libX11[abi_x86_32(-)?] + x11-libs/libXext[abi_x86_32(-)?] + ) + powerd? ( sys-apps/dbus[abi_x86_32(-)?] ) + wayland? ( + >=gui-libs/egl-gbm-1.1.1-r2[abi_x86_32(-)?] + >=gui-libs/egl-wayland-1.1.13.1[abi_x86_32(-)?] + X? ( gui-libs/egl-x11[abi_x86_32(-)?] ) + ) +" +DEPEND=" + ${COMMON_DEPEND} + static-libs? ( + x11-base/xorg-proto + x11-libs/libX11 + x11-libs/libXext + ) + tools? ( + dev-util/vulkan-headers + media-libs/libglvnd + sys-apps/dbus + x11-base/xorg-proto + x11-libs/libXrandr + x11-libs/libXv + x11-libs/libvdpau + ) +" +BDEPEND=" + app-alternatives/awk + sys-devel/m4 + virtual/pkgconfig +" + +# there is some non-prebuilt exceptions but rather not maintain a list +QA_PREBUILT="lib/firmware/* usr/bin/* usr/lib*" + +PATCHES=( + "${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch + "${FILESDIR}"/nvidia-settings-530.30.02-desktop.patch + "${FILESDIR}"/nvidia-kernel-module-source-${PV}-kernel6.19.patch +) + +pkg_setup() { + use modules && [[ ${MERGE_TYPE} != binary ]] || return + + # do early before linux-mod-r1 so can use chkconfig to setup CONFIG_CHECK + get_version + require_configured_kernel + + local CONFIG_CHECK=" + PROC_FS + ~DRM_KMS_HELPER + ~DRM_FBDEV_EMULATION + ~SYSVIPC + ~!LOCKDEP + ~!PREEMPT_RT + ~!RANDSTRUCT_FULL + ~!RANDSTRUCT_PERFORMANCE + ~!SLUB_DEBUG_ON + !DEBUG_MUTEXES + $(usev powerd '~CPU_FREQ') + " + + kernel_is -ge 6 11 && linux_chkconfig_present DRM_FBDEV_EMULATION && + CONFIG_CHECK+=" DRM_TTM_HELPER" + + use amd64 && kernel_is -ge 5 8 && CONFIG_CHECK+=" X86_PAT" #817764 + + use kernel-open && CONFIG_CHECK+=" MMU_NOTIFIER" #843827 + + local drm_helper_msg="Cannot be directly selected in the kernel's config menus, and may need + selection of a DRM device even if unused, e.g. CONFIG_DRM_QXL=m or + DRM_AMDGPU=m (among others, consult the kernel config's help), can + also use DRM_NOUVEAU=m as long as built as module *not* built-in." + local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but is needed for nvidia-drm.modeset=1 + support (see ${EPREFIX}/etc/modprobe.d/nvidia.conf) which is needed for wayland + and for config-less Xorg auto-detection. + ${drm_helper_msg}" + local ERROR_DRM_TTM_HELPER="CONFIG_DRM_TTM_HELPER: is not set but is needed to compile when using + kernel version 6.11.x or newer while DRM_FBDEV_EMULATION is set. + ${drm_helper_msg}" + local ERROR_DRM_FBDEV_EMULATION="CONFIG_DRM_FBDEV_EMULATION: is not set but is needed for + nvidia-drm.fbdev=1 support (see ${EPREFIX}/etc/modprobe.d/nvidia.conf), may + result in a blank console/tty." + local ERROR_MMU_NOTIFIER="CONFIG_MMU_NOTIFIER: is not set but needed to build with USE=kernel-open. + Cannot be directly selected in the kernel's menuconfig, and may need + selection of another option that requires it such as CONFIG_AMD_IOMMU=y, + or DRM_I915=m (among others, consult the kernel config's help)." + local ERROR_PREEMPT_RT="CONFIG_PREEMPT_RT: is set but is unsupported by NVIDIA upstream and + will fail to build unless the env var IGNORE_PREEMPT_RT_PRESENCE=1 is + set. Please do not report issues if run into e.g. kernel panics while + ignoring this." + local randstruct_msg="is set but NVIDIA may be unstable with + it such as causing a kernel panic on shutdown, it is recommended to + disable with CONFIG_RANDSTRUCT_NONE=y (https://bugs.gentoo.org/969413 + -- please report if this appears fixed on NVIDIA's side so can remove + this warning)." + local ERROR_RANDSTRUCT_FULL="CONFIG_RANDSTRUCT_FULL: ${randstruct_msg}" + local ERROR_RANDSTRUCT_PERFORMANCE="CONFIG_RANDSTRUCT_PERFORMANCE: ${randstruct_msg}" + + linux-mod-r1_pkg_setup +} + +src_prepare() { + # make patches usable across versions + rm nvidia-modprobe && mv nvidia-modprobe{-${PV},} || die + rm nvidia-persistenced && mv nvidia-persistenced{-${PV},} || die + rm nvidia-settings && mv nvidia-settings{-${PV},} || die + rm nvidia-xconfig && mv nvidia-xconfig{-${PV},} || die + mv NVIDIA-kernel-module-source-${PV} kernel-module-source || die + + default + + # prevent detection of incomplete kernel DRM support (bug #603818) + sed 's/defined(CONFIG_DRM/defined(CONFIG_DRM_KMS_HELPER/g' \ + -i kernel{,-module-source/kernel-open}/conftest.sh || die + + sed 's/__USER__/nvpd/' \ + nvidia-persistenced/init/systemd/nvidia-persistenced.service.template \ + > "${T}"/nvidia-persistenced.service || die + + # use alternative vulkan icd option if USE=-X (bug #909181) + use X || sed -i 's/"libGLX/"libEGL/' nvidia_{layers,icd}.json || die + + # makefile attempts to install wayland library even if not built + use wayland || sed -i 's/ WAYLAND_LIB_install$//' \ + nvidia-settings/src/Makefile || die +} + +src_compile() { + tc-export AR CC CXX LD OBJCOPY OBJDUMP PKG_CONFIG + + # extra flags for the libXNVCtrl.a static library + local xnvflags=-fPIC #840389 + tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)" + + # Same as uname -m. + local target_arch + case ${ARCH} in + amd64) target_arch=x86_64 ;; + arm64) target_arch=aarch64 ;; + *) die "Unrecognised architecture: ${ARCH}" ;; + esac + + NV_ARGS=( + PREFIX="${EPREFIX}"/usr + HOST_CC="$(tc-getBUILD_CC)" + HOST_LD="$(tc-getBUILD_LD)" + BUILD_GTK2LIB= + NV_USE_BUNDLED_LIBJANSSON=0 + NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out + TARGET_ARCH="${target_arch}" + WAYLAND_AVAILABLE=$(usex wayland 1 0) + XNVCTRL_CFLAGS="${xnvflags}" + ) + + if use modules; then + local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS} + + local modlistargs=video:kernel + if use kernel-open; then + modlistargs+=-module-source:kernel-module-source/kernel-open + + # environment flags are normally unused for modules, but nvidia + # uses it for building the "blob" and it is a bit fragile + filter-flags -fno-plt #912949 + filter-lto + CC=${KERNEL_CC} CXX=${KERNEL_CXX} strip-unsupported-flags + + LDFLAGS=$(raw-ldflags) + fi + + local modlist=( nvidia{,-drm,-modeset,-peermem,-uvm}=${modlistargs} ) + local modargs=( + IGNORE_CC_MISMATCH=yes NV_VERBOSE=1 + SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}" + TARGET_ARCH="${target_arch}" + + # kernel takes "x86" and "x86_64" as meaning the same, but nvidia + # makes the distinction (since 550.135) and is not happy with "x86" + # TODO?: it should be ok/better for tc-arch-kernel to do x86_64 + $(usev amd64 ARCH=x86_64) + ) + + # temporary workaround for bug #914468 + addpredict "${KV_OUT_DIR}" + + linux-mod-r1_src_compile + CFLAGS=${o_cflags} CXXFLAGS=${o_cxxflags} LDFLAGS=${o_ldflags} + fi + + emake "${NV_ARGS[@]}" -C nvidia-modprobe + use persistenced && emake "${NV_ARGS[@]}" -C nvidia-persistenced + use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig + + if use tools; then + # avoid noisy *very* noisy logs with deprecation warnings + CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \ + emake "${NV_ARGS[@]}" -C nvidia-settings + elif use static-libs; then + # pretend GTK+3 is available, not actually used (bug #880879) + emake "${NV_ARGS[@]}" BUILD_GTK3LIB=1 \ + -C nvidia-settings/src out/libXNVCtrl.a + fi +} + +src_install() { + local libdir=$(get_libdir) libdir32=$(ABI=x86 get_libdir) + + NV_ARGS+=( DESTDIR="${D}" LIBDIR="${ED}"/usr/${libdir} ) + + local -A paths=( + [APPLICATION_PROFILE]=/usr/share/nvidia + [CUDA_ICD]=/etc/OpenCL/vendors + [EGL_EXTERNAL_PLATFORM_JSON]=/usr/share/egl/egl_external_platform.d + [FIRMWARE]=/lib/firmware/nvidia/${PV} + [GBM_BACKEND_LIB_SYMLINK]=/usr/${libdir}/gbm + [GLVND_EGL_ICD_JSON]=/usr/share/glvnd/egl_vendor.d + [OPENGL_DATA]=/usr/share/nvidia + [VULKANSC_ICD_JSON]=/usr/share/vulkansc + [VULKAN_ICD_JSON]=/usr/share/vulkan + [WINE_LIB]=/usr/${libdir}/nvidia/wine + [XORG_OUTPUTCLASS_CONFIG]=/usr/share/X11/xorg.conf.d + + [GLX_MODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules/extensions + [GLX_MODULE_SYMLINK]=/usr/${libdir}/xorg/modules + [XMODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules + ) + + local skip_files=( + $(usev !X "libGLX_nvidia libglxserver_nvidia") + libGLX_indirect # non-glvnd unused fallback + libnvidia-{gtk,wayland-client} nvidia-{settings,xconfig} # from source + libnvidia-egl-gbm 15_nvidia_gbm # gui-libs/egl-gbm + libnvidia-egl-wayland 10_nvidia_wayland # gui-libs/egl-wayland + libnvidia-egl-xcb 20_nvidia_xcb.json # gui-libs/egl-x11 + libnvidia-egl-xlib 20_nvidia_xlib.json # gui-libs/egl-x11 + libnvidia-pkcs11.so # using the openssl3 version instead + ) + local skip_modules=( + $(usev !X "nvfbc vdpau xdriver") + $(usev !modules gsp) + $(usev !powerd nvtopps) + installer nvpd # handled separately / built from source + ) + local skip_types=( + GLVND_LIB GLVND_SYMLINK EGL_CLIENT.\* GLX_CLIENT.\* # media-libs/libglvnd + OPENCL_WRAPPER.\* # virtual/opencl + DOCUMENTATION DOT_DESKTOP .\*_SRC DKMS_CONF SYSTEMD_UNIT # handled separately / unused + ) + + local DOCS=( + README.txt NVIDIA_Changelog supported-gpus/supported-gpus.json + nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt + ) + local HTML_DOCS=( html/. ) + einstalldocs + + local DISABLE_AUTOFORMATTING=yes + local DOC_CONTENTS="\ +Trusted users should be in the 'video' group to use NVIDIA devices. +You can add yourself by using: gpasswd -a my-user video\ +$(usev modules " + +Like all out-of-tree kernel modules, it is necessary to rebuild +${PN} after upgrading or rebuilding the Linux kernel +by for example running \`emerge @module-rebuild\`. Alternatively, +if using a distribution kernel (sys-kernel/gentoo-kernel{,-bin}), +this can be automated by setting USE=dist-kernel globally. + +Loaded kernel modules also must not mismatch with the installed +${PN} version (excluding -r revision), meaning should +ensure \`eselect kernel list\` points to the kernel that will be +booted before building and preferably reboot after upgrading +${PN} (the ebuild will emit a warning if mismatching). + +See '${EPREFIX}/etc/modprobe.d/nvidia.conf' for modules options.")\ +$(use amd64 && usev !abi_x86_32 " + +Note that without USE=abi_x86_32 on ${PN}, 32bit applications +(typically using wine / steam) will not be able to use GPU acceleration.") + +Be warned that USE=kernel-open may need to be either enabled or +disabled for certain cards to function: +- GTX 50xx (blackwell) and higher require it to be enabled +- GTX 1650 and higher (pre-blackwell) should work either way +- Older cards require it to be disabled + +For additional information or for troubleshooting issues, please see +https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers and NVIDIA's own +documentation that is installed alongside this README." + readme.gentoo_create_doc + + if use modules; then + linux-mod-r1_src_install + + insinto /etc/modprobe.d + newins "${FILESDIR}"/nvidia-580.conf nvidia.conf + + # used for gpu verification with binpkgs (not kept, see pkg_preinst) + insinto /usr/share/nvidia + doins supported-gpus/supported-gpus.json + fi + + emake "${NV_ARGS[@]}" -C nvidia-modprobe install + fowners :video /usr/bin/nvidia-modprobe #505092 + fperms 4710 /usr/bin/nvidia-modprobe + + if use persistenced; then + emake "${NV_ARGS[@]}" -C nvidia-persistenced install + newconfd "${FILESDIR}"/nvidia-persistenced.confd nvidia-persistenced + newinitd "${FILESDIR}"/nvidia-persistenced.initd nvidia-persistenced + systemd_dounit "${T}"/nvidia-persistenced.service + fi + + if use tools; then + emake "${NV_ARGS[@]}" -C nvidia-settings install + + doicon nvidia-settings/doc/nvidia-settings.png + domenu nvidia-settings/doc/nvidia-settings.desktop + + exeinto /etc/X11/xinit/xinitrc.d + newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings + fi + + if use static-libs; then + dolib.a nvidia-settings/src/out/libXNVCtrl.a + strip-lto-bytecode + + insinto /usr/include/NVCtrl + doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h + fi + + use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig install + + # mimic nvidia-installer by reading .manifest to install files + # 0:file 1:perms 2:type 3+:subtype/arguments -:module + local m into + while IFS=' ' read -ra m; do + ! [[ ${#m[@]} -ge 2 && ${m[-1]} =~ MODULE: ]] || + [[ " ${m[0]##*/}" =~ ^(\ ${skip_files[*]/%/.*|\\} )$ ]] || + [[ " ${m[2]}" =~ ^(\ ${skip_types[*]/%/|\\} )$ ]] || + has ${m[-1]#MODULE:} "${skip_modules[@]}" && continue + + case ${m[2]} in + MANPAGE) + gzip -dc ${m[0]} | newman - ${m[0]%.gz} + pipestatus || die + continue + ;; + GBM_BACKEND_LIB_SYMLINK) m[4]=../${m[4]};; # missing ../ + VDPAU_SYMLINK) m[4]=vdpau/; m[5]=${m[5]#vdpau/};; # .so to vdpau/ + esac + + if [[ -v 'paths[${m[2]}]' ]]; then + into=${paths[${m[2]}]} + elif [[ ${m[2]} == EXPLICIT_PATH ]]; then + into=${m[3]} + elif [[ ${m[2]} == *_BINARY ]]; then + into=/usr/bin + elif [[ ${m[3]} == COMPAT32 ]]; then + use abi_x86_32 || continue + into=/usr/${libdir32} + elif [[ ${m[2]} == *_@(LIB|SYMLINK) ]]; then + into=/usr/${libdir} + else + die "No known installation path for ${m[0]}" + fi + [[ ${m[3]: -2} == ?/ ]] && into+=/${m[3]%/} + [[ ${m[4]: -2} == ?/ ]] && into+=/${m[4]%/} + + if [[ ${m[2]} =~ _SYMLINK$ ]]; then + [[ ${m[4]: -1} == / ]] && m[4]=${m[5]} + dosym ${m[4]} ${into}/${m[0]} + continue + fi + # avoid portage warning due to missing soname links in manifest + [[ ${m[0]} =~ ^libnvidia-ngx.so ]] && + dosym ${m[0]} ${into}/${m[0]%.so*}.so.1 + + printf -v m[1] %o $((m[1] | 0200)) # 444->644 + insopts -m${m[1]} + insinto ${into} + doins ${m[0]} + done < .manifest || die + insopts -m0644 # reset + + # MODULE:installer non-skipped extras + : "$(systemd_get_sleepdir)" + exeinto "${_#"${EPREFIX}"}" + doexe systemd/system-sleep/nvidia + dobin systemd/nvidia-sleep.sh + systemd_dounit systemd/system/nvidia-{hibernate,resume,suspend,suspend-then-hibernate}.service + + dobin nvidia-bug-report.sh + + insinto /usr/share/nvidia/files.d + doins sandboxutils-filelist.json + + # MODULE:powerd extras + if use powerd; then + newinitd "${FILESDIR}"/nvidia-powerd.initd nvidia-powerd #923117 + systemd_dounit systemd/system/nvidia-powerd.service + + insinto /usr/share/dbus-1/system.d + doins nvidia-dbus.conf + fi + + # enabling is needed for sleep to work properly and little reason not to do + # it unconditionally for a better user experience + : "$(systemd_get_systemunitdir)" + local unitdir=${_#"${EPREFIX}"} + # not using relative symlinks to match systemd's own links + dosym {"${unitdir}",/etc/systemd/system/systemd-hibernate.service.wants}/nvidia-hibernate.service + dosym {"${unitdir}",/etc/systemd/system/systemd-hibernate.service.wants}/nvidia-resume.service + dosym {"${unitdir}",/etc/systemd/system/systemd-suspend.service.wants}/nvidia-suspend.service + dosym {"${unitdir}",/etc/systemd/system/systemd-suspend.service.wants}/nvidia-resume.service + dosym {"${unitdir}",/etc/systemd/system/systemd-suspend-then-hibernate.service.wants}/nvidia-suspend-then-hibernate.service + dosym {"${unitdir}",/etc/systemd/system/systemd-suspend-then-hibernate.service.wants}/nvidia-resume.service + # also add a custom elogind hook to do the equivalent of the above + exeinto /usr/lib/elogind/system-sleep + newexe "${FILESDIR}"/system-sleep.elogind nvidia + # =systemd-256 or may fail to resume with some setups + # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1072722 + insinto "${unitdir}"/systemd-homed.service.d + newins - 10-nvidia.conf <<-EOF + [Service] + Environment=SYSTEMD_HOME_LOCK_FREEZE_SESSION=false + EOF + insinto "${unitdir}"/systemd-suspend.service.d + newins - 10-nvidia.conf <<-EOF + [Service] + Environment=SYSTEMD_SLEEP_FREEZE_USER_SESSIONS=false + EOF + dosym -r "${unitdir}"/systemd-{suspend,hibernate}.service.d/10-nvidia.conf + dosym -r "${unitdir}"/systemd-{suspend,hybrid-sleep}.service.d/10-nvidia.conf + dosym -r "${unitdir}"/systemd-{suspend,suspend-then-hibernate}.service.d/10-nvidia.conf + + # symlink non-versioned so nvidia-settings can use it even if misdetected + dosym nvidia-application-profiles-${PV}-key-documentation \ + ${paths[APPLICATION_PROFILE]}/nvidia-application-profiles-key-documentation + + # don't attempt to strip firmware files (silences errors) + dostrip -x ${paths[FIRMWARE]} + + # sandbox issues with /dev/nvidiactl and others (bug #904292,#921578) + # are widespread and sometime affect revdeps of packages built with + # USE=opencl/cuda making it hard to manage in ebuilds (minimal set, + # ebuilds should handle manually if need others or addwrite) + insinto /etc/sandbox.d + newins - 20nvidia <<<'SANDBOX_PREDICT="/dev/nvidiactl:/dev/nvidia-caps:/dev/char"' + + # dracut does not use /etc/modprobe.d if hostonly=no, but want to make sure + # our settings are used for bug 932781#c8 and nouveau blacklist if either + # modules are included (however, just best-effort without initramfs regen) + if use modules; then + echo "install_items+=\" ${EPREFIX}/etc/modprobe.d/nvidia.conf \"" >> \ + "${ED}"/usr/lib/dracut/dracut.conf.d/10-${PN}.conf || die + fi +} + +pkg_preinst() { + has_version "${CATEGORY}/${PN}[kernel-open]" && NV_HAD_KERNEL_OPEN= + + use modules || return + + # set video group id based on live system (bug #491414) + local g=$(egetent group video | cut -d: -f3) + [[ ${g} =~ ^[0-9]+$ ]] || die "Failed to determine video group id (got '${g}')" + sed -i "s/@VIDEOGID@/${g}/" "${ED}"/etc/modprobe.d/nvidia.conf || die + + # try to find driver mismatches using temporary supported-gpus.json + for g in $(grep -l 0x10de /sys/bus/pci/devices/*/vendor 2>/dev/null); do + g=$(grep -io "\"devid\":\"$(<${g%vendor}device)\"[^}]*branch\":\"[0-9]*" \ + "${ED}"/usr/share/nvidia/supported-gpus.json 2>/dev/null) + if [[ ${g} ]]; then + g=$((${g##*\"}+1)) + if ver_test -ge ${g}; then + NV_LEGACY_MASK=">=${CATEGORY}/${PN}-${g}" + break + fi + fi + done + rm "${ED}"/usr/share/nvidia/supported-gpus.json || die +} + +pkg_postinst() { + linux-mod-r1_pkg_postinst + + readme.gentoo_print_elog + + if [[ -r /proc/driver/nvidia/version && + $( ${EROOT}/etc/portage/package.mask/${PN}" + else + ewarn " echo '${NV_LEGACY_MASK}' >> ${EROOT}/etc/portage/package.mask" + fi + ewarn "...then downgrade to a legacy[1] branch if possible (not all old versions" + ewarn "are available or fully functional, may need to consider nouveau[2])." + ewarn "[1] https://www.nvidia.com/object/IO_32667.html" + ewarn "[2] https://wiki.gentoo.org/wiki/Nouveau" + fi + + if use kernel-open && use modules && [[ ! -v NV_HAD_KERNEL_OPEN ]]; then + ewarn "\nOpen source variant of ${PN} was selected, note that it requires" + ewarn "Turing/Ampere+ GPUs (aka GTX 1650+). Try disabling if run into issues." + ewarn "Also see: ${EROOT}/usr/share/doc/${PF}/html/kernel_open.html" + fi + + if ver_replacing -lt 580.126.09-r1; then + elog "\n>=nvidia-drivers-580.126.09-r1 changes some defaults that may or may" + elog "not need attention:" + elog "1. nvidia-drm.modeset=1 is now default regardless of USE=wayland" + elog "2. nvidia-drm.fbdev=1 is now also tentatively default to match upstream" + elog "See ${EROOT}/etc/modprobe.d/nvidia.conf to modify settings if needed," + elog "fbdev=1 *could* cause issues for the console display with some setups." + fi +} diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.95.05.ebuild b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.126.09.ebuild similarity index 95% rename from sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.95.05.ebuild rename to sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.126.09.ebuild index 3dde3bbccdd..d4e71fe8b01 100644 --- a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.95.05.ebuild +++ b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.126.09.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -7,7 +7,7 @@ MODULES_OPTIONAL_IUSE=+modules inherit desktop dot-a eapi9-pipestatus flag-o-matic linux-mod-r1 inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info -MODULES_KERNEL_MAX=6.18 +MODULES_KERNEL_MAX=6.19 NV_URI="https://download.nvidia.com/XFree86/" DESCRIPTION="NVIDIA Accelerated Graphics Driver" @@ -29,7 +29,6 @@ LICENSE=" SLOT="0/${PV%%.*}" KEYWORDS="-* amd64 ~arm64" IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced powerd +static-libs +tools wayland" -REQUIRED_USE="kernel-open? ( modules )" COMMON_DEPEND=" acct-group/video @@ -64,10 +63,7 @@ RDEPEND=" powerd? ( sys-apps/dbus[abi_x86_32(-)?] ) wayland? ( >=gui-libs/egl-gbm-1.1.1-r2[abi_x86_32(-)?] - || ( - >=gui-libs/egl-wayland-1.1.13.1[abi_x86_32(-)?] - gui-libs/egl-wayland2[abi_x86_32(-)?] - ) + >=gui-libs/egl-wayland-1.1.13.1[abi_x86_32(-)?] X? ( gui-libs/egl-x11[abi_x86_32(-)?] ) ) " @@ -100,7 +96,7 @@ QA_PREBUILT="lib/firmware/* usr/bin/* usr/lib*" PATCHES=( "${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch "${FILESDIR}"/nvidia-settings-530.30.02-desktop.patch - "${FILESDIR}"/nvidia-kernel-module-source-580.95.05-kernel6.18.patch + "${FILESDIR}"/nvidia-kernel-module-source-${PV}-kernel6.19.patch ) pkg_setup() { @@ -117,6 +113,8 @@ pkg_setup() { ~SYSVIPC ~!LOCKDEP ~!PREEMPT_RT + ~!RANDSTRUCT_FULL + ~!RANDSTRUCT_PERFORMANCE ~!SLUB_DEBUG_ON !DEBUG_MUTEXES $(usev powerd '~CPU_FREQ') @@ -150,6 +148,13 @@ pkg_setup() { will fail to build unless the env var IGNORE_PREEMPT_RT_PRESENCE=1 is set. Please do not report issues if run into e.g. kernel panics while ignoring this." + local randstruct_msg="is set but NVIDIA may be unstable with + it such as causing a kernel panic on shutdown, it is recommended to + disable with CONFIG_RANDSTRUCT_NONE=y (https://bugs.gentoo.org/969413 + -- please report if this appears fixed on NVIDIA's side so can remove + this warning)." + local ERROR_RANDSTRUCT_FULL="CONFIG_RANDSTRUCT_FULL: ${randstruct_msg}" + local ERROR_RANDSTRUCT_PERFORMANCE="CONFIG_RANDSTRUCT_PERFORMANCE: ${randstruct_msg}" linux-mod-r1_pkg_setup } @@ -191,6 +196,14 @@ src_compile() { local xnvflags=-fPIC #840389 tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)" + # Same as uname -m. + local target_arch + case ${ARCH} in + amd64) target_arch=x86_64 ;; + arm64) target_arch=aarch64 ;; + *) die "Unrecognised architecture: ${ARCH}" ;; + esac + NV_ARGS=( PREFIX="${EPREFIX}"/usr HOST_CC="$(tc-getBUILD_CC)" @@ -198,6 +211,7 @@ src_compile() { BUILD_GTK2LIB= NV_USE_BUNDLED_LIBJANSSON=0 NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out + TARGET_ARCH="${target_arch}" WAYLAND_AVAILABLE=$(usex wayland 1 0) XNVCTRL_CFLAGS="${xnvflags}" ) @@ -222,6 +236,7 @@ src_compile() { local modargs=( IGNORE_CC_MISMATCH=yes NV_VERBOSE=1 SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}" + TARGET_ARCH="${target_arch}" # kernel takes "x86" and "x86_64" as meaning the same, but nvidia # makes the distinction (since 550.135) and is not happy with "x86" @@ -574,7 +589,7 @@ pkg_postinst() { ewarn "[2] https://wiki.gentoo.org/wiki/Nouveau" fi - if use kernel-open && [[ ! -v NV_HAD_KERNEL_OPEN ]]; then + if use kernel-open && use modules && [[ ! -v NV_HAD_KERNEL_OPEN ]]; then ewarn "\nOpen source variant of ${PN} was selected, note that it requires" ewarn "Turing/Ampere+ GPUs (aka GTX 1650+). Try disabling if run into issues." ewarn "Also see: ${EROOT}/usr/share/doc/${PF}/html/kernel_open.html" diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.119.02.ebuild b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.126.18.ebuild similarity index 91% rename from sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.119.02.ebuild rename to sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.126.18.ebuild index d32bb11ae40..2e39cb6c8a0 100644 --- a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.119.02.ebuild +++ b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.126.18.ebuild @@ -1,18 +1,13 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -# note: while this 580.119.02 version is not as broken as 580.105.08 -# was (no need to mask), it still seem to be affected by notable -# regressions compared to 580.95.05 and it should not be considered -# for stable (e.g. https://forums.developer.nvidia.com/t/355216) - MODULES_OPTIONAL_IUSE=+modules -inherit desktop dot-a eapi9-pipestatus flag-o-matic linux-mod-r1 +inherit desktop dot-a eapi9-pipestatus eapi9-ver flag-o-matic linux-mod-r1 inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info -MODULES_KERNEL_MAX=6.18 +MODULES_KERNEL_MAX=6.19 NV_URI="https://download.nvidia.com/XFree86/" DESCRIPTION="NVIDIA Accelerated Graphics Driver" @@ -33,8 +28,10 @@ LICENSE=" " SLOT="0/${PV%%.*}" KEYWORDS="-* ~amd64 ~arm64" -IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced powerd +static-libs +tools wayland" -REQUIRED_USE="kernel-open? ( modules )" +IUSE=" + +X abi_x86_32 abi_x86_64 kernel-open persistenced powerd + +static-libs +tools wayland +" COMMON_DEPEND=" acct-group/video @@ -69,10 +66,7 @@ RDEPEND=" powerd? ( sys-apps/dbus[abi_x86_32(-)?] ) wayland? ( >=gui-libs/egl-gbm-1.1.1-r2[abi_x86_32(-)?] - || ( - >=gui-libs/egl-wayland-1.1.13.1[abi_x86_32(-)?] - gui-libs/egl-wayland2[abi_x86_32(-)?] - ) + >=gui-libs/egl-wayland-1.1.13.1[abi_x86_32(-)?] X? ( gui-libs/egl-x11[abi_x86_32(-)?] ) ) " @@ -121,6 +115,8 @@ pkg_setup() { ~SYSVIPC ~!LOCKDEP ~!PREEMPT_RT + ~!RANDSTRUCT_FULL + ~!RANDSTRUCT_PERFORMANCE ~!SLUB_DEBUG_ON !DEBUG_MUTEXES $(usev powerd '~CPU_FREQ') @@ -137,15 +133,16 @@ pkg_setup() { selection of a DRM device even if unused, e.g. CONFIG_DRM_QXL=m or DRM_AMDGPU=m (among others, consult the kernel config's help), can also use DRM_NOUVEAU=m as long as built as module *not* built-in." - local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection - of drivers (no custom config), and for wayland / nvidia-drm.modeset=1. + local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but is needed for nvidia-drm.modeset=1 + support (see ${EPREFIX}/etc/modprobe.d/nvidia.conf) which is needed for wayland + and for config-less Xorg auto-detection. ${drm_helper_msg}" local ERROR_DRM_TTM_HELPER="CONFIG_DRM_TTM_HELPER: is not set but is needed to compile when using kernel version 6.11.x or newer while DRM_FBDEV_EMULATION is set. ${drm_helper_msg}" local ERROR_DRM_FBDEV_EMULATION="CONFIG_DRM_FBDEV_EMULATION: is not set but is needed for - nvidia-drm.fbdev=1 support, currently off-by-default and it could - be ignored, but note that is due to change in the future." + nvidia-drm.fbdev=1 support (see ${EPREFIX}/etc/modprobe.d/nvidia.conf), may + result in a blank console/tty." local ERROR_MMU_NOTIFIER="CONFIG_MMU_NOTIFIER: is not set but needed to build with USE=kernel-open. Cannot be directly selected in the kernel's menuconfig, and may need selection of another option that requires it such as CONFIG_AMD_IOMMU=y, @@ -154,6 +151,13 @@ pkg_setup() { will fail to build unless the env var IGNORE_PREEMPT_RT_PRESENCE=1 is set. Please do not report issues if run into e.g. kernel panics while ignoring this." + local randstruct_msg="is set but NVIDIA may be unstable with + it such as causing a kernel panic on shutdown, it is recommended to + disable with CONFIG_RANDSTRUCT_NONE=y (https://bugs.gentoo.org/969413 + -- please report if this appears fixed on NVIDIA's side so can remove + this warning)." + local ERROR_RANDSTRUCT_FULL="CONFIG_RANDSTRUCT_FULL: ${randstruct_msg}" + local ERROR_RANDSTRUCT_PERFORMANCE="CONFIG_RANDSTRUCT_PERFORMANCE: ${randstruct_msg}" linux-mod-r1_pkg_setup } @@ -179,10 +183,6 @@ src_prepare() { # use alternative vulkan icd option if USE=-X (bug #909181) use X || sed -i 's/"libGLX/"libEGL/' nvidia_{layers,icd}.json || die - # enable nvidia-drm.modeset=1 by default with USE=wayland - cp "${FILESDIR}"/nvidia-570.conf "${T}"/nvidia.conf || die - use !wayland || sed -i '/^#.*modeset=1$/s/^#//' "${T}"/nvidia.conf || die - # makefile attempts to install wayland library even if not built use wayland || sed -i 's/ WAYLAND_LIB_install$//' \ nvidia-settings/src/Makefile || die @@ -195,6 +195,14 @@ src_compile() { local xnvflags=-fPIC #840389 tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)" + # Same as uname -m. + local target_arch + case ${ARCH} in + amd64) target_arch=x86_64 ;; + arm64) target_arch=aarch64 ;; + *) die "Unrecognised architecture: ${ARCH}" ;; + esac + NV_ARGS=( PREFIX="${EPREFIX}"/usr HOST_CC="$(tc-getBUILD_CC)" @@ -202,6 +210,7 @@ src_compile() { BUILD_GTK2LIB= NV_USE_BUNDLED_LIBJANSSON=0 NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out + TARGET_ARCH="${target_arch}" WAYLAND_AVAILABLE=$(usex wayland 1 0) XNVCTRL_CFLAGS="${xnvflags}" ) @@ -226,6 +235,7 @@ src_compile() { local modargs=( IGNORE_CC_MISMATCH=yes NV_VERBOSE=1 SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}" + TARGET_ARCH="${target_arch}" # kernel takes "x86" and "x86_64" as meaning the same, but nvidia # makes the distinction (since 550.135) and is not happy with "x86" @@ -346,7 +356,7 @@ documentation that is installed alongside this README." linux-mod-r1_src_install insinto /etc/modprobe.d - doins "${T}"/nvidia.conf + newins "${FILESDIR}"/nvidia-580.conf nvidia.conf # used for gpu verification with binpkgs (not kept, see pkg_preinst) insinto /usr/share/nvidia @@ -516,7 +526,6 @@ documentation that is installed alongside this README." pkg_preinst() { has_version "${CATEGORY}/${PN}[kernel-open]" && NV_HAD_KERNEL_OPEN= - has_version "${CATEGORY}/${PN}[wayland]" && NV_HAD_WAYLAND= use modules || return @@ -578,15 +587,18 @@ pkg_postinst() { ewarn "[2] https://wiki.gentoo.org/wiki/Nouveau" fi - if use kernel-open && [[ ! -v NV_HAD_KERNEL_OPEN ]]; then + if use kernel-open && use modules && [[ ! -v NV_HAD_KERNEL_OPEN ]]; then ewarn "\nOpen source variant of ${PN} was selected, note that it requires" ewarn "Turing/Ampere+ GPUs (aka GTX 1650+). Try disabling if run into issues." ewarn "Also see: ${EROOT}/usr/share/doc/${PF}/html/kernel_open.html" fi - if use wayland && use modules && [[ ! -v NV_HAD_WAYLAND ]]; then - elog "\nNote that with USE=wayland, nvidia-drm.modeset=1 will be enabled" - elog "in '${EROOT}/etc/modprobe.d/nvidia.conf'. *If* experience issues," - elog "either disable wayland or edit nvidia.conf." + if ver_replacing -lt 580.126.09-r1; then + elog "\n>=nvidia-drivers-580.126.09-r1 changes some defaults that may or may" + elog "not need attention:" + elog "1. nvidia-drm.modeset=1 is now default regardless of USE=wayland" + elog "2. nvidia-drm.fbdev=1 is now also tentatively default to match upstream" + elog "See ${EROOT}/etc/modprobe.d/nvidia.conf to modify settings if needed," + elog "fbdev=1 *could* cause issues for the console display with some setups." fi } diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.94.13.ebuild b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.94.18.ebuild similarity index 93% rename from sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.94.13.ebuild rename to sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.94.18.ebuild index f3d232db2c6..3af5a212985 100644 --- a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.94.13.ebuild +++ b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.94.18.ebuild @@ -1,14 +1,14 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 MODULES_OPTIONAL_IUSE=+modules -inherit desktop dot-a eapi9-pipestatus flag-o-matic linux-mod-r1 +inherit desktop dot-a eapi9-pipestatus eapi9-ver flag-o-matic linux-mod-r1 inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info MODULES_KERNEL_MAX=6.18 -NV_PIN=580.95.05 +NV_PIN=580.126.18 DESCRIPTION="NVIDIA Accelerated Graphics Driver" HOMEPAGE="https://developer.nvidia.com/vulkan-driver/" @@ -29,8 +29,10 @@ LICENSE=" " SLOT="0/vulkan" KEYWORDS="-* ~amd64" -IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced powerd +static-libs +tools wayland" -REQUIRED_USE="kernel-open? ( modules )" +IUSE=" + +X abi_x86_32 abi_x86_64 kernel-open persistenced powerd + +static-libs +tools wayland +" COMMON_DEPEND=" acct-group/video @@ -65,10 +67,7 @@ RDEPEND=" powerd? ( sys-apps/dbus[abi_x86_32(-)?] ) wayland? ( >=gui-libs/egl-gbm-1.1.1-r2[abi_x86_32(-)?] - || ( - >=gui-libs/egl-wayland-1.1.13.1[abi_x86_32(-)?] - gui-libs/egl-wayland2[abi_x86_32(-)?] - ) + >=gui-libs/egl-wayland-1.1.13.1[abi_x86_32(-)?] X? ( gui-libs/egl-x11[abi_x86_32(-)?] ) ) " @@ -133,15 +132,16 @@ pkg_setup() { selection of a DRM device even if unused, e.g. CONFIG_DRM_QXL=m or DRM_AMDGPU=m (among others, consult the kernel config's help), can also use DRM_NOUVEAU=m as long as built as module *not* built-in." - local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection - of drivers (no custom config), and for wayland / nvidia-drm.modeset=1. + local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but is needed for nvidia-drm.modeset=1 + support (see ${EPREFIX}/etc/modprobe.d/nvidia.conf) which is needed for wayland + and for config-less Xorg auto-detection. ${drm_helper_msg}" local ERROR_DRM_TTM_HELPER="CONFIG_DRM_TTM_HELPER: is not set but is needed to compile when using kernel version 6.11.x or newer while DRM_FBDEV_EMULATION is set. ${drm_helper_msg}" local ERROR_DRM_FBDEV_EMULATION="CONFIG_DRM_FBDEV_EMULATION: is not set but is needed for - nvidia-drm.fbdev=1 support, currently off-by-default and it could - be ignored, but note that is due to change in the future." + nvidia-drm.fbdev=1 support (see ${EPREFIX}/etc/modprobe.d/nvidia.conf), may + result in a blank console/tty." local ERROR_MMU_NOTIFIER="CONFIG_MMU_NOTIFIER: is not set but needed to build with USE=kernel-open. Cannot be directly selected in the kernel's menuconfig, and may need selection of another option that requires it such as CONFIG_AMD_IOMMU=y, @@ -175,10 +175,6 @@ src_prepare() { # use alternative vulkan icd option if USE=-X (bug #909181) use X || sed -i 's/"libGLX/"libEGL/' nvidia_{layers,icd}.json || die - # enable nvidia-drm.modeset=1 by default with USE=wayland - cp "${FILESDIR}"/nvidia-570.conf "${T}"/nvidia.conf || die - use !wayland || sed -i '/^#.*modeset=1$/s/^#//' "${T}"/nvidia.conf || die - # makefile attempts to install wayland library even if not built use wayland || sed -i 's/ WAYLAND_LIB_install$//' \ nvidia-settings/src/Makefile || die @@ -191,6 +187,14 @@ src_compile() { local xnvflags=-fPIC #840389 tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)" + # Same as uname -m. + local target_arch + case ${ARCH} in + amd64) target_arch=x86_64 ;; + arm64) target_arch=aarch64 ;; + *) die "Unrecognised architecture: ${ARCH}" ;; + esac + NV_ARGS=( PREFIX="${EPREFIX}"/usr HOST_CC="$(tc-getBUILD_CC)" @@ -198,6 +202,7 @@ src_compile() { BUILD_GTK2LIB= NV_USE_BUNDLED_LIBJANSSON=0 NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out + TARGET_ARCH="${target_arch}" WAYLAND_AVAILABLE=$(usex wayland 1 0) XNVCTRL_CFLAGS="${xnvflags}" ) @@ -222,6 +227,7 @@ src_compile() { local modargs=( IGNORE_CC_MISMATCH=yes NV_VERBOSE=1 SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}" + TARGET_ARCH="${target_arch}" # kernel takes "x86" and "x86_64" as meaning the same, but nvidia # makes the distinction (since 550.135) and is not happy with "x86" @@ -342,7 +348,7 @@ documentation that is installed alongside this README." linux-mod-r1_src_install insinto /etc/modprobe.d - doins "${T}"/nvidia.conf + newins "${FILESDIR}"/nvidia-580.conf nvidia.conf # used for gpu verification with binpkgs (not kept, see pkg_preinst) insinto /usr/share/nvidia @@ -512,7 +518,6 @@ documentation that is installed alongside this README." pkg_preinst() { has_version "${CATEGORY}/${PN}[kernel-open]" && NV_HAD_KERNEL_OPEN= - has_version "${CATEGORY}/${PN}[wayland]" && NV_HAD_WAYLAND= use modules || return @@ -574,15 +579,18 @@ pkg_postinst() { ewarn "[2] https://wiki.gentoo.org/wiki/Nouveau" fi - if use kernel-open && [[ ! -v NV_HAD_KERNEL_OPEN ]]; then + if use kernel-open && use modules && [[ ! -v NV_HAD_KERNEL_OPEN ]]; then ewarn "\nOpen source variant of ${PN} was selected, note that it requires" ewarn "Turing/Ampere+ GPUs (aka GTX 1650+). Try disabling if run into issues." ewarn "Also see: ${EROOT}/usr/share/doc/${PF}/html/kernel_open.html" fi - if use wayland && use modules && [[ ! -v NV_HAD_WAYLAND ]]; then - elog "\nNote that with USE=wayland, nvidia-drm.modeset=1 will be enabled" - elog "in '${EROOT}/etc/modprobe.d/nvidia.conf'. *If* experience issues," - elog "either disable wayland or edit nvidia.conf." + if ver_replacing -lt 580.94.18; then + elog "\n>=nvidia-drivers-580.94.18:0/vulkan changes some defaults that may or may" + elog "not need attention:" + elog "1. nvidia-drm.modeset=1 is now default regardless of USE=wayland" + elog "2. nvidia-drm.fbdev=1 is now also tentatively default to match upstream" + elog "See ${EROOT}/etc/modprobe.d/nvidia.conf to modify settings if needed," + elog "fbdev=1 *could* cause issues for the console display with some setups." fi } diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-590.44.01.ebuild b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-590.44.01.ebuild deleted file mode 100644 index e1f8b776485..00000000000 --- a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-590.44.01.ebuild +++ /dev/null @@ -1,567 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MODULES_OPTIONAL_IUSE=+modules -inherit desktop dot-a eapi9-pipestatus eapi9-ver flag-o-matic linux-mod-r1 -inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info - -MODULES_KERNEL_MAX=6.18 -NV_URI="https://download.nvidia.com/XFree86/" - -DESCRIPTION="NVIDIA Accelerated Graphics Driver" -HOMEPAGE="https://www.nvidia.com/" -SRC_URI=" - amd64? ( ${NV_URI}Linux-x86_64/${PV}/NVIDIA-Linux-x86_64-${PV}.run ) - arm64? ( ${NV_URI}Linux-aarch64/${PV}/NVIDIA-Linux-aarch64-${PV}.run ) - $(printf "${NV_URI}%s/%s-${PV}.tar.bz2 " \ - nvidia-{installer,modprobe,persistenced,settings,xconfig}{,}) - ${NV_URI}NVIDIA-kernel-module-source/NVIDIA-kernel-module-source-${PV}.tar.xz -" -# nvidia-installer is unused but here for GPL-2's "distribute sources" -S=${WORKDIR} - -LICENSE=" - NVIDIA-2025 Apache-2.0 Boost-1.0 BSD BSD-2 GPL-2 MIT ZLIB - curl openssl public-domain -" -SLOT="0/${PV%%.*}" -# kept unkeyworded due to being a beta, users are free to opt-in for testing -#KEYWORDS="-* ~amd64 ~arm64" -IUSE="+X abi_x86_32 abi_x86_64 persistenced powerd +static-libs +tools wayland" - -COMMON_DEPEND=" - acct-group/video - X? ( x11-libs/libpciaccess ) - persistenced? ( - acct-user/nvpd - net-libs/libtirpc:= - ) - tools? ( - >=app-accessibility/at-spi2-core-2.46:2 - dev-libs/glib:2 - dev-libs/jansson:= - media-libs/harfbuzz:= - x11-libs/cairo - x11-libs/gdk-pixbuf:2 - x11-libs/gtk+:3[X] - x11-libs/libX11 - x11-libs/libXext - x11-libs/libXxf86vm - x11-libs/pango - ) -" -# egl-wayland2: nvidia currently ships both versions so, to ensure -# everything works properly, depend on both at same time for now -# (may use one or the other depending on setup) -RDEPEND=" - ${COMMON_DEPEND} - dev-libs/openssl:0/3 - sys-libs/glibc - X? ( - media-libs/libglvnd[X,abi_x86_32(-)?] - x11-libs/libX11[abi_x86_32(-)?] - x11-libs/libXext[abi_x86_32(-)?] - ) - powerd? ( sys-apps/dbus[abi_x86_32(-)?] ) - wayland? ( - >=gui-libs/egl-gbm-1.1.1-r2[abi_x86_32(-)?] - >=gui-libs/egl-wayland-1.1.13.1[abi_x86_32(-)?] - gui-libs/egl-wayland2[abi_x86_32(-)?] - X? ( gui-libs/egl-x11[abi_x86_32(-)?] ) - ) -" -DEPEND=" - ${COMMON_DEPEND} - static-libs? ( - x11-base/xorg-proto - x11-libs/libX11 - x11-libs/libXext - ) - tools? ( - dev-util/vulkan-headers - media-libs/libglvnd - sys-apps/dbus - x11-base/xorg-proto - x11-libs/libXrandr - x11-libs/libXv - x11-libs/libvdpau - ) -" -BDEPEND=" - app-alternatives/awk - sys-devel/m4 - virtual/pkgconfig -" - -# there is some non-prebuilt exceptions but rather not maintain a list -QA_PREBUILT="lib/firmware/* usr/bin/* usr/lib*" - -PATCHES=( - "${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch - "${FILESDIR}"/nvidia-settings-530.30.02-desktop.patch -) - -pkg_setup() { - use modules && [[ ${MERGE_TYPE} != binary ]] || return - - # do early before linux-mod-r1 so can use chkconfig to setup CONFIG_CHECK - get_version - require_configured_kernel - - local CONFIG_CHECK=" - MMU_NOTIFIER - PROC_FS - ~DRM_KMS_HELPER - ~DRM_FBDEV_EMULATION - ~SYSVIPC - ~!LOCKDEP - ~!PREEMPT_RT - ~!SLUB_DEBUG_ON - !DEBUG_MUTEXES - $(usev powerd '~CPU_FREQ') - " - - kernel_is -ge 6 11 && linux_chkconfig_present DRM_FBDEV_EMULATION && - CONFIG_CHECK+=" DRM_TTM_HELPER" - - use amd64 && kernel_is -ge 5 8 && CONFIG_CHECK+=" X86_PAT" #817764 - - local drm_helper_msg="Cannot be directly selected in the kernel's config menus, and may need - selection of a DRM device even if unused, e.g. CONFIG_DRM_QXL=m or - DRM_AMDGPU=m (among others, consult the kernel config's help), can - also use DRM_NOUVEAU=m as long as built as module *not* built-in." - local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but is needed for nvidia-drm.modeset=1 - support (see ${EPREFIX}/etc/modprobe.d/nvidia.conf) which is needed for wayland - and for config-less Xorg auto-detection. - ${drm_helper_msg}" - local ERROR_DRM_TTM_HELPER="CONFIG_DRM_TTM_HELPER: is not set but is needed to compile when using - kernel version 6.11.x or newer while DRM_FBDEV_EMULATION is set. - ${drm_helper_msg}" - local ERROR_DRM_FBDEV_EMULATION="CONFIG_DRM_FBDEV_EMULATION: is not set but is needed for - nvidia-drm.fbdev=1 support (see ${EPREFIX}/etc/modprobe.d/nvidia.conf), may - result in a blank console/tty." - local ERROR_MMU_NOTIFIER="CONFIG_MMU_NOTIFIER: is not set but is required for compilation. - Cannot be directly selected in the kernel's menuconfig, and may need - selection of another option that requires it such as CONFIG_AMD_IOMMU=y, - or DRM_I915=m (among others, consult the kernel config's help)." - local ERROR_PREEMPT_RT="CONFIG_PREEMPT_RT: is set but is unsupported by NVIDIA upstream and - will fail to build unless the env var IGNORE_PREEMPT_RT_PRESENCE=1 is - set. Please do not report issues if run into e.g. kernel panics while - ignoring this." - - linux-mod-r1_pkg_setup -} - -src_prepare() { - # make patches usable across versions - rm nvidia-modprobe && mv nvidia-modprobe{-${PV},} || die - rm nvidia-persistenced && mv nvidia-persistenced{-${PV},} || die - rm nvidia-settings && mv nvidia-settings{-${PV},} || die - rm nvidia-xconfig && mv nvidia-xconfig{-${PV},} || die - mv NVIDIA-kernel-module-source-${PV} kernel-module-source || die - - default - - sed 's/__USER__/nvpd/' \ - nvidia-persistenced/init/systemd/nvidia-persistenced.service.template \ - > "${T}"/nvidia-persistenced.service || die - - # use alternative vulkan icd option if USE=-X (bug #909181) - use X || sed -i 's/"libGLX/"libEGL/' nvidia_{layers,icd}.json || die - - # makefile attempts to install wayland library even if not built - use wayland || sed -i 's/ WAYLAND_LIB_install$//' \ - nvidia-settings/src/Makefile || die -} - -src_compile() { - tc-export AR CC CXX LD OBJCOPY OBJDUMP PKG_CONFIG - - # extra flags for the libXNVCtrl.a static library - local xnvflags=-fPIC #840389 - tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)" - - NV_ARGS=( - PREFIX="${EPREFIX}"/usr - HOST_CC="$(tc-getBUILD_CC)" - HOST_LD="$(tc-getBUILD_LD)" - BUILD_GTK2LIB= - NV_USE_BUNDLED_LIBJANSSON=0 - NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out - WAYLAND_AVAILABLE=$(usex wayland 1 0) - XNVCTRL_CFLAGS="${xnvflags}" - ) - - if use modules; then - local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS} - - # environment flags are normally unused for modules, but nvidia uses - # them for building the formerly closed "blob" and it is a bit fragile - filter-flags -fno-plt #912949 - filter-lto - CC=${KERNEL_CC} CXX=${KERNEL_CXX} strip-unsupported-flags - LDFLAGS=$(raw-ldflags) - - : video:kernel-module-source:kernel-module-source/kernel-open - local modlist=( nvidia{,-drm,-modeset,-peermem,-uvm}=${_} ) - local modargs=( - IGNORE_CC_MISMATCH=yes NV_VERBOSE=1 - SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}" - - # kernel takes "x86" and "x86_64" as meaning the same, but nvidia - # makes the distinction (since 550.135) and is not happy with "x86" - # TODO?: it should be ok/better for tc-arch-kernel to do x86_64 - $(usev amd64 ARCH=x86_64) - ) - - # temporary workaround for bug #914468 - addpredict "${KV_OUT_DIR}" - - linux-mod-r1_src_compile - CFLAGS=${o_cflags} CXXFLAGS=${o_cxxflags} LDFLAGS=${o_ldflags} - fi - - emake "${NV_ARGS[@]}" -C nvidia-modprobe - use persistenced && emake "${NV_ARGS[@]}" -C nvidia-persistenced - use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig - - if use tools; then - # avoid noisy *very* noisy logs with deprecation warnings - CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \ - emake "${NV_ARGS[@]}" -C nvidia-settings - elif use static-libs; then - # pretend GTK+3 is available, not actually used (bug #880879) - emake "${NV_ARGS[@]}" BUILD_GTK3LIB=1 \ - -C nvidia-settings/src out/libXNVCtrl.a - fi -} - -src_install() { - local libdir=$(get_libdir) libdir32=$(ABI=x86 get_libdir) - - NV_ARGS+=( DESTDIR="${D}" LIBDIR="${ED}"/usr/${libdir} ) - - local -A paths=( - [APPLICATION_PROFILE]=/usr/share/nvidia - [CUDA_ICD]=/etc/OpenCL/vendors - [EGL_EXTERNAL_PLATFORM_JSON]=/usr/share/egl/egl_external_platform.d - [FIRMWARE]=/lib/firmware/nvidia/${PV} - [GBM_BACKEND_LIB_SYMLINK]=/usr/${libdir}/gbm - [GLVND_EGL_ICD_JSON]=/usr/share/glvnd/egl_vendor.d - [OPENGL_DATA]=/usr/share/nvidia - [VULKANSC_ICD_JSON]=/usr/share/vulkansc - [VULKAN_ICD_JSON]=/usr/share/vulkan - [WINE_LIB]=/usr/${libdir}/nvidia/wine - [XORG_OUTPUTCLASS_CONFIG]=/usr/share/X11/xorg.conf.d - - [GLX_MODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules/extensions - [GLX_MODULE_SYMLINK]=/usr/${libdir}/xorg/modules - [XMODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules - ) - - local skip_files=( - $(usev !X "libGLX_nvidia libglxserver_nvidia") - libGLX_indirect # non-glvnd unused fallback - libnvidia-{gtk,wayland-client} nvidia-{settings,xconfig} # from source - libnvidia-egl-gbm 15_nvidia_gbm # gui-libs/egl-gbm - libnvidia-egl-wayland 10_nvidia_wayland # gui-libs/egl-wayland - libnvidia-egl-wayland2 99_nvidia_wayland2 # gui-libs/egl-wayland2 - libnvidia-egl-xcb 20_nvidia_xcb.json # gui-libs/egl-x11 - libnvidia-egl-xlib 20_nvidia_xlib.json # gui-libs/egl-x11 - libnvidia-pkcs11.so # using the openssl3 version instead - ) - local skip_modules=( - $(usev !X "nvfbc vdpau xdriver") - $(usev !modules gsp) - $(usev !powerd nvtopps) - installer nvpd # handled separately / built from source - ) - local skip_types=( - GLVND_LIB GLVND_SYMLINK EGL_CLIENT.\* GLX_CLIENT.\* # media-libs/libglvnd - OPENCL_WRAPPER.\* # virtual/opencl - DOCUMENTATION DOT_DESKTOP .\*_SRC DKMS_CONF SYSTEMD_UNIT # handled separately / unused - ) - - local DOCS=( - README.txt NVIDIA_Changelog supported-gpus/supported-gpus.json - nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt - ) - local HTML_DOCS=( html/. ) - einstalldocs - - local DISABLE_AUTOFORMATTING=yes - local DOC_CONTENTS="\ -Trusted users should be in the 'video' group to use NVIDIA devices. -You can add yourself by using: gpasswd -a my-user video\ -$(usev modules " - -Like all out-of-tree kernel modules, it is necessary to rebuild -${PN} after upgrading or rebuilding the Linux kernel -by for example running \`emerge @module-rebuild\`. Alternatively, -if using a distribution kernel (sys-kernel/gentoo-kernel{,-bin}), -this can be automated by setting USE=dist-kernel globally. - -Loaded kernel modules also must not mismatch with the installed -${PN} version (excluding -r revision), meaning should -ensure \`eselect kernel list\` points to the kernel that will be -booted before building and preferably reboot after upgrading -${PN} (the ebuild will emit a warning if mismatching). - -See '${EPREFIX}/etc/modprobe.d/nvidia.conf' for modules options.")\ -$(use amd64 && usev !abi_x86_32 " - -Note that without USE=abi_x86_32 on ${PN}, 32bit applications -(typically using wine / steam) will not be able to use GPU acceleration.") - -For additional information or for troubleshooting issues, please see -https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers and NVIDIA's own -documentation that is installed alongside this README." - readme.gentoo_create_doc - - if use modules; then - linux-mod-r1_src_install - - insinto /etc/modprobe.d - newins "${FILESDIR}"/nvidia-590.conf nvidia.conf - - # used for gpu verification with binpkgs (not kept, see pkg_preinst) - insinto /usr/share/nvidia - doins supported-gpus/supported-gpus.json - fi - - emake "${NV_ARGS[@]}" -C nvidia-modprobe install - fowners :video /usr/bin/nvidia-modprobe #505092 - fperms 4710 /usr/bin/nvidia-modprobe - - if use persistenced; then - emake "${NV_ARGS[@]}" -C nvidia-persistenced install - newconfd "${FILESDIR}"/nvidia-persistenced.confd nvidia-persistenced - newinitd "${FILESDIR}"/nvidia-persistenced.initd nvidia-persistenced - systemd_dounit "${T}"/nvidia-persistenced.service - fi - - if use tools; then - emake "${NV_ARGS[@]}" -C nvidia-settings install - - doicon nvidia-settings/doc/nvidia-settings.png - domenu nvidia-settings/doc/nvidia-settings.desktop - - exeinto /etc/X11/xinit/xinitrc.d - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings - fi - - if use static-libs; then - dolib.a nvidia-settings/src/out/libXNVCtrl.a - strip-lto-bytecode - - insinto /usr/include/NVCtrl - doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h - fi - - use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig install - - # mimic nvidia-installer by reading .manifest to install files - # 0:file 1:perms 2:type 3+:subtype/arguments -:module - local m into - while IFS=' ' read -ra m; do - ! [[ ${#m[@]} -ge 2 && ${m[-1]} =~ MODULE: ]] || - [[ " ${m[0]##*/}" =~ ^(\ ${skip_files[*]/%/.*|\\} )$ ]] || - [[ " ${m[2]}" =~ ^(\ ${skip_types[*]/%/|\\} )$ ]] || - has ${m[-1]#MODULE:} "${skip_modules[@]}" && continue - - case ${m[2]} in - MANPAGE) - gzip -dc ${m[0]} | newman - ${m[0]%.gz} - pipestatus || die - continue - ;; - GBM_BACKEND_LIB_SYMLINK) m[4]=../${m[4]};; # missing ../ - VDPAU_SYMLINK) m[4]=vdpau/; m[5]=${m[5]#vdpau/};; # .so to vdpau/ - esac - - if [[ -v 'paths[${m[2]}]' ]]; then - into=${paths[${m[2]}]} - elif [[ ${m[2]} == EXPLICIT_PATH ]]; then - into=${m[3]} - elif [[ ${m[2]} == *_BINARY ]]; then - into=/usr/bin - elif [[ ${m[3]} == COMPAT32 ]]; then - use abi_x86_32 || continue - into=/usr/${libdir32} - elif [[ ${m[2]} == *_@(LIB|SYMLINK) ]]; then - into=/usr/${libdir} - else - die "No known installation path for ${m[0]}" - fi - [[ ${m[3]: -2} == ?/ ]] && into+=/${m[3]%/} - [[ ${m[4]: -2} == ?/ ]] && into+=/${m[4]%/} - - if [[ ${m[2]} =~ _SYMLINK$ ]]; then - [[ ${m[4]: -1} == / ]] && m[4]=${m[5]} - dosym ${m[4]} ${into}/${m[0]} - continue - fi - # avoid portage warning due to missing soname links in manifest - [[ ${m[0]} =~ ^libnvidia-ngx.so ]] && - dosym ${m[0]} ${into}/${m[0]%.so*}.so.1 - - printf -v m[1] %o $((m[1] | 0200)) # 444->644 - insopts -m${m[1]} - insinto ${into} - doins ${m[0]} - done < .manifest || die - insopts -m0644 # reset - - # MODULE:installer non-skipped extras - : "$(systemd_get_sleepdir)" - exeinto "${_#"${EPREFIX}"}" - doexe systemd/system-sleep/nvidia - dobin systemd/nvidia-sleep.sh - systemd_dounit systemd/system/nvidia-{hibernate,resume,suspend,suspend-then-hibernate}.service - - dobin nvidia-bug-report.sh - - insinto /usr/share/nvidia/files.d - doins sandboxutils-filelist.json - - # MODULE:powerd extras - if use powerd; then - newinitd "${FILESDIR}"/nvidia-powerd.initd nvidia-powerd #923117 - systemd_dounit systemd/system/nvidia-powerd.service - - insinto /usr/share/dbus-1/system.d - doins nvidia-dbus.conf - fi - - # enabling is needed for sleep to work properly and little reason not to do - # it unconditionally for a better user experience - : "$(systemd_get_systemunitdir)" - local unitdir=${_#"${EPREFIX}"} - # not using relative symlinks to match systemd's own links - dosym {"${unitdir}",/etc/systemd/system/systemd-hibernate.service.wants}/nvidia-hibernate.service - dosym {"${unitdir}",/etc/systemd/system/systemd-hibernate.service.wants}/nvidia-resume.service - dosym {"${unitdir}",/etc/systemd/system/systemd-suspend.service.wants}/nvidia-suspend.service - dosym {"${unitdir}",/etc/systemd/system/systemd-suspend.service.wants}/nvidia-resume.service - dosym {"${unitdir}",/etc/systemd/system/systemd-suspend-then-hibernate.service.wants}/nvidia-suspend-then-hibernate.service - dosym {"${unitdir}",/etc/systemd/system/systemd-suspend-then-hibernate.service.wants}/nvidia-resume.service - # also add a custom elogind hook to do the equivalent of the above - exeinto /usr/lib/elogind/system-sleep - newexe "${FILESDIR}"/system-sleep.elogind nvidia - # =systemd-256 or may fail to resume with some setups - # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1072722 - insinto "${unitdir}"/systemd-homed.service.d - newins - 10-nvidia.conf <<-EOF - [Service] - Environment=SYSTEMD_HOME_LOCK_FREEZE_SESSION=false - EOF - insinto "${unitdir}"/systemd-suspend.service.d - newins - 10-nvidia.conf <<-EOF - [Service] - Environment=SYSTEMD_SLEEP_FREEZE_USER_SESSIONS=false - EOF - dosym -r "${unitdir}"/systemd-{suspend,hibernate}.service.d/10-nvidia.conf - dosym -r "${unitdir}"/systemd-{suspend,hybrid-sleep}.service.d/10-nvidia.conf - dosym -r "${unitdir}"/systemd-{suspend,suspend-then-hibernate}.service.d/10-nvidia.conf - - # symlink non-versioned so nvidia-settings can use it even if misdetected - dosym nvidia-application-profiles-${PV}-key-documentation \ - ${paths[APPLICATION_PROFILE]}/nvidia-application-profiles-key-documentation - - # don't attempt to strip firmware files (silences errors) - dostrip -x ${paths[FIRMWARE]} - - # sandbox issues with /dev/nvidiactl and others (bug #904292,#921578) - # are widespread and sometime affect revdeps of packages built with - # USE=opencl/cuda making it hard to manage in ebuilds (minimal set, - # ebuilds should handle manually if need others or addwrite) - insinto /etc/sandbox.d - newins - 20nvidia <<<'SANDBOX_PREDICT="/dev/nvidiactl:/dev/nvidia-caps:/dev/char"' - - # dracut does not use /etc/modprobe.d if hostonly=no, but want to make sure - # our settings are used for bug 932781#c8 and nouveau blacklist if either - # modules are included (however, just best-effort without initramfs regen) - if use modules; then - echo "install_items+=\" ${EPREFIX}/etc/modprobe.d/nvidia.conf \"" >> \ - "${ED}"/usr/lib/dracut/dracut.conf.d/10-${PN}.conf || die - fi -} - -pkg_preinst() { - use modules || return - - # set video group id based on live system (bug #491414) - local g=$(egetent group video | cut -d: -f3) - [[ ${g} =~ ^[0-9]+$ ]] || die "Failed to determine video group id (got '${g}')" - sed -i "s/@VIDEOGID@/${g}/" "${ED}"/etc/modprobe.d/nvidia.conf || die - - # try to find driver mismatches using temporary supported-gpus.json - for g in $(grep -l 0x10de /sys/bus/pci/devices/*/vendor 2>/dev/null); do - g=$(grep -io "\"devid\":\"$(<${g%vendor}device)\"[^}]*branch\":\"[0-9]*" \ - "${ED}"/usr/share/nvidia/supported-gpus.json 2>/dev/null) - if [[ ${g} ]]; then - g=$((${g##*\"}+1)) - if ver_test -ge ${g}; then - NV_LEGACY_MASK=">=${CATEGORY}/${PN}-${g}" - break - fi - fi - done - rm "${ED}"/usr/share/nvidia/supported-gpus.json || die -} - -pkg_postinst() { - linux-mod-r1_pkg_postinst - - readme.gentoo_print_elog - - if [[ -r /proc/driver/nvidia/version && - $( ${EROOT}/etc/portage/package.mask/${PN}" - else - ewarn " echo '${NV_LEGACY_MASK}' >> ${EROOT}/etc/portage/package.mask" - fi - ewarn "...then downgrade to a legacy[1] branch if possible (not all old versions" - ewarn "are available or fully functional, may need to consider nouveau[2])." - ewarn "[1] https://www.nvidia.com/object/IO_32667.html" - ewarn "[2] https://wiki.gentoo.org/wiki/Nouveau" - fi - - if ver_replacing -lt 590; then - elog "\n>=${PN}-590 has changes that may or may not need attention:" - elog "1. support for Pascal, Maxwell, and Volta cards has been dropped" - elog " (if affected, there should be a another message about this above)" - elog "2. kernel-open USE is gone and the open source variant is *always* used" - elog " (no longer possible to disable GSP with NVreg_EnableGpuFirmware=0)" - elog "3. nvidia-drm.modeset=1 is now default regardless of USE=wayland" - elog "4. nvidia-drm.fbdev=1 is now also tentatively default to match upstream" - elog "See ${EROOT}/etc/modprobe.d/nvidia.conf to modify settings if needed," - elog "fbdev=1 *could* cause issues for the console display with some setups." - fi -} diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-590.48.01.ebuild b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-590.48.01-r1.ebuild similarity index 91% rename from sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-590.48.01.ebuild rename to sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-590.48.01-r1.ebuild index 79ae5026092..de8dcd9a226 100644 --- a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-590.48.01.ebuild +++ b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-590.48.01-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -7,7 +7,7 @@ MODULES_OPTIONAL_IUSE=+modules inherit desktop dot-a eapi9-pipestatus eapi9-ver flag-o-matic linux-mod-r1 inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info -MODULES_KERNEL_MAX=6.18 +MODULES_KERNEL_MAX=6.19 NV_URI="https://download.nvidia.com/XFree86/" DESCRIPTION="NVIDIA Accelerated Graphics Driver" @@ -27,9 +27,11 @@ LICENSE=" curl openssl public-domain " SLOT="0/${PV%%.*}" -# kept unkeyworded due to being a beta, users are free to opt-in for testing KEYWORDS="-* ~amd64 ~arm64" -IUSE="+X abi_x86_32 abi_x86_64 persistenced powerd +static-libs +tools wayland" +IUSE=" + +X abi_x86_32 abi_x86_64 +kernel-open persistenced powerd + +static-libs +tools wayland +" COMMON_DEPEND=" acct-group/video @@ -101,6 +103,7 @@ QA_PREBUILT="lib/firmware/* usr/bin/* usr/lib*" PATCHES=( "${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch "${FILESDIR}"/nvidia-settings-530.30.02-desktop.patch + "${FILESDIR}"/nvidia-kernel-module-source-${PV}-kernel6.19.patch ) pkg_setup() { @@ -111,13 +114,14 @@ pkg_setup() { require_configured_kernel local CONFIG_CHECK=" - MMU_NOTIFIER PROC_FS ~DRM_KMS_HELPER ~DRM_FBDEV_EMULATION ~SYSVIPC ~!LOCKDEP ~!PREEMPT_RT + ~!RANDSTRUCT_FULL + ~!RANDSTRUCT_PERFORMANCE ~!SLUB_DEBUG_ON !DEBUG_MUTEXES $(usev powerd '~CPU_FREQ') @@ -128,6 +132,8 @@ pkg_setup() { use amd64 && kernel_is -ge 5 8 && CONFIG_CHECK+=" X86_PAT" #817764 + use kernel-open && CONFIG_CHECK+=" MMU_NOTIFIER" #843827 + local drm_helper_msg="Cannot be directly selected in the kernel's config menus, and may need selection of a DRM device even if unused, e.g. CONFIG_DRM_QXL=m or DRM_AMDGPU=m (among others, consult the kernel config's help), can @@ -142,7 +148,7 @@ pkg_setup() { local ERROR_DRM_FBDEV_EMULATION="CONFIG_DRM_FBDEV_EMULATION: is not set but is needed for nvidia-drm.fbdev=1 support (see ${EPREFIX}/etc/modprobe.d/nvidia.conf), may result in a blank console/tty." - local ERROR_MMU_NOTIFIER="CONFIG_MMU_NOTIFIER: is not set but is required for compilation. + local ERROR_MMU_NOTIFIER="CONFIG_MMU_NOTIFIER: is not set but needed to build with USE=kernel-open. Cannot be directly selected in the kernel's menuconfig, and may need selection of another option that requires it such as CONFIG_AMD_IOMMU=y, or DRM_I915=m (among others, consult the kernel config's help)." @@ -150,6 +156,13 @@ pkg_setup() { will fail to build unless the env var IGNORE_PREEMPT_RT_PRESENCE=1 is set. Please do not report issues if run into e.g. kernel panics while ignoring this." + local randstruct_msg="is set but NVIDIA may be unstable with + it such as causing a kernel panic on shutdown, it is recommended to + disable with CONFIG_RANDSTRUCT_NONE=y (https://bugs.gentoo.org/969413 + -- please report if this appears fixed on NVIDIA's side so can remove + this warning)." + local ERROR_RANDSTRUCT_FULL="CONFIG_RANDSTRUCT_FULL: ${randstruct_msg}" + local ERROR_RANDSTRUCT_PERFORMANCE="CONFIG_RANDSTRUCT_PERFORMANCE: ${randstruct_msg}" linux-mod-r1_pkg_setup } @@ -183,6 +196,14 @@ src_compile() { local xnvflags=-fPIC #840389 tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)" + # Same as uname -m. + local target_arch + case ${ARCH} in + amd64) target_arch=x86_64 ;; + arm64) target_arch=aarch64 ;; + *) die "Unrecognised architecture: ${ARCH}" ;; + esac + NV_ARGS=( PREFIX="${EPREFIX}"/usr HOST_CC="$(tc-getBUILD_CC)" @@ -190,6 +211,7 @@ src_compile() { BUILD_GTK2LIB= NV_USE_BUNDLED_LIBJANSSON=0 NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out + TARGET_ARCH="${target_arch}" WAYLAND_AVAILABLE=$(usex wayland 1 0) XNVCTRL_CFLAGS="${xnvflags}" ) @@ -197,18 +219,24 @@ src_compile() { if use modules; then local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS} - # environment flags are normally unused for modules, but nvidia uses - # them for building the formerly closed "blob" and it is a bit fragile - filter-flags -fno-plt #912949 - filter-lto - CC=${KERNEL_CC} CXX=${KERNEL_CXX} strip-unsupported-flags - LDFLAGS=$(raw-ldflags) + local modlistargs=video:kernel + if use kernel-open; then + modlistargs+=-module-source:kernel-module-source/kernel-open + + # environment flags are normally unused for modules, but nvidia + # uses it for building the "blob" and it is a bit fragile + filter-flags -fno-plt #912949 + filter-lto + CC=${KERNEL_CC} CXX=${KERNEL_CXX} strip-unsupported-flags + + LDFLAGS=$(raw-ldflags) + fi - : video:kernel-module-source:kernel-module-source/kernel-open - local modlist=( nvidia{,-drm,-modeset,-peermem,-uvm}=${_} ) + local modlist=( nvidia{,-drm,-modeset,-peermem,-uvm}=${modlistargs} ) local modargs=( IGNORE_CC_MISMATCH=yes NV_VERBOSE=1 SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}" + TARGET_ARCH="${target_arch}" # kernel takes "x86" and "x86_64" as meaning the same, but nvidia # makes the distinction (since 550.135) and is not happy with "x86" @@ -324,7 +352,7 @@ documentation that is installed alongside this README." linux-mod-r1_src_install insinto /etc/modprobe.d - newins "${FILESDIR}"/nvidia-590.conf nvidia.conf + newins "${FILESDIR}"/nvidia-580.conf nvidia.conf # used for gpu verification with binpkgs (not kept, see pkg_preinst) insinto /usr/share/nvidia @@ -557,10 +585,11 @@ pkg_postinst() { elog "\n>=${PN}-590 has changes that may or may not need attention:" elog "1. support for Pascal, Maxwell, and Volta cards has been dropped" elog " (if affected, there should be a another message about this above)" - elog "2. kernel-open USE is gone and the open source variant is *always* used" - elog " (no longer possible to disable GSP with NVreg_EnableGpuFirmware=0)" + elog "2. USE=kernel-open is now enabled by default" + elog " (generally safe and recommended, but some setups may hit regressions)" elog "3. nvidia-drm.modeset=1 is now default regardless of USE=wayland" elog "4. nvidia-drm.fbdev=1 is now also tentatively default to match upstream" + elog "(3+4 were also later changed in >=580.126.09-r1, may already be in-use)" elog "See ${EROOT}/etc/modprobe.d/nvidia.conf to modify settings if needed," elog "fbdev=1 *could* cause issues for the console display with some setups." fi diff --git a/setup_board b/setup_board index c1acdc1f25d..0b97cc7c5b0 100755 --- a/setup_board +++ b/setup_board @@ -92,6 +92,13 @@ generate_all_wrappers() { # the board arch matches the SDK arch and therefore emulation is unnecessary. qemu=$(type -P "qemu-${BOARD_CHOST%%-*}") || unset qemu + # If emulation is necessary, then we need to create a placeholder to bind + # mount QEMU onto now. This avoids needing root to do it later. + if [[ -n ${qemu-} ]]; then + sudo mkdir -p "${BOARD_ROOT}${qemu%/*}" + sudo touch "${BOARD_ROOT}${qemu}" + fi + info "Generating wrapper scripts" for wrapper in emerge ebuild eclean equery portageq \ @@ -113,8 +120,20 @@ exec ${BOARD_CHOST}-gdb -iex 'set sysroot ${BOARD_ROOT}' "\$@" EOF wrappers+=( "${wrapper}" ) + # A general purpose wrapper for effectively chrooting using bubblewrap, + # together with emulation by QEMU if necessary. + wrapper="/usr/local/bin/bwrap-${BOARD_VARIANT}" + sudo_clobber "${wrapper}" < "$GCLIENT_ROOT/src/scripts/.default_board" fi