# # spec file for package upx # # Copyright (c) 2023 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: 4.1.0 Release: 1.2 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 BuildRequires: cmake 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 %cmake -DCMAKE_INSTALL_DOCDIR="%_docdir/%name" %cmake_build %install %cmake_install # separate picked with %%license rm -f "%_defaultdocdir/%name/LICENSE" %files %license LICENSE %_bindir/%name %_mandir/man1/%name.1%{?ext_man} %_defaultdocdir/%name/ %changelog * Tue Aug 8 2023 Jan Engelhardt - Update to release 4.1 * ELF: handle shared libraries with more than 2 PT_LOAD segments * Mon Jan 30 2023 Jan Engelhardt - Update to release 4.0.2 * Fix unpack of ELF x86-64 that failed with "CantUnpackException: corrupt b_info" * Resolve SEGV on PackLinuxElf64::invert_pt_dynamic - Delete upx-endiantests.patch (conflict upstream) - Delete 0001-invert_pt_dynamic-fix-thinko-PackLinuxElf64help1-ins.patch (merged) * Sun Jan 15 2023 Jan Engelhardt - Add 0001-invert_pt_dynamic-fix-thinko-PackLinuxElf64help1-ins.patch [boo#1207122] [CVE-2023-23457] * Wed Nov 16 2022 Jan Engelhardt - Update to release 4.0.1 * Fix crash when a linux/armeb LZMA-packed binary unpacks itself. * Resolve "CantPackException: bad ElfXX_Shdrs" with staticly-linked programs. * Resolve "CantPackException: need DT_INIT;..." when attempting to re-compress an already packed binary. * Sat Oct 29 2022 Jan Engelhardt - Update to release 4.0 * Add support for EFI files - Delete 0001-Silence-yet-some-more-compilation-warnings.patch, 0001-Unpack-Phdrs-must-be-within-expansion-of-first-compr.patch * 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)