summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Translations: Update the Croatian translation.v5.4.3v5.4Jia Tan2023-05-041-3/+3
|
* Bump version and soname for 5.4.3.Jia Tan2023-05-042-2/+2
|
* Add NEWS for 5.4.3.Jia Tan2023-05-041-0/+10
|
* tuklib_integer.h: Fix a recent copypaste error in Clang detection.Lasse Collin2023-05-031-2/+2
| | | | | | Wrong line was changed in 7062348bf35c1e4cbfee00ad9fffb4a21aa6eff7. Also, this has >= instead of == since ints larger than 32 bits would work too even if not relevant in practice.
* Update THANKS.Jia Tan2023-04-251-0/+1
|
* Windows: Include <intrin.h> when needed.Jia Tan2023-04-252-0/+16
| | | | | | | | | | Legacy Windows did not need to #include <intrin.h> to use the MSVC intrinsics. Newer versions likely just issue a warning, but the MSVC documentation says to include the header file for the intrinsics we use. GCC and Clang can "pretend" to be MSVC on Windows, so extra checks are needed in tuklib_integer.h to only include <intrin.h> when it will is actually needed.
* tuklib_integer: Use __builtin_clz() with Clang.Jia Tan2023-04-251-3/+3
| | | | | | | | | Clang has support for __builtin_clz(), but previously Clang would fallback to either the MSVC intrinsic or the regular C code. This was discovered due to a bug where a new version of Clang required the <intrin.h> header file in order to use the MSVC intrinsics. Thanks to Anton Kochkov for notifying us about the bug.
* liblzma: Update project maintainers in lzma.h.Lasse Collin2023-04-251-1/+1
| | | | AUTHORS was updated earlier, lzma.h was simply forgotten.
* liblzma: Cleans up old commented out code.Jia Tan2023-04-251-11/+0
|
* CMake: Update liblzma-config.cmake generation.Jia Tan2023-04-251-11/+22
| | | | | Now that the threading is configurable, the liblzma CMake package only needs the threading library when using POSIX threads.
* CMake: Allows setting thread method.Jia Tan2023-04-251-40/+104
| | | | | | | | | | | | | The thread method is now configurable for the CMake build. It matches the Autotools build by allowing ON (pick the best threading method), OFF (no threading), posix, win95, and vista. If both Windows and posix threading are both available, then ON will choose Windows threading. Windows threading will also not use: target_link_libraries(liblzma Threads::Threads) since on systems like MinGW-w64 it would link the posix threads without purpose.
* CMake: Only build xzdec if decoders are enabled.Jia Tan2023-04-251-1/+1
|
* Build: Removes redundant check for LZMA1 filter support.Jia Tan2023-04-251-4/+1
|
* CMake: Bump maximum policy version to 3.26.Lasse Collin2023-04-251-1/+1
| | | | | | It adds only one new policy related to FOLDERS which we don't use. This makes it clear that the code is compatible with the policies up to 3.26.
* CMake: Conditionally build xz list.* files if decoders are enabled.Jia Tan2023-04-251-2/+7
|
* CMake: Allow configuring features as cache variables.Jia Tan2023-04-251-137/+391
| | | | | | | This allows users to change the features they build either in CMakeCache.txt or by using a CMake GUI. The sources built for liblzma are affected by this too, so only the necessary files will be compiled.
* Build: Add a comment that AC_PROG_CC_C99 is needed for Autoconf 2.69.Lasse Collin2023-03-211-0/+3
| | | | | It's obsolete in Autoconf >= 2.70 and just an alias for AC_PROG_CC but Autoconf 2.69 requires AC_PROG_CC_C99 to get a C99 compiler.
* Build: configure.ac: Use AS_IF and AS_CASE where required.Lasse Collin2023-03-211-15/+15
| | | | | | | This makes no functional difference in the generated configure (at least with the Autotools versions I have installed) but this change might prevent future bugs like the one that was just fixed in the commit 5a5bd7f871818029d5ccbe189f087f591258c294.
* Update THANKS.Lasse Collin2023-03-211-0/+1
|
* Build: Fix --disable-threads breaking the building of shared libs.Lasse Collin2023-03-211-8/+8
| | | | | | | | | | | | | | | | | | | | | | | This is broken in the releases 5.2.6 to 5.4.2. A workaround for these releases is to pass EGREP='grep -E' as an argument to configure in addition to --disable-threads. The problem appeared when m4/ax_pthread.m4 was updated in the commit 6629ed929cc7d45a11e385f357ab58ec15e7e4ad which introduced the use of AC_EGREP_CPP. AC_EGREP_CPP calls AC_REQUIRE([AC_PROG_EGREP]) to set the shell variable EGREP but this was only executed if POSIX threads were enabled. Libtool code also has AC_REQUIRE([AC_PROG_EGREP]) but Autoconf omits it as AC_PROG_EGREP has already been required earlier. Thus, if not using POSIX threads, the shell variable EGREP would be undefined in the Libtool code in configure. ax_pthread.m4 is fine. The bug was in configure.ac which called AX_PTHREAD conditionally in an incorrect way. Using AS_CASE ensures that all AC_REQUIREs get always run. Thanks to Frank Busse for reporting the bug. Fixes: https://github.com/tukaani-project/xz/issues/45
* liblzma: Silence -Wsign-conversion in SSE2 code in memcmplen.h.Lasse Collin2023-03-191-1/+2
| | | | | Thanks to Christian Hesse for reporting the issue. Fixes: https://github.com/tukaani-project/xz/issues/44
* Bump version and soname for 5.4.2.v5.4.2Jia Tan2023-03-182-2/+2
|
* Add NEWS for 5.4.2.Jia Tan2023-03-181-0/+48
|
* Update the copy of GNU GPLv3 from gnu.org to COPYING.GPLv3.Lasse Collin2023-03-181-4/+4
|
* Change a few HTTP URLs to HTTPS.Lasse Collin2023-03-188-19/+19
| | | | The xz man page timestamp was intentionally left unchanged.
* CMake: Fix typo in a comment.Jia Tan2023-03-181-1/+1
|
* Windows: build.bash: Copy liblzma API docs to the output package.Lasse Collin2023-03-181-1/+2
|
* Windows: Add microlzma_*.c to the VS project files.Lasse Collin2023-03-176-0/+12
| | | | These should have been included in 5.3.2alpha already.
* CMake: Add microlzma_*.c to the build.Lasse Collin2023-03-171-0/+2
| | | | These should have been included in 5.3.2alpha already.
* Build: Update comments about unaligned access to mention 64-bit.Lasse Collin2023-03-172-6/+5
|
* Tests: Update .gitignore.Lasse Collin2023-03-171-1/+2
|
* po4a/update-po: Display the script name consistently in error messages.Lasse Collin2023-03-171-1/+1
|
* Doc: Rename Doxygen HTML doc directory name liblzma => api.Jia Tan2023-03-175-22/+22
| | | | | | | When the docs are installed, calling the directory "liblzma" is confusing since multiple other files in the doc directory are for liblzma. This should also make it more natural for distros when they package the documentation.
* liblzma: Remove note from lzma_options_bcj about the ARM64 exception.Jia Tan2023-03-171-1/+1
| | | | | This was left in by mistake since an early version of the ARM64 filter used a different struct for its options.
* COPYING: Add a note about the included Doxygen-generated HTML.Lasse Collin2023-03-171-0/+11
|
* Doc: Update PACKAGERS with details about liblzma API docs install.Jia Tan2023-03-171-6/+16
|
* liblzma: Add set lzma.h as the main page for Doxygen documentation.Jia Tan2023-03-1715-29/+2
| | | | | | | | | | | | | | | | | | The \mainpage command is used in the first block of comments in lzma.h. This changes the previously nearly empty index.html to use the first comment block in lzma.h for its contents. lzma.h is no longer documented separately, but this is for the better since lzma.h only defined a few macros that users do not need to use. The individual API header files all have a disclaimer that they should not be #included directly, so there should be no confusion on the fact that lzma.h should be the only header used by applications. Additionally, the note "See ../lzma.h for information about liblzma as a whole." was removed since lzma.h is now the main page of the generated HTML and does not have its own page anymore. So it would be confusing in the HTML version and was only a "nice to have" when browsing the source files.
* Build: Generate doxygen documentation in autogen.sh.Jia Tan2023-03-171-6/+29
| | | | | | Another command line option (--no-doxygen) was added to disable creating the doxygen documenation in cases where it not wanted or if the doxygen tool is not installed.
* Build: Create doxygen/update-doxygen script.Jia Tan2023-03-172-0/+112
| | | | | | | | | | | | | | | | This is a helper script to generate the Doxygen documentation. It can be run in 'liblzma' or 'internal' mode by setting the first argument. It will default to 'liblzma' mode and only generate documentation for the liblzma API header files. The helper script will be run during the custom mydist hook when we create releases. This hook already alters the source directory, so its fine to do it here too. This way, we can include the Doxygen generated files in the distrubtion and when installing. In 'liblzma' mode, the JavaScript is stripped from the .html files and the .js files are removed. This avoids license hassle from jQuery and other libraries that Doxygen 1.9.6 puts into jquery.js in minified form.
* Build: Install Doxygen docs and include in distribution if generated.Jia Tan2023-03-171-0/+18
| | | | | | | | | Added a install-data-local target to install the Doxygen documentation only when it has been generated. In order to correctly remove the docs, a corresponding uninstall-local target was added. If the doxygen docs exist in the source tree, they will also be included in the distribution now too.
* Doxygen: Refactor Doxyfile.in to doxygen/Doxyfile.Jia Tan2023-03-175-1237/+2686
| | | | | | | | | | | | | | | Instead of having Doxyfile.in configured by Autoconf, the Doxyfile can have the tags that need to be configured piped into the doxygen command through stdin with the overrides after Doxyfile's contents. Going forward, the documentation should be generated in two different modes: liblzma or internal. liblzma is useful for most users. It is the documentation for just the liblzma API header files. This is the default. internal is for people who want to understand how xz and liblzma work. It might be useful for people who want to contribute to the project.
* Tests: Remove unused macros and functions.Jia Tan2023-03-131-75/+0
|
* Tests: Refactors existing lzma_index tests.Jia Tan2023-03-131-544/+1492
| | | | | | Converts the existing lzma_index tests into tuktests and covers every API function from index.h except for lzma_file_info_decoder, which can be tested in the future.
* xz: Make Capsicum sandbox more strict with stdin and stdout.Lasse Collin2023-03-111-0/+8
|
* xz: Don't fail if Capsicum is enabled but kernel doesn't support it.Lasse Collin2023-03-111-3/+12
| | | | | | | | | | | | | | | | | | | | | | | (This commit combines related commits from the master branch.) If Capsicum support is missing from the kernel or xz is being run in an emulator that lacks Capsicum suport, the syscalls will fail and set errno to ENOSYS. Previously xz would display and error and exit, making xz unusable. Now it will check for ENOSYS and run without sandbox support. Other tools like ssh behave similarly. Displaying a warning for missing Capsicum support was considered but such extra output would quickly become annoying. It would also break test_scripts.sh in "make check". Also move cap_enter() to be the first step instead of the last one. This matches the example in the cap_rights_limit(2) man page. With the current code it shouldn't make any practical difference though. Thanks to Xin Li for the bug report, suggesting a fix, and testing: https://github.com/tukaani-project/xz/pull/43 Thanks to Jia Tan for most of the original commits.
* Build: Adjust CMake version search regex.Jia Tan2023-03-071-0/+2
| | | | | | | Now, the LZMA_VERSION_MAJOR, LZMA_VERSION_MINOR, and LZMA_VERSION_PATCH macros do not need to be on consecutive lines in version.h. They can be separated by more whitespace, comments, or even other content, as long as they appear in the proper order (major, minor, patch).
* liblzma: Improve documentation for version.h.Jia Tan2023-03-071-7/+22
| | | | | Specified parameter and return values for API functions and documented a few more of the macros.
* liblzma: Clarify lzma_lzma_preset() documentation in lzma12.h.Jia Tan2023-03-071-0/+5
| | | | | | | | | | | lzma_lzma_preset() does not guarentee that the lzma_options_lzma are usable in an encoder even if it returns false (success). If liblzma is built with default configurations, then the options will always be usable. However if the match finders hc3, hc4, or bt4 are disabled, then the options may not be usable depending on the preset level requested. The documentation was updated to reflect this complexity, since this behavior was unclear before.
* CMake: Require that the C compiler supports C99 or a newer standard.Lasse Collin2023-03-071-0/+8
| | | | | | Thanks to autoantwort for reporting the issue and suggesting a different patch: https://github.com/tukaani-project/xz/pull/42
* Tests: Small tweak to test-vli.c.Jia Tan2023-03-071-0/+2
| | | | | | The static global variables can be disabled if encoders and decoders are not built. If they are not disabled and -Werror is used, it will cause an usused warning as an error.