From ba0d94ea26063585083aa3f78b438a4ce22156b5 Mon Sep 17 00:00:00 2001 From: James Antill Date: Thu, 26 May 2022 16:15:08 -0400 Subject: [PATCH] Auto sync2gitlab import of which-2.21-17.el8.src.rpm --- .gitignore | 1 + EMPTY | 1 - sources | 1 + which-2.21-coverity-fixes.patch | 27 +++ which-2.21-coverity.patch | 62 +++++++ which.spec | 319 ++++++++++++++++++++++++++++++++ which2.csh | 3 + which2.sh | 28 +++ 8 files changed, 441 insertions(+), 1 deletion(-) create mode 100644 .gitignore delete mode 100644 EMPTY create mode 100644 sources create mode 100644 which-2.21-coverity-fixes.patch create mode 100644 which-2.21-coverity.patch create mode 100644 which.spec create mode 100644 which2.csh create mode 100644 which2.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b51864d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/which-2.21.tar.gz diff --git a/EMPTY b/EMPTY deleted file mode 100644 index 0519ecb..0000000 --- a/EMPTY +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/sources b/sources new file mode 100644 index 0000000..7184a33 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (which-2.21.tar.gz) = d2f04a5c5291f2d7d1226982da7cf999d36cfe24d3f7bda145508efcfb359511251d3c68b860c0ddcedd66b15a0587b648a35ab6d1f173707565305c506dfc61 diff --git a/which-2.21-coverity-fixes.patch b/which-2.21-coverity-fixes.patch new file mode 100644 index 0000000..0be9e3f --- /dev/null +++ b/which-2.21-coverity-fixes.patch @@ -0,0 +1,27 @@ +diff -up which-2.21/tilde/tilde.c.me which-2.21/tilde/tilde.c +--- which-2.21/tilde/tilde.c.me 2018-07-23 14:32:47.002225732 +0200 ++++ which-2.21/tilde/tilde.c 2018-07-23 14:49:06.363623898 +0200 +@@ -196,7 +196,8 @@ tilde_expand (string) + int result_size, result_index; + + result_index = result_size = 0; +- if (result = strchr (string, '~')) ++ result = strchr (string, '~'); ++ if (result) + result = (char *)xmalloc (result_size = (strlen (string) + 16)); + else + result = (char *)xmalloc (result_size = (strlen (string) + 1)); +diff -up which-2.21/which.c.me which-2.21/which.c +diff -up which-2.21/which.c.me which-2.21/which.c +--- which-2.21/which.c.me 2018-07-23 15:09:04.355222509 +0200 ++++ which-2.21/which.c 2018-07-25 14:57:43.696309701 +0200 +@@ -671,6 +671,9 @@ int main(int argc, char *argv[]) + } + } + ++ if (abs_path) ++ free(abs_path); ++ + return fail_count; + } + diff --git a/which-2.21-coverity.patch b/which-2.21-coverity.patch new file mode 100644 index 0000000..4a0a650 --- /dev/null +++ b/which-2.21-coverity.patch @@ -0,0 +1,62 @@ +diff -up which-2.21/tilde/tilde.c.coverity2 which-2.21/tilde/tilde.c +--- which-2.21/tilde/tilde.c.coverity2 2021-03-21 21:04:34.691775991 +0100 ++++ which-2.21/tilde/tilde.c 2021-03-21 21:13:36.853129481 +0100 +@@ -193,9 +193,8 @@ tilde_expand (string) + const char *string; + { + char *result; +- int result_size, result_index; ++ int result_size = 0, result_index = 0; + +- result_index = result_size = 0; + result = strchr (string, '~'); + if (result) + result = (char *)xmalloc (result_size = (strlen (string) + 16)); +@@ -271,7 +270,7 @@ isolate_tilde_prefix (fname, lenp) + char *ret; + int i; + +- ret = (char *)xmalloc (strlen (fname)); ++ ret = (char *)xmalloc (strlen (fname) + 1); + #if defined (__MSDOS__) + for (i = 1; fname[i] && fname[i] != '/' && fname[i] != '\\'; i++) + #else +diff -up which-2.21/which.c.coverity2 which-2.21/which.c +--- which-2.21/which.c.coverity2 2021-03-21 21:04:34.691775991 +0100 ++++ which-2.21/which.c 2021-03-21 21:04:34.692775983 +0100 +@@ -76,8 +76,9 @@ static int skip_functions = 0, read_func + + static char *find_command_in_path(const char *name, const char *path_list, int *path_index) + { +- char *found = NULL, *full_path; ++ char *found = NULL, *full_path = NULL; + int status, name_len; ++ char *p; + + name_len = strlen(name); + +@@ -85,7 +86,6 @@ static char *find_command_in_path(const + absolute_path_given = 0; + else + { +- char *p; + absolute_path_given = 1; + + if (abs_path) +@@ -159,6 +159,7 @@ static char *find_command_in_path(const + free(full_path); + } + ++ name = NULL; p = NULL; path_list = NULL; + return (found); + } + +@@ -540,7 +541,7 @@ int main(int argc, char *argv[]) + int function_start_type = 0; + if (read_alias || read_functions) + { +- char buf[1024]; ++ char buf[1024] = {}; + int processing_aliases = read_alias; + + if (isatty(0)) diff --git a/which.spec b/which.spec new file mode 100644 index 0000000..489f39c --- /dev/null +++ b/which.spec @@ -0,0 +1,319 @@ +Summary: Displays where a particular program in your path is located +Name: which +Version: 2.21 +Release: 17%{?dist} +License: GPLv3 +Source0: http://ftp.gnu.org/gnu/which/%{name}-%{version}.tar.gz +Source1: which2.sh +Source2: which2.csh +Patch0: which-2.21-coverity-fixes.patch +Patch1: which-2.21-coverity.patch +Url: https://savannah.gnu.org/projects/which/ +Requires: coreutils +BuildRequires: gcc +BuildRequires: readline-devel + +%description +The which command shows the full pathname of a specified program, if +the specified program is in your PATH. + +%prep +%setup -q +%patch0 -p1 -b .coverity +%patch1 -p1 -b .coverity2 + +%build +%configure +%make_build + +%install +%make_install + +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/profile.d +install -p -m 644 %{SOURCE1} %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/profile.d/ +rm -f $RPM_BUILD_ROOT%{_infodir}/dir + +%files +%license COPYING +%doc EXAMPLES README AUTHORS NEWS +%attr(0644,root,root) %{_sysconfdir}/profile.d/which2.* +%{_bindir}/which +%{_infodir}/which.info* +%{_mandir}/man1/which.1* + +%changelog +* Thu Nov 25 2021 Than Ngo - 2.21-17 +- Resolves: #2025709, check shell correctly +- Resolves: #2009547, which treats function contents as aliases when parsing ksh + +* Wed May 05 2021 Than Ngo - 2.21-16 +- Related: #1940468, fixed unbound variable + + +* Fri Apr 30 2021 Than Ngo - 2.21-15 +- Related: #1940468, fix error when the user runs which in bash with strict bash environment + +* Tue Mar 23 2021 Than Ngo - 2.21-14 +- Related: #1940468, fix regression if SHELL=zsh + +* Fri Mar 19 2021 Than Ngo - 2.21-13 +- Resolves: #1940468, fixed syntax error caused by testcase: a=b which ls + Coverity issue + +* Tue Nov 19 2019 Than Ngo - 2.21-12 +- Fixed coverity issue + +* Tue Nov 19 2019 Than Ngo - 2.21-11 +- Resolves: #1768506, fix wrong alias + +* Mon Jul 23 2018 Than Ngo - 2.21-10 +- Fix coverity issues + +* Sat Jul 14 2018 Fedora Release Engineering - 2.21-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Fri Feb 16 2018 Jason L Tibbitts III - 2.21-8 +- Fix invalid [ ... ] syntax which results in complaints by zsh. + https://bugzilla.redhat.com/show_bug.cgi?id=1546221 +- Remove pointless Group tag, buildroot cleaning and %%defattr. + +* Fri Feb 09 2018 Fedora Release Engineering - 2.21-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Mon Feb 05 2018 Than Ngo - 2.21-6 +- added CI tests using the standard test interface + +* Wed Jan 31 2018 Than Ngo - 2.21-5 +- fixed bz#1526500 - 'declare' not found under ksh + +* Thu Aug 03 2017 Fedora Release Engineering - 2.21-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 2.21-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Sat Feb 11 2017 Fedora Release Engineering - 2.21-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Mon Jun 27 2016 Than Ngo - 2.21-1 +- update to 2.21 + +* Fri Feb 05 2016 Fedora Release Engineering - 2.20-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Fri Jun 19 2015 Fedora Release Engineering - 2.20-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sat Feb 21 2015 Till Maas - 2.20-11 +- Rebuilt for Fedora 23 Change + https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code + +* Thu Feb 19 2015 Till Maas - 2.20-10 +- Use alias instead of exported function for which to avoid bashism, +http://unix.stackexchange.com/questions/59360/#59431 + +* Wed Feb 18 2015 Till Maas - 2.20-9 +- Check functions (#1194044) +- Use %%license + +* Mon Aug 18 2014 Fedora Release Engineering - 2.20-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sun Jun 08 2014 Fedora Release Engineering - 2.20-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Sun Aug 04 2013 Fedora Release Engineering - 2.20-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Fri Feb 15 2013 Fedora Release Engineering - 2.20-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Sun Jul 22 2012 Fedora Release Engineering - 2.20-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Sat Jan 14 2012 Fedora Release Engineering - 2.20-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Mon Feb 07 2011 Fedora Release Engineering - 2.20-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Wed Jan 19 2011 Than Ngo - 2.20-1 +- 2.2.0 +- disable alias which for cshell + +* Mon Jul 27 2009 Fedora Release Engineering - 2.19-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Wed Feb 25 2009 Fedora Release Engineering - 2.19-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Thu Mar 06 2008 Warren Togami 2.19-3 +- install-info should exit gracefully when --nodocs + +* Fri Feb 15 2008 Than Ngo 2.19-2 +- rebuilt + +* Fri Jan 25 2008 Than Ngo 2.19-1 +- 2.19, fix #399551, #430159 + +* Tue Nov 27 2007 Than Ngo - 2.18-5 +- fix permission which-2 scripts + +* Tue Nov 27 2007 Than Ngo 2.18-4 +- fix permission which-2 scripts + +* Mon Nov 26 2007 Karsten Hopp 2.18-3 +- add dir entry for info page + +* Tue Nov 20 2007 Than Ngo 2.18-2 +- cleanup specfile + +* Tue Nov 13 2007 Than Ngo 2.18-1 +- 2.18 + +* Tue Nov 13 2007 Than Ngo 2.16-10 +- cleanup specfile +- get rid of dev dependency + +* Mon Apr 23 2007 Than Ngo - 2.16-9 +- add missing which-2 script for csh +- cleanup specfile #226539 + +* Mon Jan 22 2007 Than Ngo - 2.16-8 +- install-info scriptlet failures + +* Fri Jul 14 2006 Jesse Keating - 2.16-7 +- rebuild + +* Fri Feb 10 2006 Jesse Keating - 2.16-6.2.1 +- bump again for double-long bug on ppc(64) + +* Tue Feb 07 2006 Jesse Keating - 2.16-6.2 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Fri Dec 09 2005 Jesse Keating +- rebuilt + +* Mon Mar 07 2005 Than Ngo 2.16-6 +- rebuilt + +* Wed Feb 09 2005 Than Ngo 2.16-5 +- rebuilt + +* Sat Aug 07 2004 Than Ngo 2.16-4 +- add missing URL (thanks to Robert Scheck) + +* Tue Jun 15 2004 Elliot Lee +- rebuilt + +* Fri Feb 13 2004 Elliot Lee +- rebuilt + +* Wed Sep 24 2003 Florian La Roche +- update to 2.16 +- fix %%preun + +* Thu Jul 17 2003 Than Ngo 2.14-8 +- rebuild + +* Thu Jul 17 2003 Than Ngo 2.14-7 +- added Prereq: dev (bug #99275) + +* Wed Jun 04 2003 Elliot Lee +- rebuilt + +* Wed Jan 22 2003 Tim Powers +- rebuilt + +* Tue Dec 10 2002 Than Ngo 2.14-4 +- cleanup code (bug #78478) + +* Thu Nov 14 2002 Tim Powers 2.14-3 +- redirect info dir warnings to /dev/null + +* Thu Nov 7 2002 Than Ngo 2.14-1 +- add missing info file + +* Mon Jul 29 2002 Florian La Roche +- update to 2.14 wih better support for current bash + +* Fri Jun 21 2002 Tim Powers +- automated rebuild + +* Thu May 23 2002 Tim Powers +- automated rebuild + +* Wed Feb 27 2002 Than Ngo 2.13-3 +- use access instead stat in AFS environment (bug #60353) + +* Wed Jan 09 2002 Tim Powers +- automated rebuild + +* Wed Dec 05 2001 Florian La Roche +- update to 2.13 + +* Sat Aug 4 2001 Than Ngo +- fix bug 50844 + +* Sun Jun 24 2001 Elliot Lee +- Bump release + rebuild. + +* Sun Sep 10 2000 Florian La Roche +- 2.12 (only man-page fix) + +* Thu Jul 13 2000 Prospector +- automatic rebuild + +* Sun Jun 18 2000 Than Ngo +- FHS packaging. + +* Sun May 21 2000 Ngo Than +- put man pages in /usr/share/man/* + +* Thu Apr 20 2000 Florian La Roche +- update to 2.11 +- change from root:bin -> root:root + +* Mon Feb 07 2000 Preston Brown +- rebuild to gzip man page + +* Sun Jan 16 2000 Preston Brown +- newer stuff rom Carlo (2.10). Author's email: carlo@gnu.org + +* Thu Jan 13 2000 Preston Brown +- adopted Carlo's specfile. + +* Fri Sep 24 1999 Carlo Wood +- There should not be a reason anymore to include README.alias in the rpm docs. +- Don't install as root.root in RPM_BUILD_ROOT, in order to allow to build + rpm as non-root. +- Bug fix +- Added /etc/profile.d for automatic alias inclusion. + +* Wed Aug 25 1999 Carlo Wood +- Added README.alias. + +* Wed Aug 11 1999 Carlo Wood +- Typo in comment. + +* Thu May 27 1999 Carlo Wood +- Typo fix +- Moved maintainer targets from makefile to Makefile.am. + +* Tue May 18 1999 Carlo Wood +- Typo in appended changelog. +- Appended the old change log of `which-2.0.spec' to (this) changelog, + which is generated from the CVS log of `which-2.0.spec.in'. +- Generate which-2.spec from which-2.spec.in with automatic VERSION + and CHANGELOG substitution. + +* Fri May 14 1999 Carlo Wood +- Moved assignment of CFLAGS to the configure line, using RPM_OPT_FLAGS now. +- Corrected Source: line to point to ftp.gnu.org. + +* Sat Apr 17 1999 Carlo Wood +- Started to use automake and autoconf + +* Fri Apr 09 1999 Carlo Wood +- Renamed which-2.0.spec to which-2.spec + diff --git a/which2.csh b/which2.csh new file mode 100644 index 0000000..da9655e --- /dev/null +++ b/which2.csh @@ -0,0 +1,3 @@ +# Initialization script for csh + +# alias which 'alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' diff --git a/which2.sh b/which2.sh new file mode 100644 index 0000000..0f47f9e --- /dev/null +++ b/which2.sh @@ -0,0 +1,28 @@ +# shellcheck shell=sh +# Initialization script for bash, sh, mksh and ksh + +case "$(basename $(readlink /proc/$$/exe))" in +*ksh*) + which_declare="" + which_opt="" + ;; +zsh) + which_declare="typeset -f" + which_opt="" + ;; +bash|sh) + which_declare="declare -f" + which_opt="-f" + ;; +*) + which_declare="" + which_opt="" + ;; +esac + +which () { + (alias; eval ${which_declare}) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot $@ +} + +export which_declare +export ${which_opt} which