Am Donnerstag, den 29.09.2005, 11:31 -0400 schrieb seth vidal:
> #######################
> 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:
>
> [...]
>
> 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 :-(
how should yum have known which of those two you wanted? what are the
clues it should use to know which of those to install? They're both
named the same thing.
[...]
#######################
> Okay, next test; Both UP- and SMP-Kernel are installed now (as it
> normally is the case on SMP-Systems). typing
> [...]
> In and ideal world yum would install modules for both up and smp in that
> case.
okay but HOW can it know? You've described what you see as problem but
you haven't described any way yum can know about what's you think
_should_ be going on.
But it is a problem and we should (read: need to) solve it imho. How?
I'm not sure. We could
- package modules for all kernels in one package (I don't really like
this idea, but if this is the only solution we need to go it imho)
- fix our proposal so it works better with yum (hint's from you are
greatly appreciated)
- add support for yum somehow so it can resolve the dep correctly. I
unfortunately don't know neither yum nor python enough to fix that
myself :-|
> #######################
> 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.
is this item marked as provided 'kernel-module'?
Yes, both 'kernel-module' and 'kernel-modules'. But while at it: What of
those two is the correct one? I see both in different areas of yum:
$ grep kernel-module $(rpm -ql yum | grep -v -e ChangeLog -e '.pyc$' )
/usr/lib/python2.4/site-packages/yum/config.py:
'kernel-modules',
/usr/lib/python2.4/site-packages/yum/depsolve.py: if
txmbr.po.name.startswith("kernel-module-"):
> 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:
so you think yum should remove other, older kernel modules even though
it doesn't have the info available to know to do that?
If there is something like
Obsoletes: kernel-module-%{mainpkgname} < %{version}-%{release}
then IMHO yes. This (or something similar) afaics is needed when for
example
kernel-module-ndiswrapper-1.1-1.2.6.11_1.1369_FC4.i686.rpm
works with this
ndiswrapper-1.1-2.i386.rpm
userland package. But after a kernel update and a pgk-update this might
be installed:
kernel-module-ndiswrapper-1.1-2.2.6.12_1.1447_FC4.i686.rpm
ndiswrapper-1.2-1.i386.rpm
But ndiswrapper-1.2 might not work with the kernel-module from
ndiswrapper-1.1 (in case you boot 2.6.11_1.1369_FC4 now)
One solution to avoid this would be to rebuild the kernel-module for all
kernels ever released. But yum needs to install all those
kenrel-module-pgk. for all kernels then, too.
> But huuuh, why are they still installed? afterwards?
I'm not sure I understand the case you're describing here.
Look, it works if you use just rpm:
[thl@localhost step_5]$ rpm -qa '*ndiswrapper*'
[thl@localhost step_5]$ sudo rpm -Uvh ndiswrapper-1.1-2.i386.rpm
kernel-module-ndiswrapper-1.1-2.2.6.11_1.1369_FC4smp.i686.rpm
Preparing... ########################################### [100%]
1:kernel-module-ndiswrapp########################################### [ 50%]
WARNING: Module /lib/modules/2.6.11-1.1369_FC4smp/extra/ndiswrapper/ndiswrapper.ko is not
an elf object
2:ndiswrapper ########################################### [100%]
[thl@localhost step_5]$ rpm -qa '*ndiswrapper*'
kernel-module-ndiswrapper-1.1-2.2.6.11_1.1369_FC4smp
ndiswrapper-1.1-2
[thl@localhost step_5]$ sudo rpm -Uvh ndiswrapper-1.2-1.i386.rpm
kernel-module-ndiswrapper-1.2-1.2.6.12_1.1456_FC4smp.i686.rpm
Preparing... ########################################### [100%]
1:kernel-module-ndiswrapp########################################### [ 50%]
2:ndiswrapper ########################################### [100%]
[thl@localhost step_5]$ rpm -qa '*ndiswrapper*'
kernel-module-ndiswrapper-1.2-1.2.6.12_1.1456_FC4smp
ndiswrapper-1.2-1
[thl@localhost step_5]$ rpm -qp --obsoletes
kernel-module-ndiswrapper-1.2-1.2.6.12_1.1456_FC4smp.i686.rpm
kernel-module-ndiswrapper < 1.2-1
[thl@localhost step_5]$
But not in yum (even if it says it removes the old stuff):
[thl@localhost step_5]$ rpm -qa '*ndiswrapper*'
kernel-module-ndiswrapper-1.1-2.2.6.11_1.1369_FC4smp
ndiswrapper-1.1-2
[thl@localhost step_5]$ sudo yum --disablerepo=updates-released --enablerepo=step_5
update
Setting up Update Process
Setting up repositories
step_5 100% |=========================| 951 B 00:00
extras 100% |=========================| 1.1 kB 00:00
base 100% |=========================| 1.0 kB 00:00
Reading repository metadata in from local files
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Package kernel-module-ndiswrapper.i686 0:1.2-1.2.6.12_1.1456_FC4smp set to be
installed
---> Package ndiswrapper.i386 0:1.2-1 set to be updated
--> Running transaction check
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
^^^^^^^^ <-- ???
Updating:
ndiswrapper i386 1.2-1 step_5 21 k
Transaction Summary
=============================================================================
Install 1 Package(s)
Update 1 Package(s)
Remove 0 Package(s)
Total download size: 25 k
Is this ok [y/N]: y
Downloading Packages:
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: kernel-module-ndiswrapper ######################### [1/3]
Updating : ndiswrapper ######################### [2/3]
Cleanup : ndiswrapper ######################### [3/3]
Installed: kernel-module-ndiswrapper.i686 0:1.2-1.2.6.12_1.1456_FC4smp
Updated: ndiswrapper.i386 0:1.2-1
Replaced: kernel-module-ndiswrapper.i686 0:1.1-2.2.6.11_1.1369_FC4smp
^^^^^^^^ <-- ???
Complete!
[thl@localhost step_5]$ rpm -qa '*ndiswrapper*'
kernel-module-ndiswrapper-1.1-2.2.6.11_1.1369_FC4smp
still there ???
kernel-module-ndiswrapper-1.2-1.2.6.12_1.1456_FC4smp
ndiswrapper-1.2-1
[thl@localhost step_5]$
Hope this makes things clearer.
the biggest problem with the kernel-module packaging discussion is
that
all of the solutions y'all have come up with have been excruciatingly
complex. We've discussed them on the yum-devel list and the result is
'ugh, these are painful' both to implement the code for and to develop
the packages themselves. I'm not sure any solution will match up to
everyone's concept of 'correct'.
Sure -- afaics everyone involved in this endless
kernel-module-proposal-discussion for fedora-extras had to accept some
things that he did not (and still does not) like (me, too). But we came
to no end. And I'd like to get this resolved even if I have to accept
more things I don't like -- as long as they work. I'm open for
suggestions.
So
--
Thorsten Leemhuis <fedora(a)leemhuis.info>