Bug#890232: devscripts: debsign fails to scp files with colon in name

2018-02-12 Thread Rafael Laboissière

* James McCoy  [2018-02-12 07:23]:


On Mon, Feb 12, 2018 at 10:48:35AM +0100, Rafael Laboissière wrote:

The debsign script fails to scp files which contain a colon (":") in their
names.  This is unfortunate because the colon is a valid character in the
version number of Debian packages.

Please, find attached to this bug report a simple patch that fixes the 
problem when uploading a .changes file.


It doesn't handle when the file is an absolute path, since the change 
would convert that to a path relative to the working directory.


I may be misunderstanding the internals of debsign, but it seems to me 
that, when using option -r, the $changes variable will always contain a 
bare filename that refers to the temporary directory whose name is stored 
in $remotefilesdir.


This is ensured by the code in the dosigning() function, line 606 of 
/usr/bin/debsign:


   changes=`basename "$changes"`

I maintain that my patch works, even though it may not be the perfect 
solution for the current issue.


Notice that my patch has no effect when debsign signing a local .changes 
file with an eventual full path name passed as argument.


Best,

Rafael



Bug#890232: devscripts: debsign fails to scp files with colon in name

2018-02-12 Thread James McCoy
On Mon, Feb 12, 2018 at 10:48:35AM +0100, Rafael Laboissière wrote:
> The debsign script fails to scp files which contain a colon (":") in their
> names.  This is unfortunate because the colon is a valid character in the
> version number of Debian packages.
> 
> Please, find attached to this bug report a simple patch that fixes the
> problem when uploading a .changes file.

It doesn't handle when the file is an absolute path, since the change
would convert that to a path relative to the working directory.

Cheers,
-- 
James
GPG Key: 4096R/91BF BF4D 6956 BD5D F7B7  2D23 DFE6 91AE 331B A3DB



Bug#890232: devscripts: debsign fails to scp files with colon in name

2018-02-12 Thread Rafael Laboissière

Package: devscripts
Version: 2.17.12
Severity: normal
Tags: patch

The debsign script fails to scp files which contain a colon (":") in 
their names.  This is unfortunate because the colon is a valid 
character in the version number of Debian packages.


Please, find attached to this bug report a simple patch that fixes the 
problem when uploading a .changes file.  The change has been made in 
function maybesign_changes and it works for me.  Similar changes may be 
done in functions dosigning, maybesign_dsc, and maybesign_buildinfo, but 
I did not test them.


Best,

Rafael Laboissière

-- Package-specific info:

--- /etc/devscripts.conf ---

--- ~/.devscripts --- 
USCAN_VERBOSE=yes 
DEBSIGN_KEYID=0x83785C90


-- System Information: 
Debian Release: buster/sid 
 APT prefers testing 
 APT policy: (650, 'testing'), (600, 'unstable'), (550, 'experimental'), (550, 'stable'), (500, 'oldstable') 
Architecture: amd64 (x86_64) 
Foreign Architectures: i386


Kernel: Linux 4.9.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8), 
LANGUAGE=en_US.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages devscripts depends on: 
ii  dpkg-dev  1.19.0.5 
ii  libc6 2.25-3 
ii  libfile-homedir-perl  1.002-1 
ii  perl  5.26.1-3 
ii  python3   3.6.4-1 
ii  sensible-utils0.0.11


Versions of packages devscripts recommends: 
ii  apt 1.6~alpha7 
ii  at  3.1.20-3.1 
ii  curl7.57.0-1 
ii  dctrl-tools 2.24-2+b1 
ii  debian-keyring  2017.11.24 
ii  dput1.0.1 
pn  equivs   
ii  fakeroot1.22-2 
ii  file1:5.32-1 
ii  gnupg   2.2.4-1 
ii  gnupg2  2.2.4-1 
ii  libdistro-info-perl 0.17 
ii  libdpkg-perl1.19.0.5 
ii  libencode-locale-perl   1.05-1 
ii  libgit-wrapper-perl 0.047-1 
ii  liblist-compare-perl0.53-1 
ii  liblwp-protocol-https-perl  6.07-2 
ii  libsoap-lite-perl   1.22-1 
ii  liburi-perl 1.72-2 
ii  libwww-perl 6.29-1 
ii  licensecheck3.0.31-2 
ii  lintian 2.5.65 
ii  man-db  2.7.6.1-4 
ii  patch   2.7.5-1+b2 
ii  patchutils  0.3.4-2 
ii  python3-apt 1.4.0~beta3+b1 
ii  python3-debian  0.1.31 
ii  python3-magic   1:5.32-1 
ii  python3-requests2.18.4-1 
ii  python3-unidiff 0.5.4-1 
ii  python3-xdg 0.25-4 
ii  strace  4.19-1 
ii  unzip   6.0-21 
ii  wdiff   1.2.2-2 
ii  wget1.19.3-2 
ii  xz-utils5.2.2-1.3


Versions of packages devscripts suggests: 
pn  adequate  
pn  autopkgtest   
pn  bls-standalone
ii  bsd-mailx [mailx]8.1.2-0.20160123cvs-4 
ii  build-essential  12.4 
pn  check-all-the-things  
pn  cvs-buildpackage  
ii  devscripts-el36.3+nmu1 
pn  diffoscope
pn  disorderfs
pn  dose-extra
pn  duck  
pn  faketime  
pn  gnuplot   
ii  gpgv 2.2.4-1 
pn  how-can-i-help
ii  libauthen-sasl-perl  2.1600-1 
ii  libfile-desktopentry-perl0.22-1 
pn  libnet-smtps-perl 
pn  libterm-size-perl 
ii  libtimedate-perl 2.3000-2 
pn  libyaml-syck-perl 
pn  mozilla-devscripts
ii  mutt 1.9.2-1 
ii  openssh-client [ssh-client]  1:7.6p1-2 
pn  piuparts  
pn  postgresql-client 
ii  quilt0.63-8.1 
pn  ratt  
pn  reprotest 
pn  svn-buildpackage  
ii  w3m  0.5.3-35


-- no debconf information
--- /usr/bin/debsign	2018-02-12 08:54:15.703216235 +0100
+++ /usr/bin/debsign-new	2018-02-12 08:54:06.271145788 +0100
@@ -579,7 +579,7 @@
 
 if [ -n "$remotehost" ]
 then
-	withecho scp "$changes" "$remotehost:$remotedir"
+	withecho scp "./$changes" "$remotehost:$remotedir"
 	PRECIOUS_FILES=$(($PRECIOUS_FILES - 1))
 fi
 }