xz/xz.spec
Dirk Mueller 6fb022244b - update to 5.6.0:
* This bumps the minor version of liblzma because new
    features were added. The API and ABI are still backward
    compatible with liblzma 5.4.x and 5.2.x and 5.0.x.
  * liblzma:
    - Disabled the branchless C variant in the LZMA
    decoder based on the benchmark results from the community.
    - Disabled x86-64 inline assembly on x32 to fix the
    build.
  * Sandboxing support in xz:
    - Landlock is now used even when xz needs to create
    files.
    - Landlock and pledge(2) are now stricter when
    reading from more than one input file and only writing to
    standard output.
    - Added support for Landlock ABI version 4.
    - Now builds lzmainfo and lzmadec.
    - xzdiff, xzgrep, xzless, xzmore, and their symlinks
    are now installed. The scripts are also tested during "make
    test".
    - Added translation support for xz, lzmainfo, and the
      man pages.
    - Minimum required CMake version is now 3.14.
  * liblzma:
    - LZMA decoder: Speed optimizations to the C code and
    added GCC & Clang compatible inline assembly for
    x86-64.
    - Added lzma_mt_block_size() to recommend a Block
    size for multithreaded encoding.
    - Added CLMUL-based CRC32 on x86-64 and E2K with

OBS-URL: https://build.opensuse.org/package/show/Base:System/xz?expand=0&rev=145
2024-03-05 11:47:58 +00:00

219 lines
6.1 KiB
RPMSpec
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#
# spec file for package xz
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
# avoid bootstrapping problem
%if 0%{?suse_version} == 1500
%bcond_without static
%else
%bcond_with static
%endif
Name: xz
Version: 5.6.0
Release: 0
Summary: A Program for Compressing Files with the LempelZivMarkov algorithm
License: 0BSD AND GPL-2.0-or-later AND GPL-3.0-or-later AND LGPL-2.1-or-later
Group: Productivity/Archiving/Compression
URL: https://tukaani.org/xz/
Source0: https://github.com/tukaani-project/xz/releases/download/v%{version}/xz-%{version}.tar.gz
Source1: https://github.com/tukaani-project/xz/releases/download/v%{version}/xz-%{version}.tar.gz.sig
Source2: baselibs.conf
Source3: https://tukaani.org/misc/jia_tan_pubkey.txt#/%{name}.keyring
Source4: xznew
Source5: xznew.1
BuildRequires: pkgconfig
Provides: lzma = %{version}
Obsoletes: lzma < %{version}
%{?suse_build_hwcaps_libs}
%description
The xz command is a 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 does not affect
decompressing speed.
* Very similar command line interface to what gzip and bzip2 have.
%lang_package
%package -n liblzma5
Summary: LempelZivMarkov chain algorithm compression library
License: 0BSD
Group: System/Libraries
%description -n liblzma5
Library for encoding/decoding LZMA files.
%package devel
Summary: Development package for the LZMA library
License: 0BSD
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}
%description devel
This package contains the header files and libraries needed for
compiling programs using the LZMA library.
%if %{with static}
%package static-devel
Summary: Static version of LZMA library
License: SUSE-Public-Domain
Group: Development/Libraries/C and C++
Requires: lzma-devel = %{version}
%description static-devel
Static library for the LZMA library
%endif
%prep
%autosetup
%build
%global _lto_cflags %{_lto_cflags} -ffat-lto-objects
export CFLAGS="%{optflags} -D_REENTRANT -pipe -fPIE"
export LDFLAGS="-Wl,-z,relro,-z,now -pie"
# Either we build it without pic enabled, or we build one at a time
%if %{with static}
%configure \
--with-pic \
--enable-year2038 \
--enable-symbol-versions \
--enable-sandbox=landlock \
--enable-ifunc \
--docdir=%{_docdir}/%{name} \
--disable-shared CONFIG_SHELL=/bin/sh
%make_build
cp ./src/liblzma/.libs/liblzma.a liblzma.a
%endif
%configure \
--with-pic \
--docdir=%{_docdir}/%{name} \
--disable-static CONFIG_SHELL=/bin/sh
%if 0%{?do_profiling}
%make_build CFLAGS="${CFLAGS} %{cflags_profile_generate}"
%make_build
%make_build clean
%make_build CFLAGS="${CFLAGS} %{cflags_profile_feedback}"
%else
%make_build
%endif
%check
%make_build check
%install
%make_install
find %{buildroot} -type f -name "*.la" -delete -print
%find_lang %{name} --all-name --with-man
install -Dpm 0755 %{SOURCE4} %{buildroot}%{_bindir}/xznew
install -Dpm 0644 %{SOURCE5} %{buildroot}%{_mandir}/man1/xznew.1
%if %{with static}
install -Dpm 0644 liblzma.a %{buildroot}%{_libdir}/
%endif
rm -vf %{buildroot}%{_docdir}/%{name}/{COPYING,COPYING.GPLv2}
%post -n liblzma5 -p /sbin/ldconfig
%postun -n liblzma5 -p /sbin/ldconfig
%files lang -f %{name}.lang
%dir %{_mandir}/fr
%dir %{_mandir}/de
%dir %{_mandir}/ko
%if 0%{?suse_version} == 1500
%dir %{_mandir}/ro
%dir %{_mandir}/uk
%endif
%files
%license COPYING COPYING.GPLv2
%{_docdir}/%{name}
%{_bindir}/lzcat
%{_bindir}/lzcmp
%{_bindir}/lzdiff
%{_bindir}/lzegrep
%{_bindir}/lzfgrep
%{_bindir}/lzgrep
%{_bindir}/lzless
%{_bindir}/lzma
%{_bindir}/lzmadec
%{_bindir}/lzmainfo
%{_bindir}/lzmore
%{_bindir}/unlzma
%{_bindir}/unxz
%{_bindir}/xz
%{_bindir}/xzcat
%{_bindir}/xzcmp
%{_bindir}/xzdec
%{_bindir}/xzdiff
%{_bindir}/xzegrep
%{_bindir}/xzfgrep
%{_bindir}/xzgrep
%{_bindir}/xzless
%{_bindir}/xzmore
%{_bindir}/xznew
%{_mandir}/man1/lzcat.1%{?ext_man}
%{_mandir}/man1/lzcmp.1%{?ext_man}
%{_mandir}/man1/lzdiff.1%{?ext_man}
%{_mandir}/man1/lzegrep.1%{?ext_man}
%{_mandir}/man1/lzfgrep.1%{?ext_man}
%{_mandir}/man1/lzgrep.1%{?ext_man}
%{_mandir}/man1/lzless.1%{?ext_man}
%{_mandir}/man1/lzma.1%{?ext_man}
%{_mandir}/man1/lzmadec.1%{?ext_man}
%{_mandir}/man1/lzmainfo.1%{?ext_man}
%{_mandir}/man1/lzmore.1%{?ext_man}
%{_mandir}/man1/unlzma.1%{?ext_man}
%{_mandir}/man1/unxz.1%{?ext_man}
%{_mandir}/man1/xz.1%{?ext_man}
%{_mandir}/man1/xzcat.1%{?ext_man}
%{_mandir}/man1/xzcmp.1%{?ext_man}
%{_mandir}/man1/xzdec.1%{?ext_man}
%{_mandir}/man1/xzdiff.1%{?ext_man}
%{_mandir}/man1/xzegrep.1%{?ext_man}
%{_mandir}/man1/xzfgrep.1%{?ext_man}
%{_mandir}/man1/xzgrep.1%{?ext_man}
%{_mandir}/man1/xzless.1%{?ext_man}
%{_mandir}/man1/xzmore.1%{?ext_man}
%{_mandir}/man1/xznew.1%{?ext_man}
%files -n liblzma5
%{_libdir}/liblzma.so.5*
%files devel
%{_includedir}/lzma.h
%dir %{_includedir}/lzma/
%{_includedir}/lzma/*
%{_libdir}/liblzma.so
%{_libdir}/pkgconfig/liblzma.pc
%if %{with static}
%files static-devel
%defattr(-, root, root)
%{_libdir}/liblzma.a
%endif
%changelog