reassign 1065445 git-buildpackage retitle 1065445 git-buildpackage: --pristine-tar fails if upstream tarball top directory name is not <debianpackagename>-<debianuversion> thanks
(See below for explanation.) On Tue, Mar 05, 2024 at 07:41:02AM +0000, Julian Gilbey wrote: > severity 1065445 important > retitle 1065445 pristine-tar: fails if original tarball top directory name is > not <debianpackagename>-<debianuversion> > thanks > > On Mon, Mar 04, 2024 at 08:53:21PM +0000, Julian Gilbey wrote: > > Package: pristine-tar > > Version: 1.50+nmu1 > > Severity: normal > > > > I discovered that a package I was trying to use with pristine-tar > > failed to work. The cause of the issue seems to be that the upstream > > tarball's top directory name is capitalised, but pristine-tar > > regenerates a tarball with the name lowercased. > > > > Steps to reproduce using git-buildpackage: > > 1. Import the attached minimal working example into git using the command: > > gbp import-dsc --pristine-tar hello_1.0-1.dsc > > > > 2. Change into the build directory: > > cd hello > > > > 3. Regenerate the original tar ball using pristine-tar, for example: > > gbp buildpackage -S > > > > 4. Return to the parent directory, then: > > > > $ tar ztf hello_1.0.orig.tar.gz > > Hello-1.0/ > > Hello-1.0/Makefile > > Hello-1.0/hello.c > > $ tar ztf build-area/hello_1.0.orig.tar.gz > > hello-1.0/ > > hello-1.0/Makefile > > hello-1.0/hello.c > > > > Note the capitalisation has changed. Also: > > > > $ ls -l hello_1.0.orig.tar.gz build-area/hello_1.0.orig.tar.gz > > -rw-r--r-- 1 jdg jdg 256 Mar 4 20:46 build-area/hello_1.0.orig.tar.gz > > -rw-r--r-- 1 jdg jdg 175 Mar 4 20:00 hello_1.0.orig.tar.gz > > > > Best wishes, > > > > Julian > > It turns out it's actually much more general than this: if the > original tarball does not have a top directory named > <debianpackagename>-<debianupstreamversion> > then pristine-tar fails; it *always* creates a tarball with top > directory called this, rather than using the name used by the original > upstream tarball. So pristine-tar fails on all such cases, including > cases where mk-origtargz has been used to exclude some files. > > Attached is a minimal example, hello2. > > Julian I checked pristine-tar directly on these examples, and it turns out that it can handle these situations with no problems. The problem only emerges when git-buildpackage is being used, as in the example I gave in the original bug report. I don't know how gbp import-orig/import-dsc --pristine-tar calls pristine-tar, but somehow it appears to forget the top directory name of the original tarball, leading to this problem. I have reported this as a severity "important" bug because it may silently (or not so silently) affect many packages. Best wishes, Julian