#956396 /usr/bin/uscan: uscan: corrupted orig.tar on repack with large filenames.

Package:
devscripts
Source:
devscripts
Description:
scripts to make the life of a Debian Package maintainer easier
Submitter:
Tobias Frost
Date:
2021-01-19 01:45:04 UTC
Severity:
normal
#956396#5
Date:
2020-04-10 16:40:13 UTC
From:
To:
Dear Maintainer,

I have this issue in opencascade, with Files-Excluded in d/copyright
and long filenames that those long filnames are ending up shown e.g. in mc'
tarball browser as as "<somehash>.data" in the root directory.

After importing the orig.tar with gbp, a debuild complained about changes on
those files. Strangely, the diff did look like a shell script and not like a header.

Additionally, it cannot find one file listed in Files-Excluded, but it is one named in
the tarball (it was choking on upgrade.bat)

Two examples of the long filenames:
src/StepVisual/StepVisual_AnnotationCurveOccurrenceAndAnnotationOccurrenceAndGeomReprItemAndReprItemAndStyledItem.cxx
src/StepVisual/srcStepVisual_AnnotationCurveOccurrenceAndAnnotationOccurrenceAndGeomReprItemAndReprItemAndStyledItem.hxx

I've now manually repackaged the tarball and imported it using gpb; this time debuild did not complain, so I guess
something in uscan is phishy....

Reproducer:
debcheckout opencascade
cd opencascade
git checkout debian/7.4.0+dfsg1-1
uscan
# will error out. to continue, remove upgrade.bat from d/copyrights Files-Excluded:
# tar: occt-V7_4_0p1/upgrade.bat: not found in archive
# However, checking the archive:
# tar --list -f opencascade_7.4.0p1.orig.tar.gz | grep upgrade.bat
# occt-V7_4_0p1/upgrade.bat
# After upgrade.bat has been removed from d/copyright:
gbp import-orig --upstream-version 7.4.1+dfsg1 ../opencascade_7.4.0p1+dfsg1.orig.tar.xz --no-sign-tags
dch --newversion 7.4.1+dfsg1-1 "New upstream version."
debuild -d

yields to:
dpkg-source: info: building opencascade using existing ./opencascade_7.4.1+dfsg1.orig.tar.xz
dpkg-source: info: using patch list from debian/patches/series
dpkg-source: info: local changes detected, the modified files are:
 opencascade/src/StepVisual/StepVisual_AnnotationCurveOccurrenceAndAnnotationOccurrenceAndGeomReprItemAndReprItemAndStyledItem.hxx
dpkg-source: error: aborting due to unexpected upstream changes, see /tmp/opencascade_7.4.1+dfsg1-1.diff.uyiYOP
dpkg-source: info: you can integrate the local changes with dpkg-source --commit
dpkg-buildpackage: error: dpkg-source -b . subprocess returned exit status 2
debuild: fatal error at line 1182:

The diff file does not at all look like a header file:

cat /tmp/opencascade_7.4.1+dfsg1-1.diff.uyiYOP
Description: <short summary of the patch>
 TODO: Put a short summary on the line above and replace this paragraph
 with a longer explanation of this change. Complete the meta-information
 with other relevant fields (see below for details). To make it easier, the
 information below has been extracted from the changelog. Adjust it or drop
 it.
 .
 opencascade (7.4.1+dfsg1-1) UNRELEASED; urgency=medium
 .
   * New upstream version.
Author: Tobias Frost <tobi@debian.org>
---
The information above should follow the Patch Tagging Guidelines, please
checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
are templates for supplementary fields that you might want to add:

Origin: <vendor|upstream|other>, <url of original patch>
Bug: <url in upstream bugtracker>
Bug-Debian: https://bugs.debian.org/<bugnumber>
Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
Forwarded: <no|not-needed|url proving that it has been forwarded>
Reviewed-By: <name and email of someone who approved the patch>
Last-Update: 2020-04-10
--- opencascade-7.4.1+dfsg1.orig/src/StepVisual/StepVisual_AnnotationCurveOccurrenceAndAnnotationOccurrenceAndGeomReprItemAndReprItemAndStyledItem.hxx +++ opencascade-7.4.1+dfsg1/src/StepVisual/StepVisual_AnnotationCurveOccurrenceAndAnnotationOccurrenceAndGeomReprItemAndReprItemAndStyledItem.hxx @@ -1,23 +1,23 @@ -@echo off - -rem Helper script to run procedure of automatic upgrade of application code -rem on newer version of OCCT on Windows. -rem Running it requires that Tcl should be in the PATH - -SET "OLD_PATH=%PATH%" - -if exist "%~dp0env.bat" ( - call "%~dp0env.bat" -) - -set "TCL_EXEC=tclsh.exe" - -for %%X in (%TCL_EXEC%) do (set TCL_FOUND=%%~$PATH:X) - -if defined TCL_FOUND ( - %TCL_EXEC% %~dp0adm/start.tcl upgrade %* -) else ( - echo "Error. %TCL_EXEC% is not found. Please update PATH variable" -) - -SET "PATH=%OLD_PATH%" +@echo off + +rem Helper script to run procedure of automatic upgrade of application code +rem on newer version of OCCT on Windows. +rem Running it requires that Tcl should be in the PATH + +SET "OLD_PATH=%PATH%" + +if exist "%~dp0env.bat" ( + call "%~dp0env.bat" +) + +set "TCL_EXEC=tclsh.exe" + +for %%X in (%TCL_EXEC%) do (set TCL_FOUND=%%~$PATH:X) + +if defined TCL_FOUND ( + %TCL_EXEC% %~dp0adm/start.tcl upgrade %* +) else ( + echo "Error. %TCL_EXEC% is not found. Please update PATH variable" +) + +SET "PATH=%OLD_PATH%" I'm not sure what's causing this… As said, I manually repackaged this and gbp import-orig'ed it and then it worked. So I guess there is something in uscan… Let me know if you need more details…
--- /etc/devscripts.conf --- Empty.
--- ~/.devscripts --- DEBSIGN_KEYID=13C904F0CE085E7C36307985DECF849AA6357FB7 DEBUILD_LINTIAN_OPTS="-EvIL +pedantic" DSCVERIFY_KEYRINGS="/usr/share/keyrings/debian-maintainers.gpg:~/.gnupg/pubring.gpg" DEBUILD_PREPEND_PATH="/usr/lib/ccache" DEBUILD_PRESERVE_ENVVARS=CCACHE_DIR