diff --git a/bash-2.02-security.patch b/bash-2.02-security.patch deleted file mode 100644 index f8a913b..0000000 --- a/bash-2.02-security.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- bash-2.02-orig/parse.y Wed Mar 25 18:16:23 1998 -+++ bash-2.02/parse.y Sun Apr 19 16:46:34 1998 -@@ -923,7 +923,7 @@ - - #if defined (READLINE) - char *current_readline_prompt = (char *)NULL; --char *current_readline_line = (char *)NULL; -+unsigned char *current_readline_line = (unsigned char *)NULL; - int current_readline_line_index = 0; - - static int diff --git a/bash-2.03-paths.patch b/bash-2.03-paths.patch deleted file mode 100644 index 24ec5cc..0000000 --- a/bash-2.03-paths.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- bash-3.0/config-top.h.paths 2003-08-05 15:36:12.000000000 +0100 -+++ bash-3.0/config-top.h 2004-07-28 09:36:27.117205637 +0100 -@@ -66,7 +66,7 @@ - the Posix.2 confstr () function, or CS_PATH define are not present. */ - #ifndef STANDARD_UTILS_PATH - #define STANDARD_UTILS_PATH \ -- "/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/etc" -+ "/bin:/usr/bin:/usr/sbin:/sbin" - #endif - - /* Default primary and secondary prompt strings. */ diff --git a/bash-2.03-profile.patch b/bash-2.03-profile.patch deleted file mode 100644 index ba3344b..0000000 --- a/bash-2.03-profile.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up bash-3.2/config-top.h.profile bash-3.2/config-top.h ---- bash-3.2/config-top.h.profile 2008-07-17 13:35:39.000000000 +0200 -+++ bash-3.2/config-top.h 2008-07-17 13:42:18.000000000 +0200 -@@ -26,6 +26,8 @@ - what POSIX.2 specifies. */ - #define CONTINUE_AFTER_KILL_ERROR - -+#define NON_INTERACTIVE_LOGIN_SHELLS -+ - /* Define BREAK_COMPLAINS if you want the non-standard, but useful - error messages about `break' and `continue' out of context. */ - #define BREAK_COMPLAINS diff --git a/bash-2.05a-interpreter.patch.bak b/bash-2.05a-interpreter.patch.bak deleted file mode 100644 index ca497c4..0000000 --- a/bash-2.05a-interpreter.patch.bak +++ /dev/null @@ -1,224 +0,0 @@ -diff --git a/config.h.in b/config.h.in -index a5ad9e7..62a6b32 100644 ---- a/config.h.in -+++ b/config.h.in -@@ -748,6 +748,9 @@ - /* Define if you have the pselect function. */ - #undef HAVE_PSELECT - -+/* Define if you have the pread function. */ -+#undef HAVE_PREAD -+ - /* Define if you have the putenv function. */ - #undef HAVE_PUTENV - -@@ -946,6 +949,9 @@ - /* Define if you have the header file. */ - #undef HAVE_DLFCN_H - -+/* Define if you have the header file. */ -+#undef HAVE_ELF_H -+ - /* Define if you have the header file. */ - #undef HAVE_GRP_H - -diff --git a/configure.ac b/configure.ac -index ce4e9b6..eda95d6 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -700,7 +700,7 @@ BASH_HEADER_INTTYPES - AC_CHECK_HEADERS(unistd.h stdlib.h stdarg.h varargs.h limits.h string.h \ - memory.h locale.h termcap.h termio.h termios.h dlfcn.h \ - stdbool.h stddef.h stdint.h netdb.h pwd.h grp.h strings.h \ -- regex.h syslog.h ulimit.h) -+ regex.h syslog.h ulimit.h elf.h) - AC_CHECK_HEADERS(sys/pte.h sys/stream.h sys/select.h sys/file.h sys/ioctl.h \ - sys/param.h sys/socket.h sys/stat.h \ - sys/time.h sys/times.h sys/types.h sys/wait.h) -@@ -771,7 +771,7 @@ dnl checks for system calls - AC_CHECK_FUNCS(dup2 eaccess fcntl getdtablesize getgroups gethostname \ - getpagesize getpeername getrlimit getrusage gettimeofday \ - kill killpg lstat pselect readlink sbrk select setdtablesize \ -- setitimer tcgetpgrp uname ulimit waitpid) -+ setitimer tcgetpgrp uname ulimit waitpid pread) - AC_REPLACE_FUNCS(rename) - - dnl checks for c library functions -diff --git a/execute_cmd.c b/execute_cmd.c -index 2a3df6d..b5cd405 100644 ---- a/execute_cmd.c -+++ b/execute_cmd.c -@@ -41,6 +41,10 @@ - # include - #endif - -+#ifdef HAVE_ELF_H -+# include -+#endif -+ - #include "posixtime.h" - - #if defined (HAVE_SYS_RESOURCE_H) && !defined (RLIMTYPE) -@@ -5486,6 +5490,14 @@ shell_execve (command, args, env) - { - /* The file has the execute bits set, but the kernel refuses to - run it for some reason. See why. */ -+#if defined (HAVE_HASH_BANG_EXEC) || defined (HAVE_ELF_H) -+ int fd = open (command, O_RDONLY); -+ -+ if (fd >= 0) -+ sample_len = read (fd, sample, sizeof (sample)); -+ else -+ sample_len = -1; -+#endif - #if defined (HAVE_HASH_BANG_EXEC) - READ_SAMPLE_BUF (command, sample, sample_len); - if (sample_len > 0) -@@ -5495,6 +5507,7 @@ shell_execve (command, args, env) - char *interp; - int ilen; - -+ close (fd); - interp = getinterp (sample, sample_len, (int *)NULL); - ilen = strlen (interp); - errno = i; -@@ -5510,6 +5523,136 @@ shell_execve (command, args, env) - return (EX_NOEXEC); - } - #endif -+#if defined (HAVE_ELF_H) -+ if (i == ENOENT -+ && sample_len > EI_NIDENT -+ && memcmp (sample, ELFMAG, SELFMAG) == 0) -+ { -+ off_t offset = -1; -+ -+ /* It is an ELF file. Now determine whether it is dynamically -+ linked and if yes, get the offset of the interpreter -+ string. */ -+ if (sample[EI_CLASS] == ELFCLASS32 -+ && sample_len > sizeof (Elf32_Ehdr)) -+ { -+ Elf32_Ehdr ehdr; -+ Elf32_Phdr *phdr; -+ int nphdr; -+ -+ /* We have to copy the data since the sample buffer -+ might not be aligned correctly to be accessed as -+ an Elf32_Ehdr struct. */ -+ memcpy (&ehdr, sample, sizeof (Elf32_Ehdr)); -+ -+ nphdr = ehdr.e_phnum; -+ phdr = (Elf32_Phdr *) malloc (nphdr * ehdr.e_phentsize); -+ if (phdr != NULL) -+ { -+#ifdef HAVE_PREAD -+ sample_len = pread (fd, phdr, nphdr * ehdr.e_phentsize, -+ ehdr.e_phoff); -+#else -+ if (lseek (fd, ehdr.e_phoff, SEEK_SET) != -1) -+ sample_len = read (fd, phdr, -+ nphdr * ehdr.e_phentsize); -+ else -+ sample_len = -1; -+#endif -+ if (sample_len == nphdr * ehdr.e_phentsize) -+ while (nphdr-- > 0) -+ if (phdr[nphdr].p_type == PT_INTERP) -+ { -+ offset = phdr[nphdr].p_offset; -+ break; -+ } -+ free (phdr); -+ } -+ } -+ else if (sample[EI_CLASS] == ELFCLASS64 -+ && sample_len > sizeof (Elf64_Ehdr)) -+ { -+ Elf64_Ehdr ehdr; -+ Elf64_Phdr *phdr; -+ int nphdr; -+ -+ /* We have to copy the data since the sample buffer -+ might not be aligned correctly to be accessed as -+ an Elf64_Ehdr struct. */ -+ memcpy (&ehdr, sample, sizeof (Elf64_Ehdr)); -+ -+ nphdr = ehdr.e_phnum; -+ phdr = (Elf64_Phdr *) malloc (nphdr * ehdr.e_phentsize); -+ if (phdr != NULL) -+ { -+#ifdef HAVE_PREAD -+ sample_len = pread (fd, phdr, nphdr * ehdr.e_phentsize, -+ ehdr.e_phoff); -+#else -+ if (lseek (fd, ehdr.e_phoff, SEEK_SET) != -1) -+ sample_len = read (fd, phdr, -+ nphdr * ehdr.e_phentsize); -+ else -+ sample_len = -1; -+#endif -+ if (sample_len == nphdr * ehdr.e_phentsize) -+ while (nphdr-- > 0) -+ if (phdr[nphdr].p_type == PT_INTERP) -+ { -+ offset = phdr[nphdr].p_offset; -+ break; -+ } -+ free (phdr); -+ } -+ } -+ -+ if (offset != -1) -+ { -+ size_t maxlen = 0; -+ size_t actlen = 0; -+ char *interp = NULL; -+ -+ do -+ { -+ if (actlen == maxlen) -+ { -+ char *newinterp = realloc (interp, maxlen += 200); -+ if (newinterp == NULL) -+ { -+ actlen = 0; -+ break; -+ } -+ interp = newinterp; -+ -+#ifdef HAVE_PREAD -+ actlen = pread (fd, interp, maxlen, offset); -+#else -+ if (lseek (fd, offset, SEEK_SET) != -1) -+ actlen = read (fd, interp, maxlen); -+ else -+ actlen = -1; -+#endif -+ } -+ } -+ while (actlen > 0 && memchr (interp, '\0', actlen) == NULL); -+ -+ if (actlen > 0) -+ { -+ close (fd); -+ errno = i; -+ sys_error ("%s: %s: bad ELF interpreter", command, -+ interp); -+ free (interp); -+ return (EX_NOEXEC); -+ } -+ -+ free (interp); -+ } -+ } -+#endif -+#if defined (HAVE_HASH_BANG_EXEC) || defined (HAVE_ELF_H) -+ close (fd); -+#endif - errno = i; - file_error (command); - } --- -2.9.3 - diff --git a/bash-2.05b-debuginfo.patch b/bash-2.05b-debuginfo.patch deleted file mode 100644 index 3278cab..0000000 --- a/bash-2.05b-debuginfo.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- bash-2.05b/builtins/Makefile.in.debuginfo 2003-03-25 17:25:21.000000000 +0000 -+++ bash-2.05b/builtins/Makefile.in 2003-03-25 17:25:49.000000000 +0000 -@@ -93,7 +93,6 @@ - $(RM) $@ - ./$(MKBUILTINS) $(DIRECTDEFINE) $< - $(CC) -c $(CCFLAGS) $*.c || ( $(RM) $*.c ; exit 1 ) -- $(RM) $*.c - - # How to make a .c file from a .def file. - .def.c: diff --git a/bash-2.05b-manso.patch b/bash-2.05b-manso.patch deleted file mode 100644 index 39ebf74..0000000 --- a/bash-2.05b-manso.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- bash-2.05b/doc/builtins.1.manso 2003-02-10 18:58:21.000000000 +0000 -+++ bash-2.05b/doc/builtins.1 2003-02-10 18:58:28.000000000 +0000 -@@ -10,6 +10,6 @@ - ulimit, umask, unalias, unset, wait \- bash built-in commands, see \fBbash\fR(1) - .SH BASH BUILTIN COMMANDS - .nr zZ 1 --.so bash.1 -+.so man1/bash.1 - .SH SEE ALSO - bash(1), sh(1) diff --git a/bash-3.2-audit.patch b/bash-3.2-audit.patch deleted file mode 100644 index 48a1751..0000000 --- a/bash-3.2-audit.patch +++ /dev/null @@ -1,96 +0,0 @@ -diff -up bash-4.2/config.h.in.audit bash-4.2/config.h.in ---- bash-4.2/config.h.in.audit 2013-01-31 16:26:16.857698992 +0100 -+++ bash-4.2/config.h.in 2013-01-31 16:26:16.876699255 +0100 -@@ -1131,6 +1131,14 @@ - - /* End additions for lib/intl */ - -+ -+/* Additions for lib/readline */ -+ -+/* Define if you have and it defines AUDIT_USER_TTY */ -+#undef HAVE_DECL_AUDIT_USER_TTY -+ -+/* End additions for lib/readline */ -+ - #include "config-bot.h" - - #endif /* _CONFIG_H_ */ -diff -up bash-4.2/configure.in.audit bash-4.2/configure.in ---- bash-4.2/configure.in.audit 2013-01-31 16:26:16.858699005 +0100 -+++ bash-4.2/configure.ac 2013-01-31 16:26:16.877699269 +0100 -@@ -888,6 +888,8 @@ BASH_FUNC_DUP2_CLOEXEC_CHECK - BASH_SYS_PGRP_SYNC - BASH_SYS_SIGNAL_VINTAGE - -+AC_CHECK_DECLS([AUDIT_USER_TTY],,, [[#include ]]) -+ - dnl checking for the presence of certain library symbols - BASH_SYS_ERRLIST - BASH_SYS_SIGLIST -diff -up bash-4.2/lib/readline/readline.c.audit bash-4.2/lib/readline/readline.c ---- bash-4.2/lib/readline/readline.c.audit 2013-01-31 16:26:16.871699185 +0100 -+++ bash-4.2/lib/readline/readline.c 2013-01-31 17:24:23.902744860 +0100 -@@ -55,6 +55,12 @@ - extern int errno; - #endif /* !errno */ - -+#if defined (HAVE_DECL_AUDIT_USER_TTY) -+# include -+# include -+# include -+#endif -+ - /* System-specific feature definitions and include files. */ - #include "rldefs.h" - #include "rlmbutil.h" -@@ -301,7 +307,48 @@ rl_set_prompt (prompt) - rl_visible_prompt_length = rl_expand_prompt (rl_prompt); - return 0; - } -- -+ -+#if defined (HAVE_DECL_AUDIT_USER_TTY) -+/* Report STRING to the audit system. */ -+static void -+audit_tty (char *string) -+{ -+ struct sockaddr_nl addr; -+ struct msghdr msg; -+ struct nlmsghdr nlm; -+ struct iovec iov[2]; -+ size_t size; -+ int fd; -+ -+ size = strlen (string) + 1; -+ fd = socket (AF_NETLINK, SOCK_RAW, NETLINK_AUDIT); -+ if (fd < 0) -+ return; -+ nlm.nlmsg_len = NLMSG_LENGTH (size); -+ nlm.nlmsg_type = AUDIT_USER_TTY; -+ nlm.nlmsg_flags = NLM_F_REQUEST; -+ nlm.nlmsg_seq = 0; -+ nlm.nlmsg_pid = 0; -+ iov[0].iov_base = &nlm; -+ iov[0].iov_len = sizeof (nlm); -+ iov[1].iov_base = string; -+ iov[1].iov_len = size; -+ addr.nl_family = AF_NETLINK; -+ addr.nl_pad = 0; -+ addr.nl_pid = 0; -+ addr.nl_groups = 0; -+ msg.msg_name = &addr; -+ msg.msg_namelen = sizeof (addr); -+ msg.msg_iov = iov; -+ msg.msg_iovlen = 2; -+ msg.msg_control = NULL; -+ msg.msg_controllen = 0; -+ msg.msg_flags = 0; -+ (void)sendmsg (fd, &msg, 0); -+ close (fd); -+} -+#endif -+ - /* Read a line of input. Prompt with PROMPT. An empty PROMPT means - none. A return value of NULL means that EOF was encountered. */ - char * diff --git a/bash-3.2-ssh_source_bash.patch b/bash-3.2-ssh_source_bash.patch deleted file mode 100644 index 5bd19ce..0000000 --- a/bash-3.2-ssh_source_bash.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up bash-4.0/config-top.h.ssh_source_bash bash-4.0/config-top.h ---- bash-4.0/config-top.h.ssh_source_bash 2009-01-21 15:20:06.000000000 +0100 -+++ bash-4.0/config-top.h 2009-01-21 15:25:46.000000000 +0100 -@@ -90,7 +90,7 @@ - sshd and source the .bashrc if so (like the rshd behavior). This checks - for the presence of SSH_CLIENT or SSH2_CLIENT in the initial environment, - which can be fooled under certain not-uncommon circumstances. */ --/* #define SSH_SOURCE_BASHRC */ -+#define SSH_SOURCE_BASHRC - - /* Define if you want the case-capitalizing operators (~[~]) and the - `capcase' variable attribute (declare -c). */ diff --git a/bash-4.1-broken_pipe.patch b/bash-4.1-broken_pipe.patch deleted file mode 100644 index e083374..0000000 --- a/bash-4.1-broken_pipe.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up bash-4.1/config-top.h.broken_pipe bash-4.1/config-top.h ---- bash-4.1/config-top.h.broken_pipe 2011-01-06 18:01:30.000000000 +0100 -+++ bash-4.1/config-top.h 2011-01-06 18:02:14.000000000 +0100 -@@ -51,7 +51,7 @@ - /* Define DONT_REPORT_BROKEN_PIPE_WRITE_ERRORS if you don't want builtins - like `echo' and `printf' to report errors when output does not succeed - due to EPIPE. */ --/* #define DONT_REPORT_BROKEN_PIPE_WRITE_ERRORS */ -+#define DONT_REPORT_BROKEN_PIPE_WRITE_ERRORS - - /* The default value of the PATH variable. */ - #ifndef DEFAULT_PATH_VALUE diff --git a/bash-4.1-examples.patch b/bash-4.1-examples.patch deleted file mode 100644 index 19159e7..0000000 --- a/bash-4.1-examples.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -up bash-4.1/examples/loadables/Makefile.in.examples bash-4.1/examples/loadables/Makefile.in ---- bash-4.1/examples/loadables/Makefile.in.examples 2010-06-22 16:20:02.000000000 +0200 -+++ bash-4.1/examples/loadables/Makefile.in 2010-06-22 16:20:41.000000000 +0200 -@@ -43,7 +43,7 @@ host_os = @host_os@ - host_cpu = @host_cpu@ - host_vendor = @host_vendor@ - --CFLAGS = @CFLAGS@ -+CFLAGS = -O2 -g - LOCAL_CFLAGS = @LOCAL_CFLAGS@ - DEFS = @DEFS@ - LOCAL_DEFS = @LOCAL_DEFS@ -diff -up bash-4.1/examples/loadables/perl/Makefile.in.examples bash-4.1/examples/loadables/perl/Makefile.in ---- bash-4.1/examples/loadables/perl/Makefile.in.examples 2010-06-22 16:20:46.000000000 +0200 -+++ bash-4.1/examples/loadables/perl/Makefile.in 2010-06-22 16:21:04.000000000 +0200 -@@ -42,7 +42,7 @@ SHELL = @MAKE_SHELL@ - - PERL5 = perl5 - --CFLAGS = @CFLAGS@ -+CFLAGS = -O2 -g - - # - # These values are generated for configure by ${topdir}/support/shobj-conf. diff --git a/bash-4.2-manpage_trap.patch b/bash-4.2-manpage_trap.patch deleted file mode 100644 index e81882f..0000000 --- a/bash-4.2-manpage_trap.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up bash-4.1/doc/bash.1.manpage_trap bash-4.1/doc/bash.1 ---- bash-4.1/doc/bash.1.manpage_trap 2012-08-28 10:06:00.561999092 +0200 -+++ bash-4.1/doc/bash.1 2012-08-28 10:06:24.225304505 +0200 -@@ -9251,7 +9251,7 @@ being inverted via - These are the same conditions obeyed by the \fBerrexit\fP (\fB\-e\fP) option. - .if t .sp 0.5 - .if n .sp 1 --Signals ignored upon entry to the shell cannot be trapped or reset. -+Signals ignored upon entry to the shell cannot be trapped, reset or listed. - Trapped signals that are not being ignored are reset to their original - values in a subshell or subshell environment when one is created. - The return status is false if any diff --git a/bash-4.2-rc2-logout.patch b/bash-4.2-rc2-logout.patch deleted file mode 100644 index f63c8b6..0000000 --- a/bash-4.2-rc2-logout.patch +++ /dev/null @@ -1,41 +0,0 @@ -diff --git a/config-top.h b/config-top.h -index 026d4a4..cb0e002 100644 ---- a/config-top.h -+++ b/config-top.h -@@ -92,7 +92,7 @@ - /* #define SYS_BASHRC "/etc/bash.bashrc" */ - - /* System-wide .bash_logout for login shells. */ --/* #define SYS_BASH_LOGOUT "/etc/bash.bash_logout" */ -+#define SYS_BASH_LOGOUT "/etc/bash.bash_logout" - - /* Define this to make non-interactive shells begun with argv[0][0] == '-' - run the startup files when not in posix mode. */ -diff --git a/doc/bash.1 b/doc/bash.1 -index 04ce845..bfde55e 100644 ---- a/doc/bash.1 -+++ b/doc/bash.1 -@@ -335,8 +335,8 @@ option may be used when the shell is started to inhibit this behavior. - When an interactive login shell exits, - or a non-interactive login shell executes the \fBexit\fP builtin command, - .B bash --reads and executes commands from the file \fI~/.bash_logout\fP, if it --exists. -+reads and executes commands from the files \fI~/.bash_logout\fP -+and \fI/etc/bash.bash_logout\fP, if the files exists. - .PP - When an interactive shell that is not a login shell is started, - .B bash -@@ -10558,6 +10558,9 @@ The \fBbash\fP executable - .FN /etc/profile - The systemwide initialization file, executed for login shells - .TP -+.FN /etc/bash.bash_logout -+The systemwide login shell cleanup file, executed when a login shell exits -+.TP - .FN ~/.bash_profile - The personal initialization file, executed for login shells - .TP --- -2.9.3 - diff --git a/bash-4.2-size_type.patch b/bash-4.2-size_type.patch deleted file mode 100644 index ab56677..0000000 --- a/bash-4.2-size_type.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -up bash-4.2/variables.h.size_type bash-4.2/variables.h ---- bash-4.2/variables.h.size_type 2012-11-29 10:33:25.109036844 +0100 -+++ bash-4.2/variables.h 2012-11-29 10:46:12.718530162 +0100 -@@ -95,8 +95,8 @@ typedef struct variable { - - typedef struct _vlist { - SHELL_VAR **list; -- int list_size; /* allocated size */ -- int list_len; /* current number of entries */ -+ size_t list_size; /* allocated size */ -+ size_t list_len; /* current number of entries */ - } VARLIST; - - /* The various attributes that a given variable can have. */ diff --git a/bash-4.3-man-ulimit.patch b/bash-4.3-man-ulimit.patch deleted file mode 100644 index 0c3fa0a..0000000 --- a/bash-4.3-man-ulimit.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/doc/bash.1 b/doc/bash.1 -index 6e8aebb..e846e68 100644 ---- a/doc/bash.1 -+++ b/doc/bash.1 -@@ -10333,6 +10333,7 @@ and - which are in 512-byte increments. - The return status is 0 unless an invalid option or argument is supplied, - or an error occurs while setting a new limit. -+In POSIX Mode 512-byte blocks are used for the `-c' and `-f' options. - .RE - .TP - \fBumask\fP [\fB\-p\fP] [\fB\-S\fP] [\fImode\fP] --- -2.9.3 - diff --git a/bash-4.4-no-loadable-builtins.patch b/bash-4.4-no-loadable-builtins.patch deleted file mode 100644 index b03459d..0000000 --- a/bash-4.4-no-loadable-builtins.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/Makefile.in b/Makefile.in -index a1f9483..24c646a 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -800,7 +800,6 @@ install: .made installdirs - infodir=$(infodir) htmldir=$(htmldir) DESTDIR=$(DESTDIR) $@ ) - -( cd $(DEFDIR) ; $(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) $@ ) - -( cd $(PO_DIR) ; $(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) $@ ) -- -( cd $(LOADABLES_DIR) && $(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) $@ ) - - install-strip: - $(MAKE) $(MFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' \ --- -2.9.3 - diff --git a/bash-infotags.patch b/bash-infotags.patch deleted file mode 100644 index fe39609..0000000 --- a/bash-infotags.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/doc/Makefile.in b/doc/Makefile.in -index 5f0756c..a5fa5a0 100644 ---- a/doc/Makefile.in -+++ b/doc/Makefile.in -@@ -74,7 +74,6 @@ TEXI2DVI = ${SUPPORT_SRCDIR}/texi2dvi - TEXI2HTML = ${SUPPORT_SRCDIR}/texi2html - MAN2HTML = ${BUILD_DIR}/support/man2html - HTMLPOST = ${srcdir}/htmlpost.sh --INFOPOST = ${srcdir}/infopost.sh - QUIETPS = #set this to -q to shut up dvips - PAPERSIZE = letter # change to a4 for A4-size paper - PSDPI = 600 # could be 300 if you like -@@ -188,8 +187,8 @@ bashref.pdf: $(BASHREF_FILES) $(HSUSER) $(RLUSER) - bashref.html: $(BASHREF_FILES) $(HSUSER) $(RLUSER) - $(MAKEINFO) --html --no-split -I$(TEXINPUTDIR) $(srcdir)/bashref.texi - --bash.info: bashref.info -- ${SHELL} ${INFOPOST} < $(srcdir)/bashref.info > $@ ; \ -+bash.info: $(BASHREF_FILES) $(HSUSER) $(RLUSER) -+ $(MAKEINFO) --no-split -I$(TEXINPUTDIR) $(srcdir)/bashref.texi -o $@ - - bash.txt: bash.1 - bash.ps: bash.1 --- -2.9.3 - diff --git a/bash-requires.patch b/bash-requires.patch deleted file mode 100644 index 6167af1..0000000 --- a/bash-requires.patch +++ /dev/null @@ -1,312 +0,0 @@ -diff --git a/builtins.h b/builtins.h -index dac95fd..5b7e811 100644 ---- a/builtins.h -+++ b/builtins.h -@@ -45,6 +45,7 @@ - #define ASSIGNMENT_BUILTIN 0x10 /* This builtin takes assignment statements. */ - #define POSIX_BUILTIN 0x20 /* This builtins is special in the Posix command search order. */ - #define LOCALVAR_BUILTIN 0x40 /* This builtin creates local variables */ -+#define REQUIRES_BUILTIN 0x80 /* This builtin requires other files. */ - - #define BASE_INDENT 4 - -diff --git a/builtins/mkbuiltins.c b/builtins/mkbuiltins.c -index 4f51201..91c25db 100644 ---- a/builtins/mkbuiltins.c -+++ b/builtins/mkbuiltins.c -@@ -69,10 +69,15 @@ extern char *strcpy (); - #define whitespace(c) (((c) == ' ') || ((c) == '\t')) - - /* Flag values that builtins can have. */ -+/* These flags are for the C code generator, -+ the C which is produced (./builtin.c) -+ includes the flags definitions found -+ in ../builtins.h */ - #define BUILTIN_FLAG_SPECIAL 0x01 - #define BUILTIN_FLAG_ASSIGNMENT 0x02 - #define BUILTIN_FLAG_LOCALVAR 0x04 - #define BUILTIN_FLAG_POSIX_BUILTIN 0x08 -+#define BUILTIN_FLAG_REQUIRES 0x10 - - #define BASE_INDENT 4 - -@@ -173,11 +178,19 @@ char *posix_builtins[] = - (char *)NULL - }; - -+/* The builtin commands that cause requirements on other files. */ -+static char *requires_builtins[] = -+{ -+ ".", "command", "exec", "source", "inlib", -+ (char *)NULL -+}; -+ - /* Forward declarations. */ - static int is_special_builtin (); - static int is_assignment_builtin (); - static int is_localvar_builtin (); - static int is_posix_builtin (); -+static int is_requires_builtin (); - - #if !defined (HAVE_RENAME) - static int rename (); -@@ -831,6 +844,8 @@ builtin_handler (self, defs, arg) - new->flags |= BUILTIN_FLAG_LOCALVAR; - if (is_posix_builtin (name)) - new->flags |= BUILTIN_FLAG_POSIX_BUILTIN; -+ if (is_requires_builtin (name)) -+ new->flags |= BUILTIN_FLAG_REQUIRES; - - array_add ((char *)new, defs->builtins); - building_builtin = 1; -@@ -1250,12 +1265,13 @@ write_builtins (defs, structfile, externfile) - else - fprintf (structfile, "(sh_builtin_func_t *)0x0, "); - -- fprintf (structfile, "%s%s%s%s%s, %s_doc,\n", -+ fprintf (structfile, "%s%s%s%s%s%s, %s_doc,\n", - "BUILTIN_ENABLED | STATIC_BUILTIN", - (builtin->flags & BUILTIN_FLAG_SPECIAL) ? " | SPECIAL_BUILTIN" : "", - (builtin->flags & BUILTIN_FLAG_ASSIGNMENT) ? " | ASSIGNMENT_BUILTIN" : "", - (builtin->flags & BUILTIN_FLAG_LOCALVAR) ? " | LOCALVAR_BUILTIN" : "", - (builtin->flags & BUILTIN_FLAG_POSIX_BUILTIN) ? " | POSIX_BUILTIN" : "", -+ (builtin->flags & BUILTIN_FLAG_REQUIRES) ? " | REQUIRES_BUILTIN" : "", - document_name (builtin)); - - /* Don't translate short document summaries that are identical -@@ -1645,6 +1661,13 @@ is_posix_builtin (name) - return (_find_in_table (name, posix_builtins)); - } - -+static int -+is_requires_builtin (name) -+ char *name; -+{ -+ return (_find_in_table (name, requires_builtins)); -+} -+ - #if !defined (HAVE_RENAME) - static int - rename (from, to) -diff --git a/doc/bash.1 b/doc/bash.1 -index d91f1fd..111a66d 100644 ---- a/doc/bash.1 -+++ b/doc/bash.1 -@@ -239,6 +239,14 @@ The shell becomes restricted (see - .B "RESTRICTED SHELL" - below). - .TP -+.B \-\-rpm-requires -+Produce the list of files that are required for the -+shell script to run. This implies '-n' and is subject -+to the same limitations as compile time error checking checking; -+Command substitutions, Conditional expressions and -+.BR eval -+builtin are not parsed so some dependencies may be missed. -+.TP - .B \-\-verbose - Equivalent to \fB\-v\fP. - .TP -diff --git a/doc/bashref.texi b/doc/bashref.texi -index d33cd57..6fc4d18 100644 ---- a/doc/bashref.texi -+++ b/doc/bashref.texi -@@ -6453,6 +6453,13 @@ standard. @xref{Bash POSIX Mode}, for a description of the Bash - @item --restricted - Make the shell a restricted shell (@pxref{The Restricted Shell}). - -+@item --rpm-requires -+Produce the list of files that are required for the -+shell script to run. This implies '-n' and is subject -+to the same limitations as compile time error checking checking; -+Command substitutions, Conditional expressions and @command{eval} -+are not parsed so some dependencies may be missed. -+ - @item --verbose - Equivalent to @option{-v}. Print shell input lines as they're read. - -diff --git a/eval.c b/eval.c -index f02d6e4..76c1e8d 100644 ---- a/eval.c -+++ b/eval.c -@@ -142,7 +142,8 @@ reader_loop () - - if (read_command () == 0) - { -- if (interactive_shell == 0 && read_but_dont_execute) -+ -+ if (interactive_shell == 0 && (read_but_dont_execute && !rpm_requires)) - { - last_command_exit_value = EXECUTION_SUCCESS; - dispose_command (global_command); -diff --git a/execute_cmd.c b/execute_cmd.c -index 8b3c83a..4eae19c 100644 ---- a/execute_cmd.c -+++ b/execute_cmd.c -@@ -542,6 +542,8 @@ async_redirect_stdin () - - #define DESCRIBE_PID(pid) do { if (interactive) describe_pid (pid); } while (0) - -+extern int rpm_requires; -+ - /* Execute the command passed in COMMAND, perhaps doing it asynchronously. - COMMAND is exactly what read_command () places into GLOBAL_COMMAND. - ASYNCHROUNOUS, if non-zero, says to do this command in the background. -@@ -573,7 +575,13 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out, - - if (breaking || continuing) - return (last_command_exit_value); -- if (command == 0 || read_but_dont_execute) -+ if (command == 0 || (read_but_dont_execute && !rpm_requires)) -+ return (EXECUTION_SUCCESS); -+ if (rpm_requires && command->type == cm_function_def) -+ return last_command_exit_value = -+ execute_intern_function (command->value.Function_def->name, -+ command->value.Function_def); -+ if (read_but_dont_execute) - return (EXECUTION_SUCCESS); - - QUIT; -@@ -2819,7 +2827,7 @@ execute_for_command (for_command) - save_line_number = line_number; - if (check_identifier (for_command->name, 1) == 0) - { -- if (posixly_correct && interactive_shell == 0) -+ if (posixly_correct && interactive_shell == 0 && rpm_requires == 0) - { - last_command_exit_value = EX_BADUSAGE; - jump_to_top_level (ERREXIT); -diff --git a/execute_cmd.h b/execute_cmd.h -index dc2f15e..506fff4 100644 ---- a/execute_cmd.h -+++ b/execute_cmd.h -@@ -22,6 +22,9 @@ - #define _EXECUTE_CMD_H_ - - #include "stdc.h" -+#include "variables.h" -+#include "command.h" -+ - - #if defined (ARRAY_VARS) - struct func_array_state -diff --git a/make_cmd.c b/make_cmd.c -index ecbbfd6..3d8bfa4 100644 ---- a/make_cmd.c -+++ b/make_cmd.c -@@ -35,6 +35,8 @@ - #include "bashintl.h" - - #include "shell.h" -+#include "builtins.h" -+#include "builtins/common.h" - #include "execute_cmd.h" - #include "parser.h" - #include "flags.h" -@@ -828,6 +830,30 @@ make_coproc_command (name, command) - return (make_command (cm_coproc, (SIMPLE_COM *)temp)); - } - -+static void -+output_requirement (deptype, filename) -+const char *deptype; -+char *filename; -+{ -+ static char *alphabet_set = "abcdefghijklmnopqrstuvwxyz" -+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; -+ -+ if (strchr(filename, '$') || (filename[0] != '/' && strchr(filename, '/'))) -+ return; -+ -+ /* -+ if the executable is called via variable substitution we can -+ not dermine what it is at compile time. -+ -+ if the executable consists only of characters not in the -+ alphabet we do not consider it a dependency just an artifact -+ of shell parsing (ex "exec < ${infile}"). -+ */ -+ -+ if (strpbrk(filename, alphabet_set)) -+ printf ("%s(%s)\n", deptype, filename); -+} -+ - /* Reverse the word list and redirection list in the simple command - has just been parsed. It seems simpler to do this here the one - time then by any other method that I can think of. */ -@@ -845,6 +871,28 @@ clean_simple_command (command) - REVERSE_LIST (command->value.Simple->redirects, REDIRECT *); - } - -+ if (rpm_requires && command->value.Simple->words) -+ { -+ char *cmd0; -+ char *cmd1; -+ struct builtin *b; -+ -+ cmd0 = command->value.Simple->words->word->word; -+ b = builtin_address_internal (cmd0, 0); -+ cmd1 = 0; -+ if (command->value.Simple->words->next) -+ cmd1 = command->value.Simple->words->next->word->word; -+ -+ if (b) { -+ if ( (b->flags & REQUIRES_BUILTIN) && cmd1) -+ output_requirement ("executable", cmd1); -+ } else { -+ if (!assignment(cmd0, 0)) -+ output_requirement (find_function(cmd0) ? "function" : "executable", cmd0); -+ } -+ } /*rpm_requires*/ -+ -+ - parser_state &= ~PST_REDIRLIST; - return (command); - } -diff --git a/shell.c b/shell.c -index a2b2a55..c5d99b3 100644 ---- a/shell.c -+++ b/shell.c -@@ -193,6 +193,9 @@ int have_devfd = 0; - /* The name of the .(shell)rc file. */ - static char *bashrc_file = DEFAULT_BASHRC; - -+/* Non-zero if we are finding the scripts requirements. */ -+int rpm_requires; -+ - /* Non-zero means to act more like the Bourne shell on startup. */ - static int act_like_sh; - -@@ -259,6 +262,7 @@ static const struct { - { "protected", Int, &protected_mode, (char **)0x0 }, - #endif - { "rcfile", Charp, (int *)0x0, &bashrc_file }, -+ { "rpm-requires", Int, &rpm_requires, (char **)0x0 }, - #if defined (RESTRICTED_SHELL) - { "restricted", Int, &restricted, (char **)0x0 }, - #endif -@@ -496,6 +500,12 @@ main (argc, argv, env) - if (dump_translatable_strings) - read_but_dont_execute = 1; - -+ if (rpm_requires) -+ { -+ read_but_dont_execute = 1; -+ initialize_shell_builtins (); -+ } -+ - if (running_setuid && privileged_mode == 0) - disable_priv_mode (); - -diff --git a/shell.h b/shell.h -index 8072605..6c4149d 100644 ---- a/shell.h -+++ b/shell.h -@@ -99,6 +99,7 @@ extern int interactive, interactive_shell; - extern int startup_state; - extern int reading_shell_script; - extern int shell_initialized; -+extern int rpm_requires; - extern int bash_argv_initialized; - extern int subshell_environment; - extern int current_command_number; diff --git a/bash-setlocale.patch b/bash-setlocale.patch deleted file mode 100644 index f068ec7..0000000 --- a/bash-setlocale.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- bash-3.0/builtins/setattr.def.setlocale 2005-08-08 12:22:42.000000000 +0100 -+++ bash-3.0/builtins/setattr.def 2005-08-08 12:25:16.000000000 +0100 -@@ -423,4 +423,7 @@ - - if (var && (exported_p (var) || (attribute & att_exported))) - array_needs_making++; /* XXX */ -+ -+ if (var) -+ stupidly_hack_special_variables (name); - } diff --git a/bash-tty-tests.patch b/bash-tty-tests.patch deleted file mode 100644 index ea9a8a6..0000000 --- a/bash-tty-tests.patch +++ /dev/null @@ -1,60 +0,0 @@ -diff --git a/tests/exec.right b/tests/exec.right -index 6075cc8..0b3f02c 100644 ---- a/tests/exec.right -+++ b/tests/exec.right -@@ -51,7 +51,6 @@ this is ohio-state - 0 - 1 - testb --expand_aliases on - 1 - 1 - 1 -diff --git a/tests/execscript b/tests/execscript -index c1819de..9227a4a 100644 ---- a/tests/execscript -+++ b/tests/execscript -@@ -108,8 +108,6 @@ ${THIS_SH} ./exec6.sub - # checks for properly deciding what constitutes an executable file - ${THIS_SH} ./exec7.sub - --${THIS_SH} -i ${PWD}/exec8.sub -- - ${THIS_SH} ./exec9.sub - - ${THIS_SH} ./exec10.sub -diff --git a/tests/read.right b/tests/read.right -index 73cb704..a92fe7f 100644 ---- a/tests/read.right -+++ b/tests/read.right -@@ -33,14 +33,6 @@ a = abcdefg - a = xyz - a = -xyz 123- - a = abc --timeout 1: ok -- --timeout 2: ok -- --./read2.sub: line 23: read: -3: invalid timeout specification --1 -- --abcde - ./read3.sub: line 4: read: -1: invalid number - abc - ab -diff --git a/tests/read.tests b/tests/read.tests -index f67cd00..083f4a4 100644 ---- a/tests/read.tests -+++ b/tests/read.tests -@@ -82,9 +82,6 @@ echo " foo" | { IFS=$':' ; read line; recho "$line"; } - # test read -d delim behavior - ${THIS_SH} ./read1.sub - --# test read -t timeout behavior --${THIS_SH} ./read2.sub -- - # test read -n nchars behavior - ${THIS_SH} ./read3.sub - --- -2.17.2 diff --git a/bash.spec b/bash.spec index dbe079d..8c95a44 100644 --- a/bash.spec +++ b/bash.spec @@ -1,6 +1,6 @@ Name: bash Version: 5.0 -Release: 7 +Release: 8 Summary: It is the Bourne Again Shell License: GPLv3 URL: https://www.gnu.org/software/bash @@ -23,38 +23,17 @@ Patch9: bash-5.0-patch9.patch Patch10: bash-5.0-patch10.patch Patch11: bash-5.0-patch11.patch -Patch12: bash-2.02-security.patch -Patch13: bash-2.03-paths.patch -Patch14: bash-2.03-profile.patch Patch15: bash-2.05a-interpreter.patch -Patch16: bash-2.05b-debuginfo.patch -Patch17: bash-2.05b-manso.patch Patch18: bash-2.05b-pgrp_sync.patch -Patch19: bash-3.2-audit.patch -Patch20: bash-3.2-ssh_source_bash.patch -Patch21: bash-infotags.patch -Patch22: bash-requires.patch -Patch23: bash-setlocale.patch -Patch24: bash-tty-tests.patch - -# rh484809 Patch25: bash-4.0-nobits.patch -Patch26: bash-4.1-examples.patch -Patch27: bash-4.1-broken_pipe.patch -Patch28: bash-4.2-rc2-logout.patch Patch29: bash-4.2-coverity.patch -# rh799958 -Patch30: bash-4.2-manpage_trap.patch -Patch31: bash-4.2-size_type.patch -# rh1112710 -Patch32: bash-4.3-man-ulimit.patch # rh1102815 Patch33: bash-4.3-noecho.patch # fix bash leaks memory when LC_ALL set-rh1241533,rh1224855 Patch34: bash-4.3-memleak-lc_all.patch -Patch35: bash-4.4-no-loadable-builtins.patch -Patch9000:0001-bugfix-Forbidden-non-root-user-to-clear-history.patch +Patch9000:bugfix-Forbidden-non-root-user-to-clear-history.patch +Patch9001:enable-dot-logout-and-source-bashrc-through-ssh.patch BuildRequires: gcc bison texinfo @@ -120,7 +99,7 @@ make check %files -f %{name}.lang %defattr(-,root,root) %license COPYING -%config(noreplace) /etc/skel/.%{name}* +%config(noreplace) /etc/skel/.* %{_bindir}/{sh,bash,alias,bg,cd,command,fc,fg,wait,bashbug} %{_bindir}/{hash,getopts,jobs,read,type,ulimit,umask,unalias} @@ -128,6 +107,8 @@ make check %defattr(-,root,root) %{_includedir}/%{name} %{_libdir}/pkgconfig/*.pc +%{_libdir}/bash/* +%exclude %{_libdir}/bash/Makefile* %files help %defattr(-,root,root) @@ -139,13 +120,19 @@ make check %exclude %{_infodir}/dir %changelog -* Wed Dec 25 2019 openEuler Buildteam 5.0-7 +* Mon Jan 6 2020 openEuler Buildteam - 5.0-8 +- Type:enhancement +- ID:NA +- SUG:NA +- DESC:delete redundant files + +* Wed Dec 25 2019 openEuler Buildteam - 5.0-7 - Type:enhancement - ID:NA - SUG:NA - DESC:add provides of bash-doc -* Thu Oct 24 2019 shenyangyang 5.0-6 +* Thu Oct 24 2019 shenyangyang - 5.0-6 - Type:enhancement - ID:NA - SUG:NA diff --git a/0001-bugfix-Forbidden-non-root-user-to-clear-history.patch b/bugfix-Forbidden-non-root-user-to-clear-history.patch similarity index 100% rename from 0001-bugfix-Forbidden-non-root-user-to-clear-history.patch rename to bugfix-Forbidden-non-root-user-to-clear-history.patch diff --git a/dot-bash_logout b/dot-bash_logout index af7c6fd..31579fc 100644 --- a/dot-bash_logout +++ b/dot-bash_logout @@ -1,2 +1,2 @@ -# ~/.bash_logout - +# System-wide .bash_logout for login shells +# executed when a shell logout diff --git a/dot-bash_profile b/dot-bash_profile index 55136b9..a67d8bf 100644 --- a/dot-bash_profile +++ b/dot-bash_profile @@ -1,8 +1,2 @@ -# .bash_profile - -# Get the aliases and functions -if [ -f ~/.bashrc ]; then - . ~/.bashrc -fi - -# User specific environment and startup programs +# Source /root/.bashrc if user has one +# [ -f ~/.bashrc ] && . ~/.bashrc diff --git a/dot-bashrc b/dot-bashrc index 68854a1..8212e78 100644 --- a/dot-bashrc +++ b/dot-bashrc @@ -1,15 +1,6 @@ -# .bashrc +# Source default setting +[ -f /etc/bashrc ] && . /etc/bashrc -# Source global definitions -if [ -f /etc/bashrc ]; then - . /etc/bashrc -fi - -# User specific environment +# User environment PATH PATH="$HOME/.local/bin:$HOME/bin:$PATH" export PATH - -# Uncomment the following line if you don't like systemctl's auto-paging feature: -# export SYSTEMD_PAGER= - -# User specific aliases and functions diff --git a/enable-dot-logout-and-source-bashrc-through-ssh.patch b/enable-dot-logout-and-source-bashrc-through-ssh.patch new file mode 100644 index 0000000..b9bede7 --- /dev/null +++ b/enable-dot-logout-and-source-bashrc-through-ssh.patch @@ -0,0 +1,37 @@ +From 8d61d57541b0dbf7eb49359f7f0af53ec9724cbe Mon Sep 17 00:00:00 2001 +From: openEuler Buildteam +Date: Thu, 9 Jan 2020 19:02:15 +0800 +Subject: [PATCH] enable dot logout and source bashrc through ssh + +--- + config-top.h | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/config-top.h b/config-top.h +index 56dbd51..3c5555a 100644 +--- a/config-top.h ++++ b/config-top.h +@@ -94,17 +94,17 @@ + /* #define SYS_BASHRC "/etc/bash.bashrc" */ + + /* System-wide .bash_logout for login shells. */ +-/* #define SYS_BASH_LOGOUT "/etc/bash.bash_logout" */ ++#define SYS_BASH_LOGOUT "/etc/bash.bash_logout" + + /* Define this to make non-interactive shells begun with argv[0][0] == '-' + run the startup files when not in posix mode. */ +-/* #define NON_INTERACTIVE_LOGIN_SHELLS */ ++#define NON_INTERACTIVE_LOGIN_SHELLS + + /* Define this if you want bash to try to check whether it's being run by + sshd and source the .bashrc if so (like the rshd behavior). This checks + for the presence of SSH_CLIENT or SSH2_CLIENT in the initial environment, + which can be fooled under certain not-uncommon circumstances. */ +-/* #define SSH_SOURCE_BASHRC */ ++#define SSH_SOURCE_BASHRC + + /* Define if you want the case-capitalizing operators (~[~]) and the + `capcase' variable attribute (declare -c). */ +-- +1.8.3.1 +