#! /usr/bin/make -f ## See debhelper(7) (uncomment to enable). ## Output every command that modifies files on the build system. export DH_VERBOSE = 1 export PIKA_BUILD_ARCH = $(shell cat ../pika-build-arch) override_dh_prep: # amd64 build prep ifeq (amd64,$(DEB_HOST_ARCH)) # Extract nvidia files from run archive ./nvidia-installer.run --extract-only mkdir -p debian/tmp # Copy installer contents into debian temp dir cp -rf ./NVIDIA-Linux-*/* debian/tmp # Delete 32 libs on amd64 builds rm -rf debian/tmp/32 # Extract all manpages gunzip debian/tmp/*.1.gz -k # Enable modeset and fbdev as default # This avoids various issue, when Simplefb is used # https://gitlab.archlinux.org/archlinux/packaging/packages/nvidia-utils/-/issues/14 # https://github.com/rpmfusion/nvidia-kmod/blob/master/make_modeset_default.patch patch -Np2 -i $(CURDIR)/debian/patches/0001-Make-modeset-and-fbdev-default-enabled.patch -d $(CURDIR)/debian/tmp/kernel/nvidia-drm patch -Np2 -i $(CURDIR)/debian/patches/0001-Make-modeset-and-fbdev-default-enabled.patch -d $(CURDIR)/debian/tmp/kernel-open/nvidia-drm # Dont error, when Zen5 CPU is in the system patch -Np2 -i $(CURDIR)/debian/patches/0002-Do-not-error-on-unkown-CPU-Type-and-add-Zen5-support.patch -d $(CURDIR)/debian/tmp/kernel/nvidia patch -Np2 -i $(CURDIR)/debian/patches/0002-Do-not-error-on-unkown-CPU-Type-and-add-Zen5-support.patch -d $(CURDIR)/debian/tmp/kernel-open/nvidia # Fix for https://bugs.archlinux.org/task/74886 patch -Np2 -i $(CURDIR)/debian/patches/0003-Add-IBT-support.patch -d $(CURDIR)/debian/tmp/kernel patch -Np2 -i $(CURDIR)/debian/patches/0003-Add-IBT-support.patch -d $(CURDIR)/debian/tmp/kernel-open # Patch by Nvidia to silence error messages until a real fix drops in 570.xx # https://github.com/NVIDIA/open-gpu-kernel-modules/issues/716#issuecomment-2391898884 patch -Np2 -i $(CURDIR)/debian/patches/0004-silence-event-assert-until-570.patch -d $(CURDIR)/debian/tmp/kernel patch -Np2 -i $(CURDIR)/debian/patches/0004-silence-event-assert-until-570.patch -d $(CURDIR)/debian/tmp/kernel-open # Patch by Nvidia to fix HDMI names which are otherwise broken in the /proc/asound/NVidia/* ELD files # Should hopefully ship with 570.xx # https://github.com/NVIDIA/open-gpu-kernel-modules/pull/715 patch -Np2 -i $(CURDIR)/debian/patches/0005-nvkms-Sanitize-trim-ELD-product-name-strings.patch -d $(CURDIR)/debian/tmp/kernel patch -Np2 -i $(CURDIR)/debian/patches/0005-nvkms-Sanitize-trim-ELD-product-name-strings.patch -d $(CURDIR)/debian/tmp/kernel-open # Fix build errors on 6.13+ # https://github.com/NVIDIA/open-gpu-kernel-modules/issues/746 patch -Np2 -i $(CURDIR)/debian/patches/0006-crypto-Add-fix-for-6.13-Module-compilation.patch -d $(CURDIR)/debian/tmp/kernel patch -Np2 -i $(CURDIR)/debian/patches/0006-crypto-Add-fix-for-6.13-Module-compilation.patch -d $(CURDIR)/debian/tmp/kernel-open # https://github.com/NVIDIA/open-gpu-kernel-modules/issues/751 patch -Np2 -i $(CURDIR)/debian/patches/0007-nvidia-nv-Convert-symbol-namespace-to-string-literal.patch -d $(CURDIR)/debian/tmp/kernel patch -Np2 -i $(CURDIR)/debian/patches/0007-nvidia-nv-Convert-symbol-namespace-to-string-literal.patch -d $(CURDIR)/debian/tmp/kernel-open # https://github.com/NVIDIA/open-gpu-kernel-modules/issues/747 patch -Np2 -i $(CURDIR)/debian/patches/0008-Kbuild-Use-absolute-paths-for-symbolic-links.patch -d $(CURDIR)/debian/tmp/kernel patch -Np2 -i $(CURDIR)/debian/patches/0008-Kbuild-Use-absolute-paths-for-symbolic-links.patch -d $(CURDIR)/debian/tmp/kernel-open # Fixes fbdev on 6.13+ # https://github.com/NVIDIA/open-gpu-kernel-modules/issues/749 # https://gist.github.com/xtexChooser/da92d9df902788b75f746f348552ae80 patch -Np2 -i $(CURDIR)/debian/patches/0009-FROM-AOSC-Use-linux-aperture.c-for-removing-conflict.patch -d $(CURDIR)/debian/tmp/kernel patch -Np2 -i $(CURDIR)/debian/patches/0009-FROM-AOSC-Use-linux-aperture.c-for-removing-conflict.patch -d $(CURDIR)/debian/tmp/kernel-open patch -Np2 -i $(CURDIR)/debian/patches/0010-FROM-AOSC-TTM-fbdev-emulation-for-Linux-6.13.patch -d $(CURDIR)/debian/tmp/kernel patch -Np2 -i $(CURDIR)/debian/patches/0010-FROM-AOSC-TTM-fbdev-emulation-for-Linux-6.13.patch -d $(CURDIR)/debian/tmp/kernel-open # NVENC/NvFBC sed -i 's/\xe8\x35\x3e\xfe\xff\x85\xc0\x41\x89\xc4/\xe8\x35\x3e\xfe\xff\x29\xc0\x41\x89\xc4/g' "debian/tmp/libnvidia-encode.so.565.77" sed -i 's/\x85\xc0\x0f\x84\x9b\x00\x00\x00\x48/\x85\xc0\x90\x90\x90\x90\x90\x90\x48/g' "debian/tmp/libnvidia-fbc.so.565.77" endif # i386 (x86) build ifeq (i386,$(DEB_HOST_ARCH)) # Extract nvidia files from run archive ./nvidia-installer.run --extract-only mkdir -p debian/tmp # Copy installer contents into debian temp dir cp -rf ./NVIDIA-Linux-*/* debian/tmp # Enable modeset and fbdev as default # This avoids various issue, when Simplefb is used # https://gitlab.archlinux.org/archlinux/packaging/packages/nvidia-utils/-/issues/14 # https://github.com/rpmfusion/nvidia-kmod/blob/master/make_modeset_default.patch patch -Np2 -i $(CURDIR)/debian/patches/0001-Make-modeset-and-fbdev-default-enabled.patch -d $(CURDIR)/debian/tmp/kernel/nvidia-drm patch -Np2 -i $(CURDIR)/debian/patches/0001-Make-modeset-and-fbdev-default-enabled.patch -d $(CURDIR)/debian/tmp/kernel-open/nvidia-drm # Dont error, when Zen5 CPU is in the system patch -Np2 -i $(CURDIR)/debian/patches/0002-Do-not-error-on-unkown-CPU-Type-and-add-Zen5-support.patch -d $(CURDIR)/debian/tmp/kernel/nvidia patch -Np2 -i $(CURDIR)/debian/patches/0002-Do-not-error-on-unkown-CPU-Type-and-add-Zen5-support.patch -d $(CURDIR)/debian/tmp/kernel-open/nvidia # Fix for https://bugs.archlinux.org/task/74886 patch -Np2 -i $(CURDIR)/debian/patches/0003-Add-IBT-support.patch -d $(CURDIR)/debian/tmp/kernel patch -Np2 -i $(CURDIR)/debian/patches/0003-Add-IBT-support.patch -d $(CURDIR)/debian/tmp/kernel-open # Patch by Nvidia to silence error messages until a real fix drops in 570.xx # https://github.com/NVIDIA/open-gpu-kernel-modules/issues/716#issuecomment-2391898884 patch -Np2 -i $(CURDIR)/debian/patches/0004-silence-event-assert-until-570.patch -d $(CURDIR)/debian/tmp/kernel patch -Np2 -i $(CURDIR)/debian/patches/0004-silence-event-assert-until-570.patch -d $(CURDIR)/debian/tmp/kernel-open # Patch by Nvidia to fix HDMI names which are otherwise broken in the /proc/asound/NVidia/* ELD files # Should hopefully ship with 570.xx # https://github.com/NVIDIA/open-gpu-kernel-modules/pull/715 patch -Np2 -i $(CURDIR)/debian/patches/0005-nvkms-Sanitize-trim-ELD-product-name-strings.patch -d $(CURDIR)/debian/tmp/kernel patch -Np2 -i $(CURDIR)/debian/patches/0005-nvkms-Sanitize-trim-ELD-product-name-strings.patch -d $(CURDIR)/debian/tmp/kernel-open # Fix build errors on 6.13+ # https://github.com/NVIDIA/open-gpu-kernel-modules/issues/746 patch -Np2 -i $(CURDIR)/debian/patches/0006-crypto-Add-fix-for-6.13-Module-compilation.patch -d $(CURDIR)/debian/tmp/kernel patch -Np2 -i $(CURDIR)/debian/patches/0006-crypto-Add-fix-for-6.13-Module-compilation.patch -d $(CURDIR)/debian/tmp/kernel-open # https://github.com/NVIDIA/open-gpu-kernel-modules/issues/751 patch -Np2 -i $(CURDIR)/debian/patches/0007-nvidia-nv-Convert-symbol-namespace-to-string-literal.patch -d $(CURDIR)/debian/tmp/kernel patch -Np2 -i $(CURDIR)/debian/patches/0007-nvidia-nv-Convert-symbol-namespace-to-string-literal.patch -d $(CURDIR)/debian/tmp/kernel-open # https://github.com/NVIDIA/open-gpu-kernel-modules/issues/747 patch -Np2 -i $(CURDIR)/debian/patches/0008-Kbuild-Use-absolute-paths-for-symbolic-links.patch -d $(CURDIR)/debian/tmp/kernel patch -Np2 -i $(CURDIR)/debian/patches/0008-Kbuild-Use-absolute-paths-for-symbolic-links.patch -d $(CURDIR)/debian/tmp/kernel-open # Fixes fbdev on 6.13+ # https://github.com/NVIDIA/open-gpu-kernel-modules/issues/749 # https://gist.github.com/xtexChooser/da92d9df902788b75f746f348552ae80 patch -Np2 -i $(CURDIR)/debian/patches/0009-FROM-AOSC-Use-linux-aperture.c-for-removing-conflict.patch -d $(CURDIR)/debian/tmp/kernel patch -Np2 -i $(CURDIR)/debian/patches/0009-FROM-AOSC-Use-linux-aperture.c-for-removing-conflict.patch -d $(CURDIR)/debian/tmp/kernel-open patch -Np2 -i $(CURDIR)/debian/patches/0010-FROM-AOSC-TTM-fbdev-emulation-for-Linux-6.13.patch -d $(CURDIR)/debian/tmp/kernel patch -Np2 -i $(CURDIR)/debian/patches/0010-FROM-AOSC-TTM-fbdev-emulation-for-Linux-6.13.patch -d $(CURDIR)/debian/tmp/kernel-open # Replace libs with 32 bit rm -rf debian/tmp/*.so* cp -rf ./NVIDIA-Linux-*/32/* debian/tmp rm -rf debian/tmp/32 endif override_dh_shlibdeps: dh_shlibdeps -l/usr/lib/$(DEB_HOST_MULTIARCH)/nvidia/current/:/usr/lib/nvidia/current/ %: dh $@