||11 months ago|
|cmake||11 months ago|
|src||11 months ago|
|test||1 year ago|
|utils||11 months ago|
|.clang-tidy||1 year ago|
|.gitattributes||11 months ago|
|.gitignore||11 months ago|
|.reek.yml||1 year ago|
|.rubocop.yml||11 months ago|
|CHANGELOG.md||11 months ago|
|CMakeLists.txt||11 months ago|
|LICENSE.md||2 years ago|
|README.md||11 months ago|
|TODO||2 years ago|
|config.hpp.in||1 year ago|
|permissions||3 years ago|
|produceit.conf||2 years ago|
ProduceIt offer a cross-distro chroot based Linux package build and application testing environment. It is somewhat like what mock offers for RedHat, and pbuilder for Debian GNU/Linux, though it uses the idea of pre-set dirty chroots containers for efficiently repeating builds with updates, and sets up build instances that can consume their own build dependencies to stage multi-package builds. The chroots can also be entered as "user" environments for testing software. ProduceIt also takes advantage of qemu-user-mode emulation to support hosting build and test environments in alternate cpu architectures.
Unlike my earlier cape-devtools, this implementation is built purely on c++14, and uses ruby for supporting non-setuid utilities. This implementation also offers better chroot container isolation than cape-devtools did. In the future I may offer a new and efficient container deployment model based on overlayfs and runit for fast container services startup.
ProduceIt has no dependencies other than a c++14 capable compiler and chroot support. A typical "install" target is created to support local installation. This should include an example config file, /etc/produceit.conf. A running chroot is typically prepared in /srv/produceit. I currently use lxc to seed valid chroot files. It should also be possible to do so by creating a docker instance of a distro and then exporting the container to a tar file.
This project uses cmake, and c++14 for core development, along with Ruby for supporting utilities. I use the ctest framework for unit testing and gcovr for coverage reports. ProduceIt can be built with gcc or clang and can be tested on just about any GNU/Linux distribution. In the future I may introduce BSD chroot and BSD jails as well.
This project project can also be built for running unit tests using the cmake ctest framework. This is enabled by default for Debug builds. To produce code coverage reports you can cmake a debug build with -DCOVERAGE_TYPE=gcov set. You can then use the make the "coverage" target and produce reports with gcovr or lcov. The "lint" target validates code with cppcheck and rubocop.
Support is offered thru https://codeberg.org/dyfet/produceit/issues. When entering a new support issue, please mark it part of the support project. I also have email@example.com. ProduceIt packaging build support for common GNU/Linux systems is found on https://pkg.gnutelephony.org/produceit. In the future maybe other means of support will become possible.