b24c35b326
The lang/python3 port had failed to properly install because it did in fact already exist and FORCE_PKG_REGISTER was not set. So, behaviorally everything here was correct. However, installing lang/python3 is in fact not correct and not needed, so only install the lang/python port to provide symbolic links. PR: 272354 MFC after: 3 days MFC with:510fd83138
MFC with:cd8cad0ef5
MFC with:0ed426276f
Sponsored by: GoFundMe https://www.gofundme.com/f/gjbbsd
79 lines
2.2 KiB
Makefile
79 lines
2.2 KiB
Makefile
#
|
|
# $FreeBSD$
|
|
#
|
|
#
|
|
# Makefile for uploading Google Compute Engine disk images.
|
|
#
|
|
|
|
GCE_IMG?= ${.OBJDIR}/gce.raw
|
|
GCE_UPLOAD_TGTS= gce-check-depends \
|
|
gce-do-package \
|
|
gce-do-upload
|
|
# I do not yet have a better way to deal with the "must be run interactively"
|
|
# thing, so this is a fail-safe "do not do anything."
|
|
.if !defined(GCE_LOGIN_SKIP) || empty(GCE_LOGIN_SKIP)
|
|
GCE_UPLOAD_TGTS= gce-do-login
|
|
.endif
|
|
CLEANFILES+= ${GCE_UPLOAD_TGTS}
|
|
|
|
GCE_BUCKET?=
|
|
GCE_LICENSE?=
|
|
|
|
.if !defined(GCE_FAMILY) || empty(GCE_FAMILY)
|
|
GCE_FAMILY= ${TYPE:tl}-${REVISION:S,.,-,}
|
|
.endif
|
|
|
|
.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} == "PRERELEASE"
|
|
SNAPSHOT_DATE= -v${BUILDDATE}
|
|
GCE_FAMILY_SUFX= -snap
|
|
.endif
|
|
|
|
# Really? Uppercase characters are not allowed? Sigh...
|
|
# And don't even get me started on the '.'.
|
|
GCE_TARGET:= ${OSRELEASE:S,.raw,,:tl:S,.,-,g}${SNAPSHOT_DATE}
|
|
|
|
gce-upload: ${GCE_UPLOAD_TGTS}
|
|
|
|
gce-check-depends:
|
|
.for VAR in _BUCKET
|
|
. if !defined(GCE${VAR}) || empty(GCE${VAR})
|
|
@echo "Variable GCE${VAR} cannot be empty."
|
|
@false
|
|
. endif
|
|
.endfor
|
|
.if !exists(/usr/local/bin/gcloud)
|
|
. if !exists(${PORTSDIR}/net/google-cloud-sdk/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/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
|
|
. endif
|
|
.endif
|
|
|
|
gce-do-package:
|
|
@# Yes, really... Sigh.
|
|
cd ${.OBJDIR} && mv gce.raw disk.raw
|
|
cd ${.OBJDIR} && tar --format=gnutar -zcf \
|
|
${GCE_TARGET:S,${.OBJDIR}/,,}.tar.gz disk.raw
|
|
cd ${.OBJDIR} && mv disk.raw gce.raw
|
|
touch ${.OBJDIR}/${.TARGET}
|
|
|
|
gce-do-login:
|
|
@echo "This requires human interaction, which is not yet supported."
|
|
@true
|
|
|
|
gce-do-upload:
|
|
@# Fallthrough in case the bucket already exists.
|
|
/usr/local/bin/gsutil mb gs://${GCE_BUCKET} || true
|
|
/usr/local/bin/gsutil cp ${.OBJDIR}/${GCE_TARGET}.tar.gz \
|
|
gs://${GCE_BUCKET}/
|
|
/usr/local/bin/gcloud compute images create ${GCE_TARGET} \
|
|
--family=${GCE_FAMILY}${GCE_FAMILY_SUFX} ${GCE_LICENSE} \
|
|
--source-uri gs://${GCE_BUCKET}/${GCE_TARGET}.tar.gz
|
|
touch ${.OBJDIR}/${.TARGET}
|
|
|