Changing the version of an Nvidia package is pretty straight forward. We
change the version in debian/dkms-versions in the *:linux (main) packages and this propogates to each derivative main kernel and from there into the dependant linux-restricted-modules* (lrm) package. However, when we wish to add a new 'series' such as 460 or 460-server things are much more complex. Firstly, we add a new dkms-versions entry for the series. We then add a pair of new stanzas to to the kernel packaging in the *:linux main packages (not overly onerous). Finally we must add new stanzas and package definitions to every single linux-restricted-modules* package individually (very very onerous). This email details some packaging improvements I am proposing for the main and lrm packages. For the main package we want to build signatures for all nvidia versions specified. Here I am removing the per-series rules and version lookup and replacing it with iterative make rules. For the lrm packages the intent is that the entire contents of lrm package is specified by the contents of two configurations; debian/dkms-versions which comes to lrm via its main package from the appropriate *:linux main package, and from debian/package.config which carries any per lrm configuration (mostly the architectures and flavours supported by that lrm package). The lrm rules and control are generated en-toto from these two configuration files at package clean time. With these in place we are able to add or remove (and transition) a version via modifications to the dkms-versions file in the *:linux main package. All other change propogates automatically into the generated rules. In order to handle sign-only[1] nvidia builds and to allow control over creation of appropriate transitional packags when deprecating series the dkms-versions format is extended for nvidia entries. Taking the current groovy:linux dkms-versions file as an example: zfs-linux 0.8.4-1ubuntu11.1 nvidia-graphics-drivers-390 390.141-0ubuntu0.20.10.1 nvidia-graphics-drivers-435 435.21-0ubuntu8 signonly nvidia-graphics-drivers-450 450.102.04-0ubuntu0.20.10.1 transition=nvidia-graphics-drivers-440 nvidia-graphics-drivers-455 455.45.01-0ubuntu0.20.10.1 signonly nvidia-graphics-drivers-460 460.32.03-0ubuntu0.20.10.1 transition=nvidia-graphics-drivers-455 transition=nvidia-graphics-drivers-435 nvidia-graphics-drivers-418-server 418.181.07-0ubuntu0.20.10.1 nvidia-graphics-drivers-440-server 440.95.01-0ubuntu2 signonly nvidia-graphics-drivers-450-server 450.102.04-0ubuntu0.20.10.1 transition=nvidia-graphics-drivers-440-server The new directives are added in fields three onwards. Currently two directives are supported: - signonly -- which indicates that the main package should build and extract a signature from that nvidia series, but that lrm should not build the package, and - transition=<series package> -- which indicates that the older series should generate transitional packages pointing to this nvidia series. Additionally each lrm package will be configured via debian/package.config which contains (generally static) information such as the architectures and flavours for which we wish to generate packages. For example for focal:linux-hwe-5.8 we have: build generic amd64 build lowlatency amd64 option desktop option server transitional 440-oem-20.04 450-generic amd64 transitional 450-oem-20.04 450-generic amd64 This indicates we build on amd64 for generic and lowlatency flavours, we build both desktop (440, 450 etc) and server (450-server etc) series, and finally indicates that there are some addhoc transitionals needed to handle upgrades from the oem package. Currently three directives are supported: - build <flavour> <arch list> -- defines the architectures on which we should generate packages for this flavour. - option desktop|server -- defines whether this package generates desktop and server series respectivly. - transitional <from> <to> <arch list> -- defines the architectures on which transitional packages are needed for an adhoc transition. The changes for the main packages consist of two patches for each series; a change to debian/rules* to implement the dynamic rules, and a patch for debian/dkms-versions which adds the additional annotations. I include the rules change for the groovy main package as an example, the dkms-versions is as above (and will have to be regenerated at application time). The changes for the lrm packages are more complex as each lrm package must be configured indicating the flavours and architecures, and pulling out any local transitionals. I am including the patch kit[2] as applied to grooy:linux-restricted-modules package. This conversion has been scripted to simplify application. I am therefore including this as a sampler for review and and, but proposed to apply the lrm changes programatically. It should be noted that a pleasant outcome from this conversion is that once converted to this form all of the core LRM content is generated by a single common rules.gen script which can augmented and be updated via a cranky fix. -apw [1] signonly nvidia builds are used when transitioning from one series to another, but we might wish to drop back if testing fails. There we can build a signature in the old nvidia series, but not package or ship those in lrm. [2] Andy Whitcroft (9): UBUNTU: [Packaging] generate nvidia version mappings at clean time UBUNTU: [Packaging] generate nvidia version mappings at clean time -- add transitionals UBUNTU: [Packaging] generate nvidia version mappings at clean time -- handle Build-Depends UBUNTU: [Packaging] generate nvidia version mappings at clean time -- use Build-Depends-Arch UBUNTU: [Packaging] generate nvidia version mappings at clean time -- add signonly UBUNTU: [Packaging] generate nvidia version mappings at clean time -- handle +21.04.1 UBUNTU: [Packaging] generate nvidia version mappings at clean time -- add options UBUNTU: [Packaging] generate nvidia version mappings at clean time -- handle old dkms-build API UBUNTU: [Packaging] generate nvidia version mappings at clean time -- add suppress support debian/control.common | 6 +- debian/control.d/meta-nvidia | 148 --------------- debian/control.d/migrate-nvidia-435 | 13 -- debian/control.d/migrate-nvidia-440 | 13 -- debian/control.d/nvidia | 227 ----------------------- debian/control.d/transitionals-oem-20.04 | 13 -- debian/dkms-versions | 5 +- debian/package.config | 4 + debian/rules | 194 +------------------ debian/rules.in | 139 ++++++++++++++ debian/scripts/gen-rules | 173 +++++++++++++++++ debian/source/options | 3 + 12 files changed, 327 insertions(+), 611 deletions(-) delete mode 100644 debian/control.d/meta-nvidia delete mode 100644 debian/control.d/migrate-nvidia-435 delete mode 100644 debian/control.d/migrate-nvidia-440 delete mode 100644 debian/control.d/nvidia delete mode 100644 debian/control.d/transitionals-oem-20.04 create mode 100644 debian/package.config create mode 100755 debian/rules.in create mode 100755 debian/scripts/gen-rules -- kernel-team mailing list [hidden email] https://lists.ubuntu.com/mailman/listinfo/kernel-team |
Currently each and every Nvidia version added or removed from
dkms-versions requires a pair of corresponding changes to debian/rules and debian/rules.d/2-binary-arch.mk. Switch to using the listed versions in debian/dkms-versions to generate the rules we need during build. Signed-off-by: Andy Whitcroft <[hidden email]> --- debian/rules | 12 ++++-------- debian/rules.d/2-binary-arch.mk | 24 ++++++++++++++---------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/debian/rules b/debian/rules index 8c3c71a298e7..e490836b813d 100755 --- a/debian/rules +++ b/debian/rules @@ -125,17 +125,13 @@ do_any_tools=$(sort $(filter-out false,$(do_linux_tools) $(do_cloud_tools))) # Versions of dkms packages. dkms_zfs_linux_version=$(shell gawk '/^zfs-linux / { print $$2; }' debian/dkms-versions) -dkms_nvidia_390_version=$(shell gawk '/^nvidia-graphics-drivers-390 / { print $$2; }' debian/dkms-versions) -dkms_nvidia_435_version=$(shell gawk '/^nvidia-graphics-drivers-435 / { print $$2; }' debian/dkms-versions) -dkms_nvidia_450_version=$(shell gawk '/^nvidia-graphics-drivers-450 / { print $$2; }' debian/dkms-versions) -dkms_nvidia_455_version=$(shell gawk '/^nvidia-graphics-drivers-455 / { print $$2; }' debian/dkms-versions) -dkms_nvidia_460_version=$(shell gawk '/^nvidia-graphics-drivers-460 / { print $$2; }' debian/dkms-versions) -dkms_nvidia_418_server_version=$(shell gawk '/^nvidia-graphics-drivers-418-server / { print $$2; }' debian/dkms-versions) -dkms_nvidia_440_server_version=$(shell gawk '/^nvidia-graphics-drivers-440-server / { print $$2; }' debian/dkms-versions) -dkms_nvidia_450_server_version=$(shell gawk '/^nvidia-graphics-drivers-450-server / { print $$2; }' debian/dkms-versions) dkms_vbox_guest_version=$(shell gawk '/^virtualbox/ { print $$2; }' debian/dkms-versions) dkms_wireguard_version=$(shell gawk '/^wireguard-linux-compat / { print $$2; }' debian/dkms-versions) +# NVIDIA DKMS package gross series split into desktop and server. +nvidia_desktop_series=$(shell sed -n -e 's/^nvidia-graphics-drivers-\([0-9][0-9]*\) .*/\1/p' debian/dkms-versions) +nvidia_server_series=$(shell sed -n -e 's/^nvidia-graphics-drivers-\([0-9][0-9]*-server\) .*/\1/p' debian/dkms-versions) + # Debian Build System targets binary: binary-indep binary-arch diff --git a/debian/rules.d/2-binary-arch.mk b/debian/rules.d/2-binary-arch.mk index 703fd2ade338..593d711a3adb 100644 --- a/debian/rules.d/2-binary-arch.mk +++ b/debian/rules.d/2-binary-arch.mk @@ -63,6 +63,18 @@ define build_dkms = CROSS_COMPILE=$(CROSS_COMPILE) $(SHELL) $(DROOT)/scripts/dkms-build $(dkms_dir) $(abi_release)-$* '$(call build_dkms_sign,$(builddir)/build-$*)' $(1) $(2) $(3) $(4) $(5) endef +# nvidia_build_payload 450 450 450_450.102.04-0ubuntu0.20.04.1 +# nvidia_build_payload 450-server 450srv 50.102.04-0ubuntu0.20.04.1 +define nvidia_build_payload = + $(call build_dkms, $(bldinfo_pkg_name)-$*, $(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/signatures, "", nvidia-$(2), pool/restricted/n/nvidia-graphics-drivers-$(1)/nvidia-kernel-source-$(1)_$(3)_$(arch).deb pool/restricted/n/nvidia-graphics-drivers-$(1)/nvidia-dkms-$(1)_$(3)_$(arch).deb) +endef +# nvidia_build 450 +# nvidia_build 450-server +define nvidia_build = + $(call nvidia_build_payload,$(1),$(shell echo $(1) | sed -e 's/-server/srv/'),$(shell awk '/^nvidia-graphics-drivers-$(1) / {print($$2);}' debian/dkms-versions)) + +endef + define install_control = for which in $(3); \ do \ @@ -403,18 +415,10 @@ endif $(if $(filter true,$(do_dkms_wireguard)),$(call build_dkms, $(mods_pkg_name)-$*, $(pkgdir)/lib/modules/$(abi_release)-$*/kernel, "", wireguard, pool/universe/w/wireguard-linux-compat/wireguard-dkms_$(dkms_wireguard_version)_all.deb)) ifeq ($(do_dkms_nvidia),true) - $(call build_dkms, $(bldinfo_pkg_name)-$*, $(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/signatures, "", nvidia-390, pool/restricted/n/nvidia-graphics-drivers-390/nvidia-kernel-source-390_$(dkms_nvidia_390_version)_$(arch).deb pool/restricted/n/nvidia-graphics-drivers-390/nvidia-dkms-390_$(dkms_nvidia_390_version)_$(arch).deb) - $(call build_dkms, $(bldinfo_pkg_name)-$*, $(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/signatures, "", nvidia-435, pool/restricted/n/nvidia-graphics-drivers-435/nvidia-kernel-source-435_$(dkms_nvidia_435_version)_$(arch).deb pool/restricted/n/nvidia-graphics-drivers-435/nvidia-dkms-435_$(dkms_nvidia_435_version)_$(arch).deb) - $(call build_dkms, $(bldinfo_pkg_name)-$*, $(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/signatures, "", nvidia-450, pool/restricted/n/nvidia-graphics-drivers-450/nvidia-kernel-source-450_$(dkms_nvidia_450_version)_$(arch).deb pool/restricted/n/nvidia-graphics-drivers-450/nvidia-dkms-450_$(dkms_nvidia_450_version)_$(arch).deb) - $(call build_dkms, $(bldinfo_pkg_name)-$*, $(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/signatures, "", nvidia-455, pool/restricted/n/nvidia-graphics-drivers-455/nvidia-kernel-source-455_$(dkms_nvidia_455_version)_$(arch).deb pool/restricted/n/nvidia-graphics-drivers-455/nvidia-dkms-455_$(dkms_nvidia_455_version)_$(arch).deb) - $(call build_dkms, $(bldinfo_pkg_name)-$*, $(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/signatures, "", nvidia-460, pool/restricted/n/nvidia-graphics-drivers-460/nvidia-kernel-source-460_$(dkms_nvidia_460_version)_$(arch).deb pool/restricted/n/nvidia-graphics-drivers-460/nvidia-dkms-460_$(dkms_nvidia_460_version)_$(arch).deb) + $(foreach series,$(nvidia_desktop_series),$(call nvidia_build,$(series))) endif - ifeq ($(do_dkms_nvidia_server),true) - $(call build_dkms, $(bldinfo_pkg_name)-$*, $(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/signatures, "", nvidia-418srv, pool/restricted/n/nvidia-graphics-drivers-418-server/nvidia-kernel-source-418-server_$(dkms_nvidia_418_server_version)_$(arch).deb pool/restricted/n/nvidia-graphics-drivers-418-server/nvidia-dkms-418-server_$(dkms_nvidia_418_server_version)_$(arch).deb) - $(call build_dkms, $(bldinfo_pkg_name)-$*, $(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/signatures, "", nvidia-440srv, pool/restricted/n/nvidia-graphics-drivers-440-server/nvidia-kernel-source-440-server_$(dkms_nvidia_440_server_version)_$(arch).deb pool/restricted/n/nvidia-graphics-drivers-440-server/nvidia-dkms-440-server_$(dkms_nvidia_440_server_version)_$(arch).deb) - $(call build_dkms, $(bldinfo_pkg_name)-$*, $(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/signatures, "", nvidia-450srv, pool/restricted/n/nvidia-graphics-drivers-450-server/nvidia-kernel-source-450-server_$(dkms_nvidia_450_server_version)_$(arch).deb pool/restricted/n/nvidia-graphics-drivers-450-server/nvidia-dkms-450-server_$(dkms_nvidia_450_server_version)_$(arch).deb) - + $(foreach series,$(nvidia_server_series),$(call nvidia_build,$(series))) endif ifeq ($(do_extras_package),true) -- 2.29.2 -- kernel-team mailing list [hidden email] https://lists.ubuntu.com/mailman/listinfo/kernel-team |
In reply to this post by Andy Whitcroft-3
Generate the rules and control fragments from debian/rules.config at
clean time so we do not have to maintain this package directly. Signed-off-by: Andy Whitcroft <[hidden email]> --- debian/control.d/meta-nvidia | 148 ----------------------- debian/control.d/nvidia | 227 ----------------------------------- debian/package.config | 2 + debian/rules | 194 +----------------------------- debian/rules.in | 139 +++++++++++++++++++++ debian/scripts/gen-rules | 85 +++++++++++++ debian/source/options | 3 + 7 files changed, 233 insertions(+), 565 deletions(-) delete mode 100644 debian/control.d/meta-nvidia delete mode 100644 debian/control.d/nvidia create mode 100644 debian/package.config create mode 100755 debian/rules.in create mode 100755 debian/scripts/gen-rules diff --git a/debian/control.d/meta-nvidia b/debian/control.d/meta-nvidia deleted file mode 100644 index 77a9ad7..0000000 --- a/debian/control.d/meta-nvidia +++ /dev/null @@ -1,148 +0,0 @@ -Package: linux-modules-nvidia-390-generic${variant:suffix} -Build-Profiles: <!stage1> -Architecture: amd64 -Section: kernel -Provides: ${dkms:nvidia-390-modules} -Depends: - ${misc:Depends}, - linux-modules-nvidia-390-@ABI@-generic (= ${binary:Version}), - ${nvk:nvidia-390} -Description: Extra drivers for nvidia-390 for generic${variant:suffix} - Install extra signed nvidia-390 modules compatible with - generic${variant:suffix} - -Package: linux-modules-nvidia-450-generic${variant:suffix} -Build-Profiles: <!stage1> -Architecture: amd64 -Section: kernel -Provides: ${dkms:nvidia-450-modules}, nvidia-prebuilt-kernel -Depends: - ${misc:Depends}, - linux-modules-nvidia-450-@ABI@-generic (= ${binary:Version}), - ${nvk:nvidia-450} -Description: Extra drivers for nvidia-450 for generic${variant:suffix} - Install extra signed nvidia-450 modules compatible with - generic${variant:suffix} - -Package: linux-modules-nvidia-455-generic${variant:suffix} -Build-Profiles: <!stage1> -Architecture: amd64 -Section: kernel -Provides: ${dkms:nvidia-455-modules}, nvidia-prebuilt-kernel -Depends: - ${misc:Depends}, - linux-modules-nvidia-455-@ABI@-generic (= ${binary:Version}), - ${nvk:nvidia-455} -Description: Extra drivers for nvidia-455 for generic${variant:suffix} - Install extra signed nvidia-455 modules compatible with - generic${variant:suffix} - -Package: linux-modules-nvidia-418-server-generic${variant:suffix} -Build-Profiles: <!stage1> -Architecture: amd64 -Section: kernel -Provides: ${dkms:nvidia-418-server-modules}, nvidia-prebuilt-kernel -Depends: - ${misc:Depends}, - linux-modules-nvidia-418-server-@ABI@-generic (= ${binary:Version}), - ${nvk:nvidia-418-server} -Description: Extra drivers for nvidia-418-server for generic${variant:suffix} - Install extra signed nvidia-418-server modules compatible with - generic${variant:suffix} - -Package: linux-modules-nvidia-440-server-generic${variant:suffix} -Build-Profiles: <!stage1> -Architecture: amd64 -Section: kernel -Provides: ${dkms:nvidia-440-server-modules}, nvidia-prebuilt-kernel -Depends: - ${misc:Depends}, - linux-modules-nvidia-440-server-@ABI@-generic (= ${binary:Version}), - ${nvk:nvidia-440-server} -Description: Extra drivers for nvidia-440-server for generic${variant:suffix} - Install extra signed nvidia-440-server modules compatible with - generic${variant:suffix} - -Package: linux-modules-nvidia-450-server-generic${variant:suffix} -Build-Profiles: <!stage1> -Architecture: amd64 -Section: kernel -Provides: ${dkms:nvidia-450-server-modules}, nvidia-prebuilt-kernel -Depends: - ${misc:Depends}, - linux-modules-nvidia-450-server-@ABI@-generic (= ${binary:Version}), - ${nvk:nvidia-450-server} -Description: Extra drivers for nvidia-450-server for generic${variant:suffix} - Install extra signed nvidia-450-server modules compatible with - generic${variant:suffix} - -Package: linux-modules-nvidia-390-lowlatency${variant:suffix} -Build-Profiles: <!stage1> -Architecture: amd64 -Section: kernel -Provides: ${dkms:nvidia-390-modules} -Depends: - ${misc:Depends}, - linux-modules-nvidia-390-@ABI@-lowlatency (= ${binary:Version}), - ${nvk:nvidia-390} -Description: Extra drivers for nvidia-390 for lowlatency${variant:suffix} - Install extra signed nvidia-390 modules compatible with - lowlatency${variant:suffix} - -Package: linux-modules-nvidia-450-lowlatency${variant:suffix} -Build-Profiles: <!stage1> -Architecture: amd64 -Section: kernel -Provides: ${dkms:nvidia-450-modules}, nvidia-prebuilt-kernel -Depends: - ${misc:Depends}, - linux-modules-nvidia-450-@ABI@-lowlatency (= ${binary:Version}), - ${nvk:nvidia-450} -Description: Extra drivers for nvidia-450 for lowlatency${variant:suffix} - Install extra signed nvidia-450 modules compatible with - lowlatency${variant:suffix} - -Package: linux-modules-nvidia-455-lowlatency${variant:suffix} -Build-Profiles: <!stage1> -Architecture: amd64 -Section: kernel -Provides: ${dkms:nvidia-455-modules}, nvidia-prebuilt-kernel -Depends: - ${misc:Depends}, - linux-modules-nvidia-455-@ABI@-lowlatency (= ${binary:Version}), - ${nvk:nvidia-455} -Description: Extra drivers for nvidia-455 for lowlatency${variant:suffix} - Install extra signed nvidia-455 modules compatible with - lowlatency${variant:suffix} - -Package: linux-modules-nvidia-418-server-lowlatency${variant:suffix} -Build-Profiles: <!stage1> -Architecture: amd64 -Section: kernel -Provides: ${dkms:nvidia-418-server-modules}, nvidia-prebuilt-kernel -Depends: ${misc:Depends}, - linux-modules-nvidia-418-server-@ABI@-lowlatency (= ${binary:Version}), - ${nvk:nvidia-418-server} -Description: Extra drivers for nvidia-418-server for the lowlatency flavour - Install extra signed nvidia-418-server modules compatible with the lowlatency flavour. - -Package: linux-modules-nvidia-440-server-lowlatency${variant:suffix} -Build-Profiles: <!stage1> -Architecture: amd64 -Section: kernel -Provides: ${dkms:nvidia-440-server-modules}, nvidia-prebuilt-kernel -Depends: ${misc:Depends}, - linux-modules-nvidia-440-server-@ABI@-lowlatency (= ${binary:Version}), - ${nvk:nvidia-440-server} -Description: Extra drivers for nvidia-440-server for the lowlatency flavour - Install extra signed nvidia-440-server modules compatible with the lowlatency flavour. - -Package: linux-modules-nvidia-450-server-lowlatency${variant:suffix} -Build-Profiles: <!stage1> -Architecture: amd64 -Section: kernel -Provides: ${dkms:nvidia-450-server-modules}, nvidia-prebuilt-kernel -Depends: ${misc:Depends}, linux-modules-nvidia-450-server-@ABI@-lowlatency (= ${binary:Version}), - ${nvk:nvidia-450-server} -Description: Extra drivers for nvidia-450-server for the lowlatency flavour - Install extra signed nvidia-450-server modules compatible with the lowlatency flavour. diff --git a/debian/control.d/nvidia b/debian/control.d/nvidia deleted file mode 100644 index 53fc1b5..0000000 --- a/debian/control.d/nvidia +++ /dev/null @@ -1,227 +0,0 @@ -Package: linux-modules-nvidia-390-@ABI@-generic -Build-Profiles: <!stage1> -Architecture: amd64 -Section: kernel -Priority: optional -Built-Using: ${linux:BuiltUsing} -Depends: - ${misc:Depends}, - ${shlibs:Depends}, - binutils, - linux-image-@ABI@-generic | linux-image-unsigned-@ABI@-generic, -Description: Linux kernel nvidia modules for version @ABI@ - This package contains the Linux kernel nvidia modules for version @ABI@. - . - You likely do not want to install this package directly. Instead, install the - one of the linux-modules-nvidia-390-generic* meta-packages, - which will ensure that upgrades work correctly, and that supporting packages are - also installed. - -Package: linux-modules-nvidia-450-@ABI@-generic -Build-Profiles: <!stage1> -Architecture: amd64 -Section: kernel -Priority: optional -Built-Using: ${linux:BuiltUsing} -Depends: - ${misc:Depends}, - ${shlibs:Depends}, - binutils, - linux-image-@ABI@-generic | linux-image-unsigned-@ABI@-generic, -Description: Linux kernel nvidia modules for version @ABI@ - This package contains the Linux kernel nvidia modules for version @ABI@. - . - You likely do not want to install this package directly. Instead, install the - one of the linux-modules-nvidia-450-generic* meta-packages, - which will ensure that upgrades work correctly, and that supporting packages are - also installed. - -Package: linux-modules-nvidia-455-@ABI@-generic -Build-Profiles: <!stage1> -Architecture: amd64 -Section: kernel -Priority: optional -Built-Using: ${linux:BuiltUsing} -Depends: - ${misc:Depends}, - ${shlibs:Depends}, - binutils, - linux-image-@ABI@-generic | linux-image-unsigned-@ABI@-generic, -Description: Linux kernel nvidia modules for version @ABI@ - This package contains the Linux kernel nvidia modules for version @ABI@. - . - You likely do not want to install this package directly. Instead, install the - one of the linux-modules-nvidia-455-generic* meta-packages, - which will ensure that upgrades work correctly, and that supporting packages are - also installed. - -Package: linux-modules-nvidia-418-server-@ABI@-generic -Build-Profiles: <!stage1> -Architecture: amd64 -Section: kernel -Priority: optional -Built-Using: ${linux:BuiltUsing} -Depends: - ${misc:Depends}, - ${shlibs:Depends}, - binutils, - linux-image-@ABI@-generic | linux-image-unsigned-@ABI@-generic, -Description: Linux kernel nvidia modules for version @ABI@ - This package contains the Linux kernel nvidia modules for version @ABI@. - . - You likely do not want to install this package directly. Instead, install the - one of the linux-modules-nvidia-418-server-generic* meta-packages, - which will ensure that upgrades work correctly, and that supporting packages are - also installed. - -Package: linux-modules-nvidia-440-server-@ABI@-generic -Build-Profiles: <!stage1> -Architecture: amd64 -Section: kernel -Priority: optional -Built-Using: ${linux:BuiltUsing} -Depends: - ${misc:Depends}, - ${shlibs:Depends}, - binutils, - linux-image-@ABI@-generic | linux-image-unsigned-@ABI@-generic, -Description: Linux kernel nvidia modules for version @ABI@ - This package contains the Linux kernel nvidia modules for version @ABI@. - . - You likely do not want to install this package directly. Instead, install the - one of the linux-modules-nvidia-440-server-generic* meta-packages, - which will ensure that upgrades work correctly, and that supporting packages are - also installed. - -Package: linux-modules-nvidia-450-server-@ABI@-generic -Build-Profiles: <!stage1> -Architecture: amd64 -Section: kernel -Priority: optional -Built-Using: ${linux:BuiltUsing} -Depends: - ${misc:Depends}, - ${shlibs:Depends}, - binutils, - linux-image-@ABI@-generic | linux-image-unsigned-@ABI@-generic, -Description: Linux kernel nvidia modules for version @ABI@ - This package contains the Linux kernel nvidia modules for version @ABI@. - . - You likely do not want to install this package directly. Instead, install the - one of the linux-modules-nvidia-450-server-generic* meta-packages, - which will ensure that upgrades work correctly, and that supporting packages are - also installed. - -Package: linux-modules-nvidia-390-@ABI@-lowlatency -Build-Profiles: <!stage1> -Architecture: amd64 -Section: kernel -Priority: optional -Built-Using: ${linux:BuiltUsing} -Depends: - ${misc:Depends}, - ${shlibs:Depends}, - binutils, - linux-image-@ABI@-lowlatency | linux-image-unsigned-@ABI@-lowlatency, -Description: Linux kernel nvidia modules for version @ABI@ - This package contains the Linux kernel nvidia modules for version @ABI@. - . - You likely do not want to install this package directly. Instead, install the - one of the linux-modules-nvidia-390-lowlatency* meta-packages, - which will ensure that upgrades work correctly, and that supporting packages are - also installed. - -Package: linux-modules-nvidia-450-@ABI@-lowlatency -Build-Profiles: <!stage1> -Architecture: amd64 -Section: kernel -Priority: optional -Built-Using: ${linux:BuiltUsing} -Depends: - ${misc:Depends}, - ${shlibs:Depends}, - binutils, - linux-image-@ABI@-lowlatency | linux-image-unsigned-@ABI@-lowlatency, -Description: Linux kernel nvidia modules for version @ABI@ - This package contains the Linux kernel nvidia modules for version @ABI@. - . - You likely do not want to install this package directly. Instead, install the - one of the linux-modules-nvidia-450-lowlatency* meta-packages, - which will ensure that upgrades work correctly, and that supporting packages are - also installed. - -Package: linux-modules-nvidia-455-@ABI@-lowlatency -Build-Profiles: <!stage1> -Architecture: amd64 -Section: kernel -Priority: optional -Built-Using: ${linux:BuiltUsing} -Depends: - ${misc:Depends}, - ${shlibs:Depends}, - binutils, - linux-image-@ABI@-lowlatency | linux-image-unsigned-@ABI@-lowlatency, -Description: Linux kernel nvidia modules for version @ABI@ - This package contains the Linux kernel nvidia modules for version @ABI@. - . - You likely do not want to install this package directly. Instead, install the - one of the linux-modules-nvidia-455-lowlatency* meta-packages, - which will ensure that upgrades work correctly, and that supporting packages are - also installed. - -Package: linux-modules-nvidia-418-server-@ABI@-lowlatency -Build-Profiles: <!stage1> -Architecture: amd64 -Section: kernel -Priority: optional -Built-Using: ${linux:BuiltUsing} -Depends: - ${misc:Depends}, - ${shlibs:Depends}, - binutils, - linux-image-@ABI@-lowlatency | linux-image-unsigned-@ABI@-lowlatency, -Description: Linux kernel nvidia modules for version @ABI@ - This package contains the Linux kernel nvidia modules for version @ABI@. - . - You likely do not want to install this package directly. Instead, install the - one of the linux-modules-nvidia-418-server-lowlatency* meta-packages, - which will ensure that upgrades work correctly, and that supporting packages are - also installed. - -Package: linux-modules-nvidia-440-server-@ABI@-lowlatency -Build-Profiles: <!stage1> -Architecture: amd64 -Section: kernel -Priority: optional -Built-Using: ${linux:BuiltUsing} -Depends: - ${misc:Depends}, - ${shlibs:Depends}, - binutils, - linux-image-@ABI@-lowlatency | linux-image-unsigned-@ABI@-lowlatency, -Description: Linux kernel nvidia modules for version @ABI@ - This package contains the Linux kernel nvidia modules for version @ABI@. - . - You likely do not want to install this package directly. Instead, install the - one of the linux-modules-nvidia-440-server-lowlatency* meta-packages, - which will ensure that upgrades work correctly, and that supporting packages are - also installed. - -Package: linux-modules-nvidia-450-server-@ABI@-lowlatency -Build-Profiles: <!stage1> -Architecture: amd64 -Section: kernel -Priority: optional -Built-Using: ${linux:BuiltUsing} -Depends: - ${misc:Depends}, - ${shlibs:Depends}, - binutils, - linux-image-@ABI@-lowlatency | linux-image-unsigned-@ABI@-lowlatency, -Description: Linux kernel nvidia modules for version @ABI@ - This package contains the Linux kernel nvidia modules for version @ABI@. - . - You likely do not want to install this package directly. Instead, install the - one of the linux-modules-nvidia-450-server-lowlatency* meta-packages, - which will ensure that upgrades work correctly, and that supporting packages are - also installed. diff --git a/debian/package.config b/debian/package.config new file mode 100644 index 0000000..2b69799 --- /dev/null +++ b/debian/package.config @@ -0,0 +1,2 @@ +build generic amd64 +build lowlatency amd64 diff --git a/debian/rules b/debian/rules index 1d799fe..7c00598 100755 --- a/debian/rules +++ b/debian/rules @@ -1,194 +1,8 @@ #! /usr/bin/make -f -##export DH_VERBOSE := 1 - -arch = $(shell dpkg-architecture -qDEB_HOST_ARCH) - -# Work out the source package name and version. The version -# is identical to this package less any rebuild suffix (+lrmN). -src_package := $(shell LC_ALL=C dpkg-parsechangelog -SSource) -src_fullversion = $(shell LC_ALL=C dpkg-parsechangelog -SVersion) -src_abi = $(shell echo "$(src_fullversion)" | sed -ne 's/\([0-9]*\.[0-9]*\.[0-9]*\-[0-9]*\)\..*/\1/p') -src_version = $(shell echo $(src_fullversion) | sed -e 's/+[0-9][0-9]*//') -src_series = $(shell dpkg-parsechangelog -SDistribution | sed -e 's/-\(security\|updates\|proposed\)$$//') -src_kernel = $(shell echo "$(src_package)" | sed -e 's/restricted-modules-//') - -dkms_nvidia_390_version=$(shell gawk '/^nvidia-graphics-drivers-390 / { print $$2; }' debian/dkms-versions) -dkms_nvidia_450_version=$(shell gawk '/^nvidia-graphics-drivers-450 / { print $$2; }' debian/dkms-versions) -dkms_nvidia_455_version=$(shell gawk '/^nvidia-graphics-drivers-455 / { print $$2; }' debian/dkms-versions) -dkms_nvidia_418_server_version=$(shell gawk '/^nvidia-graphics-drivers-418-server / { print $$2; }' debian/dkms-versions) -dkms_nvidia_440_server_version=$(shell gawk '/^nvidia-graphics-drivers-440-server / { print $$2; }' debian/dkms-versions) -dkms_nvidia_450_server_version=$(shell gawk '/^nvidia-graphics-drivers-450-server / { print $$2; }' debian/dkms-versions) - -nvidia_390_upstream_version=$(shell echo "$(dkms_nvidia_390_version)" | cut -d '-' -f 1) -nvidia_450_upstream_version=$(shell echo "$(dkms_nvidia_450_version)" | cut -d '-' -f 1) -nvidia_455_upstream_version=$(shell echo "$(dkms_nvidia_455_version)" | cut -d '-' -f 1) -nvidia_418_server_upstream_version=$(shell echo "$(dkms_nvidia_418_server_version)" | cut -d '-' -f 1) -nvidia_440_server_upstream_version=$(shell echo "$(dkms_nvidia_440_server_version)" | cut -d '-' -f 1) -nvidia_450_server_upstream_version=$(shell echo "$(dkms_nvidia_450_server_version)" | cut -d '-' -f 1) - -# Get variants, assuming primary if debian/variants is not present -variants = -- -ifneq (,$(wildcard debian/variants)) - variants := $(shell cat debian/variants) -endif - -control_files := debian/control.common -# control files only wanted for the primary variant -primary_control_files := $(shell LC_ALL=C ls -d debian/control.d/transitionals-* 2>/dev/null) -ifneq ($(filter --, $(variants)),) - control_files += $(primary_control_files) -endif -control_files += $(filter-out $(primary_control_files),$(shell LC_ALL=C ls -d debian/control.d/*)) - -test: - echo "$(src_fullversion) $(src_version)" - -# We build our control file. This has to be done before dh runs otherwise -# we have no binary files and we will not run the appropriate targets. -pre-clean: tp_key=test:provides\(-full\|-image\|-headers\|-modules-extra\) -pre-clean: $(control_files) - rm -f debian/control.tmp - for i in $^; do \ - if grep -q "{variant:" $$i; then \ - variant_first='yes'; \ - for variant in $(variants); do \ - variant="$$(echo "$$variant" | sed -e 's/--//')"; \ - sed \ - -e "s/\$${variant:suffix}/$$variant/g" \ - -e "s/\(\$${$(tp_key)[^}]*}\)/$${variant_first:+\1}/g" \ - <$$i; \ - echo ""; \ - variant_first=''; \ - done; \ - else \ - cat $$i; \ - echo ""; \ - fi; \ - done | sed \ - -e "s/\(\$${$(tp_key)\([^}]*\)}\)/kernel-testing--$(src_kernel)-\1-\2,/g" \ - -e "s/@SRCPKGNAME@/$(src_package)/g" \ - -e "s/@ABI@/$(src_abi)/g" \ - -e "s/@VERSION@/$(src_version)/g" \ - -e "s/@SERIES@/$(src_series)/g" \ - >debian/control.tmp - rm -f debian/control - mv debian/control.tmp debian/control - rm -rf ./$(src_version) UNSIGNED SIGNED - rm -f debian/linux-modules-*.install \ - debian/linux-modules-*.preinst \ - debian/linux-modules-*.prerm \ - debian/linux-modules-*.postinst \ - debian/linux-modules-*.postrm - rm -rf $(dkms_dir) - -.PHONY: pre-clean - -debian/scripts/fix-filenames: debian/scripts/fix-filenames.c - $(CC) -o $@ $^ - -clean:: pre-clean +clean: + ./debian/scripts/gen-rules + $(MAKE) -f debian/rules.gen clean %: - dh $@ - -# Ensure the directory prefix is exactly 100 characters long so pathnames are the -# exact same length in any binary files produced by the builds. These will be -# commonised later. -dkms_20d=.................... -dkms_100d=$(dkms_20d)$(dkms_20d)$(dkms_20d)$(dkms_20d)$(dkms_20d) -dkms_100c=$(shell echo '$(dkms_100d)' | sed -e 's/\./_/g') -#dkms_dir=$(shell echo '$(CURDIR)/$(dkms_100c)' | \ -# sed -e 's/\($(dkms_100d)\).*/\1/' -e 's/^\(.*\)....$$/\1dkms/') -define dkms_dir_prefix = -$(strip $(shell echo '$(1)/$(dkms_100c)' | \ - sed -e 's/\($(dkms_100d)\).*/\1/' -e 's/^\(.*\)....$$/\1dkms/')) -endef -dkms_dir=$(call dkms_dir_prefix,$(CURDIR)) - -define build_dkms = - $(SHELL) debian/scripts/dkms-build $(dkms_dir) $(1) --lrm $(2) $(3) $(4) $(5) $(6) -endef - -ifeq ($(arch),ppc64el) -instfile=vmlinux -else -instfile=vmlinuz -endif - -define install_control = - for which in $(5); \ - do \ - template="debian/templates/$(3).$$which.in"; \ - script="debian/$(1).$$which"; \ - sed -e 's/@abiname@/$(src_abi)/g' \ - -e 's/@localversion@/-$(2)/g' \ - -e 's/@image-stem@/$(instfile)/g' \ - -e 's/@nvidia-ver@/$(4)/g' \ - <"$$template" >"$$script"; \ - done -endef - -signatures=$(wildcard /usr/lib/linux/$(src_abi)-*) -flavours=$(patsubst /usr/lib/linux/$(src_abi)-%,nvidia-%,$(signatures)) - -nvidia-%: - rm -rf $(dkms_dir)/build $(dkms_dir)/source - mkdir -p $(dkms_dir)/build $(dkms_dir)/source - install -d debian/linux-modules-nvidia-390-$(src_abi)-$* - install -d debian/linux-modules-nvidia-390-$(src_abi)-$*/usr/lib/linux/triggers - $(call build_dkms, $(src_abi)-$*, linux-modules-nvidia-390-$(src_abi)-$*, $(CURDIR)/debian/linux-modules-nvidia-390-$(src_abi)-$*/lib/modules/$(src_abi)-$*/kernel, "", nvidia-390, pool/restricted/n/nvidia-graphics-drivers-390/nvidia-kernel-source-390_$(dkms_nvidia_390_version)_$(arch).deb pool/restricted/n/nvidia-graphics-drivers-390/nvidia-dkms-390_$(dkms_nvidia_390_version)_$(arch).deb) - $(call install_control,linux-modules-nvidia-390-$(src_abi)-$*,$*,nvidia,390,postinst postrm prerm config templates) - - install -d debian/linux-modules-nvidia-450-$(src_abi)-$* - install -d debian/linux-modules-nvidia-450-$(src_abi)-$*/usr/lib/linux/triggers - $(call build_dkms, $(src_abi)-$*, linux-modules-nvidia-450-$(src_abi)-$*, $(CURDIR)/debian/linux-modules-nvidia-450-$(src_abi)-$*/lib/modules/$(src_abi)-$*/kernel, "", nvidia-450, pool/restricted/n/nvidia-graphics-drivers-450/nvidia-kernel-source-450_$(dkms_nvidia_450_version)_$(arch).deb pool/restricted/n/nvidia-graphics-drivers-450/nvidia-dkms-450_$(dkms_nvidia_450_version)_$(arch).deb) - $(call install_control,linux-modules-nvidia-450-$(src_abi)-$*,$*,nvidia,450,postinst postrm prerm config templates) - - install -d debian/linux-modules-nvidia-455-$(src_abi)-$* - install -d debian/linux-modules-nvidia-455-$(src_abi)-$*/usr/lib/linux/triggers - $(call build_dkms, $(src_abi)-$*, linux-modules-nvidia-455-$(src_abi)-$*, $(CURDIR)/debian/linux-modules-nvidia-455-$(src_abi)-$*/lib/modules/$(src_abi)-$*/kernel, "", nvidia-455, pool/restricted/n/nvidia-graphics-drivers-455/nvidia-kernel-source-455_$(dkms_nvidia_455_version)_$(arch).deb pool/restricted/n/nvidia-graphics-drivers-455/nvidia-dkms-455_$(dkms_nvidia_455_version)_$(arch).deb) - $(call install_control,linux-modules-nvidia-455-$(src_abi)-$*,$*,nvidia,455,postinst postrm prerm config templates) - - install -d debian/linux-modules-nvidia-418-server-$(src_abi)-$* - install -d debian/linux-modules-nvidia-418-server-$(src_abi)-$*/usr/lib/linux/triggers - $(call build_dkms, $(src_abi)-$*, linux-modules-nvidia-418-server-$(src_abi)-$*, $(CURDIR)/debian/linux-modules-nvidia-418-server-$(src_abi)-$*/lib/modules/$(src_abi)-$*/kernel, "", nvidia-418srv, pool/restricted/n/nvidia-graphics-drivers-418-server/nvidia-kernel-source-418-server_$(dkms_nvidia_418_server_version)_$(arch).deb pool/restricted/n/nvidia-graphics-drivers-418-server/nvidia-dkms-418-server_$(dkms_nvidia_418_server_version)_$(arch).deb) - $(call install_control,linux-modules-nvidia-418-server-$(src_abi)-$*,$*,nvidia,418srv,postinst postrm prerm config templates) - - install -d debian/linux-modules-nvidia-440-server-$(src_abi)-$* - install -d debian/linux-modules-nvidia-440-server-$(src_abi)-$*/usr/lib/linux/triggers - $(call build_dkms, $(src_abi)-$*, linux-modules-nvidia-440-server-$(src_abi)-$*, $(CURDIR)/debian/linux-modules-nvidia-440-server-$(src_abi)-$*/lib/modules/$(src_abi)-$*/kernel, "", nvidia-440srv, pool/restricted/n/nvidia-graphics-drivers-440-server/nvidia-kernel-source-440-server_$(dkms_nvidia_440_server_version)_$(arch).deb pool/restricted/n/nvidia-graphics-drivers-440-server/nvidia-dkms-440-server_$(dkms_nvidia_440_server_version)_$(arch).deb) - $(call install_control,linux-modules-nvidia-440-server-$(src_abi)-$*,$*,nvidia,440srv,postinst postrm prerm config templates) - - install -d debian/linux-modules-nvidia-450-server-$(src_abi)-$* - install -d debian/linux-modules-nvidia-450-server-$(src_abi)-$*/usr/lib/linux/triggers - $(call build_dkms, $(src_abi)-$*, linux-modules-nvidia-450-server-$(src_abi)-$*, $(CURDIR)/debian/linux-modules-nvidia-450-server-$(src_abi)-$*/lib/modules/$(src_abi)-$*/kernel, "", nvidia-450srv, pool/restricted/n/nvidia-graphics-drivers-450-server/nvidia-kernel-source-450-server_$(dkms_nvidia_450_server_version)_$(arch).deb pool/restricted/n/nvidia-graphics-drivers-450-server/nvidia-dkms-450-server_$(dkms_nvidia_450_server_version)_$(arch).deb) - $(call install_control,linux-modules-nvidia-450-server-$(src_abi)-$*,$*,nvidia,450srv,postinst postrm prerm config templates) - -prepare-dkms: - mkdir -p $(dkms_dir) - ln -s /usr/src $(dkms_dir)/headers - -override_dh_prep: debian/scripts/fix-filenames - dh_prep - -override_dh_auto_install: prepare-dkms $(flavours) - dh_install - -gencontrol_flags := -gencontrol_flags += -Vdkms:nvidia-390-modules="nvidia-dkms-390 (= $(dkms_nvidia_390_version))" -gencontrol_flags += -Vdkms:nvidia-450-modules="nvidia-dkms-450 (= $(dkms_nvidia_450_version))" -gencontrol_flags += -Vdkms:nvidia-455-modules="nvidia-dkms-455 (= $(dkms_nvidia_455_version))" -gencontrol_flags += -Vdkms:nvidia-418-server-modules="nvidia-dkms-418-server (= $(dkms_nvidia_418_server_version))" -gencontrol_flags += -Vdkms:nvidia-440-server-modules="nvidia-dkms-440-server (= $(dkms_nvidia_440_server_version))" -gencontrol_flags += -Vdkms:nvidia-450-server-modules="nvidia-dkms-450-server (= $(dkms_nvidia_450_server_version))" - -gencontrol_flags += -Vnvk:nvidia-390="nvidia-kernel-common-390 (<= $(nvidia_390_upstream_version)-1), nvidia-kernel-common-390 (>= $(nvidia_390_upstream_version))" -gencontrol_flags += -Vnvk:nvidia-450="nvidia-kernel-common-450 (<= $(nvidia_450_upstream_version)-1), nvidia-kernel-common-450 (>= $(nvidia_450_upstream_version))" -gencontrol_flags += -Vnvk:nvidia-455="nvidia-kernel-common-455 (<= $(nvidia_455_upstream_version)-1), nvidia-kernel-common-455 (>= $(nvidia_455_upstream_version))" -gencontrol_flags += -Vnvk:nvidia-418-server="nvidia-kernel-common-418-server (<= $(nvidia_418_server_upstream_version)-1), nvidia-kernel-common-418-server (>= $(nvidia_418_server_upstream_version))" -gencontrol_flags += -Vnvk:nvidia-440-server="nvidia-kernel-common-440-server (<= $(nvidia_440_server_upstream_version)-1), nvidia-kernel-common-440-server (>= $(nvidia_440_server_upstream_version))" -gencontrol_flags += -Vnvk:nvidia-450-server="nvidia-kernel-common-450-server (<= $(nvidia_450_server_upstream_version)-1), nvidia-kernel-common-450-server (>= $(nvidia_450_server_upstream_version))" - -override_dh_gencontrol: - dh_gencontrol -- $(gencontrol_flags) + $(MAKE) -f debian/rules.gen $@ diff --git a/debian/rules.in b/debian/rules.in new file mode 100755 index 0000000..31b7aeb --- /dev/null +++ b/debian/rules.in @@ -0,0 +1,139 @@ +#! /usr/bin/make -f + +##export DH_VERBOSE := 1 + +arch = $(shell dpkg-architecture -qDEB_HOST_ARCH) + +# Work out the source package name and version. The version +# is identical to this package less any rebuild suffix (+lrmN). +src_package := $(shell LC_ALL=C dpkg-parsechangelog -SSource) +src_fullversion = $(shell LC_ALL=C dpkg-parsechangelog -SVersion) +src_abi = $(shell echo "$(src_fullversion)" | sed -ne 's/\([0-9]*\.[0-9]*\.[0-9]*\-[0-9]*\)\..*/\1/p') +src_version = $(shell echo $(src_fullversion) | sed -e 's/+[0-9][0-9]*//') +src_series = $(shell dpkg-parsechangelog -SDistribution | sed -e 's/-\(security\|updates\|proposed\)$$//') +src_kernel = $(shell echo "$(src_package)" | sed -e 's/restricted-modules-//') + +# Get variants, assuming primary if debian/variants is not present +variants = -- +ifneq (,$(wildcard debian/variants)) + variants := $(shell cat debian/variants) +endif + +control_files := debian/control.common +# control files only wanted for the primary variant +primary_control_files := $(shell LC_ALL=C ls -d debian/control.d/transitionals-* 2>/dev/null) +ifneq ($(filter --, $(variants)),) + control_files += $(primary_control_files) +endif +control_files += $(filter-out $(primary_control_files),$(shell LC_ALL=C ls -d debian/control.d/*)) + +test:: + echo "$(src_fullversion) $(src_version)" + +# We build our control file. This has to be done before dh runs otherwise +# we have no binary files and we will not run the appropriate targets. +pre-clean: tp_key=test:provides\(-full\|-image\|-headers\|-modules-extra\) +pre-clean: $(control_files) + rm -f debian/control.tmp + for i in $^; do \ + if grep -q "{variant:" $$i; then \ + variant_first='yes'; \ + for variant in $(variants); do \ + variant="$$(echo "$$variant" | sed -e 's/--//')"; \ + sed \ + -e "s/\$${variant:suffix}/$$variant/g" \ + -e "s/\(\$${$(tp_key)[^}]*}\)/$${variant_first:+\1}/g" \ + <$$i; \ + echo ""; \ + variant_first=''; \ + done; \ + else \ + cat $$i; \ + echo ""; \ + fi; \ + done | sed \ + -e "/@BUILD-INTERLOCK@/{" \ + -e " r debian/control.gen" \ + -e " d" \ + -e " }" \ + | sed \ + -e "s/\(\$${$(tp_key)\([^}]*\)}\)/kernel-testing--$(src_kernel)-\1-\2,/g" \ + -e "s/@SRCPKGNAME@/$(src_package)/g" \ + -e "s/@ABI@/$(src_abi)/g" \ + -e "s/@VERSION@/$(src_version)/g" \ + -e "s/@SERIES@/$(src_series)/g" \ + >debian/control.tmp + rm -f debian/control + mv debian/control.tmp debian/control + rm -rf ./$(src_version) UNSIGNED SIGNED + rm -f debian/linux-modules-*.install \ + debian/linux-modules-*.preinst \ + debian/linux-modules-*.prerm \ + debian/linux-modules-*.postinst \ + debian/linux-modules-*.postrm + rm -rf $(dkms_dir) + +.PHONY: pre-clean + +debian/scripts/fix-filenames: debian/scripts/fix-filenames.c + $(CC) -o $@ $^ + +clean:: pre-clean + +%: + dh $@ + +# Ensure the directory prefix is exactly 100 characters long so pathnames are the +# exact same length in any binary files produced by the builds. These will be +# commonised later. +dkms_20d=.................... +dkms_100d=$(dkms_20d)$(dkms_20d)$(dkms_20d)$(dkms_20d)$(dkms_20d) +dkms_100c=$(shell echo '$(dkms_100d)' | sed -e 's/\./_/g') +#dkms_dir=$(shell echo '$(CURDIR)/$(dkms_100c)' | \ +# sed -e 's/\($(dkms_100d)\).*/\1/' -e 's/^\(.*\)....$$/\1dkms/') +define dkms_dir_prefix = +$(strip $(shell echo '$(1)/$(dkms_100c)' | \ + sed -e 's/\($(dkms_100d)\).*/\1/' -e 's/^\(.*\)....$$/\1dkms/')) +endef +dkms_dir=$(call dkms_dir_prefix,$(CURDIR)) + +define build_dkms = + $(SHELL) debian/scripts/dkms-build $(dkms_dir) $(1) --lrm $(2) $(3) $(4) $(5) $(6) +endef + +ifeq ($(arch),ppc64el) +instfile=vmlinux +else +instfile=vmlinuz +endif + +define install_control = + for which in $(5); \ + do \ + template="debian/templates/$(3).$$which.in"; \ + script="debian/$(1).$$which"; \ + sed -e 's/@abiname@/$(src_abi)/g' \ + -e 's/@localversion@/-$(2)/g' \ + -e 's/@image-stem@/$(instfile)/g' \ + -e 's/@nvidia-ver@/$(4)/g' \ + <"$$template" >"$$script"; \ + done +endef + +signatures=$(wildcard /usr/lib/linux/$(src_abi)-*) + +prepare-dkms: + mkdir -p $(dkms_dir) + ln -s /usr/src $(dkms_dir)/headers + +override_dh_prep: debian/scripts/fix-filenames + dh_prep + +override_dh_auto_install: prepare-dkms nvidia-$(arch) + dh_install + +override_dh_gencontrol: + dh_gencontrol -- $(gencontrol_flags) + +gencontrol_flags := + diff --git a/debian/scripts/gen-rules b/debian/scripts/gen-rules new file mode 100755 index 0000000..1a3fe02 --- /dev/null +++ b/debian/scripts/gen-rules @@ -0,0 +1,85 @@ +#!/bin/bash + +cat "debian/rules.in" >"debian/rules.gen" +: >"debian/control.d/meta-nvidia" +: >"debian/control.d/nvidia" + +while read command flavour archs +do + case "$command" in + build) ;; + *) continue ;; + esac + + targets=$(echo "$archs" | sed -e 's/\</nvidia-/g') + + while read package version + do + case "$package" in + nvidia-graphics-drivers-*) ;; + *) continue ;; + esac + + suffix_minus=$(echo "$package" | sed -e 's/nvidia-graphics-drivers-//') + suffix_under=$(echo "$suffix_minus" | sed -e 's/-/_/g') + suffix_short=$(echo "$suffix_minus" | sed -e 's/-server/srv/g') + + # debian/rules.gen + { + echo "" + #echo "# $package $version $suffix_minus $suffix_under" + echo "dkms_nvidia_${suffix_under}_version=\$(shell gawk '/^${package} / { print \$\$2; }' debian/dkms-versions)" + echo "nvidia_${suffix_under}_upstream_version=\$(shell echo \"\$(dkms_nvidia_${suffix_under}_version)\" | cut -d '-' -f 1)" + echo "gencontrol_flags += -Vdkms:nvidia-${suffix_minus}-modules=\"nvidia-dkms-${suffix_minus} (= \$(dkms_nvidia_${suffix_under}_version))\"" + echo "gencontrol_flags += -Vnvk:nvidia-${suffix_minus}=\"nvidia-kernel-common-${suffix_minus} (<= \$(nvidia_${suffix_under}_upstream_version)-1), nvidia-kernel-common-${suffix_minus} (>= \$(nvidia_${suffix_under}_upstream_version))\"" + echo "test::" + echo " @echo $package $version $suffix_minus $suffix_under $suffix_short $targets" + echo "$targets::" + echo " rm -rf \$(dkms_dir)/build \$(dkms_dir)/source" + echo " mkdir -p \$(dkms_dir)/build \$(dkms_dir)/source" + echo " install -d debian/linux-modules-nvidia-${suffix_minus}-\$(src_abi)-${flavour}" + echo " install -d debian/linux-modules-nvidia-${suffix_minus}-\$(src_abi)-${flavour}/usr/lib/linux/triggers" + echo " \$(call build_dkms, \$(src_abi)-${flavour}, linux-modules-nvidia-${suffix_minus}-\$(src_abi)-${flavour}, \$(CURDIR)/debian/linux-modules-nvidia-${suffix_minus}-\$(src_abi)-${flavour}/lib/modules/\$(src_abi)-${flavour}/kernel, \"\", nvidia-${suffix_short}, pool/restricted/n/nvidia-graphics-drivers-${suffix_minus}/nvidia-kernel-source-${suffix_minus}_\$(dkms_nvidia_${suffix_under}_version)_\$(arch).deb pool/restricted/n/nvidia-graphics-drivers-${suffix_minus}/nvidia-dkms-${suffix_minus}_\$(dkms_nvidia_${suffix_under}_version)_\$(arch).deb)" + echo " \$(call install_control,linux-modules-nvidia-${suffix_minus}-\$(src_abi)-${flavour},${flavour},nvidia,${suffix_short},postinst postrm prerm config templates)" + } >>"debian/rules.gen" + + # debian/control.d/meta-nvidia + cat - >>"debian/control.d/meta-nvidia" <<EOL +Package: linux-modules-nvidia-${suffix_minus}-${flavour}\${variant:suffix} +Build-Profiles: <!stage1> +Architecture: ${archs} +Section: kernel +Provides: \${dkms:nvidia-${suffix_minus}-modules}, nvidia-prebuilt-kernel +Depends: + \${misc:Depends}, + linux-modules-nvidia-${suffix_minus}-@ABI@-${flavour} (= \${binary:Version}), + \${nvk:nvidia-${suffix_minus}} +Description: Extra drivers for nvidia-${suffix_minus} for the ${flavour}\${variant:suffix} flavour + Install extra signed nvidia-${suffix_minus} modules compatible with the ${flavour}\${variant:suffix} flavour. + +EOL + + # debian/control.d/nvidia + cat - >>"debian/control.d/nvidia" <<EOL +Package: linux-modules-nvidia-${suffix_minus}-@ABI@-${flavour} +Build-Profiles: <!stage1> +Architecture: ${archs} +Section: kernel +Priority: optional +Built-Using: \${linux:BuiltUsing} +Depends: + \${misc:Depends}, + \${shlibs:Depends}, + binutils, + linux-image-@ABI@-${flavour} | linux-image-unsigned-@ABI@-${flavour}, +Description: Linux kernel nvidia modules for version @ABI@ + This package contains the Linux kernel nvidia modules for version @ABI@. + . + You likely do not want to install this package directly. Instead, install the + one of the linux-modules-nvidia-${suffix_minus}-${flavour}* meta-packages, + which will ensure that upgrades work correctly, and that supporting packages are + also installed. + +EOL + done <"debian/dkms-versions" +done <"debian/package.config" diff --git a/debian/source/options b/debian/source/options index 8e1f8cf..693e1f7 100644 --- a/debian/source/options +++ b/debian/source/options @@ -1,3 +1,6 @@ # force "dpkg-source -I -i" behavior diff-ignore tar-ignore +tar-ignore debian/control.d +tar-ignore debian/rules.gen +tar-ignore debian/control.gen -- 2.29.2 -- kernel-team mailing list [hidden email] https://lists.ubuntu.com/mailman/listinfo/kernel-team |
In reply to this post by Andy Whitcroft-3
Signed-off-by: Andy Whitcroft <[hidden email]>
--- debian/control.d/migrate-nvidia-435 | 13 ------ debian/control.d/migrate-nvidia-440 | 13 ------ debian/control.d/transitionals-oem-20.04 | 13 ------ debian/dkms-versions | 5 +-- debian/package.config | 2 + debian/scripts/gen-rules | 55 +++++++++++++++++++++++- 6 files changed, 58 insertions(+), 43 deletions(-) delete mode 100644 debian/control.d/migrate-nvidia-435 delete mode 100644 debian/control.d/migrate-nvidia-440 delete mode 100644 debian/control.d/transitionals-oem-20.04 diff --git a/debian/control.d/migrate-nvidia-435 b/debian/control.d/migrate-nvidia-435 deleted file mode 100644 index 35c343d..0000000 --- a/debian/control.d/migrate-nvidia-435 +++ /dev/null @@ -1,13 +0,0 @@ -Package: linux-modules-nvidia-435-generic${variant:suffix} -Architecture: amd64 -Section: oldlibs -Depends: linux-modules-nvidia-455-generic${variant:suffix} -Description: Extra drivers for nvidia-435 for the generic flavour (dummy transitional package) - Transitional package for upgrades of -435 to -455. - -Package: linux-modules-nvidia-435-lowlatency${variant:suffix} -Architecture: amd64 -Section: oldlibs -Depends: linux-modules-nvidia-455-lowlatency${variant:suffix} -Description: Extra drivers for nvidia-435 for the generic flavour (dummy transitional package) - Transitional package for upgrades of -435 to -455. diff --git a/debian/control.d/migrate-nvidia-440 b/debian/control.d/migrate-nvidia-440 deleted file mode 100644 index 29f3423..0000000 --- a/debian/control.d/migrate-nvidia-440 +++ /dev/null @@ -1,13 +0,0 @@ -Package: linux-modules-nvidia-440-generic${variant:suffix} -Architecture: amd64 -Section: oldlibs -Depends: linux-modules-nvidia-450-generic${variant:suffix} -Description: Extra drivers for nvidia-440 for the generic flavour (dummy transitional package) - Transitional package for upgrades of -440 to -450. - -Package: linux-modules-nvidia-440-lowlatency${variant:suffix} -Architecture: amd64 -Section: oldlibs -Depends: linux-modules-nvidia-450-lowlatency${variant:suffix} -Description: Extra drivers for nvidia-440 for the generic flavour (dummy transitional package) - Transitional package for upgrades of -440 to -450. diff --git a/debian/control.d/transitionals-oem-20.04 b/debian/control.d/transitionals-oem-20.04 deleted file mode 100644 index 4643b4f..0000000 --- a/debian/control.d/transitionals-oem-20.04 +++ /dev/null @@ -1,13 +0,0 @@ -Package: linux-modules-nvidia-440-oem-20.04 -Architecture: amd64 -Section: oldlibs -Depends: linux-modules-nvidia-450-generic -Description: Extra drivers for nvidia-440 for the generic flavour (dummy transitional package) - Transitional package for upgrades from 20.04 to 20.10. - -Package: linux-modules-nvidia-450-oem-20.04 -Architecture: amd64 -Section: oldlibs -Depends: linux-modules-nvidia-450-generic -Description: Extra drivers for nvidia-450 for the generic flavour (dummy transitional package) - Transitional package for upgrades from 20.04 to 20.10. diff --git a/debian/dkms-versions b/debian/dkms-versions index a8f8e9b..b119726 100644 --- a/debian/dkms-versions +++ b/debian/dkms-versions @@ -1,8 +1,7 @@ zfs-linux 0.8.4-1ubuntu11 nvidia-graphics-drivers-390 390.138-0ubuntu2 -nvidia-graphics-drivers-435 435.21-0ubuntu8 -nvidia-graphics-drivers-450 450.80.02-0ubuntu1 -nvidia-graphics-drivers-455 455.38-0ubuntu0.20.10.1 +nvidia-graphics-drivers-450 450.80.02-0ubuntu1 transition=nvidia-graphics-drivers-440 +nvidia-graphics-drivers-455 455.38-0ubuntu0.20.10.1 transition=nvidia-graphics-drivers-435 nvidia-graphics-drivers-418-server 418.152.00-0ubuntu2 nvidia-graphics-drivers-440-server 440.95.01-0ubuntu2 nvidia-graphics-drivers-450-server 450.80.02-0ubuntu3 diff --git a/debian/package.config b/debian/package.config index 2b69799..86c0e19 100644 --- a/debian/package.config +++ b/debian/package.config @@ -1,2 +1,4 @@ build generic amd64 build lowlatency amd64 +transitional 440-oem-20.04 450-generic amd64 +transitional 450-oem-20.04 450-generic amd64 diff --git a/debian/scripts/gen-rules b/debian/scripts/gen-rules index 1a3fe02..2b7a177 100755 --- a/debian/scripts/gen-rules +++ b/debian/scripts/gen-rules @@ -1,8 +1,11 @@ #!/bin/bash +mkdir -p "debian/control.d" cat "debian/rules.in" >"debian/rules.gen" : >"debian/control.d/meta-nvidia" : >"debian/control.d/nvidia" +: >"debian/control.d/migrate-nvidia" +: >"debian/control.d/transitionals-local" while read command flavour archs do @@ -13,7 +16,12 @@ do targets=$(echo "$archs" | sed -e 's/\</nvidia-/g') - while read package version + cat - >>"debian/control.gen" <<EOL + linux-headers-@ABI@-${flavour} [${archs}] (>= @VERSION@), + linux-buildinfo-@ABI@-${flavour} [${archs}] (>= @VERSION@), +EOL + + while read package version extra do case "$package" in nvidia-graphics-drivers-*) ;; @@ -24,6 +32,8 @@ do suffix_under=$(echo "$suffix_minus" | sed -e 's/-/_/g') suffix_short=$(echo "$suffix_minus" | sed -e 's/-server/srv/g') + echo "II: build $package for $flavour $archs" + # debian/rules.gen { echo "" @@ -81,5 +91,48 @@ Description: Linux kernel nvidia modules for version @ABI@ also installed. EOL + # debian/control.d/migrate-nvidia + for cmd in $extra + do + case "$cmd" in + transition=*) + from="${cmd#transition=}" + from_minus=$(echo "$from" | sed -e 's/nvidia-graphics-drivers-//') + echo "II: general transition $from -> $package ($from_minus -> $suffix_minus)" + cat - >>"debian/control.d/migrate-nvidia" <<EOL +Package: linux-modules-nvidia-${from_minus}-${flavour}\${variant:suffix} +Architecture: ${archs} +Section: oldlibs +Depends: linux-modules-nvidia-${suffix_minus}-${flavour}\${variant:suffix} +Description: Extra drivers for nvidia-${from_minus} for the ${flavour} flavour (dummy transitional package) + Transitional package for upgrades of -${from_minus} to -${suffix_minus}. + +EOL + ;; + esac + #suffix_minus=$(echo "$package" | sed -e 's/nvidia-graphics-drivers-//') + #suffix_under=$(echo "$suffix_minus" | sed -e 's/-/_/g') + #suffix_short=$(echo "$suffix_minus" | sed -e 's/-server/srv/g') + done done <"debian/dkms-versions" done <"debian/package.config" + +while read command from to archs +do + case "$command" in + transitional) ;; + *) continue ;; + esac + + # debian/control.d/transitionals-local + echo "II: manual transition linux-modules-nvidia-$from -> linux-modules-nvidia-$to" + cat - >>"debian/control.d/transitionals-local" <<EOL +Package: linux-modules-nvidia-${from} +Architecture: ${archs} +Section: oldlibs +Depends: linux-modules-nvidia-${to} +Description: Extra drivers for nvidia-${from} (dummy transitional package) + Transitional package for upgrades of ${from} to ${to}. + +EOL +done <"debian/package.config" -- 2.29.2 -- kernel-team mailing list [hidden email] https://lists.ubuntu.com/mailman/listinfo/kernel-team |
In reply to this post by Andy Whitcroft-3
Signed-off-by: Andy Whitcroft <[hidden email]>
--- debian/control.common | 5 +---- debian/scripts/gen-rules | 5 +++-- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/debian/control.common b/debian/control.common index f877453..024f702 100644 --- a/debian/control.common +++ b/debian/control.common @@ -11,9 +11,6 @@ Build-Depends: dkms, curl, gawk, - linux-headers-@ABI@-generic (>= @VERSION@), - linux-headers-@ABI@-lowlatency (>= @VERSION@), - linux-buildinfo-@ABI@-generic (>= @VERSION@), - linux-buildinfo-@ABI@-lowlatency (>= @VERSION@), + @BUILD-INTERLOCK@ Standards-Version: 3.9.4 Vcs-Git: git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux-restricted-modules/+git/@SERIES@ diff --git a/debian/scripts/gen-rules b/debian/scripts/gen-rules index 2b7a177..f52697d 100755 --- a/debian/scripts/gen-rules +++ b/debian/scripts/gen-rules @@ -2,6 +2,7 @@ mkdir -p "debian/control.d" cat "debian/rules.in" >"debian/rules.gen" +: >"debian/control.gen" : >"debian/control.d/meta-nvidia" : >"debian/control.d/nvidia" : >"debian/control.d/migrate-nvidia" @@ -17,8 +18,8 @@ do targets=$(echo "$archs" | sed -e 's/\</nvidia-/g') cat - >>"debian/control.gen" <<EOL - linux-headers-@ABI@-${flavour} [${archs}] (>= @VERSION@), - linux-buildinfo-@ABI@-${flavour} [${archs}] (>= @VERSION@), + linux-headers-@ABI@-${flavour} (>= @VERSION@) [${archs}], + linux-buildinfo-@ABI@-${flavour} (>= @VERSION@) [${archs}], EOL while read package version extra -- 2.29.2 -- kernel-team mailing list [hidden email] https://lists.ubuntu.com/mailman/listinfo/kernel-team |
In reply to this post by Andy Whitcroft-3
Signed-off-by: Andy Whitcroft <[hidden email]>
--- debian/control.common | 1 + 1 file changed, 1 insertion(+) diff --git a/debian/control.common b/debian/control.common index 024f702..fa5b96d 100644 --- a/debian/control.common +++ b/debian/control.common @@ -4,6 +4,7 @@ Priority: optional Maintainer: Canonical Kernel Team <[hidden email]> Build-Depends: debhelper (>= 9), +Build-Depends-Arch: lsb-release, python3, python3-apt, -- 2.29.2 -- kernel-team mailing list [hidden email] https://lists.ubuntu.com/mailman/listinfo/kernel-team |
In reply to this post by Andy Whitcroft-3
Signed-off-by: Andy Whitcroft <[hidden email]>
--- debian/scripts/gen-rules | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/debian/scripts/gen-rules b/debian/scripts/gen-rules index f52697d..4ea032c 100755 --- a/debian/scripts/gen-rules +++ b/debian/scripts/gen-rules @@ -29,6 +29,10 @@ EOL *) continue ;; esac + case " $extra " in + *\ signonly\ *) continue ;; + esac + suffix_minus=$(echo "$package" | sed -e 's/nvidia-graphics-drivers-//') suffix_under=$(echo "$suffix_minus" | sed -e 's/-/_/g') suffix_short=$(echo "$suffix_minus" | sed -e 's/-server/srv/g') -- 2.29.2 -- kernel-team mailing list [hidden email] https://lists.ubuntu.com/mailman/listinfo/kernel-team |
In reply to this post by Andy Whitcroft-3
Make version handling compatible with hirsute backport-forward
versioning. Signed-off-by: Andy Whitcroft <[hidden email]> --- debian/rules.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/rules.in b/debian/rules.in index 31b7aeb..16033cb 100755 --- a/debian/rules.in +++ b/debian/rules.in @@ -9,7 +9,7 @@ arch = $(shell dpkg-architecture -qDEB_HOST_ARCH) src_package := $(shell LC_ALL=C dpkg-parsechangelog -SSource) src_fullversion = $(shell LC_ALL=C dpkg-parsechangelog -SVersion) src_abi = $(shell echo "$(src_fullversion)" | sed -ne 's/\([0-9]*\.[0-9]*\.[0-9]*\-[0-9]*\)\..*/\1/p') -src_version = $(shell echo $(src_fullversion) | sed -e 's/+[0-9][0-9]*//') +src_version = $(shell echo $(src_fullversion) | sed -e 's/+[0-9][0-9]*$$//') src_series = $(shell dpkg-parsechangelog -SDistribution | sed -e 's/-\(security\|updates\|proposed\)$$//') src_kernel = $(shell echo "$(src_package)" | sed -e 's/restricted-modules-//') -- 2.29.2 -- kernel-team mailing list [hidden email] https://lists.ubuntu.com/mailman/listinfo/kernel-team |
In reply to this post by Andy Whitcroft-3
Signed-off-by: Andy Whitcroft <[hidden email]>
--- debian/scripts/gen-rules | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/debian/scripts/gen-rules b/debian/scripts/gen-rules index 4ea032c..710771a 100755 --- a/debian/scripts/gen-rules +++ b/debian/scripts/gen-rules @@ -8,6 +8,21 @@ cat "debian/rules.in" >"debian/rules.gen" : >"debian/control.d/migrate-nvidia" : >"debian/control.d/transitionals-local" +nvidia_desktop= +nvidia_server= +while read command arg +do + case "$command" in + option) ;; + *) continue ;; + esac + + case "$arg" in + desktop) nvidia_desktop=y ;; + server) nvidia_server=y ;; + esac +done <"debian/package.config" + while read command flavour archs do case "$command" in @@ -25,7 +40,12 @@ EOL while read package version extra do case "$package" in - nvidia-graphics-drivers-*) ;; + nvidia-graphics-drivers-*-server) + [ -z "$nvidia_server" ] && continue + ;; + nvidia-graphics-drivers-*) + [ -z "$nvidia_desktop" ] && continue + ;; *) continue ;; esac -- 2.29.2 -- kernel-team mailing list [hidden email] https://lists.ubuntu.com/mailman/listinfo/kernel-team |
In reply to this post by Andy Whitcroft-3
Signed-off-by: Andy Whitcroft <[hidden email]>
--- debian/scripts/gen-rules | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/debian/scripts/gen-rules b/debian/scripts/gen-rules index 710771a..fb8717e 100755 --- a/debian/scripts/gen-rules +++ b/debian/scripts/gen-rules @@ -8,6 +8,11 @@ cat "debian/rules.in" >"debian/rules.gen" : >"debian/control.d/migrate-nvidia" : >"debian/control.d/transitionals-local" +dkms_build_new=$(grep -c 'shift 7' debian/scripts/dkms-build) +if [ "$dkms_build_new" -eq 0 ]; then + sed -i -e '/debian\/scripts\/dkms-build/s/ $(4)//' debian/rules.gen +fi + nvidia_desktop= nvidia_server= while read command arg -- 2.29.2 -- kernel-team mailing list [hidden email] https://lists.ubuntu.com/mailman/listinfo/kernel-team |
In reply to this post by Andy Whitcroft-3
Signed-off-by: Andy Whitcroft <[hidden email]>
--- debian/scripts/gen-rules | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/debian/scripts/gen-rules b/debian/scripts/gen-rules index fb8717e..19830c0 100755 --- a/debian/scripts/gen-rules +++ b/debian/scripts/gen-rules @@ -15,10 +15,12 @@ fi nvidia_desktop= nvidia_server= +nvidia_ignore= while read command arg do case "$command" in option) ;; + suppress) nvidia_ignore="$nvidia_ignore $arg"; continue ;; *) continue ;; esac @@ -53,6 +55,9 @@ EOL ;; *) continue ;; esac + case " $nvidia_ignore " in + *\ $package\ *) continue ;; + esac case " $extra " in *\ signonly\ *) continue ;; -- 2.29.2 -- kernel-team mailing list [hidden email] https://lists.ubuntu.com/mailman/listinfo/kernel-team |
In reply to this post by Andy Whitcroft-3
Below is the diff between debian/control before and after conversion for all
lrm packages xenial -> groovy. Most of this is shifting where older transitionals point, moving them to the final version directly in all cases. There is also some simpification of the Build-Depends. -apw --- OUT/groovy--linux/A.s 2021-01-22 16:17:05.414669045 +0000 +++ OUT/groovy--linux/C.s 2021-01-22 16:17:05.430669312 +0000 @@ -4,17 +4,18 @@ Maintainer: Canonical Kernel Team <[hidden email]> Build-Depends: debhelper (>= 9), - lsb-release, - python3, - python3-apt, +Build-Depends-Arch: cpio, - dkms, curl, + dkms, gawk, linux-headers-5.8.0-41-generic (V) [amd64], - linux-headers-5.8.0-41-lowlatency (V) [amd64], linux-buildinfo-5.8.0-41-generic (V) [amd64], + linux-headers-5.8.0-41-lowlatency (V) [amd64], linux-buildinfo-5.8.0-41-lowlatency (V) [amd64], + lsb-release, + python3, + python3-apt, Standards-Version: 3.9.4 Vcs-Git: git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux-restricted-modules/+git/groovy @@ -189,32 +190,32 @@ Package: linux-modules-nvidia-435-generic Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-generic +Depends: linux-modules-nvidia-460-generic Package: linux-modules-nvidia-435-generic-hwe-20.04 Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-generic-hwe-20.04 +Depends: linux-modules-nvidia-460-generic-hwe-20.04 Package: linux-modules-nvidia-435-generic-hwe-20.04-edge Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-generic-hwe-20.04-edge +Depends: linux-modules-nvidia-460-generic-hwe-20.04-edge Package: linux-modules-nvidia-435-lowlatency Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-lowlatency +Depends: linux-modules-nvidia-460-lowlatency Package: linux-modules-nvidia-435-lowlatency-hwe-20.04 Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-lowlatency-hwe-20.04 +Depends: linux-modules-nvidia-460-lowlatency-hwe-20.04 Package: linux-modules-nvidia-435-lowlatency-hwe-20.04-edge Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-lowlatency-hwe-20.04-edge +Depends: linux-modules-nvidia-460-lowlatency-hwe-20.04-edge Package: linux-modules-nvidia-440-generic Architecture: amd64 --- OUT/groovy--linux-aws/A.s 2021-01-22 16:17:05.438669446 +0000 +++ OUT/groovy--linux-aws/C.s 2021-01-22 16:17:05.454669713 +0000 @@ -3,16 +3,17 @@ Priority: optional Maintainer: Canonical Kernel Team <[hidden email]> Build-Depends: - curl <!stage1>, debhelper (>= 9), - lsb-release, - python3, - python3-apt, +Build-Depends-Arch: cpio, + curl, dkms, gawk, linux-headers-5.8.0-1021-aws (V) [amd64], linux-buildinfo-5.8.0-1021-aws (V) [amd64], + lsb-release, + python3, + python3-apt, Standards-Version: 3.9.4 Vcs-Git: git://git.launchpad.net/~canonical-kernel/ubuntu/+source/linux-restricted-modules-aws/+git/groovy @@ -63,7 +64,7 @@ Package: linux-modules-nvidia-435-aws Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-aws +Depends: linux-modules-nvidia-460-aws Package: linux-modules-nvidia-440-aws Architecture: amd64 --- OUT/groovy--linux-azure/A.s 2021-01-22 16:17:05.462669846 +0000 +++ OUT/groovy--linux-azure/C.s 2021-01-22 16:17:05.478670113 +0000 @@ -4,15 +4,16 @@ Maintainer: Canonical Kernel Team <[hidden email]> Build-Depends: debhelper (>= 9), - lsb-release, - python3, - python3-apt, +Build-Depends-Arch: cpio, - dkms, curl, + dkms, gawk, linux-headers-5.8.0-1020-azure (V) [amd64], linux-buildinfo-5.8.0-1020-azure (V) [amd64], + lsb-release, + python3, + python3-apt, Standards-Version: 3.9.4 Vcs-Git: git://git.launchpad.net/~canonical-kernel/ubuntu/+source/linux-restricted-modules-azure/+git/groovy @@ -63,7 +64,7 @@ Package: linux-modules-nvidia-435-azure Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-azure +Depends: linux-modules-nvidia-460-azure Package: linux-modules-nvidia-440-azure Architecture: amd64 --- OUT/groovy--linux-gcp/A.s 2021-01-22 16:17:05.490670314 +0000 +++ OUT/groovy--linux-gcp/C.s 2021-01-22 16:17:05.498670447 +0000 @@ -3,16 +3,17 @@ Priority: optional Maintainer: Canonical Kernel Team <[hidden email]> Build-Depends: - curl <!stage1>, debhelper (>= 9), - lsb-release, - python3, - python3-apt, +Build-Depends-Arch: cpio, + curl, dkms, gawk, linux-headers-5.8.0-1020-gcp (V) [amd64], linux-buildinfo-5.8.0-1020-gcp (V) [amd64], + lsb-release, + python3, + python3-apt, Standards-Version: 3.9.4 Vcs-Git: git://git.launchpad.net/~canonical-kernel/ubuntu/+source/linux-restricted-modules-gcp/+git/groovy @@ -63,7 +64,7 @@ Package: linux-modules-nvidia-435-gcp Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-gcp +Depends: linux-modules-nvidia-460-gcp Package: linux-modules-nvidia-440-gcp Architecture: amd64 --- OUT/groovy--linux-oracle/A.s 2021-01-22 16:17:05.514670715 +0000 +++ OUT/groovy--linux-oracle/C.s 2021-01-22 16:17:05.526670915 +0000 @@ -3,16 +3,17 @@ Priority: optional Maintainer: Canonical Kernel Team <[hidden email]> Build-Depends: - curl <!stage1>, debhelper (>= 9), - lsb-release, - python3, - python3-apt, +Build-Depends-Arch: cpio, + curl, dkms, gawk, linux-headers-5.8.0-1018-oracle (V) [amd64], linux-buildinfo-5.8.0-1018-oracle (V) [amd64], + lsb-release, + python3, + python3-apt, Standards-Version: 3.9.4 Vcs-Git: git://git.launchpad.net/~canonical-kernel/ubuntu/+source/linux-restricted-modules-oracle/+git/groovy @@ -63,7 +64,7 @@ Package: linux-modules-nvidia-435-oracle Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-oracle +Depends: linux-modules-nvidia-460-oracle Package: linux-modules-nvidia-440-oracle Architecture: amd64 --- OUT/focal--linux/A.s 2021-01-22 16:17:05.534671049 +0000 +++ OUT/focal--linux/C.s 2021-01-22 16:17:05.554671383 +0000 @@ -4,17 +4,18 @@ Maintainer: Canonical Kernel Team <[hidden email]> Build-Depends: debhelper (>= 9), - lsb-release, - python3, - python3-apt, +Build-Depends-Arch: cpio, - dkms, curl, + dkms, gawk, linux-headers-5.4.0-65-generic (V) [amd64], - linux-headers-5.4.0-65-lowlatency (V) [amd64], linux-buildinfo-5.4.0-65-generic (V) [amd64], + linux-headers-5.4.0-65-lowlatency (V) [amd64], linux-buildinfo-5.4.0-65-lowlatency (V) [amd64], + lsb-release, + python3, + python3-apt, Standards-Version: 3.9.4 Vcs-Git: git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux-restricted-modules/+git/focal @@ -65,25 +66,21 @@ Package: linux-modules-nvidia-390-oem Architecture: amd64 Section: oldlibs -Priority: optional Depends: linux-modules-nvidia-390-generic Package: linux-modules-nvidia-390-oem-osp1 Architecture: amd64 Section: oldlibs -Priority: optional Depends: linux-modules-nvidia-390-generic Package: linux-modules-nvidia-418-oem Architecture: amd64 Section: oldlibs -Priority: optional Depends: linux-modules-nvidia-440-generic Package: linux-modules-nvidia-418-oem-osp1 Architecture: amd64 Section: oldlibs -Priority: optional Depends: linux-modules-nvidia-440-generic Package: linux-modules-nvidia-418-server-5.4.0-65-generic @@ -133,22 +130,22 @@ Package: linux-modules-nvidia-430-generic Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-440-generic +Depends: linux-modules-nvidia-450-generic Package: linux-modules-nvidia-430-lowlatency Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-440-lowlatency +Depends: linux-modules-nvidia-450-lowlatency Package: linux-modules-nvidia-435-generic Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-generic +Depends: linux-modules-nvidia-460-generic Package: linux-modules-nvidia-435-lowlatency Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-lowlatency +Depends: linux-modules-nvidia-460-lowlatency Package: linux-modules-nvidia-440-generic Architecture: amd64 --- OUT/focal--linux-hwe-5.8/A.s 2021-01-22 16:17:05.562671516 +0000 +++ OUT/focal--linux-hwe-5.8/C.s 2021-01-22 16:17:05.582671850 +0000 @@ -4,17 +4,18 @@ Maintainer: Canonical Kernel Team <[hidden email]> Build-Depends: debhelper (>= 9), - lsb-release, - python3, - python3-apt, +Build-Depends-Arch: cpio, - dkms, curl, + dkms, gawk, linux-headers-5.8.0-41-generic (V) [amd64], - linux-headers-5.8.0-41-lowlatency (V) [amd64], linux-buildinfo-5.8.0-41-generic (V) [amd64], + linux-headers-5.8.0-41-lowlatency (V) [amd64], linux-buildinfo-5.8.0-41-lowlatency (V) [amd64], + lsb-release, + python3, + python3-apt, Standards-Version: 3.9.4 Vcs-Git: git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux-restricted-modules/+git/focal @@ -149,22 +150,22 @@ Package: linux-modules-nvidia-435-generic-hwe-20.04 Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-generic-hwe-20.04 +Depends: linux-modules-nvidia-460-generic-hwe-20.04 Package: linux-modules-nvidia-435-generic-hwe-20.04-edge Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-generic-hwe-20.04-edge +Depends: linux-modules-nvidia-460-generic-hwe-20.04-edge Package: linux-modules-nvidia-435-lowlatency-hwe-20.04 Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-lowlatency-hwe-20.04 +Depends: linux-modules-nvidia-460-lowlatency-hwe-20.04 Package: linux-modules-nvidia-435-lowlatency-hwe-20.04-edge Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-lowlatency-hwe-20.04-edge +Depends: linux-modules-nvidia-460-lowlatency-hwe-20.04-edge Package: linux-modules-nvidia-440-generic-hwe-20.04 Architecture: amd64 --- OUT/focal--linux-oem-5.6/A.s 2021-01-22 16:17:05.590671984 +0000 +++ OUT/focal--linux-oem-5.6/C.s 2021-01-22 16:17:05.606672251 +0000 @@ -4,15 +4,16 @@ Maintainer: Canonical Kernel Team <[hidden email]> Build-Depends: debhelper (>= 9), - lsb-release, - python3, - python3-apt, +Build-Depends-Arch: cpio, + curl, dkms, - wget, gawk, linux-headers-5.6.0-1043-oem (V) [amd64], linux-buildinfo-5.6.0-1043-oem (V) [amd64], + lsb-release, + python3, + python3-apt, Standards-Version: 3.9.4 Vcs-Git: git://git.launchpad.net/~canonical-kernel/ubuntu/+source/linux-restricted-modules-oem/+git/focal -b oem-5.6 --- OUT/focal--linux-oem-5.10/A.s 2021-01-22 16:17:05.618672451 +0000 +++ OUT/focal--linux-oem-5.10/C.s 2021-01-22 16:17:05.630672652 +0000 @@ -4,15 +4,16 @@ Maintainer: Canonical Kernel Team <[hidden email]> Build-Depends: debhelper (>= 9), - lsb-release, - python3, - python3-apt, +Build-Depends-Arch: cpio, - dkms, curl, + dkms, gawk, linux-headers-5.10.0-1009-oem (V) [amd64], linux-buildinfo-5.10.0-1009-oem (V) [amd64], + lsb-release, + python3, + python3-apt, Standards-Version: 3.9.4 Vcs-Git: git://git.launchpad.net/~canonical-kernel/ubuntu/+source/linux-restricted-modules-oem/+git/focal -b oem-5.6 @@ -26,7 +27,7 @@ ${misc:Depends}, ${shlibs:Depends}, binutils, - linux-image-5.10.0-1009-oem | linux-image-unsigned-5.10.0-1009-oem + linux-image-5.10.0-1009-oem | linux-image-unsigned-5.10.0-1009-oem, Package: linux-modules-nvidia-450-oem-20.04b Build-Profiles: <!stage1> --- OUT/focal--linux-aws/A.s 2021-01-22 16:17:05.638672785 +0000 +++ OUT/focal--linux-aws/C.s 2021-01-22 16:17:05.654673053 +0000 @@ -3,16 +3,17 @@ Priority: optional Maintainer: Canonical Kernel Team <[hidden email]> Build-Depends: - curl <!stage1>, debhelper (>= 9), - lsb-release, - python3, - python3-apt, +Build-Depends-Arch: cpio, + curl, dkms, gawk, linux-headers-5.4.0-1037-aws (V) [amd64], linux-buildinfo-5.4.0-1037-aws (V) [amd64], + lsb-release, + python3, + python3-apt, Standards-Version: 3.9.4 Vcs-Git: git://git.launchpad.net/~canonical-kernel/ubuntu/+source/linux-restricted-modules-aws/+git/focal @@ -46,7 +47,7 @@ Package: linux-modules-nvidia-435-aws Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-aws +Depends: linux-modules-nvidia-460-aws Package: linux-modules-nvidia-440-aws Architecture: amd64 --- OUT/focal--linux-azure/A.s 2021-01-22 16:17:05.662673186 +0000 +++ OUT/focal--linux-azure/C.s 2021-01-22 16:17:05.686673587 +0000 @@ -4,15 +4,16 @@ Maintainer: Canonical Kernel Team <[hidden email]> Build-Depends: debhelper (>= 9), - lsb-release, - python3, - python3-apt, +Build-Depends-Arch: cpio, - dkms, curl, + dkms, gawk, linux-headers-5.4.0-1039-azure (V) [amd64], linux-buildinfo-5.4.0-1039-azure (V) [amd64], + lsb-release, + python3, + python3-apt, Standards-Version: 3.9.4 Vcs-Git: git://git.launchpad.net/~canonical-kernel/ubuntu/+source/linux-restricted-modules-azure/+git/focal @@ -27,7 +28,6 @@ ${shlibs:Depends}, binutils, linux-image-5.4.0-1039-azure | linux-image-unsigned-5.4.0-1039-azure, - nvidia-kernel-common-390, Package: linux-modules-nvidia-390-azure Build-Profiles: <!stage1> @@ -47,7 +47,7 @@ Package: linux-modules-nvidia-435-azure Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-azure +Depends: linux-modules-nvidia-460-azure Package: linux-modules-nvidia-440-azure Architecture: amd64 @@ -65,7 +65,6 @@ ${shlibs:Depends}, binutils, linux-image-5.4.0-1039-azure | linux-image-unsigned-5.4.0-1039-azure, - nvidia-kernel-common-450, Package: linux-modules-nvidia-450-azure Build-Profiles: <!stage1> @@ -93,7 +92,6 @@ ${shlibs:Depends}, binutils, linux-image-5.4.0-1039-azure | linux-image-unsigned-5.4.0-1039-azure, - nvidia-kernel-common-460, Package: linux-modules-nvidia-460-azure Build-Profiles: <!stage1> --- OUT/focal--linux-gcp/A.s 2021-01-22 16:17:05.694673721 +0000 +++ OUT/focal--linux-gcp/C.s 2021-01-22 16:17:05.706673921 +0000 @@ -3,16 +3,17 @@ Priority: optional Maintainer: Canonical Kernel Team <[hidden email]> Build-Depends: - curl <!stage1>, debhelper (>= 9), - lsb-release, - python3, - python3-apt, +Build-Depends-Arch: cpio, + curl, dkms, gawk, linux-headers-5.4.0-1036-gcp (V) [amd64], linux-buildinfo-5.4.0-1036-gcp (V) [amd64], + lsb-release, + python3, + python3-apt, Standards-Version: 3.9.4 Vcs-Git: git://git.launchpad.net/~canonical-kernel/ubuntu/+source/linux-restricted-modules-gcp/+git/focal @@ -46,7 +47,7 @@ Package: linux-modules-nvidia-435-gcp Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-gcp +Depends: linux-modules-nvidia-460-gcp Package: linux-modules-nvidia-440-gcp Architecture: amd64 --- OUT/focal--linux-oracle/A.s 2021-01-22 16:17:05.718674122 +0000 +++ OUT/focal--linux-oracle/C.s 2021-01-22 16:17:05.730674322 +0000 @@ -3,16 +3,17 @@ Priority: optional Maintainer: Canonical Kernel Team <[hidden email]> Build-Depends: - curl <!stage1>, debhelper (>= 9), - lsb-release, - python3, - python3-apt, +Build-Depends-Arch: cpio, + curl, dkms, gawk, linux-headers-5.4.0-1037-oracle (V) [amd64], linux-buildinfo-5.4.0-1037-oracle (V) [amd64], + lsb-release, + python3, + python3-apt, Standards-Version: 3.9.4 Vcs-Git: git://git.launchpad.net/~canonical-kernel/ubuntu/+source/linux-restricted-modules-oracle/+git/focal @@ -46,7 +47,7 @@ Package: linux-modules-nvidia-435-oracle Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-oracle +Depends: linux-modules-nvidia-460-oracle Package: linux-modules-nvidia-440-oracle Architecture: amd64 --- OUT/focal--linux-fips/A.s 2021-01-22 16:17:05.746674590 +0000 +++ OUT/focal--linux-fips/C.s 2021-01-22 16:17:05.762674857 +0000 @@ -3,16 +3,17 @@ Priority: optional Maintainer: Canonical Kernel Team <[hidden email]> Build-Depends: - curl <!stage1>, debhelper (>= 9), - lsb-release, - python3, - python3-apt, +Build-Depends-Arch: cpio, + curl, dkms, gawk, linux-headers-5.4.0-1020-fips (V) [amd64], linux-buildinfo-5.4.0-1020-fips (V) [amd64], + lsb-release, + python3, + python3-apt, Standards-Version: 3.9.4 Vcs-Git: git://git.launchpad.net/~fips-cc-stig/+git/focal-linux-restricted-modules-fips @@ -46,7 +47,7 @@ Package: linux-modules-nvidia-435-fips Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-fips +Depends: linux-modules-nvidia-460-fips Package: linux-modules-nvidia-440-fips Architecture: amd64 --- OUT/bionic--linux/A.s 2021-01-22 16:17:05.770674990 +0000 +++ OUT/bionic--linux/C.s 2021-01-22 16:17:05.790675324 +0000 @@ -3,18 +3,19 @@ Priority: optional Maintainer: Canonical Kernel Team <[hidden email]> Build-Depends: - curl <!stage1>, debhelper (>= 9), - lsb-release, - python3, - python3-apt, +Build-Depends-Arch: cpio, + curl, dkms, gawk, linux-headers-4.15.0-135-generic (V) [amd64], - linux-headers-4.15.0-135-lowlatency (V) [amd64], linux-buildinfo-4.15.0-135-generic (V) [amd64], + linux-headers-4.15.0-135-lowlatency (V) [amd64], linux-buildinfo-4.15.0-135-lowlatency (V) [amd64], + lsb-release, + python3, + python3-apt, Standards-Version: 3.9.4 Vcs-Git: git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux-restricted-modules/+git/bionic @@ -109,12 +110,12 @@ Package: linux-modules-nvidia-435-generic Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-generic +Depends: linux-modules-nvidia-460-generic Package: linux-modules-nvidia-435-lowlatency Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-lowlatency +Depends: linux-modules-nvidia-460-lowlatency Package: linux-modules-nvidia-440-generic Architecture: amd64 --- OUT/bionic--linux-hwe-5.4/A.s 2021-01-22 16:17:05.798675458 +0000 +++ OUT/bionic--linux-hwe-5.4/C.s 2021-01-22 16:17:05.818675792 +0000 @@ -4,17 +4,18 @@ Maintainer: Canonical Kernel Team <[hidden email]> Build-Depends: debhelper (>= 9), - lsb-release, - python3, - python3-apt, +Build-Depends-Arch: cpio, - dkms, curl, + dkms, gawk, linux-headers-5.4.0-65-generic (V) [amd64], - linux-headers-5.4.0-65-lowlatency (V) [amd64], linux-buildinfo-5.4.0-65-generic (V) [amd64], + linux-headers-5.4.0-65-lowlatency (V) [amd64], linux-buildinfo-5.4.0-65-lowlatency (V) [amd64], + lsb-release, + python3, + python3-apt, Standards-Version: 3.9.4 Vcs-Git: git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux-restricted-modules/+git/bionic -b hwe-5.4 @@ -167,42 +168,42 @@ Package: linux-modules-nvidia-430-generic-hwe-18.04 Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-440-generic-hwe-18.04 +Depends: linux-modules-nvidia-450-generic-hwe-18.04 Package: linux-modules-nvidia-430-generic-hwe-18.04-edge Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-440-generic-hwe-18.04-edge +Depends: linux-modules-nvidia-450-generic-hwe-18.04-edge Package: linux-modules-nvidia-430-lowlatency-hwe-18.04 Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-440-lowlatency-hwe-18.04 +Depends: linux-modules-nvidia-450-lowlatency-hwe-18.04 Package: linux-modules-nvidia-430-lowlatency-hwe-18.04-edge Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-440-lowlatency-hwe-18.04-edge +Depends: linux-modules-nvidia-450-lowlatency-hwe-18.04-edge Package: linux-modules-nvidia-435-generic-hwe-18.04 Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-generic +Depends: linux-modules-nvidia-460-generic-hwe-18.04 Package: linux-modules-nvidia-435-generic-hwe-18.04-edge Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-generic +Depends: linux-modules-nvidia-460-generic-hwe-18.04-edge Package: linux-modules-nvidia-435-lowlatency-hwe-18.04 Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-lowlatency +Depends: linux-modules-nvidia-460-lowlatency-hwe-18.04 Package: linux-modules-nvidia-435-lowlatency-hwe-18.04-edge Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-lowlatency +Depends: linux-modules-nvidia-460-lowlatency-hwe-18.04-edge Package: linux-modules-nvidia-435-oem Architecture: amd64 @@ -211,25 +212,23 @@ Depends: linux-modules-nvidia-455-generic-hwe-18.04 Package: linux-modules-nvidia-440-generic-hwe-18.04 -Build-Profiles: <!stage1> Architecture: amd64 -Section: kernel +Section: oldlibs Depends: linux-modules-nvidia-450-generic-hwe-18.04 Package: linux-modules-nvidia-440-generic-hwe-18.04-edge -Build-Profiles: <!stage1> Architecture: amd64 -Section: kernel +Section: oldlibs Depends: linux-modules-nvidia-450-generic-hwe-18.04-edge Package: linux-modules-nvidia-440-lowlatency-hwe-18.04 Architecture: amd64 -Section: kernel +Section: oldlibs Depends: linux-modules-nvidia-450-lowlatency-hwe-18.04 Package: linux-modules-nvidia-440-lowlatency-hwe-18.04-edge Architecture: amd64 -Section: kernel +Section: oldlibs Depends: linux-modules-nvidia-450-lowlatency-hwe-18.04-edge Package: linux-modules-nvidia-440-oem --- OUT/bionic--linux-aws/A.s 2021-01-22 16:17:05.826675926 +0000 +++ OUT/bionic--linux-aws/C.s 2021-01-22 16:17:05.838676126 +0000 @@ -3,16 +3,17 @@ Priority: optional Maintainer: Canonical Kernel Team <[hidden email]> Build-Depends: - curl <!stage1>, debhelper (>= 9), - lsb-release, - python3, - python3-apt, +Build-Depends-Arch: cpio, + curl, dkms, gawk, linux-headers-4.15.0-1093-aws (V) [amd64], linux-buildinfo-4.15.0-1093-aws (V) [amd64], + lsb-release, + python3, + python3-apt, Standards-Version: 3.9.4 Vcs-Git: git://git.launchpad.net/~canonical-kernel/ubuntu/+source/linux-restricted-modules-aws/+git/bionic @@ -41,7 +42,7 @@ Package: linux-modules-nvidia-435-aws-lts-18.04 Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-aws-lts-18.04 +Depends: linux-modules-nvidia-460-aws-lts-18.04 Package: linux-modules-nvidia-440-aws-lts-18.04 Architecture: amd64 --- OUT/bionic--linux-aws-5.4/A.s 2021-01-22 16:17:05.850676326 +0000 +++ OUT/bionic--linux-aws-5.4/C.s 2021-01-22 16:17:05.862676527 +0000 @@ -3,16 +3,17 @@ Priority: optional Maintainer: Canonical Kernel Team <[hidden email]> Build-Depends: - curl <!stage1>, debhelper (>= 9), - lsb-release, - python3, - python3-apt, +Build-Depends-Arch: cpio, + curl, dkms, gawk, linux-headers-5.4.0-1037-aws (V) [amd64], linux-buildinfo-5.4.0-1037-aws (V) [amd64], + lsb-release, + python3, + python3-apt, Standards-Version: 3.9.4 Vcs-Git: git://git.launchpad.net/~canonical-kernel/ubuntu/+source/linux-restricted-modules-aws/+git/bionic -b aws-5.4 @@ -61,12 +62,12 @@ Package: linux-modules-nvidia-435-aws Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-aws +Depends: linux-modules-nvidia-460-aws Package: linux-modules-nvidia-435-aws-edge Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-aws-edge +Depends: linux-modules-nvidia-460-aws-edge Package: linux-modules-nvidia-440-aws Architecture: amd64 --- OUT/bionic--linux-azure-4.15/A.s 2021-01-22 16:17:05.870676660 +0000 +++ OUT/bionic--linux-azure-4.15/C.s 2021-01-22 16:17:05.890676994 +0000 @@ -3,17 +3,17 @@ Priority: optional Maintainer: Canonical Kernel Team <[hidden email]> Build-Depends: - curl <!stage1>, debhelper (>= 9), - lsb-release, - python3, - python3-apt, +Build-Depends-Arch: cpio, + curl, dkms, - wget, gawk, linux-headers-4.15.0-1106-azure (V) [amd64], linux-buildinfo-4.15.0-1106-azure (V) [amd64], + lsb-release, + python3, + python3-apt, Standards-Version: 3.9.4 Vcs-Git: git://git.launchpad.net/~canonical-kernel/ubuntu/+source/linux-restricted-modules-azure/+git/bionic -b azure-4.15 @@ -39,15 +39,10 @@ linux-modules-nvidia-390-4.15.0-1106-azure (= ${binary:Version}), ${nvk:nvidia-390} -Package: linux-modules-nvidia-430-azure-lts-18.04 -Architecture: amd64 -Section: oldlibs -Depends: linux-modules-nvidia-440-azure-lts-18.04 - Package: linux-modules-nvidia-435-azure-lts-18.04 Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-azure-lts-18.04 +Depends: linux-modules-nvidia-460-azure-lts-18.04 Package: linux-modules-nvidia-440-azure-lts-18.04 Architecture: amd64 --- OUT/bionic--linux-azure-fips/A.s 2021-01-22 16:17:05.898677128 +0000 +++ OUT/bionic--linux-azure-fips/C.s 2021-01-22 16:17:05.918677462 +0000 @@ -3,16 +3,17 @@ Priority: optional Maintainer: Canonical Kernel Team <[hidden email]> Build-Depends: - curl <!stage1>, debhelper (>= 9), - lsb-release, - python3, - python3-apt, +Build-Depends-Arch: cpio, + curl, dkms, gawk, linux-headers-4.15.0-2018-azure-fips (V) [amd64], linux-buildinfo-4.15.0-2018-azure-fips (V) [amd64], + lsb-release, + python3, + python3-apt, Standards-Version: 3.9.4 Vcs-Git: git://git.launchpad.net/~fips-cc-stig/+git/bionic-linux-restricted-modules-fips -b azure-fips @@ -41,7 +42,7 @@ Package: linux-modules-nvidia-435-azure-fips Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-azure-fips +Depends: linux-modules-nvidia-460-azure-fips Package: linux-modules-nvidia-440-azure-fips Architecture: amd64 --- OUT/bionic--linux-azure-5.4/A.s 2021-01-22 16:17:05.926677595 +0000 +++ OUT/bionic--linux-azure-5.4/C.s 2021-01-22 16:17:05.942677863 +0000 @@ -4,15 +4,16 @@ Maintainer: Canonical Kernel Team <[hidden email]> Build-Depends: debhelper (>= 9), - lsb-release, - python3, - python3-apt, +Build-Depends-Arch: cpio, - dkms, curl, + dkms, gawk, linux-headers-5.4.0-1039-azure (V) [amd64], linux-buildinfo-5.4.0-1039-azure (V) [amd64], + lsb-release, + python3, + python3-apt, Standards-Version: 3.9.4 Vcs-Git: git://git.launchpad.net/~canonical-kernel/ubuntu/+source/linux-restricted-modules-azure/+git/bionic -b azure-5.4 @@ -61,12 +62,12 @@ Package: linux-modules-nvidia-435-azure Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-azure +Depends: linux-modules-nvidia-460-azure Package: linux-modules-nvidia-435-azure-edge Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-azure-edge +Depends: linux-modules-nvidia-460-azure-edge Package: linux-modules-nvidia-440-azure Architecture: amd64 --- OUT/bionic--linux-gcp-5.4/A.s 2021-01-22 16:17:05.954678063 +0000 +++ OUT/bionic--linux-gcp-5.4/C.s 2021-01-22 16:17:05.966678263 +0000 @@ -3,16 +3,17 @@ Priority: optional Maintainer: Canonical Kernel Team <[hidden email]> Build-Depends: - curl <!stage1>, debhelper (>= 9), - lsb-release, - python3, - python3-apt, +Build-Depends-Arch: cpio, + curl, dkms, gawk, linux-headers-5.4.0-1036-gcp (V) [amd64], linux-buildinfo-5.4.0-1036-gcp (V) [amd64], + lsb-release, + python3, + python3-apt, Standards-Version: 3.9.4 Vcs-Git: git://git.launchpad.net/~canonical-kernel/ubuntu/+source/linux-restricted-modules-gcp/+git/bionic -b gcp-5.4 @@ -61,12 +62,12 @@ Package: linux-modules-nvidia-435-gcp Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-gcp +Depends: linux-modules-nvidia-460-gcp Package: linux-modules-nvidia-435-gcp-edge Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-gcp-edge +Depends: linux-modules-nvidia-460-gcp-edge Package: linux-modules-nvidia-440-gcp Architecture: amd64 --- OUT/bionic--linux-oracle/A.s 2021-01-22 16:17:05.974678397 +0000 +++ OUT/bionic--linux-oracle/C.s 2021-01-22 16:17:05.994678731 +0000 @@ -3,16 +3,17 @@ Priority: optional Maintainer: Canonical Kernel Team <[hidden email]> Build-Depends: - curl <!stage1>, debhelper (>= 9), - lsb-release, - python3, - python3-apt, +Build-Depends-Arch: cpio, + curl, dkms, gawk, linux-headers-4.15.0-1064-oracle (V) [amd64], linux-buildinfo-4.15.0-1064-oracle (V) [amd64], + lsb-release, + python3, + python3-apt, Standards-Version: 3.9.4 Vcs-Git: git://git.launchpad.net/~canonical-kernel/ubuntu/+source/linux-restricted-modules-oracle/+git/bionic @@ -41,7 +42,7 @@ Package: linux-modules-nvidia-435-oracle-lts-18.04 Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-oracle-lts-18.04 +Depends: linux-modules-nvidia-460-oracle-lts-18.04 Package: linux-modules-nvidia-440-oracle-lts-18.04 Architecture: amd64 --- OUT/bionic--linux-oracle-5.4/A.s 2021-01-22 16:17:06.002678865 +0000 +++ OUT/bionic--linux-oracle-5.4/C.s 2021-01-22 16:17:06.022679199 +0000 @@ -3,16 +3,17 @@ Priority: optional Maintainer: Canonical Kernel Team <[hidden email]> Build-Depends: - curl <!stage1>, debhelper (>= 9), - lsb-release, - python3, - python3-apt, +Build-Depends-Arch: cpio, + curl, dkms, gawk, linux-headers-5.4.0-1037-oracle (V) [amd64], linux-buildinfo-5.4.0-1037-oracle (V) [amd64], + lsb-release, + python3, + python3-apt, Standards-Version: 3.9.4 Vcs-Git: git://git.launchpad.net/~canonical-kernel/ubuntu/+source/linux-restricted-modules-oracle/+git/bionic -b oracle-5.4 @@ -61,12 +62,12 @@ Package: linux-modules-nvidia-435-oracle Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-oracle +Depends: linux-modules-nvidia-460-oracle Package: linux-modules-nvidia-435-oracle-edge Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-oracle-edge +Depends: linux-modules-nvidia-460-oracle-edge Package: linux-modules-nvidia-440-oracle Architecture: amd64 --- OUT/bionic--linux-fips/A.s 2021-01-22 16:17:06.030679332 +0000 +++ OUT/bionic--linux-fips/C.s 2021-01-22 16:17:06.050679666 +0000 @@ -3,16 +3,17 @@ Priority: optional Maintainer: Canonical Kernel Team <[hidden email]> Build-Depends: - curl <!stage1>, debhelper (>= 9), - lsb-release, - python3, - python3-apt, +Build-Depends-Arch: cpio, + curl, dkms, gawk, linux-headers-4.15.0-1052-fips (V) [amd64], linux-buildinfo-4.15.0-1052-fips (V) [amd64], + lsb-release, + python3, + python3-apt, Standards-Version: 3.9.4 Vcs-Git: git://git.launchpad.net/~fips-cc-stig/+git/bionic-linux-restricted-modules-fips @@ -38,15 +39,10 @@ linux-modules-nvidia-390-4.15.0-1052-fips (= ${binary:Version}), ${nvk:nvidia-390} -Package: linux-modules-nvidia-430-fips -Architecture: amd64 -Section: oldlibs -Depends: linux-modules-nvidia-450-fips - Package: linux-modules-nvidia-435-fips Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-fips +Depends: linux-modules-nvidia-460-fips Package: linux-modules-nvidia-440-fips Architecture: amd64 --- OUT/bionic--linux-aws-fips/A.s 2021-01-22 16:17:06.058679800 +0000 +++ OUT/bionic--linux-aws-fips/C.s 2021-01-22 16:17:06.070680000 +0000 @@ -3,16 +3,17 @@ Priority: optional Maintainer: Canonical Kernel Team <[hidden email]> Build-Depends: - curl <!stage1>, debhelper (>= 9), - lsb-release, - python3, - python3-apt, +Build-Depends-Arch: cpio, + curl, dkms, gawk, linux-headers-4.15.0-2036-aws-fips (V) [amd64], linux-buildinfo-4.15.0-2036-aws-fips (V) [amd64], + lsb-release, + python3, + python3-apt, Standards-Version: 3.9.4 Vcs-Git: git://git.launchpad.net/~fips-cc-stig/+git/bionic-linux-restricted-modules-fips -b aws-fips @@ -41,7 +42,7 @@ Package: linux-modules-nvidia-435-aws-fips Architecture: amd64 Section: oldlibs -Depends: linux-modules-nvidia-455-aws-fips +Depends: linux-modules-nvidia-460-aws-fips Package: linux-modules-nvidia-440-aws-fips Architecture: amd64 -- kernel-team mailing list [hidden email] https://lists.ubuntu.com/mailman/listinfo/kernel-team |
In reply to this post by Andy Whitcroft-3
Note that this singlet-patch is actually the one for focal/linux,
not for groovy/linux. Works fine for focal. I'll ACK this for all the */linux series: Acked-by: Kamal Mostafa <[hidden email]> -Kamal On Fri, Jan 22, 2021 at 04:23:02PM +0000, Andy Whitcroft wrote: > Currently each and every Nvidia version added or removed from > dkms-versions requires a pair of corresponding changes to debian/rules > and debian/rules.d/2-binary-arch.mk. Switch to using the listed versions > in debian/dkms-versions to generate the rules we need during build. > > Signed-off-by: Andy Whitcroft <[hidden email]> > --- > debian/rules | 12 ++++-------- > debian/rules.d/2-binary-arch.mk | 24 ++++++++++++++---------- > 2 files changed, 18 insertions(+), 18 deletions(-) > > diff --git a/debian/rules b/debian/rules > index 8c3c71a298e7..e490836b813d 100755 > --- a/debian/rules > +++ b/debian/rules > @@ -125,17 +125,13 @@ do_any_tools=$(sort $(filter-out false,$(do_linux_tools) $(do_cloud_tools))) > > # Versions of dkms packages. > dkms_zfs_linux_version=$(shell gawk '/^zfs-linux / { print $$2; }' debian/dkms-versions) > -dkms_nvidia_390_version=$(shell gawk '/^nvidia-graphics-drivers-390 / { print $$2; }' debian/dkms-versions) > -dkms_nvidia_435_version=$(shell gawk '/^nvidia-graphics-drivers-435 / { print $$2; }' debian/dkms-versions) > -dkms_nvidia_450_version=$(shell gawk '/^nvidia-graphics-drivers-450 / { print $$2; }' debian/dkms-versions) > -dkms_nvidia_455_version=$(shell gawk '/^nvidia-graphics-drivers-455 / { print $$2; }' debian/dkms-versions) > -dkms_nvidia_460_version=$(shell gawk '/^nvidia-graphics-drivers-460 / { print $$2; }' debian/dkms-versions) > -dkms_nvidia_418_server_version=$(shell gawk '/^nvidia-graphics-drivers-418-server / { print $$2; }' debian/dkms-versions) > -dkms_nvidia_440_server_version=$(shell gawk '/^nvidia-graphics-drivers-440-server / { print $$2; }' debian/dkms-versions) > -dkms_nvidia_450_server_version=$(shell gawk '/^nvidia-graphics-drivers-450-server / { print $$2; }' debian/dkms-versions) > dkms_vbox_guest_version=$(shell gawk '/^virtualbox/ { print $$2; }' debian/dkms-versions) > dkms_wireguard_version=$(shell gawk '/^wireguard-linux-compat / { print $$2; }' debian/dkms-versions) > > +# NVIDIA DKMS package gross series split into desktop and server. > +nvidia_desktop_series=$(shell sed -n -e 's/^nvidia-graphics-drivers-\([0-9][0-9]*\) .*/\1/p' debian/dkms-versions) > +nvidia_server_series=$(shell sed -n -e 's/^nvidia-graphics-drivers-\([0-9][0-9]*-server\) .*/\1/p' debian/dkms-versions) > + > # Debian Build System targets > binary: binary-indep binary-arch > > diff --git a/debian/rules.d/2-binary-arch.mk b/debian/rules.d/2-binary-arch.mk > index 703fd2ade338..593d711a3adb 100644 > --- a/debian/rules.d/2-binary-arch.mk > +++ b/debian/rules.d/2-binary-arch.mk > @@ -63,6 +63,18 @@ define build_dkms = > CROSS_COMPILE=$(CROSS_COMPILE) $(SHELL) $(DROOT)/scripts/dkms-build $(dkms_dir) $(abi_release)-$* '$(call build_dkms_sign,$(builddir)/build-$*)' $(1) $(2) $(3) $(4) $(5) > endef > > +# nvidia_build_payload 450 450 450_450.102.04-0ubuntu0.20.04.1 > +# nvidia_build_payload 450-server 450srv 50.102.04-0ubuntu0.20.04.1 > +define nvidia_build_payload = > + $(call build_dkms, $(bldinfo_pkg_name)-$*, $(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/signatures, "", nvidia-$(2), pool/restricted/n/nvidia-graphics-drivers-$(1)/nvidia-kernel-source-$(1)_$(3)_$(arch).deb pool/restricted/n/nvidia-graphics-drivers-$(1)/nvidia-dkms-$(1)_$(3)_$(arch).deb) > +endef > +# nvidia_build 450 > +# nvidia_build 450-server > +define nvidia_build = > + $(call nvidia_build_payload,$(1),$(shell echo $(1) | sed -e 's/-server/srv/'),$(shell awk '/^nvidia-graphics-drivers-$(1) / {print($$2);}' debian/dkms-versions)) > + > +endef > + > define install_control = > for which in $(3); \ > do \ > @@ -403,18 +415,10 @@ endif > $(if $(filter true,$(do_dkms_wireguard)),$(call build_dkms, $(mods_pkg_name)-$*, $(pkgdir)/lib/modules/$(abi_release)-$*/kernel, "", wireguard, pool/universe/w/wireguard-linux-compat/wireguard-dkms_$(dkms_wireguard_version)_all.deb)) > > ifeq ($(do_dkms_nvidia),true) > - $(call build_dkms, $(bldinfo_pkg_name)-$*, $(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/signatures, "", nvidia-390, pool/restricted/n/nvidia-graphics-drivers-390/nvidia-kernel-source-390_$(dkms_nvidia_390_version)_$(arch).deb pool/restricted/n/nvidia-graphics-drivers-390/nvidia-dkms-390_$(dkms_nvidia_390_version)_$(arch).deb) > - $(call build_dkms, $(bldinfo_pkg_name)-$*, $(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/signatures, "", nvidia-435, pool/restricted/n/nvidia-graphics-drivers-435/nvidia-kernel-source-435_$(dkms_nvidia_435_version)_$(arch).deb pool/restricted/n/nvidia-graphics-drivers-435/nvidia-dkms-435_$(dkms_nvidia_435_version)_$(arch).deb) > - $(call build_dkms, $(bldinfo_pkg_name)-$*, $(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/signatures, "", nvidia-450, pool/restricted/n/nvidia-graphics-drivers-450/nvidia-kernel-source-450_$(dkms_nvidia_450_version)_$(arch).deb pool/restricted/n/nvidia-graphics-drivers-450/nvidia-dkms-450_$(dkms_nvidia_450_version)_$(arch).deb) > - $(call build_dkms, $(bldinfo_pkg_name)-$*, $(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/signatures, "", nvidia-455, pool/restricted/n/nvidia-graphics-drivers-455/nvidia-kernel-source-455_$(dkms_nvidia_455_version)_$(arch).deb pool/restricted/n/nvidia-graphics-drivers-455/nvidia-dkms-455_$(dkms_nvidia_455_version)_$(arch).deb) > - $(call build_dkms, $(bldinfo_pkg_name)-$*, $(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/signatures, "", nvidia-460, pool/restricted/n/nvidia-graphics-drivers-460/nvidia-kernel-source-460_$(dkms_nvidia_460_version)_$(arch).deb pool/restricted/n/nvidia-graphics-drivers-460/nvidia-dkms-460_$(dkms_nvidia_460_version)_$(arch).deb) > + $(foreach series,$(nvidia_desktop_series),$(call nvidia_build,$(series))) > endif > - > ifeq ($(do_dkms_nvidia_server),true) > - $(call build_dkms, $(bldinfo_pkg_name)-$*, $(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/signatures, "", nvidia-418srv, pool/restricted/n/nvidia-graphics-drivers-418-server/nvidia-kernel-source-418-server_$(dkms_nvidia_418_server_version)_$(arch).deb pool/restricted/n/nvidia-graphics-drivers-418-server/nvidia-dkms-418-server_$(dkms_nvidia_418_server_version)_$(arch).deb) > - $(call build_dkms, $(bldinfo_pkg_name)-$*, $(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/signatures, "", nvidia-440srv, pool/restricted/n/nvidia-graphics-drivers-440-server/nvidia-kernel-source-440-server_$(dkms_nvidia_440_server_version)_$(arch).deb pool/restricted/n/nvidia-graphics-drivers-440-server/nvidia-dkms-440-server_$(dkms_nvidia_440_server_version)_$(arch).deb) > - $(call build_dkms, $(bldinfo_pkg_name)-$*, $(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/signatures, "", nvidia-450srv, pool/restricted/n/nvidia-graphics-drivers-450-server/nvidia-kernel-source-450-server_$(dkms_nvidia_450_server_version)_$(arch).deb pool/restricted/n/nvidia-graphics-drivers-450-server/nvidia-dkms-450-server_$(dkms_nvidia_450_server_version)_$(arch).deb) > - > + $(foreach series,$(nvidia_server_series),$(call nvidia_build,$(series))) > endif > > ifeq ($(do_extras_package),true) > -- > 2.29.2 > > > -- > kernel-team mailing list > [hidden email] > https://lists.ubuntu.com/mailman/listinfo/kernel-team -- kernel-team mailing list [hidden email] https://lists.ubuntu.com/mailman/listinfo/kernel-team |
In reply to this post by Andy Whitcroft-3
ACK for all series.
Acked-by: Kamal Mostafa <[hidden email]> -Kamal On Fri, Jan 22, 2021 at 04:23:01PM +0000, Andy Whitcroft wrote: > Changing the version of an Nvidia package is pretty straight forward. We > change the version in debian/dkms-versions in the *:linux (main) packages and > this propogates to each derivative main kernel and from there into the > dependant linux-restricted-modules* (lrm) package. However, when we wish to > add a new 'series' such as 460 or 460-server things are much more complex. > Firstly, we add a new dkms-versions entry for the series. We then add a pair > of new stanzas to to the kernel packaging in the *:linux main packages (not > overly onerous). Finally we must add new stanzas and package definitions to > every single linux-restricted-modules* package individually (very very > onerous). This email details some packaging improvements I am proposing for > the main and lrm packages. > > For the main package we want to build signatures for all nvidia versions > specified. Here I am removing the per-series rules and version lookup and > replacing it with iterative make rules. > > For the lrm packages the intent is that the entire contents of lrm package is > specified by the contents of two configurations; debian/dkms-versions which > comes to lrm via its main package from the appropriate *:linux main package, > and from debian/package.config which carries any per lrm configuration (mostly > the architectures and flavours supported by that lrm package). The lrm rules > and control are generated en-toto from these two configuration files at package > clean time. > > With these in place we are able to add or remove (and transition) a version > via modifications to the dkms-versions file in the *:linux main package. > All other change propogates automatically into the generated rules. > > In order to handle sign-only[1] nvidia builds and to allow control over > creation of appropriate transitional packags when deprecating series the > dkms-versions format is extended for nvidia entries. Taking the current > groovy:linux dkms-versions file as an example: > > zfs-linux 0.8.4-1ubuntu11.1 > nvidia-graphics-drivers-390 390.141-0ubuntu0.20.10.1 > nvidia-graphics-drivers-435 435.21-0ubuntu8 signonly > nvidia-graphics-drivers-450 450.102.04-0ubuntu0.20.10.1 transition=nvidia-graphics-drivers-440 > nvidia-graphics-drivers-455 455.45.01-0ubuntu0.20.10.1 signonly > nvidia-graphics-drivers-460 460.32.03-0ubuntu0.20.10.1 transition=nvidia-graphics-drivers-455 transition=nvidia-graphics-drivers-435 > nvidia-graphics-drivers-418-server 418.181.07-0ubuntu0.20.10.1 > nvidia-graphics-drivers-440-server 440.95.01-0ubuntu2 signonly > nvidia-graphics-drivers-450-server 450.102.04-0ubuntu0.20.10.1 transition=nvidia-graphics-drivers-440-server > > The new directives are added in fields three onwards. Currently two > directives are supported: > > - signonly -- which indicates that the main package should build and extract > a signature from that nvidia series, but that lrm should not build the > package, and > - transition=<series package> -- which indicates that the older series should > generate transitional packages pointing to this nvidia series. > > Additionally each lrm package will be configured via debian/package.config > which contains (generally static) information such as the architectures and > flavours for which we wish to generate packages. For example for > focal:linux-hwe-5.8 we have: > > build generic amd64 > build lowlatency amd64 > option desktop > option server > transitional 440-oem-20.04 450-generic amd64 > transitional 450-oem-20.04 450-generic amd64 > > This indicates we build on amd64 for generic and lowlatency flavours, we build > both desktop (440, 450 etc) and server (450-server etc) series, and finally > indicates that there are some addhoc transitionals needed to handle upgrades > from the oem package. > > Currently three directives are supported: > > - build <flavour> <arch list> -- defines the architectures on which we should > generate packages for this flavour. > - option desktop|server -- defines whether this package generates desktop and > server series respectivly. > - transitional <from> <to> <arch list> -- defines the architectures on which > transitional packages are needed for an adhoc transition. > > The changes for the main packages consist of two patches for each > series; a change to debian/rules* to implement the dynamic rules, and a > patch for debian/dkms-versions which adds the additional annotations. I > include the rules change for the groovy main package as an example, the > dkms-versions is as above (and will have to be regenerated at > application time). > > The changes for the lrm packages are more complex as each lrm package must be > configured indicating the flavours and architecures, and pulling out any local > transitionals. I am including the patch kit[2] as applied to > grooy:linux-restricted-modules package. This conversion has been scripted to > simplify application. I am therefore including this as a sampler for review > and and, but proposed to apply the lrm changes programatically. > > It should be noted that a pleasant outcome from this conversion is that once > converted to this form all of the core LRM content is generated by a single > common rules.gen script which can augmented and be updated via a cranky fix. > > -apw > > [1] signonly nvidia builds are used when transitioning from one series to > another, but we might wish to drop back if testing fails. There we can build a > signature in the old nvidia series, but not package or ship those in lrm. > > [2] > Andy Whitcroft (9): > UBUNTU: [Packaging] generate nvidia version mappings at clean time > UBUNTU: [Packaging] generate nvidia version mappings at clean time -- add transitionals > UBUNTU: [Packaging] generate nvidia version mappings at clean time -- handle Build-Depends > UBUNTU: [Packaging] generate nvidia version mappings at clean time -- use Build-Depends-Arch > UBUNTU: [Packaging] generate nvidia version mappings at clean time -- add signonly > UBUNTU: [Packaging] generate nvidia version mappings at clean time -- handle +21.04.1 > UBUNTU: [Packaging] generate nvidia version mappings at clean time -- add options > UBUNTU: [Packaging] generate nvidia version mappings at clean time -- handle old dkms-build API > UBUNTU: [Packaging] generate nvidia version mappings at clean time -- add suppress support > > debian/control.common | 6 +- > debian/control.d/meta-nvidia | 148 --------------- > debian/control.d/migrate-nvidia-435 | 13 -- > debian/control.d/migrate-nvidia-440 | 13 -- > debian/control.d/nvidia | 227 ----------------------- > debian/control.d/transitionals-oem-20.04 | 13 -- > debian/dkms-versions | 5 +- > debian/package.config | 4 + > debian/rules | 194 +------------------ > debian/rules.in | 139 ++++++++++++++ > debian/scripts/gen-rules | 173 +++++++++++++++++ > debian/source/options | 3 + > 12 files changed, 327 insertions(+), 611 deletions(-) > delete mode 100644 debian/control.d/meta-nvidia > delete mode 100644 debian/control.d/migrate-nvidia-435 > delete mode 100644 debian/control.d/migrate-nvidia-440 > delete mode 100644 debian/control.d/nvidia > delete mode 100644 debian/control.d/transitionals-oem-20.04 > create mode 100644 debian/package.config > create mode 100755 debian/rules.in > create mode 100755 debian/scripts/gen-rules > > -- > kernel-team mailing list > [hidden email] > https://lists.ubuntu.com/mailman/listinfo/kernel-team -- kernel-team mailing list [hidden email] https://lists.ubuntu.com/mailman/listinfo/kernel-team |
In reply to this post by Andy Whitcroft-3
It looks to me. That will help us a lot. Thanks for the work!!!
Acked-by: Marcelo Henrique Cerri <[hidden email]> On Fri, Jan 22, 2021 at 04:23:01PM +0000, Andy Whitcroft wrote: > Changing the version of an Nvidia package is pretty straight forward. We > change the version in debian/dkms-versions in the *:linux (main) packages and > this propogates to each derivative main kernel and from there into the > dependant linux-restricted-modules* (lrm) package. However, when we wish to > add a new 'series' such as 460 or 460-server things are much more complex. > Firstly, we add a new dkms-versions entry for the series. We then add a pair > of new stanzas to to the kernel packaging in the *:linux main packages (not > overly onerous). Finally we must add new stanzas and package definitions to > every single linux-restricted-modules* package individually (very very > onerous). This email details some packaging improvements I am proposing for > the main and lrm packages. > > For the main package we want to build signatures for all nvidia versions > specified. Here I am removing the per-series rules and version lookup and > replacing it with iterative make rules. > > For the lrm packages the intent is that the entire contents of lrm package is > specified by the contents of two configurations; debian/dkms-versions which > comes to lrm via its main package from the appropriate *:linux main package, > and from debian/package.config which carries any per lrm configuration (mostly > the architectures and flavours supported by that lrm package). The lrm rules > and control are generated en-toto from these two configuration files at package > clean time. > > With these in place we are able to add or remove (and transition) a version > via modifications to the dkms-versions file in the *:linux main package. > All other change propogates automatically into the generated rules. > > In order to handle sign-only[1] nvidia builds and to allow control over > creation of appropriate transitional packags when deprecating series the > dkms-versions format is extended for nvidia entries. Taking the current > groovy:linux dkms-versions file as an example: > > zfs-linux 0.8.4-1ubuntu11.1 > nvidia-graphics-drivers-390 390.141-0ubuntu0.20.10.1 > nvidia-graphics-drivers-435 435.21-0ubuntu8 signonly > nvidia-graphics-drivers-450 450.102.04-0ubuntu0.20.10.1 transition=nvidia-graphics-drivers-440 > nvidia-graphics-drivers-455 455.45.01-0ubuntu0.20.10.1 signonly > nvidia-graphics-drivers-460 460.32.03-0ubuntu0.20.10.1 transition=nvidia-graphics-drivers-455 transition=nvidia-graphics-drivers-435 > nvidia-graphics-drivers-418-server 418.181.07-0ubuntu0.20.10.1 > nvidia-graphics-drivers-440-server 440.95.01-0ubuntu2 signonly > nvidia-graphics-drivers-450-server 450.102.04-0ubuntu0.20.10.1 transition=nvidia-graphics-drivers-440-server > > The new directives are added in fields three onwards. Currently two > directives are supported: > > - signonly -- which indicates that the main package should build and extract > a signature from that nvidia series, but that lrm should not build the > package, and > - transition=<series package> -- which indicates that the older series should > generate transitional packages pointing to this nvidia series. > > Additionally each lrm package will be configured via debian/package.config > which contains (generally static) information such as the architectures and > flavours for which we wish to generate packages. For example for > focal:linux-hwe-5.8 we have: > > build generic amd64 > build lowlatency amd64 > option desktop > option server > transitional 440-oem-20.04 450-generic amd64 > transitional 450-oem-20.04 450-generic amd64 > > This indicates we build on amd64 for generic and lowlatency flavours, we build > both desktop (440, 450 etc) and server (450-server etc) series, and finally > indicates that there are some addhoc transitionals needed to handle upgrades > from the oem package. > > Currently three directives are supported: > > - build <flavour> <arch list> -- defines the architectures on which we should > generate packages for this flavour. > - option desktop|server -- defines whether this package generates desktop and > server series respectivly. > - transitional <from> <to> <arch list> -- defines the architectures on which > transitional packages are needed for an adhoc transition. > > The changes for the main packages consist of two patches for each > series; a change to debian/rules* to implement the dynamic rules, and a > patch for debian/dkms-versions which adds the additional annotations. I > include the rules change for the groovy main package as an example, the > dkms-versions is as above (and will have to be regenerated at > application time). > > The changes for the lrm packages are more complex as each lrm package must be > configured indicating the flavours and architecures, and pulling out any local > transitionals. I am including the patch kit[2] as applied to > grooy:linux-restricted-modules package. This conversion has been scripted to > simplify application. I am therefore including this as a sampler for review > and and, but proposed to apply the lrm changes programatically. > > It should be noted that a pleasant outcome from this conversion is that once > converted to this form all of the core LRM content is generated by a single > common rules.gen script which can augmented and be updated via a cranky fix. > > -apw > > [1] signonly nvidia builds are used when transitioning from one series to > another, but we might wish to drop back if testing fails. There we can build a > signature in the old nvidia series, but not package or ship those in lrm. > > [2] > Andy Whitcroft (9): > UBUNTU: [Packaging] generate nvidia version mappings at clean time > UBUNTU: [Packaging] generate nvidia version mappings at clean time -- add transitionals > UBUNTU: [Packaging] generate nvidia version mappings at clean time -- handle Build-Depends > UBUNTU: [Packaging] generate nvidia version mappings at clean time -- use Build-Depends-Arch > UBUNTU: [Packaging] generate nvidia version mappings at clean time -- add signonly > UBUNTU: [Packaging] generate nvidia version mappings at clean time -- handle +21.04.1 > UBUNTU: [Packaging] generate nvidia version mappings at clean time -- add options > UBUNTU: [Packaging] generate nvidia version mappings at clean time -- handle old dkms-build API > UBUNTU: [Packaging] generate nvidia version mappings at clean time -- add suppress support > > debian/control.common | 6 +- > debian/control.d/meta-nvidia | 148 --------------- > debian/control.d/migrate-nvidia-435 | 13 -- > debian/control.d/migrate-nvidia-440 | 13 -- > debian/control.d/nvidia | 227 ----------------------- > debian/control.d/transitionals-oem-20.04 | 13 -- > debian/dkms-versions | 5 +- > debian/package.config | 4 + > debian/rules | 194 +------------------ > debian/rules.in | 139 ++++++++++++++ > debian/scripts/gen-rules | 173 +++++++++++++++++ > debian/source/options | 3 + > 12 files changed, 327 insertions(+), 611 deletions(-) > delete mode 100644 debian/control.d/meta-nvidia > delete mode 100644 debian/control.d/migrate-nvidia-435 > delete mode 100644 debian/control.d/migrate-nvidia-440 > delete mode 100644 debian/control.d/nvidia > delete mode 100644 debian/control.d/transitionals-oem-20.04 > create mode 100644 debian/package.config > create mode 100755 debian/rules.in > create mode 100755 debian/scripts/gen-rules > > -- > kernel-team mailing list > [hidden email] > https://lists.ubuntu.com/mailman/listinfo/kernel-team Regards, Marcelo -- kernel-team mailing list [hidden email] https://lists.ubuntu.com/mailman/listinfo/kernel-team |
In reply to this post by Andy Whitcroft-3
Applied to bionic:linux, focal:linux, groovy:linux, and hirsute:linux.
Note this only applies to the main package changes. We will apply the LRM components separatly. -apw -- kernel-team mailing list [hidden email] https://lists.ubuntu.com/mailman/listinfo/kernel-team |
In reply to this post by Andy Whitcroft-3
Applied to all LRM branches. Note this was progamatically applied to
handle the local delta. It appears as the single patch against the launchpad bug; subject: UBUNTU: [Packaging] convert to v3 autogen form -apw -- kernel-team mailing list [hidden email] https://lists.ubuntu.com/mailman/listinfo/kernel-team |
Free forum by Nabble | Edit this page |