Merge topic 'update-liblzma'

60212979 Merge branch 'upstream-liblzma' into update-liblzma
e4d39146 liblzma 2014-12-21 (265e5ffb)
d4f52404 liblzma: Revise update script to get version 5.0.8
bf969198 Merge branch 'upstream-liblzma' into update-liblzma
ca4276e4 liblzma: Remove CMake-specific README
d38a37ea liblzma 2013-06-30 (b69900ed)
ec8f744a Add script to update liblzma from upstream
This commit is contained in:
Brad King 2016-06-30 09:47:33 -04:00 committed by CMake Topic Stage
commit 21afc0291e
7 changed files with 41 additions and 73 deletions

View File

@ -0,0 +1,30 @@
#!/usr/bin/env bash
set -e
set -x
shopt -s dotglob
readonly name="liblzma"
readonly ownership="liblzma upstream <xz-devel@tukaani.org>"
readonly subtree="Utilities/cmliblzma"
readonly repo="http://git.tukaani.org/xz.git"
readonly tag="v5.0.8"
readonly shortlog=false
readonly paths="
COPYING
src/common/common_w32res.rc
src/common/sysdefs.h
src/common/tuklib_integer.h
src/liblzma/
"
extract_source () {
git_archive
pushd "${extractdir}/${name}-reduced"
mv src/common .
mv src/liblzma .
rmdir src
popd
}
. "${BASH_SOURCE%/*}/update-third-party.bash"

View File

@ -1,66 +0,0 @@
The Utilities/cmliblzma directory contains a reduced distribution
of the liblzma source tree with only the library source code and
CMake build system. It is not a submodule; the actual content is part
of our source tree and changes can be made and committed directly.
We update from upstream using Git's "subtree" merge strategy. A
special branch contains commits of upstream liblzma snapshots and
nothing else. No Git ref points explicitly to the head of this
branch, but it is merged into our history.
Update liblzma from upstream as follows. Create a local branch to
explicitly reference the upstream snapshot branch head:
git branch liblzma-upstream c289e634
Use a temporary directory to checkout the branch:
mkdir liblzma-tmp
cd liblzma-tmp
git init
git pull .. liblzma-upstream
rm -rf *
Now place the (reduced) liblzma content in this directory. See
instructions shown by
git log c289e634
for help extracting the content from the upstream svn repo. Then run
the following commands to commit the new version. Substitute the
appropriate date and version number:
git add --all
GIT_AUTHOR_NAME='liblzma upstream' \
GIT_AUTHOR_EMAIL='xz-devel@tukaani.org' \
GIT_AUTHOR_DATE='Sun Jun 30 19:55:49 2013 +0300' \
git commit -m 'liblzma 5.0.5-gb69900ed (reduced)' &&
git commit --amend
Edit the commit message to describe the procedure used to obtain the
content. Then push the changes back up to the main local repository:
git push .. HEAD:liblzma-upstream
cd ..
rm -rf liblzma-tmp
Create a topic in the main repository on which to perform the update:
git checkout -b update-liblzma master
Merge the liblzma-upstream branch as a subtree:
git merge -s recursive -X subtree=Utilities/cmliblzma \
liblzma-upstream
If there are conflicts, resolve them and commit. Build and test the
tree. Commit any additional changes needed to succeed.
Finally, run
git rev-parse --short=8 liblzma-upstream
to get the commit from which the liblzma-upstream branch must be started
on the next update. Edit the "git branch liblzma-upstream" line above to
record it, and commit this file.

View File

@ -318,6 +318,9 @@ extern LZMA_API(lzma_ret) lzma_block_header_encode(
* The size of the Block Header must have already been decoded with
* lzma_block_header_size_decode() macro and stored to block->header_size.
*
* The integrity check type from Stream Header must have been stored
* to block->check.
*
* block->filters must have been allocated, but they don't need to be
* initialized (possible existing filter options are not freed).
*

View File

@ -22,7 +22,7 @@
*/
#define LZMA_VERSION_MAJOR 5
#define LZMA_VERSION_MINOR 0
#define LZMA_VERSION_PATCH 5
#define LZMA_VERSION_PATCH 8
#define LZMA_VERSION_STABILITY LZMA_VERSION_STABILITY_STABLE
#ifndef LZMA_VERSION_COMMIT

View File

@ -20,7 +20,7 @@
#include "crc_macros.h"
// If you make any changes, do some bench marking! Seemingly unrelated
// If you make any changes, do some benchmarking! Seemingly unrelated
// changes can very easily ruin the performance (and very probably is
// very compiler dependent).
extern LZMA_API(uint32_t)

View File

@ -80,7 +80,7 @@ static const uint32_t SHA256_K[64] = {
static void
transform(uint32_t state[], const uint32_t data[])
transform(uint32_t state[8], const uint32_t data[16])
{
uint32_t W[16];
uint32_t T[8];

View File

@ -16,8 +16,9 @@
extern LZMA_API(lzma_bool)
lzma_lzma_preset(lzma_options_lzma *options, uint32_t preset)
{
static const uint8_t dict_size_values[] = { 18, 20, 21, 22, 22, 23, 23, 24, 25, 26 };
static const uint8_t depth_values[] = { 4, 8, 24, 48 };
static const uint8_t dict_pow2[]
= { 18, 20, 21, 22, 22, 23, 23, 24, 25, 26 };
static const uint8_t depths[] = { 4, 8, 24, 48 };
const uint32_t level = preset & LZMA_PRESET_LEVEL_MASK;
const uint32_t flags = preset & ~LZMA_PRESET_LEVEL_MASK;
@ -33,13 +34,13 @@ lzma_lzma_preset(lzma_options_lzma *options, uint32_t preset)
options->lp = LZMA_LP_DEFAULT;
options->pb = LZMA_PB_DEFAULT;
options->dict_size = UINT32_C(1) << dict_size_values[level];
options->dict_size = UINT32_C(1) << dict_pow2[level];
if (level <= 3) {
options->mode = LZMA_MODE_FAST;
options->mf = level == 0 ? LZMA_MF_HC3 : LZMA_MF_HC4;
options->nice_len = level <= 1 ? 128 : 273;
options->depth = depth_values[level];
options->depth = depths[level];
} else {
options->mode = LZMA_MODE_NORMAL;
options->mf = LZMA_MF_BT4;