Hi
Some time ago, we split the modules into it's own package.
One goal stated at that time was the possibility to convert the current cloud
build into a stripped down version of the normal build.
But what we did not talk about was how to actually make it usable.
My initial idea was to copy what we currently have: One image package for
default and another for cloud.
This works, but if we want to introduce UKI as separate package, we now have 4
(2*2) image packages.
This will fix this one problem, but make other things impossible.
One of my secondary goals, not sure how possible they are within Debian, is to
split away rarely used modules, like most other distributions now do as well.
This however now requires another image package to pull this in.
So I propose that we also introduce meta packages for the modules.
This way we can offer the same guarantees then with the headers packages:
- All versioned packages are of the same version
- All meta packages are of the same version (and with it all the versioned
packages for this version)
Users can select which modules package they want: the default one or the cloud
one, just by installing the corresponding meta package.
They can also opt-in into the extra modules by installing this separate meta
package.
All packages are kept in sync by the base dependency.
The package linux-image-cloud-amd64 is kept for correct upgrades.
Bastian
## Proposed package layout
```
Package: linux-image-7.2-amd64
Depends:
linux-binary-7.2-amd64 (= ${Source-Version}),
linux-modules-7.2-amd64 (= ${Source-Version}) | linux-modules-main-7.2-amd64
(= ${Source-Version}),
Package: linux-image-amd64
Depends:
linux-base-amd64 (= ${Source-Version}),
linux-image-7.2-amd64 (= ${Source-Version}),
linux-modules-amd64 (= ${Source-Version}) | linux-modules-main-amd64 (=
${Source-Version}),
Package: linux-image-cloud-amd64
Depends:
linux-base-amd64 (= ${Source-Version}),
linux-image-7.2-amd64 (= ${Source-Version}),
linux-modules-cloud-amd64 (= ${Source-Version})
Package: linux-modules-7.2-amd64
Depends:
linux-base-7.2-amd64 (= ${Source-Version}),
Provides:
linux-modules-main-7.2-amd64 (= ${Source-Version}),
Conflicts:
linux-modules-main-7.2-amd64,
Replaces:
linux-modules-main-7.2-amd64,
Package: linux-modules-cloud-7.2-amd64
Depends:
linux-base-7.2-amd64 (= ${Source-Version}),
Provides:
linux-modules-main-7.2-amd64 (= ${Source-Version}),
Conflicts:
linux-modules-main-7.2-amd64,
Replaces:
linux-modules-main-7.2-amd64,
Package: linux-modules-extra-7.2-amd64
Depends:
linux-base-7.2-amd64 (= ${Source-Version}),
linux-modules-7.2-amd64 (= ${Source-Version}).
Package: linux-modules-amd64
Depends:
linux-base-amd64 (= ${Source-Version}),
linux-modules-6.17-amd64 (= ${Source-Version}),
Provides:
linux-modules-main-amd64 (= ${Source-Version}),
Conflicts:
linux-modules-main-amd64,
Replaces:
linux-modules-main-amd64,
Package: linux-modules-cloud-amd64
Depends:
linux-base-amd64 (= ${Source-Version}),
linux-modules-7.2-cloud-amd64 (= ${Source-Version}),
Provides:
linux-modules-main-amd64 (= ${Source-Version}),
Conflicts:
linux-modules-main-amd64,
Replaces:
linux-modules-main-amd64,
Package: linux-modules-extra-amd64
Depends:
linux-base-amd64 (= ${Source-Version}),
linux-modules-7.2-extra-amd64 (= ${Source-Version}),
```
--
Phasers locked on target, Captain.