When running Discover, it takes a long time to download the list of all known packages. Wouldn't it be nice if it could download just the incremental changes from last time? SUMMARY Discover is slow to start. STEPS TO REPRODUCE 1. Start Discover 2. 3. OBSERVED RESULT EXPECTED RESULT SOFTWARE/OS VERSIONS Windows: macOS: Linux/KDE Plasma: (available in About System) KDE Plasma Version: KDE Frameworks Version: Qt Version: ADDITIONAL INFORMATION
Please fill in the template OBSERVED RESULT EXPECTED RESULT SOFTWARE/OS VERSIONS Windows: macOS: Linux/KDE Plasma: (available in About System) KDE Plasma Version: KDE Frameworks Version: Qt Version: ADDITIONAL INFORMATION
(In reply to Harald Sitter from comment #1) > Please fill in the template Ok > OBSERVED RESULT Click on "Fetching Updates". See progress bar. Run, progress bar, run. Progress bar doesn't run. Progress bar sits. Eventually progress bar jumps to the end. > EXPECTED RESULT Click on "Fetching Updates" Progress bar flickers by too quickly to perceive. > SOFTWARE/OS VERSIONS > Windows: > macOS: > Linux/KDE Plasma: Fedora Linux 40 > (available in About System) > KDE Plasma Version: 6.0.5 > KDE Frameworks Version: 6.2.0 > Qt Version: 6.7.1 > > ADDITIONAL INFORMATION Information was found in "System Settings" App, "About this System" menu item.
The number of packages that change per day is usually not many, less than 1%. The time required to download the list of new packages to add and old packages to remove from the metadata cache should be proportional to the number of changes. Instead, it appears that the contents of the entire package cache directory /var/cache/dnf/ is discarded and redownloaded if the age of the cache is older than metadata_expire in /etc/dnf/dnf.conf, which defaults to 48 hours. I realize that the package cache directory contains metadata from all of the repositories configured in /etc/yum.repos.d, dependency calculations can be drastically altered if there are changes in any of the repositories, and getting all repositories to support some modified protocol would be like herding cats. However, most of the extra repositories added to a system are tiny compared to the repositories for the OS, they don't affect the overall time significantly. There are several possible optimizations: * Calculate a checksum of the repository metadata on the server, and publish it via DNS. A single DNS query could then tell you if you're up to date. * Record changes to the repository metadata as a transaction log stored in an ever-growing file that is rotated as needed; publish the current name and size of the file via DNS, or implement something like curl's `--continue-at` feature for resuming interrupted downloads. * Try using rsync delta-transfer algorithm for updating the metadata; it handles inserts and deletions in the middle of binary files easily. The current method of downloading the entire repository's metadata is wasting bandwidth and money.
Right, that isn't really in discover's control. We just tell dnf (through packagekit) to make sure its cache is up to date. How it goes about doing that is entirely up to dnf. You'll want to file a bug with Fedora instead.
Is there any way to tweak the progress bar so it moves at a constant rate and reaches 100% at the right moment? Basically I want to know if I have time to grab a coffee or not.
No. Just get the coffee in any case :)
Where's the best place to file a bug with Fedora? There's so many to choose from. :-/