SHA256
3
0
forked from pool/bash
Dr. Werner Fink 2011-03-08 12:18:13 +00:00 committed by Git OBS Bridge
parent cb7c1c55f7
commit 150e4de5ff
23 changed files with 240 additions and 413 deletions

View File

@ -1,24 +0,0 @@
Roman Rakus <rrakus@redhat.com> writes:
> Repeated in the bash-4.0.38 and bash-4.1.7 by the script;
> #!/bin/bash
>
> typeset -Ai s
> y='*'
> z='['
> s[$y]=1
> s[$z]=2
> (( s[$z] = s[$z] + ${s[$y]} ))
> (( s[$y] = s[$y] + ${s[$z]} ))
> [[ ${s[$y]} = 4 ]] && echo "ok"
--- variables.c
+++ variables.c 2010-07-29 15:03:48.671425922 +0000
@@ -2398,7 +2398,7 @@ bind_int_variable (lhs, rhs)
#endif
v = bind_variable (lhs, rhs, 0);
- if (isint)
+ if (isint && v)
VSETATTR (v, att_integer);
return (v);

View File

@ -1,46 +0,0 @@
|On 3/30/10 2:36 AM, Clark J. Wang wrote:
|> Good news:
|>
|> I met this problem again a few minutes ago. Then I looked back to find out
|> what I was doing. After some investigation I could stably reproduce this
|> problem by following steps (tested with bash 3.1.17, 3.2.39 and 4.1.0):
|>
|> bash$ alias xx='echo 142857' ### Make sure there isn't an external cmd
|> named `xx'
|> bash$ export EDITOR=vi
|> bash$ set -o vi
|> bash$ ### Press ESC to get out of vi's INSERT mode
|> bash$ ### Press v to invoke vi to input a cmd like `ls', save and exit,
|> the `ls' cmd runs.
|> bash$ xx
|> -bash: xx: command not found
|> bash$ xx
|> 142857
|> bash$
|
|Thanks for the report. This was exactly what I needed. The fix will be
|in the next release of bash. I've attached a patch for the curious or
|impatient.
|
|Chet
|
*** bashline.c 2010-03-26 12:15:37.000000000 -0400
--- bashline.c 2010-03-30 23:25:22.000000000 -0400
***************
*** 864,867 ****
--- 864,868 ----
char *command, *metaval;
int r, cclc, rrs, metaflag;
+ sh_parser_state_t ps;
rrs = rl_readline_state;
***************
*** 898,902 ****
--- 899,905 ----
if (rl_deprep_term_function)
(*rl_deprep_term_function) ();
+ save_parser_state (&ps);
r = parse_and_execute (command, (editing_mode == VI_EDITING_MODE) ? "v" : "C-xC-e", SEVAL_NOHIST);
+ restore_parser_state (&ps);
if (rl_prep_term_function)
(*rl_prep_term_function) (metaflag);

View File

@ -1,16 +0,0 @@
--- parse.y
+++ parse.y 2010-01-20 13:51:39.000000000 +0000
@@ -1434,10 +1434,11 @@ yy_readline_get ()
current_readline_prompt : "");
terminate_immediately = 0;
- if (signal_is_ignored (SIGINT) == 0 && old_sigint)
+ if (signal_is_ignored (SIGINT) == 0)
{
interrupt_immediately--;
- set_signal_handler (SIGINT, old_sigint);
+ if (old_sigint)
+ set_signal_handler (SIGINT, old_sigint);
}
#if 0

View File

@ -1,11 +0,0 @@
--- bashline.c 2010/03/01 23:44:28 1.1
+++ bashline.c 2010/03/01 23:44:47
@@ -3421,7 +3421,7 @@
putx(c)
int c;
{
- putc (c, rl_outstream);
+ return putc (c, rl_outstream);
}
static int

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ed7949b77cae1c4365e43c88e7d5a37d1ab229454ec0b2a6ae84cdeb1c2c5aec
size 4694

View File

@ -1,178 +0,0 @@
--- command.h
+++ command.h 2010-08-13 16:48:35.739125676 +0200
@@ -168,6 +168,7 @@ typedef struct element {
#define CMD_STDIN_REDIR 0x400 /* async command needs implicit </dev/null */
#define CMD_COMMAND_BUILTIN 0x0800 /* command executed by `command' builtin */
#define CMD_COPROC_SUBSHELL 0x1000
+#define CMD_SYNC_PIPE 0x2000
/* What a command looks like. */
typedef struct command {
--- execute_cmd.c
+++ execute_cmd.c 2010-08-16 15:40:41.975126155 +0200
@@ -256,6 +256,8 @@ int match_ignore_case = 0;
struct stat SB; /* used for debugging */
+extern void addjstatus(COMMAND *, int);
+
static int special_builtin_failed;
static COMMAND *currently_executing_command;
@@ -1525,7 +1527,7 @@ static struct cpelement *cpl_search __P(
static struct cpelement *cpl_searchbyname __P((char *));
static void cpl_prune __P((void));
-Coproc sh_coproc = { 0, NO_PID, -1, -1, 0, 0 };
+Coproc sh_coproc = { 0, NO_PID, -1, -1, 0, 0, 0, 0 };
cplist_t coproc_list = {0, 0, 0};
@@ -2047,13 +2049,19 @@ execute_coproc (command, pipe_in, pipe_o
}
#endif
+static void restore_stdin(int lstdin)
+{
+ dup2(lstdin, 0);
+ close(lstdin);
+}
+
static int
execute_pipeline (command, asynchronous, pipe_in, pipe_out, fds_to_close)
COMMAND *command;
int asynchronous, pipe_in, pipe_out;
struct fd_bitmap *fds_to_close;
{
- int prev, fildes[2], new_bitmap_size, dummyfd, ignore_return, exec_result;
+ int lstdin, prev, fildes[2], new_bitmap_size, dummyfd, ignore_return, exec_result;
COMMAND *cmd;
struct fd_bitmap *fd_bitmap;
@@ -2148,15 +2156,52 @@ execute_pipeline (command, asynchronous,
/* Now execute the rightmost command in the pipeline. */
if (ignore_return && cmd)
cmd->flags |= CMD_IGNORE_RETURN;
+
+ begin_unwind_frame ("pipe-file-descriptors");
+ lstdin = -1;
+#if 1
+ if (!asynchronous && pipe_out == NO_PIPE && prev > 0
+ && cmd->type != cm_subshell && ((cmd->flags & CMD_WANT_SUBSHELL) == 0))
+ {
+ lstdin = move_to_high_fd(0, 0, 255);
+ if (lstdin > 0)
+ {
+ dup2(prev, 0);
+ close(prev);
+ prev = NO_PIPE;
+ cmd->flags |= CMD_SYNC_PIPE;
+ add_process((char*)0, getpid());
+ stop_pipeline (0, cmd);
+ add_unwind_protect (restore_stdin, lstdin);
+ }
+ }
+#endif
+ if (prev >= 0)
+ add_unwind_protect (close, prev);
+
exec_result = execute_command_internal (cmd, asynchronous, prev, pipe_out, fds_to_close);
+ if (lstdin > 0)
+ {
+ dup2(lstdin, 0);
+ close(lstdin);
+ }
+
if (prev >= 0)
close (prev);
+ discard_unwind_frame ("pipe-file-descriptors");
+
#if defined (JOB_CONTROL)
UNBLOCK_CHILD (oset);
#endif
+ if (cmd->flags & CMD_SYNC_PIPE)
+ {
+ addjstatus(cmd, exec_result);
+ cmd->flags &= ~CMD_SYNC_PIPE;
+ }
+
QUIT;
return (exec_result);
}
--- jobs.c
+++ jobs.c 2010-08-16 15:48:19.479125702 +0200
@@ -260,7 +260,6 @@ static int processes_in_job __P((int));
static void realloc_jobs_list __P((void));
static int compact_jobs_list __P((int));
static int discard_pipeline __P((PROCESS *));
-static void add_process __P((char *, pid_t));
static void print_pipeline __P((PROCESS *, int, int, FILE *));
static void pretty_print_job __P((int, int, FILE *));
static void set_current_job __P((int));
@@ -1065,7 +1064,7 @@ nohup_job (job_index)
if (js.j_jobslots == 0)
return;
- if (temp = jobs[job_index])
+ if ((temp = jobs[job_index]))
temp->flags |= J_NOHUP;
}
@@ -1095,7 +1094,7 @@ discard_pipeline (chain)
/* Add this process to the chain being built in the_pipeline.
NAME is the command string that will be exec'ed later.
PID is the process id of the child. */
-static void
+void
add_process (name, pid)
char *name;
pid_t pid;
@@ -3396,6 +3395,34 @@ setjstatus (j)
#endif
}
+
+void
+addjstatus(COMMAND *deferred, int status)
+{
+#if defined (ARRAY_VARS)
+ int i;
+ JOB *j;
+ for (j = jobs[(i = 0)]; j && j->deferred != deferred; j = jobs[(++i)])
+ ;
+ if (!j || !j->deferred)
+ return;
+ j->deferred = (COMMAND*)0;
+ if (status)
+ {
+ PROCESS *p, *l;
+ p = j->pipe;
+ do
+ {
+ l = p;
+ p = p->next;
+ }
+ while (p != j->pipe);
+ l->status = status << 8;
+ }
+ setjstatus(i);
+#endif
+}
+
void
run_sigchld_trap (nchild)
int nchild;
--- jobs.h
+++ jobs.h 2010-08-16 15:47:22.463125472 +0200
@@ -177,6 +177,8 @@ extern void save_pipeline __P((int));
extern void restore_pipeline __P((int));
extern void start_pipeline __P((void));
extern int stop_pipeline __P((int, COMMAND *));
+extern void add_process __P((char *, pid_t));
+extern void addjstatus __P((COMMAND *, int));
extern void delete_job __P((int, int));
extern void nohup_job __P((int));

View File

@ -1,15 +0,0 @@
---
po/cs.po | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/po/cs.po
+++ b/po/cs.po
@@ -403,7 +403,7 @@ msgstr "toto není login shell: použijt
#: builtins/exit.def:120
#, c-format
msgid "There are stopped jobs.\n"
-msgstr "Jsou zde pozastavení úlohy.\n"
+msgstr "Jsou zde pozastavené úlohy.\n"
#: builtins/exit.def:122
#, c-format

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:eca4613deba32743e2d0edf8666f5537734bbec85d7cb4e5f5e6ce22bb1d8bd3
size 4875797

View File

@ -1,6 +1,6 @@
--- array.c
+++ array.c 2006-11-14 09:54:22.000000000 +0000
@@ -877,7 +877,7 @@ char *s, *sep;
@@ -922,7 +922,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
*/
@ -9,6 +9,25 @@
int
signal_is_trapped(s)
--- examples/loadables/tee.c
+++ examples/loadables/tee.c 2006-11-14 10:31:29.000000000 +0000
@@ -35,6 +35,7 @@
#include "bashansi.h"
#include <stdio.h>
+#include <signal.h>
#include <errno.h>
#include "builtins.h"
@@ -56,7 +57,7 @@ static FLIST *tee_flist;
#define TEE_BUFSIZE 8192
-extern int interrupt_immediately;
+extern volatile sig_atomic_t interrupt_immediately;
extern char *strerror ();
--- hashlib.c
+++ hashlib.c 2006-11-14 09:54:36.000000000 +0000
@@ -381,7 +381,7 @@ hash_pstats (table, name)
@ -22,7 +41,7 @@
signal_is_trapped (s)
--- jobs.c
+++ jobs.c 2001-05-02 16:20:31.000000000 +0000
@@ -1735,6 +1735,15 @@ make_child (command, async_p)
@@ -1769,6 +1769,15 @@ make_child (command, async_p)
pid_t mypid;
mypid = getpid ();
@ -58,8 +77,8 @@
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
@@ -61,13 +61,13 @@ extern int comsub_ignore_return;
extern int parse_and_execute_level, shell_initialized;
@@ -66,13 +66,13 @@ extern int history_lines_this_session;
extern void initialize_siglist ();
/* Non-zero after SIGINT. */
-volatile int interrupt_state = 0;
@ -75,7 +94,7 @@
/* The environment at the top-level R-E loop. We use this in
the case of error return. */
@@ -79,10 +79,10 @@ sigset_t top_level_mask;
@@ -84,10 +84,10 @@ sigset_t top_level_mask;
#endif /* JOB_CONTROL */
/* When non-zero, we throw_to_top_level (). */
@ -109,22 +128,3 @@
/* Functions from sig.c. */
extern sighandler termsig_sighandler __P((int));
--- examples/loadables/tee.c
+++ examples/loadables/tee.c 2006-11-14 10:31:29.000000000 +0000
@@ -35,6 +35,7 @@
#include "bashansi.h"
#include <stdio.h>
+#include <signal.h>
#include <errno.h>
#include "builtins.h"
@@ -56,7 +57,7 @@ static FLIST *tee_flist;
#define TEE_BUFSIZE 8192
-extern int interrupt_immediately;
+extern volatile sig_atomic_t interrupt_immediately;
extern char *strerror ();

75
bash-4.2-history.dif Normal file
View File

@ -0,0 +1,75 @@
--- config.h.in
+++ config.h.in 2011-03-08 11:18:00.139925937 +0000
@@ -530,6 +530,9 @@
/* Define if you have the asprintf function. */
#undef HAVE_ASPRINTF
+/* Define if you have the ATEXIT function. */
+#undef HAVE_ATEXIT
+
/* Define if you have the bcopy function. */
#undef HAVE_BCOPY
--- configure
+++ configure 2011-03-08 11:20:57.780426177 +0000
@@ -13497,7 +13497,7 @@ done
-for ac_func in bcopy bzero confstr faccessat fnmatch \
+for ac_func in atexit bcopy bzero confstr faccessat fnmatch \
getaddrinfo gethostbyname getservbyname getservent inet_aton \
memmove pathconf putenv raise regcomp regexec \
setenv setlinebuf setlocale setvbuf siginterrupt strchr \
--- configure.in
+++ configure.in 2011-03-08 11:20:46.020641745 +0000
@@ -727,7 +727,7 @@ AC_CHECK_FUNCS(dup2 eaccess fcntl getdta
AC_REPLACE_FUNCS(rename)
dnl checks for c library functions
-AC_CHECK_FUNCS(bcopy bzero confstr faccessat fnmatch \
+AC_CHECK_FUNCS(atexit bcopy bzero confstr faccessat fnmatch \
getaddrinfo gethostbyname getservbyname getservent inet_aton \
memmove pathconf putenv raise regcomp regexec \
setenv setlinebuf setlocale setvbuf siginterrupt strchr \
--- sig.c
+++ sig.c 2011-03-08 11:32:29.067927069 +0000
@@ -292,6 +292,11 @@ initialize_terminating_signals ()
#endif /* !HAVE_POSIX_SIGNALS */
+#if defined (HISTORY) && defined (HAVE_ATEXIT)
+ if (interactive_shell)
+ atexit(maybe_save_shell_history);
+#endif /* HISTORY && HAVE_ATEXIT */
+
termsigs_initialized = 1;
}
@@ -504,8 +509,11 @@ termsig_sighandler (sig)
if (terminate_immediately)
{
#if defined (HISTORY)
- /* XXX - will inhibit history file being written */
- history_lines_this_session = 0;
+# if defined (HAVE_ATEXIT)
+ if (sig == SIGABRT)
+# endif
+ /* XXX - will inhibit history file being written */
+ history_lines_this_session = 0;
#endif
terminate_immediately = 0;
termsig_handler (sig);
@@ -532,10 +540,10 @@ termsig_handler (sig)
if (sig == SIGINT && signal_is_trapped (SIGINT))
run_interrupt_trap ();
-#if defined (HISTORY)
+#if defined (HISTORY) && ! defined (HAVE_ATEXIT)
if (interactive_shell && sig != SIGABRT)
maybe_save_shell_history ();
-#endif /* HISTORY */
+#endif /* HISTORY && ! HAVE_ATEXIT */
#if defined (JOB_CONTROL)
if (sig == SIGHUP && (interactive || (subshell_environment & (SUBSHELL_COMSUB|SUBSHELL_PROCSUB))))

3
bash-4.2-patches.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a2fc41cc8e9ba0a9d83f2e1eccf28762adedb7b12584db1fae683c22771f3992
size 5099

View File

@ -1,6 +1,6 @@
--- jobs.c
+++ jobs.c 2008-01-08 18:10:16.000000000 +0000
@@ -2426,7 +2426,11 @@ wait_for (pid)
@@ -2454,7 +2454,11 @@ wait_for (pid)
act.sa_handler = SIG_DFL;
sigemptyset (&act.sa_mask);
sigemptyset (&oact.sa_mask);
@ -13,12 +13,12 @@
# endif
queue_sigchld = 1;
--- sig.c
+++ sig.c 2010-10-14 12:28:48.004425767 +0000
@@ -658,6 +658,16 @@ set_signal_handler (sig, handler)
#else
+++ 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;
+# if !defined(MUST_REINSTALL_SIGHANDLERS)
act.sa_flags |= SA_RESTART; /* XXX */
+#if !defined(MUST_REINSTALL_SIGHANDLERS)
+ if (sig != SIGALRM)
+ act.sa_flags |= SA_RESTART; /* XXX */
+ if (handler == (trap_handler))
@ -27,7 +27,7 @@
+ act.sa_flags |= SA_NODEFER; /* XXX */
+ if (sig == SIGTSTP || sig == SIGTTOU || sig == SIGTTIN || sig == SIGCONT)
+ act.sa_flags |= SA_NODEFER; /* XXX */
+# endif
#endif
+#endif
sigemptyset (&act.sa_mask);
sigemptyset (&oact.sa_mask);

View File

@ -1,20 +1,3 @@
--- /dev/null
+++ .pkgextract 2006-03-27 12:15:25.000000000 +0000
@@ -0,0 +1,14 @@
+tar Oxfj ../bash-4.0-patches.tar.bz2 | patch -p0 -s
+patch -p0 -s --suffix=".manual" < ../bash-2.03-manual.patch
+patch -p0 -s --suffix=".security" < ../bash-4.0-security.patch
+patch -p0 -s --suffix=".2.4.4" < ../bash-3.2-2.4.4.patch
+patch -p0 -s --suffix=".evalexp" < ../bash-3.0-evalexp.patch
+patch -p0 -s --suffix=".warnlc" < ../bash-3.0-warn-locale.patch
+patch -p0 -s --suffix=".nfs_redir"< ../bash-3.0-nfs_redir.patch
+patch -p0 -s --suffix=".decl" < ../bash-3.0-decl.patch
+patch -p0 -s --suffix=".equote" < ../bash-4.0-extended_quote.patch
+patch -p0 -s --suffix=".printf" < ../bash-3.2-printf.patch
+patch -p0 -s --suffix=".plugins" < ../bash-4.0-loadables.dif
+patch -p0 -s --suffix=".zerotty" < ../readline-4.3-input.dif
+patch -p0 -s --suffix=".wrap" < ../readline-6.0-wrap.patch
+patch -p0 -s --suffix=".conf" < ../readline-5.2-conf.patch
--- config-top.h
+++ config-top.h 2007-12-04 14:44:39.314025629 +0000
@@ -54,14 +54,14 @@

3
bash-4.2.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:413ab72b6b17b5a0909b5462e94e2e81fc186f7766a99fdcbbef942da6a27148
size 5126957

View File

@ -1,13 +1,91 @@
-------------------------------------------------------------------
Fri Feb 25 17:08:09 UTC 2011 - werner@suse.de
Tue Mar 8 12:51:29 CET 2011 - werner@suse.de
- Add patch bash41-010
- Reintroduce history saving at SIGHUP
-------------------------------------------------------------------
Tue Mar 7 15:25:33 CET 2011 - werner@suse.de
- Update bash 4.2 to patch level 7
-------------------------------------------------------------------
Thu Feb 17 10:08:53 UTC 2011 - coolo@novell.com
- having a bash man page is recommended (bnc#672528)
-------------------------------------------------------------------
Mon Feb 14 16:50:00 CET 2011 - werner@suse.de
- Update to bash 4.2 -- changelog see entry for bash 4.2 rc1
-------------------------------------------------------------------
Mon Jan 17 16:19:59 CET 2011 - werner@suse.de
- Update to bash 4.2 rc1
* `exec -a foo' now sets $0 to `foo' in an executable shell script
without a leading #!.
* Subshells begun to execute command substitutions or run shell functions or
builtins in subshells do not reset trap strings until a new trap is
specified. This allows $(trap) to display the caller's traps and the
trap strings to persist until a new trap is set.
* `trap -p' will now show signals ignored at shell startup, though their
disposition still cannot be modified.
* $'...', echo, and printf understand \uXXXX and \UXXXXXXXX escape sequences.
* declare/typeset has a new `-g' option, which creates variables in the
global scope even when run in a shell function.
* test/[/[[ have a new -v variable unary operator, which returns success if
`variable' has been set.
* Posix parsing changes to allow `! time command' and multiple consecutive
instances of `!' (which toggle) and `time' (which have no cumulative
effect).
* Posix change to allow `time' as a command by itself to print the elapsed
user, system, and real times for the shell and its children.
* $((...)) is always parsed as an arithmetic expansion first, instead of as
a potential nested command substitution, as Posix requires.
* A new FUNCNEST variable to allow the user to control the maximum shell
function nesting (recursive execution) level.
* The mapfile builtin now supplies a third argument to the callback command:
the line about to be assigned to the supplied array index.
* The printf builtin has a new %(fmt)T specifier, which allows time values
to use strftime-like formatting.
* There is a new `compat41' shell option.
* The cd builtin has a new Posix-mandated `-e' option.
* Negative subscripts to indexed arrays, previously errors, now are treated
as offsets from the maximum assigned index + 1.
* Negative length specifications in the ${var:offset:length} expansion,
previously errors, are now treated as offsets from the end of the variable.
* Parsing change to allow `time -p --'.
* Posix-mode parsing change to not recognize `time' as a keyword if the
following token begins with a `-'. This means no more Posix-mode
`time -p'. Posix interpretation 267.
* There is a new `lastpipe' shell option that runs the last command of a
pipeline in the current shell context. The lastpipe option has no
effect if job control is enabled.
* History expansion no longer expands the `$!' variable expansion.
* Posix mode shells no longer exit if a variable assignment error occurs
with an assignment preceding a command that is not a special builtin.
* History expansion no longer expands the `$!' variable expansion.
* Posix mode shells no longer exit if a variable assignment error occurs
with an assignment preceding a command that is not a special builtin.
* Non-interactive mode shells exit if -u is enabled and an attempt is made
to use an unset variable with the % or # expansions, the `//', `^', or
`,' expansions, or the parameter length expansion.
* Posix-mode shells use the argument passed to `.' as-is if a $PATH search
fails, effectively searching the current directory. Posix-2008 change.
- Update to readline 6.2 rc1
* The history library does not try to write the history filename in the
current directory if $HOME is unset. This closes a potential security
problem if the application does not specify a history filename.
* New bindable variable `completion-display-width' to set the number of
columns used when displaying completions.
* New bindable variable `completion-case-map' to cause case-insensitive
completion to treat `-' and `_' as identical.
* There are new bindable vi-mode command names to avoid readline's case-
insensitive matching not allowing them to be bound separately.
* New bindable variable `menu-complete-display-prefix' causes the menu
completion code to display the common prefix of the possible completions
before cycling through the list, instead of after.
-------------------------------------------------------------------
Mon Oct 18 11:09:31 CEST 2010 - jslaby@suse.de

View File

@ -24,8 +24,9 @@ BuildRequires: fdupes
%endif
License: GPLv2+
Group: System/Shells
%define bash_vers 4.1
%define rl_vers 6.1
%define bash_vers 4.2
%define rl_vers 6.2
%define extend ""
%if %suse_version > 1020
Recommends: bash-lang = %bash_vers
# The package bash-completion is a source of
@ -35,8 +36,8 @@ Suggests: command-not-found
Recommends: bash-doc = %bash_vers
%endif
AutoReqProv: on
Version: 4.1
Release: 23
Version: 4.2
Release: 1
Summary: The GNU Bourne-Again Shell
Url: http://www.gnu.org/software/bash/bash.html
Source0: ftp://ftp.gnu.org/gnu/bash/bash-%{bash_vers}.tar.bz2
@ -51,17 +52,17 @@ Source8: baselibs.conf
Patch0: bash-%{bash_vers}.dif
Patch1: bash-2.03-manual.patch
Patch2: bash-4.0-security.patch
Patch3: bash-3.2-2.4.4.patch
Patch3: bash-4.2-2.4.4.patch
Patch4: bash-3.0-evalexp.patch
Patch5: bash-3.0-warn-locale.patch
Patch6: bash-4.1-po-cs-messages-fix.patch
Patch7: bash-3.0-decl.patch
Patch8: bash-4.0-async-bnc523667.dif
Patch9: bash-4.0-extended_quote.patch
Patch10: bash-3.2-printf.patch
Patch11: bash-4.0-loadables.dif
Patch12: bash-4.1-completion.dif
Patch14: bash-4.1-sigrestart.patch
Patch13: bash-4.2-history.dif
Patch14: bash-4.2-sigrestart.patch
Patch15: bash-3.2-longjmp.dif
Patch16: bash-4.0-setlocale.dif
Patch17: bash-4.0-headers.dif
@ -69,14 +70,9 @@ Patch20: readline-%{rl_vers}.dif
Patch21: readline-4.3-input.dif
Patch22: readline-6.1-wrap.patch
Patch23: readline-5.2-conf.patch
Patch24: readline-6.0-metamode.patch
Patch30: readline-6.1-destdir.patch
Patch24: readline-6.2-metamode.patch
Patch30: readline-6.2-destdir.patch
Patch40: bash-4.1-bash.bashrc.dif
Patch41: bash-4.1-intr.dif
Patch42: bash-4.1-non_void.patch
Patch43: bash-4.1-array.dif
Patch44: bash-4.1-pipe.dif
Patch45: bash-4.1-edit-parser-state.patch
Patch46: man2html-no-timestamp.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%global _sysconfdir /etc
@ -105,8 +101,8 @@ 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.1
Release: 19
Version: 4.2
Release: 1
AutoReqProv: on
%if %suse_version > 1120
BuildArch: noarch
@ -141,8 +137,8 @@ Provides translations to the package bash
License: GPLv2+
Summary: Include Files mandatory for Development of bash loadable builtins
Group: Development/Languages/C and C++
Version: 4.1
Release: 19
Version: 4.2
Release: 1
AutoReqProv: on
%description -n bash-devel
@ -161,8 +157,8 @@ Authors:
License: GPLv2+
Summary: Loadable bash builtins
Group: System/Shells
Version: 4.1
Release: 19
Version: 4.2
Release: 1
AutoReqProv: on
%description -n bash-loadables
@ -230,8 +226,8 @@ License: GPLv2+
Summary: The Readline Library
Group: System/Libraries
Provides: bash:/%{_lib}/libreadline.so.%{rl_major}
Version: 6.1
Release: 19
Version: 6.2
Release: 1
%if %suse_version > 1020
Recommends: readline-doc = %{version}
%endif
@ -240,8 +236,8 @@ Recommends: readline-doc = %{version}
Obsoletes: readline-64bit
%endif
#
Provides: readline = 6.1
Obsoletes: readline <= 6.0
Provides: readline = 6.2
Obsoletes: readline <= 6.1
AutoReqProv: on
%description -n libreadline6
@ -261,8 +257,8 @@ License: GPLv2+
Summary: Include Files and Libraries mandatory for Development
Group: Development/Libraries/C and C++
Provides: bash:%{_libdir}/libreadline.a
Version: 6.1
Release: 19
Version: 6.2
Release: 1
Requires: libreadline6 = %{version}
Requires: ncurses-devel
%if %suse_version > 1020
@ -292,8 +288,8 @@ 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.1
Release: 19
Version: 6.2
Release: 1
AutoReqProv: on
%if %suse_version > 1120
BuildArch: noarch
@ -311,7 +307,7 @@ Authors:
Chet Ramey <chet@ins.cwru.edu>
%prep
%setup -q -n bash-%{bash_vers} -b1 -b2 -b3
%setup -q -n bash-%{bash_vers}%{extend} -b1 -b2 -b3
for p in ../bash-%{bash_vers}-patches/*; do
test -e $p || break
echo Patch $p
@ -323,13 +319,13 @@ unset p
%patch3 -p0 -b .2.4.4
%patch4 -p0 -b .evalexp
%patch5 -p0 -b .warnlc
%patch6 -p1 -b .po-cs
%patch7 -p0 -b .decl
%patch8 -p0 -b .async
%patch9 -p0 -b .extended_quote
%patch10 -p0 -b .printf
%patch11 -p0 -b .plugins
%patch12 -p0 -b .completion
%patch13 -p0 -b .history
%patch14 -p0 -b .sigrestart
%patch15 -p0 -b .longjmp
%patch16 -p0 -b .setlocale
@ -339,16 +335,9 @@ unset p
%patch23 -p0 -b .conf
%patch24 -p0 -b .metamode
%patch40 -p0 -b .bashrc
%patch41 -p0 -b .intr
%patch42 -p0 -b .non_void
%patch43 -p0 -b .array
# This currently resets the PIPESTATUS array
# the status of the forground process only
#%patch44 -p0 -b .pipe
%patch45 -p0 -b .parser
%patch46 -p0
%patch0 -p0
cd ../readline-%{rl_vers}
%patch46 -p0 -b .notimestamp
%patch0 -p0 -b .0
pushd ../readline-%{rl_vers}%{extend}
for p in ../readline-%{rl_vers}-patches/*; do
test -e $p || break
echo Patch $p
@ -359,7 +348,7 @@ done
%patch23 -p2 -b .conf
%patch24 -p2 -b .metamode
%patch30 -p0 -b .destdir
%patch20 -p0
%patch20 -p0 -b .0
%build
LANG=POSIX
@ -369,7 +358,7 @@ done
HOSTTYPE=${CPU}
MACHTYPE=${CPU}-suse-linux
export LANG LC_ALL HOSTTYPE MACHTYPE
cd ../readline-%{rl_vers}
pushd ../readline-%{rl_vers}%{extend}
%{?suse_update_config:%{suse_update_config -f support}}
autoconf
cflags ()
@ -438,7 +427,7 @@ cd ../readline-%{rl_vers}
ln -sf shlib/libreadline.so.%{rl_vers} libreadline.so.%{rl_major}
ln -sf shlib/libhistory.so.%{rl_vers} libhistory.so
ln -sf shlib/libhistory.so.%{rl_vers} libhistory.so.%{rl_major}
cd ../bash-%{bash_vers}
popd
# /proc is required for correct configuration
test -d /dev/fd || { echo "/proc is not mounted!" >&2; exit 1; }
ln -sf ../readline-%{rl_vers} readline
@ -539,7 +528,7 @@ cd ../bash-%{bash_vers}
make documentation
%install
cd ../readline-%{rl_vers}
pushd ../readline-%{rl_vers}%{extend}
make install htmldir=%{_defaultdocdir}/readline \
installdir=%{_defaultdocdir}/readline/examples DESTDIR=%{buildroot}
make install-shared libdir=/%{_lib} linkagedir=%{_libdir} DESTDIR=%{buildroot}
@ -553,7 +542,7 @@ cd ../readline-%{rl_vers}
rm -vf %{buildroot}/%{_lib}/libreadline.so
ln -sf /%{_lib}/libhistory.so.%{rl_vers} %{buildroot}/%{_libdir}/libhistory.so
ln -sf /%{_lib}/libreadline.so.%{rl_vers} %{buildroot}/%{_libdir}/libreadline.so
cd ../bash-%{bash_vers}
popd
make install DESTDIR=%{buildroot}
make -C examples/loadables/ install-plugins DESTDIR=%{buildroot} libdir=/%{_lib}
make -C examples/loadables/ install-headers DESTDIR=%{buildroot}

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:692dab6b4f9c4ea0acf6160cc52c150086cccfa147f59ca4ce94dbea14cf8c56
size 1351

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8388cbde75bdea04bab9017f7fc3ff9fc7bec557743f1f943cd738ace915e0da
size 1889722

View File

@ -1,5 +1,5 @@
--- shlib/Makefile.in
+++ shlib/Makefile.in 2010-02-15 16:02:32.644391084 +0000
+++ shlib/Makefile.in 2010-02-15 16:02:33.000000000 +0000
@@ -59,6 +59,7 @@ bindir = @bindir@
libdir = @libdir@
datadir = @datadir@
@ -8,8 +8,8 @@
# Support an alternate destination root directory for package building
DESTDIR =
@@ -183,13 +184,13 @@ installdirs: $(topdir)/support/mkdirs
-$(SHELL) $(topdir)/support/mkdirs $(DESTDIR)$(libdir)
@@ -184,13 +185,13 @@ installdirs: $(topdir)/support/mkdirs
-$(SHELL) $(topdir)/support/mkdirs $(DESTDIR)$(bindir)
install: installdirs $(SHLIB_STATUS)
- $(SHELL) $(topdir)/support/shlib-install -O $(host_os) -V $(host_vendor) -d $(DESTDIR)$(libdir) -b $(DESTDIR)$(bindir) -i "$(INSTALL_DATA)" $(SHARED_HISTORY)
@ -27,7 +27,7 @@
clean mostlyclean: force
--- support/shlib-install
+++ support/shlib-install 2010-02-15 15:59:38.005297957 +0000
+++ support/shlib-install 2010-02-15 15:59:38.000000000 +0000
@@ -3,7 +3,7 @@
# shlib-install - install a shared library and do any necessary host-specific
# post-installation configuration (like ldconfig)

View File

@ -1,11 +1,11 @@
# See bug bnc#541379
--- lib/readline/bind.c
+++ lib/readline/bind.c 2009-09-30 11:25:38.087930034 +0200
@@ -1473,6 +1473,7 @@ static const struct {
+++ lib/readline/bind.c 2011-03-04 15:00:17.332426313 +0000
@@ -1485,6 +1485,7 @@ static const struct {
#if defined (VISIBLE_STATS)
{ "visible-stats", &rl_visible_stats, 0 },
#endif /* VISIBLE_STATS */
+ { "meta-mode", &_rl_enable_meta, 0 },
{ (char *)NULL, (int *)NULL }
{ (char *)NULL, (int *)NULL, 0 }
};

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:42d99fff6ab232dd0f14e69590a80159466d3d3a05ad45f705437896f7a20d84
size 1011

View File

@ -1,11 +1,3 @@
--- .pkgextract
+++ .pkgextract 2005-12-09 17:09:26.000000000 +0100
@@ -0,0 +1,5 @@
+tar Oxfj ../readline-6.0-patches.tar.bz2 | patch -p0 -s
+patch -p2 -s --suffix=".zerotty" < ../readline-4.3-input.dif
+patch -p2 -s --suffix=".wrap" < ../readline-6.0-wrap.patch
+patch -p2 -s --suffix=".conf" < ../readline-5.2-conf.patch
+patch -p0 -s --suffix=".destdir" < ../readline-6.0-destdir.patch
--- Makefile.in
+++ Makefile.in 2009-02-27 17:25:01.076001005 +0100
@@ -222,10 +222,8 @@ uninstall-headers:

3
readline-6.2.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:268b150ec7ed945b56b0b12391c612129effb080bbb1b38be86936630c2a4328
size 1884298