Compare commits

..

58 commits

Author SHA1 Message Date
Lukáš Zaoral
4a2d529430
fix crash with bracketed-paste-magic and undo
Resolves: rhbz#2484692
2026-07-22 16:16:15 +02:00
Fedora Release Engineering
05dc358b1a Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild 2026-07-17 09:43:40 +00:00
Lukáš Zaoral
b7e65312fa
rebase to the latest upstream release
Resolves: rhbz#2499540
2026-07-13 12:15:06 +02:00
Lukáš Zaoral
95be2e37b5
rebase to the latest upstream release
Resolves: rhbz#2483668
2026-06-04 11:03:21 +02:00
Lukáš Zaoral
ea51b5077a
Fix typo in changelog 2026-03-24 10:31:31 +01:00
Lukáš Zaoral
fed92fd5ff
fix segfault in _IO_putc
Resolves: rhbz#2449939
2026-03-24 10:31:08 +01:00
Fedora Release Engineering
43281b3111 Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild 2026-01-17 21:11:08 +00:00
Christoph Erhardt
43ef6c97ad Add completion support for dnf5 2025-09-30 21:32:33 +02:00
Fedora Release Engineering
62445c1b7d Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 21:20:56 +00:00
Lukáš Zaoral
631ad08bf2
tests: remove dependency on Fedora shell tests 2025-04-11 17:03:32 +02:00
Fedora Release Engineering
1c5480cb7f Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-19 16:52:32 +00:00
Fedora Release Engineering
10d8a43846 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-20 10:57:13 +00:00
Lukáš Zaoral
ba0ada335b
Fix zlogout when ncurses is not installed
Resolves: rhbz#2279741
Fixes: d2bb79226e (Skip 'clear' if missing for zlogout.rhs)
2024-05-13 10:57:14 +02:00
Nate Leong
d2bb79226e Skip 'clear' if missing for zlogout.rhs
In the fedora:39 Docker image, the following occurs:

# logout
/etc/zlogout:7: command not found: clear
2024-04-01 01:30:04 +00:00
Fedora Release Engineering
aeaca3cd36 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-27 11:17:42 +00:00
Lukáš Zaoral
44214321ee
fix segfault in delerefilelist
Resolves: rhbz#2245462
2024-01-17 14:05:37 +01:00
Florian Weimer
82b6281e8c Fix C compatibility issue in the configure script
Related to:

  <https://fedoraproject.org/wiki/Changes/PortingToModernC>
  <https://fedoraproject.org/wiki/Toolchain/PortingToModernC>
2023-12-08 23:33:31 +01:00
Lukáš Zaoral
47d6eba90a
fix FTBFS caused by texinfo 7.1
- fix build of the PCRE module
2023-11-21 18:40:21 +01:00
Lukáš Zaoral
584e38d1fd
port to PCRE 2
Resolves: rhbz#1938979
2023-08-21 08:54:34 +02:00
Fedora Release Engineering
261d244007 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-22 19:47:20 +00:00
Lukáš Zaoral
fa2ea2fc36
Make zsh/{tcp,zftp} compatible with full RELRO
Resolves: rhbz#2212160
2023-07-13 10:06:02 +02:00
David Cantrell
51522ac8aa Update the License tag to use SPDX license expressions
Examine the zsh source and construct a new License tag using SPDX
identifiers.  Most of the zsh source is licensed under what SPDX calls
the MIT-Modern-Variant license.  One source file
(openssh_bsd_setres_id.c) carries an ISC license as well.  Three shell
extensions are licensed under GPL-2.0-only.

Signed-off-by: David Cantrell <dcantrell@redhat.com>
2023-05-17 11:27:46 -04:00
Fedora Release Engineering
1ca491a901 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-21 08:21:08 +00:00
Timm Bäder
527f2cfb81 use 'int main()' in test C-codes in configure
This is based on upstream commit
ab4d62eb975a4c4c51dd35822665050e2ddc6918 with the changed to the
ChangeLog file removed.
2023-01-13 09:37:42 +01:00
Kamil Dudka
4b91eb160f do not use egrep in tests to make them pass again 2023-01-09 10:35:32 +01:00
Fedora Release Engineering
8e68c40248 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-23 14:00:26 +00:00
Kamil Dudka
18fc23fb63 update to latest upstream release: 5.9 2022-05-15 10:01:23 +02:00
Kamil Dudka
9fde3e3713 mention CVE-2021-45444 in the last change log entry 2022-02-13 13:06:43 +01:00
Kamil Dudka
528a6dccc9 Resolves: CVE-2021-45444 - update to latest upstream release: 5.8.1 2022-02-13 13:04:26 +01:00
Fedora Release Engineering
e583fe8315 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-22 05:56:26 +00:00
Kamil Dudka
5ac50934d3 Resolves: #1900809 - prepend ~/.local/bin and ~/bin to $PATH
... for newly created users
2022-01-04 08:45:58 +01:00
Kamil Dudka
717b27b08b avoid unnecessary failure of the test-suite
... in case ${RPS1} is set
2022-01-04 08:45:58 +01:00
2055169831 Overwrite PROMPT only if it's set to the built-in default
https://bugzilla.redhat.com/show_bug.cgi?id=2026749
2021-11-25 19:09:23 +01:00
Fedora Release Engineering
210b8657cd - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-23 22:22:40 +00:00
Kamil Dudka
9f49b18e48 complete file arguments after rpmbuild -r/-b/-t 2021-03-25 16:51:00 +01:00
Fedora Release Engineering
8d4d202250 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-28 00:45:53 +00:00
Kamil Dudka
157285ba33 zsh.spec: keep BR list alphabetically sorted 2021-01-09 14:04:49 +01:00
Tom Stellard
b6b9c6607b Add BuildRequires: make
https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot
2021-01-09 01:56:03 +00:00
Petr Šplíchal
2510705678 Enable relevant tests from the shared shell repo
This pull request enables tests in the Fedora CI using `tmt` which
also allows to easily execute and debug tests from your laptop:

Run tests directly on your localhost:

    sudo dnf install -y tmt
    tmt run --all provision --how local

Run tests in a virtual machine:

    sudo dnf install -y tmt-provision-virtual
    tmt run

Check the documentation to learn more about the tool:
https://docs.fedoraproject.org/en-US/ci/tmt/
2020-10-29 17:16:21 +01:00
Fedora Release Engineering
a734556f33 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-29 15:27:18 +00:00
Tom Stellard
f8371def5f Use make macros
https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
2020-07-14 15:12:58 +00:00
Kamil Dudka
8dbf2fe7bf update to latest upstream release: 5.8.0 2020-02-24 13:45:05 +01:00
Fedora Release Engineering
3eea62750b - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-31 05:23:40 +00:00
Kamil Dudka
143732d608 Resolves: #1722703 - make failed searches of history in Zle robust 2019-07-26 18:46:57 +02:00
Kamil Dudka
711462cd2d Resolves: #1687574 - avoid build failure in case we have working ypcat 2019-03-12 09:56:05 +01:00
Tim Landscheidt
6ff894c80f Remove obsolete requirements for %post/%preun scriptlets 2019-03-08 01:56:16 +00:00
Kamil Dudka
46ee1203c3 update to latest upstream release: 5.7.1 2019-02-04 08:04:14 +01:00
Fedora Release Engineering
5c5d46e9bb - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-02-03 13:14:59 +00:00
Jason Tibbitts
5fd703981f Update to 5.7.
Remove upstreamed patches.
Add build dep on glibc-langpack-ja to avoid skipping a test.
2019-01-28 12:36:15 -06:00
Jason Tibbitts
a4fbf297b3 Ignore mockbuild results dir and source rpms. 2019-01-28 12:35:45 -06:00
0049d9b1ed
Remove obsolete scriptlets
References: https://fedoraproject.org/wiki/Changes/RemoveObsoleteScriptlets
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2019-01-27 19:40:40 +01:00
Kamil Dudka
bcabc2d836 Resolves: #1654989 - return non-zero exit status on nested parse error 2018-11-30 16:36:32 +01:00
Kamil Dudka
d431dce30f fix programming mistakes detected by static analysis 2018-11-12 15:03:59 +01:00
Petr Šplíchal
9bba558cc8 Enable CI tests using the Standard Test Interface
Adding initial set of basic functionality tests for mksh
according to the Standard Test Interface [1]. See Quick Start
Guide [2] for brief introduction about how to run these tests
and the Fedora CI portal [3] for more detailed info and links.

[1] https://fedoraproject.org/wiki/CI/Standard_Test_Interface
[2] https://fedoraproject.org/wiki/CI/Quick_Start_Guide
[3] https://fedoraproject.org/wiki/CI
2018-09-21 13:47:25 +02:00
Kamil Dudka
b1f219f712 update to latest upstream release: 5.6.2 2018-09-14 16:35:34 +02:00
Kamil Dudka
cf912229b1 update to latest upstream release: 5.6.1 2018-09-10 10:27:32 +02:00
Kamil Dudka
80f10cc846 update to latest upstream release: 5.6
Resolves: CVE-2018-0502
Resolves: CVE-2018-13259
2018-09-04 16:28:42 +02:00
Fedora Release Engineering
c32c635039 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-07-14 09:53:20 +00:00
13 changed files with 543 additions and 519 deletions

3
.gitignore vendored
View file

@ -1,3 +1,2 @@
/zsh-5.*.*.tar.bz2
/zsh-5.*.tar.xz
/zsh-5.4.2.tar.gz
/zsh-5.*.tar.xz.asc

View file

@ -1,148 +0,0 @@
From ddb6c5b4c0ab9c6a7404112d367f0c7cc400ceec Mon Sep 17 00:00:00 2001
From: Anthony Sottile <asottile@umich.edu>
Date: Mon, 3 Sep 2018 14:39:25 +0000
Subject: [PATCH] CVE-2018-0502, CVE-2018-13259: Fix two security issues in
shebang line parsing.
See NEWS for more information.
Patch by Anthony Sottile and Buck Evan.
Upstream-commit: 1c4c7b6a4d17294df028322b70c53803a402233d
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
---
Etc/FAQ.yo | 2 +-
Src/exec.c | 36 ++++++++++++++++++++----------------
Test/A05execution.ztst | 22 ++++++++++++++++++++++
3 files changed, 43 insertions(+), 17 deletions(-)
diff --git a/Etc/FAQ.yo b/Etc/FAQ.yo
index 72ff7fa..8552fe7 100644
--- a/Etc/FAQ.yo
+++ b/Etc/FAQ.yo
@@ -306,7 +306,7 @@ sect(On what machines will it run?)
sect(What's the latest version?)
- Zsh 5.5.1 is the latest production version. For details of all the
+ Zsh 5.6 is the latest production version. For details of all the
changes, see the NEWS file in the source distribution.
A beta of the next version is sometimes available. Development of zsh is
diff --git a/Src/exec.c b/Src/exec.c
index 216057a..0908a1a 100644
--- a/Src/exec.c
+++ b/Src/exec.c
@@ -453,7 +453,7 @@ execcursh(Estate state, int do_exec)
/* execve after handling $_ and #! */
-#define POUNDBANGLIMIT 64
+#define POUNDBANGLIMIT 128
/**/
static int
@@ -494,18 +494,20 @@ zexecve(char *pth, char **argv, char **newenvp)
if ((fd = open(pth, O_RDONLY|O_NOCTTY)) >= 0) {
argv0 = *argv;
*argv = pth;
- execvebuf[0] = '\0';
+ memset(execvebuf, '\0', POUNDBANGLIMIT + 1);
ct = read(fd, execvebuf, POUNDBANGLIMIT);
close(fd);
if (ct >= 0) {
- if (execvebuf[0] == '#') {
- if (execvebuf[1] == '!') {
- for (t0 = 0; t0 != ct; t0++)
- if (execvebuf[t0] == '\n')
- break;
+ if (ct >= 2 && execvebuf[0] == '#' && execvebuf[1] == '!') {
+ for (t0 = 0; t0 != ct; t0++)
+ if (execvebuf[t0] == '\n')
+ break;
+ if (t0 == ct)
+ zerr("%s: bad interpreter: %s: %e", pth,
+ execvebuf + 2, eno);
+ else {
while (inblank(execvebuf[t0]))
execvebuf[t0--] = '\0';
- execvebuf[POUNDBANGLIMIT] = '\0';
for (ptr = execvebuf + 2; *ptr && *ptr == ' '; ptr++);
for (ptr2 = ptr; *ptr && *ptr != ' '; ptr++);
if (eno == ENOENT) {
@@ -514,10 +516,16 @@ zexecve(char *pth, char **argv, char **newenvp)
*ptr = '\0';
if (*ptr2 != '/' &&
(pprog = pathprog(ptr2, NULL))) {
- argv[-2] = ptr2;
- argv[-1] = ptr + 1;
- winch_unblock();
- execve(pprog, argv - 2, newenvp);
+ if (ptr == execvebuf + t0 + 1) {
+ argv[-1] = ptr2;
+ winch_unblock();
+ execve(pprog, argv - 1, newenvp);
+ } else {
+ argv[-2] = ptr2;
+ argv[-1] = ptr + 1;
+ winch_unblock();
+ execve(pprog, argv - 2, newenvp);
+ }
}
zerr("%s: bad interpreter: %s: %e", pth, ptr2,
eno);
@@ -532,10 +540,6 @@ zexecve(char *pth, char **argv, char **newenvp)
winch_unblock();
execve(ptr2, argv - 1, newenvp);
}
- } else if (eno == ENOEXEC) {
- argv[-1] = "sh";
- winch_unblock();
- execve("/bin/sh", argv - 1, newenvp);
}
} else if (eno == ENOEXEC) {
for (t0 = 0; t0 != ct; t0++)
diff --git a/Test/A05execution.ztst b/Test/A05execution.ztst
index 0804691..fb39d05 100644
--- a/Test/A05execution.ztst
+++ b/Test/A05execution.ztst
@@ -12,7 +12,14 @@
print '#!/bin/sh\necho This is dir2' >dir2/tstcmd
+ print -n '#!sh\necho This is slashless' >tstcmd-slashless
+ print -n '#!echo foo\necho This is arg' >tstcmd-arg
+ print '#!xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnyyy' >tstcmd-interp-too-long
+ print '#!/bin/sh\necho should not execute; exit 1' >xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxn
+
chmod 755 tstcmd dir1/tstcmd dir2/tstcmd
+ chmod 755 tstcmd-slashless tstcmd-arg tstcmd-interp-too-long
+ chmod 755 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxn
%test
./tstcmd
@@ -33,6 +40,21 @@
0:path (2)
>This is top
+ PATH=/bin:${ZTST_testdir}/command.tmp/ tstcmd-slashless
+0:path (3)
+>This is slashless
+
+ PATH=/bin:${ZTST_testdir}/command.tmp tstcmd-arg
+0:path (4)
+*>foo */command.tmp/tstcmd-arg
+
+ path=(/bin ${ZTST_testdir}/command.tmp/)
+ tstcmd-interp-too-long 2>&1; echo "status $?"
+ path=($storepath)
+0:path (5)
+*>*tstcmd-interp-too-long: bad interpreter: x*xn: no such file or directory
+>status 127
+
functst() { print $# arguments:; print -l $*; }
functst "Eines Morgens" "als Gregor Samsa"
functst ""
--
2.17.1

View file

@ -1,266 +0,0 @@
From bc943b78268ad633f79756639d4295f7b61dbedd Mon Sep 17 00:00:00 2001
From: Kamil Dudka <kdudka@redhat.com>
Date: Wed, 7 Nov 2018 14:04:52 +0100
Subject: [PATCH 1/5] 43791: File descriptor could be closed twice in clone
Upstream-commit: a8cc017c74a916b690dc074c299faf4bd24b5af4
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
Error: USE_AFTER_FREE (CWE-825):
zsh-5.5.1/Src/Modules/clone.c:71: closed_arg: "close(int)" closes "ttyfd".
zsh-5.5.1/Src/Modules/clone.c:99: double_close: Calling "close(int)" closes handle "ttyfd" which has already been closed.
97| setsparam("TTY", ztrdup(ttystrname));
98| }
99|-> close(ttyfd);
100| if (pid < 0) {
101| zerrnam(nam, "fork failed: %e", errno);
---
Src/Modules/clone.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/Src/Modules/clone.c b/Src/Modules/clone.c
index 9304292..dfd8e8a 100644
--- a/Src/Modules/clone.c
+++ b/Src/Modules/clone.c
@@ -96,7 +96,8 @@ bin_clone(char *nam, char **args, UNUSED(Options ops), UNUSED(int func))
init_io(NULL);
setsparam("TTY", ztrdup(ttystrname));
}
- close(ttyfd);
+ else
+ close(ttyfd);
if (pid < 0) {
zerrnam(nam, "fork failed: %e", errno);
return 1;
--
2.17.2
From 6096988f02635ed336a056e3670b63070400e6bc Mon Sep 17 00:00:00 2001
From: Kamil Dudka <kdudka@redhat.com>
Date: Wed, 7 Nov 2018 14:04:53 +0100
Subject: [PATCH 2/5] 43793: computil could overrun buffer
Upstream-commit: 031afe420725e328e9d7742be69ef0bd81c62b9a
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
Error: BUFFER_SIZE (CWE-120):
zsh-5.5.1/Src/Zle/computil.c:564: overlapping_buffer: The source buffer "str->str + 2" potentially overlaps with the destination buffer "str->str", which results in undefined behavior for "strcpy".
zsh-5.5.1/Src/Zle/computil.c:564: remediation: Replace "strcpy(dest, src)" with "memmove(dest, src, strlen(src)+1)".
562| str->str = ztrdup(str->str);
563| if (hide[1] && str->str[0] == '-' && str->str[1] == '-')
564|-> strcpy(str->str, str->str + 2);
565| else if (str->str[0] == '-' || str->str[0] == '+')
566| strcpy(str->str, str->str + 1);
Error: BUFFER_SIZE (CWE-120):
zsh-5.5.1/Src/Zle/computil.c:566: overlapping_buffer: The source buffer "str->str + 1" potentially overlaps with the destination buffer "str->str", which results in undefined behavior for "strcpy".
zsh-5.5.1/Src/Zle/computil.c:566: remediation: Replace "strcpy(dest, src)" with "memmove(dest, src, strlen(src)+1)".
564| strcpy(str->str, str->str + 2);
565| else if (str->str[0] == '-' || str->str[0] == '+')
566|-> strcpy(str->str, str->str + 1);
567| }
568| }
---
Src/Zle/computil.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Src/Zle/computil.c b/Src/Zle/computil.c
index 5526e0a..cb1c010 100644
--- a/Src/Zle/computil.c
+++ b/Src/Zle/computil.c
@@ -561,9 +561,9 @@ cd_init(char *nam, char *hide, char *mlen, char *sep,
if (str->str == str->match)
str->str = ztrdup(str->str);
if (hide[1] && str->str[0] == '-' && str->str[1] == '-')
- strcpy(str->str, str->str + 2);
+ memmove(str->str, str->str + 2, strlen(str->str) - 1);
else if (str->str[0] == '-' || str->str[0] == '+')
- strcpy(str->str, str->str + 1);
+ memmove(str->str, str->str + 1, strlen(str->str));
}
}
for (ap = args; *args &&
--
2.17.2
From 29445bdf10714bd41d2124d3c31cc16c1f682854 Mon Sep 17 00:00:00 2001
From: Kamil Dudka <kdudka@redhat.com>
Date: Wed, 7 Nov 2018 14:04:54 +0100
Subject: [PATCH 3/5] 43723: file descriptor could leak on fork error
Upstream-commit: d1095bdf744c190c7e8ff126ba02caea8f63880d
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
Error: RESOURCE_LEAK (CWE-772):
zsh-5.5.1/Src/exec.c:4680: open_fn: Returning handle opened by "open".
zsh-5.5.1/Src/exec.c:4680: var_assign: Assigning: "fd" = handle returned from "open(nam, 449, 384)".
zsh-5.5.1/Src/exec.c:4810: leaked_handle: Handle variable "fd" going out of scope leaks the handle.
4808| /* fork or open error */
4809| child_unblock();
4810|-> return nam;
4811| } else if (pid) {
4812| int os;
---
Src/exec.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/Src/exec.c b/Src/exec.c
index 0908a1a..8045db2 100644
--- a/Src/exec.c
+++ b/Src/exec.c
@@ -4722,7 +4722,8 @@ getoutputfile(char *cmd, char **eptr)
}
if ((cmdoutpid = pid = zfork(NULL)) == -1) {
- /* fork or open error */
+ /* fork error */
+ close(fd);
child_unblock();
return nam;
} else if (pid) {
--
2.17.2
From afb4192a75066f86ce7051a72c0feb7b80c0cdd8 Mon Sep 17 00:00:00 2001
From: Kamil Dudka <kdudka@redhat.com>
Date: Wed, 7 Nov 2018 14:04:55 +0100
Subject: [PATCH 4/5] 43789: possible use after free clearing up math func from
module
Upstream-commit: e27175c7c8cdfeb4e28d4ff21eb51aa003d70a03
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
Error: USE_AFTER_FREE (CWE-825):
zsh-5.5.1/Src/module.c:1390: freed_arg: "deletemathfunc" frees "f".
zsh-5.5.1/Src/module.c:1352:6: freed_arg: "zfree" frees parameter "f".
zsh-5.5.1/Src/mem.c:1888:5: freed_arg: "free" frees parameter "p".
zsh-5.5.1/Src/module.c:1394: deref_after_free: Dereferencing freed pointer "f".
1392| ret = 1;
1393| } else {
1394|-> f->flags &= ~MFF_ADDED;
1395| }
1396| }
---
Src/module.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/Src/module.c b/Src/module.c
index 4ae7831..33d75eb 100644
--- a/Src/module.c
+++ b/Src/module.c
@@ -1390,8 +1390,6 @@ setmathfuncs(char const *nam, MathFunc f, int size, int *e)
if (deletemathfunc(f)) {
zwarnnam(nam, "math function `%s' already deleted", f->name);
ret = 1;
- } else {
- f->flags &= ~MFF_ADDED;
}
}
f++;
--
2.17.2
From 4553645c00d9a2e81a79e2014b106f6590500287 Mon Sep 17 00:00:00 2001
From: Kamil Dudka <kdudka@redhat.com>
Date: Wed, 7 Nov 2018 14:04:56 +0100
Subject: [PATCH 5/5] 43790: failed mailstat could leak memory
Upstream-commit: d50e204b0c4c10164a711bf640500e46987de9c3
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
Error: RESOURCE_LEAK (CWE-772):
zsh-5.5.1/Src/utils.c:7406: alloc_fn: Storage is returned from allocation function "appstr".
zsh-5.5.1/Src/string.c:200:5: alloc_fn: Storage is returned from allocation function "realloc".
zsh-5.5.1/Src/string.c:200:5: identity_transfer: Passing "realloc(base, strlen(base) + strlen(append) + 1UL)" as argument 1 to function "strcat", which returns that argument.
zsh-5.5.1/Src/string.c:200:5: return_alloc_fn: Directly returning storage allocated by "strcat".
zsh-5.5.1/Src/utils.c:7406: var_assign: Assigning: "dir" = storage returned from "appstr(ztrdup(path), "/cur")".
zsh-5.5.1/Src/utils.c:7407: noescape: Resource "dir" is not freed or pointed-to in "stat".
zsh-5.5.1/Src/utils.c:7407: leaked_storage: Variable "dir" going out of scope leaks the storage it points to.
7405| /* See if cur/ is present */
7406| dir = appstr(ztrdup(path), "/cur");
7407|-> if (stat(dir, &st_tmp) || !S_ISDIR(st_tmp.st_mode)) return 0;
7408| st_ret.st_atime = st_tmp.st_atime;
7409|
Error: RESOURCE_LEAK (CWE-772):
zsh-5.5.1/Src/utils.c:7412: alloc_fn: Storage is returned from allocation function "appstr".
zsh-5.5.1/Src/string.c:200:5: alloc_fn: Storage is returned from allocation function "realloc".
zsh-5.5.1/Src/string.c:200:5: identity_transfer: Passing "realloc(base, strlen(base) + strlen(append) + 1UL)" as argument 1 to function "strcat", which returns that argument.
zsh-5.5.1/Src/string.c:200:5: return_alloc_fn: Directly returning storage allocated by "strcat".
zsh-5.5.1/Src/utils.c:7412: var_assign: Assigning: "dir" = storage returned from "appstr(dir, "/tmp")".
zsh-5.5.1/Src/utils.c:7413: noescape: Resource "dir" is not freed or pointed-to in "stat".
zsh-5.5.1/Src/utils.c:7413: leaked_storage: Variable "dir" going out of scope leaks the storage it points to.
7411| dir[plen] = 0;
7412| dir = appstr(dir, "/tmp");
7413|-> if (stat(dir, &st_tmp) || !S_ISDIR(st_tmp.st_mode)) return 0;
7414| st_ret.st_mtime = st_tmp.st_mtime;
7415|
Error: RESOURCE_LEAK (CWE-772):
zsh-5.5.1/Src/utils.c:7418: alloc_fn: Storage is returned from allocation function "appstr".
zsh-5.5.1/Src/string.c:200:5: alloc_fn: Storage is returned from allocation function "realloc".
zsh-5.5.1/Src/string.c:200:5: identity_transfer: Passing "realloc(base, strlen(base) + strlen(append) + 1UL)" as argument 1 to function "strcat", which returns that argument.
zsh-5.5.1/Src/string.c:200:5: return_alloc_fn: Directly returning storage allocated by "strcat".
zsh-5.5.1/Src/utils.c:7418: var_assign: Assigning: "dir" = storage returned from "appstr(dir, "/new")".
zsh-5.5.1/Src/utils.c:7419: noescape: Resource "dir" is not freed or pointed-to in "stat".
zsh-5.5.1/Src/utils.c:7419: leaked_storage: Variable "dir" going out of scope leaks the storage it points to.
7417| dir[plen] = 0;
7418| dir = appstr(dir, "/new");
7419|-> if (stat(dir, &st_tmp) || !S_ISDIR(st_tmp.st_mode)) return 0;
7420| st_ret.st_mtime = st_tmp.st_mtime;
7421|
---
Src/utils.c | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/Src/utils.c b/Src/utils.c
index b418517..492babc 100644
--- a/Src/utils.c
+++ b/Src/utils.c
@@ -7404,19 +7404,28 @@ mailstat(char *path, struct stat *st)
/* See if cur/ is present */
dir = appstr(ztrdup(path), "/cur");
- if (stat(dir, &st_tmp) || !S_ISDIR(st_tmp.st_mode)) return 0;
+ if (stat(dir, &st_tmp) || !S_ISDIR(st_tmp.st_mode)) {
+ zsfree(dir);
+ return 0;
+ }
st_ret.st_atime = st_tmp.st_atime;
/* See if tmp/ is present */
dir[plen] = 0;
dir = appstr(dir, "/tmp");
- if (stat(dir, &st_tmp) || !S_ISDIR(st_tmp.st_mode)) return 0;
+ if (stat(dir, &st_tmp) || !S_ISDIR(st_tmp.st_mode)) {
+ zsfree(dir);
+ return 0;
+ }
st_ret.st_mtime = st_tmp.st_mtime;
/* And new/ */
dir[plen] = 0;
dir = appstr(dir, "/new");
- if (stat(dir, &st_tmp) || !S_ISDIR(st_tmp.st_mode)) return 0;
+ if (stat(dir, &st_tmp) || !S_ISDIR(st_tmp.st_mode)) {
+ zsfree(dir);
+ return 0;
+ }
st_ret.st_mtime = st_tmp.st_mtime;
#if THERE_IS_EXACTLY_ONE_MAILDIR_IN_MAILPATH
@@ -7428,6 +7437,7 @@ mailstat(char *path, struct stat *st)
st_tmp.st_atime == st_new_last.st_atime &&
st_tmp.st_mtime == st_new_last.st_mtime) {
*st = st_ret_last;
+ zsfree(dir);
return 0;
}
st_new_last = st_tmp;
--
2.17.2

View file

@ -1,28 +0,0 @@
From 878ebe3c74cee4b9702c9672b87ee56f057e1f02 Mon Sep 17 00:00:00 2001
From: Peter Stephenson <p.stephenson@samsung.com>
Date: Thu, 29 Nov 2018 17:54:02 +0000
Subject: [PATCH] 43854: Set tok to LEXERR on generic parse error.
Needed by main loop which detects an error this way.
Upstream-commit: ef20425381e83ebd5a10c2ab270a347018371162
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
---
Src/lex.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/Src/lex.c b/Src/lex.c
index 44ad880..c29aaba 100644
--- a/Src/lex.c
+++ b/Src/lex.c
@@ -1613,6 +1613,7 @@ parsestr(char **s)
zerr("parse error near `%c'", err);
else
zerr("parse error");
+ tok = LEXERR;
}
}
return err;
--
2.17.2

12
dotzprofile Normal file
View file

@ -0,0 +1,12 @@
# this file is installed as ~/.zprofile for newly created users
# prepend ~/.local/bin and ~/bin to $PATH unless it is already there
if ! [[ "$PATH" =~ "$HOME/bin" ]]
then
PATH="$HOME/bin:$PATH"
fi
if ! [[ "$PATH" =~ "$HOME/.local/bin:" ]]
then
PATH="$HOME/.local/bin:$PATH"
fi
export PATH

View file

@ -1 +1,2 @@
SHA512 (zsh-5.5.1.tar.xz) = 37156ff682f8ec337526c8f93a0a2031000bb0b4b2a59e04158aae3f0fb667f4d9898d6f2bae8abe3dd2839f760f2e335484e016564a4a59097273a1f64da0c2
SHA512 (zsh-5.9.2.tar.xz) = 40bb5eb2cf217e6bcff342fcc9314f082a5d8975abcb56897e86eba5839ddf0ec1ac3feed1e797d4c68cea22228197342916f14bb87309bbcc026a87622bc015
SHA512 (zsh-5.9.2.tar.xz.asc) = 9657c8fef30124e4ea1b4ab41c80b471990c52c362e53f40c9bcca1be1b48af5d19437ecf6a645dbe9ea328d82cc43f9d88ad3835d23d76e482969017a956bf6

View file

@ -4,4 +4,4 @@
#
#
clear
command -v clear &> /dev/null && clear

View file

@ -2,9 +2,6 @@
# /etc/zprofile and ~/.zprofile are run for login shells
#
PATH="$PATH:$HOME/bin"
export PATH
_src_etc_profile()
{
# Make /etc/profile happier, and have possible ~/.zshenv options like

View file

@ -1,11 +0,0 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQEcBAABCAAGBQJa1Op5AAoJEKcdmp1L2yezMOoH/3d9WE9GurXK9ZLF/IF3RZjj
G82A1FIylBIO+JCbZLHLqX359HNC42/6p/DuzrgtfTJpSXLKGyNeiuKDhLWD75B9
mpVfOeNXXWyyxgT0NW9L2mPYOUfwn4GyYO/+CC7z68fCLoXDGjTDIkPZOEIPHhvg
/QWD/0qCRcBr1OaDKowtRS4+Dvj5AH0YRzWYuqPYMPcDfZ20IVZ2HPKROir9coGu
PyI5ToAswA6OFwCsq4WGgwUno2JiaOoFDR0imkNetvkqz7RXgwghu8r+a6GPPWOf
eydUuUmvlj0COoeAJmJ8KL2u6GnVgUmTCswo3VNOpUE9USxcP0oB44+SyeZ6KDk=
=uo1d
-----END PGP SIGNATURE-----

269
zsh-keyring.asc Normal file
View file

@ -0,0 +1,269 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQENBFwswugBCADdkzua9HwC8Ip5zh7Z0/nJGKbMyq+cobXArhHos40taeidn0+v
HRES5y6PHR+h56c9TpmJEp/bLCHP5pLvcSz/ETz7+Kk82pld63pOHejSxAQCu7Wv
1NwrTu6TyKlZsNG1oZBxx2LkEN6k8Wy+88DlQqZoXOXafmhF+Sms6gv9DXa029sv
B07EehAx02T+b02QwVVG/Pq9austmsTd9EcNcVNRDneD2LcdxCllbS5IamjVa+NW
oeKZVqbsO71uUolwBvshFSBLPsSY8EZdGApjazQcY0lgkaRA/QlMOisyq2mjV6FY
JXHrlI3WWWK2vROjb35AHiHEE/EVgb5RVpxxABEBAAG0E2RhbmEgPGRhbmFAZGFu
YS5pcz6JAU4EEwEIADgWIQR8p+yq8GIWuQ+JQUas+BRsroy7xAUCXCzC6AIbAwUL
CQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRCs+BRsroy7xA5XB/93EQqzs0as07U+
gmPDpvE7JwIY4TrcvAS7RHgJ4sE+arR5uTziHixiHBQQMedbfV51Jxgws6WL0Ko8
7K8h9sN2UGnXIc1lWuQ2FDshrcpSHZvLxL4Z7WC3Rj/Dq3/nuZZyljWQNHxg4BlO
EJqe67F5kT2OI591oxB6L1E6F8sVsgxD7gBCPVl/8CsyZ7wkyW/gMRqrlYolJhpS
B5C1zKJzvULQJKXDCh9DUyi7cKFtPyYfYtRWfWhKGz5Dhtt9qvBlxJzZufZ9QNQt
oPhNGF34QaLWTCLRbtoVbNq2NlxalZ5Byhg/0pBcQc2w4C70jSxF3c+2oMEGQIbc
5GJFgLpZuQENBFwswugBCAD5rIYdlLWHOMw+stWTRNquu3SZr+v7RRzreV9fOKN+
lUiqwicU2uCX39s/q+2wtF536r+IS/53DrMAW8sxf8eroK+MBnJYtP3U8BnB3mag
bTJXMjng2ZqZXvxzetXLyXR+38f+6WbJtV0ByDeFQQJYsFxOag3r6etxrzpwRFm0
PL440fc0nxOxhxWWJcR0RKTMX87ymipi9mETYeZi7h9B3cDw8aIUz2O3s45TtNlA
NI1MNMU4sAsc5i+w0zJON9gT+rWDYFj6BiEqnRoSK2XDm+WaJa3FwgW1WnHPTe+E
RJFGT58DICU3ta6cCQPavZz/KALyj8GBJ+PydelIAv2rABEBAAGJATYEGAEIACAW
IQR8p+yq8GIWuQ+JQUas+BRsroy7xAUCXCzC6AIbDAAKCRCs+BRsroy7xOgxB/40
sp9xFq8L/59yRTeXSskOsGk3aUlSnACofcRCGgDSXV5GwWJ/G0O8krhHOISJKuxc
vA0wLFq0WB/EafrKAPTSkrnxmq8noT3c8MpnFRSXHq3sOXkB4nqVEmUu/AAA0TbC
HcwhFQExvK7O+funxIGU5vqHFeQGJ0VcgC/KZUEMNtVV8aZGvn7JzSxEIwHVXGLu
5H7TnNWzLzkzIDVY9IJpTutsc6RMvv6BV8ooWBHSgzmh0MTqEjwNarHAMuffrAjE
zIO3qi0YCaxSDVf2jrWyYpB2QntplmUoubB9s/ngCqVb4A3B7JxPmJuL/0XMUThn
WZLWFpbLimyoUCfHoehZ
=dR/Y
-----END PGP PUBLIC KEY BLOCK-----
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
=KiyE
-----END PGP PUBLIC KEY BLOCK-----
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
Qg719Q==
=+Fbc
-----END PGP PUBLIC KEY BLOCK-----
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQENBFZWC4cBCADgb7/oPoCs9SE+/jrzmDT7L+PbYLCygCExxp4mt3CsSzn5xefq
NGU+aBJnvyongcsYrW173GumDjXCG3GBtnmqs3dFeoqnEsSZFMYiQ4ctmWh48P+W
uQVQOWuh0CVS2OCFn37b5F9dy3oF6gJFdqbwOXJSgWMA/+StMGSkslTYFlG/JwZ1
csk9jSwQw/yKDlTiFaqMwIwSXTK5fItSn3F0R+usgMhwRPu8gvK23tmEhnnwgmlR
xfEwJCLqGnvlW74dRkCjY349GAG1IN2felFfHn0ok/Lbx7coKRoEvHaCVbmtPSmX
Ps9axAV97wk37wS1dhEXcjxLb9GIZgptgo7DABEBAAG0LlBldGVyIFN0ZXBoZW5z
b24gPHAudy5zdGVwaGVuc29uQG50bHdvcmxkLmNvbT6JATcEEwEIACEFAlZWC4cC
GwMFCwkIBwMFFQoJCAsFFgIDAQACHgECF4AACgkQpx2anUvbJ7NtaQf/RQ/RLvOG
iI4XJp/C9JIVHfHL7I801uT8V3y/d2+DehFasR9T+6B/Mf5y22NI31i5XBQuK0Wo
Zsi7F3bhNHyeVgO/p5JLBmxohByjL9f7B+k9Tt/DyWh66AVaCoam4ACR8TBOlNkD
p/8U0zzrxE9fQrjjK/PzhpVe97LKScEAu2Zc/qUFp4eTAnlqyosTqvU64+n1PrNC
CtZVYPnL17GCC4+S7yrh34Kllx+fkoHimTL/cUG+6+7sbmpUImpP+pgNEnL1IzBB
ajZRl1581McMGhIH1TBYrEVnIhononoOO7qr1eahUCEhVvanyVTnSeTTVR0VgK4s
joYLwDLM4XidgrkBDQRWVguHAQgA7JTI0botnBMfTAGff4Duoor5m0PuExQFCHcJ
/df5SyUUskycMlGR73+IbcT2D/zBIFDv5ZhCdOdmIW3CHICK+Ws7N5+KSzlzC+Vf
2LMmXuyJLhXeTqXI1ta6bIGjXeh5VA9Jd7B8dRQhCn1OrGbFhwtJSGejTmcWiLJW
+2GV9s44e9MlscMHvAk9QAvqrSUJoAkN3OCdgjcpDNVT8ek3NnjCD4xrBTxCcI1n
KsJeOgNHPkbou9+eHY80amkAkRn2ZSI9n25WjhKAp9QGDNL5wqHLjgHP6WiEwumN
DWPnPd+5FQHQXy1GHgH2BozfT1KZJ012T0Keuk/hnZJ/TVe4gwARAQABiQEfBBgB
CAAJBQJWVguHAhsMAAoJEKcdmp1L2yez1T0H/jitvgACci+5PQG1djYwioQIui4J
1nSg4HxW+4SCpSwlmH2LkKaF3WbjpPTRhYeMZ5zdOvGnjPUZCjGtWkWx0p+Jrpe/
QIC3CNXerX9fpkr0K7+knqkb1RsjHU/YSsYTDDVJpL3BQOZzVocOjPa1YPTfTBU5
tsQdA4RORi15LyAWcEAmR+X3qH2JM5pGP23hhOKnrFSSnfBP6ef1/jjRbfK5yItZ
5DOf6i3WS40zxB67dlBlHZwOQuYA3Sr01hEz4CeAkpV7lQ1gKelm1ZmcFQI6yqcR
PmVjIuxE1A/gTFe6LaAfCGA6/H1H6LLwWQ/rnUi/seMJ6aRkz/05dg7j5+E=
=wOVS
-----END PGP PUBLIC KEY BLOCK-----

View file

@ -0,0 +1,83 @@
From b258cb7816323050d7e485171c92ad3f1046799e Mon Sep 17 00:00:00 2001
From: Mikael Magnusson <mikachu@gmail.com>
Date: Fri, 17 Jul 2026 22:53:21 +0200
Subject: [PATCH] 54985: fix crash with bracketed-paste-magic and undo
In particular, fc -P/-p didn't interact well with undo. Make sure we
store/restore histline across those calls.
(cherry-picked from commit 7708d466dfab8dd29f9ae5de12c74af37bf99a4d)
---
Src/Zle/zle_main.c | 8 ++++++++
Src/hist.c | 7 ++++++-
Src/zsh.h | 3 ++-
3 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/Src/Zle/zle_main.c b/Src/Zle/zle_main.c
index 44ee63d..817e605 100644
--- a/Src/Zle/zle_main.c
+++ b/Src/Zle/zle_main.c
@@ -2168,6 +2168,14 @@ zle_main_entry(int cmd, va_list ap)
break;
}
+ case ZLE_CMD_GET_HIST_LINE:
+ {
+ zlong *p = va_arg(ap, zlong *);
+ *p = histline;
+
+ break;
+ }
+
default:
#ifdef DEBUG
dputs("Bad command %d in zle_main_entry", cmd);
diff --git a/Src/hist.c b/Src/hist.c
index f58db23..85f329c 100644
--- a/Src/hist.c
+++ b/Src/hist.c
@@ -226,6 +226,7 @@ static struct histsave {
HashTable histtab;
Histent hist_ring;
zlong curhist;
+ zlong histline;
zlong histlinect;
zlong histsiz;
zlong savehistsiz;
@@ -3846,6 +3847,10 @@ pushhiststack(char *hf, zlong hs, zlong shs, int level)
h->histsiz = histsiz;
h->savehistsiz = savehistsiz;
h->locallevel = level;
+ if (zleactive)
+ zleentry(ZLE_CMD_GET_HIST_LINE, &h->histline);
+ else
+ h->histline = 0;
memset(&lasthist, 0, sizeof lasthist);
if (hf) {
@@ -3898,7 +3903,7 @@ pophiststack(void)
hist_ring = h->hist_ring;
curhist = h->curhist;
if (zleactive)
- zleentry(ZLE_CMD_SET_HIST_LINE, curhist);
+ zleentry(ZLE_CMD_SET_HIST_LINE, h->histline);
histlinect = h->histlinect;
histsiz = h->histsiz;
savehistsiz = h->savehistsiz;
diff --git a/Src/zsh.h b/Src/zsh.h
index 8fab0eb..32302ec 100644
--- a/Src/zsh.h
+++ b/Src/zsh.h
@@ -3244,7 +3244,8 @@ enum {
ZLE_CMD_REFRESH,
ZLE_CMD_SET_KEYMAP,
ZLE_CMD_GET_KEY,
- ZLE_CMD_SET_HIST_LINE
+ ZLE_CMD_SET_HIST_LINE,
+ ZLE_CMD_GET_HIST_LINE,
};
/***************************************/
--
2.55.0

232
zsh.spec
View file

@ -1,49 +1,43 @@
Summary: Powerful interactive shell
Name: zsh
Version: 5.5.1
Release: 4%{?dist}
License: MIT
Version: 5.9.2
Release: 3%{?dist}
License: MIT-Modern-Variant AND ISC AND GPL-2.0-only
URL: http://zsh.sourceforge.net/
Source0: https://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.xz
Source1: zlogin.rhs
Source2: zlogout.rhs
Source3: zprofile.rhs
Source4: zshrc.rhs
Source5: zshenv.rhs
Source6: dotzshrc
Source1: https://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.xz.asc
Source2: zsh-keyring.asc
# fix two security issues in shebang line parsing (CVE-2018-0502 CVE-2018-13259)
Patch1: 0001-zsh-5.5.1-CVE-2018-0502-CVE-2018-13259.patch
Source3: zlogin.rhs
Source4: zlogout.rhs
Source5: zprofile.rhs
Source6: zshrc.rhs
Source7: zshenv.rhs
Source8: dotzshrc
Source9: dotzprofile
# fix programming mistakes detected by static analysis
Patch2: 0002-zsh-5.5.1-static-analysis.patch
# https://sourceforge.net/p/zsh/code/ci/7708d466dfab8dd29f9ae5de12c74af37bf99a4d/
# fix crash with bracketed-paste-magic and undo (rhbz#2484692)
Patch: zsh-memcpy-sigsegv-bracketed-paste.patch
# return non-zero exit status on nested parse error (#1654989)
Patch3: 0003-zsh-5.5.1-parse-error-exit-status.patch
BuildRequires: autoconf
BuildRequires: coreutils
BuildRequires: gawk
BuildRequires: gcc
BuildRequires: gdbm-devel
BuildRequires: glibc-langpack-ja
BuildRequires: gpgverify
BuildRequires: groff
BuildRequires: hostname
BuildRequires: libcap-devel
BuildRequires: make
BuildRequires: ncurses-devel
BuildRequires: pcre-devel
BuildRequires: pcre2-devel
BuildRequires: sed
BuildRequires: texi2html
BuildRequires: texinfo
Requires(post): info grep
Requires(preun): info
Requires(post): grep
Requires(postun): coreutils grep
# the hostname package is not available on RHEL-6
%if 12 < 0%{?fedora} || 6 < 0%{?rhel}
BuildRequires: hostname
%else
# /bin and /usr/bin are separate directories on RHEL-6
%define _bindir /bin
%endif
Provides: /bin/zsh
%description
@ -56,7 +50,7 @@ mechanism, and more.
%package html
Summary: Zsh shell manual in html format
BuildArch: noarch
BuildArch: noarch
%description html
The zsh shell is a command interpreter usable as an interactive login
@ -69,8 +63,8 @@ mechanism, and more.
This package contains the Zsh manual in html format.
%prep
%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
%autosetup -p1
autoreconf -fiv
# enable parallel build
sed -e 's|^\.NOTPARALLEL|#.NOTPARALLEL|' -i 'Config/defs.mk.in'
@ -79,8 +73,8 @@ sed -e 's|^\.NOTPARALLEL|#.NOTPARALLEL|' -i 'Config/defs.mk.in'
# make build of run-time loadable modules work again (#1535422)
%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)
export zsh_cv_sys_nis='no'
%configure \
--enable-etcdir=%{_sysconfdir} \
@ -92,10 +86,13 @@ export LIBLDFLAGS='-z lazy'
make -C Src headers
make -C Src -f Makemod zsh{path,xmod}s.h version.h
make %{?_smp_mflags} all html
%make_build all html
%check
# Run the testsuite
# avoid unnecessary failure of the test-suite in case ${RPS1} is set
unset RPS1
# run the test-suite
make check
%install
@ -110,17 +107,18 @@ rm -f $RPM_BUILD_ROOT%{_bindir}/zsh-%{version}
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}
for i in %{SOURCE1} %{SOURCE2} %{SOURCE3} %{SOURCE4} %{SOURCE5}; do
for i in %{SOURCE3} %{SOURCE4} %{SOURCE5} %{SOURCE6} %{SOURCE7}; do
install -m 644 $i $RPM_BUILD_ROOT%{_sysconfdir}/"$(basename $i .rhs)"
done
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/skel
install -m 644 %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/skel/.zshrc
install -m 644 %{SOURCE8} $RPM_BUILD_ROOT%{_sysconfdir}/skel/.zshrc
install -m 644 %{SOURCE9} $RPM_BUILD_ROOT%{_sysconfdir}/skel/.zprofile
# This is just here to shut up rpmlint, and is very annoying.
# Note that we can't chmod everything as then rpmlint will complain about
# those without a she-bang line.
for i in checkmail harden run-help zcalc zkbd; do
for i in checkmail harden run-help test-repo-git-rebase-{apply,merge} zcalc zkbd; do
sed -i -e 's!/usr/local/bin/zsh!%{_bindir}/zsh!' \
$RPM_BUILD_ROOT%{_datadir}/zsh/%{version}/functions/$i
chmod +x $RPM_BUILD_ROOT%{_datadir}/zsh/%{version}/functions/$i
@ -138,22 +136,6 @@ if [ "$1" = 1 ]; then
fi
fi
if [ -f %{_infodir}/zsh.info.gz ]; then
# This is needed so that --excludedocs works.
/sbin/install-info %{_infodir}/zsh.info.gz %{_infodir}/dir \
--entry="* zsh: (zsh). An enhanced bourne shell."
fi
%preun
if [ "$1" = 0 ] ; then
if [ -f %{_infodir}/zsh.info.gz ]; then
# This is needed so that --excludedocs works.
/sbin/install-info --delete %{_infodir}/zsh.info.gz %{_infodir}/dir \
--entry="* zsh: (zsh). An enhanced bourne shell."
fi
fi
%postun
if [ "$1" = 0 ] && [ -f %{_sysconfdir}/shells ] ; then
sed -i '\!^%{_bindir}/%{name}$!d' %{_sysconfdir}/shells
@ -176,14 +158,148 @@ fi
%doc Doc/*.html
%changelog
* Fri Nov 30 2018 Kamil Dudka <kdudka@redhat.com> - 5.5.1-4
* Wed Jul 22 2026 Lukáš Zaoral <lzaoral@redhat.com> - 5.9.2-3
- fix crash with bracketed-paste-magic and undo (rhbz#2484692)
* Fri Jul 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 5.9.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
* Mon Jul 13 2026 Lukáš Zaoral <lzaoral@redhat.com> - 5.9.2-1
- rebase to the latest upstream release (rhbz#2499540)
* Thu Jun 04 2026 Lukáš Zaoral <lzaoral@redhat.com> - 5.9.1-1
- rebase to the latest upstream release (rhbz#2483668)
* Tue Mar 24 2026 Lukáš Zaoral <lzaoral@redhat.com> - 5.9-20
- fix segfault in _IO_putc (rhbz#2449939)
* Sat Jan 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 5.9-19
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
* Mon Sep 29 2025 Christoph Erhardt <fedora@sicherha.de> - 5.9-18
- Add completion support for dnf5
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 5.9-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 5.9-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 5.9-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Mon May 13 2024 Lukáš Zaoral <lzaoral@redhat.com> - 5.9-14
- fix zlogout when ncurses is not installed (rhbz#2279741)
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 5.9-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Wed Jan 17 2024 Lukáš Zaoral <lzaoral@redhat.com> - 5.9-12
- fix segfault in deletefilelist (rhbz#2245462)
* Fri Dec 8 2023 Florian Weimer <fweimer@redhat.com> - 5.9-11
- Fix C compatibility issue in the configure script
* Tue Nov 21 2023 Lukáš Zaoral <lzaoral@redhat.com> - 5.9-10
- fix FTBFS caused by texinfo 7.1
- fix build of the PCRE module
* Mon Aug 21 2023 Lukáš Zaoral <lzaoral@redhat.com> - 5.9-9
- port to PCRE 2 (rhbz#1938979)
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 5.9-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* 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
- Update the License tag to use SPDX identifiers
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 5.9-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Fri Jan 13 2023 Timm Bäder <tbaeder@redhat.com> - 5.9-4
- use 'int main()' in test C-codes in configure
* Mon Jan 09 2023 Kamil Dudka <kdudka@redhat.com> - 5.9-3
- do not use egrep in tests to make them pass again
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 5.9-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Sun May 15 2022 Kamil Dudka <kdudka@redhat.com> - 5.9-1
- update to latest upstream release
* Sun Feb 13 2022 Kamil Dudka <kdudka@redhat.com> - 5.8.1-1
- update to latest upstream release (fixes CVE-2021-45444)
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 5.8-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Tue Jan 04 2022 Kamil Dudka <kdudka@redhat.com> - 5.8-8
- prepend ~/.local/bin and ~/bin to $PATH for newly created users (#1900809)
* Thu Nov 25 2021 Debarshi Ray <rishi@fedoraproject.org> - 5.8-7
- Overwrite PROMPT only if it's set to the built-in default (#2026749)
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 5.8-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Thu Mar 25 2021 Kamil Dudka <kdudka@redhat.com> - 5.8-5
- complete file arguments after rpmbuild -r/-b/-t
* Thu Jan 28 2021 Fedora Release Engineering <releng@fedoraproject.org> - 5.8-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 5.8-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Jul 14 2020 Tom Stellard <tstellar@redhat.com> - 5.8-2
- Use make macros
- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
* Mon Feb 24 2020 Kamil Dudka <kdudka@redhat.com> - 5.8-1
- update to latest upstream release
* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 5.7.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Fri Jul 26 2019 Kamil Dudka <kdudka@redhat.com> - 5.7.1-4
- make failed searches of history in Zle robust (#1722703)
* Tue Mar 12 2019 Kamil Dudka <kdudka@redhat.com> - 5.7.1-3
- avoid build failure in case we have working ypcat (#1687574)
* Fri Mar 8 2019 Tim Landscheidt <tim@tim-landscheidt.de> - 5.7.1-2
- Remove obsolete requirements for %%post/%%preun scriptlets
* Mon Feb 04 2019 Kamil Dudka <kdudka@redhat.com> - 5.7.1-1
- update to latest upstream release
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 5.7-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Mon Jan 28 2019 Jason L Tibbitts III <tibbs@math.uh.edu> - 5.7-1
- Update to latest upstream release.
* Fri Nov 30 2018 Kamil Dudka <kdudka@redhat.com> - 5.6.2-3
- return non-zero exit status on nested parse error (#1654989)
* Mon Nov 12 2018 Kamil Dudka <kdudka@redhat.com> - 5.5.1-3
* Mon Nov 12 2018 Kamil Dudka <kdudka@redhat.com> - 5.6.2-2
- fix programming mistakes detected by static analysis
* Tue Sep 04 2018 Kamil Dudka <kdudka@redhat.com> - 5.5.1-2
- fix two security issues in shebang line parsing (CVE-2018-0502 CVE-2018-13259)
* Fri Sep 14 2018 Kamil Dudka <kdudka@redhat.com> - 5.6.2-1
- update to latest upstream release
* Mon Sep 10 2018 Kamil Dudka <kdudka@redhat.com> - 5.6.1-1
- update to latest upstream release
* Tue Sep 04 2018 Kamil Dudka <kdudka@redhat.com> - 5.6-1
- update to latest upstream release (fixes CVE-2018-0502 and CVE-2018-13259)
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 5.5.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Tue Apr 17 2018 Kamil Dudka <kdudka@redhat.com> - 5.5.1-1
- update to latest upstream release

View file

@ -8,7 +8,7 @@
#setenv() { export $1=$2 } # csh compatibility
# Set prompts
PROMPT='[%n@%m]%~%# ' # default prompt
[[ "$PROMPT" = "%m%# " ]] && PROMPT='[%n@%m]%~%# ' # default prompt
#RPROMPT=' %~' # prompt for right side of screen
# bindkey -v # vi key bindings