git: 6b8ca8c4e406 - stable/13 - release: Support r/o /usr/ports for cloudware

From: Colin Percival <cperciva_at_FreeBSD.org>
Date: Wed, 24 Apr 2024 05:06:19 UTC
The branch stable/13 has been updated by cperciva:

URL: https://cgit.FreeBSD.org/src/commit/?id=6b8ca8c4e40635ef7bd62e20d014c79f017b0e7e

commit 6b8ca8c4e40635ef7bd62e20d014c79f017b0e7e
Author:     Colin Percival <cperciva@FreeBSD.org>
AuthorDate: 2024-04-12 17:20:25 +0000
Commit:     Colin Percival <cperciva@FreeBSD.org>
CommitDate: 2024-04-24 05:04:06 +0000

    release: Support r/o /usr/ports for cloudware
    
    Set WRKDIRPREFIX=/tmp/ports DISTDIR=/tmp/distfiles when building tools
    needed for uploading cloudware images.
    
    While I'm here, adjust the bsdec2-image-upload build target to match
    the style used by the Azure/GCE/Vagrant Makefiles.
    
    MFC after:      3 days
    
    (cherry picked from commit 6c87aed39c3053cd338c1ec18fba5b1d773beca9)
---
 release/Makefile.azure   |  4 +++-
 release/Makefile.ec2     | 16 ++++++++++------
 release/Makefile.gce     |  8 ++++++--
 release/Makefile.vagrant |  4 +++-
 4 files changed, 22 insertions(+), 10 deletions(-)

diff --git a/release/Makefile.azure b/release/Makefile.azure
index 19d571de9f44..0f63acb0046b 100644
--- a/release/Makefile.azure
+++ b/release/Makefile.azure
@@ -38,7 +38,9 @@ azure-check-depends:
 .   endif
 	env ASSUME_ALWAYS_YES=yes pkg install -y www/npm
 .  else
-	env UNAME_r=${UNAME_r} make -C ${PORTSDIR}/www/npm BATCH=1 all install clean
+	env UNAME_r=${UNAME_r} make -C ${PORTSDIR}/www/npm \
+	    BATCH=1 WRKDIRPREFIX=/tmp/ports DISTDIR=/tmp/distfiles \
+	    all install clean
 .  endif
 . endif
 	npm install -g azure-cli
diff --git a/release/Makefile.ec2 b/release/Makefile.ec2
index 51d32ecd97a6..20a5ae23ac3b 100644
--- a/release/Makefile.ec2
+++ b/release/Makefile.ec2
@@ -43,13 +43,17 @@ CW_EC2_PORTINSTALL=
 .endif
 
 cw-ec2-portinstall:
-.if exists(${PORTSDIR}/net/bsdec2-image-upload/Makefile)
-	env - UNAME_r=${UNAME_r} PATH=$$PATH make -C ${PORTSDIR}/net/bsdec2-image-upload BATCH=1 all install clean
-.else
-. if !exists(/usr/local/sbin/pkg-static)
-	env ASSUME_ALWAYS_YES=yes pkg bootstrap -y
-. endif
+.if !exists(/usr/local/bin/bsdec2-image-upload)
+. if !exists(${PORTSDIR}/net/bsdec2-image-upload/Makefile)
+.  if !exists(/usr/local/sbin/pkg-static)
+	env ASSUME_ALWAYS_YES=yes pkg bootstrap -yf
+.  endif
 	env ASSUME_ALWAYS_YES=yes pkg install -y net/bsdec2-image-upload
+. else
+	env UNAME_r=${UNAME_r} make -C ${PORTSDIR}/net/bsdec2-image-upload \
+	    BATCH=1 WRKDIRPREFIX=/tmp/ports DISTDIR=/tmp/distfiles \
+	    all install clean
+. endif
 .endif
 	@touch ${.TARGET}
 
diff --git a/release/Makefile.gce b/release/Makefile.gce
index ea5daf290e3c..c6c19961b673 100644
--- a/release/Makefile.gce
+++ b/release/Makefile.gce
@@ -48,8 +48,12 @@ gce-check-depends:
 	env ASSUME_ALWAYS_YES=yes pkg install -y net/google-cloud-sdk \
 		lang/python
 . else
-	env UNAME_r=${UNAME_r} make -C ${PORTSDIR}/net/google-cloud-sdk BATCH=1 all install clean
-	env UNAME_r=${UNAME_r} make -C ${PORTSDIR}/lang/python BATCH=1 all install clean
+	env UNAME_r=${UNAME_r} make -C ${PORTSDIR}/net/google-cloud-sdk \
+	    BATCH=1 WRKDIRPREFIX=/tmp/ports DISTDIR=/tmp/distfiles \
+	    all install clean
+	env UNAME_r=${UNAME_r} make -C ${PORTSDIR}/lang/python \
+	    BATCH=1 WRKDIRPREFIX=/tmp/ports DISTDIR=/tmp/distfiles \
+	    all install clean
 . endif
 .endif
 
diff --git a/release/Makefile.vagrant b/release/Makefile.vagrant
index 5fd2c31e9f49..cc72f7456740 100644
--- a/release/Makefile.vagrant
+++ b/release/Makefile.vagrant
@@ -57,7 +57,9 @@ vagrant-check-depends:
 .  endif
 	env ASSUME_ALWAYS_YES=yes pkg install -y curl
 . else
-	env UNAME_r=${UNAME_r} make -C ${PORTSDIR}/ftp/curl BATCH=1 all install clean
+	env UNAME_r=${UNAME_r} make -C ${PORTSDIR}/ftp/curl \
+	    BATCH=1 WRKDIRPREFIX=/tmp/ports DISTDIR=/tmp/distfiles \
+	    all install clean
 . endif
 .endif