[elrepo] Announcement: EL7 Updated kmod-nvidia package for RHEL7.6
Phil Perry
phil at elrepo.org
Tue Nov 20 14:17:34 EST 2018
On 18/11/2018 20:35, Phil Perry wrote:
> <snipped>
>
>> On 2018-11-09 2:07 a.m., Phil Perry wrote:
>>>
>>> We have been looking at technical solutions to this issue for a long
>>> time. I
>>> tried to write a yum plugin to prevent yum offering packages where the
>>> prerequisite kernel requirements could not be met, but unfortunately
>>> my python
>>> skills are not quite up to the job (we would welcome contributions
>>> here from
>>> anyone with python experience).
>>>
>
> OK, I've had some success in writing a yum plugin which I've uploaded to
> the elrepo-testing repository (should be available shortly) for folks to
> test:
>
> yum-plugin-elrepo-7.5.0-1.el7.elrepo.noarch.rpm
>
> Code is available here:
>
> https://github.com/elrepo/packages/tree/master/yum-plugin-elrepo
>
>
> Lets first define the issue we are trying to solve:
>
> At point releases, some kmod packages require rebuilding against the
> latest RHEL kernel. The resulting kmod packages *Require* the new RHEL
> kernel. This can cause dependency errors in yum when clone distros such
> as CentOS and Scientific Linux have yet to catch up and release their
> corresponding point release kernels.
>
> This plugin determines the kernel a kmod package is built against, and
> will exclude (hide) it from yum if the corresponding kernel is not (yet)
> available. Once the corresponding kernel becomes available, so will the
> kmod package(s) that require it.
>
> However, there is one issue here, due to a major difference between the
> way yum works on RHEL and it's clones. On RHEL, *all* previous kernels
> are available to yum. This is not the case by default on CentOS, where
> only kernels from the current point release are available.
>
> Consequently, the plugin as described above would exclude (hide) from
> yum any kmod package built against an earlier kernel (e.g, 7.0) that
> remains compatible as the plugin can not find the required earlier
> kernel version on CentOS (and SL?). This is obviously not the intention.
>
> The solution to this is either:
>
> 1. set up your repos to mimic how RHEL works, i.e, make all kernels
> available to yum, or
>
> 2. for now, I have temporarily excluded all older kmod packages, as
> identified by their dist tag (e.g, el7.elrepo, el7_4.elrepo,
> el7_5.elrepo) as we are really only interested in packages for the new
> point release (currently el7_6.elrepo).
>
> In the future I may deprecate/remove this feature so the plugin will
> only work (correctly) if all kernels are available, but I'd like some
> discussion about how best to handle this. I believe option (1) is more
> robust than any fudge / workaround I can implement and will allow the
> plugin to work seamlessly going forward, including on unsupported setups
> where people have stayed on older point releases. It doesn't matter
> whether we are talking now, transitioning from el7.5 to el7.6, or 6-12
> months from now transitioning from el7.6 to el7.7, or for someone who
> for whatever reason has stayed on el7.4 (or whatever point release). The
> plugin should just work in all scenarios as long as all kernels are
> available to yum (in reality it doesn't even need to be all kernels,
> just the base kernel from each point release).
>
It seems we have a simple solution here. On CentOS systems, users can
replicate RHEL behaviour by enabling the C7 vault repos which contain
all previous packages, either permanently in the CentOS-Vault.repo
config file, or on the command line with:
--enablerepo=C7\*
Given that, I will deprecate and remove my rather crude workaround in
the yum plugin, update the package and release it for those who wish to
use it.
More information about the elrepo
mailing list