aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMina Galić <me+git@igalic.co>2022-09-14 21:16:04 +0000
committerJoseph Mingrone <jrm@FreeBSD.org>2022-10-14 19:28:46 +0000
commita46960b1350961e89ff03494d21f6616b7803e4f (patch)
tree1382fd1b6f3148e65732e87feb0e84747a2e47f4
parentfbd88ffe5219629754a1dc105a32f379606cd20c (diff)
downloadports-a46960b1350961e89ff03494d21f6616b7803e4f.tar.gz
ports-a46960b1350961e89ff03494d21f6616b7803e4f.zip
net/cloud-init-devel: [New port] Customize cloud instances
Cloud-init is the industry standard multi-distribution method for cross-platform cloud instance initialization. It is supported across all major public cloud providers, provisioning systems for private cloud infrastructure, and bare-metal installations. This is the development version, it follows the git HEAD. WWW: https://cloud-init.io/ PR: 266847 Sponsored by: The FreeBSD Foundation Co-authored-by: Joseph Mingrone <jrm@FreeBSD.org>
-rw-r--r--net/Makefile1
-rw-r--r--net/cloud-init-devel/Makefile63
-rw-r--r--net/cloud-init-devel/distinfo3
-rw-r--r--net/cloud-init-devel/files/patch-cloudinit_settings.py20
-rw-r--r--net/cloud-init-devel/files/patch-config_cloud.cfg.d_99__freebsd.cfg5
-rw-r--r--net/cloud-init-devel/files/patch-setup.py11
-rw-r--r--net/cloud-init-devel/pkg-descr4
-rw-r--r--net/cloud-init-devel/pkg-message11
8 files changed, 118 insertions, 0 deletions
diff --git a/net/Makefile b/net/Makefile
index 1c0081d9180f..44a1130e2c68 100644
--- a/net/Makefile
+++ b/net/Makefile
@@ -80,6 +80,7 @@
SUBDIR += cjdns
SUBDIR += clash
SUBDIR += cloud-init
+ SUBDIR += cloud-init-devel
SUBDIR += cloudflared
SUBDIR += cloudquery
SUBDIR += clusterit
diff --git a/net/cloud-init-devel/Makefile b/net/cloud-init-devel/Makefile
new file mode 100644
index 000000000000..856dce2b734d
--- /dev/null
+++ b/net/cloud-init-devel/Makefile
@@ -0,0 +1,63 @@
+PORTNAME= cloud-init
+DISTVERSION= 22.3-73
+DISTVERSIONSUFFIX= -gee8fa37a
+CATEGORIES= net python
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+PKGNAMESUFFIX= -devel
+
+MAINTAINER= me+FreeBSD@igalic.co
+COMMENT= Init scripts for use on cloud images, development version
+WWW= https://cloud-init.io/
+
+LICENSE= APACHE20 GPLv3
+LICENSE_COMB= dual
+LICENSE_FILE_APACHE20= ${WRKSRC}/LICENSE-Apache2.0
+LICENSE_FILE_GPLv3= ${WRKSRC}/LICENSE-GPLv3
+
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}boto>0:devel/py-boto@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}configobj>0:devel/py-configobj@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}Jinja2>0:devel/py-Jinja2@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}jsonpatch>0:devel/py-jsonpatch@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}jsonpointer>0:devel/py-jsonpointer@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}jsonschema>0:devel/py-jsonschema@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}netifaces>0:net/py-netifaces@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}oauthlib>0:security/py-oauthlib@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pyserial>0:comms/py-pyserial@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}requests>0:www/py-requests@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}yaml>0:devel/py-yaml@${PY_FLAVOR} \
+ sudo>0:security/sudo
+TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest-cov>=0:devel/py-pytest-cov@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pytest-mock>=0:devel/py-pytest-mock@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}responses>=0:devel/py-responses@${PY_FLAVOR} \
+ bash:shells/bash
+
+USES= python:3.6+ shebangfix
+USE_GITHUB= yes
+GH_ACCOUNT= canonical
+USE_PYTHON= autoplist distutils
+PYDISTUTILS_INSTALLARGS+= "--init-system=sysvinit_freebsd"
+
+SHEBANG_FILES= tools/hook-hotplug tools/read-dependencies tools/read-version \
+ tools/validate-yaml.py
+
+TEST_ENV= ${MAKE_ENV} \
+ PYTHON=${PYTHON_VERSION}
+TEST_TARGET= check
+
+# Conflicts
+CONFLICTS_INSTALL= cloud-init
+
+# Standard bsd.port.mk variables
+ETCDIR= ${PREFIX}/etc/cloud
+
+NO_ARCH= yes
+
+post-patch:
+ ${REINPLACE_CMD} -e 's|%%PREFIX%%|${STAGEDIR}${PREFIX}|g' ${WRKSRC}/setup.py
+ ${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' ${WRKSRC}/cloudinit/settings.py
+ ${RM} ${WRKSRC}/config/cloud.cfg.d/99_freebsd.cfg.orig
+
+post-build:
+ ${MV} ${WRKSRC}/config/cloud.cfg.d/05_logging.cfg ${WRKSRC}/config/cloud.cfg.d/05_logging.cfg.sample
+
+.include <bsd.port.mk>
diff --git a/net/cloud-init-devel/distinfo b/net/cloud-init-devel/distinfo
new file mode 100644
index 000000000000..eb1a0ad0c524
--- /dev/null
+++ b/net/cloud-init-devel/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1665773854
+SHA256 (canonical-cloud-init-22.3-73-gee8fa37a_GH0.tar.gz) = 9b6906753e2ef80e24d38c844da4ee7ec479578267f5efa42a1fe159cc8249dd
+SIZE (canonical-cloud-init-22.3-73-gee8fa37a_GH0.tar.gz) = 1450143
diff --git a/net/cloud-init-devel/files/patch-cloudinit_settings.py b/net/cloud-init-devel/files/patch-cloudinit_settings.py
new file mode 100644
index 000000000000..d7ca2bd87f2c
--- /dev/null
+++ b/net/cloud-init-devel/files/patch-cloudinit_settings.py
@@ -0,0 +1,20 @@
+--- cloudinit/settings.py.orig 2021-03-17 15:43:42 UTC
++++ cloudinit/settings.py
+@@ -12,7 +12,7 @@
+ CFG_ENV_NAME = "CLOUD_CFG"
+
+ # This is expected to be a yaml formatted file
+-CLOUD_CONFIG = "/etc/cloud/cloud.cfg"
++CLOUD_CONFIG = "%%PREFIX%%/etc/cloud/cloud.cfg"
+
+ RUN_CLOUD_CONFIG = "/run/cloud-init/cloud.cfg"
+
+@@ -50,7 +50,7 @@ CFG_BUILTIN = {
+ "system_info": {
+ "paths": {
+ "cloud_dir": "/var/lib/cloud",
+- "templates_dir": "/etc/cloud/templates/",
++ "templates_dir": "%%PREFIX%%/etc/cloud/templates/",
+ },
+ "distro": "ubuntu",
+ "network": {"renderers": None},
diff --git a/net/cloud-init-devel/files/patch-config_cloud.cfg.d_99__freebsd.cfg b/net/cloud-init-devel/files/patch-config_cloud.cfg.d_99__freebsd.cfg
new file mode 100644
index 000000000000..54430cfbd422
--- /dev/null
+++ b/net/cloud-init-devel/files/patch-config_cloud.cfg.d_99__freebsd.cfg
@@ -0,0 +1,5 @@
+--- config/cloud.cfg.d/99_freebsd.cfg.orig 2021-12-13 06:41:51 UTC
++++ config/cloud.cfg.d/99_freebsd.cfg
+@@ -0,0 +1,2 @@
++no_ssh_fingerprints: true
++disable_network_activation: true
diff --git a/net/cloud-init-devel/files/patch-setup.py b/net/cloud-init-devel/files/patch-setup.py
new file mode 100644
index 000000000000..c94715dc97c6
--- /dev/null
+++ b/net/cloud-init-devel/files/patch-setup.py
@@ -0,0 +1,11 @@
+--- setup.py.orig 2021-03-17 15:40:30 UTC
++++ setup.py
+@@ -153,7 +153,7 @@ INITSYS_TYPES = sorted([f.partition(".")[0] for f in I
+ # Install everything in the right location and take care of Linux (default) and
+ # FreeBSD systems.
+ USR = "usr"
+-ETC = "etc"
++ETC = "%%PREFIX%%/etc"
+ USR_LIB_EXEC = "usr/lib"
+ LIB = "lib"
+ if os.uname()[0] in ["FreeBSD", "DragonFly"]:
diff --git a/net/cloud-init-devel/pkg-descr b/net/cloud-init-devel/pkg-descr
new file mode 100644
index 000000000000..6eacee0a5861
--- /dev/null
+++ b/net/cloud-init-devel/pkg-descr
@@ -0,0 +1,4 @@
+Cloud-init is the industry standard multi-distribution method for cross-platform
+cloud instance initialization. It is supported across all major public cloud
+providers, provisioning systems for private cloud infrastructure, and bare-metal
+installations. This is the development version, it follows the git HEAD.
diff --git a/net/cloud-init-devel/pkg-message b/net/cloud-init-devel/pkg-message
new file mode 100644
index 000000000000..f82dd34c3c06
--- /dev/null
+++ b/net/cloud-init-devel/pkg-message
@@ -0,0 +1,11 @@
+[
+{ type: install
+ message: <<EOM
+To enable cloud-init, add the following line to rc.conf:
+
+cloudinit_enable="YES"
+
+This will make sure cloud-init is started at boot.
+EOM
+}
+]