[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: dpt takeover throwing an exception



On Sun, 25 Oct 2020 16:16:32 +1030, Ken Ibbotson wrote:

> I have been endeavouring to adopt 'libintl-perl', however the execution of
> 'dpt takeover' is throwing an error for a missing `debian/changelog' in the
> package description.

Hm, not nice.
 
> dpt takeover libintl-perl -a 945988 -n

> 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
> 185, in main
>     if importer.importdsc(dsc):
>   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
> 529, 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
> 115, in get_author_from_changelog
>     dch = ChangeLog(filename=os.path.join(dir, 'debian/changelog'))
>   File "/usr/lib/python3/dist-packages/gbp/deb/changelog.py", line 84, in
> __init__
>     raise NoChangeLogError("Changelog %s not found" % (filename, ))
> gbp.deb.changelog.NoChangeLogError: Changelog
> /home/keni/src/pkg-perl/packages/tmpe8bg7289/libintl-perl-1.20/debian/changelog
> not found

So that's gbp-import-dscs bailing out.
 
> The code doing the work is Python - not my forte, but viewing through the
> call stack I can see where the issue is happening.

I'd check if there is a bug filed against git-buildpackage already,
and file one if not.
You should be able to reproduce the issue with just

gbp import-dscs --debsnap --pristine-tar $PACKAGE

(taken from dpt-takeover code)

> This is my first execution of the script, so not sure if the following is
> an option - based on updates performed.
> Perhaps someone is able to guide me through circumvention of the Python
> exception to complete the 'takeover' script, and thereby leave the option
> open to add the missing entry manually to the change log, assuming that we
> can locate the actual text

(The changelog entry won't be missing as it should be in that last
version anyway.)

A simple option whould be to just download the last version of
libintl-perl, create a Git repo with gbp-import-dsc, and then run

dpt packagecheck -a -A -C -p \"$PACKAGE\" -c -H -V -n

(or some version thereof; aga taken from dpt-takeover).

More involved would be to download all versions of libintl-perl with
debsnap, then run gbp-import-dsc on all of them (where at least 1.20
will bailout again), and then continue with dpt-packagecheck.


Maybe dgit could help as well; not sure …


And I wouldn't spend too much time on this; importing all versions
into a new Git repo is nice, but ultimately we need the last upload,
change it, bring it into our Git namespace and upload it.


Cheers,
gregor

-- 
 .''`.  https://info.comodo.priv.at -- Debian Developer https://www.debian.org
 : :' : OpenPGP fingerprint D1E1 316E 93A7 60A8 104D  85FA BB3A 6801 8649 AA06
 `. `'  Member VIBE!AT & SPI Inc. -- Supporter Free Software Foundation Europe
   `-   NP: Bettina Wegner: wenn du mir nicht mehr ins gesicht siehst

Attachment: signature.asc
Description: Digital Signature


Reply to: