1212 Commits

Author SHA1 Message Date
Brad King
df7fa47c1b curl: Disable symbol hiding logic in build for CMake
We already disable the code using `HIDES_CURL_PRIVATE_SYMBOLS`, so skip
the code to set it too, thus avoiding unnecessary `message()` calls.
2016-12-06 08:18:33 -05:00
Brad King
f8a1ba202f Merge branch 'upstream-curl' into update-curl
* upstream-curl:
  curl 2016-11-02 (3c561c65)
2016-12-05 11:50:43 -05:00
Brad King
25d7b1ca9d curl: Update script to get curl 7.51.0 2016-12-05 11:39:12 -05:00
Nils Gladitz
1b91e010bc Utilities/Release: Store WiX CMake install location in Windows registry 2016-12-05 16:05:19 +01:00
Brad King
a0af10e423 Merge topic 'librhash-left-shift-unsigned'
9e07ffa4 librhash: Avoid signed left-shift overflow in sha256
2016-11-29 08:58:59 -05:00
Brad King
dd4e25a5a6 Merge topic 'libarchive-openssl-1.1'
6f23daea libarchive: Add support for building with OpenSSL 1.1
7d433206 libarchive: Add headers to adapt between OpenSSL 1.1 and older versions
2016-11-29 08:58:55 -05:00
Brad King
9e07ffa4e4 librhash: Avoid signed left-shift overflow in sha256
Fix `rhash_sha256_final` to use unsigned integers for left shifting to
avoid the possibility of undefined overflow behavior.
2016-11-29 08:30:25 -05:00
Brad King
6f23daea43 libarchive: Add support for building with OpenSSL 1.1
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
2016-11-28 14:55:42 -05:00
Brad King
7d433206cf libarchive: Add headers to adapt between OpenSSL 1.1 and older versions
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.
2016-11-28 14:55:42 -05:00
Brad King
2dafeacb75 Utilities/Release: Update to openssl-1.0.2j
Update the prebuilt binary build configurations for machines where
we build our own OpenSSL library to use a newer version.
2016-11-17 16:12:36 -05:00
Brad King
7a79f7e3c1 librhash: Activate SHA-3 implementation 2016-11-10 15:48:41 -05:00
Brad King
87584b5e9d Merge branch 'upstream-librhash' into add-SHA-3
* upstream-librhash:
  librhash 2016-11-06 (de79828d)
2016-11-10 15:42:32 -05:00
Brad King
c50c32a30f librhash: Update import script to add SHA-3 implementation 2016-11-10 15:42:13 -05:00
Brad King
de53eb18ab Merge topic 'import-librhash'
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
...
2016-11-10 08:34:28 -05:00
Brad King
cd8a57ae9b Add option to build CMake against a system librhash
Create a CMAKE_USE_SYSTEM_LIBRHASH option.
2016-11-10 08:29:38 -05:00
Brad King
3216e94cef Remove unused cm_sha2 infrastructure
All clients of `cm_sha2` have been ported to `cmCryptoHash`, which now
uses librhash internally.
2016-11-10 08:29:38 -05:00
Brad King
d0ff3e701c librhash: Port to KWIML for ABI and integer type information 2016-11-10 08:29:37 -05:00
Brad King
465a85fb46 librhash: Avoid signed left-shift overflow
Fix `rhash_md5_final` to use unsigned integers for left shifting to
avoid the possibility of undefined overflow behavior.
2016-11-10 08:29:36 -05:00
Brad King
fc2cb74fee librhash: Implement bswap_32 as a function even in strict C90 mode
We cannot fall back to the macro implementation because some call sites
may call it with an argument like `*ptr++` that has side effects.
2016-11-10 08:29:36 -05:00
Brad King
0bd333bc2e librhash: Implement bswap_64 even in strict C90 mode 2016-11-10 08:29:36 -05:00
Brad King
7189d62c32 librhash: Use __builtin_bswap{32,64} on Clang 2016-11-10 08:28:57 -05:00
Brad King
af7ebf8ad3 librhash: Install COPYING file with CMake documentation
When we install using the bundled librhash source, notify users of its
license terms.
2016-11-10 08:26:55 -05:00
Brad King
bb01f20e99 librhash: Disable warnings to avoid changing 3rd party code
Add '-w' or equivalent flag on compilers supporting it.
Tell MSVC to use its lowest warning level inside librhash sources.
2016-11-10 08:26:55 -05:00
Brad King
31bb727f3b librhash: Build the library within CMake
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.
2016-11-10 08:26:54 -05:00
Brad King
53048afa8d librhash: Remove source fragments not needed for CMake
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.
2016-11-10 08:26:54 -05:00
Brad King
36f9f0f8a3 Drop KWStyle checks in favor of clang-format and Git hooks
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.
2016-11-08 11:40:20 -05:00
Brad King
5cb1b345d9 Merge branch 'upstream-librhash' into import-librhash
* upstream-librhash:
  librhash 2016-11-01 (d839a1a8)
2016-11-03 13:45:29 -04:00
Brad King
798b0adc62 Add script to update librhash from upstream 2016-11-03 13:45:22 -04:00
Alex Wang
68e7250a9f Features: Fix cxx_right_angle_brackets compiler feature test
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.
2016-10-25 13:38:12 -04:00
Brad King
730ba30726 Utilities/Release: Update README to reference https URL 2016-10-04 11:37:16 -04:00
Brad King
4376e47a2f Utilities/GitSetup: Fetch local hooks via https 2016-10-04 11:36:43 -04:00
Brad King
241858c5e6 Utilities/Release: Drop Linux .tar.Z binary
On Linux the gzip tool is universally available, so our `.tar.gz` is
sufficient.
2016-10-04 10:52:28 -04:00
Brad King
4787330730 Utilities/Release: Drop macOS .tar.Z binary
On macOS the gzip tool is universally available, so our `.tar.gz` is
sufficient.
2016-10-04 10:08:28 -04:00
Brad King
46f3306f6a CMake 3.7.0-rc1 version update 2016-10-03 09:08:04 -04:00
Brad King
9c932109a2 Merge topic 'cmake-server-enable-more'
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
2016-09-30 08:07:26 -04:00
Brad King
f9cab9e38d Merge branch 'upstream-libuv' into update-libuv
* upstream-libuv:
  libuv 2016-09-27 (8221f9b3)
2016-09-29 14:19:51 -04:00
Brad King
957e72c0c5 Utilities/Release: Use python 3 for server mode test on Linux binary
The machine that builds the Linux binary has python 3 and 2.6, but the
latter is too old for the server mode test script.
2016-09-29 13:55:15 -04:00
Brad King
64934f2069 Utilities/Release: Enable server mode in all binaries
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.
2016-09-29 13:55:15 -04:00
Brad King
93300f3623 Utilities/Release: Add html docs to Windows 64-bit binary
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
2016-09-28 08:55:29 -04:00
Brad King
845d86bce3 Utilities/Scripts: Remove temporary script that filtered license notices 2016-09-27 15:18:07 -04:00
Brad King
86578eccf2 Simplify CMake per-source license notices
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.
2016-09-27 15:14:44 -04:00
Brad King
b7180cfee5 Utilities/Scripts: Add temporary script to filter license notices
Add a script to replace our previous per-source license notices with a
much simpler notice.  This will be used in a following commit and then
removed.
2016-09-27 15:04:28 -04:00
Brad King
78f77f6038 Utilities/KWStyle: Remove unused header check reference file
We do not actually run a check for this.
2016-09-27 15:04:28 -04:00
Brad King
009bb0139d Merge topic 'binaries-as-c++14'
0310cb10 Utilities/Release: Build Linux and OS X binaries as C++14
2016-09-19 08:55:01 -04:00
Brad King
ea23db00f4 Utilities/Release: Suppress KWSys ConsoleBuf test on Windows binaries
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.
2016-09-19 08:40:10 -04:00
Brad King
0310cb1094 Utilities/Release: Build Linux and OS X binaries as C++14
The toolchains we use to build on these platforms support it.
2016-09-16 12:52:13 -04:00
Brad King
ae783c9ba9 Require CMake 2.8.12.2 to build CMake itself
This will enable use of features such as ALIAS targets within CMake's
own build.
2016-09-15 09:24:25 -04:00
Brad King
a3aaf0a181 Merge topic 'drop-cygwin-binary'
db915a37 Utilities/Release: Drop Cygwin binary
2016-09-12 09:31:39 -04:00
Brad King
71a70c0e6c Merge topic 'libuv-link-kvm'
c6d83a15 libuv: Link with kvm on NetBSD and OpenBSD
6a497bb0 libuv: Link with kvm on FreeBSD
2016-09-12 09:31:29 -04:00
Brad King
db915a3785 Utilities/Release: Drop Cygwin binary
Cygwin has packaged CMake independently of upstream for a long time.
See its [cygport](https://github.com/cygwinports/cmake).
2016-09-12 09:22:50 -04:00