Do not fail in lr_prepare_repodata_dir() if repodata/ dir exists
If mkdir() fails and errno is EEXIST, that’s ok. It means we already have the repodata/ directory. Just keep going. But any other errors get reported and the function fails.
Fixing this fixes the problem I’ve been seeing on my system ever since moving to dnf5, which is:
$ sudo dnf check-update # ERROR: something about directory already existing # argh..., so then do $ sudo dnf clean all $ sudo dnf check-updateNow I can just do ‘sudo dnf check-update’ and it works. I am seeing this on Fedora 42 right now, but I also saw it on previous releases.
Signed-off-by: Dave Cantrell dcantrell@redhat.com
版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9
京公网安备 11010802032778号
librepo
librepo - A library providing C and Python (libcURL like) API for downloading linux repository metadata and packages
Building
Build requires:
Fedora/Ubuntu name
or on a DNF-based distribution run:
Build from your checkout dir:
Build with debug flags:
Documentation
Build:
build/doc/c/html/index.htmlbuild/doc/python/index.htmlOnline python bindings documentation:
https://rpm-software-management.github.io/librepo/
Testing
All unit tests run from librepo checkout dir
Run both (C & Python) tests via makefile:
Run (from your checkout dir) - C unittests:
Available params:
-vRun tests verbosely (Show Librepo debug messages)-dRun download tests (This tests need internet connection)To check memoryleaks:
Add this line to your
~/.bashrcfileAnd then run:
Suppress known still_reachable memory:
Note: .valgrindrc file is present in checkoutdir, this file contains the settings:
--memcheck:leak-check=full --suppressions=./valgrind.suppRun (from your checkout dir) - Python 3 unittests:
Contribution
Here’s the most direct way to get your work merged into the project.
Fork the project
Clone down your fork
Implement your feature or bug fix and commit changes
If the change fixes a bug at Red Hat bugzilla, or if it is important to the end user, add the following block to the commit message:
For example::
For your convenience, you can also use git commit template by running the following command in the top-level directory of this project:
In a separate commit, add your name into the authors file as a reward for your generosity
Push the branch to your fork
Send a pull request for your branch
Links
Red Hat Bugzilla
Fedora spec file