git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] makefile: hide stderr of curl-config test

From
Junio C Hamano <gitster@pobox.com>
Date
Nov 26, 2012, 18:30 UTC
Message-ID
<7vsj7wrzd2.fsf@alter.siamese.dyndns.org>
In-Reply-To
<1353554397-27162-1-git-send-email-paul.gortmaker@windriver.com>
Paul Gortmaker <paul.gortmaker@windriver.com> writes:
Show 14 quoted lines
> Currently, if you don't have curl installed, you will get
>
>     $ make distclean 2>&1 | grep curl
>     /bin/sh: curl-config: not found
>     /bin/sh: curl-config: not found
>     /bin/sh: curl-config: not found
>     /bin/sh: curl-config: not found
>     /bin/sh: curl-config: not found
>     $
>
> The intent is not to alarm the user, but just to test if there is
> a new enough curl installed.  However, if you look at search engine
> suggested completions, the above "error" messages are confusing
> people into thinking curl is a hard requirement.

Good observation and identification of an issue to tackle. But why isn't the patch like this?

 	PROGRAMS += $(REMOTE_CURL_NAMES)
-	curl_check := $(shell (echo 070908; curl-config --vernum) | sort -r | sed -ne 2p)
+	curl_check := $(shell (echo 070908; curl-config --vernum) 2>/dev/null | sort -r | sed -ne 2p)
 	ifeq "$(curl_check)" "070908"

Removal of the "reject old libcURL" is logically a separate thing regardless of the "alarming output from make", and it probably is better done as a separate step in a two-patch series. Doing things that way, when somebody objects to this:

> It wants to ensure curl is newer than 070908.  The oldest
> machine I could find (RHEL 4.6) is 2007 vintage according
> to /proc/version data, and it has curl 070C01.

saying that their installation still cares about older libcURL, we can still keep the "remove alarming output from make" bit.

Show 24 quoted lines
>
> The failure here is to mask stderr in the test.  However, since
> the chance of curl being installed, but too old is essentially
> nil, lets just check for existence and drop the ancient version
> threshold check, if for no other reason, than to simplifly the
> parsing of what the makefile is trying to do by humans.
>
> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
>
> diff --git a/Makefile b/Makefile
> index 9bc5e40..56f55f6 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1573,8 +1573,8 @@ else
>  	REMOTE_CURL_NAMES = $(REMOTE_CURL_PRIMARY) $(REMOTE_CURL_ALIASES)
>  	PROGRAM_OBJS += http-fetch.o
>  	PROGRAMS += $(REMOTE_CURL_NAMES)
> -	curl_check := $(shell (echo 070908; curl-config --vernum) | sort -r | sed -ne 2p)
> -	ifeq "$(curl_check)" "070908"
> +	curl_check := $(shell curl-config --vernum 2>/dev/null)
> +	ifneq "$(curl_check)" ""
>  		ifndef NO_EXPAT
>  			PROGRAM_OBJS += http-push.o
>  		endif
Previous: Paul Gortmaker
Message 2 of 2 in “makefile: hide stderr of curl-config test”
  1. makefile: hide stderr of curl-config testPaul Gortmaker, Nov 22, 2012
  2. Junio C HamanoNov 26, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.