Hi Jordan,
On Wed, Aug 15, 2012 at 06:52:53PM -0500, Jordan Webb wrote:
> Package: git-buildpackage
> Version: 0.6.0~git20120601
> Severity: normal
> 
> *** Please type your report below this line ***
> git-import-dscs works fine for me on most packages I've tried so far, but it 
> fails when I try to import apache2 (version 2.2.16-6+squeeze7)
> 
> Here is the output I am getting (the lines are prefixed with timestamps from 
> our build system):
> 
> 2012/08/15 13:02:55 git-import-dscs stderr: Traceback (most recent call last):
> 2012/08/15 13:02:55 git-import-dscs stderr:   File 
> "/usr/bin/git-import-dscs", line 5, in <module>
> 2012/08/15 13:02:55 git-import-dscs stderr:     sys.exit(main(sys.argv))
> 2012/08/15 13:02:55 git-import-dscs stderr:   File 
> "/usr/lib/python2.6/dist-packages/gbp/scripts/import_dscs.py", line 146, in 
> main
> 2012/08/15 13:02:55 git-import-dscs stderr:     importer.importdsc(dscs[0])
> 2012/08/15 13:02:55 git-import-dscs stderr:   File 
> "/usr/lib/python2.6/dist-packages/gbp/scripts/import_dscs.py", line 44, in 
> impor$
> 2012/08/15 13:02:55 git-import-dscs stderr:     
> import_dsc.main(['git-import-dsc'] + self.args + [dsc.dscfile])
> 2012/08/15 13:02:55 git-import-dscs stderr:   File 
> "/usr/lib/python2.6/dist-packages/gbp/scripts/import_dsc.py", line 349, in 
> main
> 2012/08/15 13:02:55 git-import-dscs stderr:     apply_debian_patch(repo, 
> upstream.unpacked, src, options, parents)
> 2012/08/15 13:02:55 git-import-dscs stderr:   File 
> "/usr/lib/python2.6/dist-packages/gbp/scripts/import_dsc.py", line 129, in 
> apply$
> 2012/08/15 13:02:55 git-import-dscs stderr:     author = 
> get_author_from_changelog(unpack_dir)
> 2012/08/15 13:02:55 git-import-dscs stderr:   File 
> "/usr/lib/python2.6/dist-packages/gbp/scripts/import_dsc.py", line 93, in 
> get_au$
> 2012/08/15 13:02:55 git-import-dscs stderr:     dch = 
> ChangeLog(filename=os.path.join(dir, 'debian/changelog'))
> 2012/08/15 13:02:55 git-import-dscs stderr:   File 
> "/usr/lib/python2.6/dist-packages/gbp/deb/changelog.py", line 87, in __init__
> 2012/08/15 13:02:55 git-import-dscs stderr:     self._parse()
> 2012/08/15 13:02:55 git-import-dscs stderr:   File 
> "/usr/lib/python2.6/dist-packages/gbp/deb/changelog.py", line 95, in _parse
> 2012/08/15 13:02:55 git-import-dscs stderr:     (output, errors) = 
> cmd.communicate(self._contents)
> 2012/08/15 13:02:55 git-import-dscs stderr:   File 
> "/usr/lib/python2.6/subprocess.py", line 691, in communicate
> 2012/08/15 13:02:55 git-import-dscs stderr:     return 
> self._communicate(input)
> 2012/08/15 13:02:55 git-import-dscs stderr:   File 
> "/usr/lib/python2.6/subprocess.py", line 1222, in _communicate
> 2012/08/15 13:02:55 git-import-dscs stderr:     bytes_written = 
> os.write(self.stdin.fileno(), chunk)
> 2012/08/15 13:02:55 git-import-dscs stderr: OSError: [Errno 32] Broken pipe
> 
> From what I've been able to discover with the Python debugger, it
> appears that dpkg-parsechangelog might be closing its stdin before
> gbp.deb.changelog.ChangeLog has finished writing the entire changelog
> to it. I tried running dpkg-parsechangelog myself on the same
> changelog and did not receive any apparent errors.

This only seems to happen with python2.6, 2.7 (wheezy) looks fine. I'll
try to find the time to have a closer look.
Cheers,
 -- Guido

> 
> I created a small script that only tries to parse the changelog in
> question using gbp.deb.changelog.ChangeLog, and it blows up with a
> similar error:
> 
> Traceback (most recent call last):
>   File "test_changelog.py", line 5, in <module>
>     changelog = ChangeLog(filename='apache_changelog')
>   File "/usr/lib/python2.6/dist-packages/gbp/deb/changelog.py", line 87, in 
> __init__
>     self._parse()
>   File "/usr/lib/python2.6/dist-packages/gbp/deb/changelog.py", line 95, in 
> _parse
>     (output, errors) = cmd.communicate(self._contents)
>   File "/usr/lib/python2.6/subprocess.py", line 691, in communicate
>     return self._communicate(input)
>   File "/usr/lib/python2.6/subprocess.py", line 1222, in _communicate
>     bytes_written = os.write(self.stdin.fileno(), chunk)
> OSError: [Errno 32] Broken pipe
> 
> My test script and the changelog that is causing me problems are attached to 
> this message.
> 
> -- System Information:
> Debian Release: 6.0.5
>   APT prefers stable-updates
>   APT policy: (500, 'stable-updates'), (500, 'stable')
> Architecture: amd64 (x86_64)
> 
> Kernel: Linux 2.6.32-5-amd64 (SMP w/1 CPU core)
> Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
> Shell: /bin/sh linked to /bin/dash
> 
> Versions of packages git-buildpackage depends on:
> ii  devscripts            2.10.69+squeeze2   scripts to make the life of a 
> Debi
> ii  git                   1:1.7.10-1~bpo60+1 fast, scalable, distributed 
> revisi
> ii  python                2.6.6-3+squeeze7   interactive high-level 
> object-orie
> ii  python-dateutil       1.4.1-3            powerful extensions to the 
> standar
> ii  python2.6             2.6.6-8+b1         An interactive high-level 
> object-o
> 
> Versions of packages git-buildpackage recommends:
> ii  cowbuilder                    0.62+nmu2  pbuilder running on cowdancer
> ii  pristine-tar                  1.03       regenerate pristine tarballs
> 
> Versions of packages git-buildpackage suggests:
> pn  python-notify                 <none>     (no description available)
> ii  unzip                         6.0-4      De-archiver for .zip files
> 
> -- no debconf information
> 


> #!/usr/bin/python
> 
> from gbp.deb.changelog import ChangeLog
> 
> changelog = ChangeLog(filename='apache_changelog')
> 


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to