Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package bzip3 for openSUSE:Factory checked in at 2023-06-04 00:12:42 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/bzip3 (Old) and /work/SRC/openSUSE:Factory/.bzip3.new.15902 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "bzip3" Sun Jun 4 00:12:42 2023 rev:3 rq:1090566 version:1.3.1 Changes: -------- --- /work/SRC/openSUSE:Factory/bzip3/bzip3.changes 2023-05-05 15:57:36.376195530 +0200 +++ /work/SRC/openSUSE:Factory/.bzip3.new.15902/bzip3.changes 2023-06-04 00:12:53.709638971 +0200 @@ -1,0 +2,14 @@ +Fri Jun 2 20:53:07 UTC 2023 - Dirk Müller <[email protected]> + +- update to 1.3.1: + * Verbose mode in the tool now prints the extra statistics also + during testing, not just encoding or decoding. + * Update the CI pipeline to Debian Bullseye. + * Fix a minor issue with side effects in RLE decoding. + * Explicitly disable `-march=native` for releases. + * Fix a bug in the tool reported by Adam Borowski regarding + -t/-d input buffer checks. + * Fix an issue with the current input offset not being taken + into account in bz3_compress. + +------------------------------------------------------------------- Old: ---- bzip3-1.3.0.tar.gz New: ---- bzip3-1.3.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ bzip3.spec ++++++ --- /var/tmp/diff_new_pack.pNHxea/_old 2023-06-04 00:12:54.301642510 +0200 +++ /var/tmp/diff_new_pack.pNHxea/_new 2023-06-04 00:12:54.305642534 +0200 @@ -18,10 +18,10 @@ %define libname libbzip3-0 Name: bzip3 -Version: 1.3.0 +Version: 1.3.1 Release: 0 Summary: Compressor with BurrowsâWheeler transform and PPM context modeling -License: LGPL-3.0-or-later AND BSD-2-Clause +License: BSD-2-Clause AND LGPL-3.0-or-later URL: https://github.com/kspalaiologos/bzip3 Source0: https://github.com/kspalaiologos/bzip3/releases/download/%{version}/bzip3-%{version}.tar.gz Source1: baselibs.conf ++++++ bzip3-1.3.0.tar.gz -> bzip3-1.3.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bzip3-1.3.0/.tarball-version new/bzip3-1.3.1/.tarball-version --- old/bzip3-1.3.0/.tarball-version 2023-04-03 21:31:09.000000000 +0200 +++ new/bzip3-1.3.1/.tarball-version 2023-05-20 13:19:23.000000000 +0200 @@ -1 +1 @@ -1.3.0 \ No newline at end of file +1.3.1 \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bzip3-1.3.0/NEWS new/bzip3-1.3.1/NEWS --- old/bzip3-1.3.0/NEWS 2023-04-03 21:30:59.000000000 +0200 +++ new/bzip3-1.3.1/NEWS 2023-05-20 13:19:13.000000000 +0200 @@ -78,3 +78,11 @@ * resolve alignment issues on SPARC/s390x. * fix the security issues arising from libsais. * due to these changes, updating is strongly encouraged. + +v1.3.1: +* Verbose mode in the tool now prints the extra statistics also during testing, not just encoding or decoding. +* Update the CI pipeline to Debian Bullseye. +* Fix a minor issue with side effects in RLE decoding. +* Explicitly disable `-march=native` for releases. +* Fix a bug in the tool reported by Adam Borowski regarding -t/-d input buffer checks. +* Fix an issue with the current input offset not being taken into account in bz3_compress. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bzip3-1.3.0/README.md new/bzip3-1.3.1/README.md --- old/bzip3-1.3.0/README.md 2023-04-03 21:30:59.000000000 +0200 +++ new/bzip3-1.3.1/README.md 2023-05-20 13:19:13.000000000 +0200 @@ -89,6 +89,8 @@ * lrzip + lzma - 64'774'202 bytes. * lrzip + bzip2 - 75'685'065 bytes. +For further benchmarks against Turbo-Range-Coder and BSC, check [powturbo's benchmark](https://github.com/powturbo/Turbo-Range-Coder) of bzip3, bzip2, bsc and others. + ## Disclaimers **I TAKE NO RESPONSIBILITY FOR ANY LOSS OF DATA ARISING FROM THE USE OF THIS PROGRAM/LIBRARY, HOWSOEVER CAUSED.** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bzip3-1.3.0/bz3grep.1 new/bzip3-1.3.1/bz3grep.1 --- old/bzip3-1.3.0/bz3grep.1 2023-04-03 21:31:09.000000000 +0200 +++ new/bzip3-1.3.1/bz3grep.1 2023-05-20 13:19:22.000000000 +0200 @@ -1,4 +1,4 @@ -.TH bz3grep 1 "03 April 2023" "version v1.3.0" +.TH bz3grep 1 "20 May 2023" "version v1.3.1" . .SH "NAME" \fBbz3grep\fR \- print lines matching a pattern in bzip3\-compressed files diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bzip3-1.3.0/bz3less.1 new/bzip3-1.3.1/bz3less.1 --- old/bzip3-1.3.0/bz3less.1 2023-04-03 21:31:09.000000000 +0200 +++ new/bzip3-1.3.1/bz3less.1 2023-05-20 13:19:22.000000000 +0200 @@ -1,4 +1,4 @@ -.TH bz3less 1 "03 April 2023" "version v1.3.0" +.TH bz3less 1 "20 May 2023" "version v1.3.1" . .SH "NAME" \fBbz3less\fR \- view bzip3\-compressed files diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bzip3-1.3.0/bz3more.1 new/bzip3-1.3.1/bz3more.1 --- old/bzip3-1.3.0/bz3more.1 2023-04-03 21:31:09.000000000 +0200 +++ new/bzip3-1.3.1/bz3more.1 2023-05-20 13:19:22.000000000 +0200 @@ -1,4 +1,4 @@ -.TH bz3more 1 "03 April 2023" "version v1.3.0" +.TH bz3more 1 "20 May 2023" "version v1.3.1" . .SH "NAME" \fBbz3more\fR \- view bzip3\-compressed files diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bzip3-1.3.0/bz3most.1 new/bzip3-1.3.1/bz3most.1 --- old/bzip3-1.3.0/bz3most.1 2023-04-03 21:31:09.000000000 +0200 +++ new/bzip3-1.3.1/bz3most.1 2023-05-20 13:19:22.000000000 +0200 @@ -1,4 +1,4 @@ -.TH bz3most 1 "03 April 2023" "version v1.3.0" +.TH bz3most 1 "20 May 2023" "version v1.3.1" . .SH "NAME" \fBbz3most\fR \- view bzip3\-compressed files diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bzip3-1.3.0/bzip3.1 new/bzip3-1.3.1/bzip3.1 --- old/bzip3-1.3.0/bzip3.1 2023-04-03 21:31:09.000000000 +0200 +++ new/bzip3-1.3.1/bzip3.1 2023-05-20 13:19:22.000000000 +0200 @@ -1,4 +1,4 @@ -.TH bzip3 1 "03 April 2023" "version v1.3.0" +.TH bzip3 1 "20 May 2023" "version v1.3.1" . .SH NAME bzip3 \- an efficient statistical file compressor and spiritual successor diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bzip3-1.3.0/configure new/bzip3-1.3.1/configure --- old/bzip3-1.3.0/configure 2023-04-03 21:31:03.000000000 +0200 +++ new/bzip3-1.3.1/configure 2023-05-20 13:19:17.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for bzip3 1.3.0. +# Generated by GNU Autoconf 2.71 for bzip3 1.3.1. # # Report bugs to <https://github.com/kspalaiologos/bzip3>. # @@ -621,8 +621,8 @@ # Identity of this package. PACKAGE_NAME='bzip3' PACKAGE_TARNAME='bzip3' -PACKAGE_VERSION='1.3.0' -PACKAGE_STRING='bzip3 1.3.0' +PACKAGE_VERSION='1.3.1' +PACKAGE_STRING='bzip3 1.3.1' PACKAGE_BUGREPORT='https://github.com/kspalaiologos/bzip3' PACKAGE_URL='' @@ -1379,7 +1379,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures bzip3 1.3.0 to adapt to many kinds of systems. +\`configure' configures bzip3 1.3.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1450,7 +1450,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of bzip3 1.3.0:";; + short | recursive ) echo "Configuration of bzip3 1.3.1:";; esac cat <<\_ACEOF @@ -1571,7 +1571,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -bzip3 configure 1.3.0 +bzip3 configure 1.3.1 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1827,7 +1827,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by bzip3 $as_me 1.3.0, which was +It was created by bzip3 $as_me 1.3.1, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3097,7 +3097,7 @@ # Define the identity of the package. PACKAGE='bzip3' - VERSION='1.3.0' + VERSION='1.3.1' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -14614,7 +14614,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by bzip3 $as_me 1.3.0, which was +This file was extended by bzip3 $as_me 1.3.1, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -14673,7 +14673,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -bzip3 config.status 1.3.0 +bzip3 config.status 1.3.1 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bzip3-1.3.0/include/common.h new/bzip3-1.3.1/include/common.h --- old/bzip3-1.3.0/include/common.h 2023-04-03 21:30:59.000000000 +0200 +++ new/bzip3-1.3.1/include/common.h 2023-05-20 13:19:13.000000000 +0200 @@ -1,7 +1,7 @@ /* * BZip3 - A spiritual successor to BZip2. - * Copyright (C) 2022 Kamila Szewczyk + * Copyright (C) 2022-2023 Kamila Szewczyk * * This program is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published by the Free diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bzip3-1.3.0/include/libbz3.h new/bzip3-1.3.1/include/libbz3.h --- old/bzip3-1.3.0/include/libbz3.h 2023-04-03 21:30:59.000000000 +0200 +++ new/bzip3-1.3.1/include/libbz3.h 2023-05-20 13:19:13.000000000 +0200 @@ -1,7 +1,7 @@ /* * BZip3 - A spiritual successor to BZip2. - * Copyright (C) 2022 Kamila Szewczyk + * Copyright (C) 2022-2023 Kamila Szewczyk * * This program is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published by the Free diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bzip3-1.3.0/src/libbz3.c new/bzip3-1.3.1/src/libbz3.c --- old/bzip3-1.3.0/src/libbz3.c 2023-04-03 21:30:59.000000000 +0200 +++ new/bzip3-1.3.1/src/libbz3.c 2023-05-20 13:19:13.000000000 +0200 @@ -1,7 +1,7 @@ /* * BZip3 - A spiritual successor to BZip2. - * Copyright (C) 2022 Kamila Szewczyk + * Copyright (C) 2022-2023 Kamila Szewczyk * * This program is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published by the Free @@ -80,7 +80,7 @@ #define MATCH 0xf2 -static u32 lzp_upcast(u8 * ptr) { +static u32 lzp_upcast(const u8 * ptr) { // val = *(u32 *)ptr; - written this way to avoid UB u32 val; memcpy(&val, ptr, sizeof(val)); @@ -186,7 +186,7 @@ } const u8 * ref = outs + val; - u8 * oe = out + len; + const u8 * oe = out + len; if (oe > out_end) oe = out_end; while (out < oe) *out++ = *ref++; @@ -282,7 +282,7 @@ while (op < outlen && ip < maxin) { c = in[ip++]; if (t[c]) { - for (run = 0; (pc = in[ip++]) == 255 && ip < maxin; run += 255) + for (run = 0; ip < maxin && (pc = in[ip++]) == 255; run += 255) ; run += pc + 1; for (; run > 0 && op < outlen; --run) out[op++] = c; @@ -832,10 +832,11 @@ *out_size += 13; // Compress and write the blocks. + size_t in_offset = 0; for (u32 i = 0; i < n_blocks; i++) { s32 size = block_size; if (i == n_blocks - 1) size = in_size % block_size; - memcpy(compression_buf, in, size); + memcpy(compression_buf, in + in_offset, size); s32 out_size_block = bz3_encode_block(state, compression_buf, size); if (bz3_last_error(state) != BZ3_OK) { s8 last_error = state->last_error; @@ -847,6 +848,7 @@ write_neutral_s32(out + *out_size, out_size_block); write_neutral_s32(out + *out_size + 4, size); *out_size += out_size_block + 8; + in_offset += size; } bz3_free(state); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bzip3-1.3.0/src/main.c new/bzip3-1.3.1/src/main.c --- old/bzip3-1.3.0/src/main.c 2023-04-03 21:30:59.000000000 +0200 +++ new/bzip3-1.3.1/src/main.c 2023-05-20 13:19:13.000000000 +0200 @@ -1,7 +1,7 @@ /* * BZip3 - A spiritual successor to BZip2. - * Copyright (C) 2022 Kamila Szewczyk + * Copyright (C) 2022-2023 Kamila Szewczyk * * This program is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published by the Free @@ -47,7 +47,7 @@ static void version() { fprintf(stdout, "bzip3 " VERSION "\n" - "Copyright (C) by Kamila Szewczyk, 2022.\n" + "Copyright (C) by Kamila Szewczyk, 2022-2023.\n" "License: GNU Lesser GPL version 3 <https://www.gnu.org/licenses/lgpl-3.0.en.html>\n"); } @@ -207,7 +207,7 @@ return 1; } - u8 * buffer = malloc(block_size + block_size / 50 + 32); + u8 * buffer = malloc(bz3_bound(block_size)); if (!buffer) { fprintf(stderr, "Failed to allocate memory.\n"); @@ -244,7 +244,7 @@ new_size = read_neutral_s32(byteswap_buf); xread_noeof(&byteswap_buf, 1, 4, input_des); old_size = read_neutral_s32(byteswap_buf); - if (old_size > block_size + 31) { + if (old_size > bz3_bound(block_size) || new_size > bz3_bound(block_size)) { fprintf(stderr, "Failed to decode a block: Inconsistent headers.\n"); return 1; } @@ -265,12 +265,13 @@ new_size = read_neutral_s32(byteswap_buf); xread_noeof(&byteswap_buf, 1, 4, input_des); old_size = read_neutral_s32(byteswap_buf); - if (old_size > block_size + 31) { + if (old_size > bz3_bound(block_size) || new_size > bz3_bound(block_size)) { fprintf(stderr, "Failed to decode a block: Inconsistent headers.\n"); return 1; } xread_noeof(buffer, 1, new_size, input_des); bytes_read += 8 + new_size; + bytes_written += old_size; if (bz3_decode_block(state, buffer, new_size, old_size) == -1) { fprintf(stderr, "Failed to decode a block: %s\n", bz3_strerror(state)); return 1; @@ -342,7 +343,7 @@ sizes[i] = read_neutral_s32(byteswap_buf); xread_noeof(&byteswap_buf, 1, 4, input_des); old_sizes[i] = read_neutral_s32(byteswap_buf); - if (old_sizes[i] > block_size + 31) { + if (old_sizes[i] > bz3_bound(block_size) || sizes[i] > bz3_bound(block_size)) { fprintf(stderr, "Failed to decode a block: Inconsistent headers.\n"); return 1; } @@ -370,12 +371,13 @@ sizes[i] = read_neutral_s32(byteswap_buf); xread_noeof(&byteswap_buf, 1, 4, input_des); old_sizes[i] = read_neutral_s32(byteswap_buf); - if (old_sizes[i] > block_size + 31) { + if (old_sizes[i] > bz3_bound(block_size) || sizes[i] > bz3_bound(block_size)) { fprintf(stderr, "Failed to decode a block: Inconsistent headers.\n"); return 1; } xread_noeof(buffers[i], 1, sizes[i], input_des); bytes_read += 8 + sizes[i]; + bytes_written += old_sizes[i]; } bz3_decode_blocks(states, buffers, sizes, old_sizes, i); for (s32 j = 0; j < i; j++) { @@ -403,7 +405,8 @@ fprintf(stderr, "\t%" PRIu64 " -> %" PRIu64 " bytes, %.2f%%, %.2f bpb\n", bytes_read, bytes_written, (double)bytes_read * 100.0 / bytes_written, (double)bytes_read * 8.0 / bytes_written); else - fprintf(stderr, "OK, %" PRIu64 " bytes read.\n", bytes_read); + fprintf(stderr, "\tOK, %" PRIu64 " -> %" PRIu64 " bytes, %.2f%%, %.2f bpb\n", bytes_read, bytes_written, + (double)bytes_read * 100.0 / bytes_written, (double)bytes_read * 8.0 / bytes_written); } return 0;
