pkgsrc-Changes archive

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

CVS commit: pkgsrc/net/terraform



Module Name:    pkgsrc
Committed By:   leot
Date:           Thu Aug 27 20:05:50 UTC 2026

Added Files:
        pkgsrc/net/terraform: provider.mk

Log Message:
terraform: Add provider.mk for providers

Infrastructure that will be used by Terraform and OpenTofu providers in order to
minimize as much as possible boilerplate.

Discussed on tech-pkg@ and no negative feedbacks
<https://mail-index.NetBSD.org/tech-pkg/2026/03/04/msg032042.html>
(it took a bit more than a week to import them though, sorry!)


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 pkgsrc/net/terraform/provider.mk

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Added files:

Index: pkgsrc/net/terraform/provider.mk
diff -u /dev/null pkgsrc/net/terraform/provider.mk:1.1
--- /dev/null   Thu Aug 27 20:05:50 2026
+++ pkgsrc/net/terraform/provider.mk    Thu Aug 27 20:05:50 2026
@@ -0,0 +1,114 @@
+# $NetBSD: provider.mk,v 1.1 2026/08/27 20:05:50 leot Exp $
+#
+# This file implements common logic for Terraform providers in pkgsrc.
+#
+# Package-settable variables:
+#
+# TERRAFORM_PROVIDER_HOSTNAME (optional)
+#      Hostname of the Terraform registry that distributes the provider.
+#
+#      Default: registry.terraform.io
+#
+# OPENTOFU_PROVIDER_HOSTNAME (optional)
+#      Hostname of the OpenTofu registry that distributes the provider.
+#
+#      Default: registry.opentofu.org
+#
+# TERRAFORM_PROVIDER_BIN
+#      Binary name of the provider that will be installed under
+#       TERRAFORM_PROVIDER_DIR.
+#
+# TERRAFORM_PROVIDER_NAMESPACE
+#      Organizational namespace within the Terraform registry.
+#
+# TERRAFORM_PROVIDER_TYPE
+#      Short name for the platform or system the provider manages.
+#
+# TERRAFORM_PROVIDER_VERSION (optional)
+#      Version of the provider.
+#
+#      Default: ${PKGVERSION_NOREV}
+#
+# TERRAFORM_PROVIDER_DIR (optional)
+#      Directory where the provider will be installed.
+#
+#      Default: share/terraform/plugins/${TERRAFORM_PROVIDER_HOSTNAME}/${TERRAFORM_PROVIDER_NAMESPACE}/${TERRAFORM_PROVIDER_TYPE}/${TERRAFORM_PROVIDER_VERSION}/${GO_PLATFORM}
+#
+# OPENTOFU_PROVIDER_DIR (optional)
+#      Directory where the provider will be installed.
+#
+#      Default: share/terraform/plugins/${OPENTOFU_PROVIDER_HOSTNAME}/${TERRAFORM_PROVIDER_NAMESPACE}/${TERRAFORM_PROVIDER_TYPE}/${TERRAFORM_PROVIDER_VERSION}/${GO_PLATFORM}
+#
+# TERRAFORM_PROVIDER_LEGACY_INSTALL (optional)
+#      Install the provider under ${PREFIX}/bin too so that can be used by
+#      Terraform 0.12.x.
+#
+#      Default: no
+#
+# Keywords: opentofu terraform
+#
+
+TERRAFORM_PROVIDER_HOSTNAME?=  registry.terraform.io
+TERRAFORM_PROVIDER_VERSION?=   ${PKGVERSION_NOREV}
+TERRAFORM_PROVIDER_DIR?=       share/terraform/plugins/${TERRAFORM_PROVIDER_HOSTNAME}/${TERRAFORM_PROVIDER_NAMESPACE}/${TERRAFORM_PROVIDER_TYPE}/${TERRAFORM_PROVIDER_VERSION}/${GO_PLATFORM}
+
+OPENTOFU_PROVIDER_HOSTNAME?=   registry.opentofu.org
+OPENTOFU_PROVIDER_DIR?=                share/terraform/plugins/${OPENTOFU_PROVIDER_HOSTNAME}/${TERRAFORM_PROVIDER_NAMESPACE}/${TERRAFORM_PROVIDER_TYPE}/${TERRAFORM_PROVIDER_VERSION}/${GO_PLATFORM}
+
+TERRAFORM_PROVIDER_LEGACY_INSTALL?=    no
+
+PLIST_SUBST+=          TERRAFORM_PROVIDER_HOSTNAME=${TERRAFORM_PROVIDER_HOSTNAME}
+PLIST_SUBST+=          TERRAFORM_PROVIDER_NAMESPACE=${TERRAFORM_PROVIDER_NAMESPACE}
+PLIST_SUBST+=          TERRAFORM_PROVIDER_TYPE=${TERRAFORM_PROVIDER_TYPE}
+PLIST_SUBST+=          TERRAFORM_PROVIDER_VERSION=${TERRAFORM_PROVIDER_VERSION}
+
+PLIST_SUBST+=          OPENTOFU_PROVIDER_HOSTNAME=${OPENTOFU_PROVIDER_HOSTNAME}
+
+PRINT_PLIST_AWK+=      { sub("${TERRAFORM_PROVIDER_HOSTNAME}", "$${TERRAFORM_PROVIDER_HOSTNAME}") }
+PRINT_PLIST_AWK+=      { sub("${TERRAFORM_PROVIDER_NAMESPACE}", "$${TERRAFORM_PROVIDER_NAMESPACE}") }
+PRINT_PLIST_AWK+=      { gsub("${TERRAFORM_PROVIDER_TYPE}", "$${TERRAFORM_PROVIDER_TYPE}") }
+PRINT_PLIST_AWK+=      { sub("${TERRAFORM_PROVIDER_VERSION}", "$${TERRAFORM_PROVIDER_VERSION}") }
+
+PRINT_PLIST_AWK+=      { sub("${OPENTOFU_PROVIDER_HOSTNAME}", "$${OPENTOFU_PROVIDER_HOSTNAME}") }
+
+PRINT_PLIST_AWK+=      /bin/ { sub("^", "$${PLIST.legacy}") }
+
+PLIST_VARS+=   legacy
+.if ${TERRAFORM_PROVIDER_LEGACY_INSTALL:tl} == "yes"
+PLIST.legacy=  yes
+.endif
+
+INSTALLATION_DIRS+=    ${TERRAFORM_PROVIDER_DIR}
+INSTALLATION_DIRS+=    ${OPENTOFU_PROVIDER_DIR}
+.if ${TERRAFORM_PROVIDER_LEGACY_INSTALL:tl} == "yes"
+INSTALLATION_DIRS+=    bin
+.endif
+
+
+#
+# This should be overwritten via `do-install:' target, however
+# lang/go/go-{module,package}.mk already overwrite them.
+#
+.if !target(pre-install)
+pre-install:
+       ${RUN} \
+       if [ -f ${WRKDIR}/.gopath/bin/${TERRAFORM_PROVIDER_BIN} ]; then \
+               ${INSTALL_PROGRAM} ${WRKDIR}/.gopath/bin/${TERRAFORM_PROVIDER_BIN} \
+                   ${DESTDIR}${PREFIX}/${TERRAFORM_PROVIDER_DIR} ; \
+               ${LN} -sf ${PREFIX}/${TERRAFORM_PROVIDER_DIR}/${TERRAFORM_PROVIDER_BIN} \
+                   ${DESTDIR}${PREFIX}/${OPENTOFU_PROVIDER_DIR}/${TERRAFORM_PROVIDER_BIN} ; \
+               { [ -d ${WRKDIR}/.gopath ] && chmod -R +w ${WRKDIR}/.gopath || ${TRUE} ; } ; \
+               ${RM} -rf ${WRKDIR}/.gopath/bin ; \
+       elif [ -f ${WRKDIR}/bin/${TERRAFORM_PROVIDER_BIN} ]; then \
+               ${INSTALL_PROGRAM} ${WRKDIR}/bin/${TERRAFORM_PROVIDER_BIN} \
+                   ${DESTDIR}${PREFIX}/${TERRAFORM_PROVIDER_DIR} ; \
+               ${LN} -sf ${PREFIX}/${TERRAFORM_PROVIDER_DIR}/${TERRAFORM_PROVIDER_BIN} \
+                   ${DESTDIR}${PREFIX}/${OPENTOFU_PROVIDER_DIR}/${TERRAFORM_PROVIDER_BIN} ; \
+               ${RM} -rf ${WRKDIR}/bin ; \
+               ${RM} -rf ${WRKDIR}/pkg ; \
+       fi
+.  if ${TERRAFORM_PROVIDER_LEGACY_INSTALL:tl} == "yes"
+               ${LN} -sf ${PREFIX}/${TERRAFORM_PROVIDER_DIR}/${TERRAFORM_PROVIDER_BIN} \
+                   ${DESTDIR}${PREFIX}/bin/${TERRAFORM_PROVIDER_BIN}_v${TERRAFORM_PROVIDER_VERSION} ;
+.  endif
+.endif



Home | Main Index | Thread Index | Old Index