On Tue, 2019-05-07 at 15:47 -0400, Eli Schwartz via aur-general wrote:
On 5/7/19 3:25 PM, Julien Nicoulaud via aur-general wrote:
Hi,
In the oomd package <https://aur.archlinux.org/packages/oomd/>;, I put a linux>=4.20 dependency requirement since it requires the new resource pressure metrics <https://facebookmicrosites.github.io/psi/> introduced in linux 4.20.
But as another user pointed out, some of the alternatives kernel packages declare provides=("linux=${pkgver}"), but several of the most popular do not (linux-lts, linux-dzen, linux-hardened).
Those packages are incorrect as they do not provide /boot/vmlinuz-linux or /lib/modules/${version}-ARCH/, and are specifically designed to be co-installable with the actual core/linux package. Their provides=() will therefore cause errors for users who have installed out-of-tree modules targeting a different kernel package.
linux-libre tries to get around this by also providing LINUX-ABI_VERSION but AFAIK it is the only package to do so.
What we would be correct way to handle this ? Should I just drop the version requirement (since having a kernel>=4.20 does not imply you are running this one anyway) ? Or should these packages be improved ?
Consider java (sorry!) for inspiration here. One can have java-runtime as a dependency if an application can use any version of java, but if you need a specific version of java, depend on e.g. java-runtime=11. This does not guarantee the user will use this version, but it does guarantee that they have it installed and provides pacman hints so that users know why the software does not work on other versions.
This works because there is a standard for all java packages to provides=(java-runtime=$majorver)
This isn't quite the case for kernels though. The kernels in the official repositories don't provide a line like "provides=(kernel=$pkgver)" type of line. Is there a plan to change this to include such a line in the packages? Mark