Subject: Re: [PATCH v12 4/5] bugreport: add uname info

From: Junio C Hamano <[email-masked]>
Date: Mon, 06 Apr 2020 16:20:36 -0700

Emily Shaffer <[email-masked]> writes:

> The contents of uname() can give us some insight into what sort of
> system the user is running on, and help us replicate their setup if need
> be. The domainname field is not guaranteed to be available, so don't
> collect it.

Unlike "what's the verison of 'git'?" and "with what versions of
which libraries does the 'git' the user is having trouble with links
with?" I mentioned earlier in my review of [3/5], what this step
deals with, i.e. "what are these properties of the running system?",
is perfectly good to report from "git bugreport" itself.

Looking good.

Thanks.

>
> Signed-off-by: Emily Shaffer <[email-masked]>
> ---
>  Documentation/git-bugreport.txt |  1 +
>  bugreport.c                     | 16 +++++++++++++++-
>  2 files changed, 16 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/git-bugreport.txt b/Documentation/git-bugreport.txt
> index f44ae8cbe7..17b0d14e8d 100644
> --- a/Documentation/git-bugreport.txt
> +++ b/Documentation/git-bugreport.txt
> @@ -26,6 +26,7 @@ The following information is requested from the user:
>  The following information is captured automatically:
>  
>   - 'git version --build-options'
> + - uname sysname, release, version, and machine strings
>  
>  This tool is invoked via the typical Git setup process, which means that in some
>  cases, it might not be able to launch - for example, if a relevant config file
> diff --git a/bugreport.c b/bugreport.c
> index 4cdb58bbaa..1a3172bcec 100644
> --- a/bugreport.c
> +++ b/bugreport.c
> @@ -7,10 +7,24 @@
>  
>  static void get_system_info(struct strbuf *sys_info)
>  {
> +	struct utsname uname_info;
> +
>  	/* get git version from native cmd */
>  	strbuf_addstr(sys_info, _("git version:\n"));
>  	get_version_info(sys_info, 1);
> -	strbuf_complete_line(sys_info);
> +
> +	/* system call for other version info */
> +	strbuf_addstr(sys_info, "uname: ");
> +	if (uname(&uname_info))
> +		strbuf_addf(sys_info, _("uname() failed with error '%s' (%d)\n"),
> +			    strerror(errno),
> +			    errno);
> +	else
> +		strbuf_addf(sys_info, "%s %s %s %s\n",
> +			    uname_info.sysname,
> +			    uname_info.release,
> +			    uname_info.version,
> +			    uname_info.machine);
>  }
>  
>  static const char * const bugreport_usage[] = {