Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 22 May 2018 23:52:40 +0000 (UTC)
From:      Steve Wills <swills@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r470666 - in head/sysutils/py-google-compute-engine: . files
Message-ID:  <201805222352.w4MNqegM027832@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: swills
Date: Tue May 22 23:52:40 2018
New Revision: 470666
URL: https://svnweb.freebsd.org/changeset/ports/470666

Log:
  sysutils/py-google-compute-engine: Fix hostname and bash usage
  
  PR:		228428
  PR:		228252
  Submitted by:	Helen Koike <helen.koike@collabora.com> (maintainer)

Added:
  head/sysutils/py-google-compute-engine/files/google_set_hostname   (contents, props changed)
  head/sysutils/py-google-compute-engine/files/patch-google__compute__engine_metadata__scripts_script__executor.py   (contents, props changed)
Modified:
  head/sysutils/py-google-compute-engine/Makefile   (contents, props changed)
  head/sysutils/py-google-compute-engine/pkg-plist   (contents, props changed)

Modified: head/sysutils/py-google-compute-engine/Makefile
==============================================================================
--- head/sysutils/py-google-compute-engine/Makefile	Tue May 22 23:22:38 2018	(r470665)
+++ head/sysutils/py-google-compute-engine/Makefile	Tue May 22 23:52:40 2018	(r470666)
@@ -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>

Added: head/sysutils/py-google-compute-engine/files/google_set_hostname
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/py-google-compute-engine/files/google_set_hostname	Tue May 22 23:52:40 2018	(r470666)
@@ -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

Added: head/sysutils/py-google-compute-engine/files/patch-google__compute__engine_metadata__scripts_script__executor.py
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/py-google-compute-engine/files/patch-google__compute__engine_metadata__scripts_script__executor.py	Tue May 22 23:52:40 2018	(r470666)
@@ -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''):

Modified: head/sysutils/py-google-compute-engine/pkg-plist
==============================================================================
--- head/sysutils/py-google-compute-engine/pkg-plist	Tue May 22 23:22:38 2018	(r470665)
+++ head/sysutils/py-google-compute-engine/pkg-plist	Tue May 22 23:52:40 2018	(r470666)
@@ -1,2 +1,3 @@
 @sample etc/instance_configs.cfg.distro.sample
 @sample etc/syslog.d/90-google.conf.sample
+/etc/dhclient-exit-hooks



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201805222352.w4MNqegM027832>