All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Blake <eblake@redhat.com>
To: "Philippe Mathieu-Daudé" <philmd@redhat.com>,
	"Brad Smith" <brad@comstyle.com>,
	qemu-devel@nongnu.org
Cc: "Stefan Hajnoczi" <stefanha@redhat.com>,
	qemu-block@nongnu.org, "Igor Mammedov" <imammedo@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Peter Maydell" <peter.maydell@linaro.org>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"Kevin Wolf" <kwolf@redhat.com>, "Max Reitz" <mreitz@redhat.com>,
	"Markus Armbruster" <armbru@redhat.com>,
	"Fam Zheng" <fam@euphon.net>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Kamil Rytarowski" <kamil@netbsd.org>
Subject: Re: [Qemu-devel] [PATCH v2 06/18] qemu-iotests: Improve portability by searching bash in the $PATH
Date: Tue, 29 Jan 2019 16:15:27 -0600	[thread overview]
Message-ID: <f2462ab2-4579-aad1-99e8-a474587ec409@redhat.com> (raw)
In-Reply-To: <20190129175403.18017-7-philmd@redhat.com>

[-- Attachment #1: Type: text/plain, Size: 2361 bytes --]

On 1/29/19 11:53 AM, Philippe Mathieu-Daudé wrote:
> Bash is not always installed as /bin/bash. In particular on OpenBSD,
> the package installs it in /usr/local/bin.
> Use the 'env' shebang to search bash in the $PATH.
> 
> Patch created mechanically by running:
> 
>   $ git grep -lE '#! ?/bin/bash' -- tests/qemu-iotests | \
>     while read f; do \
>       sed -i 's_#!.\?/bin/bash_#! /usr/bin/env bash_' $f; \

I prefer | over _ when writing a sed expression around something with
embedded / (why? Because | has to be quoted in shell, but _ does not,
and it makes it more likely that I'll notice if I botched quoting or the
intended sed command).  But for a commit message, pasting what you
actually ran is fine.

Why a space between #! and /usr/bin/env? That's not our prevailing style:

$ git grep '^#! /' | wc
     13      30     541
$ git grep '^#!/' | wc
    337     448   13442

Mishandles instances of:

#!/bin/bash -x

or any other case where there is something after /bin/bash (since some
platforms permit at most 1 argument to the interpreter, and your
conversion would be trying to pass 2 arguments as 1).  BSD env (and more
recently GNU Coreutils env) added:

#!/usr/bin/env -S /bin/bash -x

to work around platforms with odd shebang limitations (the lone argument
"-S /bin/bash -x" is sensibly re-split by env before exec'ing bash with
an argument of -x) - but that's not portable yet.  Thankfully, it looks
like none of your conversions encountered that problem; but I might used
an explict end-of-line anchor to make sure, as in:

sed -i 's|^#!.\?/bin/bash$|#!/usr/bin/env bash|' $f

>     done
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> ---
> Can 'env' be located elsewhere than /usr/bin/env?

Possibly, but #! requires absolute paths on some platforms, so you have
a chicken-and-egg problem if it is not, so in practice /usr/bin/env is
reliable; and we're already using it elsewhere, so any platform where it
does not exist will have a lot more than just this patch to fix up.

Comments are tied to the commit message, but the mechanical conversion
itself looks sound, therefore:

Reviewed-by: Eric Blake <eblake@redhat.com>

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3226
Virtualization:  qemu.org | libvirt.org


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

  reply	other threads:[~2019-01-29 22:15 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-29 17:53 [Qemu-devel] [PATCH v2 00/18] OpenBSD: Enable qtesting Philippe Mathieu-Daudé
2019-01-29 17:53 ` [Qemu-devel] [PATCH v2 01/18] tests/vm: Be verbose while extracting compressed images Philippe Mathieu-Daudé
2019-02-05 13:17   ` Peter Maydell
2019-02-07 22:08   ` Philippe Mathieu-Daudé
2019-02-08 17:36     ` Alex Bennée
2019-01-29 17:53 ` [Qemu-devel] [PATCH v2 02/18] configure: Disable W^X on OpenBSD Philippe Mathieu-Daudé
2019-01-29 18:02   ` Philippe Mathieu-Daudé
2019-01-29 21:54   ` Eric Blake
2019-01-30  7:17     ` Thomas Huth
2019-02-05  3:04       ` Eric Blake
2019-01-29 17:53 ` [Qemu-devel] [PATCH v2 03/18] tests/vm/openbsd: Disable the W^X protection on the build partition Philippe Mathieu-Daudé
2019-01-29 21:58   ` Eric Blake
2019-01-29 17:53 ` [Qemu-devel] [PATCH v2 04/18] ahci-test: Add dependency to qemu-img tool Philippe Mathieu-Daudé
2019-01-29 17:53 ` [Qemu-devel] [PATCH v2 05/18] qemu-iotests: Add dependency to qemu-nbd tool Philippe Mathieu-Daudé
2019-01-29 22:03   ` Eric Blake
2019-01-29 17:53 ` [Qemu-devel] [PATCH v2 06/18] qemu-iotests: Improve portability by searching bash in the $PATH Philippe Mathieu-Daudé
2019-01-29 22:15   ` Eric Blake [this message]
2019-01-30 10:11     ` Thomas Huth
2019-01-29 17:53 ` [Qemu-devel] [PATCH v2 07/18] tests/multiboot: " Philippe Mathieu-Daudé
2019-01-29 18:10   ` Kamil Rytarowski
2019-01-29 22:16   ` Eric Blake
2019-01-29 17:53 ` [Qemu-devel] [PATCH v2 08/18] tests/bios-tables: " Philippe Mathieu-Daudé
2019-01-29 18:12   ` Kamil Rytarowski
2019-01-30  8:30   ` Igor Mammedov
2019-02-20 20:01   ` Michael S. Tsirkin
2019-01-29 17:53 ` [Qemu-devel] [PATCH v2 09/18] tests/vm/openbsd: Install Bash from the ports Philippe Mathieu-Daudé
2019-02-05 13:20   ` Peter Maydell
2019-02-05 13:42     ` Philippe Mathieu-Daudé
2019-02-05 13:57       ` Brad Smith
2019-02-05 14:23         ` Philippe Mathieu-Daudé
2019-02-05 22:24           ` Brad Smith
2019-02-06  9:17             ` Daniel P. Berrangé
2019-02-06  7:29           ` Gerd Hoffmann
2019-02-06 12:11             ` Peter Maydell
2019-02-06 18:15         ` Brad Smith
2019-02-06 20:25           ` Alex Bennée
2019-02-07  1:03             ` Brad Smith
2019-02-07  7:59               ` Alex Bennée
2019-02-05 16:09   ` Alex Bennée
2019-02-05 16:17     ` Daniel P. Berrangé
2019-01-29 17:53 ` [Qemu-devel] [RFC PATCH v2 10/18] qemu-iotests: Ensure GNU sed is used Philippe Mathieu-Daudé
2019-01-29 22:21   ` Eric Blake
2019-02-04 23:55     ` Philippe Mathieu-Daudé
2019-01-29 17:53 ` [Qemu-devel] [PATCH v2 11/18] tests/vm/openbsd: Install GNU sed from the ports Philippe Mathieu-Daudé
2019-01-29 17:53 ` [Qemu-devel] [RFC PATCH v2 12/18] test-iov: Disable iov/io test on OpenBSD Philippe Mathieu-Daudé
2019-01-29 17:53 ` [Qemu-devel] [RFC PATCH v2 13/18] oslib-posix: Ignore fcntl("/dev/null", F_SETFL, O_NONBLOCK) failure Philippe Mathieu-Daudé
2019-02-05 13:22   ` Peter Maydell
2019-02-05 13:43     ` Philippe Mathieu-Daudé
2019-02-05 17:40   ` Michael S. Tsirkin
2019-01-29 17:53 ` [Qemu-devel] [PATCH v2 14/18] tests/vm: Run tests on OpenBSD Philippe Mathieu-Daudé
2019-02-05 13:23   ` Peter Maydell
2019-01-29 17:54 ` [Qemu-devel] [RFC PATCH v2 15/18] iotests: Let verify_platform() check for unsupported platforms Philippe Mathieu-Daudé
2019-01-29 17:54 ` [Qemu-devel] [RFC PATCH v2 16/18] iotests: Disable 208 on OpenBSD Philippe Mathieu-Daudé
2019-01-29 17:54 ` [Qemu-devel] [RFC PATCH v2 17/18] iotests: Disable 209 " Philippe Mathieu-Daudé
2019-01-29 17:54 ` [Qemu-devel] [RFC PATCH v2 18/18] iotests: Disable 236 and 238 " Philippe Mathieu-Daudé

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=f2462ab2-4579-aad1-99e8-a474587ec409@redhat.com \
    --to=eblake@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=armbru@redhat.com \
    --cc=brad@comstyle.com \
    --cc=fam@euphon.net \
    --cc=imammedo@redhat.com \
    --cc=kamil@netbsd.org \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=philmd@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.