new version bash-4.0-rc1

This commit is contained in:
Roman Rakus 2009-01-26 11:50:44 +00:00
parent 94fcc631ef
commit 87b6511a40
11 changed files with 262 additions and 329 deletions

View File

@ -1,2 +1 @@
bash-3.2.tar.gz
bash-doc-3.2.tar.gz
bash-4.0.tar.gz

View File

@ -1,26 +1,7 @@
--- bash-3.2/configure.in.interpreter 2006-09-26 16:05:45.000000000 +0100
+++ bash-3.2/configure.in 2006-12-15 17:56:15.000000000 +0000
@@ -634,7 +634,7 @@
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 \
- stddef.h stdint.h netdb.h pwd.h grp.h strings.h regex.h)
+ stddef.h stdint.h netdb.h pwd.h grp.h strings.h regex.h elf.h)
AC_CHECK_HEADERS(sys/pte.h sys/stream.h sys/select.h sys/file.h \
sys/resource.h sys/param.h sys/socket.h sys/stat.h \
sys/time.h sys/times.h sys/types.h sys/wait.h)
@@ -698,7 +698,7 @@
AC_CHECK_FUNCS(dup2 eaccess fcntl getdtablesize getgroups gethostname \
getpagesize getpeername getrlimit getrusage gettimeofday \
kill killpg lstat readlink sbrk select setdtablesize \
- tcgetpgrp uname ulimit waitpid)
+ tcgetpgrp uname ulimit waitpid pread)
AC_REPLACE_FUNCS(rename)
dnl checks for c library functions
--- bash-3.2/execute_cmd.c.interpreter 2006-12-15 17:55:53.000000000 +0000
+++ bash-3.2/execute_cmd.c 2006-12-15 17:55:53.000000000 +0000
@@ -40,6 +40,10 @@
diff -up bash-4.0/execute_cmd.c.interpreter bash-4.0/execute_cmd.c
--- bash-4.0/execute_cmd.c.interpreter 2009-01-04 20:32:29.000000000 +0100
+++ bash-4.0/execute_cmd.c 2009-01-21 14:55:34.000000000 +0100
@@ -41,6 +41,10 @@
# include <unistd.h>
#endif
@ -31,7 +12,7 @@
#include "posixtime.h"
#if defined (HAVE_SYS_RESOURCE_H) && !defined (RLIMTYPE)
@@ -3953,13 +3957,21 @@
@@ -4601,13 +4605,21 @@ shell_execve (command, args, env)
{
/* The file has the execute bits set, but the kernel refuses to
run it for some reason. See why. */
@ -54,7 +35,7 @@
interp = getinterp (sample, sample_len, (int *)NULL);
ilen = strlen (interp);
errno = i;
@@ -3975,6 +3987,136 @@
@@ -4623,6 +4635,136 @@ shell_execve (command, args, env)
return (EX_NOEXEC);
}
#endif
@ -191,9 +172,10 @@
errno = i;
file_error (command);
}
--- bash-3.2/config.h.in.interpreter 2006-12-15 17:55:53.000000000 +0000
+++ bash-3.2/config.h.in 2006-12-15 17:55:53.000000000 +0000
@@ -646,6 +646,9 @@
diff -up bash-4.0/config.h.in.interpreter bash-4.0/config.h.in
--- bash-4.0/config.h.in.interpreter 2009-01-21 14:55:34.000000000 +0100
+++ bash-4.0/config.h.in 2009-01-21 14:55:34.000000000 +0100
@@ -670,6 +670,9 @@
/* Define if you have the pathconf function. */
#undef HAVE_PATHCONF
@ -203,7 +185,7 @@
/* Define if you have the putenv function. */
#undef HAVE_PUTENV
@@ -823,6 +826,9 @@
@@ -850,6 +853,9 @@
/* Define if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
@ -213,3 +195,24 @@
/* Define if you have the <grp.h> header file. */
#undef HAVE_GRP_H
diff -up bash-4.0/configure.in.interpreter bash-4.0/configure.in
--- bash-4.0/configure.in.interpreter 2009-01-06 17:51:58.000000000 +0100
+++ bash-4.0/configure.in 2009-01-21 15:04:58.000000000 +0100
@@ -649,7 +649,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 \
- stddef.h stdint.h netdb.h pwd.h grp.h strings.h regex.h)
+ stddef.h stdint.h netdb.h pwd.h grp.h strings.h regex.h elf.h)
AC_CHECK_HEADERS(sys/pte.h sys/stream.h sys/select.h sys/file.h \
sys/resource.h sys/param.h sys/socket.h sys/stat.h \
sys/time.h sys/times.h sys/types.h sys/wait.h)
@@ -713,7 +713,7 @@ dnl checks for system calls
AC_CHECK_FUNCS(dup2 eaccess fcntl getdtablesize getgroups gethostname \
getpagesize getpeername getrlimit getrusage gettimeofday \
kill killpg lstat 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

View File

@ -1,5 +1,36 @@
--- bash-3.2/lib/readline/readline.c.audit 2008-01-18 13:06:25.000000000 +0100
+++ bash-3.2/lib/readline/readline.c 2008-01-18 13:06:25.000000000 +0100
diff -up bash-4.0/config.h.in.audit bash-4.0/config.h.in
--- bash-4.0/config.h.in.audit 2009-01-21 11:34:34.000000000 -0500
+++ bash-4.0/config.h.in 2009-01-21 11:34:35.000000000 -0500
@@ -1077,6 +1077,14 @@
/* End additions for lib/intl */
+
+/* Additions for lib/readline */
+
+/* Define if you have <linux/audit.h> 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.0/configure.in.audit bash-4.0/configure.in
--- bash-4.0/configure.in.audit 2009-01-21 11:34:34.000000000 -0500
+++ bash-4.0/configure.in 2009-01-21 11:34:35.000000000 -0500
@@ -875,6 +875,8 @@ BASH_FUNC_DUP2_CLOEXEC_CHECK
BASH_SYS_PGRP_SYNC
BASH_SYS_SIGNAL_VINTAGE
+AC_CHECK_DECLS([AUDIT_USER_TTY],,, [[#include <linux/audit.h>]])
+
dnl checking for the presence of certain library symbols
BASH_SYS_ERRLIST
BASH_SYS_SIGLIST
diff -up bash-4.0/lib/readline/readline.c.audit bash-4.0/lib/readline/readline.c
--- bash-4.0/lib/readline/readline.c.audit 2009-01-21 11:34:34.000000000 -0500
+++ bash-4.0/lib/readline/readline.c 2009-01-21 11:40:12.000000000 -0500
@@ -55,6 +55,12 @@
extern int errno;
#endif /* !errno */
@ -13,7 +44,7 @@
/* System-specific feature definitions and include files. */
#include "rldefs.h"
#include "rlmbutil.h"
@@ -292,7 +298,47 @@
@@ -297,7 +303,47 @@ rl_set_prompt (prompt)
rl_visible_prompt_length = rl_expand_prompt (rl_prompt);
return 0;
}
@ -62,8 +93,8 @@
/* Read a line of input. Prompt with PROMPT. An empty PROMPT means
none. A return value of NULL means that EOF was encountered. */
char *
@@ -326,6 +372,11 @@
rl_clear_signals ();
@@ -348,6 +394,11 @@ readline (prompt)
RL_SETSTATE (RL_STATE_CALLBACK);
#endif
+#if defined (HAVE_DECL_AUDIT_USER_TTY)
@ -74,31 +105,3 @@
return (value);
}
--- bash-3.2/configure.in.audit 2008-01-18 13:06:25.000000000 +0100
+++ bash-3.2/configure.in 2008-01-18 13:06:25.000000000 +0100
@@ -871,6 +871,8 @@
BASH_SYS_PGRP_SYNC
BASH_SYS_SIGNAL_VINTAGE
+AC_CHECK_DECLS([AUDIT_USER_TTY],,, [[#include <linux/audit.h>]])
+
dnl checking for the presence of certain library symbols
BASH_SYS_ERRLIST
BASH_SYS_SIGLIST
--- bash-3.2/config.h.in.audit 2008-01-18 13:06:25.000000000 +0100
+++ bash-3.2/config.h.in 2008-01-18 13:10:19.000000000 +0100
@@ -1058,6 +1058,14 @@
/* End additions for lib/intl */
+
+/* Additions for lib/readline */
+
+/* Define if you have <linux/audit.h> and it defines AUDIT_USER_TTY */
+#undef HAVE_DECL_AUDIT_USER_TTY
+
+/* End additions for lib/readline */
+
#include "config-bot.h"
#endif /* _CONFIG_H_ */

View File

@ -1,9 +1,12 @@
diff -up bash-3.2/config-top.h.ssh_source_bash bash-3.2/config-top.h
--- bash-3.2/config-top.h.ssh_source_bash 2008-10-23 15:08:04.000000000 +0200
+++ bash-3.2/config-top.h 2008-10-23 15:08:33.000000000 +0200
@@ -86,4 +86,4 @@
/* 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). */
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). */

View File

@ -0,0 +1,12 @@
diff -up bash-4.0/builtins/evalstring.c.rr bash-4.0/builtins/evalstring.c
--- bash-4.0/builtins/evalstring.c.rr 2009-01-26 04:40:10.000000000 -0500
+++ bash-4.0/builtins/evalstring.c 2009-01-26 04:40:52.000000000 -0500
@@ -268,7 +268,7 @@ parse_and_execute (string, from_file, fl
if ((subshell_environment & SUBSHELL_COMSUB) && comsub_ignore_return)
{
command->flags |= CMD_IGNORE_RETURN;
-itrace("parse_and_execute: turned on CMD_IGNORE_RETURN from comsub_ignore_return");
+/* itrace("parse_and_execute: turned on CMD_IGNORE_RETURN from comsub_ignore_return"); */
}
#if defined (ONESHOT)

View File

@ -1,6 +1,7 @@
--- bash-3.0/doc/bash.1.bashbug 2004-09-07 18:12:05.102185374 +0100
+++ bash-3.0/doc/bash.1 2004-09-07 18:15:12.796455678 +0100
@@ -8680,7 +8680,7 @@
diff -up bash-4.0/doc/bash.1.bashbug bash-4.0/doc/bash.1
--- bash-4.0/doc/bash.1.bashbug 2008-12-29 16:49:25.000000000 -0500
+++ bash-4.0/doc/bash.1 2009-01-21 11:43:34.000000000 -0500
@@ -9325,7 +9325,7 @@ The latest version is always available f
.PP
Once you have determined that a bug actually exists, use the
.I bashbug
@ -9,7 +10,7 @@
If you have a fix, you are encouraged to mail that as well!
Suggestions and `philosophical' bug reports may be mailed
to \fIbug-bash@gnu.org\fP or posted to the Usenet
@@ -8702,10 +8702,6 @@
@@ -9347,10 +9347,6 @@ A description of the bug behaviour
A short script or `recipe' which exercises the bug
.PD
.PP
@ -19,10 +20,11 @@
-.PP
Comments and bug reports concerning
this manual page should be directed to
.IR chet@po.CWRU.Edu .
--- bash-3.0/doc/bashref.texi.bashbug 2004-09-07 18:13:53.305588178 +0100
+++ bash-3.0/doc/bashref.texi 2004-09-07 18:14:58.111251326 +0100
@@ -6777,7 +6777,7 @@
.IR chet@po.cwru.edu .
diff -up bash-4.0/doc/bashref.texi.bashbug bash-4.0/doc/bashref.texi
--- bash-4.0/doc/bashref.texi.bashbug 2009-01-04 14:32:25.000000000 -0500
+++ bash-4.0/doc/bashref.texi 2009-01-21 11:41:07.000000000 -0500
@@ -7292,7 +7292,7 @@ The latest version of Bash is always ava
@uref{ftp://ftp.gnu.org/pub/bash/}.
Once you have determined that a bug actually exists, use the
@ -31,7 +33,7 @@
If you have a fix, you are encouraged to mail that as well!
Suggestions and `philosophical' bug reports may be mailed
to @email{bug-bash@@gnu.org} or posted to the Usenet
@@ -6799,9 +6799,6 @@
@@ -7314,9 +7314,6 @@ to reproduce it.
@end itemize
@noindent
@ -41,9 +43,10 @@
Please send all reports concerning this manual to
@email{chet@@po.CWRU.Edu}.
--- bash-3.0/shell.c.bashbug 2004-09-07 18:11:10.580563335 +0100
+++ bash-3.0/shell.c 2004-09-07 18:11:23.650075642 +0100
@@ -1763,7 +1763,6 @@
diff -up bash-4.0/shell.c.bashbug bash-4.0/shell.c
--- bash-4.0/shell.c.bashbug 2009-01-04 14:32:41.000000000 -0500
+++ bash-4.0/shell.c 2009-01-21 11:41:07.000000000 -0500
@@ -1806,7 +1806,6 @@ show_shell_usage (fp, extra)
{
fprintf (fp, _("Type `%s -c \"help set\"' for more information about shell options.\n"), shell_name);
fprintf (fp, _("Type `%s -c help' for more information about shell builtin commands.\n"), shell_name);

View File

@ -1,7 +1,7 @@
diff -up bash-3.2/shell.c.requires bash-3.2/shell.c
--- bash-3.2/shell.c.requires 2006-05-17 14:46:54.000000000 +0200
+++ bash-3.2/shell.c 2008-12-09 14:02:02.000000000 +0100
@@ -175,6 +175,9 @@ int running_under_emacs;
diff -up bash-4.0/shell.c.requires bash-4.0/shell.c
--- bash-4.0/shell.c.requires 2009-01-21 15:28:16.000000000 +0100
+++ bash-4.0/shell.c 2009-01-21 15:28:16.000000000 +0100
@@ -193,6 +193,9 @@ int have_devfd = 0;
/* The name of the .(shell)rc file. */
static char *bashrc_file = "~/.bashrc";
@ -11,7 +11,7 @@ diff -up bash-3.2/shell.c.requires bash-3.2/shell.c
/* Non-zero means to act more like the Bourne shell on startup. */
static int act_like_sh;
@@ -233,6 +236,7 @@ struct {
@@ -251,6 +254,7 @@ static const struct {
{ "posix", Int, &posixly_correct, (char **)0x0 },
{ "protected", Int, &protected_mode, (char **)0x0 },
{ "rcfile", Charp, (int *)0x0, &bashrc_file },
@ -19,7 +19,7 @@ diff -up bash-3.2/shell.c.requires bash-3.2/shell.c
#if defined (RESTRICTED_SHELL)
{ "restricted", Int, &restricted, (char **)0x0 },
#endif
@@ -460,6 +464,12 @@ main (argc, argv, env)
@@ -479,6 +483,12 @@ main (argc, argv, env)
if (dump_translatable_strings)
read_but_dont_execute = 1;
@ -32,10 +32,10 @@ diff -up bash-3.2/shell.c.requires bash-3.2/shell.c
if (running_setuid && privileged_mode == 0)
disable_priv_mode ();
diff -up bash-3.2/doc/bashref.texi.requires bash-3.2/doc/bashref.texi
--- bash-3.2/doc/bashref.texi.requires 2008-12-09 14:02:01.000000000 +0100
+++ bash-3.2/doc/bashref.texi 2008-12-09 14:02:02.000000000 +0100
@@ -4906,6 +4906,13 @@ standard. @xref{Bash POSIX Mode}, for a
diff -up bash-4.0/doc/bashref.texi.requires bash-4.0/doc/bashref.texi
--- bash-4.0/doc/bashref.texi.requires 2009-01-21 15:28:16.000000000 +0100
+++ bash-4.0/doc/bashref.texi 2009-01-21 15:28:16.000000000 +0100
@@ -5253,6 +5253,13 @@ standard. @xref{Bash POSIX Mode}, for a
@item --restricted
Make the shell a restricted shell (@pxref{The Restricted Shell}).
@ -49,10 +49,10 @@ diff -up bash-3.2/doc/bashref.texi.requires bash-3.2/doc/bashref.texi
@item --verbose
Equivalent to @option{-v}. Print shell input lines as they're read.
diff -up bash-3.2/doc/bash.1.requires bash-3.2/doc/bash.1
--- bash-3.2/doc/bash.1.requires 2008-12-09 14:02:01.000000000 +0100
+++ bash-3.2/doc/bash.1 2008-12-09 14:02:02.000000000 +0100
@@ -232,6 +232,13 @@ The shell becomes restricted (see
diff -up bash-4.0/doc/bash.1.requires bash-4.0/doc/bash.1
--- bash-4.0/doc/bash.1.requires 2009-01-21 15:28:16.000000000 +0100
+++ bash-4.0/doc/bash.1 2009-01-21 15:28:16.000000000 +0100
@@ -231,6 +231,13 @@ The shell becomes restricted (see
.B "RESTRICTED SHELL"
below).
.TP
@ -66,10 +66,10 @@ diff -up bash-3.2/doc/bash.1.requires bash-3.2/doc/bash.1
.B \-\-verbose
Equivalent to \fB\-v\fP.
.TP
diff -up bash-3.2/make_cmd.c.requires bash-3.2/make_cmd.c
--- bash-3.2/make_cmd.c.requires 2006-09-12 15:21:22.000000000 +0200
+++ bash-3.2/make_cmd.c 2008-12-09 14:02:02.000000000 +0100
@@ -41,11 +41,15 @@ Foundation, 59 Temple Place, Suite 330,
diff -up bash-4.0/make_cmd.c.requires bash-4.0/make_cmd.c
--- bash-4.0/make_cmd.c.requires 2009-01-04 20:32:38.000000000 +0100
+++ bash-4.0/make_cmd.c 2009-01-21 15:28:16.000000000 +0100
@@ -41,11 +41,15 @@
#include "flags.h"
#include "make_cmd.h"
#include "dispose_cmd.h"
@ -85,7 +85,7 @@ diff -up bash-3.2/make_cmd.c.requires bash-3.2/make_cmd.c
#if defined (JOB_CONTROL)
#include "jobs.h"
@@ -55,6 +59,10 @@ Foundation, 59 Temple Place, Suite 330,
@@ -55,6 +59,10 @@
extern int line_number, current_command_line_count;
extern int last_command_exit_value;
@ -96,8 +96,8 @@ diff -up bash-3.2/make_cmd.c.requires bash-3.2/make_cmd.c
/* Object caching */
sh_obj_cache_t wdcache = {0, 0, 0};
@@ -789,6 +797,27 @@ make_subshell_command (command)
return (make_command (cm_subshell, (SIMPLE_COM *)temp));
@@ -810,6 +818,27 @@ make_coproc_command (name, command)
return (make_command (cm_coproc, (SIMPLE_COM *)temp));
}
+static void
@ -124,7 +124,7 @@ diff -up bash-3.2/make_cmd.c.requires bash-3.2/make_cmd.c
/* 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. */
@@ -806,6 +835,27 @@ clean_simple_command (command)
@@ -827,6 +856,27 @@ clean_simple_command (command)
REVERSE_LIST (command->value.Simple->redirects, REDIRECT *);
}
@ -152,10 +152,10 @@ diff -up bash-3.2/make_cmd.c.requires bash-3.2/make_cmd.c
return (command);
}
diff -up bash-3.2/execute_cmd.c.requires bash-3.2/execute_cmd.c
--- bash-3.2/execute_cmd.c.requires 2008-12-09 14:02:02.000000000 +0100
+++ bash-3.2/execute_cmd.c 2008-12-09 15:19:29.000000000 +0100
@@ -476,6 +476,8 @@ async_redirect_stdin ()
diff -up bash-4.0/execute_cmd.c.requires bash-4.0/execute_cmd.c
--- bash-4.0/execute_cmd.c.requires 2009-01-21 15:28:16.000000000 +0100
+++ bash-4.0/execute_cmd.c 2009-01-21 15:28:16.000000000 +0100
@@ -497,6 +497,8 @@ async_redirect_stdin ()
#define DESCRIBE_PID(pid) do { if (interactive) describe_pid (pid); } while (0)
@ -164,7 +164,7 @@ diff -up bash-3.2/execute_cmd.c.requires bash-3.2/execute_cmd.c
/* Execute the command passed in COMMAND, perhaps doing it asynchrounously.
COMMAND is exactly what read_command () places into GLOBAL_COMMAND.
ASYNCHROUNOUS, if non-zero, says to do this command in the background.
@@ -507,8 +509,13 @@ execute_command_internal (command, async
@@ -528,8 +530,13 @@ execute_command_internal (command, async
#else
if (breaking || continuing)
return (last_command_exit_value);
@ -179,18 +179,18 @@ diff -up bash-3.2/execute_cmd.c.requires bash-3.2/execute_cmd.c
#endif
QUIT;
@@ -4073,7 +4080,7 @@ execute_intern_function (name, function)
@@ -4859,7 +4866,7 @@ execute_intern_function (name, function)
if (check_identifier (name, posixly_correct) == 0)
{
- if (posixly_correct && interactive_shell == 0)
+ if (posixly_correct && interactive_shell == 0 && rpm_requires == 0)
{
last_command_exit_value = EX_USAGE;
last_command_exit_value = EX_BADUSAGE;
jump_to_top_level (ERREXIT);
diff -up bash-3.2/execute_cmd.h.requires bash-3.2/execute_cmd.h
--- bash-3.2/execute_cmd.h.requires 2001-05-07 16:39:37.000000000 +0200
+++ bash-3.2/execute_cmd.h 2008-12-09 14:02:02.000000000 +0100
diff -up bash-4.0/execute_cmd.h.requires bash-4.0/execute_cmd.h
--- bash-4.0/execute_cmd.h.requires 2009-01-04 20:32:29.000000000 +0100
+++ bash-4.0/execute_cmd.h 2009-01-21 15:28:16.000000000 +0100
@@ -22,6 +22,8 @@
#define _EXECUTE_CMD_H_
@ -200,20 +200,21 @@ diff -up bash-3.2/execute_cmd.h.requires bash-3.2/execute_cmd.h
extern struct fd_bitmap *new_fd_bitmap __P((int));
extern void dispose_fd_bitmap __P((struct fd_bitmap *));
diff -up bash-3.2/builtins.h.requires bash-3.2/builtins.h
--- bash-3.2/builtins.h.requires 2004-12-30 19:59:05.000000000 +0100
+++ bash-3.2/builtins.h 2008-12-09 14:02:02.000000000 +0100
@@ -40,6 +40,7 @@
#define STATIC_BUILTIN 0x4 /* This builtin is not dynamically loaded. */
#define SPECIAL_BUILTIN 0x8 /* This is a Posix `special' builtin. */
diff -up bash-4.0/builtins.h.requires bash-4.0/builtins.h
--- bash-4.0/builtins.h.requires 2009-01-04 20:32:23.000000000 +0100
+++ bash-4.0/builtins.h 2009-01-21 16:10:39.000000000 +0100
@@ -41,6 +41,8 @@
#define SPECIAL_BUILTIN 0x08 /* This is a Posix `special' builtin. */
#define ASSIGNMENT_BUILTIN 0x10 /* This builtin takes assignment statements. */
+#define REQUIRES_BUILTIN 0x20 /* This builtin requires other files. */
#define POSIX_BUILTIN 0x20 /* This builtins is special in the Posix command search order. */
+#define REQUIRES_BUILTIN 0x40 /* This builtin requires other files. */
+
#define BASE_INDENT 4
diff -up bash-3.2/eval.c.requires bash-3.2/eval.c
--- bash-3.2/eval.c.requires 2006-03-19 23:30:26.000000000 +0100
+++ bash-3.2/eval.c 2008-12-09 14:02:02.000000000 +0100
diff -up bash-4.0/eval.c.requires bash-4.0/eval.c
--- bash-4.0/eval.c.requires 2009-01-04 20:32:26.000000000 +0100
+++ bash-4.0/eval.c 2009-01-21 15:28:16.000000000 +0100
@@ -53,6 +53,7 @@ extern int last_command_exit_value, stdi
extern int need_here_doc;
extern int current_command_number, current_command_line_count, line_number;
@ -222,7 +223,7 @@ diff -up bash-3.2/eval.c.requires bash-3.2/eval.c
static void send_pwd_to_eterm __P((void));
static sighandler alrm_catcher __P((int));
@@ -131,7 +132,7 @@ reader_loop ()
@@ -136,7 +137,7 @@ reader_loop ()
if (read_command () == 0)
{
@ -231,10 +232,10 @@ diff -up bash-3.2/eval.c.requires bash-3.2/eval.c
{
last_command_exit_value = EXECUTION_SUCCESS;
dispose_command (global_command);
diff -up bash-3.2/builtins/mkbuiltins.c.requires bash-3.2/builtins/mkbuiltins.c
--- bash-3.2/builtins/mkbuiltins.c.requires 2006-03-07 22:41:57.000000000 +0100
+++ bash-3.2/builtins/mkbuiltins.c 2008-12-09 14:02:02.000000000 +0100
@@ -69,8 +69,13 @@ extern char *strcpy ();
diff -up bash-4.0/builtins/mkbuiltins.c.requires bash-4.0/builtins/mkbuiltins.c
--- bash-4.0/builtins/mkbuiltins.c.requires 2009-01-04 20:32:23.000000000 +0100
+++ bash-4.0/builtins/mkbuiltins.c 2009-01-21 16:16:05.000000000 +0100
@@ -69,9 +69,15 @@ extern char *strcpy ();
#define whitespace(c) (((c) == ' ') || ((c) == '\t'))
/* Flag values that builtins can have. */
@ -244,11 +245,13 @@ diff -up bash-3.2/builtins/mkbuiltins.c.requires bash-3.2/builtins/mkbuiltins.c
+ in ../builtins.h */
#define BUILTIN_FLAG_SPECIAL 0x01
#define BUILTIN_FLAG_ASSIGNMENT 0x02
+#define BUILTIN_FLAG_REQUIRES 0x04
#define BUILTIN_FLAG_POSIX_BUILTIN 0x04
+#define BUILTIN_FLAG_REQUIRES 0x08
+
#define BASE_INDENT 4
@@ -154,9 +159,17 @@ char *assignment_builtins[] =
@@ -163,10 +169,18 @@ char *posix_builtins[] =
(char *)NULL
};
@ -262,34 +265,37 @@ diff -up bash-3.2/builtins/mkbuiltins.c.requires bash-3.2/builtins/mkbuiltins.c
/* Forward declarations. */
static int is_special_builtin ();
static int is_assignment_builtin ();
static int is_posix_builtin ();
+static int is_requires_builtin ();
#if !defined (HAVE_RENAME)
static int rename ();
@@ -800,6 +813,8 @@ builtin_handler (self, defs, arg)
new->flags |= BUILTIN_FLAG_SPECIAL;
if (is_assignment_builtin (name))
@@ -812,6 +826,9 @@ builtin_handler (self, defs, arg)
new->flags |= BUILTIN_FLAG_ASSIGNMENT;
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;
@@ -1217,10 +1232,11 @@ write_builtins (defs, structfile, extern
@@ -1229,11 +1246,12 @@ write_builtins (defs, structfile, extern
else
fprintf (structfile, "(sh_builtin_func_t *)0x0, ");
- fprintf (structfile, "%s%s%s, %s_doc,\n",
+ fprintf (structfile, "%s%s%s%s, %s_doc,\n",
- fprintf (structfile, "%s%s%s%s, %s_doc,\n",
+ fprintf (structfile, "%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_POSIX_BUILTIN) ? " | POSIX_BUILTIN" : "",
+ (builtin->flags & BUILTIN_FLAG_REQUIRES) ? " | REQUIRES_BUILTIN" : "",
document_name (builtin));
fprintf
@@ -1561,6 +1577,13 @@ is_assignment_builtin (name)
return (_find_in_table (name, assignment_builtins));
@@ -1581,6 +1599,13 @@ is_posix_builtin (name)
return (_find_in_table (name, posix_builtins));
}
+static int

View File

@ -1,6 +1,7 @@
--- bash-3.0/tests/read.tests.tty-tests 2004-03-14 22:18:02.000000000 +0000
+++ bash-3.0/tests/read.tests 2004-09-10 16:41:32.746099025 +0100
@@ -82,9 +82,6 @@
diff -up bash-4.0/tests/read.tests.tty_tests bash-4.0/tests/read.tests
--- bash-4.0/tests/read.tests.tty_tests 2008-09-06 19:09:11.000000000 +0200
+++ bash-4.0/tests/read.tests 2009-01-21 16:21:48.000000000 +0100
@@ -82,9 +82,6 @@ echo " foo" | { IFS=$':' ; read line; re
# test read -d delim behavior
${THIS_SH} ./read1.sub
@ -10,19 +11,20 @@
# test read -n nchars behavior
${THIS_SH} ./read3.sub
--- bash-3.0/tests/read.right.tty-tests 2004-03-14 22:18:16.000000000 +0000
+++ bash-3.0/tests/read.right 2004-09-10 16:41:32.751098072 +0100
@@ -33,14 +33,6 @@
diff -up bash-4.0/tests/read.right.tty_tests bash-4.0/tests/read.right
--- bash-4.0/tests/read.right.tty_tests 2008-09-06 19:10:14.000000000 +0200
+++ bash-4.0/tests/read.right 2009-01-21 16:30:03.000000000 +0100
@@ -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
-4
-1
-4
-./read2.sub: line 13: read: -3: invalid timeout specification
-1
-4
-
-abcde
./read3.sub: line 4: read: -1: invalid number
abc

View File

@ -1,17 +1,7 @@
--- bash-3.2/builtins/ulimit.def.ulimit-m 2006-03-23 20:51:51.000000000 +0000
+++ bash-3.2/builtins/ulimit.def 2007-07-04 16:42:12.000000000 +0100
@@ -38,7 +38,7 @@
-f the maximum size of files written by the shell and its children
-i the maximum number of pending signals
-l the maximum size a process may lock into memory
- -m the maximum resident set size
+ -m the maximum resident set size (has no effect on Linux)
-n the maximum number of open file descriptors
-p the pipe buffer size
-q the maximum number of bytes in POSIX message queues
--- bash-3.2/doc/bash.1.ulimit-m 2007-07-04 16:41:59.000000000 +0100
+++ bash-3.2/doc/bash.1 2007-07-04 16:42:12.000000000 +0100
@@ -8545,7 +8545,7 @@
diff -up bash-4.0/doc/bash.1.ulimit-m bash-4.0/doc/bash.1
--- bash-4.0/doc/bash.1.ulimit-m 2009-01-21 16:31:19.000000000 +0100
+++ bash-4.0/doc/bash.1 2009-01-21 16:31:19.000000000 +0100
@@ -9044,7 +9044,7 @@ The maximum number of pending signals
The maximum size that may be locked into memory
.TP
.B \-m
@ -20,3 +10,15 @@
.TP
.B \-n
The maximum number of open file descriptors (most systems do not
diff -up bash-4.0/builtins/ulimit.def.ulimit-m bash-4.0/builtins/ulimit.def
--- bash-4.0/builtins/ulimit.def.ulimit-m 2009-01-04 20:32:23.000000000 +0100
+++ bash-4.0/builtins/ulimit.def 2009-01-21 16:36:12.000000000 +0100
@@ -40,7 +40,7 @@ Options:
-f the maximum size of files written by the shell and its children
-i the maximum number of pending signals
-l the maximum size a process may lock into memory
- -m the maximum resident set size
+ -m the maximum resident set size (has no effect on Linux)
-n the maximum number of open file descriptors
-p the pipe buffer size
-q the maximum number of bytes in POSIX message queues

223
bash.spec
View File

@ -1,94 +1,43 @@
Version: 3.2
Version: 4.0
Name: bash
Summary: The GNU Bourne Again shell version %{version}
Release: 33%{?dist}
Release: rc1.1%{?dist}
Group: System Environment/Shells
License: GPLv2+
Url: http://www.gnu.org/software/bash
Source0: ftp://ftp.gnu.org/gnu/bash/bash-%{version}.tar.gz
Source2: ftp://ftp.gnu.org/gnu/bash/bash-doc-%{version}.tar.gz
Source3: dot-bashrc
Source4: dot-bash_profile
Source5: dot-bash_logout
# For now there isn't any doc
#Source2: ftp://ftp.gnu.org/gnu/bash/bash-doc-%{version}.tar.gz
Source1: dot-bashrc
Source2: dot-bash_profile
Source3: dot-bash_logout
# Official upstream patches
Patch1: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-001
Patch2: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-002
Patch3: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-003
Patch4: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-004
Patch5: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-005
Patch6: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-006
Patch7: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-007
Patch8: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-008
Patch9: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-009
Patch10: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-010
Patch11: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-011
Patch12: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-012
Patch13: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-013
Patch14: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-014
Patch15: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-015
Patch16: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-016
Patch17: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-017
Patch18: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-018
Patch19: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-019
Patch20: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-020
Patch21: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-021
Patch22: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-022
Patch23: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-023
Patch24: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-024
Patch25: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-025
Patch26: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-026
Patch27: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-027
Patch28: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-028
Patch29: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-029
Patch30: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-030
Patch31: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-031
Patch32: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-032
Patch33: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-033
Patch34: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-034
Patch35: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-035
Patch36: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-036
Patch37: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-037
Patch38: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-038
Patch39: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-039
Patch40: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-040
Patch41: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-041
Patch42: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-042
Patch43: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-043
Patch44: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-044
Patch45: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-045
Patch46: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-046
Patch47: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-047
Patch48: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-048
# not any :)
# Other patches
Patch100: bash-2.03-paths.patch
Patch101: bash-2.02-security.patch
Patch102: bash-2.03-profile.patch
Patch103: bash-requires.patch
Patch107: bash-2.05a-interpreter.patch
Patch102: bash-2.03-paths.patch
Patch103: bash-2.03-profile.patch
Patch104: bash-2.05a-interpreter.patch
Patch105: bash-2.05b-debuginfo.patch
Patch106: bash-2.05b-manso.patch
Patch107: bash-2.05b-pgrp_sync.patch
Patch108: bash-2.05b-readline-oom.patch
Patch114: bash-2.05b-xcc.patch
Patch115: bash-2.05b-pgrp_sync.patch
Patch116: bash-2.05b-manso.patch
Patch117: bash-2.05b-debuginfo.patch
Patch109: bash-2.05b-xcc.patch
Patch110: bash-3.2-audit.patch
#Patch111: bash-3.2-rng.patch
Patch112: bash-3.2-ssh_source_bash.patch
Patch113: bash-bashbug.patch
Patch114: bash-cond-rmatch.patch
Patch115: bash-infotags.patch
Patch116: bash-requires.patch
Patch117: bash-setlocale.patch
Patch118: bash-tty-tests.patch
Patch126: bash-setlocale.patch
Patch130: bash-infotags.patch
Patch131: bash-cond-rmatch.patch
Patch132: bash-ulimit-m.patch
Patch133: bash-3.2-rng.patch
Patch136: bash-3.2-344411.patch
Patch137: bash-3.2-190350.patch
Patch138: bash-3.2-comp_wordbreaks.patch
Patch139: bash-3.2-manpage.patch
Patch140: bash-3.2-man-page-suspend.patch
Patch141: bash-3.2-patch035.patch
Patch142: bash-3.2-execve_catch_signals.patch
Patch143: bash-3.2-ssh_source_bash.patch
Patch144: bash-3.2-command_not_found.patch
Patch145: bash-3.2-audit.patch
Patch146: bash-3.2-fc.patch
Patch119: bash-ulimit-m.patch
Patch120: bash-4.0-no_debug_output.patch
Requires(post): ncurses-libs
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@ -107,92 +56,37 @@ compliance over previous versions.
%prep
%setup -q -a 2
# patching official upstream patches
#%patch141 -p0 -b .patch035
#%setup -q -a 2
%setup -q
# Official upstream patches
%patch1 -p0 -b .001
%patch2 -p0 -b .002
%patch3 -p0 -b .003
%patch4 -p0 -b .004
%patch5 -p0 -b .005
%patch6 -p0 -b .006
%patch7 -p0 -b .007
%patch8 -p0 -b .008
%patch9 -p0 -b .009
%patch10 -p0 -b .010
%patch11 -p0 -b .011
%patch12 -p0 -b .012
%patch13 -p0 -b .013
%patch14 -p0 -b .014
%patch15 -p0 -b .015
%patch16 -p0 -b .016
%patch17 -p0 -b .017
%patch18 -p0 -b .018
%patch19 -p0 -b .019
%patch20 -p0 -b .020
%patch21 -p0 -b .021
%patch22 -p0 -b .022
%patch23 -p0 -b .023
%patch24 -p0 -b .024
%patch25 -p0 -b .025
%patch26 -p0 -b .026
%patch27 -p0 -b .027
%patch28 -p0 -b .028
%patch29 -p0 -b .029
%patch30 -p0 -b .030
%patch31 -p0 -b .031
%patch32 -p0 -b .032
%patch33 -p0 -b .033
%patch34 -p0 -b .034
%patch35 -p0 -b .035
%patch36 -p0 -b .036
%patch37 -p0 -b .037
%patch38 -p0 -b .038
%patch39 -p0 -b .039
%patch40 -p0 -b .040
%patch41 -p0 -b .041
%patch42 -p0 -b .042
%patch43 -p0 -b .043
%patch44 -p0 -b .044
%patch45 -p0 -b .045
%patch46 -p0 -b .046
%patch47 -p0 -b .047
%patch48 -p0 -b .048
# Other patches
%patch100 -p1 -b .paths
%patch101 -p1 -b .security
%patch102 -p1 -b .profile
%patch103 -p1 -b .requires
%patch107 -p1 -b .interpreter
%patch108 -p1 -b .readline-oom
%patch114 -p1 -b .xcc
%patch115 -p1 -b .pgrp_sync
%patch116 -p1 -b .manso
%patch117 -p1 -b .debuginfo
%patch118 -p1 -b .tty-tests
%patch126 -p1 -b .setlocale
%patch130 -p1 -b .infotags
%patch131 -p1 -b .cond-rmatch
%patch132 -p1 -b .ulimit-m
%patch133 -p1 -b .rng.patch
%patch136 -p1 -b .344411
%patch137 -p1 -b .190350
%patch138 -p1 -b .comp_wordbreaks
%patch139 -p1 -b .manpage
%patch140 -p1 -b .man-page-suspend
%patch142 -p1 -b .execve_catch_signals
%patch143 -p1 -b .ssh_source_bash
%patch144 -p1 -b .command_not_found
%patch145 -p1 -b .audit
%patch146 -p1 -b .fc
%patch102 -p1 -b .paths
%patch103 -p1 -b .profile
%patch104 -p1 -b .interpreter
%patch105 -p1 -b .debuginfo
%patch106 -p1 -b .manso
%patch107 -p1 -b .pgrp_sync
%patch108 -p1 -b .readline_oom
%patch109 -p1 -b .xcc
%patch110 -p1 -b .audit
#%patch111 -p1 -b .rng
%patch112 -p1 -b .ssh_source_bash
%patch113 -p1 -b .bashbug
%patch114 -p1 -b .cond_rmatch
%patch115 -p1 -b .infotags
%patch116 -p1 -b .requires
%patch117 -p1 -b .setlocale
%patch118 -p1 -b .tty_tests
%patch119 -p1 -b .ulimit-m
%patch120 -p1 -b .no_debug_output
echo %{version} > _distribution
echo %{release} > _patchlevel
%build
chmod a+x ./configure
autoconf
%configure --with-bash-malloc=no --with-afs
make "CPPFLAGS=-D_GNU_SOURCE `getconf LFS_CFLAGS`"
@ -243,8 +137,10 @@ popd
# Link bash man page to sh so that man sh works.
ln -s bash.1 ${RPM_BUILD_ROOT}%{_mandir}/man1/sh.1
# Not for printf (conflict with coreutils)
# Not for printf, true and false (conflict with coreutils)
rm -f $RPM_BUILD_ROOT/%{_mandir}/man1/printf.1
rm -f $RPM_BUILD_ROOT/%{_mandir}/man1/true.1
rm -f $RPM_BUILD_ROOT/%{_mandir}/man1/false.1
pushd $RPM_BUILD_ROOT
mkdir ./bin
@ -253,9 +149,9 @@ ln -sf bash ./bin/sh
rm -f .%{_infodir}/dir
popd
mkdir -p $RPM_BUILD_ROOT/etc/skel
install -c -m644 %SOURCE3 $RPM_BUILD_ROOT/etc/skel/.bashrc
install -c -m644 %SOURCE4 $RPM_BUILD_ROOT/etc/skel/.bash_profile
install -c -m644 %SOURCE5 $RPM_BUILD_ROOT/etc/skel/.bash_logout
install -c -m644 %SOURCE1 $RPM_BUILD_ROOT/etc/skel/.bashrc
install -c -m644 %SOURCE2 $RPM_BUILD_ROOT/etc/skel/.bash_profile
install -c -m644 %SOURCE3 $RPM_BUILD_ROOT/etc/skel/.bash_logout
LONG_BIT=$(getconf LONG_BIT)
mv $RPM_BUILD_ROOT%{_bindir}/bashbug \
$RPM_BUILD_ROOT%{_bindir}/bashbug-"${LONG_BIT}"
@ -316,7 +212,7 @@ fi
%defattr(-,root,root)
%doc CHANGES COMPAT NEWS NOTES POSIX
%doc doc/FAQ doc/INTRO doc/article.ms
%doc -P examples/bashdb/ examples/functions/ examples/misc/
%doc -P examples/obashdb/ examples/functions/ examples/misc/
%doc -P examples/scripts.noah/ examples/scripts.v2/ examples/scripts/
%doc -P examples/startup-files/ examples/complete/
%config(noreplace) /etc/skel/.b*
@ -326,9 +222,14 @@ fi
%{_infodir}/bash.info*
%{_mandir}/*/*
%{_mandir}/*/..1*
%doc doc/*.ps doc/*.0 doc/*.html doc/article.txt
# For now there isn't any doc
#%doc doc/*.ps doc/*.0 doc/*.html doc/article.txt
%changelog
* Wed Jan 21 2009 Roman Rakus <rrakus@redhat.com> - 4.0-rc1.1
- Bump to upstream bash-4.0-rc1
* Mon Dec 15 2008 Roman Rakus <rrakus@redhat.com> - 3.2-33
- fc builtin fix
Resolves: #438841

View File

@ -1,2 +1 @@
00bfa16d58e034e3c2aa27f390390d30 bash-3.2.tar.gz
0e904cb46ca873fcfa65df19b024bec9 bash-doc-3.2.tar.gz
463e18d547555dd570695842a21dbc75 bash-4.0.tar.gz