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
signature.asc
Description: PGP signature