ferreo ee59a13ae2
Some checks failed
PikaOS Package Build Only (amd64-v3) / build (push) Failing after 34s
Really fix 6.13
2025-01-20 15:13:12 +00:00

109 lines
6.1 KiB
Makefile

#! /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
patch -Np2 -i $(CURDIR)/debian/patches/0001-Make-modeset-and-fbdev-default-enabled.patch -d $(CURDIR)/debian/tmp/kernel-open
# 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
# 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
patch -Np2 -i $(CURDIR)/debian/patches/0001-Make-modeset-and-fbdev-default-enabled.patch -d $(CURDIR)/debian/tmp/kernel-open
# 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
# 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 $@