Hi All!
I (once again) played a bit around with kernel-modules and a scheme for
packaging those for fedora-extras. A patch for mock to pass the
kernel-version for which the kernel-module-pkg should be build and a
discussion about it and its usage in plague currently happens on
fedora-buildsys-list.
I also did some experiments with binary packages based on the
KernelModuleProposal 2 (
http://www.fedoraproject.org/wiki/Extras/KernelModuleProposal
) and how yum handles those. To make my life easier I hacked up a
test-script that creates a kernel-module testing-repo for yum. Those
interested can find everything needed at
http://www.leemhuis.info/files/fedorarpms/MISC.fdr/km-testing-yum
Warning, use at your own risk. create_testrepo.sh creates a testrepo
with ndiswrapper-rpms build from the two SRPMS (they are nearly
identical with those from the KernelModuleProposal 2 with some slightly
changes to simplify testing) in that dir. You need to install the SRPMS
to your rpmbuild folder manually. You probably also need to adjust some
variables in the script and copy two kernels from updates-testing over.
The problems that showed up during the tests (on a fresh FC4, only
UP-Kernel installed and yum updated to the latest version from
updates-released [no other update]) are described below. Note, this is
not meant as a rant against yum. I really like yum. It just meant as a
"that the state with kernel-module{s,-proposal} and yum ATM -- if we
like it or not". Seth (or anybody else), if you're interested in more
details, debug output or even bug reports filled: just say and I'll do
what I can.
If anybody else has ideas what also could or should be tested send a
mail and I'll add it.
#######################
Adding a repo with
ndiswrapper-1.1-1.i386.rpm
kernel-module-ndiswrapper-1.1-1.2.6.11_1.1369_FC4.i686.rpm
kernel-module-ndiswrapper-1.1-1.2.6.11_1.1369_FC4smp.i686.rpm
in it and typing
# yum --disablerepo=updates-released --enablerepo=step_1 install
'kernel-module-ndiswrapper'
will result in:
[...]
Dependencies Resolved
=============================================================================
Package Arch Version Repository
Size
=============================================================================
Installing:
kernel-module-ndiswrapper i686 1.1-1.2.6.11_1.1369_FC4smp
step_1 3.3 k
Installing for dependencies:
kernel-smp i686 2.6.11-1.1369_FC4 base
13 M
ndiswrapper i386 1.1-1 step_1
22 k
Transaction Summary
=============================================================================
Install 3 Package(s)his
[...]
Seems yum prefers to install the kernel-module for the smp kernel and
therefor also installs that kernel even when a UP-Kernel is installed
already. Not very nice :-(
#######################
Nearly the same problem as above happened when I used
# yum --disablerepo=updates-released --enablerepo=step_1 ndiswrapper
[...]
Dependencies Resolved
=============================================================================
Package Arch Version Repository
Size
=============================================================================
Installing:
ndiswrapper i386 1.1-1 step_1
22 k
Installing for dependencies:
kernel-module-ndiswrapper i686 1.1-1.2.6.11_1.1369_FC4smp
step_1 3.3 k
kernel-smp i686 2.6.11-1.1369_FC4 base
13 M
Transaction Summary
=============================================================================
Install 3 Package(s)
[...]
#######################
Okay, next test; Both UP- and SMP-Kernel are installed now (as it
normally is the case on SMP-Systems). typing
# yum --disablerepo=updates-released --enablerepo=step_1 install
'kernel-module-ndiswrapper'
or
# yum --disablerepo=updates-released --enablerepo=step_1 ndiswrapper
will result in something like this:
[...]
Dependencies Resolved
=============================================================================
Package Arch Version Repository
Size
=============================================================================
Installing:
kernel-module-ndiswrapper i686 1.1-1.2.6.11_1.1369_FC4smp
step_1 3.3 k
Installing for dependencies:
ndiswrapper i386 1.1-1 step_1
22 k
Transaction Summary
=============================================================================
Install 2 Package(s)
[...]
In and ideal world yum would install modules for both up and smp in that
case.
Note: The problems described up until here probably can happen with the
naming schemes currently used by Livna (where uname is in the name of
the package, e.g.
kernel-module-ndiswrapper-2.6.11_1.1369_FC4smp-1.1-1.i686.rpm), too. We
had some of those problems in the past.
#######################
Next test (only with SMP-kernel): New Ndiswrapper-Version. This is in
the repo now:
kernel-module-ndiswrapper-1.1-1.2.6.11_1.1369_FC4.i686.rpm
kernel-module-ndiswrapper-1.1-1.2.6.11_1.1369_FC4smp.i686.rpm
kernel-module-ndiswrapper-1.1-2.2.6.11_1.1369_FC4.i686.rpm
kernel-module-ndiswrapper-1.1-2.2.6.11_1.1369_FC4smp.i686.rpm
ndiswrapper-1.1-1.i386.rpm
ndiswrapper-1.1-2.i386.rpm
Works now! Did not with older yum version. Problem was: kernel-modules
normally are installed, not updated. But in this case the pgk needs to
be updated cause the files in the package would conflict otherwise.
[...]
Dependencies Resolved
=============================================================================
Package Arch Version Repository
Size
=============================================================================
Installing:
kernel-module-ndiswrapper i686 1.1-2.2.6.11_1.1369_FC4smp
step_2 3.3 k
Updating:
ndiswrapper i386 1.1-2 step_2
21 k
Removing:
kernel-module-ndiswrapper i686 1.1-1.2.6.11_1.1369_FC4smp
installed 11
Transaction Summary
=============================================================================
Install 1 Package(s)
Update 1 Package(s)
Remove 1 Package(s)
[...]
#######################
I did two further test it this point (also only with SMP-kernel) and
they worked like they should:
- I added a new kernel (2.6.12-1.1447_FC4) to the repo but the
ndiswrapper-module was not yet in the repo -- yum updated the kernel
- later I added the module
(kernel-module-ndiswrapper-1.1-2.2.6.12_1.1447_FC4smp); yum installed it
#######################
Last Test (for now). I placed another updated kernel and (at the same
time) a update of ndiswrapper itself in the repo:
kernel-2.6.12-1.1447_FC4.i686.rpm
kernel-2.6.12-1.1456_FC4.i686.rpm
kernel-module-ndiswrapper-1.1-1.2.6.11_1.1369_FC4.i686.rpm
kernel-module-ndiswrapper-1.1-1.2.6.11_1.1369_FC4smp.i686.rpm
kernel-module-ndiswrapper-1.1-2.2.6.11_1.1369_FC4.i686.rpm
kernel-module-ndiswrapper-1.1-2.2.6.11_1.1369_FC4smp.i686.rpm
kernel-module-ndiswrapper-1.1-2.2.6.12_1.1447_FC4.i686.rpm
kernel-module-ndiswrapper-1.1-2.2.6.12_1.1447_FC4smp.i686.rpm
kernel-module-ndiswrapper-1.2-1.2.6.12_1.1456_FC4.i686.rpm
kernel-module-ndiswrapper-1.2-1.2.6.12_1.1456_FC4smp.i686.rpm
kernel-smp-2.6.12-1.1447_FC4.i686.rpm
kernel-smp-2.6.12-1.1456_FC4.i686.rpm
ndiswrapper-1.1-1.i386.rpm
ndiswrapper-1.1-2.i386.rpm
ndiswrapper-1.2-1.i386.rpm
Yum installs the new kernel, new ndiswrapper and new
kernel-module-ndiswrapper (as it should). But here we hit a problem with
our proposal. Older kernel-module-versions stay installed, but they
probably won't work with the new ndiswrapper-utils-package (maybe not in
the case of ndiswrapper, but ati-fglrx, nvidia-glx, qemu and other pkg.
likely will have this problem). I thought a Obsoletes in the
kernel-module-ndiswraper.spec like the following might help:
Obsoletes: kernel-module-%{mainpkgname} < %{version}-%{release}
And it did -- a bit:
[...]
Dependencies Resolved
=============================================================================
Package Arch Version Repository
Size
=============================================================================
Installing:
kernel-module-ndiswrapper i686 1.2-1.2.6.12_1.1456_FC4smp
step_5 3.4 k
replacing kernel-module-ndiswrapper.i686
1.1-2.2.6.11_1.1369_FC4smp
kernel-smp i686 2.6.12-1.1456_FC4 step_5
14 M
Updating:
ndiswrapper i386 1.2-1 step_5
21 k
Transaction Summary
=============================================================================
Install 2 Package(s)
Update 1 Package(s)
Remove 0 Package(s)
Is this ok [y/N]: y
Downloading Packages:
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: kernel-smp #########################
[1/4]
Installing: kernel-module-ndiswrapper #########################
[2/4]
Updating : ndiswrapper #########################
[3/4]
Cleanup : ndiswrapper #########################
[4/4]
Installed: kernel-module-ndiswrapper.i686 0:1.2-1.2.6.12_1.1456_FC4smp
kernel-smp.i686 0:2.6.12-1.1456_FC4
Updated: ndiswrapper.i386 0:1.2-1
Replaced: kernel-module-ndiswrapper.i686 0:1.1-2.2.6.11_1.1369_FC4smp
kernel-module-ndiswrapper.i686 0:1.1-2.2.6.12_1.1447_FC4smp
Complete!
But huuuh, why are they still installed? afterwards?
$ rpm -qa 'kernel-module-ndiswrapper*'
kernel-module-ndiswrapper-1.1-2.2.6.11_1.1369_FC4smp
kernel-module-ndiswrapper-1.1-2.2.6.12_1.1447_FC4smp
kernel-module-ndiswrapper-1.2-1.2.6.12_1.1456_FC4smp
$ rpm -Va 'kernel-module-ndiswrapper*' && echo okay
okay
Something seems wrong here. Anybody any idea what?
--
Thorsten Leemhuis <fedora(a)leemhuis.info>