Your message dated Sat, 25 Feb 2012 22:06:21 -0500
with message-id <[email protected]>
and subject line Re: Bug#659084: devscripts: [PATCH] debsign - use POSIX
command substitution $()
has caused the Debian Bug report #659084,
regarding [debsign] use POSIX command substitution?
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
659084: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=659084
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: devscripts
Version: 2.11.3
Severity: wishlist
The following patch updates to use POSIX[1] command substitution $() in
place of backtics (``).
Motivation:
- Recommended practise. The $() is recommend by many[2]. It nests easily.
- Readability. In high resolution display a "tick" is hard to see.
Different font may also make reading the "tick" difficult to distinguish.
- Typing convenience. The backtick key may be placed in difficult
position in non-US keyboard. E.g acrobatics is needed with FI-keyboard
by pressing three keys in succession: AltGr + key + Space char
REFERENCES
[1]
POSIX standard IEEE Std 1003.1: 2.6.3 Command Substitution
http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_03
[2]
Bash manual
"...old-style backquote" in section "3.5.4 Command Substitution"
http://www.gnu.org/software/bash/manual/bashref.html#Command-Substitution
BashFAQ:
"$(...) preferred over `...` (backticks)?"
Advanced Bash-Scripting Guide:
"...The $(...) form has superseded backticks for command substitution."
http://tldp.org/LDP/abs/html/commandsub.html
Bash Hackers Wiki:
"[conclusion]... it's clean syntax, intuitive, more readable,
nestable, its inner parsing is separate"
http://wiki.bash-hackers.org/syntax/expansion/cmdsubst
-- Package-specific info:
--- /etc/devscripts.conf ---
--- ~/.devscripts ---
Not present
-- System Information:
Debian Release: wheezy/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: i386 (i686)
Kernel: Linux 2.6.32-5-686 (SMP w/1 CPU core)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages devscripts depends on:
ii dpkg-dev 1.16.1.2
ii libc6 2.13-26
ii perl 5.14.2-7
ii python 2.7.2-10
ii python2.6 2.6.7-4
ii python2.7 2.7.2-13
>From 49971a68e7576d89d538815addf776b9273adf15 Mon Sep 17 00:00:00 2001
From: Jari Aalto <[email protected]>
Date: Wed, 8 Feb 2012 00:32:29 -0500
Subject: [PATCH] debsign.sh: Use POSIX command substitution $()
Organization: Private
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
Signed-off-by: Jari Aalto <[email protected]>
---
scripts/debsign.sh | 65 ++++++++++++++++++++++++++++------------------------
1 files changed, 35 insertions(+), 30 deletions(-)
diff --git a/scripts/debsign.sh b/scripts/debsign.sh
index 3751ca9..ce71a13 100755
--- a/scripts/debsign.sh
+++ b/scripts/debsign.sh
@@ -25,7 +25,7 @@
set -e
PRECIOUS_FILES=0
-PROGNAME=`basename $0`
+PROGNAME=$(basename $0)
MODIFIED_CONF_MSG='Default settings modified by devscripts configuration files:'
# Temporary directories
@@ -103,7 +103,7 @@ temp_filename() {
local filename
if ! [ -w "$(dirname "$1")" ]; then
- filename=`mktemp -t "$(basename "$1").$2.XXXXXXXXXX"` || {
+ filename=$(mktemp -t "$(basename "$1").$2.XXXXXXXXXX") || {
echo "$PROGNAME: Unable to create temporary file; aborting" >&2
exit 1
}
@@ -162,9 +162,9 @@ signfile () {
ASCII_SIGNED_FILE="${UNSIGNED_FILE}.asc"
(cat "$1" ; echo "") > "$UNSIGNED_FILE"
- gpgversion=`$signcommand --version | head -n 1 | cut -d' ' -f3`
- gpgmajorversion=`echo $gpgversion | cut -d. -f1`
- gpgminorversion=`echo $gpgversion | cut -d. -f2`
+ gpgversion=$($signcommand --version | head -n 1 | cut -d' ' -f3)
+ gpgmajorversion=$(echo $gpgversion | cut -d. -f1)
+ gpgminorversion=$(echo $gpgversion | cut -d. -f2)
if [ $gpgmajorversion -gt 1 -o $gpgminorversion -ge 4 ]
then
@@ -205,7 +205,7 @@ withecho () {
# and failure if the file needs signing. Parameters: $1=filename,
# $2=file description for message (dsc or changes)
check_already_signed () {
- [ "`head -n 1 \"$1\"`" = "-----BEGIN PGP SIGNED MESSAGE-----" ] || \
+ [ "$(head -n 1 \"$1\")" = "-----BEGIN PGP SIGNED MESSAGE-----" ] || \
return 1
local resign
@@ -276,7 +276,7 @@ else
# We do not replace this with a default directory to avoid accidentally
# signing a broken package
- DEBRELEASE_DEBS_DIR="`echo \"$DEBRELEASE_DEBS_DIR\" | sed -e 's%/\+%/%g; s%\(.\)/$%\1%;'`"
+ DEBRELEASE_DEBS_DIR="$(echo \"$DEBRELEASE_DEBS_DIR\" | sed -e 's%/\+%/%g; s%\(.\)/$%\1%;')"
if ! [ -d "$DEBRELEASE_DEBS_DIR" ]; then
debsdir_warning="config file specified DEBRELEASE_DEBS_DIR directory $DEBRELEASE_DEBS_DIR does not exist!"
fi
@@ -382,10 +382,10 @@ dosigning() {
remotechanges=$changes
remotedsc=$dsc
remotecommands=$commands
- remotedir="`perl -e 'chomp($_="'"$dsc"'"); m%/% && s%/[^/]*$%% && print'`"
- changes=`basename "$changes"`
- dsc=`basename "$dsc"`
- commands=`basename "$commands"`
+ remotedir="$(perl -e 'chomp($_="'"$dsc"'"); m%/% && s%/[^/]*$%% && print')"
+ changes=$(basename "$changes")
+ dsc=$(basename "$dsc")
+ commands=$(basename "$commands")
if [ -n "$changes" ]
then
@@ -403,8 +403,8 @@ dosigning() {
for changes in $changes
do
printf "\n"
- dsc=`echo "${remotedir+$remotedir/}$changes" | \
- perl -pe 's/\.changes$/.dsc/; s/(.*)_(.*)_(.*)\.dsc/\1_\2.dsc/'`
+ dsc=$(echo "${remotedir+$remotedir/}$changes" |
+ perl -pe 's/\.changes$/.dsc/; s/(.*)_(.*)_(.*)\.dsc/\1_\2.dsc/')
dosigning;
done
exit 0;
@@ -423,19 +423,24 @@ dosigning() {
echo "Leaving current signature unchanged." >&2
return
}
+
if [ -n "$maint" ]
- then maintainer="$maint"
- # Try the "Changed-By:" field first
- else maintainer=`sed -n 's/^Changed-By: //p' $changes`
+ then
+ maintainer="$maint"
+ else
+ # Try the "Changed-By:" field first
+ maintainer=$(sed -n 's/^Changed-By: //p' $changes)
fi
+
if [ -z "$maintainer" ]
- then maintainer=`sed -n 's/^Maintainer: //p' $changes`
+ then
+ maintainer=$(sed -n 's/^Maintainer: //p' $changes)
fi
signas="${signkey:-$maintainer}"
# Is there a dsc file listed in the changes file?
- if grep -q `basename "$dsc"` "$changes"
+ if grep -q $(basename "$dsc") "$changes"
then
if [ -n "$remotehost" ]
then
@@ -448,9 +453,9 @@ dosigning() {
exit 1
fi
check_already_signed "$dsc" "dsc" || withecho signfile "$dsc" "$signas"
- dsc_md5=`md5sum $dsc | cut -d' ' -f1`
- dsc_sha1=`sha1sum $dsc | cut -d' ' -f1`
- dsc_sha256=`sha256sum $dsc | cut -d' ' -f1`
+ dsc_md5=$(md5sum $dsc | cut -d' ' -f1)
+ dsc_sha1=$(sha1sum $dsc | cut -d' ' -f1)
+ dsc_sha256=$(sha256sum $dsc | cut -d' ' -f1)
temp_changes="$(temp_filename "$changes" "temp")"
cp "$changes" "$temp_changes"
@@ -569,7 +574,7 @@ for valid format" >&2;
if [ -n "$maint" ]
then maintainer="$maint"
else
- maintainer=`sed -n 's/^Uploader: //p' $commands`
+ maintainer=$(sed -n 's/^Uploader: //p' $commands)
if [ -z "$maintainer" ]
then
echo "Unable to parse Uploader, .commands file invalid."
@@ -602,10 +607,10 @@ for valid format" >&2;
if [ -n "$maint" ]
then maintainer="$maint"
# Try the new "Changed-By:" field first
- else maintainer=`sed -n 's/^Changed-By: //p' $dsc`
+ else maintainer=$(sed -n 's/^Changed-By: //p' $dsc)
fi
if [ -z "$maint" ]
- then maintainer=`sed -n 's/^Maintainer: //p' $dsc`
+ then maintainer=$(sed -n 's/^Maintainer: //p' $dsc)
fi
signas="${signkey:-$maintainer}"
@@ -636,19 +641,19 @@ case $# in
exit 1
fi
- mustsetvar package "`dpkg-parsechangelog | sed -n 's/^Source: //p'`" \
+ mustsetvar package "$(dpkg-parsechangelog | sed -n 's/^Source: //p')" \
"source package"
- mustsetvar version "`dpkg-parsechangelog | sed -n 's/^Version: //p'`" \
+ mustsetvar version "$(dpkg-parsechangelog | sed -n 's/^Version: //p')" \
"source version"
if [ "x$sourceonly" = x ]
then
- mustsetvar arch "`dpkg-architecture -a${targetarch} -t${targetgnusystem} -qDEB_HOST_ARCH`" "build architecture"
+ mustsetvar arch "$(dpkg-architecture -a${targetarch} -t${targetgnusystem} -qDEB_HOST_ARCH)" "build architecture"
else
arch=source
fi
- sversion=`echo "$version" | perl -pe 's/^\d+://'`
+ sversion=$(echo "$version" | perl -pe 's/^\d+://')
pv="${package}_${sversion}"
pva="${package}_${sversion}_${arch}"
dsc="$debsdir/$pv.dsc"
@@ -682,8 +687,8 @@ case $# in
;;
*.changes)
changes=$1
- dsc=`echo $changes | \
- perl -pe 's/\.changes$/.dsc/; s/(.*)_(.*)_(.*)\.dsc/\1_\2.dsc/'`
+ dsc=$(echo $changes |
+ perl -pe 's/\.changes$/.dsc/; s/(.*)_(.*)_(.*)\.dsc/\1_\2.dsc/')
commands=
;;
*.commands)
--
1.7.9
--- End Message ---
--- Begin Message ---
tag 659084 wontfix
thanks
On Sun, Feb 26, 2012 at 03:30:24AM +0100, Jakub Wilk wrote:
> * Jari Aalto <[email protected]>, 2012-02-08, 02:58:
> >- [ "`head -n 1 \"$1\"`" = "-----BEGIN PGP SIGNED MESSAGE-----" ] || \
> >+ [ "$(head -n 1 \"$1\")" = "-----BEGIN PGP SIGNED MESSAGE-----" ] || \
>
> Bzzt, wrong.
>
> $ foo=/etc/ld.so.conf; echo "`head -n 1 \"$foo\"`"
> include /etc/ld.so.conf.d/*.conf
>
> $ foo=/etc/ld.so.conf; echo "$(head -n 1 \"$1\")"
> head: cannot open `""' for reading: No such file or directory
A seemingly trivial patch for purely aesthetic changes contained bugs.
Please actually test your patches before sending them.
As I mentioned before, aesthetic reasons aren't good enough to change
the code. I'm closing this bug.
--
James
GPG Key: 4096R/331BA3DB 2011-12-05 James McCoy <[email protected]>
signature.asc
Description: Digital signature
--- End Message ---