In order to compile, from the checkout directory, run the following
mkdir build && cd build
cmake ..
make
Do enable debugging symbols (useful for use with gdb
), use:
cmake -DCMAKE_BUILD_TYPE=Debug ..
You can also build tdnf using docker using the following commands:
docker build -t photon/tdnf-build -f ci/Dockerfile.photon .
docker run --rm -it -v $(pwd):/build -w /build photon/tdnf-build
create a conf file named tdnf.conf
under /etc/tdnf/
with the following content
[main]
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=true
repodir=/etc/yum.repos.d
cachedir=/var/cache/tdnf
Now configure repo files under /etc/yum.repos.d
or your repodir following
.repo
format of dnf/yum.
You should now have a client executable named tdnf under bin/
. To test
run:
./bin/tdnf list installed
You should see a list of installed packages and their related info
To build and run the test scripts within a container, do:
export DIST=photon
docker run --security-opt seccomp:unconfined --rm -it -e DIST -v$(pwd):/build -w/build ${DIST}/tdnf-build ./ci/docker-entrypoint.sh
Same for
export DIST=fedora
Assuming you have coverity installed on /pathto/coverity
, you can run:
docker run --rm -it -v $(pwd):/build -v /pathto/coverity/:/coverity/ -w /build photon/tdnf-build ./ci/coverity.sh
This will put the output to ./build-coverity
. You can then commit the results to the coverity database from that directory, or view the results in ./build-coverity/html
. For example, you can start an nginx container:
docker run -it --rm -p 8080:80 --name web -v $(pwd)/build-coverity/html:/usr/share/nginx/html nginx
and then view results in your browser at http://<host>:8080/
.