librepo - A library providing C and Python (libcURL like) API for downloading linux repository metadata and packages
Fedora/Ubuntu name
- check (http://check.sourceforge.net/) - check-devel/check
- cmake (http://www.cmake.org/) - cmake/cmake
- expat (http://expat.sourceforge.net/) - expat-devel/libexpat1-dev
- gcc (http://gcc.gnu.org/) - gcc/gcc
- glib2 (http://developer.gnome.org/glib/) - glib2-devel/libglib2.0-dev
- gpgme (http://www.gnupg.org/) - gpgme-devel/libgpgme11-dev
- libattr (http://www.bestbits.at/acl/) - libattr-devel/libattr1-dev
- libcurl (http://curl.haxx.se/libcurl/) - libcurl-devel/libcurl4-openssl-dev
- openssl (http://www.openssl.org/) - openssl-devel/libssl-dev
- python (http://python.org/) - python2-devel/libpython2.7-dev (python3-devel/libpython3-dev)
- Test requires: pygpgme (https://pypi.python.org/pypi/pygpgme/0.1) - pygpgme/python-gpgme (python3-pygpgme/python3-gpgme)
- Test requires: python-flask (http://flask.pocoo.org/) - python-flask/python-flask
- Test requires: python-nose (https://nose.readthedocs.org/) - python-nose/python-nose (python3-nose)
mkdir build
cd build/
cmake ..
make
mkdir build
cd build/
cmake -DPYTHON_DESIRED="3" ..
make
mkdir build
cd build/
cmake -DCMAKE_BUILD_TYPE="DEBUG" ..
make
cd build/
make doc
- C documentation:
build/doc/c/html/index.html
- Python documentation:
build/doc/python/index.html
http://tojaj.github.com/librepo/
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:
- Werkzeug module (Currently - 13.8.2013 - Highly experimental)
- Jinja2 module (Done)
- itsdangerous module (Done)
All unit tests run from librepo checkout dir
make test
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/
Supress 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
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
PYTHONPATH=`readlink -f ./build/librepo/python/python3/` nosetests-3.3 -s -v tests/python/tests/