Mailinglist Archive: opensuse-factory (1324 mails)

< Previous Next >
Re: [opensuse-factory] Virtualbox broken on tumbleweed
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@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-factory+owner@xxxxxxxxxxxx

< Previous Next >