Hi all! I was looking at the current kmod situation a bit again and tested some stuff and it seems I'm to dump to reproduce the "file-conflicts on updates problem" -- a problem that I saw myself some weeks ago once IIRC and that was multiple times brought into the current discussions by Axel. Seems I'm doing something wrong here. Can somebody tell me that that is? I uploaded two srpms for testing to http://www.leemhuis.info/files/fedorarpms/MISC.fdr/kmod/ for people to reproduce the problem locally. That's not a real kmod, but it uses the kmod-scheme and a "kernel module" for testing which is created by > dd if=/dev/urandom bs=1k count=500 > $RPM_BUILD_ROOT/lib/modules/%{kverrel}${kvariant}/extra/%{kmod_name}/foo.ko Look closer yourself below to understand my confusion. Note, all the yum calls are on FC5 with latest updates, but without the kmod plugin: Prepare the test rpms: > [thl@notebook ~]$ rpmbuild -ba rpmbuild/SPECS/foo-kmod-common.spec > [thl@notebook ~]$ rpmbuild -ba rpmbuild/SPECS/foo-kmod.spec --define 'kversion 2.6.17-1.2157_FC5' --define 'kvariants ""' --define 'thisrelease 1' --target i686 > [thl@notebook ~]$ rpmbuild -ba rpmbuild/SPECS/foo-kmod.spec --define 'kversion 2.6.17-1.2174_FC5' --define 'kvariants ""' --define 'thisrelease 1' --target i686 > [thl@notebook ~]$ rpmbuild -ba rpmbuild/SPECS/foo-kmod.spec --define 'kversion 2.6.17-1.2174_FC5' --define 'kvariants ""' --define 'thisrelease 2' --target i686 [...] Put them in a testrepo: > [thl@notebook ~]$ mkdir -p ~/tmp/testrepo > [thl@notebook ~]$ cp rpmbuild/RPMS/noarch/foo-kmod-common-1.1-1.noarch.rpm rpmbuild/RPMS/i686/kmod-foo-1.1-1.2.6.17_1.2157_FC5.i686.rpm ~/tmp/testrepo/ > [thl@notebook ~]$ createrepo ~/tmp/testrepo > 2/2 - kmod-foo-1.1-1.2.6.17_1.2157_FC5.i686.rpm > Saving Primary metadata > Saving file lists metadata > Saving other metadata Install the first one with yum: > [thl@notebook ~]$ sudo yum --enablerepo=testrepo install kmod-foo > Loading "installonlyn" plugin > Setting up Install Process > Setting up repositories [...] > Parsing package install arguments > Resolving Dependencies > --> Populating transaction set with selected packages. Please wait. > ---> Package kmod-foo.i686 0:1.1-1.2.6.17_1.2157_FC5 set to be installed > --> Running transaction check > --> Processing Dependency: foo-kmod-common >= 1.1 for package: kmod-foo > --> Restarting Dependency Resolution with new changes. > --> Populating transaction set with selected packages. Please wait. > ---> Package foo-kmod-common.noarch 0:1.1-1 set to be updated > --> Running transaction check > > Dependencies Resolved > > ============================================================================= > Package Arch Version Repository Size > ============================================================================= > Installing: > kmod-foo i686 1.1-1.2.6.17_1.2157_FC5 testrepo 504 k > Installing for dependencies: > foo-kmod-common noarch 1.1-1 testrepo 2.2 k > > Transaction Summary > ============================================================================= > Install 2 Package(s) > Update 0 Package(s) > Remove 0 Package(s) > Total download size: 506 k > Is this ok [y/N]: y > Downloading Packages: > Running Transaction Test > Finished Transaction Test > Transaction Test Succeeded > Running Transaction > Installing: foo-kmod-common ######################### [1/2] > Installing: kmod-foo ######################### [2/2] > WARNING: Module /lib/modules/2.6.17-1.2157_FC5/extra/foo/foo.ko is not an elf object > > Installed: kmod-foo.i686 0:1.1-1.2.6.17_1.2157_FC5 > Dependency Installed: foo-kmod-common.noarch 0:1.1-1 > Complete! > [thl@notebook ~]$ Copy the second one in the repo and update: > [thl@notebook ~]$ cp rpmbuild/RPMS/i686/kmod-foo-1.1-1.2.6.17_1.2174_FC5.i686.rpm ~/tmp/testrepo/ > [thl@notebook ~]$ createrepo ~/tmp/testrepo/ > 3/3 - kmod-foo-1.1-1.2.6.17_1.2174_FC5.i686.rpm > Saving Primary metadata > Saving file lists metadata > Saving other metadata > [thl@notebook ~]$ sudo rm -rf /var/cache/yum/testrepo/ > [thl@notebook ~]$ sudo yum --enablerepo=testrepo update > Loading "installonlyn" plugin > Setting up Update Process > Setting up repositories > macromedia [1/7] > livna [2/7] > testrepo [3/7] > testrepo 100% |=========================| 951 B 00:00 > updates-testing [4/7] > core [5/7] > updates [6/7] > extras [7/7] > Reading repository metadata in from local files > primary.xml.gz 100% |=========================| 1.0 kB 00:00 > testrepo : ################################################## 3/3 > Added 3 new packages, deleted 0 old in 0.05 seconds > Resolving Dependencies > --> Populating transaction set with selected packages. Please wait. > ---> Downloading header for kmod-foo to pack into transaction set. > kmod-foo-1.1-1.2.6.17_1.2 100% |=========================| 2.4 kB 00:00 > ---> Package kmod-foo.i686 0:1.1-1.2.6.17_1.2174_FC5 set to be installed > --> Running transaction check > > Dependencies Resolved > > ============================================================================= > Package Arch Version Repository Size > ============================================================================= > Installing: > kmod-foo i686 1.1-1.2.6.17_1.2174_FC5 testrepo 504 k > > Transaction Summary > ============================================================================= > Install 1 Package(s) > Update 0 Package(s) > Remove 0 Package(s) > Total download size: 504 k > Is this ok [y/N]: y > Downloading Packages: > Running Transaction Test > Finished Transaction Test > Transaction Test Succeeded > Running Transaction > Installing: kmod-foo ######################### [1/1] > WARNING: Module /lib/modules/2.6.17-1.2174_FC5/extra/foo/foo.ko is not an elf object > > Installed: kmod-foo.i686 0:1.1-1.2.6.17_1.2174_FC5 > Complete! > [thl@notebook ~]$ Works as expected so far. But now: > [thl@notebook ~]$ cp rpmbuild/RPMS/i686/kmod-foo-1.1-2.2.6.17_1.2174_FC5.i686.rpm tmp/testrepo/ > [thl@notebook ~]$ sudo rm -rf /var/cache/yum/testrepo/ > [thl@notebook ~]$ createrepo ~/tmp/testrepo/ > 4/4 - kmod-foo-1.1-2.2.6.17_1.2174_FC5.i686.rpm > Saving Primary metadata > Saving file lists metadata > Saving other metadata > [thl@notebook ~]$ sudo yum --enablerepo=testrepo update > Loading "installonlyn" plugin > Setting up Update Process > Setting up repositories > macromedia [1/7] > livna [2/7] > testrepo [3/7] > testrepo 100% |=========================| 951 B 00:00 > updates-testing [4/7] > core [5/7] > updates [6/7] > extras [7/7] > Reading repository metadata in from local files > primary.xml.gz 100% |=========================| 1.1 kB 00:00 > testrepo : ################################################## 4/4 > Added 4 new packages, deleted 0 old in 0.10 seconds > Resolving Dependencies > --> Populating transaction set with selected packages. Please wait. > ---> Downloading header for kmod-foo to pack into transaction set. > kmod-foo-1.1-2.2.6.17_1.2 100% |=========================| 2.4 kB 00:00 > ---> Package kmod-foo.i686 0:1.1-2.2.6.17_1.2174_FC5 set to be installed > --> Running transaction check > --> Populating transaction set with selected packages. Please wait. > ---> Package kmod-foo.i686 0:1.1-1.2.6.17_1.2157_FC5 set to be erased > --> Running transaction check > > Dependencies Resolved > > ============================================================================= > Package Arch Version Repository Size > ============================================================================= > Installing: > kmod-foo i686 1.1-2.2.6.17_1.2174_FC5 testrepo 504 k > Removing: > kmod-foo i686 1.1-1.2.6.17_1.2157_FC5 installed 500 k > > Transaction Summary > ============================================================================= > Install 1 Package(s) > Update 0 Package(s) > Remove 1 Package(s) > Total download size: 504 k > Is this ok [y/N]: y > Downloading Packages: > Running Transaction Test > Finished Transaction Test > Transaction Test Succeeded > Running Transaction > Removing : kmod-foo ######################### [1/2] > Installing: kmod-foo ######################### [2/2] > WARNING: Module /lib/modules/2.6.17-1.2174_FC5/extra/foo/foo.ko is not an elf object > > Removed: kmod-foo.i686 0:1.1-1.2.6.17_1.2157_FC5 > Installed: kmod-foo.i686 0:1.1-2.2.6.17_1.2174_FC5 > Complete! > [thl@notebook ~]$ Okay, why did that work? I don't know for real. Let's check some details: > [thl@notebook ~]$ rpm -qa kmod-foo > kmod-foo-1.1-2.2.6.17_1.2174_FC5 > kmod-foo-1.1-1.2.6.17_1.2174_FC5 > [thl@notebook ~]$ rpm -V kmod-foo-1.1-1.2.6.17_1.2174_FC5 > ..5....T /lib/modules/2.6.17-1.2174_FC5/extra/foo/foo.ko > [thl@notebook ~]$ rpm -V kmod-foo-1.1-2.2.6.17_1.2174_FC5 > [thl@notebook ~]$ Well, I'd call that "interesting". Seem the "file-conflicts on updates problem" doesn't exist. But while testing it I noticed something else. You probably noticed that in above transaction kmod-foo.i686 0:1.1-1.2.6.17_1.2157_FC5 got removed -- it seems that's not a rpm/yum feature. It's the installonly-plugin that does this. Let's get back to the state we were before: > [thl@notebook ~]$ sudo rpm -ivh /home/thl/tmp/testrepo/kmod-foo-1.1-1.2.6.17_1.2157_FC5.i686.rpm --oldpackage > Preparing... ########################################### [100%] > 1:kmod-foo ########################################### [100%] > WARNING: Module /lib/modules/2.6.17-1.2157_FC5/extra/foo/foo.ko is not an elf object > [thl@notebook ~]$ sudo rpm -e kmod-foo-1.1-1.2.6.17_1.2174_FC5 kmod-foo-1.1-2.2.6.17_1.2174_FC5 > [thl@notebook ~]$ sudo rpm -ivh /home/thl/tmp/testrepo/kmod-foo-1.1-1.2.6.17_1.2174_FC5.i686.rpm > Preparing... ########################################### [100%] > 1:kmod-foo ########################################### [100%] > WARNING: Module /lib/modules/2.6.17-1.2174_FC5/extra/foo/foo.ko is not an elf object > [thl@notebook ~]$ Now disable the plugin: > [thl@notebook ~]$ sudo yum --noplugins --enablerepo=testrepo update > Setting up Update Process > Setting up repositories > macromedia [1/7] > livna [2/7] > testrepo [3/7] > updates-testing [4/7] > core [5/7] > updates [6/7] > extras [7/7] > Reading repository metadata in from local files > Resolving Dependencies > --> Populating transaction set with selected packages. Please wait. > ---> Downloading header for kmod-foo to pack into transaction set. > kmod-foo-1.1-2.2.6.17_1.2 100% |=========================| 2.4 kB 00:00 > ---> Package kmod-foo.i686 0:1.1-2.2.6.17_1.2174_FC5 set to be installed > --> Running transaction check > > Dependencies Resolved > > ============================================================================= > Package Arch Version Repository Size > ============================================================================= > Installing: > kmod-foo i686 1.1-2.2.6.17_1.2174_FC5 testrepo 504 k > > Transaction Summary > ============================================================================= > Install 1 Package(s) > Update 0 Package(s) > Remove 0 Package(s) > Total download size: 504 k > Is this ok [y/N]: y > Downloading Packages: > Running Transaction Test > Finished Transaction Test > Transaction Test Succeeded > Running Transaction > Installing: kmod-foo ######################### [1/1] > WARNING: Module /lib/modules/2.6.17-1.2174_FC5/extra/foo/foo.ko is not an elf object > > Installed: kmod-foo.i686 0:1.1-2.2.6.17_1.2174_FC5 > Complete! > [thl@notebook ~]$ Disabling the installonly-plungin in /etc/yum/pluginconf.d/installonlyn.conf has the same effect. So the "old modules get removed on updates" problem in reality is a bug AFAICS. Or I'm probably doing something really wrong here -- but what? CU thl -- Fedora-packaging mailing list Fedora-packaging@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/fedora-packaging