CAPE Devtools are portable development tools that fits various needs I find.
These tools are built against the ucommon library.

One recent change was adding support for cmake macros to simplify the cmake's
I use for building other packages, starting with libcpr and coastal-qt.  Some
packages may have both cmake and autoconf, but for those that rely on cmake
alone, this makes cape-devtools (or, at minimum, a cape-devtoools-cmake) a
build dependency for these other packages.  To simplify this process,
especially where one may not want to build or use cape-devtools itself, but
may require the cmake macros it contains, there is a special Makefile build
target, "bootstrap", which will copy the cape devtools cmake macros to your
local cmake modules directory, without building anything else.

CAPE Devtools also contains my primary distro support tools, particularly for
GNU/Linux systems.  These are used for managing chroot and package build
environments.  cape-chroot is the first of these new tools, and offers a fast
way to execute commands in and manage chroot's from multiple distributions.

In particular the distro tools are meant in general to make it easier to do
debian package development on fedora, or fedora package development on debian.
This makes it easier for me to use either environment interchangeably.  We
are also going to have some basic tools for portable packaging of release
archives.

cape-chroot differs from other kinds of chroot front ends and chroot build
tools (mock, pbuilder, etc) in a number of important ways.  First, it tries
to automate as much as possible.  This means it figures out on it's own
how to map and bind mount dev, proc, and other system directories for you.
It also bind mounts a local package archive directory and generates
an /etc/apt/sources.list.d or /etc/yum.d repository header for you, so you
can build, archive and then easily consume chroot specific packages for
build dependencies of additional ones.

cape-chroot also by default maintains, like mock, a dirty chroot.  I have found
every time I used pbuilder, I always use the same set of build dependencies
anyway, and if you have a collection of software you are bulding that do not
have conflicting dependencies (and none should), then all the time something
like pbuilder or buildd uses to unpack a clean build environment for each build
environment is pure wasted cpu cycles.

cape-chroot also provides a chroot that is directly user enter-able.  This
means you can run and easily script access to commands in the chroot
environment.  It also means you can easily enter the chroot to test binary
packages you build in it, to locally run gdb to debug crashes, etc.

Other cape distro tools are meant to simplify common packaging issues in a
distro portable way, such as management of package repositories, updating of
changelogs, etc.  Most can likely be used on any modern GNU/Linux distro, and
perhaps even on BSD systems.  Cape-devtools also contains scripts to simplify
other development work that are generic and truly cross-platform, including
extension scripts for the git driven shell.


