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
hello2_1.0.orig.tar.gz
Description: application/gzip
Format: 3.0 (quilt) Source: hello2 Binary: hello2 Architecture: any Version: 1.0-1 Maintainer: Julian Gilbey <j...@debian.org> Homepage: <insert the upstream URL, if relevant> Standards-Version: 4.6.2 Build-Depends: debhelper-compat (= 13) Package-List: hello2 deb unknown optional arch=any Checksums-Sha1: 088958090dae03cbf08b77cd3d4f828a5708f1e4 167 hello2_1.0.orig.tar.gz ee6010e1aaee036ac478acf0b435103befd02ebd 2028 hello2_1.0-1.debian.tar.xz Checksums-Sha256: 2c625982f9b41d456f63c8385a3597c2ff02f2a4e535db802bca7426b2d44947 167 hello2_1.0.orig.tar.gz 187551b3d11623c2e2b984a9701f1fad74c532b2e948892a34a4d8dc28f3d901 2028 hello2_1.0-1.debian.tar.xz Files: 323ce17ab35564a9c31a8e0320f7a069 167 hello2_1.0.orig.tar.gz 12bb0fa03c08e92a450065425d0e570f 2028 hello2_1.0-1.debian.tar.xz
hello2_1.0-1.debian.tar.xz
Description: application/xz