• Bug#1069971: git-buildpackage: import-dsc/import-dscs fail with TypeErr

    From Petter Reinholdtsen@21:1/5 to All on Sat Apr 27 23:20:01 2024
    Package: git-buildpackage
    Version: 0.9.30

    When trying to bootstrap a git repository with the snapshotted uploads
    of nitpick using 'gbp import-dscs', this fail with the following error:

    File Imakefile is read-only; trying to patch anyway
    File XPICsim is read-only; trying to patch anyway
    File pu_defs.h is read-only; trying to patch anyway
    File pu_lib.c is read-only; trying to patch anyway
    Traceback (most recent call last):
    File "/usr/bin/gbp", line 149, in <module>
    sys.exit(supercommand())
    ^^^^^^^^^^^^^^
    File "/usr/bin/gbp", line 145, in supercommand
    return module.main(args)
    ^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/gbp/scripts/import_dscs.py", line 180, in main
    if importer.importdsc(dscs[0]):
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/gbp/scripts/import_dscs.py", line 72, in importdsc
    return import_dsc.main(['import-dsc'] + self.args + [dsc.dscfile])
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/gbp/scripts/import_dsc.py", line 531, in main
    apply_debian_patch(repo, sources[0], dsc, commit, options)
    File "/usr/lib/python3/dist-packages/gbp/scripts/import_dsc.py", line 175, in apply_debian_patch
    author = get_author_from_changelog(source.unpacked)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/gbp/scripts/import_dsc.py", line 116, in get_author_from_changelog
    date = rfc822_date_to_git(dch.date, fuzzy=True)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/gbp/git/__init__.py", line 44, in rfc822_date_to_git
    d = dateutil.parser.parse(rfc822_date, fuzzy=fuzzy)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/dateutil/parser/_parser.py", line 1368, in parse
    return DEFAULTPARSER.parse(timestr, **kwargs)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/dateutil/parser/_parser.py", line 640, in parse
    res, skipped_tokens = self._parse(timestr, **kwargs)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/dateutil/parser/_parser.py", line 719, in _parse
    l = _timelex.split(timestr) # Splits the timestr into tokens
    ^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/dateutil/parser/_parser.py", line 201, in split
    return list(cls(s))
    ^^^^^^
    File "/usr/lib/python3/dist-packages/dateutil/parser/_parser.py", line 69, in __init__
    raise TypeError('Parser must be a string or character stream, not ' TypeError: Parser must be a string or character stream, not NoneType


    A simple way to reproduce it is to download the nitpic_0.1-1.dsc source
    package and try to import it into a fresh 'git init' directory like
    this:

    gbp import-dsc --pristine-tar ../nitpic_0.1-1.dsc

    I suspect the problem is the d/changelog entry:

    nitpic (0.1-1) unstable; urgency=low

    * Initial release.

    -- <klee@debian.org> Fri, 7 Feb 1997 00:02:50 -0500

    Perhaps it is unable to handle no name in front of the mail address?

    --
    Happy hacking
    Petter Reinholdtsen

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)