pkgsrc-Users archive

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

Re: GO on macOS Monterrey



On 3/5/22 11:52, Greg A. Woods wrote:
At Sat, 5 Mar 2022 11:06:13 -0600, Jason Bacon <outpaddling%yahoo.com@localhost> wrote:
Subject: Re: GO on macOS Monterrey

Index: lang/go/bootstrap.mk
===================================================================
RCS file: /cvs/master/m-NetBSD/main/pkgsrc/lang/go/bootstrap.mk,v
retrieving revision 1.7
diff -u -r1.7 bootstrap.mk
--- lang/go/bootstrap.mk	14 Jul 2021 14:32:04 -0000	1.7
+++ lang/go/bootstrap.mk	4 Mar 2022 22:56:47 -0000
@@ -1,7 +1,7 @@
   # $NetBSD: bootstrap.mk,v 1.7 2021/07/14 14:32:04 jperkin Exp $

   .if !defined(GOROOT_BOOTSTRAP) || !exists(${GOROOT_BOOTSTRAP}/bin/go)
-.  if ${MACHINE_ARCH} == "aarch64"
+.  if ${MACHINE_ARCH} == "aarch64" || (${OPSYS} == "Darwin" && ${OSX_VERSION:R} >= 12)
   BUILD_DEPENDS+=		go-bin-[0-9]*:../../lang/go-bin
   GOROOT_BOOTSTRAP=	${PREFIX}/go-bin
   .  else


I was pondering what it would take to automate this dependency
chain. If this works, it looks like a no-brainer that should be
committed ASAP.  I assume you have fully tested it?

Not fully tested yet, no, but it works on any "Darwin" platform!

Despite decades of working with Makefiles I still struggle knowing when
macro uses can be combined into the same expression, or might have to be
protected with ".if defined(MACRO)", or protected with a default value,
etc.  Generally I try to write my own Makefiles such that all macros are
always defined with appropriate defaults, but that is not the case in
pkgsrc (and it would be rather difficult to maintain if that were a goal).

For example here it might have to be written something more like:

  .  if ${MACHINE_ARCH} == "aarch64" || (${OPSYS} == "Darwin" && ${OSX_VERSION:U0.0:R} >= 12)

and then I'm assuming :U and :R can be successfully combined in that way
(the manual suggests so, but I find these things still need testing to
be sure they are correct in all scenarios, especially when there are no
apparent similar examples elsewhere in the infrastructure).

--
					Greg A. Woods <gwoods%acm.org@localhost>

Kelowna, BC     +1 250 762-7675           RoboHack <woods%robohack.ca@localhost>
Planix, Inc. <woods%planix.com@localhost>     Avoncote Farms <woods%avoncote.ca@localhost>

I don't think there's a problem here.  ${OPSYS} == "Darwin" is checked
first, and if that's false, ${OSX_VERSION:R} >= 12 need not be
evaluated, so it doesn't matter if OSX_VERSION is empty.  I just tested
on NetBSD and it works as expected (builds go14).


Home | Main Index | Thread Index | Old Index