On 2016-09-01 21:44, Aurelien Jarno wrote:
> control: severity -1 serious
> 
> On 2016-08-11 00:55, Aurelien Jarno wrote:
> > Package: csh
> > Version: 20110502-2.1
> > Severity: important
> > Tags: patch upstream
> > 
> > Dear Maintainer,
> > 
> > glibc 2.24 has removed the deprecated BSD union wait type if favor of
> > the POSIX.1 interface using W* macros from <sys/wait.h> (such as
> > WEXITSTATUS).
> > 
> > glibc 2.24 is already available in experimental and will plan to upload
> > it to sid in the next days/weeks. This will cause csh to fail to build
> > from source. You will find attached a patch to fix the issue. It
> > unconditionally uses the "new" interface, but it should be available on
> > all recent UNIXes including the BSDs given POSIX.1 dates back from 1988.
> > The GNU libc has it since at least 1995, probably even earlier.
> > 
> > Please also note that this will not break the existing binaries, just
> > building the package from source.
> 
> glibc 2.24 is now in unstable, so I am upgrading the severity of this 
> bug to serious. If you don't have time to fix this bug, I can do a 
> non-maintainer upload with the patch which is in the bug log.

I have just done a non maintainer upload to fix this issue. Please find
the diff attached.

Aurelien

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
aurel...@aurel32.net                 http://www.aurel32.net
diff -Nru csh-20110502/debian/changelog csh-20110502/debian/changelog
--- csh-20110502/debian/changelog	2014-07-18 03:29:15.000000000 +0200
+++ csh-20110502/debian/changelog	2016-09-30 18:25:06.000000000 +0200
@@ -1,3 +1,11 @@
+csh (20110502-2.2) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Add patches/12_glibc_union_wait.diff to remove usage of deprecated BSD
+    union wait type. Fixes the FTBFS against glibc 2.24 (Closes: #833968).
+
+ -- Aurelien Jarno <aure...@debian.org>  Fri, 30 Sep 2016 18:25:06 +0200
+
 csh (20110502-2.1) unstable; urgency=low
 
   * Non-maintainer upload.
diff -Nru csh-20110502/debian/patches/12_glibc_union_wait.diff csh-20110502/debian/patches/12_glibc_union_wait.diff
--- csh-20110502/debian/patches/12_glibc_union_wait.diff	1970-01-01 01:00:00.000000000 +0100
+++ csh-20110502/debian/patches/12_glibc_union_wait.diff	2016-09-30 18:22:54.000000000 +0200
@@ -0,0 +1,48 @@
+--- csh-20110502.orig/proc.c
++++ csh-20110502/proc.c
+@@ -81,13 +81,13 @@ pchild(int notused)
+     int pid;
+     extern int insource;
+     int save_errno = errno;
+-    union wait w;
++    int w;
+     int     jobflags;
+     struct rusage ru;
+ 
+ loop:
+     errno = 0;			/* reset, just in case */
+-    pid = wait3(&w.w_status,
++    pid = wait3(&w,
+        (setintr && (intty || insource) ? WNOHANG | WUNTRACED : WNOHANG), &ru);
+ 
+     if (pid <= 0) {
+@@ -109,7 +109,7 @@ found:
+     pp->p_flags &= ~(PRUNNING | PSTOPPED | PREPORTED);
+     if (WIFSTOPPED(w)) {
+ 	pp->p_flags |= PSTOPPED;
+-	pp->p_reason = w.w_stopsig;
++	pp->p_reason = WSTOPSIG(w);
+     }
+     else {
+ 	if (pp->p_flags & (PTIME | PPTIME) || adrof(STRtime))
+@@ -117,16 +117,16 @@ found:
+ 
+ 	pp->p_rusage = ru;
+ 	if (WIFSIGNALED(w)) {
+-	    if (w.w_termsig == SIGINT)
++	    if (WTERMSIG(w) == SIGINT)
+ 		pp->p_flags |= PINTERRUPTED;
+ 	    else
+ 		pp->p_flags |= PSIGNALED;
+-	    if (w.w_coredump)
++	    if (WCOREDUMP(w))
+ 		pp->p_flags |= PDUMPED;
+-	    pp->p_reason = w.w_termsig;
++	    pp->p_reason = WTERMSIG(w);
+ 	}
+ 	else {
+-	    pp->p_reason = w.w_retcode;
++	    pp->p_reason = WEXITSTATUS(w);
+ 	    if (pp->p_reason != 0)
+ 		pp->p_flags |= PAEXITED;
+ 	    else
diff -Nru csh-20110502/debian/patches/series csh-20110502/debian/patches/series
--- csh-20110502/debian/patches/series	2011-05-13 13:47:58.000000000 +0200
+++ csh-20110502/debian/patches/series	2016-09-30 18:23:06.000000000 +0200
@@ -9,3 +9,4 @@
 09_sys_signame.diff
 10_groff_no_sgr.diff
 11_groff_schar.diff
+12_glibc_union_wait.diff

Attachment: signature.asc
Description: PGP signature

Reply via email to