Re: git: 169e06fa7852 - main - os-release: Quote variables as documented in the manual

From: Warner Losh <imp_at_bsdimp.com>
Date: Wed, 24 Nov 2021 16:42:41 UTC
On Wed, Nov 24, 2021 at 8:28 AM Mateusz Piotrowski <0mp@freebsd.org> wrote:

> The branch main has been updated by 0mp (doc, ports committer):
>
> URL:
> https://cgit.FreeBSD.org/src/commit/?id=169e06fa7852810f4ced2cce7a3c14ca9443bf39
>
> commit 169e06fa7852810f4ced2cce7a3c14ca9443bf39
> Author:     Mateusz Piotrowski <0mp@FreeBSD.org>
> AuthorDate: 2021-11-23 10:26:47 +0000
> Commit:     Mateusz Piotrowski <0mp@FreeBSD.org>
> CommitDate: 2021-11-24 15:17:01 +0000
>
>     os-release: Quote variables as documented in the manual
>
>     Variables must be quoted if they contain non-alphanumeric characters.
>
>     Warner noted in the review that the lack of quoting causing problems
>     here is rather an edge case. I believe that it's worth adding the
> quotes
>     here anyway because this is what the specification says and there is no
>     good reason not to follow it.
>

The only place it might be needed is for _version. Everything else can't
have troublesome characters. The manual does not say you have to
quote non-alphanumeric characters in variable assignment being my
main point. Certainly not the paths and URLs. That's just gratuitous
and not generally done in shell scripts (which I thought was a good
enough reason to not do it). I'd have preferred if that nuance had
been better reflected in the commit message since the change
itself won't break anything.

Warner


>     Reviewed by:    imp
>     Approved by:    imp (src)
>     MFC after:      7 days
> ---
>  libexec/rc/rc.d/os-release | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/libexec/rc/rc.d/os-release b/libexec/rc/rc.d/os-release
> index c328e161a70e..16f8cb178db8 100755
> --- a/libexec/rc/rc.d/os-release
> +++ b/libexec/rc/rc.d/os-release
> @@ -27,14 +27,14 @@ osrelease_start()
>         t=$(mktemp -t os-release)
>         cat > "$t" <<-__EOF__
>                 NAME=FreeBSD
> -               VERSION=$_version
> -               VERSION_ID=$_version_id
> +               VERSION="$_version"
> +               VERSION_ID="$_version_id"
>                 ID=freebsd
>                 ANSI_COLOR="0;31"
>                 PRETTY_NAME="FreeBSD $_version"
> -               CPE_NAME=cpe:/o:freebsd:freebsd:$_version_id
> -               HOME_URL=https://FreeBSD.org/
> -               BUG_REPORT_URL=https://bugs.FreeBSD.org/
> +               CPE_NAME="cpe:/o:freebsd:freebsd:$_version_id"
> +               HOME_URL="https://FreeBSD.org/"
> +               BUG_REPORT_URL="https://bugs.FreeBSD.org/"
>  __EOF__
>         install -C -o root -g wheel -m ${osrelease_perms} "$t"
> "${osrelease_file}"
>         rm -f "$t"
>