Hi,
On Sat, May 28, 2022 at 11:13:20AM +0200, Mattia Rizzolo wrote:
> On Sat, May 28, 2022 at 11:10:26AM +0200, Guido Günther wrote:
> > > You need a tree that has the component's tarball dirs dropped:
> > > 
> > > https://github.com/agx/git-buildpackage/blob/master/gbp/scripts/export_orig.py#L77
> > > 
> > > gbp-buildpackage uses the same code when generating tarballs.
> > 
> > Is there still an issue with opencv and it's additional tarball that I
> > could reproduce?
> 
> I don't think so.   I understand now that in those cases I need to use
> `gbp export-orig` instead of just running `pristine-tar checkout`.
> 
> However, now I'm mostly confused why you're requiring such special tree
> when in my tests a plain `pristine-tar` using the main tree seemed to
> just work, mhh.

I assume that worked since you still had the tree in your git repo
(which is the same tree gbp-export-orig regenerates). If you drop unused
trees it fails (i'm using selinux-python as example as it's pretty small):

$ git reflog expire --expire=now --all
$ git gc --prune=now
Enumerating objects: 594, done.
Counting objects: 100% (594/594), done.
Delta compression using up to 4 threads
Compressing objects: 100% (304/304), done.
Writing objects: 100% (594/594), done.
Total 594 (delta 269), reused 594 (delta 269), pack-reused 0

$ pristine-tar checkout selinux-python_3.4.orig.tar.gz 
fatal: ambiguous argument '66959325048ceffde0999354208467adc63a5ec6^{tree}': 
unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
fatal: not a valid object name: 66959325048ceffde0999354208467adc63a5ec6^{tree}
tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors
pristine-tar: command failed: git archive --format=tar 
66959325048ceffde0999354208467adc63a5ec6\^\{tree\} | (cd 
'/tmp/pristine-tar.M6ynn876_U' && tar x)

while gbp export-orig recreates it

$ gbp export-orig -v
…
gbp:debug: pristine-tar [] ['verify', 
'/tmp/a/selinux-python/../selinux-python_3.4.orig.tar.gz']
gbp:debug: pristine-tar [] ['verify', 
'/tmp/a/selinux-python/../selinux-python_3.4.orig-sandbox.tar.gz']
gbp:debug: pristine-tar [] ['verify', 
'/tmp/a/selinux-python/../selinux-python_3.4.orig-gui.tar.gz']

Which then also makes pristine-tar work again (until the tree is pruned again):

$ pristine-tar checkout selinux-python_3.4.orig.tar.gz 
pristine-tar: /tmp/a/selinux-python/selinux-python_3.4.orig.tar.gz already 
exists and is valid
pristine-tar: successfully generated selinux-python_3.4.orig.tar.gz

Cheers,
 -- Guido

> (or at least, that's what my memory of this old matter claims)
> 
> -- 
> regards,
>                         Mattia Rizzolo
> 
> GPG Key: 66AE 2B4A FCCF 3F52 DA18  4D18 4B04 3FCD B944 4540      .''`.
> More about me:  https://mapreri.org                             : :'  :
> Launchpad user: https://launchpad.net/~mapreri                  `. `'`
> Debian QA page: https://qa.debian.org/developer.php?login=mattia  `-

Reply via email to