unzip/unzip.spec

189 lines
5.8 KiB
RPMSpec
Raw Normal View History

#
# spec file for package unzip
#
# 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/
#
%define _name unzip
%define fileversion 60
%bcond_with rcc
%if %{with rcc}
%define update_weight 20
%define _suffix rcc
BuildRequires: librcc-devel
Suggests: librcc0
Provides: %{_name} = %{version}
%else
%define update_weight 10
%define _suffix plain
%endif
# NOTE: unzip.spec is the major file, if you want to update unzip-rcc.spec
# call pre_checkin.sh after editing unzip.spec
Name: unzip
- Update to 6.0: * Support PKWARE ZIP64 extensions, allowing Zip archives and Zip archive entries larger than 4 GiBytes and more than 65536 entries within a single Zip archive. This support is currently only available for Unix, OpenVMS and Win32/Win64. * Support for bzip2 compression method. * Support for UTF-8 encoded entry names, both through PKWARE's "General Purpose Flags Bit 11" indicator and Info-ZIP's new "up" unicode path extra field. (Currently, on Windows the UTF-8 handling is limited to the character subset contained in the configured non-unicode "system code page".) * Fixed "Time of Creation/Time of Use" vulnerability when setting attributes of extracted files, for Unix and Unix-like ports. * Fixed memory leak when processing invalid deflated data. * Fixed long-standing bug in unshrink (partial_clear), added boundary checks against invalid compressed data. * On Unix, keep inherited SGID attribute bit for extracted directories unless restoration of owner/group id or SUID/SGID/Tacky attributes was requested. * On Unix, allow extracted filenames to contain embedded control characters when explicitly requested by specifying the new command line option "-^". * On Unix, support restoration of symbolic link attributes. * On Unix, support restoration of 32-bit UID/GID data using the new "ux" IZUNIX3 extra field introduced with Zip 3.0. * Support symbolic links zipped up on VMS. * New -D option to suppress restoration of timestamps for extracted directory entries (on those ports that support setting of directory timestamps). By specifying "-DD", this new option also allows to suppress timestamp restoration for ALL extracted files on all UnZip ports which support restoration of timestamps. On VMS, the default behaviour is now to skip restoration of directory timestamps; here, "--D" restores ALL timestamps, "-D" restores none. * On OS/2, Win32, and Unix, the (previously optional) feature UNIXBACKUP to allow saving backup copies of overwritten files on extraction is now enabled by default. OBS-URL: https://build.opensuse.org/package/show/Archiving/unzip?expand=0&rev=8
2010-05-21 16:47:23 +02:00
Version: 6.00
Release: 0
Summary: A program to unpack compressed files
License: BSD-3-Clause
Group: Productivity/Archiving/Compression
URL: http://www.info-zip.org/
Source: http://sourceforge.net/projects/infozip/files/UnZip%%206.x%%20%%28latest%%29/UnZip%%206.0/%{_name}%{fileversion}.tar.gz
Source1: pre_checkin.sh
- Update to 6.0: * Support PKWARE ZIP64 extensions, allowing Zip archives and Zip archive entries larger than 4 GiBytes and more than 65536 entries within a single Zip archive. This support is currently only available for Unix, OpenVMS and Win32/Win64. * Support for bzip2 compression method. * Support for UTF-8 encoded entry names, both through PKWARE's "General Purpose Flags Bit 11" indicator and Info-ZIP's new "up" unicode path extra field. (Currently, on Windows the UTF-8 handling is limited to the character subset contained in the configured non-unicode "system code page".) * Fixed "Time of Creation/Time of Use" vulnerability when setting attributes of extracted files, for Unix and Unix-like ports. * Fixed memory leak when processing invalid deflated data. * Fixed long-standing bug in unshrink (partial_clear), added boundary checks against invalid compressed data. * On Unix, keep inherited SGID attribute bit for extracted directories unless restoration of owner/group id or SUID/SGID/Tacky attributes was requested. * On Unix, allow extracted filenames to contain embedded control characters when explicitly requested by specifying the new command line option "-^". * On Unix, support restoration of symbolic link attributes. * On Unix, support restoration of 32-bit UID/GID data using the new "ux" IZUNIX3 extra field introduced with Zip 3.0. * Support symbolic links zipped up on VMS. * New -D option to suppress restoration of timestamps for extracted directory entries (on those ports that support setting of directory timestamps). By specifying "-DD", this new option also allows to suppress timestamp restoration for ALL extracted files on all UnZip ports which support restoration of timestamps. On VMS, the default behaviour is now to skip restoration of directory timestamps; here, "--D" restores ALL timestamps, "-D" restores none. * On OS/2, Win32, and Unix, the (previously optional) feature UNIXBACKUP to allow saving backup copies of overwritten files on extraction is now enabled by default. OBS-URL: https://build.opensuse.org/package/show/Archiving/unzip?expand=0&rev=8
2010-05-21 16:47:23 +02:00
Patch0: unzip.dif
Patch1: unzip-iso8859_2.patch
Patch3: unzip-optflags.patch
Patch4: unzip-5.52-filename_too_long.patch
Patch5: unzip-no_file_name_translation.patch
Patch8: unzip-open_missing_mode.patch
Patch10: unzip-5.52-use_librcc.patch
Patch11: unzip-no-build-date.patch
Patch12: unzip-dont_call_isprint.patch
Patch13: Fix-CVE-2014-8139-unzip.patch
# http://pkgs.fedoraproject.org/cgit/rpms/unzip.git/plain/unzip-6.0-cve-2014-8139.patch
Patch14: Fix-CVE-2014-8140-and-CVE-2014-8141.patch
Patch15: CVE-2015-7696.patch
Patch16: CVE-2015-7697.patch
Patch17: CVE-2016-9844.patch
Patch18: CVE-2014-9913.patch
Patch19: CVE-2018-1000035.patch
Patch20: Fix-CVE-2014-9636-unzip-buffer-overflow.patch
Patch21: unzip60-total_disks_zero.patch
Patch22: unzip60-cfactorstr_overflow.patch
Patch23: unzip-initialize-the-symlink-flag.patch
# PATCH-FIX-UPSTREAM danilo.spinella@suse.com CVE-2022-0530 bsc#1196177
Patch24: CVE-2022-0530.patch
# PATCH-FIX-UPSTREAM danilo.spinella@suse.com CVE-2022-0529 bsc#1196180
Patch25: CVE-2022-0529.patch
Requires(post): update-alternatives
Requires(postun): update-alternatives
Recommends: %{_name}-doc
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
UnZip is an extraction utility for archives compressed in .zip format
(known as "zip files"). Although highly compatible both with PKWARE's
PKZIP(tm) and PKUNZIP utilities for MS-DOS and with Info-ZIP's own Zip
program, our primary objectives have been portability and non-MS-DOS
functionality. This version can also extract encrypted archives.
%package doc
Summary: Documentation files for unzip
Group: Productivity/Archiving/Compression
BuildArch: noarch
%description doc
UnZip is an extraction utility for archives compressed in .zip format
(known as "zip files"). Although highly compatible both with PKWARE's
PKZIP(tm) and PKUNZIP utilities for MS-DOS and with Info-ZIP's own Zip
program, our primary objectives have been portability and non-MS-DOS
functionality. This version can also extract encrypted archives.
%prep
%setup -q -n %{_name}%{fileversion}
%patch -P 0
%patch -P 1
%patch -P 3
%patch -P 4
%patch -P 5
%patch -P 8
%if %{with rcc}
%patch -P 10
%endif
%patch -P 11
%patch -P 12
%patch -P 13 -p1
%patch -P 14 -p1
%patch -P 15 -p1
%patch -P 16 -p1
%patch -P 17 -p1
%patch -P 18 -p1
%patch -P 19 -p0
%patch -P 20 -p1
%patch -P 21 -p1
%patch -P 22 -p1
%patch -P 23 -p1
%patch -P 24 -p1
%patch -P 25 -p1
%build
export RPM_OPT_FLAGS="%{optflags} \
-D_GNU_SOURCE -DRCC_LAZY -DWILD_STOP_AT_DIR \
-DLARGE_FILE_SUPPORT -DUNICODE_SUPPORT \
-DUNICODE_WCHAR -DUTF8_MAYBE_NATIVE -DNO_LCHMOD \
-DDATE_FORMAT=DF_YMD -I. -fstack-protector -fno-strict-aliasing -fPIE"
make %{?_smp_mflags} -f unix/Makefile LF2="-ldl -pie" linux_noasm
%check
make %{?_smp_mflags} -f unix/Makefile check
%install
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
mkdir -p %{buildroot}{%{_bindir},%{_mandir}/man1}
for i in unzip funzip unzipsfx; do
install $i "%{buildroot}%{_bindir}/$i-"%{_suffix}
done
ln -s unzip %{buildroot}%{_bindir}/zipinfo
install unix/zipgrep "%{buildroot}%{_bindir}/zipgrep-"%{_suffix}
for i in unzip funzip unzipsfx zipgrep; do
touch %{buildroot}%{_sysconfdir}/alternatives/$i
ln -s %{_sysconfdir}/alternatives/$i %{buildroot}%{_bindir}/$i
done
# do not have the docu in both packages
%if %{without rcc}
for i in man/*.1; do
install -m 644 $i %{buildroot}%{_mandir}/man1/
done
%endif
%post
for bin in unzip funzip unzipsfx zipgrep; do
%{_sbindir}/update-alternatives --install %{_bindir}/$bin $bin "%{_bindir}/$bin-"%{_suffix} %{update_weight}
done
%postun
if [ "$1" = 0 ] ; then
for bin in unzip funzip unzipsfx zipgrep; do
%{_sbindir}/update-alternatives --remove $bin "%{_bindir}/$bin"-%{_suffix}
done
fi
%files
%defattr(-,root,root)
%ghost %{_sysconfdir}/alternatives/unzip
%{_bindir}/unzip
%{_bindir}/unzip-%{_suffix}
%ghost %{_sysconfdir}/alternatives/funzip
%{_bindir}/funzip
%{_bindir}/funzip-%{_suffix}
%ghost %{_sysconfdir}/alternatives/unzipsfx
%{_bindir}/unzipsfx
%{_bindir}/unzipsfx-%{_suffix}
%{_bindir}/zipinfo
%ghost %{_sysconfdir}/alternatives/zipgrep
%{_bindir}/zipgrep
%{_bindir}/zipgrep-%{_suffix}
%if %{without rcc}
%files doc
%defattr(-,root,root)
%{_mandir}/man1/*
%doc BUGS Contents History.* LICENSE README ToDo WHERE
%doc *.txt proginfo
%endif
%changelog