Make zsh/{tcp,zftp} compatible with full RELRO
Resolves: rhbz#2212160
This commit is contained in:
parent
51522ac8aa
commit
fa2ea2fc36
69
0003-zsh-fix-module-loading-problem-with-full-RELRO.patch
Normal file
69
0003-zsh-fix-module-loading-problem-with-full-RELRO.patch
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
From a84fdd7c8f77935ecce99ff2b0bdba738821ed79 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp>
|
||||||
|
Date: Mon, 26 Jun 2023 17:13:04 +0900
|
||||||
|
Subject: [PATCH] 51889: fix module loading problem with full RELRO
|
||||||
|
|
||||||
|
If full RELRO (relocation read-only, one of the security enhancement
|
||||||
|
methods for ELF-based systems) is used when building zsh (as in binary
|
||||||
|
packages of most Linuxes), loading a module (e.g. zsh/zftp) fails unless
|
||||||
|
all the modules it depends on are already loaded. With this patch the
|
||||||
|
necessary modules are automatically loaded.
|
||||||
|
|
||||||
|
Upstream-commit: a84fdd7c8f77935ecce99ff2b0bdba738821ed79
|
||||||
|
Signed-off-by: Lukáš Zaoral <lzaoral@redhat.com>
|
||||||
|
---
|
||||||
|
Src/Modules/zftp.c | 2 +-
|
||||||
|
Src/mkbltnmlst.sh | 24 ++++++++++++++++++++++++
|
||||||
|
2 files changed, 25 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/Src/Modules/zftp.c b/Src/Modules/zftp.c
|
||||||
|
index 49b3ffa89..47a5e9de9 100644
|
||||||
|
--- a/Src/Modules/zftp.c
|
||||||
|
+++ b/Src/Modules/zftp.c
|
||||||
|
@@ -3172,7 +3172,7 @@ static struct features module_features = {
|
||||||
|
int
|
||||||
|
setup_(UNUSED(Module m))
|
||||||
|
{
|
||||||
|
- return (require_module("zsh/net/tcp", NULL, 0) == 1);
|
||||||
|
+ return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**/
|
||||||
|
diff --git a/Src/mkbltnmlst.sh b/Src/mkbltnmlst.sh
|
||||||
|
index c4611d8b3..067ecdaf9 100644
|
||||||
|
--- a/Src/mkbltnmlst.sh
|
||||||
|
+++ b/Src/mkbltnmlst.sh
|
||||||
|
@@ -76,6 +76,30 @@ for x_mod in $x_mods; do
|
||||||
|
test "x$linked" = xno && echo "#endif"
|
||||||
|
done
|
||||||
|
|
||||||
|
+# if dynamic module 'mod' with load=no has moddeps in its .mdd,
|
||||||
|
+# then output add_dep(mod, dep) for each 'dep' in moddeps.
|
||||||
|
+dyn_mods="`grep ' link=dynamic .* load=no ' $CFMOD | \
|
||||||
|
+ sed -e '/^#/d' -e 's/ .*/ /' -e 's/^name=/ /'`"
|
||||||
|
+
|
||||||
|
+for mod in $dyn_mods; do
|
||||||
|
+ modfile="`grep '^name='$mod' ' $CFMOD | \
|
||||||
|
+ sed -e 's/^.* modfile=//' -e 's/ .*//'`"
|
||||||
|
+ if test "x$modfile" = x; then
|
||||||
|
+ echo >&2 "WARNING: no name for \`$mod' in $CFMOD (ignored)"
|
||||||
|
+ continue
|
||||||
|
+ fi
|
||||||
|
+ unset moddeps
|
||||||
|
+ . $srcdir/../$modfile
|
||||||
|
+ if test -n "$moddeps"; then
|
||||||
|
+ echo '#ifdef DYNAMIC'
|
||||||
|
+ echo "/* non-linked-in known module \`$mod' */"
|
||||||
|
+ for dep in $moddeps; do
|
||||||
|
+ echo " add_dep(\"$mod\", \"$dep\");"
|
||||||
|
+ done
|
||||||
|
+ echo '#endif'
|
||||||
|
+ fi
|
||||||
|
+done
|
||||||
|
+
|
||||||
|
echo
|
||||||
|
done_mods=" "
|
||||||
|
for bin_mod in $bin_mods; do
|
||||||
|
--
|
||||||
|
2.41.0
|
||||||
|
|
10
zsh.spec
10
zsh.spec
@ -1,7 +1,7 @@
|
|||||||
Summary: Powerful interactive shell
|
Summary: Powerful interactive shell
|
||||||
Name: zsh
|
Name: zsh
|
||||||
Version: 5.9
|
Version: 5.9
|
||||||
Release: 6%{?dist}
|
Release: 7%{?dist}
|
||||||
License: MIT-Modern-Variant AND ISC AND GPL-2.0-only
|
License: MIT-Modern-Variant AND ISC AND GPL-2.0-only
|
||||||
URL: http://zsh.sourceforge.net/
|
URL: http://zsh.sourceforge.net/
|
||||||
Source0: https://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.xz
|
Source0: https://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.xz
|
||||||
@ -17,6 +17,8 @@ Source7: dotzprofile
|
|||||||
Patch1: 0001-zsh-5.9-do-not-use-egrep-in-tests.patch
|
Patch1: 0001-zsh-5.9-do-not-use-egrep-in-tests.patch
|
||||||
# Upstream commit ab4d62eb975a4c4c51dd35822665050e2ddc6918
|
# Upstream commit ab4d62eb975a4c4c51dd35822665050e2ddc6918
|
||||||
Patch2: 0002-zsh-Use-int-main-in-test-c-codes.patch
|
Patch2: 0002-zsh-Use-int-main-in-test-c-codes.patch
|
||||||
|
# upstream commit a84fdd7c8f77935ecce99ff2b0bdba738821ed79
|
||||||
|
Patch3: 0003-zsh-fix-module-loading-problem-with-full-RELRO.patch
|
||||||
|
|
||||||
BuildRequires: autoconf
|
BuildRequires: autoconf
|
||||||
BuildRequires: coreutils
|
BuildRequires: coreutils
|
||||||
@ -77,9 +79,6 @@ sed -e 's|^\.NOTPARALLEL|#.NOTPARALLEL|' -i 'Config/defs.mk.in'
|
|||||||
# make build of run-time loadable modules work again (#1535422)
|
# make build of run-time loadable modules work again (#1535422)
|
||||||
%undefine _strict_symbol_defs_build
|
%undefine _strict_symbol_defs_build
|
||||||
|
|
||||||
# make loading of module's dependencies work again (#1277996)
|
|
||||||
export LIBLDFLAGS='-z lazy'
|
|
||||||
|
|
||||||
# avoid build failure in case we have working ypcat (#1687574)
|
# avoid build failure in case we have working ypcat (#1687574)
|
||||||
export zsh_cv_sys_nis='no'
|
export zsh_cv_sys_nis='no'
|
||||||
|
|
||||||
@ -165,6 +164,9 @@ fi
|
|||||||
%doc Doc/*.html
|
%doc Doc/*.html
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Jul 13 2023 Lukáš Zaoral <lzaoral@redhat.com> - 5.9-7
|
||||||
|
- Make zsh/{tcp,zftp} compatible with full RELRO (rhbz#2212160)
|
||||||
|
|
||||||
* Wed May 17 2023 David Cantrell <dcantrell@redhat.com> - 5.9-6
|
* Wed May 17 2023 David Cantrell <dcantrell@redhat.com> - 5.9-6
|
||||||
- Update the License tag to use SPDX identifiers
|
- Update the License tag to use SPDX identifiers
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user