aboutsummaryrefslogtreecommitdiff
path: root/sysutils/py-google-compute-engine
diff options
context:
space:
mode:
authorSteve Wills <swills@FreeBSD.org>2018-05-22 23:52:40 +0000
committerSteve Wills <swills@FreeBSD.org>2018-05-22 23:52:40 +0000
commitd453bb4d05602f80eff6ce76ffe7f6a3c036dcaf (patch)
tree386f982124ebac41d63c3ea0485d66c3e487abb8 /sysutils/py-google-compute-engine
parent12b24cc1c1e32c4746156d4257efce82a92f1cc2 (diff)
downloadports-d453bb4d05602f80eff6ce76ffe7f6a3c036dcaf.tar.gz
ports-d453bb4d05602f80eff6ce76ffe7f6a3c036dcaf.zip
sysutils/py-google-compute-engine: Fix hostname and bash usage
PR: 228428 PR: 228252 Submitted by: Helen Koike <helen.koike@collabora.com> (maintainer)
Notes
Notes: svn path=/head/; revision=470666
Diffstat (limited to 'sysutils/py-google-compute-engine')
-rw-r--r--sysutils/py-google-compute-engine/Makefile6
-rw-r--r--sysutils/py-google-compute-engine/files/google_set_hostname121
-rw-r--r--sysutils/py-google-compute-engine/files/patch-google__compute__engine_metadata__scripts_script__executor.py11
-rw-r--r--sysutils/py-google-compute-engine/pkg-plist1
4 files changed, 137 insertions, 2 deletions
diff --git a/sysutils/py-google-compute-engine/Makefile b/sysutils/py-google-compute-engine/Makefile
index 76403f5c6dfa..03ca3bd822c2 100644
--- a/sysutils/py-google-compute-engine/Makefile
+++ b/sysutils/py-google-compute-engine/Makefile
@@ -2,7 +2,7 @@
PORTNAME= google-compute-engine
DISTVERSION= 2.7.6
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= sysutils python
MASTER_SITES= CHEESESHOP
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -34,10 +34,12 @@ SUB_LIST= PYTHON_CMD="${PYTHON_CMD}"
REINPLACE_ARGS= -i ''
post-install:
- @${MKDIR} ${STAGEDIR}${PREFIX}/etc/syslog.d
+ @${MKDIR} ${STAGEDIR}${PREFIX}/etc/syslog.d ${STAGEDIR}/etc
${INSTALL_DATA} ${FILESDIR}/instance_configs.cfg.distro.sample \
${STAGEDIR}${PREFIX}/etc/instance_configs.cfg.distro.sample
${INSTALL_DATA} ${FILESDIR}/90-google.conf.sample \
${STAGEDIR}${PREFIX}/etc/syslog.d/90-google.conf.sample
+ ${INSTALL_DATA} ${FILESDIR}/google_set_hostname \
+ ${STAGEDIR}/etc/dhclient-exit-hooks
.include <bsd.port.mk>
diff --git a/sysutils/py-google-compute-engine/files/google_set_hostname b/sysutils/py-google-compute-engine/files/google_set_hostname
new file mode 100644
index 000000000000..21faa156dcc7
--- /dev/null
+++ b/sysutils/py-google-compute-engine/files/google_set_hostname
@@ -0,0 +1,121 @@
+#!/bin/sh
+# $FreeBSD$
+# Copyright 2016 Google Inc. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Deal with a new hostname assignment.
+
+if [ -n "$new_host_name" ] && [ -n "$new_ip_address" ]; then
+ # Delete entries with new_host_name or new_ip_address in /etc/hosts.
+ sed -i '/Added by Google/d' /etc/hosts
+
+ # Add an entry for our new_host_name/new_ip_address in /etc/hosts.
+ echo "${new_ip_address} ${new_host_name} ${new_host_name%%.*} # Added by Google" >> /etc/hosts
+
+ # Add an entry for reaching the metadata server in /etc/hosts.
+ echo "169.254.169.254 metadata.google.internal # Added by Google" >> /etc/hosts
+fi
+
+# /sbin/dhclient-scripts in both ubuntu and centos have some problems for us:
+# 1) BOUND doesn't always set hostname (e.g. if old_host_name is unset in
+# precise pangolin)
+# 2) Using too long of a FQDN as a hostname causes some tools to break in
+# some distros (e.g. ssh-keygen) and hostname tool complains when given
+# a FQDN that is > 64 bytes.
+#
+# As a result, we set the host name in all circumstances here, to the truncated
+# unqualified domain name.
+
+if [ -n "$new_host_name" ]; then
+ hostname "${new_host_name%%.*}"
+
+ # If NetworkManager is installed set the hostname with nmcli.
+ # to resolve issues with NetworkManager resetting the hostname
+ # to the FQDN on DHCP renew.
+ nmcli=$(which nmcli 2> /dev/null)
+ if [ -x "$nmcli" ]; then
+ nmcli general hostname "${new_host_name%%.*}"
+ fi
+
+ # Restart rsyslog to update the hostname.
+ systemctl=$(which systemctl 2> /dev/null)
+ if [ -x "$systemctl" ]; then
+ hasrsyslog=$($systemctl | grep rsyslog | cut -f1 -d' ')
+ if [ ! -z "$hasrsyslog" ]; then
+ $systemctl -q --no-block restart "$hasrsyslog"
+ fi
+ else
+ pkill -HUP syslogd
+ fi
+fi
+#!/bin/sh
+# Copyright 2016 Google Inc. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Deal with a new hostname assignment.
+
+if [ -n "$new_host_name" ] && [ -n "$new_ip_address" ]; then
+ # Delete entries with new_host_name or new_ip_address in /etc/hosts.
+ sed -i '/Added by Google/d' /etc/hosts
+
+ # Add an entry for our new_host_name/new_ip_address in /etc/hosts.
+ echo "${new_ip_address} ${new_host_name} ${new_host_name%%.*} # Added by Google" >> /etc/hosts
+
+ # Add an entry for reaching the metadata server in /etc/hosts.
+ echo "169.254.169.254 metadata.google.internal # Added by Google" >> /etc/hosts
+fi
+
+# /sbin/dhclient-scripts in both ubuntu and centos have some problems for us:
+# 1) BOUND doesn't always set hostname (e.g. if old_host_name is unset in
+# precise pangolin)
+# 2) Using too long of a FQDN as a hostname causes some tools to break in
+# some distros (e.g. ssh-keygen) and hostname tool complains when given
+# a FQDN that is > 64 bytes.
+#
+# As a result, we set the host name in all circumstances here, to the truncated
+# unqualified domain name.
+
+if [ -n "$new_host_name" ]; then
+ hostname "${new_host_name%%.*}"
+
+ # If NetworkManager is installed set the hostname with nmcli.
+ # to resolve issues with NetworkManager resetting the hostname
+ # to the FQDN on DHCP renew.
+ nmcli=$(which nmcli 2> /dev/null)
+ if [ -x "$nmcli" ]; then
+ nmcli general hostname "${new_host_name%%.*}"
+ fi
+
+ # Restart rsyslog to update the hostname.
+ systemctl=$(which systemctl 2> /dev/null)
+ if [ -x "$systemctl" ]; then
+ hasrsyslog=$($systemctl | grep rsyslog | cut -f1 -d' ')
+ if [ ! -z "$hasrsyslog" ]; then
+ $systemctl -q --no-block restart "$hasrsyslog"
+ fi
+ else
+ pkill -HUP syslogd
+ fi
+fi
diff --git a/sysutils/py-google-compute-engine/files/patch-google__compute__engine_metadata__scripts_script__executor.py b/sysutils/py-google-compute-engine/files/patch-google__compute__engine_metadata__scripts_script__executor.py
new file mode 100644
index 000000000000..302eacff6260
--- /dev/null
+++ b/sysutils/py-google-compute-engine/files/patch-google__compute__engine_metadata__scripts_script__executor.py
@@ -0,0 +1,11 @@
+--- google_compute_engine/metadata_scripts/script_executor.py.orig 2018-02-22 19:44:17 UTC
++++ google_compute_engine/metadata_scripts/script_executor.py
+@@ -53,7 +53,7 @@ class ScriptExecutor(object):
+ """
+ process = subprocess.Popen(
+ metadata_script, shell=True,
+- executable=constants.LOCALBASE + '/bin/bash',
++ executable='/bin/sh',
+ stderr=subprocess.STDOUT, stdout=subprocess.PIPE)
+ while True:
+ for line in iter(process.stdout.readline, b''):
diff --git a/sysutils/py-google-compute-engine/pkg-plist b/sysutils/py-google-compute-engine/pkg-plist
index 3c25a00cd2a6..52518d3ac0ee 100644
--- a/sysutils/py-google-compute-engine/pkg-plist
+++ b/sysutils/py-google-compute-engine/pkg-plist
@@ -1,2 +1,3 @@
@sample etc/instance_configs.cfg.distro.sample
@sample etc/syslog.d/90-google.conf.sample
+/etc/dhclient-exit-hooks