summaryrefslogtreecommitdiffstats
path: root/Utilities/cmlibarchive
Commit message (Collapse)AuthorAgeFilesLines
* libarchive: Fix OpenSSL crypto library checks for build inside CMakeBrad King2022-02-171-0/+2
| | | | | | | | | | | | | | | | | | | | libarchive's crypto library checks use its `config.h` inside the `try_compile` project. Since commit ade3b16e63 (libarchive: Use KWIML to get fixed-size integer types, 2020-06-01, v3.18.0-rc1~33^2), that header depends on KWIML inside CMake. Add the include directory for KWIML to the crypto library checks. Otherwise, they always fail due to not finding the KWIML headers, and libarchive decides not to link the crypto library. libarchive has other code besides the hash algorithms that depends on the crypto library if its ENABLE_OPENSSL option is enabled (which in CMake is controlled by CMAKE_USE_OPENSSL). It seems to be missing some conditions to link the crypto library in those cases, and instead relies on at least one of the above-mentioned checks to pass. If they all fail, and we are using system curl, we might not link the crypto library. Fixes: #23234
* Utilities: Suppress warnings in third-party code with IBMClangAaron Liu2022-01-271-1/+1
|
* LCC: Add dedicated support for MCST LCC compilermakise-homura2021-10-151-7/+7
| | | | | | | | | | | | | | | | | | | | | Divert LCC compiler as a new one, instead of treating it as GNU. Since old times, Elbrus C/C++/Fortran Compiler (LCC) by MCST has been passing checks for GNU compilers, so it has been identified as GNU. Now, with intent of seriously upstreaming its support, it has been added as a separate LCC compiler, and its version displays not a supported GCC version, but LCC version itself (e.g. LCC 1.25.19 instead of GNU 7.3.0). This commit adds its support for detection, and also converts basically every check like 'is this compiler GNU?' to 'is this compiler GNU or LCC?'. The only places where this check is untouched, is where it regards other platforms where LCC is unavailable (primarily non-Linux), and where it REALLY differs from GNU compiler. Note: this transition may break software that are already ported to Elbrus, but hardly relies that LCC will be detected as GNU; still such software is not known.
* libarchive: Limit xz compression level to 6 on AIXBrad King2021-08-241-0/+4
| | | | | | | | | | | | Since libarchive commit `aff9809c` (Enable compression level up to 9 for xz, xar, 7zip, 2020-07-26, v3.5.0~19^2), libarchive fails to initialize xz compression on AIX with error Internal error initializing compression library: Cannot allocate memory Revert to the old limit of level 6 on AIX. Issue: #22553
* Merge branch 'upstream-LibArchive' into update-libarchiveBrad King2021-08-2466-627/+1238
| | | | | * upstream-LibArchive: LibArchive 2020-12-26 (227a4b97)
* libarchive: Add missing cm3p prefixes on includesBrad King2021-08-202-3/+3
| | | | Issue: #20666
* Utilities: Suppress warnings in third-party code with NVHPCBrad King2021-04-201-1/+1
|
* Merge topic 'libarchive-u_char'Brad King2021-04-061-4/+4
|\ | | | | | | | | | | | | a9fc751e65 libarchive: Use uint8_t instead of u_char Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5981
| * libarchive: Use uint8_t instead of u_charBrad King2021-04-051-4/+4
| | | | | | | | | | | | The latter is not a standard type. Fixes: #22013
* | Utilities: Suppress warnings in third-party code when using IntelLLVMBrad King2021-01-281-1/+1
| |
* | libarchive: Fix lzma_stream_encoder_mt detectionRodolfo Lima2021-01-261-1/+7
|/ | | | | The test for lzma_stream_encoder_mt was always failing because the lzma libraries weren't being used by linker.
* libarchive: Map fixed-size integer types from KWIML as typedefsBrad King2020-06-031-10/+10
| | | | | | | | | Refactoring in commit ade3b16e63 (libarchive: Use KWIML to get fixed-size integer types, 2020-06-01) accidentally changed the method of defining `int#_t` types from `typedef` to `#define`. Change it back to `typedef`. Reported-by: Rolf Eike Beer <eike@sf-mail.de>
* libarchive: Use KWIML to get fixed-size integer typesBrad King2020-06-022-216/+41
|
* libarchive: Avoid configure-time checks for integer range constantsBrad King2020-06-013-89/+15
|
* libarchive: Drop unused code providing uintmax_t and intmax_tBrad King2020-06-012-13/+0
| | | | The libarchive library code we use within CMake does not need these.
* Refactoring: Third-parties public headers are under cm3p prefixMarc Chevrier2020-05-0723-36/+36
| | | | Fixes: #20666
* libarchive: Update to build within CMakeBrad King2020-02-133-22/+9
| | | | | Hard-code more libarchive options as internal cache entries. Doing so makes some of our `IF(0)` conditions unnecessary, so remove those.
* Merge branch 'upstream-LibArchive' into update-libarchiveBrad King2020-02-13151-1319/+11634
| | | | | | | | | | * upstream-LibArchive: LibArchive 2020-02-11 (3288ebb0) Also manually restore content from upstream libarchive's main `CMakeLists.txt` file that was removed by previous commits and exclude it with `IF(0)` blocks. Do this as an evil merge so that `git blame -C` can follow the content to upstream.
* Merge topic 'libarchive-win-codepage'Brad King2020-02-071-2/+5
|\ | | | | | | | | | | | | | | 16e31523ba libarchive: Add support for UTF-8 locale on Windows f7c54d2049 libarchive: Fix WideCharToMultiByte output buffer size Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4332
| * libarchive: Add support for UTF-8 locale on WindowsBrad King2020-02-061-1/+3
| | | | | | | | | | | | | | Backport libarchive upstream commit `c46e7993` (windows: Support UTF-8 locale, 2018-07-23, v3.4.0~105^2). Fixes: #20320
| * libarchive: Fix WideCharToMultiByte output buffer sizeBrad King2020-02-061-1/+2
| | | | | | | | | | | | Fix `archive_string_append_from_wcs_in_codepage` to account for the already-used portion of the buffer when computing the size of the remaining buffer for ``WideCharToMultiByte` output.
* | libarchive: Fix detection of 'major' on Solaris 11.4Brad King2020-01-301-1/+5
| | | | | | | | | | | | In `archive_pack_dev.c` there is code checking the `HAVE_MAJOR` macro, but it is not computed. Port the equivalent logic from `archive_entry.c`.
* | cmake: avoid marking local or unused variables as advancedBen Boeckel2020-01-201-1/+0
|/
* Merge topic 'libarchive-solaris-11.4'Brad King2019-05-221-5/+5
|\ | | | | | | | | | | | | 6c81c6538b libarchive: avoid b64_encode name conflict with Solaris built-in function Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3351
| * libarchive: avoid b64_encode name conflict with Solaris built-in functionBrad King2019-05-211-5/+5
| | | | | | | | | | | | | | Solaris 11.4 has a built-in function named `b64_encode`. Add a `la_` prefix to our internal function to avoid conflict. Fixes: #19268
* | CMake: Enable use of zstd in libarchiveBrad King2019-03-134-7/+5
| | | | | | | | | | | | | | Build zstd as part of CMake or find one on the system. Modify our port of libarchive to use the zstd configured for use with CMake. Issue: #18657
* | Utilities: Suppress warnings in third-party code when using XLClangBrad King2019-02-251-1/+1
| |
* | Remove now-unused code once used for MIPSpro on IRIXBrad King2019-02-211-1/+1
|/ | | | | | In commit beb991110d (Remove now-unused code once used on IRIX, 2019-01-11, v3.14.0-rc1~167^2) we removed remnants of IRIX support. Also remove remnants of MIPSpro compiler support.
* Merge branch 'upstream-LibArchive' into update-libarchiveBrad King2018-09-2652-203/+1002
| | | | | * upstream-LibArchive: LibArchive 2018-09-03 (5fe69dd0)
* libarchive: Backport fix for build with LibreSSL 2.7Brad King2018-09-261-1/+2
| | | | | | | | Backport libarchive commit v3.3.3~16^2 (fix build with LibreSSL 2.7, 2018-04-01). LibreSSL 2.7 adds OpenSSL 1.1 API leading to conflicts on method names. Fixes: #18404
* libarchive: Do not use nanosecond file time APIs on macOS < 10.13Brad King2017-09-201-0/+11
| | | | | | | | | The SDK for macOS 10.13 adds `futimens` and `utimensat` so our checks for these symbols may pass. However, the symbols are not available at runtime on older macOS versions. Instead on macOS we can check for availability based on the deployment target version. Issue: #17101
* libarchive: Fix inclusion of zlib, bzlib, and lzma for build within CMakeBrad King2017-07-201-3/+3
| | | | | Update a new source file imported from libarchive upstream to include the headers for compression libraries using the CMake wrappers.
* Merge branch 'upstream-LibArchive' into update-libarchiveBrad King2017-07-2064-2760/+4371
| | | | | * upstream-LibArchive: LibArchive 2017-07-09 (98a69539)
* Merge topic 'libarchive-backport-rc4-crypto-rec'Brad King2017-03-221-1/+1
|\ | | | | | | | | | | | | 18009aaf libarchive: backport rc4 crypto requirement update Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !598
| * libarchive: backport rc4 crypto requirement updateBrad King2017-03-211-1/+1
| | | | | | | | | | | | Backport upstream libarchive commit 70f497f456 (As per Cryptographic Requirements, 2017-03-19). Discard more bytes of the RC4 keystream to reduce the possibility of non-random bytes.
* | libarchive: Remove liblzma from introspection testsBrad King2017-02-271-2/+0
| | | | | | | | | | | | This was added upstream but does not make sense in CMake because we may replace the library with a logical target name that will not work inside a `try_compile`.
* | Merge branch 'upstream-LibArchive' into update-libarchiveBrad King2017-02-2714-124/+228
| | | | | | | | | | * upstream-LibArchive: LibArchive 2017-02-25 (d6b1bb9f)
* | libarchive: Avoid using isblankBrad King2017-02-231-5/+9
| | | | | | | | It is not available on VS 2012 and below. Use our own impl instead.
* | libarchive: Avoid declaration after statement in C codeBrad King2017-02-231-2/+4
| |
* | libarchive: Fix use of ssize_t in archive_entry.hBrad King2017-02-231-2/+23
| | | | | | | | | | This type is not available on Windows compilers so for clients including this header we need to use `la_ssize_t` instead as we do in `archive.h`.
* | libarchive: Define __LA_DEPRECATED consistentlyBrad King2017-02-231-5/+2
| | | | | | | | | | | | Upstream libarchive now defines this macro in two places with the same logic in both. However, CMake's bundled copy disables this macro, so we need to update the new location of its definition to be consistent.
* | Merge branch 'upstream-LibArchive' into update-libarchiveBrad King2017-02-2086-1969/+4682
|/ | | | | * upstream-LibArchive: LibArchive 2017-02-19 (100ee75a)
* libarchive: Add support for building with OpenSSL 1.1Brad King2016-11-286-38/+75
| | | | | | | | | 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
* libarchive: Add headers to adapt between OpenSSL 1.1 and older versionsBrad King2016-11-286-3/+108
| | | | | | | 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.
* libarchive: Fix include order in xxhash.cBrad King2016-08-171-2/+3
| | | | | We need to include `archive_platform.h` before any system headers in order to ensure that `_WIN32_WINNT` is defined early enough.
* Merge topic 'update-libarchive'Brad King2016-06-2119-49/+88
|\ | | | | | | | | | | 52f58267 Merge branch 'upstream-LibArchive' into update-libarchive 2b94d71d LibArchive 2016-06-19 (139d0576)
| * Merge branch 'upstream-LibArchive' into update-libarchiveBrad King2016-06-2019-49/+88
| | | | | | | | | | * upstream-LibArchive: LibArchive 2016-06-19 (139d0576)
* | libarchive: Restore OpenSSL include directory from upstreamBrad King2016-06-071-0/+1
|/ | | | | | | | | | In commit v3.6.0-rc1~100^2 (libarchive: Drop early use of crypto library, 2016-05-03) we accidentally dropped the include directory for OpenSSL as well as the library. Without that, it works only accidentally when CHECK_CRYPTO happens to choose the OpenSSL implementation and add the include directory. Reported-by: Bradley Lowekamp <blowekamp@mail.nih.gov>
* libarchive: Drop early use of crypto libraryBrad King2016-05-031-2/+0
| | | | | | | | We already add the crypto library after the ssl library when using OpenSSL. Do not add it to the list of libraries individually or we may end up with the wrong order later. Further investigation will be needed to see how this change can be reconciled with the upstream need for the original line.
* Merge branch 'upstream-LibArchive' into update-libarchiveBrad King2016-05-0249-271/+868
| | | | | Resolve conflicts in C code by taking their side. Resolve conflicts in CMake code by integrating the changes.