Compare commits

...
Sign in to create a new pull request.

35 commits

Author SHA1 Message Date
Gwyn Ciesla
713a41261b 5.2.1 2026-08-27 11:44:38 -05:00
Fedora Release Engineering
e201493491 Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild 2026-07-17 08:14:13 +00:00
Gwyn Ciesla
5920a19d1f 5.2.0 2026-06-11 16:09:18 -05:00
Gwyn Ciesla
b754f99c6e 5.1.1 2026-03-05 14:00:37 -06:00
Fedora Release Engineering
80a41f5966 Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild 2026-01-17 19:39:35 +00:00
Gwyn Ciesla
1bd76fe35a 5.1.0 2026-01-07 09:01:49 -06:00
Fedora Release Engineering
219f40c7e6 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 19:50:11 +00:00
Gwyn Ciesla
3687746bcb 5.0.2 2025-07-21 10:39:44 -05:00
Gwyn Ciesla
80cbb78a38 5.0.1 2025-05-06 13:39:58 -05:00
Gwyn Ciesla
bc853b0baf 5.0.0 2025-02-20 15:44:45 -06:00
Fedora Release Engineering
11aaf600a8 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-19 13:51:34 +00:00
Gwyn Ciesla
c55bd5c047 Provide bundled lzma-sdk 2024-12-18 12:20:36 -06:00
Miroslav Suchý
4f69debb67 Migrate to SPDX license
Added to https://gitlab.com/fedora/legal/fedora-license-data/-/merge_requests/632

This is part of https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_4

If there will be no comments in two weeks, I will merge this.
2024-09-11 04:24:29 +00:00
Fedora Release Engineering
443ff99ea1 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-20 08:21:05 +00:00
Gwyn Ciesla
feef204a79 4.2.4 2024-05-21 10:15:50 -05:00
Gwyn Ciesla
8c6fd343f0 4.2.3 2024-03-28 15:44:25 -05:00
Fedora Release Engineering
dd28888972 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-27 07:11:53 +00:00
Gwyn Ciesla
107c5480b9 4.2.2 2024-01-04 14:26:18 -06:00
Gwyn Ciesla
ba6186e5c3 4.2.1 2023-11-02 08:21:03 -05:00
Gwyn Ciesla
5ceaf9f235 4.2.0 2023-10-27 11:32:21 -05:00
Gwyn Ciesla
28d7e4faa7 4.1.0 2023-08-09 16:13:25 -05:00
Fedora Release Engineering
ce18ac16de Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-22 17:12:07 +00:00
Gwyn Ciesla
a7d435f2c1 migrated to SPDX license 2023-03-04 18:49:34 -06:00
Gwyn Ciesla
e4e4f93c93 4.0.2 2023-02-01 08:26:30 -06:00
Fedora Release Engineering
884342899b Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-21 05:54:04 +00:00
Gwyn Ciesla
d156dde36b Patches for CVE-2023-23456 and CVE-23457 2023-01-12 14:01:07 -06:00
Gwyn Ciesla
17dee9ca3f 4.0.1 2022-11-17 14:05:22 -06:00
Gwyn Ciesla
71da9bfe66 Merge branch 'rawhide' of ssh://pkgs.fedoraproject.org/rpms/upx into rawhide 2022-11-08 08:43:01 -06:00
Tomas Hrcka
87499c5b35 Unretirement request: https://pagure.io/releng/issue/11121 2022-11-08 08:15:27 +01:00
Gwyn Ciesla
bab2fec603 4.0.0 2022-11-04 15:35:32 -05:00
Gwyn Ciesla
69f9a8a9cd Revert "Licensing issues, see BZ 2133058"
This reverts commit cb1480fa22.
2022-11-04 14:38:48 -05:00
Gwyn Ciesla
cb1480fa22 Licensing issues, see BZ 2133058 2022-10-12 11:06:46 -05:00
Fedora Release Engineering
dcc0cc48ea Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-23 11:28:57 +00:00
Fedora Release Engineering
30855e38bd - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-22 03:36:08 +00:00
Fedora Release Engineering
763324f505 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-23 20:07:07 +00:00
9 changed files with 122 additions and 357 deletions

16
.gitignore vendored
View file

@ -11,3 +11,19 @@ lzma465.tar.bz2
/upx-lzma-sdk-3.95.tar.gz
/upx-3.96-src.tar.xz
/upx-lzma-sdk-3.96.tar.gz
/upx-4.0.0-src.tar.xz
/upx-4.0.1-src.tar.xz
/upx-4.0.2-src.tar.xz
/upx-4.1.0-src.tar.xz
/upx-4.2.0-src.tar.xz
/upx-4.2.1-src.tar.xz
/upx-4.2.2-src.tar.xz
/upx-4.2.3-src.tar.xz
/upx-4.2.4-src.tar.xz
/upx-5.0.0-src.tar.xz
/upx-5.0.1-src.tar.xz
/upx-5.0.2-src.tar.xz
/upx-5.1.0-src.tar.xz
/upx-5.1.1-src.tar.xz
/upx-5.2.0-src.tar.xz
/upx-5.2.1-src.tar.xz

View file

@ -1,22 +0,0 @@
From 2fcaa16c13eda34307ccceea2263e474c54ee075 Mon Sep 17 00:00:00 2001
From: Mattiwatti <mattiwatti@gmail.com>
Date: Tue, 21 Jan 2020 16:03:40 +0100
Subject: [PATCH] Make PE load config directory address dword aligned
---
src/pefile.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/pefile.cpp b/src/pefile.cpp
index 7bf66cbe..d957886f 100644
--- a/src/pefile.cpp
+++ b/src/pefile.cpp
@@ -2427,7 +2427,7 @@ void PeFile::pack0(OutputFile *fo, ht &ih, ht &oh,
processTls(&rel,&tlsiv,ic);
ODADDR(PEDIR_TLS) = sotls ? ic : 0;
ODSIZE(PEDIR_TLS) = sotls ? (sizeof(LEXX) == 4 ? 0x18 : 0x28) : 0;
- ic += sotls;
+ ic = ALIGN_UP(ic + sotls, 4u);
processLoadConf(&rel, &loadconfiv, ic);
ODADDR(PEDIR_LOADCONF) = soloadconf ? ic : 0;

View file

@ -1,76 +0,0 @@
From 3781df9da23840e596d5e9e8493f22666802fe6c Mon Sep 17 00:00:00 2001
From: John Reiser <jreiser@BitWagon.com>
Date: Fri, 11 Dec 2020 13:38:18 -0800
Subject: [PATCH] Check DT_REL/DT_RELA, DT_RELSZ/DT_RELASZ
https://github.com/upx/upx/issues/421
modified: p_lx_elf.cpp
---
src/p_lx_elf.cpp | 34 +++++++++++++++++++++++++++++-----
1 file changed, 29 insertions(+), 5 deletions(-)
diff --git a/src/p_lx_elf.cpp b/src/p_lx_elf.cpp
index 182db192..3a4101cf 100644
--- a/src/p_lx_elf.cpp
+++ b/src/p_lx_elf.cpp
@@ -2222,8 +2222,20 @@ bool PackLinuxElf32::canPack()
int z_rsz = dt_table[Elf32_Dyn::DT_RELSZ];
if (z_rel && z_rsz) {
unsigned rel_off = get_te32(&dynseg[-1+ z_rel].d_val);
+ if ((unsigned)file_size <= rel_off) {
+ char msg[70]; snprintf(msg, sizeof(msg),
+ "bad Elf32_Dynamic[DT_REL] %#x\n",
+ rel_off);
+ throwCantPack(msg);
+ }
Elf32_Rel *rp = (Elf32_Rel *)&file_image[rel_off];
unsigned relsz = get_te32(&dynseg[-1+ z_rsz].d_val);
+ if ((unsigned)file_size <= relsz) {
+ char msg[70]; snprintf(msg, sizeof(msg),
+ "bad Elf32_Dynamic[DT_RELSZ] %#x\n",
+ relsz);
+ throwCantPack(msg);
+ }
Elf32_Rel *last = (Elf32_Rel *)(relsz + (char *)rp);
for (; rp < last; ++rp) {
unsigned r_va = get_te32(&rp->r_offset);
@@ -2562,14 +2574,26 @@ PackLinuxElf64::canPack()
int z_rel = dt_table[Elf64_Dyn::DT_RELA];
int z_rsz = dt_table[Elf64_Dyn::DT_RELASZ];
if (z_rel && z_rsz) {
- unsigned rel_off = get_te64(&dynseg[-1+ z_rel].d_val);
+ upx_uint64_t rel_off = get_te64(&dynseg[-1+ z_rel].d_val);
+ if ((u64_t)file_size <= rel_off) {
+ char msg[70]; snprintf(msg, sizeof(msg),
+ "bad Elf64_Dynamic[DT_RELA] %#llx\n",
+ rel_off);
+ throwCantPack(msg);
+ }
Elf64_Rela *rp = (Elf64_Rela *)&file_image[rel_off];
- unsigned relsz = get_te64(&dynseg[-1+ z_rsz].d_val);
+ upx_uint64_t relsz = get_te64(&dynseg[-1+ z_rsz].d_val);
+ if ((u64_t)file_size <= relsz) {
+ char msg[70]; snprintf(msg, sizeof(msg),
+ "bad Elf64_Dynamic[DT_RELASZ] %#llx\n",
+ relsz);
+ throwCantPack(msg);
+ }
Elf64_Rela *last = (Elf64_Rela *)(relsz + (char *)rp);
for (; rp < last; ++rp) {
- unsigned r_va = get_te64(&rp->r_offset);
+ upx_uint64_t r_va = get_te64(&rp->r_offset);
if (r_va == user_init_ava) { // found the Elf64_Rela
- unsigned r_info = get_te64(&rp->r_info);
+ upx_uint64_t r_info = get_te64(&rp->r_info);
unsigned r_type = ELF64_R_TYPE(r_info);
if (Elf64_Ehdr::EM_AARCH64 == e_machine
&& R_AARCH64_RELATIVE == r_type) {
@@ -2581,7 +2605,7 @@ PackLinuxElf64::canPack()
}
else {
char msg[50]; snprintf(msg, sizeof(msg),
- "bad relocation %#x DT_INIT_ARRAY[0]",
+ "bad relocation %#llx DT_INIT_ARRAY[0]",
r_info);
throwCantPack(msg);
}

View file

@ -1,34 +0,0 @@
From 87b73e5cfdc12da94c251b2cd83bb01c7d9f616c Mon Sep 17 00:00:00 2001
From: John Reiser <jreiser@BitWagon.com>
Date: Wed, 22 Jul 2020 19:34:27 -0700
Subject: [PATCH] Unpack: Phdrs must be within expansion of first compressed
block
https://github.com/upx/upx/issues/388
modified: p_lx_elf.cpp
---
src/p_lx_elf.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/p_lx_elf.cpp b/src/p_lx_elf.cpp
index cd9e4ec97..453d5c457 100644
--- a/src/p_lx_elf.cpp
+++ b/src/p_lx_elf.cpp
@@ -4550,7 +4550,7 @@ void PackLinuxElf64::unpack(OutputFile *fo)
unsigned c_adler = upx_adler32(NULL, 0);
unsigned u_adler = upx_adler32(NULL, 0);
#define MAX_ELF_HDR 1024
- if ((MAX_ELF_HDR - sizeof(Elf64_Ehdr))/sizeof(Elf64_Phdr) < u_phnum) {
+ if ((umin64(MAX_ELF_HDR, ph.u_len) - sizeof(Elf64_Ehdr))/sizeof(Elf64_Phdr) < u_phnum) {
throwCantUnpack("bad compressed e_phnum");
}
#undef MAX_ELF_HDR
@@ -5617,7 +5617,7 @@ void PackLinuxElf32::unpack(OutputFile *fo)
unsigned c_adler = upx_adler32(NULL, 0);
unsigned u_adler = upx_adler32(NULL, 0);
#define MAX_ELF_HDR 512
- if ((MAX_ELF_HDR - sizeof(Elf32_Ehdr))/sizeof(Elf32_Phdr) < u_phnum) {
+ if ((umin(MAX_ELF_HDR, ph.u_len) - sizeof(Elf32_Ehdr))/sizeof(Elf32_Phdr) < u_phnum) {
throwCantUnpack("bad compressed e_phnum");
}
#undef MAX_ELF_HDR

View file

@ -1,127 +0,0 @@
From dadfd43ecb9909b0fab18e77753953a91322c628 Mon Sep 17 00:00:00 2001
From: John Reiser <jreiser@BitWagon.com>
Date: Fri, 17 Apr 2020 16:17:29 -0700
Subject: [PATCH] --preserve-build-id for ET_EXEC
https://github.com/upx/upx/issues/371
modified: p_lx_elf.cpp
---
src/p_lx_elf.cpp | 50 +++++++++++++++++++++++++++++++-----------------
1 file changed, 32 insertions(+), 18 deletions(-)
diff --git a/src/p_lx_elf.cpp b/src/p_lx_elf.cpp
index 6b5b4295..725f68f4 100644
--- a/src/p_lx_elf.cpp
+++ b/src/p_lx_elf.cpp
@@ -3386,26 +3386,33 @@ void PackLinuxElf32::pack1(OutputFile *fo, Filter & /*ft*/)
if (opt->o_unix.preserve_build_id) {
// set this so we can use elf_find_section_name
e_shnum = get_te16(&ehdri.e_shnum);
+ MemBuffer mb_shdri;
if (!shdri) {
- shdri = (Elf32_Shdr *)&file_image[get_te32(&ehdri.e_shoff)];
+ mb_shdri.alloc(e_shnum * sizeof(Elf32_Shdr));
+ shdri = (Elf32_Shdr *)mb_shdri.getVoidPtr();
+ e_shoff = get_te32(&ehdri.e_shoff);
+ fi->seek(e_shoff, SEEK_SET);
+ fi->readx(shdri, e_shnum * sizeof(Elf32_Shdr));
}
//set the shstrtab
sec_strndx = &shdri[get_te16(&ehdri.e_shstrndx)];
- char *strtab = New(char, sec_strndx->sh_size);
+ unsigned sh_size = get_te32(&sec_strndx->sh_size);
+ char *strtab = New(char, sh_size);
fi->seek(0,SEEK_SET);
fi->seek(sec_strndx->sh_offset,SEEK_SET);
- fi->readx(strtab,sec_strndx->sh_size);
+ fi->readx(strtab, sh_size);
shstrtab = (const char*)strtab;
Elf32_Shdr const *buildid = elf_find_section_name(".note.gnu.build-id");
if (buildid) {
- unsigned char *data = New(unsigned char, buildid->sh_size);
- memset(data,0,buildid->sh_size);
+ unsigned bid_sh_size = get_te32(&buildid->sh_size);
+ unsigned char *data = New(unsigned char, bid_sh_size);
+ memset(data,0,bid_sh_size);
fi->seek(0,SEEK_SET);
fi->seek(buildid->sh_offset,SEEK_SET);
- fi->readx(data,buildid->sh_size);
+ fi->readx(data, bid_sh_size);
buildid_data = data;
@@ -3414,12 +3421,12 @@ void PackLinuxElf32::pack1(OutputFile *fo, Filter & /*ft*/)
//setup the build-id
memcpy(&shdrout.shdr[1], buildid, sizeof(shdrout.shdr[1]));
- shdrout.shdr[1].sh_name = 1;
+ set_te32(&shdrout.shdr[1].sh_name, 1);
//setup the shstrtab
memcpy(&shdrout.shdr[2], sec_strndx, sizeof(shdrout.shdr[2]));
- shdrout.shdr[2].sh_name = 20;
- shdrout.shdr[2].sh_size = 29; //size of our static shstrtab
+ set_te32(&shdrout.shdr[2].sh_name, 20);
+ set_te32(&shdrout.shdr[2].sh_size, 29); //size of our static shstrtab
}
}
}
@@ -3790,26 +3797,33 @@ void PackLinuxElf64::pack1(OutputFile *fo, Filter & /*ft*/)
if (opt->o_unix.preserve_build_id) {
// set this so we can use elf_find_section_name
e_shnum = get_te16(&ehdri.e_shnum);
+ MemBuffer mb_shdri;
if (!shdri) {
- shdri = (Elf64_Shdr *)&file_image[get_te32(&ehdri.e_shoff)];
+ mb_shdri.alloc(e_shnum * sizeof(Elf64_Shdr));
+ shdri = (Elf64_Shdr *)mb_shdri.getVoidPtr();
+ e_shoff = get_te64(&ehdri.e_shoff);
+ fi->seek(e_shoff, SEEK_SET);
+ fi->readx(shdri, e_shnum * sizeof(Elf64_Shdr));
}
//set the shstrtab
sec_strndx = &shdri[get_te16(&ehdri.e_shstrndx)];
- char *strtab = New(char, sec_strndx->sh_size);
+ upx_uint64_t sh_size = get_te64(&sec_strndx->sh_size);
+ char *strtab = New(char, sh_size);
fi->seek(0,SEEK_SET);
fi->seek(sec_strndx->sh_offset,SEEK_SET);
- fi->readx(strtab,sec_strndx->sh_size);
+ fi->readx(strtab, sh_size);
shstrtab = (const char*)strtab;
Elf64_Shdr const *buildid = elf_find_section_name(".note.gnu.build-id");
if (buildid) {
- unsigned char *data = New(unsigned char, buildid->sh_size);
- memset(data,0,buildid->sh_size);
+ unsigned bid_sh_size = get_te32(&buildid->sh_size);
+ unsigned char *data = New(unsigned char, bid_sh_size);
+ memset(data,0,bid_sh_size);
fi->seek(0,SEEK_SET);
fi->seek(buildid->sh_offset,SEEK_SET);
- fi->readx(data,buildid->sh_size);
+ fi->readx(data,bid_sh_size);
buildid_data = data;
@@ -3818,12 +3832,12 @@ void PackLinuxElf64::pack1(OutputFile *fo, Filter & /*ft*/)
//setup the build-id
memcpy(&shdrout.shdr[1], buildid, sizeof(shdrout.shdr[1]));
- shdrout.shdr[1].sh_name = 1;
+ set_te32(&shdrout.shdr[1].sh_name, 1);
//setup the shstrtab
memcpy(&shdrout.shdr[2], sec_strndx, sizeof(shdrout.shdr[2]));
- shdrout.shdr[2].sh_name = 20;
- shdrout.shdr[2].sh_size = 29; //size of our static shstrtab
+ set_te32(&shdrout.shdr[2].sh_name, 20);
+ set_te32(&shdrout.shdr[2].sh_size, 29); //size of our static shstrtab
}
}
}

View file

@ -1,2 +1 @@
SHA512 (upx-3.96-src.tar.xz) = 2d4d1be21d274d9bfdee9b9815396f5e5ff0bcdfb781b7be5fafa4d1e224028e412ec5f5ba607c482671aae27ccf9069abb2db0fb58f78f3a102a51897df2b11
SHA512 (upx-lzma-sdk-3.96.tar.gz) = 9690a1dfabf8bcb161b26761556a390aa354b633914254b29e36246fe11f9c3e905dafa916d0d52300bd418e2bddedd4122027e447fc87183bce4479e771c7df
SHA512 (upx-5.2.1-src.tar.xz) = 38fa0aa9940d9518df5bf07725ed65391d1a965cac4feace190819e7bd8125e4ed23a3795cf0fb7d4df09fbca66158265ae5774a3c48f5b55e3905fc7b962bc4

View file

@ -1,52 +0,0 @@
*** doc/Makefile~ 2018-08-25 21:58:09.000000000 -0500
--- doc/Makefile 2018-08-27 10:24:23.304422432 -0500
***************
*** 26,33 ****
RTRIM := sed -e 's/[ $(tab)]*$$//'
DETAB2 := sed -e 's/$(tab)/ /g'
! BUILT_SOURCES = upx.1 upx.doc upx.html upx.man upx.ps upx.tex
! BUILT_SOURCES = upx.1 upx.doc upx.html
###
--- 26,33 ----
RTRIM := sed -e 's/[ $(tab)]*$$//'
DETAB2 := sed -e 's/$(tab)/ /g'
! BUILT_SOURCES = upx.1 upx.doc upx.man upx.ps upx.tex
! BUILT_SOURCES = upx.1 upx.doc
###
***************
*** 46,52 ****
### rules
###
! .SUFFIXES: .1 .doc .html .man .pod .ps .tex
%.1 : %.pod
pod2man --center=" " --release="$(PACKAGE) $(VERSION)" --date="$(VERSION_DATE)" $< | $(RTRIM) > $@
--- 46,52 ----
### rules
###
! .SUFFIXES: .1 .doc .man .pod .ps .tex
%.1 : %.pod
pod2man --center=" " --release="$(PACKAGE) $(VERSION)" --date="$(VERSION_DATE)" $< | $(RTRIM) > $@
***************
*** 56,66 ****
pod2text < $< | $(RTRIM) > $@
test -s $@
- %.html : %.pod
- pod2html --noindex $< | $(RTRIM) | $(DETAB2) > $@
- @rm -f pod2htm*
- test -s $@
-
%.man : %.1
nroff -man $< | $(RTRIM) > $@
test -s $@
--- 56,61 ----

View file

@ -1,11 +0,0 @@
--- src/Makefile~ 2017-01-29 10:53:00.000000000 -0600
+++ src/Makefile 2017-03-30 10:03:12.447172055 -0500
@@ -86,7 +86,7 @@
$($(notdir $@).PRE_LINK_STEP)
$(strip $(CXXLD) $(call ee,CXXFLAGS) $(call ee,LDFLAGS) -o $@ $(upx_OBJECTS) $(call ee,LDADD) $(call ee,LIBS))
$($(notdir $@).POST_LINK_STEP)
- $(CHECK_WHITESPACE)
+# $(CHECK_WHITESPACE)
%.o : %.cpp | ./.depend
$(strip $(CXX) $(call ee,CPPFLAGS) $(call ee,CXXFLAGS) -o $@ -c $<)

136
upx.spec
View file

@ -1,24 +1,19 @@
Name: upx
Version: 3.96
Release: 9%{?dist}
Version: 5.2.1
Release: 1%{?dist}
Summary: Ultimate Packer for eXecutables
License: GPLv2+ and Public Domain
URL: http://upx.sourceforge.net/
Source0: http://upx.sourceforge.net/download/%{name}-%{version}-src.tar.xz
Source1: https://github.com/upx/upx-lzma-sdk/archive/v%{version}/upx-lzma-sdk-%{version}.tar.gz
Patch0: upx-whitespace.patch
Patch1: upx-nohtml.patch
Patch2: dadfd43ecb9909b0fab18e77753953a91322c628.patch
Patch3: 2fcaa16c13eda34307ccceea2263e474c54ee075.patch
Patch4: 3781df9da23840e596d5e9e8493f22666802fe6c.patch
Patch5: 87b73e5cfdc12da94c251b2cd83bb01c7d9f616c.patch
License: GPL-2.0-or-later AND LicenseRef-Fedora-Public-Domain
URL: https://github.com/upx/upx
Source0: %{url}/releases/download/v%{version}/%{name}-%{version}-src.tar.xz
BuildRequires: make
BuildRequires: make
BuildRequires: gcc-c++
BuildRequires: cmake
BuildRequires: ucl-devel >= 1.01
BuildRequires: zlib-devel
BuildRequires: perl-podlators
Provides: bundled(lzma-sdk) = 4.43
%description
UPX is a free, portable, extendable, high-performance executable
@ -29,39 +24,116 @@ executables suffer no memory overhead or other drawbacks.
%prep
%setup -qn %{name}-%{version}-src
sed -i -e 's/ -O2/ /' -e 's/ -Werror//' src/Makefile
tar xfz %{SOURCE1} --strip-components=1 -C src/lzma-sdk/
%patch0 -p0
%patch1 -p0
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%build
export CXX="g++"
export CXXFLAGS="$RPM_OPT_FLAGS" # export, not to make so it won't trump all
export UPX_LUADIR=/usr/include
export UPX_UCLDIR=/usr/include/ucl
make %{?_smp_mflags} -C src
make -C doc
%cmake
%cmake_build
%install
install -Dpm 644 doc/upx.1 $RPM_BUILD_ROOT%{_mandir}/man1/upx.1
install -Dpm 755 src/upx.out $RPM_BUILD_ROOT%{_bindir}/upx
%cmake_install
mv %{buildroot}%{_datadir}/doc/upx/upx-doc.* .
rm -f %{buildroot}%{_datadir}/doc/upx/*
%files
%license COPYING LICENSE
%doc BUGS NEWS PROJECTS README README.1ST THANKS
%doc NEWS README README.SRC doc/THANKS.txt upx-doc.*
%{_bindir}/upx
%{_mandir}/man1/upx.1*
%changelog
* Thu Aug 27 2026 Gwyn Ciesla <gwync@protonmail.com> - 5.2.1-1
- 5.2.1
* Fri Jul 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 5.2.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
* Thu Jun 11 2026 Gwyn Ciesla <gwync@protonmail.com> - 5.2.0-1
- 5.2.0
* Thu Mar 05 2026 Gwyn Ciesla <gwync@protonmail.com> - 5.1.1-1
- 5.1.1
* Sat Jan 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 5.1.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
* Wed Jan 07 2026 Gwyn Ciesla <gwync@protonmail.com> - 5.1.0-1
- 5.1.0
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 5.0.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Mon Jul 21 2025 Gwyn Ciesla <gwync@protonmail.com> - 5.0.2-1
- 5.0.2
* Tue May 06 2025 Gwyn Ciesla <gwync@protonmail.com> - 5.0.1-1
- 5.0.1
* Thu Feb 20 2025 Gwyn Ciesla <gwync@protonmail.com> - 5.0.0-1
- 5.0.0
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 4.2.4-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Wed Dec 18 2024 Gwyn Ciesla <gwync@protonmail.com> - 4.2.4-3
- Provide bundled lzma-sdk
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 4.2.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Tue May 21 2024 Gwyn Ciesla <gwync@protonmail.com> - 4.2.4-1
- 4.2.4
* Thu Mar 28 2024 Gwyn Ciesla <gwync@protonmail.com> - 4.2.3-1
- 4.2.3
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 4.2.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Thu Jan 04 2024 Gwyn Ciesla <gwync@protonmail.com> - 4.2.2-1
- 4.2.2
* Thu Nov 02 2023 Gwyn Ciesla <gwync@protonmail.com> - 4.2.1-1
- 4.2.1
* Fri Oct 27 2023 Gwyn Ciesla <gwync@protonmail.com> - 4.2.0-1
- 4.2.0
* Wed Aug 09 2023 Gwyn Ciesla <gwync@protonmail.com> - 4.1.0-1
- 4.1.0
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 4.0.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Sun Mar 05 2023 Gwyn Ciesla <gwync@protonmail.com> - 4.0.2-2
- migrated to SPDX license
* Wed Feb 01 2023 Gwyn Ciesla <gwync@protonmail.com> - 4.0.2-1
- 4.0.2
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 4.0.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Thu Jan 12 2023 Gwyn Ciesla <gwync@protonmail.com> - 4.0.1-2
- Patches for CVE-2023-23456, CVE-2023-23457
* Thu Nov 17 2022 Gwyn Ciesla <gwync@protonmail.com> - 4.0.1-1
- 4.0.1
* Fri Nov 04 2022 Gwyn Ciesla <gwync@protonmail.com> - 4.0.0-1
- 4.0.0
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.96-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.96-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.96-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Tue May 18 2021 Gwyn Ciesla <gwync@protonmail.com> - 3.96-9
- Patch for CVE-2020-24119