Skip to content

j-mracek/librepo

 
 

Repository files navigation

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

About

A library providing C and Python (libcURL like) API for downloading packages and linux repository metadata in rpm-md format

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 74.7%
  • Python 22.1%
  • CMake 2.7%
  • Other 0.5%