Overview

Request 416543 accepted

- 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

Loading...
Request History
Ruediger Meier's avatar

rudi_m created request

- 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


Leap Reviewbot's avatar

leaper added xz as a reviewer

Submission by someone who is not maintainer in the devel project. Please review


Leap Reviewbot's avatar

leaper added lnussel as a reviewer


Leap Reviewbot's avatar

leaper accepted review

review failed
Origin project changed(was SUSE:SLE-12:GA)
source is in Factory though


Stephan Kulow's avatar

coolo accepted review

as we don't see too many security updates for it, we should be fine - I would have preferred if we had updated it for SP2 too though


Ismail Dönmez's avatar

namtrac accepted review


Max Lin's avatar

mlin7442 added as a reviewer

Being evaluated by staging project "openSUSE:Leap:42.2:Staging:B"


Max Lin's avatar

mlin7442 accepted review

Picked openSUSE:Leap:42.2:Staging:B


Ludwig Nussel's avatar

lnussel_factory added kstreitova as a reviewer

what about making this a SP3 candidate?


Ludwig Nussel's avatar

lnussel accepted review


Kristyna Streitova's avatar

kstreitova accepted review

Ok


Ludwig Nussel's avatar

lnussel_factory accepted review

ready to accept


Ludwig Nussel's avatar

lnussel_factory approved review

ready to accept


Ludwig Nussel's avatar

lnussel_factory accepted request

Accept to openSUSE:Leap:42.2

openSUSE Build Service is sponsored by