threads / patch / 42887

patchconfig.mak.uname: set PERL_PATH for FreeBSD 5.0+

Subject: [PATCH] config.mak.uname: set PERL_PATH for FreeBSD 5.0+

## tl;dr

6 messages between Jul 20, 2016 and Jul 21, 2016. Diffs are folded; open one to read it.

replies: 5people: 4as markdown or json

Eric Wong· Jul 20, 2016, 02:56 UTC · lore
Perl has not been part of the base system since FreeBSD 5.0:
	https://www.freebsd.org/releases/5.0R/relnotes-i386.html
Signed-off-by: Eric Wong <e@80x24.org>
---
  Does anybody still run git on FreeBSD 4.x or earlier?
  4.11 was released a few months before git in 2005:
	https://www.freebsd.org/releases/
 config.mak.uname | 5 +++++
 1 file changed, 5 insertions(+)
Show changes to config.mak.uname +5 −0
diff --git a/config.mak.uname b/config.mak.uname
index a88f139..6c29545 100644
--- a/config.mak.uname
+++ b/config.mak.uname
@@ -202,6 +202,11 @@ ifeq ($(uname_S),FreeBSD)
 		NO_UINTMAX_T = YesPlease
 		NO_STRTOUMAX = YesPlease
 	endif
+	R_MAJOR := $(shell expr "$(uname_R)" : '\([0-9]*\)\.')
+
+	ifeq ($(shell test "$(R_MAJOR)" -ge 5 && echo 1),1)
+		PERL_PATH = /usr/local/bin/perl
+	endif
 	PYTHON_PATH = /usr/local/bin/python
 	HAVE_PATHS_H = YesPlease
 	GMTIME_UNRELIABLE_ERRORS = UnfortunatelyYes
-- 
EW
Johannes Schindelin· Jul 20, 2016, 11:25 UTC · re: Eric Wong · lore

Re: [PATCH] config.mak.uname: set PERL_PATH for FreeBSD 5.0+

Hi Eric,
On Wed, 20 Jul 2016, Eric Wong wrote:
Show 13 quoted lines
> diff --git a/config.mak.uname b/config.mak.uname
> index a88f139..6c29545 100644
> --- a/config.mak.uname
> +++ b/config.mak.uname
> @@ -202,6 +202,11 @@ ifeq ($(uname_S),FreeBSD)
>  		NO_UINTMAX_T = YesPlease
>  		NO_STRTOUMAX = YesPlease
>  	endif
> +	R_MAJOR := $(shell expr "$(uname_R)" : '\([0-9]*\)\.')
> +
> +	ifeq ($(shell test "$(R_MAJOR)" -ge 5 && echo 1),1)
> +		PERL_PATH = /usr/local/bin/perl
> +	endif
In keeping with other uname_R usage, should this not read
	# Since FreeBSD 5.0, Perl is part of the core
	ifneq ($(shell expr "$(uname_R)" : '[1-4]\.'),2)
		PERL_PATH = /usr/local/bin/perl
	endif
instead?

Ciao, Dscho

Eric Wong· Jul 20, 2016, 18:07 UTC · re: Johannes Schindelin · lore

Re: [PATCH] config.mak.uname: set PERL_PATH for FreeBSD 5.0+

Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:
Show 26 quoted lines
> Hi Eric,
> 
> On Wed, 20 Jul 2016, Eric Wong wrote:
> 
> > diff --git a/config.mak.uname b/config.mak.uname
> > index a88f139..6c29545 100644
> > --- a/config.mak.uname
> > +++ b/config.mak.uname
> > @@ -202,6 +202,11 @@ ifeq ($(uname_S),FreeBSD)
> >  		NO_UINTMAX_T = YesPlease
> >  		NO_STRTOUMAX = YesPlease
> >  	endif
> > +	R_MAJOR := $(shell expr "$(uname_R)" : '\([0-9]*\)\.')
> > +
> > +	ifeq ($(shell test "$(R_MAJOR)" -ge 5 && echo 1),1)
> > +		PERL_PATH = /usr/local/bin/perl
> > +	endif
> 
> In keeping with other uname_R usage, should this not read
> 
> 	# Since FreeBSD 5.0, Perl is part of the core
> 	ifneq ($(shell expr "$(uname_R)" : '[1-4]\.'),2)
> 		PERL_PATH = /usr/local/bin/perl
> 	endif
> 
> instead?

That's fine; however I don't use `expr` often, so it required a little more time to realize the '2' means 2 characters were matched.

Also, my use of a numeric comparison may be more future-proof in case FreeBSD decides to have /usr/bin/perl again.

I also wonder why we don't use `which` to search for somewhat standard path components, instead. Something like:

  PERL_PATH = $(shell PATH=/bin:/usr/bin:/usr/local/bin which perl)
Junio C Hamano· Jul 20, 2016, 18:10 UTC · re: Eric Wong · lore

Re: [PATCH] config.mak.uname: set PERL_PATH for FreeBSD 5.0+

On Wed, Jul 20, 2016 at 11:07 AM, Eric Wong <e@80x24.org> wrote:
Show 5 quoted lines
> Also, my use of a numeric comparison may be more future-proof
> in case FreeBSD decides to have /usr/bin/perl again.
>
> I also wonder why we don't use `which` to search for somewhat
> standard path components, instead.  Something like:

Because historically output from "which" was not meant to be machine parseable (some implementation said 'perl is /usr/bin/perl')

brian m. carlson· Jul 21, 2016, 01:02 UTC · re: Junio C Hamano · lore

Re: [PATCH] config.mak.uname: set PERL_PATH for FreeBSD 5.0+

On Wed, Jul 20, 2016 at 11:10:40AM -0700, Junio C Hamano wrote:
Show 9 quoted lines
> On Wed, Jul 20, 2016 at 11:07 AM, Eric Wong <e@80x24.org> wrote:
> > Also, my use of a numeric comparison may be more future-proof
> > in case FreeBSD decides to have /usr/bin/perl again.
> >
> > I also wonder why we don't use `which` to search for somewhat
> > standard path components, instead.  Something like:
> 
> Because historically output from "which" was not meant to be
> machine parseable (some implementation said 'perl is /usr/bin/perl')

The POSIXy way to write which is "command -v", which may or may not be more portable. It does have the desired output, though.

-- 
brian m. carlson / brian with sandals: Houston, Texas, US
+1 832 623 2791 | https://www.crustytoothpaste.net/~bmc | My opinion only
OpenPGP: https://keybase.io/bk2204
Johannes Schindelin· Jul 21, 2016, 15:17 UTC · re: Eric Wong · lore

Re: [PATCH] config.mak.uname: set PERL_PATH for FreeBSD 5.0+

Hi Eric,
On Wed, 20 Jul 2016, Eric Wong wrote:
Show 30 quoted lines
> Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:
> > 
> > On Wed, 20 Jul 2016, Eric Wong wrote:
> > 
> > > diff --git a/config.mak.uname b/config.mak.uname
> > > index a88f139..6c29545 100644
> > > --- a/config.mak.uname
> > > +++ b/config.mak.uname
> > > @@ -202,6 +202,11 @@ ifeq ($(uname_S),FreeBSD)
> > >  		NO_UINTMAX_T = YesPlease
> > >  		NO_STRTOUMAX = YesPlease
> > >  	endif
> > > +	R_MAJOR := $(shell expr "$(uname_R)" : '\([0-9]*\)\.')
> > > +
> > > +	ifeq ($(shell test "$(R_MAJOR)" -ge 5 && echo 1),1)
> > > +		PERL_PATH = /usr/local/bin/perl
> > > +	endif
> > 
> > In keeping with other uname_R usage, should this not read
> > 
> > 	# Since FreeBSD 5.0, Perl is part of the core
> > 	ifneq ($(shell expr "$(uname_R)" : '[1-4]\.'),2)
> > 		PERL_PATH = /usr/local/bin/perl
> > 	endif
> > 
> > instead?
> 
> That's fine; however I don't use `expr` often, so it required
> a little more time to realize the '2' means 2 characters were
> matched.

I never use `expr`, so I had to go and see the surrounding code to determine what the code style is.

> Also, my use of a numeric comparison may be more future-proof
> in case FreeBSD decides to have /usr/bin/perl again.
That is a very theoretical concern ;-)

Ciao, Dscho

← back to recent threads