Revisions of xz
- Update xz from 5.0 to xz 5.2 xz 5.2 introduces parallel compression. This update should not break anything because xz is very carefully and compatible maintained by upstream. I'm using this 5.2 package since years on 13.1 and 42.1 without any problems. The library is even binary compatible. BTW xz 5.0 already has the --threads option too with no implementation for forward compatibility. See the most interesting changes (xz 5.2.0): * liblzma: - Added support for multi-threaded compression - Made the uses of lzma_allocator const correct. - Added lzma_block_uncomp_encode() to create uncompressed .xz Blocks using LZMA2 uncompressed chunks. - Added support for LZMA_IGNORE_CHECK. - A few speed optimizations were made. - Added support for symbol versioning. It is enabled by default on GNU/Linux, other GNU-based systems, and FreeBSD. * xz: - Fixed a race condition in the signal handling - Multi-threaded compression can be enabled with the --threads (-T) option. - New command line options in xz: --single-stream, --block-size=SIZE, --block-list=SIZES, --flush-timeout=TIMEOUT, and --ignore-check. - xz -lvv now shows the minimum xz version that is required to decompress the file. Currently it is 5.0.0 for all supported .xz files except files with empty LZMA2 streams require 5.0.2. * xzdiff and xzgrep now support .lzo files if lzop is installed. The .tzo suffix is also recognized as a shorthand for .tar.lzo. old: openSUSE:Leap:42.2/xz new: Archiving/xz rev ef924c9b4765355ee53ad2052d456223 Index: xz.changes =================================================================== --- xz.changes (revision 3) +++ xz.changes (revision ef924c9b4765355ee53ad2052d456223) @@ -1,4 +1,104 @@ ------------------------------------------------------------------- +Sun Mar 13 09:40:51 UTC 2016 - mpluskal@suse.com + +- Install xznew with correct permissions (boo#970842) + +------------------------------------------------------------------- +Sun Feb 14 09:21:33 UTC 2016 - tchvatal@suse.com + +- Do not split out lang_package conditional, used in sle10 out of support + +------------------------------------------------------------------- +Tue Nov 10 14:34:14 UTC 2015 - hpj@urpla.net + +- fix conversion: spell the missed parts correctly + +------------------------------------------------------------------- +Sun Nov 8 13:09:53 UTC 2015 - hpj@urpla.net + +- add xznew{,.1}, converted from bznew + +------------------------------------------------------------------- +Tue Sep 29 21:28:21 UTC 2015 - astieger@suse.com + +- xz 5.2.2: + * Omitted the use of pipe2() even if it is available to avoid + portability issues with some old Linux and glibc combinations + * Updated German translation + * Documented that threaded decompression is not implemented yet + +------------------------------------------------------------------- +Fri Feb 27 18:48:48 UTC 2015 - astieger@suse.com + +- xz 5.2.1: + * Fixed a compression-ratio regression in fast mode of LZMA1 and + LZMA2. + +------------------------------------------------------------------- +Wed Jan 21 11:21:32 UTC 2015 - rguenther@suse.com + +- Avoid running configure twice and using -fprofile-generate or + -fprofile-use for compiling configure tests when profiling. + +----------------------------------------------------------------- +Thu Dec 25 20:23:28 UTC 2014 - andreas.stieger@gmx.de + +- xz 5.2.0: + * liblzma: + - Added support for multi-threaded compression + - Made the uses of lzma_allocator const correct. + - Added lzma_block_uncomp_encode() to create uncompressed + .xz Blocks using LZMA2 uncompressed chunks. + - Added support for LZMA_IGNORE_CHECK. + - A few speed optimizations were made. + - Added support for symbol versioning. It is enabled by default + on GNU/Linux, other GNU-based systems, and FreeBSD. + * xz: + - Fixed a race condition in the signal handling + - Multi-threaded decompression can be enabled with the + --threads (-T) option. + - New command line options in xz: --single-stream, + --block-size=SIZE, --block-list=SIZES, + --flush-timeout=TIMEOUT, and --ignore-check. + - xz -lvv now shows the minimum xz version that is required to + decompress the file. Currently it is 5.0.0 for all supported + .xz files except files with empty LZMA2 streams require 5.0.2. + * xzdiff and xzgrep now support .lzo files if lzop is installed. + The .tzo suffix is also recognized as a shorthand for .tar.lzo. + +------------------------------------------------------------------- +Thu Dec 25 20:17:06 UTC 2014 - andreas.stieger@gmx.de + +- xz 5.0.8: + * Fixed an old bug in xzgrep that affected OpenBSD and probably + a few other operating systems too. + * Updated French and German translations. + * Minor build system update + +------------------------------------------------------------------- +Fri Dec 19 09:43:36 UTC 2014 - meissner@suse.com + +- build with PIE support. + +------------------------------------------------------------------- +Thu Dec 18 19:37:09 UTC 2014 - crrodriguez@opensuse.org + +- Build XZ with full RELRO. + +------------------------------------------------------------------- +Tue Sep 23 00:11:27 UTC 2014 - andreas.stieger@gmx.de + +- xz 5.0.7: + * Fix regressions introduced in 5.0.6: + - Fix building with non-GNU make. + - Fix invalid Libs.private value in liblzma.pc which broke + static linking against liblzma if the linker flags were + taken from pkg-config. +- include changes from 5.0.6: + * xzgrep now exits with status 0 if at least one file matched. + * A few minor portability and build system fixes + +------------------------------------------------------------------- Sun Nov 24 16:25:53 UTC 2013 - andreas.stieger@gmx.de - add optional -static-devel library package, intended to publish pixz for Index: xz.spec =================================================================== --- xz.spec (revision 3) +++ xz.spec (revision ef924c9b4765355ee53ad2052d456223) @@ -1,7 +1,7 @@ # # spec file for package xz # -# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,6 +16,14 @@ # +# avoid bootstrapping problem +%define _binary_payload w9.bzdio +%if 0%{?suse_version} < 1130 +%define do_profiling 0 +%endif +%ifarch aarch64 %arm %{sparc} +%define do_profiling 0 +%endif %if 0%{?centos_version} || 0%{?rhel_version} %if 0%{?centos_version} <= 600 || 0%{?rhel_version <= 600} %bcond_without static_libs @@ -23,56 +31,42 @@ %else %bcond_with static_libs %endif - Name: xz +Version: 5.2.2 +Release: 0 Summary: A Program for Compressing Files License: LGPL-2.1+ and GPL-2.0+ Group: Productivity/Archiving/Compression -Version: 5.0.5 -Release: 0 Url: http://tukaani.org/xz/ Source0: http://tukaani.org/xz/%{name}-%{version}.tar.gz Source1: http://tukaani.org/xz/%{name}-%{version}.tar.gz.sig Source2: baselibs.conf # from http://tukaani.org/misc/lasse_collin_pubkey.txt#/xz.keyring Source3: xz.keyring -BuildRoot: %{_tmppath}/%{name}-%{version}-build +Source4: xznew +Source5: xznew.1 BuildRequires: pkgconfig -Provides: lzma = %version -Obsoletes: lzma < %version - -%if 0%{?suse_version} < 1130 -%define do_profiling 0 -%endif -%ifarch aarch64 %{arm} %sparc -%define do_profiling 0 -%endif - +Provides: lzma = %{version} +Obsoletes: lzma < %{version} +BuildRoot: %{_tmppath}/%{name}-%{version}-build %if 0%{?lang_package:1} > 0 -Recommends: %name-lang +Recommends: %{name}-lang %endif -# avoid bootstrapping problem -%define _binary_payload w9.bzdio %description The xz command is a very powerful program for compressing files. - * Average compression ratio of LZMA is about 30% better than that of gzip, and 15% better than that of bzip2. - * Decompression speed is only little slower than that of gzip, being two to five times faster than bzip2. - * In fast mode, compresses faster than bzip2 with a comparable compression ratio. - * Achieving the best compression ratios takes four to even twelve times longer than with bzip2. However. this doesn't affect decompressing speed. - * Very similar command line interface to what gzip and bzip2 have. -%{?lang_package} +%lang_package %package -n liblzma5 Summary: LZMA library @@ -85,10 +79,10 @@ Summary: Development package for the LZMA library Group: Development/Libraries/C and C++ Requires: liblzma5 = %{version} -Provides: lzma-devel = %version -Obsoletes: lzma-devel < %version -Provides: lzma-alpha-devel = %version -Obsoletes: lzma-alpha-devel < %version +Provides: lzma-devel = %{version} +Obsoletes: lzma-devel < %{version} +Provides: lzma-alpha-devel = %{version} +Obsoletes: lzma-alpha-devel < %{version} %description devel This package contains the header files and libraries needed for @@ -98,39 +92,32 @@ %package static-devel Summary: Static version of LZMA library Group: Development/Libraries/C and C++ -Requires: lzma-devel = %version +Requires: lzma-devel = %{version} %description static-devel -Static library for the LZMA library +Static library for the LZMA library %endif %prep %setup -q %build -%global optflags %{optflags} -D_REENTRANT -pipe -%if %{do_profiling} -profiledir=$(mktemp -d) -trap "rm -rf $profiledir" EXIT -export CFLAGS="%optflags %{cflags_profile_generate}=$profiledir" -%endif +%global optflags %{optflags} -D_REENTRANT -pipe -fPIE +export LDFLAGS="-Wl,-z,relro,-z,now -pie" %configure \ %if ! %{with static_libs} --disable-static \ %endif --with-pic \ - --docdir=%_docdir/%name -make %{?_smp_mflags} -%if %{do_profiling} + --docdir=%{_docdir}/%{name} +%if 0%{do_profiling} +profiledir=$(mktemp -d) +trap "rm -rf $profiledir" EXIT +make %{?_smp_mflags} CFLAGS="%{optflags} %{cflags_profile_generate}=$profiledir" time make check -make clean -export CFLAGS="%optflags %{cflags_profile_feedback}=$profiledir" -%configure \ -%if %{without static_libs} - --disable-static \ -%endif - --with-pic \ - --docdir=%_docdir/%name +make clean %{?_smp_mflags} +make %{?_smp_mflags} CFLAGS="%{optflags} %{cflags_profile_feedback}=$profiledir" +%else make %{?_smp_mflags} %endif @@ -138,27 +125,21 @@ time make check %install -make install DESTDIR=$RPM_BUILD_ROOT -%{__rm} -v %{buildroot}%{_libdir}/liblzma.la +make DESTDIR=%{buildroot} install %{?_smp_mflags} +rm -v %{buildroot}%{_libdir}/liblzma.la %find_lang %{name} +install -D -m 0755 %{SOURCE4} %{buildroot}%{_bindir}/xznew +install -D -m 0644 %{SOURCE5} %{buildroot}%{_mandir}/man1/xznew.1 %post -n liblzma5 -p /sbin/ldconfig - %postun -n liblzma5 -p /sbin/ldconfig -%if 0%{?lang_package:1} > 0 - %files lang -f %{name}.lang %defattr(-, root, root) %files -%else - -%files -f %{name}.lang -%defattr(-, root, root) -%endif %defattr(-, root, root) -%_docdir/%name +%{_docdir}/%{name} %{_bindir}/* %{_mandir}/man?/* Index: xz-5.2.2.tar.gz =================================================================== Binary files xz-5.2.2.tar.gz (revision ef924c9b4765355ee53ad2052d456223) added Index: xz-5.2.2.tar.gz.sig =================================================================== Binary files xz-5.2.2.tar.gz.sig (revision ef924c9b4765355ee53ad2052d456223) added Index: xznew =================================================================== --- xznew (added) +++ xznew (revision ef924c9b4765355ee53ad2052d456223) @@ -0,0 +1,177 @@ +#!/bin/sh + +# Copyright (C) 2015 Hans-Peter Jansen +# Copyright (C) 1998, 2002, 2004 Free Software Foundation +# Copyright (C) 1993 Jean-loup Gailly + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + +PATH="/usr/bin:$PATH"; export PATH +check=0 +pipe=0 +opt= +files= +keep=0 +res=0 +old=0 +new=0 +block=1024 +# block is the disk block size (best guess, need not be exact) + +warn="(does not preserve modes and timestamp)" +tmp=`mktemp -d ${TMPDIR-/tmp}/zfoo.XXXXXX` || { + echo 'cannot create temporary directory' >&2 + exit 1 +} +trap "rm -rf $tmp/" 0 1 2 3 6 13 15 +set -C +echo hi > $tmp/1 +echo hi > $tmp/2 +if test -z "`(${CPMOD-cpmod} $tmp/1 $tmp/2) 2>&1`"; then + cpmod=${CPMOD-cpmod} + warn="" +fi + +if test -z "$cpmod" && ${TOUCH-touch} -r $tmp/1 $tmp/2 2>/dev/null; then + cpmod="${TOUCH-touch}" + cpmodarg="-r" + warn="(does not preserve file modes)" +fi + +# check about xz extension +xz $tmp/1 &> /dev/null +ext=`echo $tmp/1* | sed "s|$tmp/1||"` +rm -rf $tmp/ +trap - 0 1 2 3 6 13 15 +if test -z "$ext"; then + echo xznew: error determining xz extension + exit 1 +fi +if test "$ext" = ".gz"; then + echo xznew: cannot use .gz as xz extension. + exit 1 +fi + +for arg +do + case "$arg" in + -*) opt="$opt $arg"; shift;; + *) break;; + esac +done + +if test $# -eq 0; then + echo "recompress .gz or .tgz files into $ext (xz) files" + echo usage: `echo $0 | sed 's,^.*/,,'` "[-tv9KP]" file.gz... + echo " -t tests the new files before deleting originals" + echo " -v be verbose" + echo " -9 use the slowest compression method (optimal compression)" + echo " -K keep a .gz file when it is smaller than the $ext file" + echo " -P use pipes for the conversion $warn" + exit 1 +fi + +opt=`echo "$opt" | sed -e 's/ //g' -e 's/-//g'` +case "$opt" in + *t*) check=1; opt=`echo "$opt" | sed 's/t//g'` +esac +case "$opt" in + *K*) keep=1; opt=`echo "$opt" | sed 's/K//g'` +esac +case "$opt" in + *P*) pipe=1; opt=`echo "$opt" | sed 's/P//g'` +esac +if test -n "$opt"; then + opt="-$opt" +fi + +for i do + m=`echo $i | sed 's/\.tgz$//'` + if test -f "$m.tgz" ; then + echo "Renaming file *.tgz to *.tar.gz" + mv "$i" "$m.tar.gz" + n=`echo $i | sed 's/\.tgz$/\.tar/'` + else + n=`echo $i | sed 's/\.gz$//'` + fi + if test ! -f "$n.gz" ; then + echo $n.gz not found + res=1; continue + fi + test $keep -eq 1 && old=`wc -c < "$n.gz"` + if test $pipe -eq 1; then + if gzip -d < "$n.gz" | xz $opt > "$n$ext"; then + # Copy file attributes from old file to new one, if possible. + test -n "$cpmod" && $cpmod $cpmodarg "$n.gz" "$n$ext" 2> /dev/null + else + echo error while recompressing $n.gz + res=1; continue + fi + else + if test $check -eq 1; then + if cp -p "$n.gz" "$n.$$" 2> /dev/null || cp "$n.gz" "$n.$$"; then + : + else + echo cannot backup "$n.gz" + res=1; continue + fi + fi + if gzip -d "$n.gz"; then + : + else + test $check -eq 1 && mv "$n.$$" "$n.gz" + echo error while uncompressing $n.gz + res=1; continue + fi + if xz $opt "$n"; then + : + else + if test $check -eq 1; then + mv "$n.$$" "$n.gz" && rm -f "$n" + echo error while recompressing $n + else + # gzip $n (might be dangerous if disk full) + echo error while recompressing $n, left uncompressed + fi + res=1; continue + fi + fi + test $keep -eq 1 && new=`wc -c < "$n$ext"` + if test $keep -eq 1 && test `expr \( $old + $block - 1 \) / $block` -lt \ + `expr \( $new + $block - 1 \) / $block`; then + if test $pipe -eq 1; then + rm -f "$n$ext" + elif test $check -eq 1; then + mv "$n.$$" "$n.gz" && rm -f "$n$ext" + else + xz -d "$n$ext" && gzip "$n" && rm -f "$n$ext" + fi + echo "$n.gz smaller than $n$ext -- unchanged" + + elif test $check -eq 1; then + if xz -t "$n$ext" ; then + rm -f "$n.$$" "$n.gz" + else + test $pipe -eq 0 && mv "$n.$$" "$n.gz" + rm -f "$n$ext" + echo error while testing $n$ext, $n.gz unchanged + res=1; continue + fi + elif test $pipe -eq 1; then + rm -f "$n.gz" + fi +done +exit $res Index: xznew.1 =================================================================== --- xznew.1 (added) +++ xznew.1 (revision ef924c9b4765355ee53ad2052d456223) @@ -0,0 +1,39 @@ +.TH XZNEW 1 +.SH NAME +xznew \- recompress .gz or .tgz files to .xz files +.SH SYNOPSIS +.B xznew +[ -ftv9PK] [ name.gz ... ] +.SH DESCRIPTION +.I xznew +recompresses files from .gz (gzip) format to .xz (xz) format. +If you want to recompress a file already in xz format, rename the file +to force a .xz extension then apply xznew. +.SH OPTIONS +.TP +.B \-f +Force recompression from .gz to .xz format even if a .xz file already exists. +.TP +.B \-t +Tests the new files before deleting originals. +.TP +.B \-v +Verbose. Display the name and percentage reduction for each file compressed. +.TP +.B \-9 +Use the slowest compression method (optimal compression). +.TP +.B \-P +Use pipes for the conversion to reduce disk space usage. +.TP +.B \-K +Keep a .gz file when it is smaller than the .xz file +.SH "SEE ALSO" +xz(1), gzip(1) +.SH BUGS +.I xznew +does not maintain the time stamp with the -P option if +.I cpmod(1) +is not available and +.I touch(1) +does not support the -r option. Index: xz-5.0.5.tar.gz =================================================================== Binary files xz-5.0.5.tar.gz (revision 3) deleted Index: xz-5.0.5.tar.gz.sig =================================================================== Binary files xz-5.0.5.tar.gz.sig (revision 3) deleted
osc copypac from project:SUSE:SLE-12:GA package:xz revision:7a29b1216f26953bbb1805dc77880145, using expand
Displaying all 5 revisions