summaryrefslogtreecommitdiff
path: root/sysutils
diff options
context:
space:
mode:
authorMark Felder <feld@FreeBSD.org>2024-09-23 16:44:24 +0000
committerMark Felder <feld@FreeBSD.org>2024-09-23 16:44:24 +0000
commite172102c8c481b266b7650278bd2147055a942e4 (patch)
treed241d681ed7191926f5269841f00c621e104f104 /sysutils
parentmath/geogebra: Update to 5.2.857.0 (diff)
sysutils/xe-guest-utilities: Update to 6.3.0
This update changes the way IP addresses and interfaces are reported to adhere to the newer XAPI syntax and will now report IPv6 addresses. PR: 281256 Reported by: freebsd@filter.paco.to
Diffstat (limited to 'sysutils')
-rw-r--r--sysutils/xe-guest-utilities/Makefile3
-rw-r--r--sysutils/xe-guest-utilities/files/patch-xe-update-guest-attrs150
2 files changed, 144 insertions, 9 deletions
diff --git a/sysutils/xe-guest-utilities/Makefile b/sysutils/xe-guest-utilities/Makefile
index c7bc5c2b87d9..553d6552651a 100644
--- a/sysutils/xe-guest-utilities/Makefile
+++ b/sysutils/xe-guest-utilities/Makefile
@@ -1,6 +1,5 @@
PORTNAME= xe-guest-utilities
-PORTVERSION= 6.2.0
-PORTREVISION= 3
+PORTVERSION= 6.3.0
CATEGORIES= sysutils
MASTER_SITES= LOCAL/feld
DISTNAME= ${PORTNAME}-6.0.2
diff --git a/sysutils/xe-guest-utilities/files/patch-xe-update-guest-attrs b/sysutils/xe-guest-utilities/files/patch-xe-update-guest-attrs
index 9b572de87bd1..681e47fa016b 100644
--- a/sysutils/xe-guest-utilities/files/patch-xe-update-guest-attrs
+++ b/sysutils/xe-guest-utilities/files/patch-xe-update-guest-attrs
@@ -1,16 +1,152 @@
---- src/sbin/xe-update-guest-attrs.orig 2014-07-07 15:45:10.000000000 +0200
-+++ src/sbin/xe-update-guest-attrs 2015-01-30 10:24:05.000000000 +0100
-@@ -173,10 +173,10 @@
- xenstore_write_cached "control/feature-balloon" "1"
+--- src/sbin/xe-update-guest-attrs.orig 2024-09-03 15:39:43.133537000 -0400
++++ src/sbin/xe-update-guest-attrs 2024-09-03 15:42:09.862675000 -0400
+@@ -39,7 +39,7 @@ XENSTORE=${XENSTORE:-/usr/local/bin/xenstore}
+
+ export PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/sbin
+ XENSTORE=${XENSTORE:-/usr/local/bin/xenstore}
+-
++CACHEROOT="/var/cache/xenstore"
+ XENSTORE_UPDATED=0
+
+ # parse command line opts
+@@ -54,7 +54,7 @@ xenstore_write_cached() {
+
+ xenstore_write_cached() {
+ key="$1" newval="$2"
+- cache=/var/cache/xenstore/$key
++ cache=${CACHEROOT}/$key
+ if [ -f $cache ] ; then
+ # cache exists
+ oldval=$(cat "$cache")
+@@ -82,13 +82,13 @@ domid=$(/usr/local/bin/xenstore-read "domid")
+
+ # If we detect a domain change then delete our cache and force a refresh
+ domid=$(/usr/local/bin/xenstore-read "domid")
+-cache=/var/cache/xenstore/unique-domain-id
++cache=${CACHEROOT}/unique-domain-id
+ newval=$(/usr/local/bin/xenstore-read "/local/domain/${domid}/unique-domain-id")
+ if [ -e $cache ]; then
+ oldval=$(cat "$cache")
+ if [ "$oldval" != "$newval" ]; then
+ # domain changed
+- rm -rf /var/cache/xenstore
++ rm -rf xenstore
+ fi
+ fi
+ mkdir -p $(dirname "$cache")
+@@ -96,7 +96,7 @@ xenstore_rm_cached() {
+
+ xenstore_rm_cached() {
+ key="$1"
+- cache=/var/cache/xenstore/$key
++ cache=${CACHEROOT}/$key
+ if [ ! -e $cache ] ; then
+ return 1
+ fi
+@@ -109,21 +109,46 @@ xenstore_rm_cached() {
+ return 1
+ }
+
++# read cache, using xen-style integers (e.g., "0", "1")
++# return bsd names like xn0
+ xenstore_list_interfaces_cached() {
+- topdir=/var/cache/xenstore/attr
++ topdir=${CACHEROOT}/attr
+ if [ -d $topdir ] ; then
+ cd $topdir
+- for dir in * ; do
+- [ -f $dir/ip ] && echo $dir
++ # if a file named like vif/0/ipv4/0 exists, then xn0 is a valid interface
++ # sort -u to get only unique interfaces
++ iflist=$(ls vif/*/ipv?/* | cut -d / -f 2 | sort -u | xargs echo)
++ for n in $iflist
++ do
++ echo "xn${n}"
+ done
+ fi
+ }
+
++# XAPI expects things like attr/vif/0/ipv4/0 = 172.30.0.2
++# So this tries to map BSD names like xn0 to attr/vif/0
+ xe_ip_if() {
+-interfaces=$(/sbin/ifconfig -u | grep ': flags=' | grep xn | cut -d ':' -f1)
+-for if in $interfaces ; do
+- echo $(echo $if | sed 's/xn/eth/g') "|" $(/sbin/ifconfig $if | grep 'inet ' | cut -d ' ' -f2)
+-done
++ interfaces=$(/sbin/ifconfig -u | grep ': flags=' | grep xn | cut -d ':' -f1)
++ n=0
++ for ifacename in $interfaces ; do
++ v4ips=$(/sbin/ifconfig $ifacename | grep 'inet ' | cut -d ' ' -f2)
++ # FreeBSD reports some IPv6 addrs like fe80:1234::abcd%xn0, the `cut` strips that off
++ v6ips=$(/sbin/ifconfig $ifacename | grep 'inet6 ' | cut -d ' ' -f2 | cut -d % -f 1 )
++ i=0
++ for v4ip in $v4ips
++ do
++ echo "vif/$n/ipv4/$i | $v4ip"
++ i=$(($i+1))
++ done
++
++ i=0
++ for v6ip in $v6ips
++ do
++ echo "vif/$n/ipv6/$i | $v6ip"
++ i=$(($i+1))
++ done
++ n=$(($n+1))
++ done
+ }
+
+ if [ $MEMORY_MODE -eq 1 ] ; then
+@@ -140,22 +165,33 @@ fi
+ xenstore_write_cached "data/meminfo_free" "$memavail"
+ fi
+
++# xe_ip_if | while read linea
++# do
++# if=$(echo $linea | cut -d '|' -f1 | sed 's/ //g')
++# inet=$(echo $linea | cut -d '|' -f2 | sed 's/^ //')
++# xenstore_write_cached "attr/${if}/ip" "${inet}"
++# done
++
++# This breaks apart a string like "vif/0/ipv4/0 | 172.16.0.8" into 2 arguments for
++# xenstore_write_cached
+ xe_ip_if | while read linea
+ do
+- if=$(echo $linea | cut -d '|' -f1 | sed 's/ //g')
+- inet=$(echo $linea | cut -d '|' -f2 | sed 's/^ //')
+- xenstore_write_cached "attr/${if}/ip" "${inet}"
++ if=$(echo $linea | cut -d '|' -f1 | tr -d ' ' )
++ inet=$(echo $linea | cut -d '|' -f2 | tr -d ' ' )
++ xenstore_write_cached "attr/${if}" "${inet}"
+ done
+
+ # remove any interfaces that have been unplugged or downed
+-for at in $(xenstore_list_interfaces_cached) ; do
++for xn in $(xenstore_list_interfaces_cached) ; do
+ link=1
+- xn=$(echo $at | sed 's/eth/xn/')
+- iface=$(/sbin/ifconfig $xn | grep UP | cut -d ':' -f1)
++ iface=$(/sbin/ifconfig $xn | grep "UP," | cut -d ':' -f1)
+ [ "${iface}" = "${xn}" ] && link=0
+
+ if [ "$link" -gt "0" ] ; then
+- xenstore_rm_cached "attr/${at}"
++ # bsd-named interface is gone, remove attr from xenstore
++ vifnum=$(echo $xn | sed 's/xn//g')
++ echo "removing vif $vifnum"
++ xenstore_rm_cached "attr/vif/${vifnum}"
+ fi
+ done
+
+@@ -174,9 +210,9 @@ xenstore_write_cached "attr/PVAddons/MajorVersion" "6"
# build time addons
--xenstore_write_cached "attr/PVAddons/MajorVersion" "6"
+ xenstore_write_cached "attr/PVAddons/MajorVersion" "6"
-xenstore_write_cached "attr/PVAddons/MinorVersion" "0"
-xenstore_write_cached "attr/PVAddons/MicroVersion" "2"
-xenstore_write_cached "attr/PVAddons/BuildVersion" "54078"
-+xenstore_write_cached "attr/PVAddons/MajorVersion" "6"
+xenstore_write_cached "attr/PVAddons/MinorVersion" "2"
-+xenstore_write_cached "attr/PVAddons/MicroVersion" "0"
++xenstore_write_cached "attr/PVAddons/MicroVersion" "1"
+xenstore_write_cached "attr/PVAddons/BuildVersion" "76888"
xenstore_write_cached "attr/PVAddons/Installed" "1"