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

Subsystems: the rest

STALE3681d

6 messages, 4 authors, 2016-07-21 · open the first message on its own page

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

From: Eric Wong <hidden>
Date: 2016-07-20 02:56:35

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 <redacted>
---
  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(+)
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

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

From: Johannes Schindelin <hidden>
Date: 2016-07-20 11:26:44

Hi Eric,

On Wed, 20 Jul 2016, Eric Wong wrote:
quoted hunk
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

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

From: Eric Wong <hidden>
Date: 2016-07-20 18:07:08

Johannes Schindelin [off-list ref] wrote:
Hi Eric,

On Wed, 20 Jul 2016, Eric Wong wrote:
quoted
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)

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

From: Junio C Hamano <hidden>
Date: 2016-07-20 18:11:10

On Wed, Jul 20, 2016 at 11:07 AM, Eric Wong [off-list ref] 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')

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

From: brian m. carlson <hidden>
Date: 2016-07-21 01:02:19

On Wed, Jul 20, 2016 at 11:10:40AM -0700, Junio C Hamano wrote:
On Wed, Jul 20, 2016 at 11:07 AM, Eric Wong [off-list ref] wrote:
quoted
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

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

From: Johannes Schindelin <hidden>
Date: 2016-07-21 15:18:16

Hi Eric,

On Wed, 20 Jul 2016, Eric Wong wrote:
Johannes Schindelin [off-list ref] wrote:
quoted
On Wed, 20 Jul 2016, Eric Wong wrote:
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help