rpms/bison/devel bison-2.4-reap_subpipe.patch, NONE, 1.1 bison.spec, 1.35, 1.36

Petr Machata pmachata at fedoraproject.org
Thu Nov 20 14:11:16 UTC 2008


Author: pmachata

Update of /cvs/pkgs/rpms/bison/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv443

Modified Files:
	bison.spec 
Added Files:
	bison-2.4-reap_subpipe.patch 
Log Message:
- Rebase to 2.4
- Resolves: #471183


bison-2.4-reap_subpipe.patch:

--- NEW FILE bison-2.4-reap_subpipe.patch ---
diff -urp bison-2.4-pm/lib/subpipe.c bison-2.4/lib/subpipe.c
--- bison-2.4-pm/lib/subpipe.c	2008-07-14 10:56:12.000000000 +0200
+++ bison-2.4/lib/subpipe.c	2008-11-20 14:37:42.000000000 +0100
@@ -143,7 +143,9 @@ create_subpipe (char const * const *argv
 }
 
 
-/* Wait for the subprocess to exit.  */
+/* Wait for the subprocess to exit.  PROGRAM==NULL means errors
+   shouldn't be emitted, typically becuase we are reaping the subpipe
+   in response to some other error. */
 
 void
 reap_subpipe (pid_t pid, char const *program)
@@ -151,11 +153,14 @@ reap_subpipe (pid_t pid, char const *pro
 #if HAVE_WAITPID || defined waitpid
   int wstatus;
   if (waitpid (pid, &wstatus, 0) < 0)
-    error (EXIT_FAILURE, errno, "waitpid");
+    {
+      if (program)
+	error (EXIT_FAILURE, errno, "waitpid");
+    }
   else
     {
       int status = WIFEXITED (wstatus) ? WEXITSTATUS (wstatus) : -1;
-      if (status)
+      if (status && program)
 	error (EXIT_FAILURE, 0,
 	       _(status == 126
 		 ? "subsidiary program `%s' could not be invoked"
diff -urp bison-2.4-pm/src/output.c bison-2.4/src/output.c
--- bison-2.4-pm/src/output.c	2008-11-02 19:09:10.000000000 +0100
+++ bison-2.4/src/output.c	2008-11-20 14:39:08.000000000 +0100
@@ -467,6 +467,21 @@ prepare_actions (void)
 | Call the skeleton parser.  |
 `---------------------------*/
 
+static pid_t pid = 0;
+
+/* Clean up opened pipe. */
+static void
+die (void)
+{
+  static int dying = 0;
+  if (pid && !dying)
+    {
+      dying = 1;
+      reap_subpipe (pid, NULL);
+      pid = 0;
+    }
+}
+
 static void
 output_skeleton (void)
 {
@@ -474,7 +489,6 @@ output_skeleton (void)
   FILE *out;
   int filter_fd[2];
   char const *argv[9];
-  pid_t pid;
 
   /* Compute the names of the package data dir and skeleton files.  */
   char const m4sugar[] = "m4sugar/m4sugar.m4";
@@ -586,6 +600,7 @@ output_skeleton (void)
   scan_skel (in);
   xfclose (in);
   reap_subpipe (pid, m4);
+  pid = 0;
   timevar_pop (TV_M4);
 }
 
@@ -653,6 +669,14 @@ prepare (void)
 void
 output (void)
 {
+  /* Register shutdown handler.  */
+  static int registered = 0;
+  if (!registered)
+    {
+      registered = 1;
+      atexit (die);
+    }
+
   obstack_init (&format_obstack);
 
   prepare_symbols ();


Index: bison.spec
===================================================================
RCS file: /cvs/pkgs/rpms/bison/devel/bison.spec,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -r1.35 -r1.36
--- bison.spec	15 Sep 2008 15:21:02 -0000	1.35
+++ bison.spec	20 Nov 2008 14:10:46 -0000	1.36
@@ -1,13 +1,14 @@
 Summary: A GNU general-purpose parser generator
 Name: bison
-Version: 2.3
-Release: 6%{?dist}
+Version: 2.4
+Release: 1%{?dist}
 License: GPLv2+
 Group: Development/Tools
 Source: ftp://ftp.gnu.org/pub/gnu/bison/bison-%{version}.tar.bz2
+Patch1: bison-2.4-reap_subpipe.patch
 URL: http://www.gnu.org/software/bison/
 BuildRoot: %{_tmppath}/%{name}-root
-BuildRequires: m4 >= 1.4
+BuildRequires: m4 >= 1.4 java-1.6.0-openjdk-devel
 Requires: m4 >= 1.4
 Requires(post): /sbin/install-info
 Requires(preun): /sbin/install-info
@@ -61,6 +62,7 @@
 
 %prep
 %setup -q
+%patch1 -p1
 
 %build
 %configure
@@ -77,6 +79,7 @@
 # Remove unpackaged files.
 rm -f $RPM_BUILD_ROOT/%{_bindir}/yacc
 rm -f $RPM_BUILD_ROOT/%{_infodir}/dir
+rm -f $RPM_BUILD_ROOT/%{_mandir}/man1/yacc*
 
 %find_lang %{name}
 %find_lang %{name}-runtime
@@ -112,6 +115,10 @@
 rm -rf $RPM_BUILD_ROOT
 
 %changelog
+* Wed Nov 12 2008 Petr Machata <pmachata at redhat.com> - 2.4-1
+- Rebase to 2.4
+- Resolves: #471183
+
 * Mon Sep 15 2008 Petr Machata <pmachata at redhat.com> - 2.3-6
 - Merge review:
   - Drop terminating dot from Summary




More information about the scm-commits mailing list