tags 471747 + patch fixed-upstream pending thanks Raphael Hertzog <[EMAIL PROTECTED]> writes:
> Package: sbuild > Version: 0.57.0-1 > Severity: important > > sbuild parse the output of dpkg-source to find out the name of the > directory containing the extracted source package. This is a bad idea > as it will break as soon as dpkg-source's output changes. I applied the following patch, explictly setting the build directory instead of parsing the output. Ryan, I didn't see any commit to your SVN, so feel free to adapt this. This will be uploaded shortly. It's tagged in git as sbuild-0.57.1. http://git.debian.org/?p=buildd-tools/sbuild.git;a=commit;h=0668d724b847010c41e1f47edfbf9f6bd690bae2 http://git.debian.org/?p=buildd-tools/sbuild.git;a=commitdiff;h=c1e3cbc8699da54f9f540bdabc6436a128eaa668 Regards, Roger diff --git a/ChangeLog b/ChangeLog index 933518b..d4e06b0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-03-27 Roger Leigh <[EMAIL PROTECTED]> + + * bin/sbuild (build): Don't parse output of dpkg-source. Specify + the build directory explicity. + 2008-03-08 Roger Leigh <[EMAIL PROTECTED]> * bin/sbuild: Pass date to open_pkg_log. Pass current job and diff --git a/bin/sbuild b/bin/sbuild index 68fe0be..e319229 100755 --- a/bin/sbuild +++ b/bin/sbuild @@ -602,35 +602,16 @@ sub build ($$) { if (-d $tmpunpackdir) { system ("rm -fr '$tmpunpackdir'"); } - $main::sub_pid = open( PIPE, "-|" ); - if (!defined $main::sub_pid) { - print PLOG "Can't spawn dpkg-source: $!\n"; - return 0; - } - if ($main::sub_pid == 0) { - exec_command("$conf::dpkg_source -sn -x $dsc 2>&1", $main::username, 1, 0); - } + $dir = "$dsc"; + $dir =~ s/\.dsc$//; $main::sub_task = "dpkg-source"; - - while( <PIPE> ) { - print PLOG $_; - $dir = $1 if /^dpkg-source: extracting \S+ in (\S+)/; - $main::pkg_fail_stage = "unpack-check" - if /^dpkg-source: error: file.*instead of expected/; - } - close( PIPE ); - undef $main::sub_pid; + run_command("$conf::dpkg_source -sn -x $dsc $dir 2>&1", $main::username, 1, 0); if ($?) { print PLOG "FAILED [dpkg-source died]\n"; system ("rm -fr '$tmpunpackdir'") if -d $tmpunpackdir; return 0; } - if (!$dir) { - print PLOG "Couldn't find directory of $dsc in dpkg-source output\n"; - system ("rm -fr '$tmpunpackdir'") if -d $tmpunpackdir; - return 0; - } $dir = "$main::chroot_build_dir/$dir"; if (system( "chmod -R g-s,go+rX $dir" ) != 0) { diff --git a/debian/changelog b/debian/changelog index d9925bc..4565a36 100644 --- a/debian/changelog +++ b/debian/changelog @@ -11,8 +11,9 @@ sbuild (0.57.1-1) unstable; urgency=low * debian/schroot.install: use /usr/share in place of /usr/lib (Closes: #458779). * debian/wanna-build.install: New file: files for wanna-build. + * sbuild: Don't parse output of dpkg-source (Closes: #471747). - -- Roger Leigh <[EMAIL PROTECTED]> Sat, 26 Jan 2008 21:12:55 +0000 + -- Roger Leigh <[EMAIL PROTECTED]> Thu, 27 Mar 2008 20:42:56 +0000 sbuild (0.57.0-1) unstable; urgency=low -- .''`. Roger Leigh : :' : Debian GNU/Linux http://people.debian.org/~rleigh/ `. `' Printing on GNU/Linux? http://gutenprint.sourceforge.net/ `- GPG Public Key: 0x25BFB848 Please GPG sign your mail.
pgpXPfPHyi6wq.pgp
Description: PGP signature

