OpenSSL 1.1 made some CTX structures opaque. Port our code to use the
structures only through pointers via OpenSSL 1.1 APIs. Use our adaption
layer to make this work with OpenSSL 1.0 and below.
Patch-by: Tomas Mraz <tmraz@redhat.com>
Patch-from: https://bugzilla.redhat.com/1383744
Add private forwarding headers for `openssl/{evp,hmac}.h` to give us a
central place to add adaptation code to work across multiple
incompatible OpenSSL versions. Provide compatibility implementations of
some OpenSSL 1.1 APIs when using older OpenSSL versions.
cd8a57ae Add option to build CMake against a system librhash
71180fc8 FindLibRHash: Add module to find the librhash package
3216e94c Remove unused cm_sha2 infrastructure
5420278d Port hash computation to cmCryptoHash
9a596b33 cmCryptoHash: Re-implement in terms of librhash
47f91a61 cmCryptoHash: Avoid using subclasses at client sites
d0ff3e70 librhash: Port to KWIML for ABI and integer type information
465a85fb librhash: Avoid signed left-shift overflow
fc2cb74f librhash: Implement bswap_32 as a function even in strict C90 mode
0bd333bc librhash: Implement bswap_64 even in strict C90 mode
7189d62c librhash: Use __builtin_bswap{32,64} on Clang
af7ebf8a librhash: Install COPYING file with CMake documentation
bb01f20e librhash: Disable warnings to avoid changing 3rd party code
31bb727f librhash: Build the library within CMake
53048afa librhash: Remove source fragments not needed for CMake
5cb1b345 Merge branch 'upstream-librhash' into import-librhash
...
Update `ustd.h` to include KWSys Large File Support configuration so
that consistent stream libraries are used (on AIX with XL).
Add a `cm_rhash.h` header to include the CMake-provided copy of the
`rhash.h` header from CMake sources.
We only need a subset of the hash algorithms supported by librhash.
Add preprocessor conditionals to remove source fragments that we do
not need. Write an alternative algorithm enumeration that matches
the indexing on our reduced array.
Also remove a few fragments outright.
We now define code layout by clang-format and enforce whitespace with
Git hooks. There is no need to run KWStyle anymore, as all we used it
to check was line length anyway.
The clang-format pass in commit v3.6.0-rc1~54^2~1 (Revise C++ coding
style using clang-format, 2016-05-16) changed the template right angle
brackets from `>>` to `> >`, which defeats the purpose of this test.
Change it back and exclude this content from formatting.
957e72c0 Utilities/Release: Use python 3 for server mode test on Linux binary
64934f20 Utilities/Release: Enable server mode in all binaries
ec0bf638 bootstrap: Add options to enable/disable server mode explicitly
523f8ec8 server-mode: Add option to enable/disable test case explicitly
6b97a5ef server-mode: Add option to enable/disable the mode explicitly
a8334961 server-mode: Rename variable CMake_{HAVE => ENABLE}_SERVER_MODE
97b6e17c server-mode: Enable from bootstrapped CMake build
Add the CMake_ENABLE_SERVER_MODE option explicitly to the configuration
of all binary builds. We want to know the mode is available if the
build succeeds.
The 64-bit Windows binary is built in our second batch because it is
built on the same host as the 32-bit Windows binary. When the
documentation generation was first added, it was not included in the
second batch because at the time that batch only included the Cygwin
binary. Therefore the 64-bit Windows binary has been missing the
documentation since it was first created for CMake 3.6.
Since then the Cygwin binary was dropped so the second batch only
contains the 64-bit Windows binary. Add the docs to it.
Closes: #16333
Per-source copyright/license notice headers that spell out copyright holder
names and years are hard to maintain and often out-of-date or plain wrong.
Precise contributor information is already maintained automatically by the
version control tool. Ultimately it is the receiver of a file who is
responsible for determining its licensing status, and per-source notices are
merely a convenience. Therefore it is simpler and more accurate for
each source to have a generic notice of the license name and references to
more detailed information on copyright holders and full license terms.
Our `Copyright.txt` file now contains a list of Contributors whose names
appeared source-level copyright notices. It also references version control
history for more precise information. Therefore we no longer need to spell
out the list of Contributors in each source file notice.
Replace CMake per-source copyright/license notice headers with a short
description of the license and links to `Copyright.txt` and online information
available from "https://cmake.org/licensing". The online URL also handles
cases of modules being copied out of our source into other projects, so we
can drop our notices about replacing links with full license text.
Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority
of the replacements mechanically. Manually fix up shebang lines and trailing
newlines in a few files. Manually update the notices in a few files that the
script does not handle.
The test fails spuriously too often. Additional work on the test
will be needed to make it more reliable. For now just skip the
test when building nightly binaries so they can complete.