OpenPKG CVS Repository
http://cvs.openpkg.org/
____________________________________________________________________________
Server: cvs.openpkg.org Name: Ralf S. Engelschall
Root: /v/openpkg/cvs Email: [EMAIL PROTECTED]
Module: openpkg-src Date: 06-Mar-2006 23:32:58
Branch: HEAD Handle: 2006030622325800
Modified files:
openpkg-src/openpkg HISTORY bash.patch openpkg.spec
Log:
fixed building of Bash by reducing dependency to Bison/Yacc
Summary:
Revision Changes Path
1.315 +1 -0 openpkg-src/openpkg/HISTORY
1.10 +186 -35 openpkg-src/openpkg/bash.patch
1.469 +3 -1 openpkg-src/openpkg/openpkg.spec
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg/HISTORY
============================================================================
$ cvs diff -u -r1.314 -r1.315 HISTORY
--- openpkg-src/openpkg/HISTORY 27 Feb 2006 21:24:58 -0000 1.314
+++ openpkg-src/openpkg/HISTORY 6 Mar 2006 22:32:58 -0000 1.315
@@ -2,6 +2,7 @@
2005
====
+20060306 fixed building of Bash by reducing dependency to Bison/Yacc
20060227 upgrade to cURL 7.15.2
20060207 upgrade to OSSP uuid 1.4.1
20060207 upgrade to GNU shtool 2.0.5
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg/bash.patch
============================================================================
$ cvs diff -u -r1.9 -r1.10 bash.patch
--- openpkg-src/openpkg/bash.patch 4 Feb 2006 09:39:16 -0000 1.9
+++ openpkg-src/openpkg/bash.patch 6 Mar 2006 22:32:58 -0000 1.10
@@ -113,13 +113,36 @@
-----------------------------------------------------------------------------
-Accumulated vendor patches Bash 3.1 001-007
-(but without documentation changes to reduce size)
+Accumulated vendor patches Bash 3.1 001-011
+Generated via:
+
+$ cat bash31-* | patch -p0 -Vt -b
+$ shtool move -e '*.~1~' '%1.orig'
+$ mv y.tab.c y.tab.c.orig
+$ mv y.tab.h y.tab.h.orig
+$ /tmp/bison/bin/bison -y -d parse.y
+$ shtool subst -b.dummy \
+ -e 's;parse\.y;/usr/src/local/chet/src/bash/src/parse.y;g' \
+ -e 's;/tmp/bison/share/bison\.simple;/usr/share/bison.simple;g' y.tab.c
+$ svs diff
Index: jobs.c
--- jobs.c.orig 2005-11-12 05:13:27 +0100
-+++ jobs.c 2006-02-04 10:16:23 +0100
-@@ -844,9 +844,10 @@
++++ jobs.c 2006-03-06 23:11:10 +0100
+@@ -619,8 +619,11 @@
+ * once in the parent and once in each child. This is where
+ * the parent gives it away.
+ *
++ * Don't give the terminal away if this shell is an asynchronous
++ * subshell.
++ *
+ */
+- if (job_control && newjob->pgrp)
++ if (job_control && newjob->pgrp &&
(subshell_environment&SUBSHELL_ASYNC) == 0)
+ give_terminal_to (newjob->pgrp, 0);
+ }
+ }
+@@ -844,9 +847,10 @@
realloc_jobs_list ()
{
sigset_t set, oset;
@@ -131,7 +154,7 @@
nsize = ((js.j_njobs + JOB_SLOTS - 1) / JOB_SLOTS);
nsize *= JOB_SLOTS;
i = js.j_njobs % JOB_SLOTS;
-@@ -854,17 +855,51 @@
+@@ -854,17 +858,51 @@
nsize += JOB_SLOTS;
BLOCK_CHILD (set, oset);
@@ -188,32 +211,54 @@
UNBLOCK_CHILD (oset);
}
-Index: lib/readline/terminal.c
---- lib/readline/terminal.c.orig 2005-11-13 02:46:54 +0100
-+++ lib/readline/terminal.c 2006-02-04 10:16:22 +0100
-@@ -122,7 +122,7 @@
- static char *_rl_visible_bell;
-
- /* Non-zero means the terminal can auto-wrap lines. */
--int _rl_term_autowrap;
-+int _rl_term_autowrap = -1;
-
- /* Non-zero means that this terminal has a meta key. */
- static int term_has_meta;
-@@ -274,6 +274,9 @@
- _rl_set_screen_size (rows, cols)
- int rows, cols;
- {
-+ if (_rl_term_autowrap == -1)
-+ _rl_init_terminal_io (rl_terminal_name);
-+
- if (rows > 0)
- _rl_screenheight = rows;
- if (cols > 0)
+@@ -1655,7 +1693,7 @@
+ In this case, we don't want to give the terminal to the
+ shell's process group (we could be in the middle of a
+ pipeline, for example). */
+- if (async_p == 0 && pipeline_pgrp != shell_pgrp)
++ if (async_p == 0 && pipeline_pgrp != shell_pgrp &&
((subshell_environment&SUBSHELL_ASYNC) == 0))
+ give_terminal_to (pipeline_pgrp, 0);
+
+ #if defined (PGRP_PIPE)
+@@ -2198,7 +2236,11 @@
+ /* This is possibly a race condition -- should it go in stop_pipeline? */
+ wait_sigint_received = 0;
+ if (job_control == 0)
+- old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler);
++ {
++ old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler);
++ if (old_sigint_handler == SIG_IGN)
++ set_signal_handler (SIGINT, old_sigint_handler);
++ }
+
+ termination_state = last_command_exit_value;
+
Index: parse.y
--- parse.y.orig 2005-11-12 05:14:18 +0100
-+++ parse.y 2006-02-04 10:16:22 +0100
-@@ -3695,7 +3695,9 @@
++++ parse.y 2006-03-06 23:11:10 +0100
+@@ -2898,7 +2898,11 @@
+ }
+ else if MBTEST(qc == '`' && (ch == '"' || ch == '\'') && in_comment
== 0)
+ {
+- nestret = parse_matched_pair (0, ch, ch, &nestlen, rflags);
++ /* Add P_ALLOWESC so backslash quotes the next character and
++ shell_getc does the right thing with \<newline>. We do this for
++ a measure of backwards compatibility -- it's not strictly the
++ right POSIX thing. */
++ nestret = parse_matched_pair (0, ch, ch, &nestlen, rflags|P_ALLOWESC);
+ goto add_nestret;
+ }
+ else if MBTEST(was_dollar && (ch == '(' || ch == '{' || ch == '['))
/* ) } ] */
+@@ -2907,7 +2911,7 @@
+ if (open == ch) /* undo previous increment */
+ count--;
+ if (ch == '(') /* ) */
+- nestret = parse_matched_pair (0, '(', ')', &nestlen, rflags);
++ nestret = parse_matched_pair (0, '(', ')', &nestlen, rflags &
~P_DQUOTE);
+ else if (ch == '{') /* } */
+ nestret = parse_matched_pair (0, '{', '}', &nestlen,
P_FIRSTCLOSE|rflags);
+ else if (ch == '[') /* ] */
+@@ -3695,7 +3699,9 @@
struct builtin *b;
b = builtin_address_internal (token, 0);
if (b && (b->flags & ASSIGNMENT_BUILTIN))
@@ -224,7 +269,7 @@
}
yylval.word = the_word;
-@@ -4686,18 +4688,21 @@
+@@ -4686,18 +4692,21 @@
int *retlenp;
{
WORD_LIST *wl, *rl;
@@ -247,7 +292,7 @@
wl = (WORD_LIST *)NULL; /* ( */
parser_state |= PST_COMPASSIGN;
-@@ -4740,7 +4745,7 @@
+@@ -4740,7 +4749,7 @@
jump_to_top_level (DISCARD);
}
@@ -256,7 +301,7 @@
if (wl)
{
rl = REVERSE_LIST (wl, WORD_LIST *);
-@@ -4752,6 +4757,10 @@
+@@ -4752,6 +4761,10 @@
if (retlenp)
*retlenp = (ret && *ret) ? strlen (ret) : 0;
@@ -267,9 +312,29 @@
return ret;
}
+Index: patchlevel.h
+--- patchlevel.h.orig 2005-07-20 19:58:20 +0200
++++ patchlevel.h 2006-03-06 23:11:10 +0100
+@@ -25,6 +25,6 @@
+ regexp `^#define[ ]*PATCHLEVEL', since that's what
support/mkversion.sh
+ looks for to find the patch level (for the sccs version string). */
+
+-#define PATCHLEVEL 0
++#define PATCHLEVEL 11
+
+ #endif /* _PATCHLEVEL_H_ */
Index: subst.c
---- subst.c.orig 2006-02-04 10:16:22 +0100
-+++ subst.c 2006-02-04 10:16:22 +0100
+--- subst.c.orig 2005-10-24 15:51:13 +0200
++++ subst.c 2006-03-06 23:11:09 +0100
+@@ -2187,7 +2187,7 @@
+ if (mklocal && variable_context)
+ {
+ v = find_variable (name);
+- if (v == 0 || array_p (v) == 0)
++ if (v == 0 || array_p (v) == 0 || v->context != variable_context)
+ v = make_local_array_variable (name);
+ v = assign_array_var_from_string (v, value, flags);
+ }
@@ -6795,6 +6795,12 @@
if (temp && *temp && t_index > 0)
{
@@ -285,7 +350,7 @@
sindex += t_index;
Index: variables.c
--- variables.c.orig 2005-11-13 03:22:37 +0100
-+++ variables.c 2006-02-04 10:16:22 +0100
++++ variables.c 2006-03-06 23:11:09 +0100
@@ -860,9 +860,11 @@
{
char val[INT_STRLEN_BOUND(int) + 1], *v;
@@ -298,3 +363,89 @@
v = inttostr (lines, val, sizeof (val));
bind_variable ("LINES", v, 0);
+Index: y.tab.c
+--- y.tab.c.orig 2005-11-14 15:53:30 +0100
++++ y.tab.c 2006-03-06 23:11:41 +0100
+@@ -1,5 +1,5 @@
+
+-/* A Bison parser, made from /usr/src/local/chet/src/bash/src/parse.y
++/* A Bison parser, made from parse.y
+ by GNU Bison version 1.28 */
+
+ #define YYBISON 1 /* Identify Bison output. */
+@@ -4228,7 +4228,11 @@
+ }
+ else if MBTEST(qc == '`' && (ch == '"' || ch == '\'') && in_comment
== 0)
+ {
+- nestret = parse_matched_pair (0, ch, ch, &nestlen, rflags);
++ /* Add P_ALLOWESC so backslash quotes the next character and
++ shell_getc does the right thing with \<newline>. We do this for
++ a measure of backwards compatibility -- it's not strictly the
++ right POSIX thing. */
++ nestret = parse_matched_pair (0, ch, ch, &nestlen, rflags|P_ALLOWESC);
+ goto add_nestret;
+ }
+ else if MBTEST(was_dollar && (ch == '(' || ch == '{' || ch == '['))
/* ) } ] */
+@@ -4237,7 +4241,7 @@
+ if (open == ch) /* undo previous increment */
+ count--;
+ if (ch == '(') /* ) */
+- nestret = parse_matched_pair (0, '(', ')', &nestlen, rflags);
++ nestret = parse_matched_pair (0, '(', ')', &nestlen, rflags &
~P_DQUOTE);
+ else if (ch == '{') /* } */
+ nestret = parse_matched_pair (0, '{', '}', &nestlen,
P_FIRSTCLOSE|rflags);
+ else if (ch == '[') /* ] */
+@@ -5025,7 +5029,9 @@
+ struct builtin *b;
+ b = builtin_address_internal (token, 0);
+ if (b && (b->flags & ASSIGNMENT_BUILTIN))
+- parser_state |= PST_ASSIGNOK;
++ parser_state |= PST_ASSIGNOK;
++ else if (STREQ (token, "eval") || STREQ (token, "let"))
++ parser_state |= PST_ASSIGNOK;
+ }
+
+ yylval.word = the_word;
+@@ -6016,18 +6022,21 @@
+ int *retlenp;
+ {
+ WORD_LIST *wl, *rl;
+- int tok, orig_line_number, orig_token_size;
++ int tok, orig_line_number, orig_token_size, orig_last_token, assignok;
+ char *saved_token, *ret;
+
+ saved_token = token;
+ orig_token_size = token_buffer_size;
+ orig_line_number = line_number;
++ orig_last_token = last_read_token;
+
+ last_read_token = WORD; /* WORD to allow reserved words here */
+
+ token = (char *)NULL;
+ token_buffer_size = 0;
+
++ assignok = parser_state&PST_ASSIGNOK; /* XXX */
++
+ wl = (WORD_LIST *)NULL; /* ( */
+ parser_state |= PST_COMPASSIGN;
+
+@@ -6070,7 +6079,7 @@
+ jump_to_top_level (DISCARD);
+ }
+
+- last_read_token = WORD;
++ last_read_token = orig_last_token; /* XXX - was WORD? */
+ if (wl)
+ {
+ rl = REVERSE_LIST (wl, WORD_LIST *);
+@@ -6082,6 +6091,10 @@
+
+ if (retlenp)
+ *retlenp = (ret && *ret) ? strlen (ret) : 0;
++
++ if (assignok)
++ parser_state |= PST_ASSIGNOK;
++
+ return ret;
+ }
+
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg/openpkg.spec
============================================================================
$ cvs diff -u -r1.468 -r1.469 openpkg.spec
--- openpkg-src/openpkg/openpkg.spec 27 Feb 2006 21:24:58 -0000 1.468
+++ openpkg-src/openpkg/openpkg.spec 6 Mar 2006 22:32:58 -0000 1.469
@@ -38,7 +38,7 @@
# o any cc(1)
# the package version/release
-%define V_openpkg 20060227
+%define V_openpkg 20060306
# the used software versions
%define V_rpm 4.2.1
@@ -569,6 +569,8 @@
sh $shtool subst \
-e 's;@l_openpkg_release@;OpenPKG;' \
version.c
+ sleep 1
+ touch y.tab.[ch]
) || exit $?
( cd beecrypt-%{V_beecrypt}
${l_patch} -p0 <`SOURCE beecrypt.patch`
@@ .
______________________________________________________________________
The OpenPKG Project www.openpkg.org
CVS Repository Commit List [email protected]