A library providing C and Python (libcURL like) API for downloading packages and linux repository metadata in rpm-md format
Pull request Compare This branch is even with rpm-software-management:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.tito
acceptancetests
cmake/Modules
doc
examples
librepo
tests
utils
.gitignore
.valgrindrc
AUTHORS
CMakeLists.txt
COPYING
README.md
VERSION.cmake
librepo.spec
still_reachable.supp
valgrind.supp

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