diff --git a/audit-patch b/audit-patch deleted file mode 100644 index 093128e..0000000 --- a/audit-patch +++ /dev/null @@ -1,107 +0,0 @@ -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 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 ]]) -+ - 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 */ - -+#if defined (HAVE_DECL_AUDIT_USER_TTY) -+# include -+# include -+# include -+#endif -+ - /* System-specific feature definitions and include files. */ - #include "rldefs.h" - #include "rlmbutil.h" -@@ -297,7 +303,47 @@ 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_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 * -@@ -348,6 +394,11 @@ readline (prompt) - RL_SETSTATE (RL_STATE_CALLBACK); - #endif - -+#if defined (HAVE_DECL_AUDIT_USER_TTY) -+ if (value != NULL) -+ audit_tty (value); -+#endif -+ - return (value); - } - diff --git a/audit-rl-patch b/audit-rl-patch deleted file mode 100644 index cb8e323..0000000 --- a/audit-rl-patch +++ /dev/null @@ -1,99 +0,0 @@ ---- readline-6.2/config.h.in -+++ readline-6.2/config.h.in 2013-01-09 09:31:06.833952652 +0000 -@@ -251,6 +251,9 @@ - - #undef CTYPE_NON_ASCII - -+/* Define if you have and it defines AUDIT_USER_TTY */ -+#undef HAVE_DECL_AUDIT_USER_TTY -+ - /* modify settings or make new ones based on what autoconf tells us. */ - - /* Ultrix botches type-ahead when switching from canonical to ---- readline-6.2/configure.in -+++ readline-6.2/configure.in 2013-01-09 09:33:09.125452625 +0000 -@@ -159,6 +159,8 @@ AC_CHECK_HEADERS(sys/ptem.h,,, - - AC_SYS_LARGEFILE - -+AC_CHECK_DECLS([AUDIT_USER_TTY],,, [[#include ]]) -+ - BASH_SYS_SIGNAL_VINTAGE - BASH_SYS_REINSTALL_SIGHANDLERS - ---- readline-6.2/readline.c -+++ readline-6.2/readline.c 2009-01-21 16:40:12.000000000 +0000 -@@ -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" -@@ -297,7 +303,47 @@ 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_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 * -@@ -348,6 +394,11 @@ readline (prompt) - RL_SETSTATE (RL_STATE_CALLBACK); - #endif - -+#if defined (HAVE_DECL_AUDIT_USER_TTY) -+ if (value != NULL) -+ audit_tty (value); -+#endif -+ - return (value); - } - diff --git a/bash-3.0-decl.patch b/bash-3.0-decl.patch deleted file mode 100644 index cfa4485..0000000 --- a/bash-3.0-decl.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- support/printenv.c -+++ support/printenv.c 2005-09-19 13:09:08.000000000 +0000 -@@ -30,6 +30,7 @@ - - #include "bashansi.h" - -+#include - extern char **environ; - - int diff --git a/bash-4.2-error-getpwd.patch b/bash-4.2-error-getpwd.patch deleted file mode 100644 index a415a1a..0000000 --- a/bash-4.2-error-getpwd.patch +++ /dev/null @@ -1,16 +0,0 @@ -Backport of the corrected error message for a failing getpwd (bnc#895475) ---- - po/de.po | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- po/de.po -+++ po/de.po 2014-09-15 08:46:03.482235134 +0000 -@@ -267,7 +267,7 @@ msgstr "Fehler beim Ermitteln der Termin - #: builtins/common.c:563 - #, c-format - msgid "%s: error retrieving current directory: %s: %s\n" --msgstr "%s: Kann das nicht aktuelle Verzeichnis wiederfinden: %s: %s\n" -+msgstr "%s: Kann das aktuelle Verzeichnis nicht wiederfinden: %s: %s\n" - - #: builtins/common.c:629 builtins/common.c:631 - #, c-format diff --git a/bash-4.2-nsec.dif b/bash-4.2-nsec.dif deleted file mode 100644 index a1e60bf..0000000 --- a/bash-4.2-nsec.dif +++ /dev/null @@ -1,20 +0,0 @@ ---- test.c -+++ test.c 2012-03-06 11:14:00.149934027 +0000 -@@ -309,8 +309,17 @@ filecomp (s, t, op) - - switch (op) - { -+#if defined(_BSD_SOURCE) || defined(_SVID_SOURCE) || (defined(_XOPEN_SOURCE) && ((_XOPEN_SOURCE - 0) >= 700)) || (defined(_POSIX_C_SOURCE) && ((_POSIX_C_SOURCE - 0) >= 200809L)) -+# define st_mtimcmp(t1, t2, CMP) \ -+ (((t1).st_mtim.tv_sec == (t2).st_mtim.tv_sec) ? \ -+ ((t1).st_mtim.tv_nsec CMP (t2).st_mtim.tv_nsec) : \ -+ ((t1).st_mtim.tv_sec CMP (t2).st_mtim.tv_sec)) -+ case OT: return (r1 < r2 || (r2 == 0 && st_mtimcmp(st1, st2, <))); -+ case NT: return (r1 > r2 || (r1 == 0 && st_mtimcmp(st1, st2, >))); -+#else - case OT: return (r1 < r2 || (r2 == 0 && st1.st_mtime < st2.st_mtime)); - case NT: return (r1 > r2 || (r1 == 0 && st1.st_mtime > st2.st_mtime)); -+#endif - case EF: return (same_file (s, t, &st1, &st2)); - } - return (FALSE); diff --git a/bash-4.2-patches.tar.bz2 b/bash-4.2-patches.tar.bz2 deleted file mode 100644 index 2d66a42..0000000 --- a/bash-4.2-patches.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:951cdc3d800ad2d4ef928250ffeeae7bd6b4c40993c9063c339cfeac45dc30fc -size 32638 diff --git a/bash-4.2-sigrestart.patch b/bash-4.2-sigrestart.patch deleted file mode 100644 index 58a4874..0000000 --- a/bash-4.2-sigrestart.patch +++ /dev/null @@ -1,33 +0,0 @@ ---- jobs.c -+++ jobs.c 2008-01-08 18:10:16.000000000 +0000 -@@ -2454,7 +2454,11 @@ wait_for (pid) - act.sa_handler = SIG_DFL; - sigemptyset (&act.sa_mask); - sigemptyset (&oact.sa_mask); -+# if defined(MUST_REINSTALL_SIGHANDLERS) - act.sa_flags = 0; -+# else -+ act.sa_flags = SA_RESTART; -+# endif - sigaction (SIGCHLD, &act, &oact); - # endif - queue_sigchld = 1; ---- sig.c -+++ sig.c 2011-01-14 13:10:48.591925968 +0000 -@@ -668,6 +668,16 @@ set_signal_handler (sig, handler) - if we take the time to reap children */ - if (sig == SIGCHLD) - act.sa_flags |= SA_RESTART; /* XXX */ -+#if !defined(MUST_REINSTALL_SIGHANDLERS) -+ if (sig != SIGALRM && handler != (termsig_sighandler)) -+ act.sa_flags |= SA_RESTART; /* XXX */ -+ if (handler == (trap_handler)) -+ act.sa_flags |= SA_NODEFER; /* XXX */ -+ if (handler == (termsig_sighandler)) -+ act.sa_flags |= SA_NODEFER; /* XXX */ -+ if (sig == SIGTSTP || sig == SIGTTOU || sig == SIGTTIN || sig == SIGCONT) -+ act.sa_flags |= SA_NODEFER; /* XXX */ -+#endif - - sigemptyset (&act.sa_mask); - sigemptyset (&oact.sa_mask); diff --git a/bash-4.2-winch.dif b/bash-4.2-winch.dif deleted file mode 100644 index 24a8d1b..0000000 --- a/bash-4.2-winch.dif +++ /dev/null @@ -1,25 +0,0 @@ ---- jobs.c -+++ jobs.c 2013-07-12 12:19:03.000000000 +0000 -@@ -219,7 +219,7 @@ int already_making_children = 0; - - /* If this is non-zero, $LINES and $COLUMNS are reset after every process - exits from get_tty_state(). */ --int check_window_size; -+int check_window_size = 1; - - /* Functions local to this file. */ - ---- builtins/shopt.def -+++ builtins/shopt.def 2006-03-27 12:15:25.000000000 +0000 -@@ -279,9 +279,9 @@ reset_shopt_options () - allow_null_glob_expansion = glob_dot_filenames = 0; - cdable_vars = mail_warning = 0; - no_exit_on_failed_exec = print_shift_error = 0; -- check_hashed_filenames = cdspelling = expand_aliases = check_window_size = 0; -+ check_hashed_filenames = cdspelling = expand_aliases = 0; - -- source_uses_path = promptvars = 1; -+ check_window_size = source_uses_path = promptvars = 1; - - #if defined (EXTENDED_GLOB) - extended_glob = 0; diff --git a/bash-4.2.tar.gz b/bash-4.2.tar.gz deleted file mode 100644 index c3d119e..0000000 --- a/bash-4.2.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a27a1179ec9c0830c65c6aa5d7dab60f7ce1a2a608618570f96bfa72e95ab3d8 -size 7009201 diff --git a/bash-4.2-2.4.4.patch b/bash-4.3-2.4.4.patch similarity index 55% rename from bash-4.2-2.4.4.patch rename to bash-4.3-2.4.4.patch index e32e672..a31dd6f 100644 --- a/bash-4.2-2.4.4.patch +++ b/bash-4.3-2.4.4.patch @@ -1,6 +1,6 @@ --- array.c +++ array.c 2006-11-14 09:54:22.000000000 +0000 -@@ -922,7 +922,7 @@ char *s, *sep; +@@ -940,7 +940,7 @@ char *s, *sep; * To make a running version, compile -DTEST_ARRAY and link with: * xmalloc.o syntax.o lib/malloc/libmalloc.a lib/sh/libsh.a */ @@ -41,7 +41,7 @@ signal_is_trapped (s) --- jobs.c +++ jobs.c 2001-05-02 16:20:31.000000000 +0000 -@@ -1769,6 +1769,15 @@ make_child (command, async_p) +@@ -1783,6 +1783,15 @@ make_child (command, async_p) pid_t mypid; mypid = getpid (); @@ -57,44 +57,9 @@ #if defined (BUFFERED_INPUT) /* Close default_buffered_input if it's > 0. We don't close it if it's 0 because that's the file descriptor used when redirecting input, ---- quit.h -+++ quit.h 2006-11-14 09:43:18.000000000 +0000 -@@ -21,9 +21,13 @@ - #if !defined (_QUIT_H_) - #define _QUIT_H_ - -+#define __need_sig_atomic_t -+#include -+#undef __need_sig_atomic_t -+ - /* Non-zero means SIGINT has already ocurred. */ --extern volatile int interrupt_state; --extern volatile int terminating_signal; -+extern volatile sig_atomic_t interrupt_state; -+extern volatile sig_atomic_t terminating_signal; - - /* Macro to call a great deal. SIGINT just sets the interrupt_state variable. - When it is safe, put QUIT in the code, and the "interrupt" will take --- sig.c +++ sig.c 2006-11-14 09:53:51.000000000 +0000 -@@ -66,13 +66,13 @@ extern int history_lines_this_session; - extern void initialize_siglist (); - - /* Non-zero after SIGINT. */ --volatile int interrupt_state = 0; -+volatile sig_atomic_t interrupt_state = 0; - - /* Non-zero after SIGWINCH */ --volatile int sigwinch_received = 0; -+volatile sig_atomic_t sigwinch_received = 0; - - /* Set to the value of any terminating signal received. */ --volatile int terminating_signal = 0; -+volatile sig_atomic_t terminating_signal = 0; - - /* The environment at the top-level R-E loop. We use this in - the case of error return. */ -@@ -84,10 +84,10 @@ sigset_t top_level_mask; +@@ -92,10 +92,10 @@ sigset_t top_level_mask; #endif /* JOB_CONTROL */ /* When non-zero, we throw_to_top_level (). */ @@ -108,22 +73,14 @@ #if defined (SIGWINCH) static SigHandler *old_winch = (SigHandler *)SIG_DFL; --- sig.h -+++ sig.h 2006-11-14 09:49:32.000000000 +0000 -@@ -108,11 +108,15 @@ do { \ ++++ sig.h 2014-04-17 09:42:15.030235662 +0000 +@@ -111,8 +111,8 @@ do { \ + extern volatile sig_atomic_t sigwinch_received; + extern volatile sig_atomic_t sigterm_received; - #endif /* JOB_CONTROL */ - -+#define __need_sig_atomic_t -+#include -+#undef __need_sig_atomic_t -+ - /* Extern variables */ --extern volatile int sigwinch_received; -+extern volatile sig_atomic_t sigwinch_received; - --extern int interrupt_immediately; +-extern int interrupt_immediately; /* no longer used */ -extern int terminate_immediately; -+extern volatile sig_atomic_t interrupt_immediately; ++extern volatile sig_atomic_t interrupt_immediately; /* no longer used */ +extern volatile sig_atomic_t terminate_immediately; /* Functions from sig.c. */ diff --git a/bash-4.3-decl.patch b/bash-4.3-decl.patch new file mode 100644 index 0000000..3e72597 --- /dev/null +++ b/bash-4.3-decl.patch @@ -0,0 +1,10 @@ +--- support/printenv.c ++++ support/printenv.c 2014-04-17 09:46:25.874236036 +0000 +@@ -31,6 +31,7 @@ + #include "bashansi.h" + #include /* puts */ + ++#include + extern char **environ; + + int diff --git a/bash-4.2-extra-import-func.patch b/bash-4.3-extra-import-func.patch similarity index 75% rename from bash-4.2-extra-import-func.patch rename to bash-4.3-extra-import-func.patch index 0bb3193..55c6cf9 100644 --- a/bash-4.2-extra-import-func.patch +++ b/bash-4.3-extra-import-func.patch @@ -7,7 +7,7 @@ --- shell.c +++ shell.c 2014-09-25 20:11:51.000000000 +0000 -@@ -225,6 +225,7 @@ int posixly_correct = 1; /* Non-zero mea +@@ -230,6 +230,7 @@ int posixly_correct = 1; /* Non-zero mea #else int posixly_correct = 0; /* Non-zero means posix.2 superset. */ #endif @@ -15,7 +15,7 @@ /* Some long-winded argument names. These are obviously new. */ #define Int 1 -@@ -244,6 +245,7 @@ static const struct { +@@ -249,6 +250,7 @@ static const struct { { "help", Int, &want_initial_help, (char **)0x0 }, { "init-file", Charp, (int *)0x0, &bashrc_file }, { "login", Int, &make_login_shell, (char **)0x0 }, @@ -24,8 +24,8 @@ { "noprofile", Int, &no_profile, (char **)0x0 }, { "norc", Int, &no_rc, (char **)0x0 }, --- variables.c -+++ variables.c 2014-09-30 11:54:58.994735738 +0000 -@@ -105,6 +105,7 @@ extern time_t shell_start_time; ++++ variables.c 2014-10-06 08:36:41.299837915 +0000 +@@ -110,6 +110,7 @@ extern time_t shell_start_time; extern int assigning_in_environment; extern int executing_builtin; extern int funcnest_max; @@ -33,15 +33,15 @@ #if defined (READLINE) extern int no_line_editing; -@@ -317,6 +318,7 @@ initialize_shell_variables (env, privmod +@@ -328,6 +329,7 @@ initialize_shell_variables (env, privmod char *name, *string, *temp_string; - int c, char_index, string_index, string_length; + int c, char_index, string_index, string_length, ro; SHELL_VAR *temp_var; + int skipped_import; create_variable_tables (); -@@ -341,9 +343,12 @@ initialize_shell_variables (env, privmod +@@ -352,9 +354,12 @@ initialize_shell_variables (env, privmod temp_var = (SHELL_VAR *)NULL; @@ -50,12 +50,12 @@ + /* If exported function, define it now. Don't import functions from the environment in privileged mode. */ -- if (privmode == 0 && read_but_dont_execute == 0 && -+ if (skipped_import == 0 && privmode == 0 && read_but_dont_execute == 0 && - STREQN (BASHFUNC_PREFIX, name, BASHFUNC_PREFLEN) && - STREQ (BASHFUNC_SUFFIX, name + char_index - BASHFUNC_SUFFLEN) && +- if (privmode == 0 && read_but_dont_execute == 0 && ++ if (skipped_import == 0 && privmode == 0 && read_but_dont_execute == 0 && + STREQN (BASHFUNC_PREFIX, name, BASHFUNC_PREFLEN) && + STREQ (BASHFUNC_SUFFIX, name + char_index - BASHFUNC_SUFFLEN) && STREQN ("() {", string, 4)) -@@ -356,6 +361,12 @@ initialize_shell_variables (env, privmod +@@ -367,6 +372,12 @@ initialize_shell_variables (env, privmod tname = name + BASHFUNC_PREFLEN; /* start of func name */ tname[namelen] = '\0'; /* now tname == func name */ @@ -69,16 +69,16 @@ temp_string = (char *)xmalloc (namelen + string_length + 2); --- builtins/shopt.def -+++ builtins/shopt.def 2014-09-30 11:58:13.714235365 +0000 -@@ -89,6 +89,7 @@ extern int check_jobs_at_exit; - extern int autocd; ++++ builtins/shopt.def 2014-09-30 11:58:14.000000000 +0000 +@@ -90,6 +90,7 @@ extern int autocd; extern int glob_star; + extern int glob_asciirange; extern int lastpipe_opt; +extern int import_functions; #if defined (EXTENDED_GLOB) extern int extended_glob; -@@ -186,6 +187,7 @@ static struct { +@@ -192,6 +193,7 @@ static struct { { "hostcomplete", &perform_hostname_completion, shopt_enable_hostname_completion }, #endif { "huponexit", &hup_on_exit, (shopt_set_func_t *)NULL }, @@ -87,8 +87,8 @@ { "lastpipe", &lastpipe_opt, (shopt_set_func_t *)NULL }, #if defined (HISTORY) --- doc/bash.1 -+++ doc/bash.1 2014-09-30 12:09:39.698234623 +0000 -@@ -235,6 +235,13 @@ The shell becomes restricted (see ++++ doc/bash.1 2014-09-30 12:09:40.000000000 +0000 +@@ -240,6 +240,13 @@ The shell becomes restricted (see .B "RESTRICTED SHELL" below). .TP diff --git a/bash-4.0-headers.dif b/bash-4.3-headers.dif similarity index 89% rename from bash-4.0-headers.dif rename to bash-4.3-headers.dif index 3146fb6..7911b2c 100644 --- a/bash-4.0-headers.dif +++ b/bash-4.3-headers.dif @@ -1,5 +1,5 @@ --- examples/loadables/Makefile.in -+++ examples/loadables/Makefile.in 2009-06-09 16:16:25.000000000 +0000 ++++ examples/loadables/Makefile.in 2014-04-17 10:10:12.450235258 +0000 @@ -28,6 +28,9 @@ includedir = @includedir@ datarootdir = @datarootdir@ @@ -27,7 +27,7 @@ # # These values are generated for configure by ${topdir}/support/shobj-conf. # If your system is not supported by that script, but includes facilities for -@@ -79,20 +92,45 @@ INC = -I. -I.. -I$(topdir) -I$(topdir)/l +@@ -79,20 +92,46 @@ INC = -I. -I.. -I$(topdir) -I$(topdir)/l -I$(BASHINCDIR) -I$(BUILD_DIR) -I$(LIBBUILD) \ -I$(BUILD_DIR)/builtins $(INTL_INC) @@ -40,9 +40,9 @@ +SUPPORT_SRC = $(topdir)/support/ - ALLPROG = print sleep finfo logname basename dirname \ + ALLPROG = print truefalse sleep pushd finfo logname basename dirname \ tty pathchk tee head mkdir rmdir printenv id whoami \ - uname sync push ln unlink cut realpath getconf strftime mypid + uname sync push ln unlink realpath strftime mypid OTHERPROG = necho hello cat +HEADERS = @@ -53,6 +53,7 @@ +dependlist: template.d +-include template.d ++ +install-headers: HEADERS = $(sort $(filter %.h,$(realpath $^))) +install-headers: + @${SHELL} $(SUPPORT_SRC)mkinstalldirs $(DESTDIR)$(includedir)/$(Name)/$(Version)/builtins diff --git a/bash-4.0-loadables.dif b/bash-4.3-loadables.dif similarity index 85% rename from bash-4.0-loadables.dif rename to bash-4.3-loadables.dif index 79e5709..7ccc8a7 100644 --- a/bash-4.0-loadables.dif +++ b/bash-4.3-loadables.dif @@ -1,17 +1,6 @@ ---- examples/loadables/Makefile.in -+++ examples/loadables/Makefile.in 2006-09-25 11:31:55.000000000 +0000 -@@ -83,7 +83,7 @@ INC = -I. -I.. -I$(topdir) -I$(topdir)/l - $(SHOBJ_CC) $(SHOBJ_CFLAGS) $(CCFLAGS) $(INC) -c -o $@ $< - - --ALLPROG = print truefalse sleep pushd finfo logname basename dirname \ -+ALLPROG = print sleep finfo logname basename dirname \ - tty pathchk tee head mkdir rmdir printenv id whoami \ - uname sync push ln unlink cut realpath getconf strftime mypid - OTHERPROG = necho hello cat --- examples/loadables/basename.c +++ examples/loadables/basename.c 2006-09-25 11:49:31.000000000 +0000 -@@ -9,10 +9,13 @@ +@@ -27,10 +27,13 @@ #endif #include @@ -40,29 +29,6 @@ #ifndef errno extern int errno; ---- examples/loadables/cut.c -+++ examples/loadables/cut.c 2006-09-25 12:00:21.000000000 +0000 -@@ -60,8 +60,10 @@ static const char sccsid[] = "@(#)cut.c - # include - #endif - --#include "builtins.h" - #include "shell.h" -+#include "builtins.h" -+#include "builtins/builtext.h" -+#include "builtins/common.h" - #include "bashgetopt.h" - #include "common.h" - -@@ -244,7 +246,7 @@ c_cut(fp, fname) - pos = positions + 1; - for (col = maxval; col; --col) { - if ((ch = getc(fp)) == EOF) -- return; -+ return (0); - if (ch == '\n') - break; - if (*pos++) --- examples/loadables/dirname.c +++ examples/loadables/dirname.c 2006-09-25 11:49:38.000000000 +0000 @@ -27,10 +27,13 @@ @@ -82,7 +48,7 @@ { --- examples/loadables/finfo.c +++ examples/loadables/finfo.c 2006-09-25 11:48:52.000000000 +0000 -@@ -20,6 +20,8 @@ +@@ -38,6 +38,8 @@ #include "bashansi.h" #include "shell.h" #include "builtins.h" @@ -91,7 +57,7 @@ #include "common.h" #ifndef errno -@@ -81,7 +83,7 @@ int argc; +@@ -99,7 +101,7 @@ int argc; char **argv; { register int i; @@ -100,7 +66,7 @@ sh_optind = 0; /* XXX */ prog = base_pathname(argv[0]); -@@ -174,7 +176,7 @@ int m; +@@ -192,7 +194,7 @@ int m; return (m & (S_IRWXU|S_IRWXG|S_IRWXO|S_ISUID|S_ISGID)); } @@ -109,7 +75,7 @@ perms(m) int m; { -@@ -218,7 +220,7 @@ int m; +@@ -236,7 +238,7 @@ int m; printf ("u=%s,g=%s,o=%s", ubits, gbits, obits); } @@ -118,7 +84,7 @@ printmode(mode) int mode; { -@@ -313,13 +315,13 @@ int flags; +@@ -331,13 +333,13 @@ int flags; else printf("%ld\n", st->st_ctime); } else if (flags & OPT_DEV) @@ -136,7 +102,7 @@ else if (flags & OPT_LNKNAM) { #ifdef S_ISLNK b = xmalloc(4096); -@@ -369,7 +371,6 @@ finfo_builtin(list) +@@ -387,7 +389,6 @@ finfo_builtin(list) { int c, r; char **v; @@ -144,44 +110,6 @@ v = make_builtin_argv (list, &c); r = finfo_main (c, v); ---- examples/loadables/getconf.c -+++ examples/loadables/getconf.c 2006-09-25 12:02:33.000000000 +0000 -@@ -65,6 +65,8 @@ - #include "bashansi.h" - #include "shell.h" - #include "builtins.h" -+#include "builtins/builtext.h" -+#include "builtins/common.h" - #include "stdc.h" - #include "common.h" - #include "bashgetopt.h" -@@ -1119,8 +1121,6 @@ static const struct conf_variable conf_t - { NULL } - }; - --static int num_getconf_variables = sizeof(conf_table) / sizeof(struct conf_variable) - 1; -- - extern char *this_command_name; - extern char **make_builtin_argv (); - -@@ -1133,8 +1133,7 @@ int - getconf_builtin (list) - WORD_LIST *list; - { -- int c, r, opt, aflag; -- char **v; -+ int r, opt, aflag; - - aflag = 0; - reset_internal_getopt(); -@@ -1169,7 +1168,6 @@ static void - getconf_help() - { - const struct conf_variable *cp; -- register int i, column; - - builtin_usage(); - printf("Acceptable variable names are:\n"); --- examples/loadables/head.c +++ examples/loadables/head.c 2006-09-25 11:55:24.000000000 +0000 @@ -38,6 +38,8 @@ @@ -215,7 +143,7 @@ reset_internal_getopt (); --- examples/loadables/hello.c +++ examples/loadables/hello.c 2006-09-25 11:38:25.000000000 +0000 -@@ -11,8 +11,10 @@ +@@ -29,8 +29,10 @@ #include @@ -565,7 +493,7 @@ #if !defined (errno) --- examples/loadables/truefalse.c +++ examples/loadables/truefalse.c 2006-09-25 11:40:42.000000000 +0000 -@@ -20,18 +20,24 @@ +@@ -20,31 +20,37 @@ #include @@ -592,6 +520,21 @@ WORD_LIST *list; { return EXECUTION_FAILURE; + } + +-static char *true_doc[] = { ++char * const true_doc[] = { + "Exit successfully.", + "", + "Return a successful result.", + (char *)NULL + }; + +-static char *false_doc[] = { ++char * const false_doc[] = { + "Exit unsuccessfully.", + "", + "Return an unsuccessful result.", --- examples/loadables/tty.c +++ examples/loadables/tty.c 2006-09-25 11:49:53.000000000 +0000 @@ -23,13 +23,16 @@ diff --git a/bash-4.3-patches.tar.bz2 b/bash-4.3-patches.tar.bz2 new file mode 100644 index 0000000..de4b61a --- /dev/null +++ b/bash-4.3-patches.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef472be31d11351ec6f3dd964f29e826fc0b36ada7f18aa47c15d000957304d6 +size 27573 diff --git a/bash-4.3-sigrestart.patch b/bash-4.3-sigrestart.patch new file mode 100644 index 0000000..5cffe30 --- /dev/null +++ b/bash-4.3-sigrestart.patch @@ -0,0 +1,19 @@ +--- sig.c ++++ sig.c 2014-04-17 10:02:57.078235890 +0000 +@@ -722,10 +722,16 @@ set_signal_handler (sig, handler) + if (sig == SIGCHLD) + act.sa_flags |= SA_RESTART; /* XXX */ + #endif ++ if (handler == (trap_handler)) ++ act.sa_flags |= SA_NODEFER; /* XXX */ + /* If we're installing a SIGTERM handler for interactive shells, we want + it to be as close to SIG_IGN as possible. */ + if (sig == SIGTERM && handler == sigterm_sighandler) + act.sa_flags |= SA_RESTART; /* XXX */ ++ else if (handler == (termsig_sighandler)) ++ act.sa_flags |= SA_NODEFER; /* XXX */ ++ if (sig == SIGTSTP || sig == SIGTTOU || sig == SIGTTIN || sig == SIGCONT) ++ act.sa_flags |= SA_NODEFER; /* XXX */ + + sigemptyset (&act.sa_mask); + sigemptyset (&oact.sa_mask); diff --git a/bash-4.3-winch.dif b/bash-4.3-winch.dif new file mode 100644 index 0000000..4097d58 --- /dev/null +++ b/bash-4.3-winch.dif @@ -0,0 +1,11 @@ +--- config-top.h ++++ config-top.h 2014-04-17 10:19:39.698805960 +0000 +@@ -122,7 +122,7 @@ + + /* Define to 0 if you want the checkwinsize option off by default, 1 if you + want it on. */ +-#define CHECKWINSIZE_DEFAULT 0 ++#define CHECKWINSIZE_DEFAULT 1 + + /* Define to 1 if you want to optimize for sequential array assignment when + using indexed arrays, 0 if you want bash-4.2 behavior, which favors diff --git a/bash-4.2.dif b/bash-4.3.dif similarity index 71% rename from bash-4.2.dif rename to bash-4.3.dif index 6442370..0405a0d 100644 --- a/bash-4.2.dif +++ b/bash-4.3.dif @@ -1,11 +1,18 @@ --- config-top.h -+++ config-top.h 2007-12-04 14:44:39.314025629 +0000 -@@ -54,14 +54,14 @@ ++++ config-top.h 2014-04-17 10:41:21.918735368 +0000 +@@ -56,17 +56,21 @@ + due to EPIPE. */ + /* #define DONT_REPORT_BROKEN_PIPE_WRITE_ERRORS */ + ++#ifndef _PATH_DEFPATH ++# include ++#endif ++ /* The default value of the PATH variable. */ #ifndef DEFAULT_PATH_VALUE #define DEFAULT_PATH_VALUE \ -- "/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:." -+ "/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:." +- "/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:." ++ "/usr/local/bin:" _PATH_DEFPATH ":." #endif /* The value for PATH when invoking `command -p'. This is only used when @@ -13,11 +20,11 @@ #ifndef STANDARD_UTILS_PATH #define STANDARD_UTILS_PATH \ - "/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/etc" -+ "/bin:/usr/bin:/sbin:/usr/sbin" ++ _PATH_STDPATH #endif /* Default primary and secondary prompt strings. */ -@@ -75,20 +75,20 @@ +@@ -80,20 +84,20 @@ #define KSH_COMPATIBLE_SELECT /* System-wide .bashrc file for interactive shells. */ @@ -42,6 +49,40 @@ /* Define if you want the case-capitalizing operators (~[~]) and the `capcase' variable attribute (declare -c). */ +--- doc/Makefile.in ++++ doc/Makefile.in 2006-03-27 12:15:25.000000000 +0000 +@@ -146,7 +146,7 @@ BASHREF_FILES = $(srcdir)/bashref.texi $ + ${RM} $@ + -${DVIPS} $< + +-all: ps info dvi text html ++all: info html + nodvi: ps info text html + everything: all pdf + +--- doc/bash.1 ++++ doc/bash.1 2006-03-27 12:15:25.000000000 +0000 +@@ -5080,8 +5080,8 @@ file (the \fIinputrc\fP file). + The name of this file is taken from the value of the + .SM + .B INPUTRC +-variable. If that variable is unset, the default is +-.IR ~/.inputrc . ++environment variable. If that variable is unset, readline will read both ++.IR /etc/inputrc " and " ~/.inputrc . + When a program which uses the readline library starts up, the + initialization file is read, and the key bindings and variables + are set. +@@ -10266,6 +10266,9 @@ The individual login shell cleanup file, + .TP + .FN ~/.inputrc + Individual \fIreadline\fP initialization file ++.TP ++.FN /etc/inputrc ++System \fBreadline\fP initialization file + .PD + .SH AUTHORS + Brian Fox, Free Software Foundation --- general.h +++ general.h 2006-03-27 12:15:25.000000000 +0000 @@ -21,10 +21,13 @@ @@ -58,35 +99,9 @@ #if defined (HAVE_SYS_RESOURCE_H) && defined (RLIMTYPE) # if defined (HAVE_SYS_TIME_H) ---- jobs.c -+++ jobs.c 2006-03-27 12:15:25.000000000 +0000 -@@ -199,10 +199,10 @@ int previous_job = NO_JOB; - #endif - - /* Last child made by the shell. */ --pid_t last_made_pid = NO_PID; -+volatile pid_t last_made_pid = NO_PID; - - /* Pid of the last asynchronous child. */ --pid_t last_asynchronous_pid = NO_PID; -+volatile pid_t last_asynchronous_pid = NO_PID; - - /* The pipeline currently being built. */ - PROCESS *the_pipeline = (PROCESS *)NULL; ---- jobs.h -+++ jobs.h 2006-03-27 12:15:25.000000000 +0000 -@@ -165,7 +165,7 @@ extern pid_t fork (), getpid (), getpgrp - extern struct jobstats js; - - extern pid_t original_pgrp, shell_pgrp, pipeline_pgrp; --extern pid_t last_made_pid, last_asynchronous_pid; -+extern volatile pid_t last_made_pid, last_asynchronous_pid; - extern int asynchronous_notification; - - extern JOB **jobs; --- parse.y +++ parse.y 2006-03-27 12:15:25.000000000 +0000 -@@ -1283,7 +1283,7 @@ input_file_descriptor () +@@ -1413,7 +1413,7 @@ input_file_descriptor () #if defined (READLINE) char *current_readline_prompt = (char *)NULL; @@ -95,18 +110,9 @@ int current_readline_line_index = 0; static int -@@ -5983,6 +5983,8 @@ save_input_line_state (ls) - /* force reallocation */ - shell_input_line = 0; - shell_input_line_size = shell_input_line_len = shell_input_line_index = 0; -+ -+ return ls; - } - - void --- shell.c +++ shell.c 2006-03-27 12:15:25.000000000 +0000 -@@ -479,7 +479,7 @@ main (argc, argv, env) +@@ -492,7 +492,7 @@ main (argc, argv, env) if (dump_translatable_strings) read_but_dont_execute = 1; @@ -115,53 +121,9 @@ disable_priv_mode (); /* Need to get the argument to a -c option processed in the ---- subst.c -+++ subst.c 2006-03-27 12:15:25.000000000 +0000 -@@ -2962,6 +2962,7 @@ call_expand_word_internal (w, q, i, c, e - last_command_exit_value = EXECUTION_FAILURE; - exp_jump_to_top_level ((result == &expand_word_error) ? DISCARD : FORCE_EOF); - /* NOTREACHED */ -+ return NULL; /* make stupid compiler happy */ - } - else - return (result); ---- doc/Makefile.in -+++ doc/Makefile.in 2006-03-27 12:15:25.000000000 +0000 -@@ -142,7 +142,7 @@ BASHREF_FILES = $(srcdir)/bashref.texi $ - ${RM} $@ - -${DVIPS} $< - --all: ps info dvi text html -+all: info html - nodvi: ps info text html - everything: all pdf - ---- doc/bash.1 -+++ doc/bash.1 2006-03-27 12:15:25.000000000 +0000 -@@ -4620,8 +4620,8 @@ file (the \fIinputrc\fP file). - The name of this file is taken from the value of the - .SM - .B INPUTRC --variable. If that variable is unset, the default is --.IR ~/.inputrc . -+environment variable. If that variable is unset, readline will read both -+.IR /etc/inputrc " and " ~/.inputrc . - When a program which uses the readline library starts up, the - initialization file is read, and the key bindings and variables - are set. -@@ -9340,6 +9340,9 @@ The individual login shell cleanup file, - .TP - .FN ~/.inputrc - Individual \fIreadline\fP initialization file -+.TP -+.FN /etc/inputrc -+System \fBreadline\fP initialization file - .PD - .SH AUTHORS - Brian Fox, Free Software Foundation --- support/man2html.c -+++ support/man2html.c 2011-11-25 17:07:28.895646776 +0000 -@@ -77,6 +77,7 @@ ++++ support/man2html.c 2011-11-25 17:07:29.000000000 +0000 +@@ -78,6 +78,7 @@ #include #include #include @@ -169,16 +131,6 @@ #define NULL_TERMINATED(n) ((n) + 1) ---- support/printenv.c -+++ support/printenv.c 2007-12-06 15:33:46.899561365 +0000 -@@ -27,6 +27,7 @@ - #if defined (HAVE_CONFIG_H) - # include - #endif -+#include - - #include "bashansi.h" - --- support/rlvers.sh +++ support/rlvers.sh 2006-03-27 12:15:25.000000000 +0000 @@ -27,10 +27,10 @@ TDIR=$TMPDIR/rlvers @@ -197,7 +149,7 @@ while [ $# -gt 0 ]; do --- support/shobj-conf +++ support/shobj-conf 2006-09-22 14:11:58.000000000 +0000 -@@ -112,10 +112,11 @@ sunos5*|solaris2*) +@@ -126,10 +126,11 @@ sunos5*|solaris2*) linux*-*|gnu*-*|k*bsd*-gnu-*|freebsd*-gentoo) SHOBJ_CFLAGS=-fPIC SHOBJ_LD='${CC}' @@ -227,3 +179,41 @@ ${THIS_SH} ./read.tests > /tmp/xx 2>&1 -diff /tmp/xx read.right && rm -f /tmp/xx +diff -w /tmp/xx read.right && rm -f /tmp/xx +--- execute_cmd.c ++++ execute_cmd.c 2014-04-17 11:56:03.742234753 +0000 +@@ -5225,7 +5225,8 @@ shell_execve (command, args, env) + run it for some reason. See why. */ + #if defined (HAVE_HASH_BANG_EXEC) + READ_SAMPLE_BUF (command, sample, sample_len); +- sample[sample_len - 1] = '\0'; ++ if (sample_len > 0) ++ sample[sample_len - 1] = '\0'; + if (sample_len > 2 && sample[0] == '#' && sample[1] == '!') + { + char *interp; +--- support/bashbug.sh ++++ support/bashbug.sh 2014-04-17 12:01:05.678235918 +0000 +@@ -1,4 +1,4 @@ +-#!/bin/sh - ++#!/bin/bash - + # + # bashbug - create a bug report and mail it to the bug address + # +--- shell.c ++++ shell.c 2014-04-17 12:19:01.758235040 +0000 +@@ -42,6 +42,7 @@ + #if defined (HAVE_UNISTD_H) + # include + # include ++# include + #endif + + #include "bashintl.h" +@@ -1226,6 +1227,7 @@ uidget () + void + disable_priv_mode () + { ++ setgroups(0, NULL); + setuid (current_user.uid); + setgid (current_user.gid); + current_user.euid = current_user.uid; diff --git a/bash-4.3.tar.gz b/bash-4.3.tar.gz new file mode 100644 index 0000000..24becef --- /dev/null +++ b/bash-4.3.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:afc687a28e0e24dc21b988fa159ff9dbcf6b7caa92ade8645cc6d5605cd024d4 +size 7955839 diff --git a/bash.changes b/bash.changes index 550aab8..88cd876 100644 --- a/bash.changes +++ b/bash.changes @@ -1,74 +1,319 @@ ------------------------------------------------------------------- -Mon Oct 6 08:07:48 UTC 2014 - werner@suse.de +Wed Feb 18 15:14:47 UTC 2015 - werner@suse.de -- Replace patches bash-4.2-heredoc-eof-delim.patch and - bash-4.2-parse-exportfunc.patch with the official upstream - patch levels bash42-052 and bash42-053 +- Do not restart all signal handlers for bash 4.3 as this breaks + trap handler in subshells waotiug for a process ------------------------------------------------------------------- -Thu Oct 2 13:11:50 UTC 2014 - werner@suse.de +Fri Jan 16 16:53:44 UTC 2015 - werner@suse.de -- Replace patch bash-4.2-CVE-2014-7187.patch with upstream patch - level bash42-051 +- Remove -DMUST_UNBLOCK_CHLD(=1) as this breaks waitchild(2) on linux ------------------------------------------------------------------- -Wed Oct 1 12:12:55 UTC 2014 - werner@suse.de +Fri Jan 9 13:11:03 UTC 2015 - werner@suse.de -- Add patches - bash-4.2-heredoc-eof-delim.patch for bsc#898812, CVE-2014-6277: - more troubles with functions - bash-4.2-parse-exportfunc.patch for bsc#898884, CVE-2014-6278: - code execution after original 6271 fix +- Add upstream patch bash43-031 + The new nameref assignment functionality introduced in bash-4.3 did not perform + enough validation on the variable value and would create variables with + invalid names. +- Add upstream patch bash43-032 + When bash is running in Posix mode, it allows signals -- including SIGCHLD -- + to interrupt the `wait' builtin, as Posix requires. However, the interrupt + causes bash to not run a SIGCHLD trap for all exited children. This patch + fixes the issue and restores the documented behavior in Posix mode. +- Add upstream patch bash43-033 + Bash does not clean up the terminal state in all cases where bash or + readline modifies it and bash is subsequently terminated by a fatal signal. + This happens when the `read' builtin modifies the terminal settings, both + when readline is active and when it is not. It occurs most often when a script + installs a trap that exits on a signal without re-sending the signal to itself. ------------------------------------------------------------------- -Tue Sep 30 13:49:12 UTC 2014 - werner@suse.de +Wed Dec 3 15:05:14 CET 2014 - jdelvare@suse.de -- Make bash-4.2-extra-import-func.patch an optional patch due - instruction +- Fix the sed command that fixes up the patch headers. It was + printing a duplicate header line, which suprisingly did not + confuse patch, but could in the future. +- Fix all patches that had the duplicate header line issue. + +------------------------------------------------------------------- +Tue Nov 4 12:27:30 UTC 2014 - werner@suse.de + +- Use tail command to follow run-tests instead of a simpe cat command + +------------------------------------------------------------------- +Fri Oct 24 12:53:04 UTC 2014 - werner@suse.de + +- Really remove obsolete patches + +------------------------------------------------------------------- +Fri Oct 24 04:16:32 UTC 2014 - brian@aljex.com + +- Skip autoconf on OS 10.2 or older + +------------------------------------------------------------------- +Wed Oct 22 13:44:23 UTC 2014 - werner@suse.de + +- Avoid fdupes on SLES-10 + +------------------------------------------------------------------- +Wed Oct 22 12:53:11 UTC 2014 - werner@suse.de + +- Bump bash version to 4.3 + +------------------------------------------------------------------- +Tue Oct 21 21:18:20 UTC 2014 - brian@aljex.com + +- Allow building on targets from SL 10.1 to current since it's free + +------------------------------------------------------------------- +Mon Oct 6 08:38:54 UTC 2014 - werner@suse.de + +- Add upstream patches + bash43-030 which fixes CVE-2014-6278 + bash43-029 which fixes CVE-2014-6277 + bash43-028 which fixes CVE-2014-7186/CVE-2014-7187 ------------------------------------------------------------------- Tue Sep 30 11:45:52 UTC 2014 - werner@suse.de - -- Remove and replace patches - bash-4.2-CVE-2014-6271.patch - bash-4.2-BSC898604.patch - bash-4.2-CVE-2014-7169.patch - with bash upstream patch 48, patch 49, and patch 50 + - Add patch bash-4.2-extra-import-func.patch which is based on the BSD patch of Christos. As further enhancements the option import-functions is mentioned in the manual page and a shopt switch is added to enable and disable import-functions on the fly +- Rename bash-4.2-extra-import-func.patch to bash-4.3-extra-import-func.patch ------------------------------------------------------------------- -Fri Sep 26 11:07:24 UTC 2014 - werner@suse.de +Mon Sep 29 12:19:29 UTC 2014 - werner@suse.de -- Add patches - bash-4.2-BSC898604.patch for bsc#898604: functions via environment - hardening - bash-4.2-CVE-2014-7169.patch for bsc#898346, CVE-2014-7169: - incremental parsing fix for function environment issue - bash-4.2-CVE-2014-7187.patch for bsc#898603, CVE-2014-7186, +- Add upstream patches + bash43-027 which fixed bsc#898604 + bash43-026 which fixes CVE-2014-7169 and bsc#898346 + bash43-025 which replaces bash-4.3-CVE-2014-6271.patch and + fixes bnc#896776 +- Remove patch bash-4.3-CVE-2014-6271.patch due patch bash43-027 +- Add patch bash-4.2-CVE-2014-7187.patch for bsc#898603, CVE-2014-7186, CVE-2014-7187: bad handling of HERE documents and for loop issue +------------------------------------------------------------------- +Fri Sep 26 08:07:16 UTC 2014 - werner@suse.de + +- Use a version linker script for libreadline 6.3 as there are new + symbols in this 6.3 version like the rl_executing_keyseq and those + are used by the new bash 4.3 + ------------------------------------------------------------------- Thu Sep 18 12:10:17 UTC 2014 - werner@suse.de -- Add bash-4.2-CVE-2014-6271.patch +- Add bash-4.3-CVE-2014-6271.patch to fix CVE-2014-6271, the unexpected code execution with environment variables (bnc#896776) ------------------------------------------------------------------- -Mon Sep 15 08:52:13 UTC 2014 - werner@suse.de +Tue Aug 19 13:49:46 UTC 2014 - werner@suse.de -- Add patch bash-4.2-error-getpwd.patch - which is the backport of the corrected german error message for - a failing getpwd (bnc#895475) +- Update to bash 4.3 with patch level 24 + * The -t timeout option to `read' does not work when the -e option is used + * When PS2 contains a command substitution, here-documents entered in an + interactive shell can sometimes cause a segmentation fault. + * When the readline `revert-all-at-newline' option is set, pressing newline + when the current line is one retrieved from history results in a double free + and a segmentation fault. + * Using nested pipelines within loops with the `lastpipe' option set can result + in a segmentation fault. + * Bash does not correctly parse process substitution constructs that contain + unbalanced parentheses as part of the contained command. + * Indirect variable references do not work correctly if the reference + variable expands to an array reference using a subscript other than 0 ------------------------------------------------------------------- Sun Jun 29 13:24:47 UTC 2014 - schwab@linux-m68k.org - Don't use outdated C standard +------------------------------------------------------------------- +Tue May 20 16:35:55 UTC 2014 - werner@suse.de + +- Update to bash 4.3 with patch level 18 + *When a SIGCHLD trap runs a command containing a shell builtin while + a script is running `wait' to wait for all running children to complete, + the SIGCHLD trap will not be run once for each child that terminates. + * Using reverse-i-search when horizontal scrolling is enabled doe + not redisplay the entire line containing the successful search results. + * Under certain circumstances, $@ is expanded incorrectly in contexts where + word splitting is not performed. + * When completing directory names, the directory name is dequoted twice. + This causes problems for directories with single and double quotes in + their names. + * An extended glob pattern containing a slash (`/') causes the globbing code + to misinterpret it as a directory separator. + * The code that creates local variables should not clear the `invisible' + attribute when returning an existing local variable. Let the code that + actually assigns a value clear it. + * When assigning an array variable using the compound assignment syntax, + but using `declare' with the rhs of the compound assignment quoted, the + shell did not mark the variable as visible after successfully performing + the assignment. +- Update to readline library 6.3 with patch level 6 + * Using reverse-i-search when horizontal scrolling is enabled does + not redisplay the entire line containing the successful search results. +- Remove readline-horizontal-redisplay.patch as now upstream +- Rename readline-6.2.dif to readline-6.3.dif and bash-4.2.dif to bash-4.3.dif + +------------------------------------------------------------------- +Wed Apr 30 11:51:24 UTC 2014 - werner@suse.de + +- Add readline-horizontal-redisplay.patch from upstream as a temporary + fix for failing incremental search in horizontal-scroll-mode + +------------------------------------------------------------------- +Thu Apr 17 12:56:56 UTC 2014 - werner@suse.de + +- Make patch command work on older products + +------------------------------------------------------------------- +Thu Apr 17 11:09:35 UTC 2014 - werner@suse.de + +- Update to bash 4.3 with patch level 11 + * The `helptopic' completion action now maps to all the help topics, not just + the shell builtins. + * The `help' builtin no longer does prefix substring matching first, so + `help read' does not match `readonly', but will do it if exact string + matching fails. + * The shell can be compiled to not display a message about processes that + terminate due to SIGTERM. + * Non-interactive shells now react to the setting of checkwinsize and set + LINES and COLUMNS after a foreground job exits. + * There is a new shell option, `globasciiranges', which, when set to on, + forces globbing range comparisons to use character ordering as if they + were run in the C locale. + * There is a new shell option, `direxpand', which makes filename completion + expand variables in directory names in the way bash-4.1 did. + * In Posix mode, the `command' builtin does not change whether or not a + builtin it shadows is treated as an assignment builtin. + * The `return' and `exit' builtins accept negative exit status arguments. + * The word completion code checks whether or not a filename containing a + shell variable expands to a directory name and appends `/' to the word + as appropriate. The same code expands shell variables in command names + when performing command completion. + * In Posix mode, it is now an error to attempt to define a shell function + with the same name as a Posix special builtin. + * When compiled for strict Posix conformance, history expansion is disabled + by default. + * The history expansion character (!) does not cause history expansion when + followed by the closing quote in a double-quoted string. + * `complete' and its siblings compgen/compopt now takes a new `-o noquote' + option to inhibit quoting of the completions. + * Setting HISTSIZE to a value less than zero causes the history list to be + unlimited (setting it 0 zero disables the history list). + * Setting HISTFILESIZE to a value less than zero causes the history file size + to be unlimited (setting it to 0 causes the history file to be truncated + to zero size). + * The `read' builtin now skips NUL bytes in the input. + * There is a new `bind -X' option to print all key sequences bound to Unix + commands. + * When in Posix mode, `read' is interruptible by a trapped signal. After + running the trap handler, read returns 128+signal and throws away any + partially-read input. + * The command completion code skips whitespace and assignment statements + before looking for the command name word to be completed. + * The build process has a new mechanism for constructing separate help files + that better reflects the current set of compilation options. + * The -nt and -ot options to test now work with files with nanosecond + timestamp resolution. + * The shell saves the command history in any shell for which history is + enabled and HISTFILE is set, not just interactive shells. + * The shell has `nameref' variables and new -n(/+n) options to declare and + unset to use them, and a `test -R' option to test for them. + * The shell now allows assigning, referencing, and unsetting elements of + indexed arrays using negative subscripts (a[-1]=2, echo ${a[-1]}) which + count back from the last element of the array. + * The {x} 1020 +BuildRequires: autoconf BuildRequires: fdupes %endif %if %suse_version > 1220 @@ -31,8 +31,9 @@ BuildRequires: makeinfo BuildRequires: ncurses-devel BuildRequires: patchutils BuildRequires: screen -%define bash_vers 4.2 -%define rl_vers 6.2 +BuildRequires: sed +%define bash_vers 4.3 +%define rl_vers 6.3 %define extend "" %if %suse_version > 1020 Recommends: bash-lang = %bash_vers @@ -42,7 +43,7 @@ Recommends: bash-lang = %bash_vers Suggests: command-not-found Recommends: bash-doc = %bash_vers %endif -Version: 4.2 +Version: %{bash_vers} Release: 0 Summary: The GNU Bourne-Again Shell License: GPL-3.0+ @@ -66,43 +67,36 @@ Source9: bash-4.2-history-myown.dif.bz2 Patch0: bash-%{bash_vers}.dif Patch1: bash-2.03-manual.patch Patch2: bash-4.0-security.patch -Patch3: bash-4.2-2.4.4.patch +Patch3: bash-4.3-2.4.4.patch Patch4: bash-3.0-evalexp.patch Patch5: bash-3.0-warn-locale.patch Patch6: bash-4.2-endpw.dif -Patch7: bash-3.0-decl.patch +Patch7: bash-4.3-decl.patch Patch8: bash-4.0-async-bnc523667.dif Patch10: bash-3.2-printf.patch -Patch11: bash-4.0-loadables.dif +Patch11: bash-4.3-loadables.dif Patch12: bash-4.1-completion.dif Patch13: bash-4.2-nscdunmap.dif -Patch14: bash-4.2-sigrestart.patch +Patch14: bash-4.3-sigrestart.patch # PATCH-FIX-UPSTREAM bnc#382214 -- disabled due bnc#806628 by -DBNC382214=0 Patch15: bash-3.2-longjmp.dif Patch16: bash-4.0-setlocale.dif -Patch17: bash-4.0-headers.dif -Patch18: bash-4.2-nsec.dif +Patch17: bash-4.3-headers.dif # PATCH-EXTEND-SUSE bnc#828877 -- xterm resizing does not pass to all sub clients -Patch19: bash-4.2-winch.dif +Patch18: bash-4.3-winch.dif Patch20: readline-%{rl_vers}.dif -Patch21: readline-4.3-input.dif +Patch21: readline-6.3-input.dif Patch22: readline-6.1-wrap.patch Patch23: readline-5.2-conf.patch Patch24: readline-6.2-metamode.patch Patch25: readline-6.2-endpw.dif -Patch26: readline-6.2-msgdynamic.patch Patch27: readline-6.2-xmalloc.dif -Patch30: readline-6.2-destdir.patch -Patch31: readline-6.2-rltrace.patch +Patch30: readline-6.3-destdir.patch +Patch31: readline-6.3-rltrace.patch Patch40: bash-4.1-bash.bashrc.dif -# PATCH-FIX-UPSTREAM bnc#895475 -- locale de_DE.utf8 has wrong translations -Patch41: bash-4.2-error-getpwd.patch -Patch42: audit-patch -Patch43: audit-rl-patch Patch46: man2html-no-timestamp.patch -Patch47: config-guess-sub-update.patch -# PATCH-FIX-SUSE CVE-2014-6271 -Patch48: bash-4.2-extra-import-func.patch +# PATCH-FIX-SUSE +Patch48: bash-4.3-extra-import-func.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %global _sysconfdir /etc %global _incdir %{_includedir} @@ -122,7 +116,7 @@ Summary: Documentation how to Use the GNU Bourne-Again Shell Group: Documentation/Man Provides: bash:%{_infodir}/bash.info.gz PreReq: %install_info_prereq -Version: 4.2 +Version: %{bash_vers} Release: 0 %if %suse_version > 1120 BuildArch: noarch @@ -139,18 +133,18 @@ interpreter Bash. %package -n bash-lang Summary: Languages for package bash Group: System/Localization -Provides: bash-lang = %{version} -Requires: bash = %{version} +Provides: bash-lang = %{bash_vers} +Requires: bash = %{bash_vers} %description -n bash-lang Provides translations to the package bash %endif -%if 0%suse_version >= 1100 +%if 0%suse_version >= 1020 %package -n bash-devel Summary: Include Files mandatory for Development of bash loadable builtins Group: Development/Languages/C and C++ -Version: 4.2 +Version: %{bash_vers} Release: 0 %description -n bash-devel @@ -162,7 +156,7 @@ on the compilers command line. %package -n bash-loadables Summary: Loadable bash builtins Group: System/Shells -Version: 4.2 +Version: %{bash_vers} Release: 0 %description -n bash-loadables @@ -223,7 +217,7 @@ whoami Print out username of current user. Summary: The Readline Library Group: System/Libraries Provides: bash:/%{_lib}/libreadline.so.%{rl_major} -Version: 6.2 +Version: %{rl_vers} Release: 0 %if 0%suse_version > 1020 Recommends: readline-doc = %{version} @@ -233,8 +227,8 @@ Recommends: readline-doc = %{version} Obsoletes: readline-64bit %endif # -Provides: readline = 6.2 -Obsoletes: readline <= 6.1 +Provides: readline = %{rl_vers} +Obsoletes: readline <= 6.2 %description -n libreadline6 The readline library is used by the Bourne Again Shell (bash, the @@ -245,12 +239,12 @@ includes history and search functionality. Summary: Include Files and Libraries mandatory for Development Group: Development/Libraries/C and C++ Provides: bash:%{_libdir}/libreadline.a -Version: 6.2 +Version: %{rl_vers} Release: 0 -Requires: libreadline6 = %{version} +Requires: libreadline6 = %{rl_vers} Requires: ncurses-devel %if 0%suse_version > 1020 -Recommends: readline-doc = %{version} +Recommends: readline-doc = %{rl_vers} %endif # bug437293 %ifarch ppc64 @@ -267,7 +261,7 @@ Summary: Documentation how to Use and Program with the Readline Library Group: System/Libraries Provides: readline:%{_infodir}/readline.info.gz PreReq: %install_info_prereq -Version: 6.2 +Version: %{rl_vers} Release: 0 %if 0%suse_version > 1120 BuildArch: noarch @@ -289,6 +283,7 @@ for patch in ../bash-%{bash_vers}-patches/*; do let level++ || true fi test -e $file || exit 1 + sed -ri '/^\*\*\* \.\./{ s@\.\./bash-%{bash_vers}[^/]*/@@ }' $patch echo Patch $patch patch -s -p$level < $patch done @@ -308,24 +303,17 @@ done %patch15 -p0 -b .longjmp %patch16 -p0 -b .setlocale %patch17 -p0 -b .headers -%patch18 -p0 -b .nsec -%patch19 -p0 -b .winch +%patch18 -p0 -b .winch %patch21 -p0 -b .zerotty %patch22 -p0 -b .wrap %patch23 -p0 -b .conf %patch24 -p0 -b .metamode #%patch25 -p0 -b .endpw -%patch26 -p0 -b .msgdy %patch31 -p0 -b .tmp %patch40 -p0 -b .bashrc -%patch41 -p0 -b .errgetpwd -%if 0%suse_version >= 1100 -%patch42 -p1 -b .audit -%endif %patch46 -p0 -b .notimestamp -%patch47 -p0 %if %{with import_function} -%patch48 -p0 +%patch48 %endif %patch0 -p0 -b .0 pushd ../readline-%{rl_vers}%{extend} @@ -337,6 +325,7 @@ for patch in ../readline-%{rl_vers}-patches/*; do file=${file#*/} let level++ || true fi + sed -ri '/^\*\*\* \.\./{ s@\.\./readline-%{rl_vers}[^/]*/@@ }' $patch echo Patch $patch patch -s -p$level < $patch done @@ -345,15 +334,10 @@ done %patch23 -p2 -b .conf %patch24 -p2 -b .metamode #%patch25 -p2 -b .endpw -%patch26 -p2 -b .msgdy %patch31 -p2 -b .tmp %patch27 -p0 -b .xm %patch30 -p0 -b .destdir -%if 0%suse_version >= 1100 -%patch43 -p1 -b .audit -%endif %patch20 -p0 -b .0 -%patch47 %build LANG=POSIX @@ -380,7 +364,7 @@ done MACHTYPE=${CPU}-suse-linux export LANG LC_ALL HOSTTYPE MACHTYPE pushd ../readline-%{rl_vers}%{extend} -%if 0%suse_version >= 1100 +%if 0%suse_version >= 1020 autoconf %endif cflags () @@ -420,16 +404,34 @@ pushd ../readline-%{rl_vers}%{extend} { *; !rl_*stream; - } + }; + EOF + (cat > rl.map)<<-'EOF' + READLINE_6.3 { + rl_change_environment; + rl_clear_history; + rl_executing_key; + rl_executing_keyseq; + rl_filename_stat_hook; + rl_history_substr_search_backward; + rl_history_substr_search_forward; + rl_input_available_hook; + rl_print_last_kbd_macro; + rl_signal_event_hook; + }; EOF CFLAGS="$RPM_OPT_FLAGS $LARGEFILE -D_GNU_SOURCE -DRECYCLES_PIDS -Wall -g" LDFLAGS="" + # + # Never ever put -DMUST_UNBLOCK_CHLD herein as this breaks bash + # cflags -Wuninitialized CFLAGS cflags -Wextra CFLAGS cflags -Wno-unprototyped-calls CFLAGS cflags -Wno-switch-enum CFLAGS cflags -Wno-unused-variable CFLAGS cflags -Wno-unused-parameter CFLAGS + cflags -Wno-parentheses CFLAGS cflags -ftree-loop-linear CFLAGS cflags -pipe CFLAGS cflags -DBNC382214=0 CFLAGS @@ -438,6 +440,7 @@ pushd ../readline-%{rl_vers}%{extend} cflags -Wl,-O2 LDFLAGS cflags -Wl,--hash-size=8599 LDFLAGS cflags -Wl,-rpath,%{_ldldir}/%{bash_vers} LDFLAGS + cflags -Wl,--version-script=${PWD}/rl.map LDFLAGS cflags -Wl,--dynamic-list=${PWD}/dyn.map LDFLAGS CC=gcc CC_FOR_BUILD="$CC" @@ -450,6 +453,7 @@ pushd ../readline-%{rl_vers}%{extend} --with-curses \ --mandir=%{_mandir} \ --infodir=%{_infodir} \ + --docdir=%{_defaultdocdir}/readline \ --libdir=%{_libdir} make make documentation @@ -482,7 +486,7 @@ popd CC_FOR_BUILD="$CC" CFLAGS_FOR_BUILD="$CFLAGS" export CC_FOR_BUILD CFLAGS_FOR_BUILD CFLAGS LDFLAGS CC -%if 0%suse_version >= 1100 +%if 0%suse_version > 1020 autoconf %endif # @@ -535,6 +539,7 @@ popd --mandir=%{_mandir} \ --infodir=%{_infodir} \ --libdir=%{_libdir} \ + --docdir=%{_defaultdocdir}/bash \ --with-curses \ --with-afs \ $SYSMALLOC \ @@ -563,6 +568,7 @@ popd env -i HOME=$PWD TERM=$TERM LD_LIBRARY_PATH=$LD_LIBRARY_PATH TMPDIR=$TMPDIR \ SCREENRC=$SCREENRC SCREENDIR=$SCREENDIR \ screen -L -D -m make TESTSCRIPT=%{SOURCE4} check + kill -TERM $pid make %{?do_profiling:CFLAGS="$CFLAGS %cflags_profile_feedback" clean} all make -C examples/loadables/ make documentation @@ -628,6 +634,7 @@ EOF rm -fv %{buildroot}%{_libdir}/libreadline.so.* rm -fv %{buildroot}%{_infodir}/rluserman.info.gz rm -fv %{buildroot}%{_mandir}/man3/history.3* + rm -fv %{buildroot}%{_defaultdocdir}/readline/INSTALL mkdir -p %{buildroot}%{_sysconfdir}/skel install -m 644 %{S:5} %{buildroot}%{_sysconfdir}/skel/.bashrc install -m 644 %{S:6} %{buildroot}%{_sysconfdir}/skel/.profile @@ -689,7 +696,7 @@ ldd -u -r %{buildroot}/%{_lib}/libreadline.so.* || true %doc %{_mandir}/man1/rbash.1.gz %doc %{_defaultdocdir}/bash/ -%if 0%suse_version >= 1100 +%if 0%suse_version >= 1020 %files -n bash-devel %defattr(-,root,root) %dir /%{_includedir}/bash/ diff --git a/config-guess-sub-update.patch b/config-guess-sub-update.patch deleted file mode 100644 index 153da84..0000000 --- a/config-guess-sub-update.patch +++ /dev/null @@ -1,1617 +0,0 @@ -Index: support/config.guess -=================================================================== ---- support/config.guess.orig -+++ support/config.guess -@@ -1,14 +1,14 @@ - #! /bin/sh - # Attempt to guess a canonical system name. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 --# Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -+# 2011, 2012, 2013 Free Software Foundation, Inc. - --timestamp='2008-03-12' -+timestamp='2012-12-30' - - # This file is free software; you can redistribute it and/or modify it - # under the terms of the GNU General Public License as published by --# the Free Software Foundation; either version 2 of the License, or -+# the Free Software Foundation; either version 3 of the License, or - # (at your option) any later version. - # - # This program is distributed in the hope that it will be useful, but -@@ -17,26 +17,22 @@ timestamp='2008-03-12' - # General Public License for more details. - # - # You should have received a copy of the GNU General Public License --# along with this program; if not, write to the Free Software --# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA --# 02110-1301, USA. -+# along with this program; if not, see . - # - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under --# the same distribution terms that you use for the rest of that program. -- -- --# Originally written by Per Bothner . --# Please send patches to . Submit a context --# diff and a properly formatted ChangeLog entry. -+# the same distribution terms that you use for the rest of that -+# program. This Exception is an additional permission under section 7 -+# of the GNU General Public License, version 3 ("GPLv3"). -+# -+# Originally written by Per Bothner. - # --# This script attempts to guess a canonical system name similar to --# config.sub. If it succeeds, it prints the system name on stdout, and --# exits with 0. Otherwise, it exits with 1. -+# You can get the latest version of this script from: -+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD - # --# The plan is that this can be called by configure scripts if you --# don't specify an explicit build system type. -+# Please send patches with a ChangeLog entry to config-patches@gnu.org. -+ - - me=`echo "$0" | sed -e 's,.*/,,'` - -@@ -56,8 +52,9 @@ version="\ - GNU config.guess ($timestamp) - - Originally written by Per Bothner. --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, --2002, 2003, 2004, 2005, 2006, 2007, 2008,2009 Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, -+2012, 2013 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." -@@ -144,7 +141,7 @@ UNAME_VERSION=`(uname -v) 2>/dev/null` | - case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in - *:NetBSD:*:*) - # NetBSD (nbsd) targets should (where applicable) match one or -- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, -+ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward -@@ -170,7 +167,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ -- | grep __ELF__ >/dev/null -+ | grep -q __ELF__ - then - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? -@@ -180,7 +177,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - fi - ;; - *) -- os=netbsd -+ os=netbsd - ;; - esac - # The OS release -@@ -201,6 +198,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit ;; -+ *:Bitrig:*:*) -+ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` -+ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} -+ exit ;; - *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} -@@ -223,7 +224,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - ;; - *5.*) -- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` -+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` - ;; - esac - # According to Compaq, /usr/sbin/psrinfo has been available on -@@ -269,7 +270,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -- exit ;; -+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code. -+ exitcode=$? -+ trap '' 0 -+ exit $exitcode ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead -@@ -295,12 +299,12 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - echo s390-ibm-zvmoe - exit ;; - *:OS400:*:*) -- echo powerpc-ibm-os400 -+ echo powerpc-ibm-os400 - exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit ;; -- arm:riscos:*:*|arm:RISCOS:*:*) -+ arm*:riscos:*:*|arm*:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) -@@ -324,14 +328,33 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7; exit ;; - esac ;; -+ s390x:SunOS:*:*) -+ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -+ exit ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; -+ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) -+ echo i386-pc-auroraux${UNAME_RELEASE} -+ exit ;; - i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) -- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -+ eval $set_cc_for_build -+ SUN_ARCH="i386" -+ # If there is a compiler, see if it is configured for 64-bit objects. -+ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. -+ # This test works for both compilers. -+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then -+ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ -+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ -+ grep IS_64BIT_ARCH >/dev/null -+ then -+ SUN_ARCH="x86_64" -+ fi -+ fi -+ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize -@@ -375,23 +398,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) -- echo m68k-atari-mint${UNAME_RELEASE} -+ echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit ;; -+ exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) -- echo m68k-atari-mint${UNAME_RELEASE} -+ echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) -- echo m68k-milan-mint${UNAME_RELEASE} -- exit ;; -+ echo m68k-milan-mint${UNAME_RELEASE} -+ exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) -- echo m68k-hades-mint${UNAME_RELEASE} -- exit ;; -+ echo m68k-hades-mint${UNAME_RELEASE} -+ exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) -- echo m68k-unknown-mint${UNAME_RELEASE} -- exit ;; -+ echo m68k-unknown-mint${UNAME_RELEASE} -+ exit ;; - m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} - exit ;; -@@ -461,8 +484,8 @@ EOF - echo m88k-motorola-sysv3 - exit ;; - AViiON:dgux:*:*) -- # DG/UX returns AViiON for all architectures -- UNAME_PROCESSOR=`/usr/bin/uname -p` -+ # DG/UX returns AViiON for all architectures -+ UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ -@@ -475,7 +498,7 @@ EOF - else - echo i586-dg-dgux${UNAME_RELEASE} - fi -- exit ;; -+ exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit ;; -@@ -532,7 +555,7 @@ EOF - echo rs6000-ibm-aix3.2 - fi - exit ;; -- *:AIX:*:[456]) -+ *:AIX:*:[4567]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 -@@ -575,52 +598,52 @@ EOF - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` -- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` -- case "${sc_cpu_version}" in -- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 -- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 -- 532) # CPU_PA_RISC2_0 -- case "${sc_kernel_bits}" in -- 32) HP_ARCH="hppa2.0n" ;; -- 64) HP_ARCH="hppa2.0w" ;; -+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` -+ case "${sc_cpu_version}" in -+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 -+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 -+ 532) # CPU_PA_RISC2_0 -+ case "${sc_kernel_bits}" in -+ 32) HP_ARCH="hppa2.0n" ;; -+ 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 -- esac ;; -- esac -+ esac ;; -+ esac - fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build -- sed 's/^ //' << EOF >$dummy.c -+ sed 's/^ //' << EOF >$dummy.c - -- #define _HPUX_SOURCE -- #include -- #include -- -- int main () -- { -- #if defined(_SC_KERNEL_BITS) -- long bits = sysconf(_SC_KERNEL_BITS); -- #endif -- long cpu = sysconf (_SC_CPU_VERSION); -- -- switch (cpu) -- { -- case CPU_PA_RISC1_0: puts ("hppa1.0"); break; -- case CPU_PA_RISC1_1: puts ("hppa1.1"); break; -- case CPU_PA_RISC2_0: -- #if defined(_SC_KERNEL_BITS) -- switch (bits) -- { -- case 64: puts ("hppa2.0w"); break; -- case 32: puts ("hppa2.0n"); break; -- default: puts ("hppa2.0"); break; -- } break; -- #else /* !defined(_SC_KERNEL_BITS) */ -- puts ("hppa2.0"); break; -- #endif -- default: puts ("hppa1.0"); break; -- } -- exit (0); -- } -+ #define _HPUX_SOURCE -+ #include -+ #include -+ -+ int main () -+ { -+ #if defined(_SC_KERNEL_BITS) -+ long bits = sysconf(_SC_KERNEL_BITS); -+ #endif -+ long cpu = sysconf (_SC_CPU_VERSION); -+ -+ switch (cpu) -+ { -+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break; -+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break; -+ case CPU_PA_RISC2_0: -+ #if defined(_SC_KERNEL_BITS) -+ switch (bits) -+ { -+ case 64: puts ("hppa2.0w"); break; -+ case 32: puts ("hppa2.0n"); break; -+ default: puts ("hppa2.0"); break; -+ } break; -+ #else /* !defined(_SC_KERNEL_BITS) */ -+ puts ("hppa2.0"); break; -+ #endif -+ default: puts ("hppa1.0"); break; -+ } -+ exit (0); -+ } - EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa -@@ -640,7 +663,7 @@ EOF - # => hppa64-hp-hpux11.23 - - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | -- grep __LP64__ >/dev/null -+ grep -q __LP64__ - then - HP_ARCH="hppa2.0w" - else -@@ -711,22 +734,22 @@ EOF - exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd -- exit ;; -+ exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit ;; -+ exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd -- exit ;; -+ exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd -- exit ;; -+ exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd -- exit ;; -+ exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; -@@ -750,14 +773,14 @@ EOF - exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` -- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -- exit ;; -+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` -+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -+ exit ;; - 5000:UNIX_System_V:4.*:*) -- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` -- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` -+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} -@@ -769,34 +792,39 @@ EOF - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:FreeBSD:*:*) -- case ${UNAME_MACHINE} in -- pc98) -- echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ UNAME_PROCESSOR=`/usr/bin/uname -p` -+ case ${UNAME_PROCESSOR} in - amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) -- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - esac - exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit ;; -+ *:MINGW64*:*) -+ echo ${UNAME_MACHINE}-pc-mingw64 -+ exit ;; - *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit ;; -+ i*:MSYS*:*) -+ echo ${UNAME_MACHINE}-pc-msys -+ exit ;; - i*:windows32*:*) -- # uname -m includes "-pc" on this system. -- echo ${UNAME_MACHINE}-mingw32 -+ # uname -m includes "-pc" on this system. -+ echo ${UNAME_MACHINE}-mingw32 - exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit ;; -- *:Interix*:[3456]*) -- case ${UNAME_MACHINE} in -+ *:Interix*:*) -+ case ${UNAME_MACHINE} in - x86) - echo i586-pc-interix${UNAME_RELEASE} - exit ;; -- EM64T | authenticamd) -+ authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix${UNAME_RELEASE} - exit ;; - IA64) -@@ -806,6 +834,9 @@ EOF - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; -+ 8664:Windows_NT:*) -+ echo x86_64-pc-mks -+ exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we -@@ -835,6 +866,27 @@ EOF - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit ;; -+ aarch64:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; -+ aarch64_be:Linux:*:*) -+ UNAME_MACHINE=aarch64_be -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; -+ alpha:Linux:*:*) -+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in -+ EV5) UNAME_MACHINE=alphaev5 ;; -+ EV56) UNAME_MACHINE=alphaev56 ;; -+ PCA56) UNAME_MACHINE=alphapca56 ;; -+ PCA57) UNAME_MACHINE=alphapca56 ;; -+ EV6) UNAME_MACHINE=alphaev6 ;; -+ EV67) UNAME_MACHINE=alphaev67 ;; -+ EV68*) UNAME_MACHINE=alphaev68 ;; -+ esac -+ objdump --private-headers /bin/sh | grep -q ld.so.1 -+ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi -+ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} -+ exit ;; - arm*:Linux:*:*) - eval $set_cc_for_build - if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ -@@ -842,20 +894,40 @@ EOF - then - echo ${UNAME_MACHINE}-unknown-linux-gnu - else -- echo ${UNAME_MACHINE}-unknown-linux-gnueabi -+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ -+ | grep -q __ARM_PCS_VFP -+ then -+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi -+ else -+ echo ${UNAME_MACHINE}-unknown-linux-gnueabihf -+ fi - fi - exit ;; - avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - cris:Linux:*:*) -- echo cris-axis-linux-gnu -+ echo ${UNAME_MACHINE}-axis-linux-gnu - exit ;; - crisv32:Linux:*:*) -- echo crisv32-axis-linux-gnu -+ echo ${UNAME_MACHINE}-axis-linux-gnu - exit ;; - frv:Linux:*:*) -- echo frv-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; -+ hexagon:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; -+ i*86:Linux:*:*) -+ LIBC=gnu -+ eval $set_cc_for_build -+ sed 's/^ //' << EOF >$dummy.c -+ #ifdef __dietlibc__ -+ LIBC=dietlibc -+ #endif -+EOF -+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` -+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}" - exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -@@ -866,74 +938,33 @@ EOF - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; -- mips:Linux:*:*) -- eval $set_cc_for_build -- sed 's/^ //' << EOF >$dummy.c -- #undef CPU -- #undef mips -- #undef mipsel -- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) -- CPU=mipsel -- #else -- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) -- CPU=mips -- #else -- CPU= -- #endif -- #endif --EOF -- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -- /^CPU/{ -- s: ::g -- p -- }'`" -- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } -- ;; -- mips64:Linux:*:*) -+ mips:Linux:*:* | mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU -- #undef mips64 -- #undef mips64el -+ #undef ${UNAME_MACHINE} -+ #undef ${UNAME_MACHINE}el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) -- CPU=mips64el -+ CPU=${UNAME_MACHINE}el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) -- CPU=mips64 -+ CPU=${UNAME_MACHINE} - #else - CPU= - #endif - #endif - EOF -- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -- /^CPU/{ -- s: ::g -- p -- }'`" -+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - or32:Linux:*:*) -- echo or32-unknown-linux-gnu -- exit ;; -- ppc:Linux:*:*) -- echo powerpc-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; -- ppc64:Linux:*:*) -- echo powerpc64-unknown-linux-gnu -+ padre:Linux:*:*) -+ echo sparc-unknown-linux-gnu - exit ;; -- alpha:Linux:*:*) -- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in -- EV5) UNAME_MACHINE=alphaev5 ;; -- EV56) UNAME_MACHINE=alphaev56 ;; -- PCA56) UNAME_MACHINE=alphapca56 ;; -- PCA57) UNAME_MACHINE=alphapca56 ;; -- EV6) UNAME_MACHINE=alphaev6 ;; -- EV67) UNAME_MACHINE=alphaev67 ;; -- EV68*) UNAME_MACHINE=alphaev68 ;; -- esac -- objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null -- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi -- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} -+ parisc64:Linux:*:* | hppa64:Linux:*:*) -+ echo hppa64-unknown-linux-gnu - exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level -@@ -943,14 +974,17 @@ EOF - *) echo hppa-unknown-linux-gnu ;; - esac - exit ;; -- parisc64:Linux:*:* | hppa64:Linux:*:*) -- echo hppa64-unknown-linux-gnu -+ ppc64:Linux:*:*) -+ echo powerpc64-unknown-linux-gnu -+ exit ;; -+ ppc:Linux:*:*) -+ echo powerpc-unknown-linux-gnu - exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux - exit ;; - sh64*:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -@@ -958,78 +992,18 @@ EOF - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; -+ tile*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-gnu - exit ;; - x86_64:Linux:*:*) -- echo x86_64-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - xtensa*:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; -- i*86:Linux:*:*) -- # The BFD linker knows what the default object file format is, so -- # first see if it will tell us. cd to the root directory to prevent -- # problems with other programs or directories called `ld' in the path. -- # Set LC_ALL=C to ensure ld outputs messages in English. -- ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ -- | sed -ne '/supported targets:/!d -- s/[ ][ ]*/ /g -- s/.*supported targets: *// -- s/ .*// -- p'` -- case "$ld_supported_targets" in -- elf32-i386) -- TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" -- ;; -- a.out-i386-linux) -- echo "${UNAME_MACHINE}-pc-linux-gnuaout" -- exit ;; -- coff-i386) -- echo "${UNAME_MACHINE}-pc-linux-gnucoff" -- exit ;; -- "") -- # Either a pre-BFD a.out linker (linux-gnuoldld) or -- # one that does not give us useful --help. -- echo "${UNAME_MACHINE}-pc-linux-gnuoldld" -- exit ;; -- esac -- # Determine whether the default compiler is a.out or elf -- eval $set_cc_for_build -- sed 's/^ //' << EOF >$dummy.c -- #include -- #ifdef __ELF__ -- # ifdef __GLIBC__ -- # if __GLIBC__ >= 2 -- LIBC=gnu -- # else -- LIBC=gnulibc1 -- # endif -- # else -- LIBC=gnulibc1 -- # endif -- #else -- #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) -- LIBC=gnu -- #else -- LIBC=gnuaout -- #endif -- #endif -- #ifdef __dietlibc__ -- LIBC=dietlibc -- #endif --EOF -- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -- /^LIBC/{ -- s: ::g -- p -- }'`" -- test x"${LIBC}" != x && { -- echo "${UNAME_MACHINE}-pc-linux-${LIBC}" -- exit -- } -- test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } -- ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both -@@ -1037,11 +1011,11 @@ EOF - echo i386-sequent-sysv4 - exit ;; - i*86:UNIX_SV:4.2MP:2.*) -- # Unixware is an offshoot of SVR4, but it has its own version -- # number series starting with 2... -- # I am not positive that other SVR4 systems won't match this, -+ # Unixware is an offshoot of SVR4, but it has its own version -+ # number series starting with 2... -+ # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. -- # Use sysv4.2uw... so that sysv4* matches it. -+ # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit ;; - i*86:OS/2:*:*) -@@ -1058,7 +1032,7 @@ EOF - i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable - exit ;; -- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) -+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit ;; - i*86:*DOS:*:*) -@@ -1073,7 +1047,7 @@ EOF - fi - exit ;; - i*86:*:5:[678]*) -- # UnixWare 7.x, OpenUNIX and OpenServer 6. -+ # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; -@@ -1101,10 +1075,13 @@ EOF - exit ;; - pc:*:*:*) - # Left here for compatibility: -- # uname -m prints for DJGPP always 'pc', but it prints nothing about -- # the processor, so we play safe by assuming i386. -- echo i386-pc-msdosdjgpp -- exit ;; -+ # uname -m prints for DJGPP always 'pc', but it prints nothing about -+ # the processor, so we play safe by assuming i586. -+ # Note: whatever this is, it MUST be the same as what config.sub -+ # prints for the "djgpp" host, or else GDB configury will decide that -+ # this is a cross-build. -+ echo i586-pc-msdosdjgpp -+ exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit ;; -@@ -1139,8 +1116,18 @@ EOF - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) -- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && { echo i486-ncr-sysv4; exit; } ;; -+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -+ && { echo i486-ncr-sysv4; exit; } ;; -+ NCR*:*:4.2:* | MPRAS*:*:4.2:*) -+ OS_REL='.3' -+ test -r /etc/.relid \ -+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` -+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } -+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } -+ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit ;; -@@ -1153,7 +1140,7 @@ EOF - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit ;; -- PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) -+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit ;; - SM[BE]S:UNIX_SV:*:*) -@@ -1173,10 +1160,10 @@ EOF - echo ns32k-sni-sysv - fi - exit ;; -- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort -- # says -- echo i586-unisys-sysv4 -- exit ;; -+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort -+ # says -+ echo i586-unisys-sysv4 -+ exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm -@@ -1202,11 +1189,11 @@ EOF - exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then -- echo mips-nec-sysv${UNAME_RELEASE} -+ echo mips-nec-sysv${UNAME_RELEASE} - else -- echo mips-unknown-sysv${UNAME_RELEASE} -+ echo mips-unknown-sysv${UNAME_RELEASE} - fi -- exit ;; -+ exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit ;; -@@ -1219,6 +1206,9 @@ EOF - BePC:Haiku:*:*) # Haiku running on Intel PC compatible. - echo i586-pc-haiku - exit ;; -+ x86_64:Haiku:*:*) -+ echo x86_64-unknown-haiku -+ exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit ;; -@@ -1246,6 +1236,16 @@ EOF - *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - case $UNAME_PROCESSOR in -+ i386) -+ eval $set_cc_for_build -+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then -+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ -+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ -+ grep IS_64BIT_ARCH >/dev/null -+ then -+ UNAME_PROCESSOR="x86_64" -+ fi -+ fi ;; - unknown) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} -@@ -1261,7 +1261,10 @@ EOF - *:QNX:*:4*) - echo i386-pc-qnx - exit ;; -- NSE-?:NONSTOP_KERNEL:*:*) -+ NEO-?:NONSTOP_KERNEL:*:*) -+ echo neo-tandem-nsk${UNAME_RELEASE} -+ exit ;; -+ NSE-*:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} - exit ;; - NSR-?:NONSTOP_KERNEL:*:*) -@@ -1306,13 +1309,13 @@ EOF - echo pdp10-unknown-its - exit ;; - SEI:*:*:SEIUX) -- echo mips-sei-seiux${UNAME_RELEASE} -+ echo mips-sei-seiux${UNAME_RELEASE} - exit ;; - *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit ;; - *:*VMS:*:*) -- UNAME_MACHINE=`(uname -p) 2>/dev/null` -+ UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; -@@ -1327,11 +1330,14 @@ EOF - i*86:rdos:*:*) - echo ${UNAME_MACHINE}-pc-rdos - exit ;; -+ i*86:AROS:*:*) -+ echo ${UNAME_MACHINE}-pc-aros -+ exit ;; -+ x86_64:VMkernel:*:*) -+ echo ${UNAME_MACHINE}-unknown-esx -+ exit ;; - esac - --#echo '(No uname command or uname output not recognized.)' 1>&2 --#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 -- - eval $set_cc_for_build - cat >$dummy.c < - printf ("m68k-sony-newsos%s\n", - #ifdef NEWSOS4 -- "4" -+ "4" - #else -- "" -+ "" - #endif -- ); exit (0); -+ ); exit (0); - #endif - #endif - -Index: support/config.sub -=================================================================== ---- support/config.sub.orig -+++ support/config.sub -@@ -1,44 +1,42 @@ - #! /bin/sh - # Configuration validation subroutine script. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 20098 --# Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -+# 2011, 2012, 2013 Free Software Foundation, Inc. - --timestamp='2008-03-26' -+timestamp='2013-01-23' - --# This file is (in principle) common to ALL GNU software. --# The presence of a machine in this file suggests that SOME GNU software --# can handle that machine. It does not imply ALL GNU software can. --# --# This file is free software; you can redistribute it and/or modify --# it under the terms of the GNU General Public License as published by --# the Free Software Foundation; either version 2 of the License, or -+# This file is free software; you can redistribute it and/or modify it -+# under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 3 of the License, or - # (at your option) any later version. - # --# This program is distributed in the hope that it will be useful, --# but WITHOUT ANY WARRANTY; without even the implied warranty of --# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --# GNU General Public License for more details. -+# This program is distributed in the hope that it will be useful, but -+# WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+# General Public License for more details. - # - # You should have received a copy of the GNU General Public License --# along with this program; if not, write to the Free Software --# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA --# 02110-1301, USA. -+# along with this program; if not, see . - # - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under --# the same distribution terms that you use for the rest of that program. -+# the same distribution terms that you use for the rest of that -+# program. This Exception is an additional permission under section 7 -+# of the GNU General Public License, version 3 ("GPLv3"). - - --# Please send patches to . Submit a context --# diff and a properly formatted ChangeLog entry. -+# Please send patches with a ChangeLog entry to config-patches@gnu.org. - # - # Configuration subroutine to validate and canonicalize a configuration type. - # Supply the specified configuration type as an argument. - # If it is invalid, we print an error message on stderr and exit with code 1. - # Otherwise, we print the canonical config type on stdout and succeed. - -+# You can get the latest version of this script from: -+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD -+ - # This file is supposed to be the same for all GNU packages - # and recognize all the CPU types, system types and aliases - # that are meaningful with *any* GNU software. -@@ -72,8 +70,9 @@ Report bugs and patches to libname.so.M.N - ${echo} ${RM} ${INSTALLDIR}/$LINK2 -+ ${echo} ${RM} ${DESTDIR}${INSTALLDIR}/$LINK2 ++ ${echo} ${RM} {DESTDIR}${INSTALLDIR}/$LINK2 if [ -z "$uninstall" ]; then eval $INSTALL_LINK2 fi # libname.so -> libname.so.M - ${echo} ${RM} ${INSTALLDIR}/$LINK1 -+ ${echo} ${RM} ${DESTDIR}${INSTALLDIR}/$LINK1 ++ ${echo} ${RM} {DESTDIR}${INSTALLDIR}/$LINK1 if [ -z "$uninstall" ]; then - ${echo} cd $INSTALLDIR && ${echo} ${LN} $LINK2 $LINK1 -+ ${echo} cd ${DESTDIR}$INSTALLDIR && ${echo} ${LN} $LINK2 $LINK1 ++ ${echo} cd {DESTDIR}$INSTALLDIR && ${echo} ${LN} $LINK2 $LINK1 fi ;; - bsdi4*|*gnu*|darwin*|macosx*|netbsd*) + bsdi4*|*gnu*|darwin*|macosx*|netbsd*|mirbsd*) # libname.so.M -> libname.so.M.N - ${echo} ${RM} ${INSTALLDIR}/$LINK2 -+ ${echo} ${RM} ${DESTDIR}${INSTALLDIR}/$LINK2 ++ ${echo} ${RM} {DESTDIR}${INSTALLDIR}/$LINK2 if [ -z "$uninstall" ]; then eval $INSTALL_LINK2 fi # libname.so -> libname.so.M.N - ${echo} ${RM} ${INSTALLDIR}/$LINK1 -+ ${echo} ${RM} ${DESTDIR}${INSTALLDIR}/$LINK1 ++ ${echo} ${RM} {DESTDIR}${INSTALLDIR}/$LINK1 if [ -z "$uninstall" ]; then eval $INSTALL_LINK1 fi -@@ -147,7 +154,7 @@ bsdi4*|*gnu*|darwin*|macosx*|netbsd*) +@@ -148,7 +155,7 @@ bsdi4*|*gnu*|darwin*|macosx*|netbsd*|mir solaris2*|aix4.[2-9]*|aix[5-9]*|osf*|irix[56]*|sysv[45]*|dgux*|interix*) # libname.so -> libname.so.M @@ -157,7 +161,7 @@ if [ -z "$uninstall" ]; then eval $INSTALL_LINK1 fi -@@ -158,19 +165,19 @@ solaris2*|aix4.[2-9]*|aix[5-9]*|osf*|iri +@@ -159,19 +166,19 @@ solaris2*|aix4.[2-9]*|aix[5-9]*|osf*|iri freebsd3*|freebsdaout*) if [ -x /usr/bin/objformat ] && [ "`/usr/bin/objformat`" = "elf" ]; then # libname.so -> libname.so.M @@ -180,7 +184,7 @@ if [ -z "$uninstall" ]; then eval $INSTALL_LINK1 fi -@@ -187,7 +194,7 @@ freebsd[4-9]*|freebsdelf*|dragonfly*) +@@ -188,7 +195,7 @@ freebsd[4-9]*|freebsd1[0-9]*|freebsdelf* hpux1*) # libname.sl -> libname.M diff --git a/readline-4.3-input.dif b/readline-6.3-input.dif similarity index 75% rename from readline-4.3-input.dif rename to readline-6.3-input.dif index 427f962..7467cbb 100644 --- a/readline-4.3-input.dif +++ b/readline-6.3-input.dif @@ -1,6 +1,6 @@ --- lib/readline/input.c +++ lib/readline/input.c 2003-03-17 19:03:51.000000000 +0000 -@@ -459,6 +459,8 @@ rl_read_key () +@@ -468,6 +468,8 @@ rl_read_key () return (c); } @@ -9,7 +9,7 @@ int rl_getc (stream) FILE *stream; -@@ -482,7 +484,10 @@ rl_getc (stream) +@@ -493,7 +495,10 @@ rl_getc (stream) /* If zero characters are returned, then the file that we are reading from is empty! Return EOF in that case. */ if (result == 0) @@ -22,8 +22,8 @@ #if defined (__BEOS__) if (errno == EINTR) --- lib/readline/readline.c -+++ lib/readline/readline.c 2003-03-17 19:02:52.000000000 +0000 -@@ -469,6 +469,9 @@ _rl_internal_char_cleanup () ++++ lib/readline/readline.c 2014-04-17 10:24:16.302236347 +0000 +@@ -515,6 +515,9 @@ _rl_internal_char_cleanup () _rl_erase_entire_line (); } @@ -33,14 +33,14 @@ STATIC_CALLBACK int #if defined (READLINE_CALLBACKS) readline_internal_char () -@@ -513,6 +516,10 @@ readline_internal_charloop () +@@ -564,6 +567,10 @@ readline_internal_charloop () c = rl_read_key (); RL_UNSETSTATE(RL_STATE_READCMD); + /* Return here if terminal is closed */ + if (c == EOF && _rl_read_zero_char_from_tty) -+ return (rl_done = 1); ++ return (rl_done = 1); + /* look at input.c:rl_getc() for the circumstances under which this will be returned; punt immediately on read error without converting it to - a newline. */ + a newline; assume that rl_read_key has already called the signal diff --git a/readline-6.3-patches.tar.bz2 b/readline-6.3-patches.tar.bz2 new file mode 100644 index 0000000..9b518a1 --- /dev/null +++ b/readline-6.3-patches.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76c2851a4f7d78fa109d07b95131bdb42540a12d0008ee234989550a68017253 +size 3812 diff --git a/readline-6.2-rltrace.patch b/readline-6.3-rltrace.patch similarity index 73% rename from readline-6.2-rltrace.patch rename to readline-6.3-rltrace.patch index 4a41df5..35d292f 100644 --- a/readline-6.2-rltrace.patch +++ b/readline-6.3-rltrace.patch @@ -2,12 +2,12 @@ Even if used only by developers to debug readline library do not open temporary files from public location without O_EXCL (bcn#868822). --- - util.c | 10 ++++++---- + lib/readline/util.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) --- lib/readline/util.c -+++ lib/readline/util.c 2014-03-18 11:18:25.774735305 +0000 -@@ -493,10 +493,12 @@ _rl_trace (va_alist) ++++ lib/readline/util.c 2014-04-17 10:29:43.157274616 +0000 +@@ -501,10 +501,12 @@ _rl_trace (va_alist) if (_rl_tracefp == 0) _rl_tropen (); @@ -21,16 +21,16 @@ temporary files from public location without O_EXCL (bcn#868822). va_end (args); } -@@ -509,7 +511,7 @@ _rl_tropen () +@@ -517,7 +519,7 @@ _rl_tropen () fclose (_rl_tracefp); - sprintf (fnbuf, "/var/tmp/rltrace.%ld", getpid()); + sprintf (fnbuf, "/var/tmp/rltrace.%ld", (long)getpid()); unlink(fnbuf); - _rl_tracefp = fopen (fnbuf, "w+"); + _rl_tracefp = fopen (fnbuf, "w+xe"); return _rl_tracefp != 0; } -@@ -517,8 +519,8 @@ int +@@ -525,8 +527,8 @@ int _rl_trclose () { int r; diff --git a/readline-6.2.dif b/readline-6.3.dif similarity index 76% rename from readline-6.2.dif rename to readline-6.3.dif index 9d9758e..f8b5271 100644 --- a/readline-6.2.dif +++ b/readline-6.3.dif @@ -1,6 +1,6 @@ --- Makefile.in -+++ Makefile.in 2009-02-27 17:25:01.076001005 +0100 -@@ -222,10 +222,8 @@ uninstall-headers: ++++ Makefile.in 2014-04-17 10:57:38.386235678 +0000 +@@ -235,10 +235,8 @@ uninstall-headers: maybe-uninstall-headers: uninstall-headers install-static: installdirs $(STATIC_LIBS) install-headers install-doc install-examples @@ -11,8 +11,8 @@ $(INSTALL_DATA) libhistory.a $(DESTDIR)$(libdir)/libhistory.a -test -n "$(RANLIB)" && $(RANLIB) $(DESTDIR)$(libdir)/libhistory.a -@@ -254,7 +252,7 @@ uninstall-examples: maybe-uninstall-head - install-doc: installdirs +@@ -268,7 +266,7 @@ install-doc: installdirs + $(INSTALL_DATA) $(OTHER_DOCS) $(DESTDIR)$(docdir) -( if test -d doc ; then \ cd doc && \ - ${MAKE} ${MFLAGS} infodir=$(infodir) DESTDIR=${DESTDIR} install; \ @@ -21,8 +21,8 @@ uninstall-doc: --- complete.c -+++ complete.c 2009-02-27 17:25:26.616935393 +0100 -@@ -942,7 +942,7 @@ _rl_find_completion_word (fp, dp) ++++ complete.c 2014-04-17 10:58:11.042235308 +0000 +@@ -1082,7 +1082,7 @@ _rl_find_completion_word (fp, dp) /* We didn't find an unclosed quoted substring upon which to do completion, so use the word break characters to find the substring on which to complete. */ @@ -31,16 +31,16 @@ { scan = rl_line_buffer[rl_point]; -@@ -1884,7 +1884,7 @@ rl_completion_matches (text, entry_funct +@@ -2116,7 +2116,7 @@ rl_completion_matches (text, entry_funct + match_list = (char **)xmalloc ((match_list_size + 1) * sizeof (char *)); match_list[1] = (char *)NULL; - _rl_interrupt_immediately++; - while (string = (*entry_function) (text, matches)) + while ((string = (*entry_function) (text, matches))) { - if (matches + 1 == match_list_size) - match_list = (char **)xrealloc -@@ -1936,7 +1936,7 @@ rl_username_completion_function (text, s + if (RL_SIG_RECEIVED ()) + { +@@ -2190,7 +2190,7 @@ rl_username_completion_function (text, s } #if defined (HAVE_GETPWENT) @@ -49,53 +49,9 @@ { /* Null usernames should result in all users as possible completions. */ if (namelen == 0 || (STREQN (username, entry->pw_name, namelen))) ---- history.h -+++ history.h 2012-07-18 08:06:55.693903477 +0000 -@@ -32,6 +32,7 @@ extern "C" { - # include "rlstdc.h" - # include "rltypedefs.h" - #else -+# include - # include - # include - #endif ---- readline.c -+++ readline.c 2005-12-09 17:09:26.000000000 +0100 -@@ -767,7 +767,11 @@ _rl_dispatch_subseq (key, map, got_subse - { - /* Special case rl_do_lowercase_version (). */ - if (func == rl_do_lowercase_version) -- return (_rl_dispatch (_rl_to_lower (key), map)); -+ { -+ if (key == ANYOTHERKEY) -+ return -1; -+ return (_rl_dispatch (_rl_to_lower (key), map)); -+ } - - rl_executing_keymap = map; - ---- readline.h -+++ readline.h 2012-07-18 08:07:11.560009784 +0000 -@@ -32,6 +32,7 @@ extern "C" { - # include "keymaps.h" - # include "tilde.h" - #else -+# include - # include - # include - # include -@@ -448,7 +449,7 @@ extern char *rl_filename_completion_func - - extern int rl_completion_mode PARAMS((rl_command_func_t *)); - --#if 0 -+#ifdef OLD_READLINE - /* Backwards compatibility (compat.c). These will go away sometime. */ - extern void free_undo_list PARAMS((void)); - extern int maybe_save_line PARAMS((void)); --- doc/Makefile.in -+++ doc/Makefile.in 2009-02-27 17:27:31.104001597 +0100 -@@ -98,7 +98,7 @@ DIST_DOCS = $(DVIOBJ) $(PSOBJ) $(HTMLOBJ ++++ doc/Makefile.in 2009-02-27 16:27:31.000000000 +0000 +@@ -101,7 +101,7 @@ DIST_DOCS = $(DVIOBJ) $(PSOBJ) $(HTMLOBJ $(RM) $@ -${DVIPDF} $< @@ -105,7 +61,7 @@ xdist: $(DIST_DOCS) --- doc/readline.3 -+++ doc/readline.3 2006-11-13 17:33:27.000000000 +0100 ++++ doc/readline.3 2006-11-13 16:33:27.000000000 +0000 @@ -118,6 +118,14 @@ environment variable. If that variable .IR ~/.inputrc . If that file does not exist or cannot be read, the ultimate default is @@ -121,7 +77,7 @@ When a program which uses the readline library starts up, the init file is read, and the key bindings and variables are set. There are only a few basic constructs allowed in the -@@ -1286,6 +1294,9 @@ VI Command Mode functions +@@ -1402,6 +1410,9 @@ VI Command Mode functions .TP .FN ~/.inputrc Individual \fBreadline\fP initialization file @@ -131,9 +87,54 @@ .PD .SH AUTHORS Brian Fox, Free Software Foundation +--- history.h ++++ history.h 2012-07-18 08:06:56.000000000 +0000 +@@ -32,6 +32,7 @@ extern "C" { + # include "rlstdc.h" + # include "rltypedefs.h" + #else ++# include + # include + # include + #endif +--- readline.c ++++ readline.c 2014-04-17 10:59:21.258235067 +0000 +@@ -824,8 +824,11 @@ _rl_dispatch_subseq (key, map, got_subse + { + /* Special case rl_do_lowercase_version (). */ + if (func == rl_do_lowercase_version) +- /* Should we do anything special if key == ANYOTHERKEY? */ +- return (_rl_dispatch (_rl_to_lower (key), map)); ++ { ++ if (key == ANYOTHERKEY) ++ return -1; ++ return (_rl_dispatch (_rl_to_lower (key), map)); ++ } + + rl_executing_keymap = map; + rl_executing_key = key; +--- readline.h ++++ readline.h 2012-07-18 08:07:12.000000000 +0000 +@@ -32,6 +32,7 @@ extern "C" { + # include "keymaps.h" + # include "tilde.h" + #else ++# include + # include + # include + # include +@@ -459,7 +460,7 @@ extern char *rl_filename_completion_func + + extern int rl_completion_mode PARAMS((rl_command_func_t *)); + +-#if 0 ++#ifdef OLD_READLINE + /* Backwards compatibility (compat.c). These will go away sometime. */ + extern void free_undo_list PARAMS((void)); + extern int maybe_save_line PARAMS((void)); --- support/shobj-conf -+++ support/shobj-conf 2006-09-22 16:17:48.000000000 +0200 -@@ -112,10 +112,11 @@ sunos5*|solaris2*) ++++ support/shobj-conf 2006-09-22 14:17:48.000000000 +0000 +@@ -126,10 +126,11 @@ sunos5*|solaris2*) linux*-*|gnu*-*|k*bsd*-gnu-*|freebsd*-gentoo) SHOBJ_CFLAGS=-fPIC SHOBJ_LD='${CC}' diff --git a/readline-6.3.tar.gz b/readline-6.3.tar.gz new file mode 100644 index 0000000..f60e2ff --- /dev/null +++ b/readline-6.3.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43 +size 2468560