[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [PATCH v2] kbuild: deb-pkg improve maintainer address generation



Hi Riku,

2018-05-07 16:11 GMT+09:00  <riku.voipio@linaro.org>:
> From: Riku Voipio <riku.voipio@linaro.org>
>
> There is multiple issues with the genaration of maintainer string
>
> It uses DEBEMAIL and EMAIL enviroment variables, which may contain angle brackets,
> creating invalid maintainer strings. The documented KBUILD_BUILD_USER and
> KBUILD_BUILD_HOST variables are not used. Undocumented and uncommon NAME
> variable is used.

Sorry, I missed to ask you about 'NAME' variable.


I checked the Debian Administrator's Handbook.

I see the following description


  TIP
  Maintainer’s name and email address

  Most of the programs involved in package maintenance will look for
your name and
  email address in the DEBFULLNAME and DEBEMAIL or EMAIL environment variables.
  Defining them once and for all will avoid you having to type them
multiple times.
  If your usual shell is bash , it is a simple matter of adding the
following two lines
  in your ~/.bashrc file (you will obviously replace the values with
more relevant
  ones!):

  export EMAIL=”hertzog@debian.org”
  export DEBFULLNAME=”Raphael Hertzog”


Indeed, 'NAME' is not mentioned at all here.



On the other hand, I also checked the following link
referred by Mathieu:
https://manpages.debian.org/unstable/devscripts/dch.1.en.html

  If the environment variable DEBFULLNAME is set, this will be used for the
  maintainer full name; if not, then NAME will be checked. If the environment
  variable DEBEMAIL is set, this will be used for the email address. If this
  variable has the form "name <email>", then the maintainer name will also be
  taken from here if neither DEBFULLNAME nor NAME is set.


Hmm, debchange checks 'NAME' too.



I think you are more familiar with Debian.

I just took a pause to ask
which to follow.






> Refactor the Maintainer string to:
>
> - use EMAIL or DEBEMAIL directly if they are in form "name <user@host>"
> - use KBUILD_BUILD_USER and KBUILD_BUILD_HOST if set before falling
>   back to autodetection
> - no longer use NAME variable or the useless Anonymous string
>
> The logic is switched from multiline if/then/fi statements to compact
> shell variable substition commands.
>
> Reported-by: Mathieu Malaterre <malat@debian.org>
> Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
> ---
> v2: include improvements suggested by Masahiro-san
>
>  scripts/package/mkdebian | 27 +++++++++++++--------------
>  1 file changed, 13 insertions(+), 14 deletions(-)
>
> diff --git a/scripts/package/mkdebian b/scripts/package/mkdebian
> index 6adb3a16ba3b..985d72d1ab34 100755
> --- a/scripts/package/mkdebian
> +++ b/scripts/package/mkdebian
> @@ -71,22 +71,21 @@ if [ "$ARCH" = "um" ] ; then
>         packagename=user-mode-linux-$version
>  fi
>
> -# Try to determine maintainer and email values
> -if [ -n "$DEBEMAIL" ]; then
> -       email=$DEBEMAIL
> -elif [ -n "$EMAIL" ]; then
> -       email=$EMAIL
> -else
> -       email=$(id -nu)@$(hostname -f 2>/dev/null || hostname)
> -fi
> -if [ -n "$DEBFULLNAME" ]; then
> -       name=$DEBFULLNAME
> -elif [ -n "$NAME" ]; then
> -       name=$NAME
> +email=${DEBEMAIL-$EMAIL}
> +
> +# use email string directly if it contains <email>
> +if echo $email | grep -q '<.*>'; then
> +       maintainer=$email
>  else
> -       name="Anonymous"
> +       # or construct the maintainer string
> +       user=${KBUILD_BUILD_USER-$(id -nu)}
> +       name=${DEBFULLNAME-$user}
> +       if [ -z "$email" ]; then
> +               buildhost=${KBUILD_BUILD_HOST-$(hostname -f 2>/dev/null || hostname)}
> +               email="$user@$buildhost"
> +       fi
> +       maintainer="$name <$email>"
>  fi
> -maintainer="$name <$email>"
>
>  # Try to determine distribution
>  if [ -n "$KDEB_CHANGELOG_DIST" ]; then
> --
> 2.14.2
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



-- 
Best Regards
Masahiro Yamada


Reply to: