Package: devscripts
Version: 2.10.35
Severity: normal
Tags: patch
User: [EMAIL PROTECTED]
Usertags: origin-ubuntu ubuntu-patch intrepid

strace 4.5.17 dropped the separate -F option for following vforks,
saying (in its NEWS file) "-F is now deprecated, -f has traced vfork too
on Linux for a long time now". This is implemented as follows:

                case 'F':
                        /* Obsoleted, acts as `-f'.  */
                case 'f':
                        followfork++;
                        break;

The effect of this is that -f -F works like -ff, namely it causes
process traces to be written to <filename>.<pid> rather than simply to
<filename>. This completely breaks dpkg-depcheck, which expects the
whole trace to land in one file.

I don't know exactly when 'strace -f' started to follow vfork on Linux,
but I suspect it might be this commit, which would make it version
4.4.93:

2003-01-17  Anton Blanchard <[EMAIL PROTECTED]>

        * util.c [LINUX] (setbpt): Handle SYS_vfork like SYS_fork.

        * linux/syscall.h (SYS_socket_subcall): 256 also for POWERPC.

At any rate I tried a trivial test program on Debian stable and I've
confirmed that 'strace -f' follows vfork there, so I think the most
reasonable fix is simply to drop -F from dpkg-depcheck's strace
invocation. Patch attached (including a changelog entry but obviously
not this bug number).

Thanks,

-- 
Colin Watson                                       [EMAIL PROTECTED]
Index: debian/changelog
===================================================================
--- debian/changelog	(revision 1614)
+++ debian/changelog	(working copy)
@@ -73,6 +73,13 @@
   * bts: document that the cache auto-cleaning is overzealous on noatime
     partitions. Patch from intrigeri <[EMAIL PROTECTED]>. (Closes: #488486)
 
+  [ Colin Watson ]
+  * dpkg-depcheck: Remove -F in order to be compatible with current strace.
+    I'm not sure exactly when plain 'strace -f' started being able to follow
+    vfork on Linux, but it's at least as long ago as Debian 4.0, possibly
+    strace 4.4.93 which would place it before Debian 3.1, so a dependency
+    doesn't seem to be necessary.
+
  -- Mohammed Adnène Trojette <[EMAIL PROTECTED]>  Sat, 30 Aug 2008 19:58:43 +0200
 
 devscripts (2.10.35) unstable; urgency=low
Index: scripts/dpkg-depcheck.pl
===================================================================
--- scripts/dpkg-depcheck.pl	(revision 1614)
+++ scripts/dpkg-depcheck.pl	(working copy)
@@ -391,7 +391,7 @@
 	$file = $opts{"strace-output"} || `tempfile -p depcheck`;
 	chomp $file;
 	$file =~ s%^(\s)%./$1%;
-	my @strace_cmd=('strace', '-e', 'trace=open,execve',  '-f', '-F',
+	my @strace_cmd=('strace', '-e', 'trace=open,execve',  '-f',
 			'-q', '-o', $file, @_);
 	$ENV{'LD_PRELOAD'} = $trace_preload;
 	$ENV{'LC_ALL'}="C" if $opts{"C"};

Reply via email to