A library providing C and Python (libcURL like) API for downloading packages and linux repository metadata in rpm-md format
C Python CMake Shell Objective-C C++ Gherkin
Latest commit 12a922c Jan 30, 2017 @mhatina mhatina committed with DNF Bot add myself to AUTHORS
Closes: #95
Approved by: jrohel
Permalink
Failed to load latest commit information.
acceptancetests
cmake/Modules Spelling fixes Sep 6, 2015
doc Doc: Add log_set_file and log_remove_handler into python doc Sep 25, 2015
examples Spelling fixes Sep 6, 2015
librepo introduce parallel downloading of metadata Jul 18, 2017
tests Change connection and lowspeed default timeouts to 30s Jun 1, 2017
utils Update build utils to match new fedora spec schema Aug 24, 2016
.gitignore Update .gitignore Feb 12, 2015
.valgrindrc Add valgrind supress files. Mar 21, 2013
AUTHORS add myself to AUTHORS Jul 18, 2017
CMakeLists.txt CMake: Add dep on libcrypto (Issue #65) Sep 25, 2015
COPYING Relicenced from GPLv2 to LGPLv2+ (Issue #29) May 28, 2014
README.md Update documentation link Dec 11, 2015
VERSION.cmake
still_reachable.supp Add valgrind supress files. Mar 21, 2013
valgrind.supp Add valgrind supress files. Mar 21, 2013

README.md

librepo

librepo - A library providing C and Python (libcURL like) API for downloading linux repository metadata and packages

Building

Build requires:

Fedora/Ubuntu name

Build from your checkout dir (Python 2 bindings):

mkdir build
cd build/
cmake ..
make

Build from your checkout dir (Python 3 bindings):

mkdir build
cd build/
cmake -DPYTHON_DESIRED="3" ..
make

Build with debug flags:

mkdir build
cd build/
cmake -DCMAKE_BUILD_TYPE="DEBUG" ..
make

Documentation

Build:

cd build/
make doc
  • C documentation: build/doc/c/html/index.html
  • Python documentation: build/doc/python/index.html

Online python bindings documentation:

https://rpm-software-management.github.com/librepo/

Python 3 notes:

Support for Python 3 is experimental.

Python unittests are not fully working due to missing python3 support in Flask module.

Flask python3 support rely on python3 support in:

Testing

All unit tests run from librepo checkout dir

Run both (C & Python) tests via makefile:

make test

Run (from your checkout dir) - C unittests:

build/tests/test_main tests/test_data/

Available params:

  • -v Run tests verbosely (Show Librepo debug messages)
  • -d Run download tests (This tests need internet connection)

To check memoryleaks:

Add this line to your ~/.bashrc file

alias gvalgrind='G_SLICE=always-malloc G_DEBUG=gc-friendly valgrind'

And then run:

CK_FORK=no gvalgrind --leak-check=full build/tests/test_main tests/test_data/

Suppress known still_reachable memory:

CK_FORK=no gvalgrind --leak-check=full --suppressions=still_reachable.supp build/tests/test_main tests/test_data/

Note: .valgrindrc file is present in checkoutdir, this file contains the settings: --memcheck:leak-check=full --suppressions=./valgrind.supp

Run (from your checkout dir) - Python 2 unittests:

PYTHONPATH=`readlink -f ./build/librepo/python/python2/` nosetests -s -v tests/python/tests/

Example of run only one specific test: PYTHONPATH=`readlink -f ./build/librepo/python/python2/` nosetests -s -v tests/python/tests/test_yum_repo_downloading.py:TestCaseYumRepoDownloading.test_download_and_update_repo_01

Run (from your checkout dir) - Python 3 unittests:

PYTHONPATH=`readlink -f ./build/librepo/python/python3/` nosetests-3.3 -s -v tests/python/tests/

Links