* doxygen2man: Add option to read copyright line from the header file
This should help make builds reproducible.
I tried various methods of getting the date, using 'git' is no use as
it could be run from a tarball, using the file date doesn't work either
so this seems a reasonable compromise.
* man: Use SOURCE_EPOCH to make manpage dates reproducible
Also add build-aux/update-copyright.sh to keep header file
copyright lines up-to-date.
All code taken from knet
* doc: qbarray.h: fix garbled Doxygen markup
* build: follow-up for and fine-tuning of a rushed 6d62b64 commit
(It made a service as-was, but being afforded more time, this would
have accompanied that commit right away, for better understanding,
brevity and uniformity.)
* build: prune superfluous Makefile declarations within tests directory
There was a significant redundancy wrt. build flags and EXTRA_DIST
assignment (the latter become redundant as of f6e4042 at latest)
spread all over the place (vivat copy&paste). Also, in one instance,
CPPFLAGS (used) was confused with CFLAGS (meant).
* maint: check abi: fix two issues with abi-compliance-checker/libstdc++
1. ABICC >= 2 needs to be passed -cxx-incompatible switch because C is
no longer a default for this tool (used to be vice versa),
plus current version will stop choking on C vs. C++ (our C code with
C++ compatibility wrapping being viewed from C++ perspective for the
purpose of dumping the declared symbols, which somewhat conflicts
with internal masking of the C++ keywords being used as valid C
identifiers [yet some instances must not be masked here, see
https://github.com/lvc/abi-compliance-checker/issues/64) only
if _also_ something like this is applied:
https://github.com/lvc/abi-compliance-checker/pull/70
2. since 20246f5, libqb.so no longer poses a symlink to the actual
version-qualified shared library, but rather a standalone linker
script, which confuses ABICC, so blacklist that file for the scanning
purposes explicitly, together with referring to the library through
it's basic version qualification (which alone, sadly, is not
sufficient as ABICC proceeds to scan whole containing directory
despite particular file is specified)
* maint: check abi: switch to abi-dumper for creating "ABI dumps"
Beside avoiding issues with abi-compliance-checker in the role of ABI
dumps producer (see the preceding commit), it also seems to generate
more accurate picture (maybe because it expressly requires compiling
with debugging information requested).
* Low: qblist.h: fix incompatibility with C++ & check it regularly
* tests: check_list.c: start zeroing in on the gaps in tests' coverage
* tests: print_ver: make preprocessor emit "note" rather than warning
IIRC, Chrissie asked about this around inclusion of the test at
hand, and it seemed there was no way but to emit a warning to get
something output at all. Now it turns wrong, and moreover, we
make the code not fixed on GCC specific pragmas, with a bit of
luck, "#pragma message" approach is adopted more widely by compilers.
Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
* Replace ck_assert_uint_eq() with ck_assert_int_eq()
it's not available in check 0.9
* Proper check for C++ compiler (from Fabio)
* add (c) to copyright dates
... that is preserved by design, see:
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/make.html#tag_20_76_13_05
> string1 = [string2]
> [...]
> where string2 is defined as all characters, if any, after the
> <equals-sign>, up to a comment character ( '#' ) or an unescaped
> <newline>. Any <blank> characters immediately before or after the
> <equals-sign> shall be ignored.
Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
* Fix typo: occur{ -> r}(ed|ing)
* doc: qb-blackbox(8): cosmetic touches
* doc: qb-blackbox(8): add "Portability notes" subsection
* Low: build: git-ignore build-aux/release.mk "overhead" files
This should have been part of ae5138d.
* build: release.mk: ensure checksum file generated even w/o signing
This should have been part of d20e48a.
Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
The default goal line now serves mainly the documentation purpose,
otherwise it could be squashed down to "sign" target.
Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
It also means the missing key specification is now a hard error when
ASCII armored files are to be created (directly or by other rules).
Leveraging the previous commit, it is now unnecessary to guard against
release mode not being requested, so this guard is dropped completely
in the transition, allowing for the full-fledged (incl. GPG signing)
release delivery testing without mangling with in-tree tags.
To allow "sign" target to (possibly eventually) become the implicit goal
even if "gpgsignkey" variable is explicitly unspecified, make it depend
on "tarballs".
Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
Previously, generating custom versioned tarballs without requiring
a "release" (which comprises also tagging hence in turn making the
implied version match the required one as desired) would not allow
to test the release routines thoroughly incl. GPG signing.
Unfortunately, allowing for a temporary tag is prone to accidentally
slipping it to the distributed tree, so that should rather be avoided.
Now it can.
Another step to blur the boundaries between whether "release" is
specified or not is make checksums file generated unconditionally.
Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
Pattern matching is a brilliant DRY technique in makefile's composition,
so it would be a pity to miss such a nonconflicting application related
to the previous, "sign tarballs" commit.
For that to work reliably for the complete dependency backtrack, though,
a pre-existing issue with parallelized work on the prerequisites needs
to be fixed first. The problem was "tarballs" (phony) target missing
in the linearized supply chain for the signed tarballs, as opposed to
to supply chain for the checksums file that can be worked on in an
(unordered!) interleave with the work on these signed tarballs.
Hence fix this race condition by stretching "tarballs" target as
progress barrier (using it as a prerequisite) uniformly for all the
deliverables that are going to be signed (used to be just for "sha256"
target)). And when at it, make "deliverables" variable list them
conveniently (along with reformatting definitions of other variables
for uniformity).
Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
If build-aux/generate-docs is run from the top level of the checkout,
it will prompt for the old and new version numbers, and generate
doxygen, ABI compatibility and change log documentation,
and commit them to the gh-pages branch.