timlau / yumex-dnf-old

Next Generation of Yum Extender using DNF as backend
GNU General Public License v2.0
61 stars 17 forks source link

Updating packages misses dependencies and clean up compared to dnf update #92

Closed Woi closed 8 years ago

Woi commented 8 years ago

After installing all available updates with yumex-dnf 4.1.5 on Fedora 23, it's sometimes possible to do more "update operations" using dnf update.

Steps to reproduce:

  1. Wait for a kernel update being available in Fedora 23 repos.
  2. Install all available updates with yumex-dnf.
  3. Search again for updates with yumex-dnf. Note that no updates are available.
  4. Open a shell and run sudo dnf update immediately afterwards.
  5. dnf reports packages available for update and clean up.

Actual result:

$ LANG=en_US.utf8
$ sudo dnf upgrade
Last metadata expiration check performed 0:45:00 ago on Tue Feb  2 13:27:04 2016.
Dependencies resolved.
==============================================================================================================================================================================================
 Package                                              Arch                                   Version                                           Repository                                Size
==============================================================================================================================================================================================
Installing:
 kernel-modules-extra                                 x86_64                                 4.3.4-300.fc23                                    updates                                  2.2 M
Removing:
 kernel                                               x86_64                                 4.3.3-300.fc23                                    @updates                                   0  
 kernel-core                                          x86_64                                 4.3.3-300.fc23                                    @updates                                  51 M
 kernel-modules                                       x86_64                                 4.3.3-300.fc23                                    @updates                                  17 M

Transaction Summary
==============================================================================================================================================================================================
Install  1 Package
Remove   3 Packages

Total download size: 2.2 M
Is this ok [y/N]: 

Expected result:

$ sudo dnf upgrade
Last metadata expiration check performed 0:55:06 ago on Tue Feb  2 13:27:04 2016.
Dependencies resolved.
Nothing to do.
Complete!
$ 
Woi commented 8 years ago

Looks like this issue has already been report in RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1286389

timlau commented 8 years ago

You can set Option -> Cleanup old instonly packages to get the same behavior as in dnf CLI

(You can set the default for this option in Preferences)

There is also a remove unused requiments option, there will remove dependencies no longer in use.

careca1970 commented 8 years ago

Hello. Sorry, but the issue exists. Please, refer to this bugzilla thread: https://bugzilla.redhat.com/show_bug.cgi?id=1286389 Many thanks

genodeftest commented 8 years ago

I can confirm this "issue" being present even with "Cleanup old instonly packages" enabled. In this case the redundant packages are removed later on.

For clarification some steps to reproduce:

  1. have a kernel update
  2. use yumex-dnf to install kernel update
  3. note installed/removed packages: no kernel packages will be removed
  4. do any other transaction (install, update, remove, downgrade) with yumex-dnf
  5. note pending changes: kernel package will be removed here

So yumex-dnf is behaving different from dnf in that it doesn't immediately remove the redundant package. I would not call this a bug, but others might thing differently. Any thoughts on that? Is it clear now?

timlau commented 8 years ago

screenshot from 2016-04-29 09-09-27

timlau commented 8 years ago

screenshot from 2016-04-29 09-10-11

timlau commented 8 years ago

The current development version does, what you expect it to do, with the right options turned on

Some options might need a restart of yumex, to work

genodeftest commented 8 years ago

You are right, I can reproduce it works as intended and expected on 4.3.x.. Thanks! I think I was remembering I reproduced the issue on 4.1.x.

alh61 commented 8 years ago

Tim, only the part that cleans seems to work with those settings. The much more importent bug, that not all kernel files are updated still is there in copr version. I just installed copr version in F24, where there are pending updates for kernel. Yumex only shows updates for: kernel kernel-headers kernel-tool-libs trying dnf, I get this list: Installerer: kernel kernel-core kernel-debug-core kernel-debug-modules kernel-debug-modules-extra kernel-devel kernel-modules Opgrader: kernel-headers kernel-tools-libs Fjerner: kernel kernel-core kernel-debug-core kernel-debug-modules kernel-debug-modules-extra kernel-devel kernel-modules

as you can see, Yumex is missing a lot of kernel-* files, and as a result, the system ends up with kernel files with mixed versions, which will break other packages.

This is a nasty bug.

timlau commented 8 years ago

Ok, I will look into how the DNF cli handles that

alh61 commented 8 years ago

btw, the old yumex (yum) works correctly too, and finds all kernel files (on F23)

Woi commented 8 years ago

There is also the aspect of out-of-box behaviour: yumex-dnf with default settings (that is: no settings changed by user) should behave the same as dnf does.

timlau commented 8 years ago

@Woi, the issueis when using DNF API dont have same defaults as the DNF CLI application and the defaults has beeen changing over time, so I am playiing catch up. Yumex save the users selections, so even if I change the default setting, it is still set to the old value in the users yumex.conf. The current yumex development version will havde better defaults and more user friendly configuration

Woi commented 8 years ago

Setting "Clean up old Instonly packages" somewhat helped in my setup, but there is still an old package left:

$ sudo dnf update
Last metadata expiration check: 0:03:39 ago on Mon May  2 21:48:05 2016.
Dependencies resolved.
================================================================================
 Package                   Arch      Version                Repository     Size
================================================================================
Installing:
 kernel-devel              i686      4.4.8-300.fc23         updates        10 M
 kernel-modules-extra      i686      4.4.8-300.fc23         updates       2.1 M
Removing:
 kernel-devel              i686      4.4.5-300.fc23         @updates       37 M

Transaction Summary
================================================================================
Install  2 Packages
Remove   1 Package

Total download size: 12 M
Is this ok [y/N]: 

And as alh61 already sad: The more important issue are the packages missed to install.

The current yumex development version will havde better defaults and more user friendly configuration

Sounds good. Is there a place to read more about the changes?

alh61 commented 8 years ago

Sounds good. Is there a place to read more about the changes?

http://yumex.dk There is also info, how you can get the new version from copr.

timlau commented 8 years ago

This commit will make all kernel packages to be show in yumex-dnf https://github.com/timlau/dnf-daemon/commit/502a439df98d3c06fe7e6cba85a3725584265e34

Add a new build to copr tomorrow

timlau commented 8 years ago

new releases in COPR and soon in Fedora Rawhide & F24

alh61 commented 8 years ago

Tried the COPR release in F24 - worked fine now. We need this fix in F23 (and maybe F22?) too.