# # spec file for package upx # # Copyright (c) 2021 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/ # Name: upx Version: 3.96 Release: 3.1 Summary: The Ultimate Packer for eXecutables License: GPL-2.0-or-later Group: Development/Tools/Other URL: https://upx.github.io/ Source: https://github.com/upx/upx/releases/download/v%{version}/upx-%{version}-src.tar.xz Patch0: upx-aarch64.patch Patch1: upx-endiantests.patch Patch2: 0001-Unpack-Phdrs-must-be-within-expansion-of-first-compr.patch Patch3: 0001-Silence-yet-some-more-compilation-warnings.patch BuildRequires: gcc-c++ BuildRequires: libucl1-devel BuildRequires: zlib-devel %description UPX is a compressor for several different executable formats. Programs receive a stub that makes them self-runnable. When run, decompression either happens in memory in-place if possible, or to a temporary file, the latter of which does not support setuid programs, or the proper name in argv[0]. %prep %autosetup -p1 -n %{name}-%{version}-src # BSD-4-Clause licensed file, remove just in case bnc#753791 rm src/stub/src/i386-dos32.djgpp2-stubify.asm %build make %{?_smp_mflags} -C src CXXFLAGS_OPTIMIZE="%{optflags}" make %{?_smp_mflags} -C doc %install install -D -m 0755 src/upx.out %{buildroot}%{_bindir}/upx install -D -m 0644 doc/upx.1 %{buildroot}%{_mandir}/man1/upx.1 %files %license COPYING LICENSE %doc BUGS NEWS PROJECTS README README.SRC THANKS %doc doc/upx.html %{_bindir}/%{name} %{_mandir}/man1/%{name}.1%{?ext_man} %changelog * Tue Jun 1 2021 Christophe Giboudeaux - Add upstream change to fix build with GCC 11: * 0001-Silence-yet-some-more-compilation-warnings.patch * Wed May 19 2021 Jan Engelhardt - Add 0001-Unpack-Phdrs-must-be-within-expansion-of-first-compr.patch [CVE-2020-24119] [boo#1186238] * Thu Jan 23 2020 Ismail Dönmez - Update to version 3.96 * Bug fixes: [CVE-2019-1010048, boo#1141777] [CVE-2019-14296, boo#1143839] [CVE-2019-20021, boo#1159833] [CVE-2019-20053, boo#1159920] [CVE-2018-11243 partially - ticket 206 ONLY, boo#1094138] * Tue Oct 30 2018 Jan Engelhardt - Trim bias from description. * Sun Oct 28 2018 Luigi Baldoni - Update to version 3.95 * Flag --force-pie when ET_DYN main program is not marked as DF_1_PIE * Better compatibility with varying layout of address space on Linux * Support for 4 PT_LOAD layout in ELF generated by binutils-2.31 * bug fixes, particularly better diagnosis of malformed input * bug fixes - see https://github.com/upx/upx/milestone/4 - Dropped 0001-Protect-against-bad-crafted-input.patch, 0002-Protect-against-bad-crafted-input.patch and 0001-Mach-o-defend-against-bad-crafted-input.patch (merged upstream) - Drop lzma922.tar.bz2 (which wasn't being used in the first place) and lzma-x-endian.patch which no longer applies to the integrated lzma-sdk. The in-tree lzma-sdk is actually a fork from an older version but recommended by the author, see src/stub/src/c/Makevars.lzma - Spec cleanup * Sat Nov 18 2017 jengelh@inai.de - Add 0001-Mach-o-defend-against-bad-crafted-input.patch [CVE-2017-16869] [boo#1068681] * Fri Oct 6 2017 jengelh@inai.de - Update to new upstream release 3.94 * Add support for arm64-linux (aka aarch64). * Add support for --lzma compression on 64-bit PowerPC. * From 3.92: * Explicitly diagnose Go-language bad PT_LOAD. - Resolve apply/merge conflict of upx-endiantests.patch - Add 0001-Protect-against-bad-crafted-input.patch, 0002-Protect-against-bad-crafted-input.patch [boo#1062059] * Sun Nov 16 2014 crrodriguez@opensuse.org - upx-endiantests.patch and lzma-x-endian.patch Correct endianness tests by only considering what the compiler says about target system and not a hardcoded architecture list. (drop upx-3.03_ia64-endianity.patch) - build with hidden visibility. * Mon Jan 20 2014 pgajdos@suse.com - fix build for factory * Fri Nov 22 2013 jengelh@inai.de - Update to new upstream release 3.91 * Initial support for amd64-win64.pe - Refresh upx-3.03_ia64-endianity.patch after fuzz * Sun Mar 31 2013 schwab@suse.de - upx-aarch64.patch: Support for AArch64 * Wed Mar 27 2013 idonmez@suse.com - Actually enable LZMA support, this needs LZMA SDK * Mon Mar 25 2013 idonmez@suse.com - Update to version 3.09 * New option --preserve-build-id for GNU ELF. * Allow zero-filled final page in PackUnix::canUnpack(). * Bug fixes. * Thu Mar 8 2012 freespacer@gmx.de - updated to 3.08 * optional LZMA compression * Thu Sep 9 2010 marix@marix.org - updated to 3.07 * LZMA compression support * Wed Aug 18 2010 pgajdos@suse.cz - updated to 3.05 (see NEWS) * Mon Oct 12 2009 prusnak@suse.cz - updated to 3.04 * Mon Jun 8 2009 pgajdos@suse.cz - fixed char * -- const char * problem * const-cast.patch * Thu Jul 31 2008 pgajdos@suse.cz - updated to 3.03: o optional LZMA compression * Mon Jan 21 2008 pgajdos@suse.cz - update to 3.02: * fix unmapping on arm-linux.elf * fix error checking in mmap for i386-linux.elf [triggered by -fPIE] * new options --no-mode, --no-owner and --no-time to disable preservation of mode (file permissions), file ownership and timestamps. * new format linux/mipsel supports ELF on [32-bit] R3000 * fix argv[0] on PowerPC with --lzma * another bug fixes * Thu Oct 4 2007 bg@suse.de - use ia64 fix for hppa * Mon Jul 23 2007 pgajdos@suse.cz - updated to 3.00 (supports some new formats) - fixed failed build on ia64 * ia64-endianity.patch * Thu Mar 29 2007 meissner@suse.de - buildrequire zlib-devel * Tue Oct 31 2006 meissner@suse.de - build with RPM_OPT_FLAGS * Thu Oct 5 2006 anicka@suse.cz - update to 2.02 * support for many new formats * various bugfixes - build for all architectures (new formats supported) * Wed Jan 25 2006 mls@suse.de - converted neededforbuild to BuildRequires * Wed Sep 28 2005 dmueller@suse.de - add norootforbuild * Wed Aug 11 2004 tcrhak@suse.cz - update to 1.25 * Thu Jul 24 2003 tcrhak@suse.cz - update to version 1.24 * Fri May 10 2002 ro@suse.de - removed malloc hacks (does not work this way with gcc-3.1) * Sat Apr 20 2002 ro@suse.de - fixed changelog * Fri Apr 19 2002 tcrhak@suse.cz - fixed to compile with gcc 3.1 * Mon Jan 14 2002 rvasice@suse.cz - fix URL in spec file * Wed Jun 20 2001 rvasice@suse.cz - fix neededforbuild section * Fri Jun 15 2001 rvasice@suse.cz - initial package release (version 1.20)