libcomps ======== Libcomps is alternative for yum.comps library. It's written in pure C as library and there's bindings for python2 and python3. Building -------- ### Requirements for automatic build system: * cmake ( >= 2.6) http://www.cmake.org/ * make http://ftp.gnu.org/gnu/make/ for libcomps library: * libxml2 http://www.xmlsoft.org/ * expat http://expat.sourceforge.net/ * gcc http://gcc.gnu.org/ for python bindings: * python http://python.org/ for C library tests: * check http://check.sourceforge.net/ for documentation build: * doxygen http://www.stack.nl/~dimitri/doxygen/ ### Building 1. clone this repository git clone https://github.com/midnightercz/libcomps.git 2. run cmake - for python2 bindings run cmake build system with no params: cd cmake - for python3 bindings run cmake build system with PYTHON_DESIRED param: cd cmake -DPYTHON_DESIRED:str=3 3. run make make ### Building rpm package 1. run build\_prep.py for .spec file substitution and tarball creation: python build_prep.py or run the following code in Python: import build_prep build_prep.prepare() 2. copy libcomps.spec and libcomps-(git_commit_rev).tar.xz to SPECS and SOURCES dirs cp libcomps-*.tar.xz / cp libcomps.spec / 3. run rpmbuild. If you want build bindings only for specified verion of python edit top of libcomps.spec file: %global with_python 1 %global with_python3 1 ### Installing * After successful build run: make install * Or install rpm package ### Testing After build, you can find test for C library in __tests directory__, starting with `test_` prefix. Binding tests are at (for now) same directory as python binding library. You can run `python __test.py` or `python3 __test.py` (even without installing library) for tests bindings. Also this unittest serves as python bindings documentation (for now). ### Documentation After build, documentation is in __docs directory__. Documentation is built in html xml and latex format. Only uncomplete documentation for C library is available at the moment. Look at bindings unittest `__test.py__` for python bindings usage.