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