[packaging] libapr README url fix patch

Boris Kolpackov boris at codesynthesis.com
Sun Mar 3 08:44:36 UTC 2019

Dale Lukas Peterson <hazelnusse at gmail.com> writes:

> I wanted to start with something simple and wanted to get a unit testing
> library in place before I do any significant work using build2. To this
> end, I was thinking that packaging Catch2 would be a good idea.

Good idea. These days every second C++ project seems to be bundling their
own copy so it would be nice to have a package for it.

> Up-streaming the changes would probably be preferred, but more difficult
> to socialize.

Phil was actually interested in build2. I've just asked him if he would
be interesting in adding build2 support. Will let you know when I hear

> I couldn't find a unit testing framework that is already packaged with
> build2, other than the built in test module, which I think serves a
> different purposes, though perhaps I'm mistaken.

Right, the test module (and its Testscript language) is a test runner,
not a testing framework for a particular programming language. It does
not concern itself with how the test executables themselves are
implemented. As a result, it is mostly geared towards functional
testing but can also be used for unit testing if external input/output
is required.

> Is the libapr1 package a good example of how to package an existing
> library, or do you recommend I look at something different?

Good question. I should write the "Packaging Existing Projects" guide
at some point, once we have a bit more experience. In the meantime:

libapr2 is not really a good example since it is a "stub" (a package
without any source code and which can only be "obtained" from the

At this stage the best example for Catch2 (which is a header-only
library with the "headers go to the include/ subdirectory" setup),
would probably be my PR for Boost.Predef:


This assumes Phil says yes and we go the upstreaming route.

Otherwise, we can package it non-intrusively. The current "state
of the art" example for this approach is our OpenSSL package:


Note that this package (actually packages) is a lot more complex
than what would likely be required for Catch2. It does, however,
show some handy techniques like pulling upstream source as a git
submodule and then using symlinks to reorganize/overlay the
upstream source with build2 support (the accompanying README-DEV
file has more details).

The nicest thing about the non-intrusive approach is that you
can often "fix" upstream's mistakes (from our point of view,
anyways) rather than fighting them.

So, based on this, I would suggest that we wait to hear from Phil
and then decide on the course of action.

More information about the packaging mailing list