[pull] master from libarchive:master#22
Merged
pull[bot] merged 46 commits intomakesoftwaresafe:masterfrom Jan 1, 2025
Merged
Conversation
When the pax `size` field is present, we should ignore the size value in the ustar header. In particular, this fixes reading pax archives created by GNU tar with entries larger than 8GB. Note: This doesn't impact reading pax archives created by libarchive because libarchive uses tar extensions to store an accurate large size field in the ustar header. GNU tar instead strictly follows ustar in this case, which prevents it from storing accurate sizes in the ustar header. Resolves #2404
Moving the tests' integer reading functions to test_utils so that they all use the same as well as moving the few using the archive_endian functions over to the test_utils helper. Follow-up from #2390.
This change fixes the autotools build to work with xz-utils 5.6.3, which changed library names on windows, and fixes a couple of tests that I noticed had dependencies on liblzma.
I have been using this for years without realizing it decompresses rar. + add rar to supported decompression formats + use section references to link sections (this makes them clickable in GUIs) + add paragraph breaks for consistent spacing + pdtar is not this program, so use Sy per mdoc style guide + do almost the same in reverse for bsdtar + remove parenthetical around a complete sentance Thank you so much, this is wonderful software.
The fallback for when `getline` is not implemented in libc was not compiling due to the fact that the definition for it was missing, so add the definition.
…plementation (#2424) This is mainly for non-cygwin newlib platforms that don't have tcgetattr / tcsetattr implemented
We currently use XZ Utils 5.6.3 on windows CI jobs, but the Windows (msvc) job which uses cmake seems to only be looking for the old library name, liblzma.lib: ``` -- Looking for lzma_auto_decoder in C:/Program Files (x86)/xz/lib/liblzma.lib -- Looking for lzma_auto_decoder in C:/Program Files (x86)/xz/lib/liblzma.lib - not found -- Looking for lzma_easy_encoder in C:/Program Files (x86)/xz/lib/liblzma.lib -- Looking for lzma_easy_encoder in C:/Program Files (x86)/xz/lib/liblzma.lib - not found -- Looking for lzma_lzma_preset in C:/Program Files (x86)/xz/lib/liblzma.lib -- Looking for lzma_lzma_preset in C:/Program Files (x86)/xz/lib/liblzma.lib - not found -- Could NOT find LibLZMA (missing: LIBLZMA_HAS_AUTO_DECODER LIBLZMA_HAS_EASY_ENCODER LIBLZMA_HAS_LZMA_PRESET) (found version "5.6.3") ``` We need to update build/ci/github_actions/ci.cmd to look for lzma.lib instead.
…were used (#2426) A few of libarchive's CI jobs don't find all the local support libraries that they could be using. This change makes it easier to see which of them are used.
This decreases the "Install library dependencies" step duration from ~4min to ~2min, and the "Build" step duration from ~10min to ~4min.
This plumbing is required for cmake/ctest to recognise and report
skipped tests.
Now skipped tests in cmake ci jobs are reported like so:
```
Start 7: libarchive_test_acl_platform_posix1e_read
7/785 Test #7: libarchive_test_acl_platform_posix1e_read ................................***Skipped 0.02 sec
```
And there is a list of skipped tests shown at the end of the test run.
Previously skipped tests were reported like this when running the *_test binaries: ``` 4: test_acl_platform_nfs4 ok (S) ``` Let's make this more obvious: ``` 4: test_acl_platform_nfs4 skipped ```
Thanks to gbdngb12 김동건 for reporting this. Resolves Issue #2415
It is sufficent to use HAVE_LZMA_H and then check for macros defined in lzma.h
Command example: bsdtar -cavf /tmp/foo.7z --options='compression=zstd,threads=4' *
7-Zip 24.05 and liblzma 5.5.1alpha added a RISC-V BCJ filter. Let's enable this combination if we can. Note that this does not allow the use of the RISC-V filter with other compressors.
It looks like support for this library was removed in 2016, but we still had some unused cmake code and a dead preprocessor block.
Fixes warnings found by: ``` -Wformat-non-iso -Wnewline-eof -Wmissing-variable-declarations ```
`i4le()` returns an unsigned int, so `'%d'` is incorrect. Reported by `clang -Wformat`. (Many more such fixes to come, but this is the simplest set of them.)
…and linux github runners (#2437) We previously told make to run as many threads as it likes on these CI jobs, but that might sometimes hit resource limits like RAM or the allowed number of open files. These numbers were found experimentally by using `sysctl -n hw.ncpu` on mac and `nproc` on linux.
…ABLE_INSTALL guard (#2397) 1. Fixes build when compiling without ZLIB/BZIP/LZMA `char finishing` 2. All INSTALL directives are now guarded by ENABLE_INSTALL
When the -s/regexp/replacement/ option was used with the b flag more than once, the result of the previous substitution was appended to the previous subject instead of replacing it. Fixed it by making sure the subject is made the empty string before the call to realloc_strcat(). That in effect makes it more like a realloc_strcpy(), but creating a new realloc_strcpy() function for that one usage doesn't feel worth it. Resolves Issue #2414 Co-authored-by: Stephane Chazelas <stephane@chazelas.org>
The test inadvertently tried to manipulate the wrong archive at one point.
…2459) This new test archive contains a C hello world executable built like so on a ubuntu 24.04 machine: ``` #include <stdio.h> int main(int argc, char *argv[]) { printf("hello, world\n"); return 0; } ``` `powerpc-linux-gnu-gcc hw.c -o hw-powerpc -Wall` The test archive that contains this executable was created like so, using 7-Zip 24.08: `7zz a -t7z -m0=deflate -mf=ppc libarchive/test/test_read_format_7zip_deflate_powerpc.7z hw-powerpc` This test fails in the first commit in this PR, and passes in the second commit.
Endianness is easy to determine at runtime, but detecting this a single time and then reusing the cached result might require API changes. However we can use compile-time detection for some known compiler macros without API changes fairly easily. Let's start by enabling this for Clang and GCC.
This should now cover the most common build targets.
…on (#2471) `Int32x32To64` macro internally truncates the arguments to int32, while `time_t` is 64-bit on most/all modern platforms. Therefore, usage of this macro creates a Year 2038 bug. I detailed this issue a while ago in a writeup, and spotted the same issue in this repository when updating the list of affected repositories: <https://cookieplmonster.github.io/2022/02/17/year-2038-problem/> A few more notes: 1. I changed all uses of `Int32x32To64` en masse, even though at least one of them was technically OK and used with int32 parameters only. IMO better safe than sorry. 2. This is untested, but it's a small enough change that I hope the CI success is a good enough indicator.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot]
Can you help keep this open source service alive? 💖 Please sponsor : )