From 0400a0bcdb762a47cd1fd160fcc479626a149537 Mon Sep 17 00:00:00 2001 From: MSVSphere Packaging Team Date: Fri, 25 Oct 2024 14:34:18 +0300 Subject: [PATCH] import execstack-0.5.0-29.el10 --- .execstack.metadata | 1 + .gitignore | 1 + ...al-support-for-RISC-V-64-bit-riscv64.patch | 97 ++++++++++++ SOURCES/Add-PL_ARCH-for-AArch64.patch | 118 ++++++++++++++ SOURCES/execstack-configure-c99.patch | 37 +++++ SPECS/execstack.spec | 147 ++++++++++++++++++ 6 files changed, 401 insertions(+) create mode 100644 .execstack.metadata create mode 100644 .gitignore create mode 100644 SOURCES/0001-Add-minimal-support-for-RISC-V-64-bit-riscv64.patch create mode 100644 SOURCES/Add-PL_ARCH-for-AArch64.patch create mode 100644 SOURCES/execstack-configure-c99.patch create mode 100644 SPECS/execstack.spec diff --git a/.execstack.metadata b/.execstack.metadata new file mode 100644 index 0000000..39995dd --- /dev/null +++ b/.execstack.metadata @@ -0,0 +1 @@ +2d9c4f3c410e4820587cf22d22091fb38f6bc43f SOURCES/prelink-4c79120.tar.gz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1b3fe02 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/prelink-4c79120.tar.gz diff --git a/SOURCES/0001-Add-minimal-support-for-RISC-V-64-bit-riscv64.patch b/SOURCES/0001-Add-minimal-support-for-RISC-V-64-bit-riscv64.patch new file mode 100644 index 0000000..3c18740 --- /dev/null +++ b/SOURCES/0001-Add-minimal-support-for-RISC-V-64-bit-riscv64.patch @@ -0,0 +1,97 @@ +diff --git a/src/Makefile.am b/src/Makefile.am +index a4c65f2..28ea4a6 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -13,7 +13,7 @@ bin_PROGRAMS = execstack + arch_SOURCES = arch-i386.c arch-alpha.c arch-ppc.c arch-ppc64.c \ + arch-sparc.c arch-sparc64.c arch-x86_64.c arch-mips.c \ + arch-s390.c arch-s390x.c arch-arm.c arch-sh.c arch-ia64.c \ +- arch-aarch64.c ++ arch-aarch64.c arch-riscv64.c + common_SOURCES = checksum.c data.c dso.c dwarf2.c dwarf2.h fptr.c fptr.h \ + hashtab.c hashtab.h mdebug.c prelink.h stabs.c crc32.c + prelink_SOURCES = cache.c conflict.c cxx.c doit.c exec.c execle_open.c get.c \ +diff --git a/src/Makefile.in b/src/Makefile.in +index 863dc83..15f7b78 100644 +--- a/src/Makefile.in ++++ b/src/Makefile.in +@@ -108,7 +108,7 @@ bin_PROGRAMS = execstack + arch_SOURCES = arch-i386.c arch-alpha.c arch-ppc.c arch-ppc64.c \ + arch-sparc.c arch-sparc64.c arch-x86_64.c arch-mips.c \ + arch-s390.c arch-s390x.c arch-arm.c arch-sh.c arch-ia64.c \ +- arch-aarch64.c ++ arch-aarch64.c arch-riscv64.c + + common_SOURCES = checksum.c data.c dso.c dwarf2.c dwarf2.h fptr.c fptr.h \ + hashtab.c hashtab.h mdebug.c prelink.h stabs.c crc32.c +@@ -141,7 +141,7 @@ am__objects_2 = arch-i386.$(OBJEXT) arch-alpha.$(OBJEXT) \ + arch-sparc64.$(OBJEXT) arch-x86_64.$(OBJEXT) \ + arch-mips.$(OBJEXT) arch-s390.$(OBJEXT) arch-s390x.$(OBJEXT) \ + arch-arm.$(OBJEXT) arch-sh.$(OBJEXT) arch-ia64.$(OBJEXT) \ +- arch-aarch64.$(OBJEXT) ++ arch-aarch64.$(OBJEXT) arch-riscv64.$(OBJEXT) + am_execstack_OBJECTS = execstack.$(OBJEXT) $(am__objects_1) \ + $(am__objects_2) + execstack_OBJECTS = $(am_execstack_OBJECTS) +@@ -169,7 +169,7 @@ am__depfiles_maybe = depfiles + @AMDEP_TRUE@ ./$(DEPDIR)/arch-ppc.Po ./$(DEPDIR)/arch-ppc64.Po \ + @AMDEP_TRUE@ ./$(DEPDIR)/arch-s390.Po ./$(DEPDIR)/arch-s390x.Po \ + @AMDEP_TRUE@ ./$(DEPDIR)/arch-sh.Po ./$(DEPDIR)/arch-sparc.Po \ +-@AMDEP_TRUE@ ./$(DEPDIR)/arch-sparc64.Po \ ++@AMDEP_TRUE@ ./$(DEPDIR)/arch-sparc64.Po ./$(DEPDIR)/arch-riscv64.Po \ + @AMDEP_TRUE@ ./$(DEPDIR)/arch-x86_64.Po ./$(DEPDIR)/cache.Po \ + @AMDEP_TRUE@ ./$(DEPDIR)/canonicalize.Po ./$(DEPDIR)/checksum.Po \ + @AMDEP_TRUE@ ./$(DEPDIR)/conflict.Po ./$(DEPDIR)/crc32.Po \ +@@ -290,6 +290,7 @@ distclean-compile: + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arch-sh.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arch-sparc.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arch-sparc64.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arch-riscv64.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arch-x86_64.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cache.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/canonicalize.Po@am__quote@ +diff --git a/src/arch-riscv64.c b/src/arch-riscv64.c +new file mode 100644 +index 0000000..927fbb7 +--- /dev/null ++++ b/src/arch-riscv64.c +@@ -0,0 +1,38 @@ ++/* Copyright (C) 2019 David Abdurachmanov ++ Written by David Abdurachmanov , 2019. ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2, or (at your option) ++ any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software Foundation, ++ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "prelink.h" ++ ++PL_ARCH = { ++ .name = "RISCV64", ++ .class = ELFCLASS64, ++ .machine = EM_RISCV, ++ .alternate_machine = { EM_NONE }, ++ .max_page_size = 0x1000, ++ .page_size = 0x1000 ++}; +\ No newline at end of file diff --git a/SOURCES/Add-PL_ARCH-for-AArch64.patch b/SOURCES/Add-PL_ARCH-for-AArch64.patch new file mode 100644 index 0000000..df359d9 --- /dev/null +++ b/SOURCES/Add-PL_ARCH-for-AArch64.patch @@ -0,0 +1,118 @@ +From a33b23b9ec5c0733a0ff85dafc46b3df2a6d2249 Mon Sep 17 00:00:00 2001 +From: Mark Salter +Date: Fri, 21 Aug 2015 12:03:30 -0400 +Subject: [PATCH] Add PL_ARCH for AArch64 + +Add a skeleton PL_ARCH for AArch64. Just enough to support +execstack. + +Signed-off-by: Mark Salter +--- + src/Makefile.am | 3 ++- + src/Makefile.in | 9 ++++++--- + src/arch-aarch64.c | 38 ++++++++++++++++++++++++++++++++++++++ + 3 files changed, 46 insertions(+), 4 deletions(-) + create mode 100644 src/arch-aarch64.c + +diff --git a/src/Makefile.am b/src/Makefile.am +index d2265aa9c0..a4c65f2e65 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -12,7 +12,8 @@ bin_PROGRAMS = execstack + + arch_SOURCES = arch-i386.c arch-alpha.c arch-ppc.c arch-ppc64.c \ + arch-sparc.c arch-sparc64.c arch-x86_64.c arch-mips.c \ +- arch-s390.c arch-s390x.c arch-arm.c arch-sh.c arch-ia64.c ++ arch-s390.c arch-s390x.c arch-arm.c arch-sh.c arch-ia64.c \ ++ arch-aarch64.c + common_SOURCES = checksum.c data.c dso.c dwarf2.c dwarf2.h fptr.c fptr.h \ + hashtab.c hashtab.h mdebug.c prelink.h stabs.c crc32.c + prelink_SOURCES = cache.c conflict.c cxx.c doit.c exec.c execle_open.c get.c \ +diff --git a/src/Makefile.in b/src/Makefile.in +index 85cf84577f..863dc835a0 100644 +--- a/src/Makefile.in ++++ b/src/Makefile.in +@@ -107,7 +107,8 @@ bin_PROGRAMS = execstack + + arch_SOURCES = arch-i386.c arch-alpha.c arch-ppc.c arch-ppc64.c \ + arch-sparc.c arch-sparc64.c arch-x86_64.c arch-mips.c \ +- arch-s390.c arch-s390x.c arch-arm.c arch-sh.c arch-ia64.c ++ arch-s390.c arch-s390x.c arch-arm.c arch-sh.c arch-ia64.c \ ++ arch-aarch64.c + + common_SOURCES = checksum.c data.c dso.c dwarf2.c dwarf2.h fptr.c fptr.h \ + hashtab.c hashtab.h mdebug.c prelink.h stabs.c crc32.c +@@ -139,7 +140,8 @@ am__objects_2 = arch-i386.$(OBJEXT) arch-alpha.$(OBJEXT) \ + arch-ppc.$(OBJEXT) arch-ppc64.$(OBJEXT) arch-sparc.$(OBJEXT) \ + arch-sparc64.$(OBJEXT) arch-x86_64.$(OBJEXT) \ + arch-mips.$(OBJEXT) arch-s390.$(OBJEXT) arch-s390x.$(OBJEXT) \ +- arch-arm.$(OBJEXT) arch-sh.$(OBJEXT) arch-ia64.$(OBJEXT) ++ arch-arm.$(OBJEXT) arch-sh.$(OBJEXT) arch-ia64.$(OBJEXT) \ ++ arch-aarch64.$(OBJEXT) + am_execstack_OBJECTS = execstack.$(OBJEXT) $(am__objects_1) \ + $(am__objects_2) + execstack_OBJECTS = $(am_execstack_OBJECTS) +@@ -162,7 +164,7 @@ LIBS = @LIBS@ + depcomp = $(SHELL) $(top_srcdir)/depcomp + am__depfiles_maybe = depfiles + @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/arch-alpha.Po \ +-@AMDEP_TRUE@ ./$(DEPDIR)/arch-arm.Po ./$(DEPDIR)/arch-i386.Po \ ++@AMDEP_TRUE@ ./$(DEPDIR)/arch-arm.Po ./$(DEPDIR)/arch-aarch64.Po ./$(DEPDIR)/arch-i386.Po \ + @AMDEP_TRUE@ ./$(DEPDIR)/arch-ia64.Po ./$(DEPDIR)/arch-mips.Po \ + @AMDEP_TRUE@ ./$(DEPDIR)/arch-ppc.Po ./$(DEPDIR)/arch-ppc64.Po \ + @AMDEP_TRUE@ ./$(DEPDIR)/arch-s390.Po ./$(DEPDIR)/arch-s390x.Po \ +@@ -277,6 +279,7 @@ distclean-compile: + + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arch-alpha.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arch-arm.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arch-arch64.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arch-i386.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arch-ia64.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arch-mips.Po@am__quote@ +diff --git a/src/arch-aarch64.c b/src/arch-aarch64.c +new file mode 100644 +index 0000000000..42eb2ececb +--- /dev/null ++++ b/src/arch-aarch64.c +@@ -0,0 +1,38 @@ ++/* Copyright (C) 2015 Red Hat, Inc. ++ Written by Mark Salter , 2015. ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2, or (at your option) ++ any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software Foundation, ++ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "prelink.h" ++ ++PL_ARCH = { ++ .name = "AArch64", ++ .class = ELFCLASS64, ++ .machine = EM_AARCH64, ++ .alternate_machine = { EM_NONE }, ++ .max_page_size = 0x10000, ++ .page_size = 0x1000 ++}; +-- +2.1.0 + diff --git a/SOURCES/execstack-configure-c99.patch b/SOURCES/execstack-configure-c99.patch new file mode 100644 index 0000000..f0b36fe --- /dev/null +++ b/SOURCES/execstack-configure-c99.patch @@ -0,0 +1,37 @@ +Avoid implicit function declarations, a C feature removed in 1999. + +diff --git a/aclocal.m4 b/aclocal.m4 +index a357ef74b30a09a6..2d2af334d5369e8e 100644 +--- a/aclocal.m4 ++++ b/aclocal.m4 +@@ -6727,6 +6727,7 @@ AC_DEFUN(AC_LIBELF_SXWORD, + #include + #include + #include ++#include + + static unsigned char sparc64_elf[] = { + 0x7f,0x45,0x4c,0x46,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +diff --git a/configure b/configure +index 9f2a746fbf3f7471..960e140559761417 100755 +--- a/configure ++++ b/configure +@@ -4438,8 +4438,8 @@ main () + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) +- exit(2); +- exit (0); ++ return 2; ++ return 0; + } + _ACEOF + rm -f conftest$ac_exeext +@@ -19411,6 +19411,7 @@ cat >>conftest.$ac_ext <<_ACEOF + #include + #include + #include ++#include + + static unsigned char sparc64_elf[] = { + 0x7f,0x45,0x4c,0x46,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, diff --git a/SPECS/execstack.spec b/SPECS/execstack.spec new file mode 100644 index 0000000..53e6099 --- /dev/null +++ b/SPECS/execstack.spec @@ -0,0 +1,147 @@ +## START: Set by rpmautospec +## (rpmautospec version 0.6.1) +## RPMAUTOSPEC: autorelease, autochangelog +%define autorelease(e:s:pb:n) %{?-p:0.}%{lua: + release_number = 29; + base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); + print(release_number + base_release_number - 1); +}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} +## END: Set by rpmautospec + +Name: execstack +Version: 0.5.0 +Release: %autorelease +Summary: Utility to set/clear/query executable stack bit + +%global commit 4c79120bcdbde0616f592458ccde7035e92ca3d8 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + +License: GPL-2.0-or-later +# work around for missing upstream tarball with latest checkin +Source0: https://github.com/keszybz/prelink/archive/%{commit}.tar.gz#/prelink-%{shortcommit}.tar.gz + +Patch0: Add-PL_ARCH-for-AArch64.patch +Patch1: execstack-configure-c99.patch + +Patch10: 0001-Add-minimal-support-for-RISC-V-64-bit-riscv64.patch + +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: elfutils-libelf-devel +BuildRequires: libselinux-devel, libselinux-utils +BuildRequires: git +BuildRequires: make +Requires: glibc >= 2.2.4-18, coreutils, findutils +Requires: util-linux, gawk, grep + +Obsoletes: prelink < 0.5.0-8 + +%description +This package is built from prelink sources but contains just the +execstack binary. It can be used manipulate ELF binaries to run +with or without executable stack. + +%prep +%autosetup -n prelink-%{commit} -p1 -Sgit + +%build +sed -i -e '/^prelink_LDADD/s/$/ -lpthread/' src/Makefile.{am,in} +%configure +make %{?_smp_mflags} -C gelf +make %{?_smp_mflags} -C gelfx +make %{?_smp_mflags} -C gelfx32 +make %{?_smp_mflags} -C src execstack + +%check +cp src/execstack test +src/execstack -q test | grep '^-' +src/execstack -s test +src/execstack -q test | grep '^X' +src/execstack -c test +src/execstack -q test | grep '^-' + +%install +install -D src/execstack %{buildroot}%{_bindir}/execstack +install -Dm0644 doc/execstack.8 %{buildroot}%{_mandir}/man8/execstack.8 + +%files +%license COPYING +%doc ChangeLog NEWS README TODO THANKS +%{_bindir}/execstack +%{_mandir}/man8/execstack.8.* + +%changelog +## START: Generated by rpmautospec +* Tue Jun 25 2024 David Abdurachmanov - 0.5.0-29 +- Add riscv64 support. + +* Mon Jun 24 2024 Troy Dawson - 0.5.0-28 +- Bump release for June 2024 mass rebuild + +* Wed Jan 24 2024 Fedora Release Engineering - 0.5.0-27 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 0.5.0-26 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Tue Nov 21 2023 Zbigniew Jędrzejewski-Szmek - 0.5.0-25 +- Convert license tag to SPDX + +* Wed Jul 19 2023 Fedora Release Engineering - 0.5.0-26 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Jan 19 2023 Fedora Release Engineering - 0.5.0-25 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Tue Nov 22 2022 Florian Weimer - 0.5.0-24 +- Avoid implicit function declarations in configure (#2144890) + +* Thu Jul 21 2022 Fedora Release Engineering - 0.5.0-23 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Thu Jan 20 2022 Fedora Release Engineering - 0.5.0-22 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Jul 21 2021 Fedora Release Engineering - 0.5.0-21 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Jan 26 2021 Fedora Release Engineering - 0.5.0-20 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 0.5.0-19 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jan 28 2020 Fedora Release Engineering - 0.5.0-18 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Jul 25 2019 Fedora Release Engineering - 0.5.0-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Thu Jan 31 2019 Fedora Release Engineering - 0.5.0-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Jul 13 2018 Fedora Release Engineering - 0.5.0-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed Feb 07 2018 Fedora Release Engineering - 0.5.0-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Wed Aug 02 2017 Fedora Release Engineering - 0.5.0-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 0.5.0-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Feb 10 2017 Fedora Release Engineering - 0.5.0-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Wed Feb 03 2016 Fedora Release Engineering - 0.5.0-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Fri Aug 21 2015 Zbigniew Jędrzejewski-Szmek - 0.5.0-9 +- Add support for aarch64 (#1251165) + +* Mon Jul 27 2015 Zbigniew Jędrzejewski-Szmek - 0.5.0-8 +- Kill off most of prelink package + +## END: Generated by rpmautospec