cloud-init-dev team mailing list archive
-
cloud-init-dev team
-
Mailing list archive
-
Message #06318
[Merge] ~goneri/cloud-init:freebsd_python3 into cloud-init:master
Gonéri Le Bouder has proposed merging ~goneri/cloud-init:freebsd_python3 into cloud-init:master.
Requested reviews:
cloud-init commiters (cloud-init-dev)
For more details, see:
https://code.launchpad.net/~goneri/cloud-init/+git/cloud-init/+merge/368791
--
Your team cloud-init commiters is requested to review the proposed merge of ~goneri/cloud-init:freebsd_python3 into cloud-init:master.
diff --git a/tools/build-on-freebsd b/tools/build-on-freebsd
index dc3b974..3282f9e 100755
--- a/tools/build-on-freebsd
+++ b/tools/build-on-freebsd
@@ -3,36 +3,40 @@
# installing cloud-init. This script takes care of building and installing. It
# will optionally make a first run at the end.
+set -eux
+
fail() { echo "FAILED:" "$@" 1>&2; exit 1; }
+pkg install python3
+py_prefix=$(python3 -c 'import sys; print("py%d%d" % (sys.version_info.major, sys.version_info.minor))')
+
# Check dependencies:
depschecked=/tmp/c-i.dependencieschecked
pkgs="
- bash
- chpasswd
- dmidecode
- e2fsprogs
- py27-Jinja2
- py27-boto
- py27-cheetah
- py27-configobj
- py27-jsonpatch
- py27-jsonpointer
- py27-jsonschema
- py27-oauthlib
- py27-requests
- py27-serial
- py27-six
- py27-yaml
- python
- sudo
+ bash
+ chpasswd
+ dmidecode
+ e2fsprogs
+ $py_prefix-Jinja2
+ $py_prefix-boto
+ $py_prefix-configobj
+ $py_prefix-jsonpatch
+ $py_prefix-jsonpointer
+ $py_prefix-jsonschema
+ $py_prefix-oauthlib
+ $py_prefix-requests
+ $py_prefix-serial
+ $py_prefix-six
+ $py_prefix-yaml
+ sudo
"
-[ -f "$depschecked" ] || pkg install ${pkgs} || fail "install packages"
+[ -f "$depschecked" ] || pkg install --yes ${pkgs} || fail "install packages"
touch $depschecked
+pkg install $py_prefix-cheetah || true
# Build the code and install in /usr/local/:
-python2.7 setup.py build
-python2.7 setup.py install -O1 --skip-build --prefix /usr/local/ --init-system sysvinit_freebsd
+python3 setup.py build
+python3 setup.py install -O1 --skip-build --prefix /usr/local/ --init-system sysvinit_freebsd
# Enable cloud-init in /etc/rc.conf:
sed -i.bak -e "/cloudinit_enable=.*/d" /etc/rc.conf
@@ -40,21 +44,21 @@ echo 'cloudinit_enable="YES"' >> /etc/rc.conf
echo "Installation completed."
-if [ "$1" = "run" ]; then
- echo "Ok, now let's see if it works."
+if [ "$#" -gt 1 ] && [ "$1" = "run" ]; then
+ echo "Ok, now let's see if it works."
- # Backup SSH keys
- mv /etc/ssh/ssh_host_* /tmp/
+ # Backup SSH keys
+ mv /etc/ssh/ssh_host_* /tmp/
- # Remove old metadata
- rm -rf /var/lib/cloud
+ # Remove old metadata
+ rm -rf /var/lib/cloud
- # Just log everything, quick&dirty
- rm /usr/local/etc/cloud/cloud.cfg.d/05_logging.cfg
+ # Just log everything, quick&dirty
+ rm /usr/local/etc/cloud/cloud.cfg.d/05_logging.cfg
- # Start:
- /usr/local/etc/rc.d/cloudinit start
+ # Start:
+ /usr/local/etc/rc.d/cloudinit start
- # Restore SSH keys
- mv /tmp/ssh_host_* /etc/ssh/
+ # Restore SSH keys
+ mv /tmp/ssh_host_* /etc/ssh/
fi