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

Re: Request for Review / Upload libintl-perl



Apologies for the length of the email.

I have started processing the `libintl-perl` changes manually using:
gbp import-dsc --verbose ../source-libintl-perl/libintl-perl_1.20-1.dsc
Note `~/.gbp.conf` has the default options set for `pristine-tar` etc.

Everything has gone as planned in your previous email, until we get to the point of break at the above version.

I noted with interest - based on How to unpack a Debian source package, that prior to 1.20-1 (above) has format 1.0, whereas from 1.20-1 onwards the format is 3.0 (quilt).

Following the process yields  a project folder for 1.20.
Time to follow the `gbp import-dsc` process to see what is happening.

Step 1 - what do we have in the temporary folder after unpacking?
I updated my local version of `/lib/python3/dist-packages/gbp/scripts/import_dsc.py` to stop the `tmp` folder being removed on failure.
Ran the import, yielding the same result:
gbp import-dsc --verbose ../source-libintl-perl/libintl-perl_1.20-1.dsc
gbp:debug: ['git', 'rev-parse', '--show-cdup']
gbp:debug: ['git', 'rev-parse', '--is-bare-repository']
gbp:debug: ['git', 'rev-parse', '--git-dir']
gbp:debug: ['git', 'for-each-ref', '--format=%(refname:short)', 'refs/heads/']
gbp:debug: ['git', 'status', '--porcelain']
gbp:debug: Upstream version: 1.20
gbp:debug: Debian version: 1
gbp:debug: Upstream tarball: /home/keni/src/pkg-perl/packages/source-libintl-perl/libintl-perl_1.20.orig.tar.gz
gbp:debug: Debian patch: /home/keni/src/pkg-perl/packages/source-libintl-perl/libintl-perl_1.20-1.debian.tar.gz
gbp:debug: tar ['--exclude=.gitignore', '--exclude=debian/*', '--exclude=.git/*', '--exclude=.git', '-C', '/home/keni/src/pkg-perl/packages/tmp95ak6wa1', '-a', '-xf', '/home/keni/src/pkg-perl/packages/source-libintl-perl/libintl-perl_1.20.orig.tar.gz'] []
gbp:debug: ['git', 'tag', '-l', 'debian/1.20-1']
gbp:debug: ['git', 'tag', '-l', 'debian/1.20-1']
gbp:debug: ['git', 'tag', '-l', 'upstream/1.20']
gbp:debug: ['git', 'rev-parse', '--quiet', '--verify', 'upstream/1.20^0']
gbp:debug: ['git', 'tag', '-l', 'upstream/1.20']
gbp:debug: ['git', 'rev-parse', '--quiet', '--verify', 'upstream/1.20^0']
gbp:debug: ['git', 'show-ref', '--verify', 'refs/heads/master']
gbp:debug: tar ['--exclude=.gitignore', '--exclude=debian/*', '--exclude=.git/*', '--exclude=.git', '-C', '.', '-a', '-xf', '/home/keni/src/pkg-perl/packages/source-libintl-perl/libintl-perl_1.20-1.debian.tar.gz'] []
gbp:debug: ['git', 'rev-parse', '--quiet', '--verify', 'c4f8aaef153903f678dd29928f4550b19f3aca8c^{commit}']
gbp:debug: ['git', 'branch', '--contains', 'c4f8aaef153903f678dd29928f4550b19f3aca8c']
gbp:debug: Tag 'c4f8aaef153903f678dd29928f4550b19f3aca8c' not yet merged into 'master'
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_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/tmp95ak6wa1/libintl-perl-1.20/debian/changelog not found
The `debian` folder exists but it is empty.
Manually unpacking the `libintl-perl_1.20-1.debian.tar.gz` shows that the files are present.
Which seems to imply that the unpack under python, though never yielded an exception.


Step 2 - trace the unpack process.
One line in the above output yields that we are telling `tar` to ignore the `debian/*` content:
gbp:debug: tar ['--exclude=.gitignore', '--exclude=debian/*', '--exclude=.git/*', '--exclude=.git', '-C', '.', '-a', '-xf', '/home/keni/src/pkg-perl/packages/source-libintl-perl/libintl-perl_1.20-1.debian.tar.gz'] []

Found it!
Curses!
Blindly following examples on web pages, and have shot myself in the foot.
The Git guide git - Debian Perl Group Packaging and Git Guide under `Tips and Tricks` has an entry Prevent surprises in the upstream tarball which includes the following inclusion for the `gbp.conf` file:
[import-dsc]
filter = [ '.gitignore', 'debian/*', '.git/*', '.git' ]
After removing the `debian/*` entry from the above line in the `gbp.conf`, all individual versions complete normally.

Is there any reason why the web page entry should not be updated to prevent further people experiencing the same issue?


Step 3 - Execute takeover for the whole to make sure it woks.
Running the takeover did not complete successfully:
dpt takeover libintl-perl -a 945988 -n

The local repository was created okay, but for some reason the `-n` was ignored and a push to salsa occurred.
Oh, it is only the pristine tar being pushed based on `gbp.conf`, which explains the error for held changes.

Try this again without the `-n` option.
dpt takeover libintl-perl -a 945988
***
*** Taking over libintl-perl
***
gbp:info: Downloading snapshots of 'libintl-perl' to '/tmp/tmpfv07857w'...
gbp:info: No git repository found, creating one.
gbp:info: Version '1.11-1' imported under '/home/keni/src/pkg-perl/packages/libintl-perl'
gbp:info: Version '1.11-2' imported under '/home/keni/src/pkg-perl/packages/libintl-perl'
gbp:info: Version '1.16-1' imported under '/home/keni/src/pkg-perl/packages/libintl-perl'
gbp:info: Version '1.16-2' imported under '/home/keni/src/pkg-perl/packages/libintl-perl'
gbp:info: Version '1.16-3' imported under '/home/keni/src/pkg-perl/packages/libintl-perl'
gbp:info: Version '1.16-4' imported under '/home/keni/src/pkg-perl/packages/libintl-perl'
gbp:info: Version '1.20-1' imported under '/home/keni/src/pkg-perl/packages/libintl-perl'
gbp:info: Version '1.23-1' imported under '/home/keni/src/pkg-perl/packages/libintl-perl'
gbp:info: Version '1.23-1+deb8u1' imported under '/home/keni/src/pkg-perl/packages/libintl-perl'
gbp:info: Version '1.24-1' imported under '/home/keni/src/pkg-perl/packages/libintl-perl'
gbp:info: Version '1.26-1' imported under '/home/keni/src/pkg-perl/packages/libintl-perl'
gbp:info: Version '1.26-2' imported under '/home/keni/src/pkg-perl/packages/libintl-perl'
gbp:info: Version '1.26-2.1' imported under '/home/keni/src/pkg-perl/packages/libintl-perl'
gbp:info: Everything imported under /home/keni/src/pkg-perl/packages/libintl-perl
Pushing to git@salsa.debian.org:perl-team/modules/packages/libintl-perl.git
To salsa.debian.org:perl-team/modules/packages/libintl-perl.git
 ! [rejected]        master -> master (fetch first)
 ! [rejected]        pristine-tar -> pristine-tar (fetch first)
 ! [rejected]        upstream -> upstream (fetch first)
error: failed to push some refs to 'git@salsa.debian.org:perl-team/modules/packages/libintl-perl.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
push --all --verbose --set-upstream origin: command returned error: 1
Oh, still have previous attempt up on salsa at:
https://salsa.debian.org/perl-team/modules/packages/libintl-perl
I do not have access to remove the project, but not sure if that is the right way to go either.

I do know that the process is now working, and only failing on the upload to salsa.
Can we delete the existing upstream salsa version?

--
Ken Ibbotson
E: keni@computer.org

"Reality is merely an illusion, albeit a very persistent one."
    - Albert Einstein (1879-1955)


On Sat, 28 Nov 2020 at 06:43, gregor herrmann <gregoa@debian.org> wrote:
On Fri, 27 Nov 2020 20:31:07 +1030, Ken Ibbotson wrote:

> Package: libintl-perl
> Origin: remote.origin.url="" href="mailto:git@salsa.debian.org" target="_blank">git@salsa.debian.org:
> perl-team/modules/packages/libintl-perl.git

I don't have the time for a real review right now (and I want to play
a bit more with the question if and how we can get the old versions
into git, where something is missing on snapshots), but: The repo
looks incomplete, there's only a master branch, no pristine-tar or
upstream branches, and also no upstream tag.

If you have them locally please push them; if not we'll think about
ways about restarting :)


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: Beatles: Fool On The Hill

Reply to: