Op zaterdag 10 oktober 2015 17:41:15 schreef Tomáš Čech:
On Sat, Oct 10, 2015 at 05:33:40PM +0300, Andrei Borzenkov wrote:
10.10.2015 17:11, Knurpht - Gertjan Lettink пишет:
Op zaterdag 10 oktober 2015 14:41:48 schreef Erwin Van de Velde:
However :-) I would like to see missing packages like the kermel modules preventing Virtualbox from working properly to be treated as a bit more critical and updated sooner.
It's not just Virtualbox. Those of us having NVIDIA Optimus experience the same thing re. bbswitch. On an already running TW this IMHO should result in the system not updating the kernel, since the updates for the installed kmp packages have not been built yet.
Do you have any suggestion how it can be implemented?
I.e. we have packages
kernel-v1 kernel-v2 kernel-kmp-v1 kernel-kmp-v2
What Requires or Conflicts should be added to each package that allow
- installing all packages at the same time on a system - not allowing installing kernel-v2 if kernel-kmp-v2 is missing
Given that kernel package obviously can *not* list every KMP as prerequisites.
I do not see how it can be expressed using package dependency. Nor RPM has any way to gracefully block installation.
I think it could be implemented as trigger that runs before kernel package is installed and basically tests that
for each KMP installed on system
if KMP for new kernel is not available
fail
Small implementation details are a) how to find KMP and b) how to find KMP for new kernel.
I created stupid script which could test it naively: #!/bin/bash
for i in default desktop pv pae xen; do provided_uname="$(zypper info --provides kernel-"$i" | grep kernel-uname-r)" while read pkg; do required_uname="$(zypper info --requires "$pkg" | grep kernel-uname-r)" if [ "$required_uname" != "$provided_uname" ]; then broken="${broken} $pkg" fi done < <(zypper se kmp-"$i" | grep -v debuginfo | sed '1,/^[-+]\+$/d;s@^[^|]*| \([^ ]\+\) .*@\1@') done
echo "$broken"
To have this working I rely on two things: 1] zypper info works with latest version of the package available
2] KMP packages contains 'kmp-$flavour' in its name (I could also search with `zypper se --requires kernel-uname-r' and ommit kernel packages)
If package requires kernel-uname-r symbol, it must match provided one.
Best solution would work directly with repository metadata and could be run in openQA easily.
Cheers. That's the reply I was hoping for. -- Gertjan Lettink, a.k.a. Knurpht Official openSUSE Member openSUSE Forums Team -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org