- Libarch is a library for detecting architectures for package managers and managing relations among them.
- It was originally written for libdnf.
- For HTML documentation see https://libarch.readthedocs.io/
- The header files are documented because documentation is mainly generated from them
- Red Hat Bugzilla is the preferred way of filing issues. [backlog]
- GitHub issues are also accepted. [backlog]
- By contributing to this project you agree to the Developer Certificate of Origin (DCO). This document is a simple statement that you, as a contributor, have the legal right to submit the contribution. See the DCO file for details.
- All contributions to this project are licensed under MIT. See the License section for details.
- Please follow the coding style
- When a patch is ready, submit a pull request
- It is a good practice to write documentation and unit tests as part of the patches
To install build requirements, run::
$ dnf builddep libarch.spec --define '_with_sanitizers 1' [--define '_without_<option> 1 ...]
To build code, run::
$ mkdir build
$ cd build
$ cmake .. -DWITH_SANITIZERS=ON [-DWITH_<OPTION>=<ON|OFF> ...]
$ make -j4
To build rpms from git, run::
$ export PREFIX=$(rpmspec libarch.spec -q --srpm --qf '%{name}-%{version}'); git archive --format=tar.gz --prefix=$PREFIX/ HEAD > $PREFIX.tar.gz
$ rpmbuild -ba --define "_sourcedir $(pwd)" libarch.spec [--with=<option>|--without=<option> ...]
To run the tests, follow the steps to build the code and then run::
# from the 'build' directory
$ CTEST_OUTPUT_ON_FAILURE=1 make test
As an alternative, tests can be executed in a verbose mode::
# from the 'build' directory
$ make test ARGS='-V'