Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 Jan 2023 19:23:22 GMT
From:      Ryan Steinmetz <zi@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 92dec795cd3f - main - emulators/qemu-guest-agent: Delete port
Message-ID:  <202301201923.30KJNMPT013687@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by zi:

URL: https://cgit.FreeBSD.org/ports/commit/?id=92dec795cd3fc00c5b9f62cd8be7b6540132f27e

commit 92dec795cd3fc00c5b9f62cd8be7b6540132f27e
Author:     Ryan Steinmetz <zi@FreeBSD.org>
AuthorDate: 2023-01-20 19:21:27 +0000
Commit:     Ryan Steinmetz <zi@FreeBSD.org>
CommitDate: 2023-01-20 19:21:27 +0000

    emulators/qemu-guest-agent: Delete port
    
    - Remove port (being merged into a flavor of emulators/qemu)
    - Document change in MOVED
---
 MOVED                                              |   1 +
 emulators/Makefile                                 |   1 -
 emulators/qemu-guest-agent/Makefile                | 174 -----
 emulators/qemu-guest-agent/distinfo                |   7 -
 emulators/qemu-guest-agent/files/patch-Makefile    | 106 ---
 emulators/qemu-guest-agent/files/patch-configure   | 201 ------
 .../files/patch-qga_commands-posix.c               | 758 ---------------------
 emulators/qemu-guest-agent/files/patch-qga_main.c  |  30 -
 .../qemu-guest-agent/files/qemu-guest-agent.in     |  31 -
 emulators/qemu-guest-agent/pkg-descr               |   3 -
 emulators/qemu-guest-agent/pkg-message             |  17 -
 emulators/qemu-guest-agent/pkg-plist               |   1 -
 12 files changed, 1 insertion(+), 1329 deletions(-)

diff --git a/MOVED b/MOVED
index 0f0683261de7..76df71372c3b 100644
--- a/MOVED
+++ b/MOVED
@@ -17759,3 +17759,4 @@ net-p2p/tootle|net-p2p/tooth|2023-01-16|Upstream archived, forked
 lang/zig-devel|lang/zig|2023-01-19|Development version no longer necessary
 irc/cwirc||2023-01-19|Has expired: No upstream, no apparent use seen online
 sysutils/ior|benchmarks/ior|2023-01-20|Moved to a better fit category
+emulators/qemu-guest-agent|emulators/qemu@guestagent|2023-01-20|Seperate port merged with main port as a flavor
diff --git a/emulators/Makefile b/emulators/Makefile
index 74ed1ba7a151..6cdea843d238 100644
--- a/emulators/Makefile
+++ b/emulators/Makefile
@@ -111,7 +111,6 @@
     SUBDIR += qemu
     SUBDIR += qemu-cheri
     SUBDIR += qemu-devel
-    SUBDIR += qemu-guest-agent
     SUBDIR += qemu-powernv
     SUBDIR += qemu-user-static
     SUBDIR += qemu-user-static-devel
diff --git a/emulators/qemu-guest-agent/Makefile b/emulators/qemu-guest-agent/Makefile
deleted file mode 100644
index 30bac25acd4e..000000000000
--- a/emulators/qemu-guest-agent/Makefile
+++ /dev/null
@@ -1,174 +0,0 @@
-PORTNAME=	qemu
-DISTVERSION=	5.0.1
-CATEGORIES=	emulators
-MASTER_SITES=	https://download.qemu.org/
-PKGNAMESUFFIX=	-guest-agent
-
-MAINTAINER=	zhecka@gmail.com
-COMMENT=	QEMU guest-agent utilities
-WWW=		https://www.qemu.org/
-
-LICENSE=	GPLv2
-
-DIST_SUBDIR=	qemu/${PORTVERSION}
-FILESDIR=	${.CURDIR}/files
-HAS_CONFIGURE=	yes
-USES=		compiler:c++11-lang gmake gnome pkgconfig python:build tar:xz
-USE_GNOME=	glib20
-USE_RC_SUBR=	qemu-guest-agent
-MAKE_ENV+=	BSD_MAKE="${MAKE}" PREFIX=${PREFIX}
-
-OPTIONS_EXCLUDE=SAMBA X11 GTK3 OPENGL GNUTLS SASL JPEG PNG CURL \
-		CDROM_DMA PCAP USBREDIR GNS3 X86_TARGETS DOCS\
-		STATIC_LINK NCURSES VDE
-
-PLIST=		${.CURDIR}/pkg-plist
-DESCR=		${.CURDIR}/pkg-descr
-
-CONFIGURE_ARGS?=--localstatedir=/var --extra-ldflags=-L\"${LOCALBASE}/lib\" \
-		--mandir=${MANPREFIX}/man \
-		--prefix=${PREFIX} --cc=${CC} --disable-kvm \
-		--python=${PYTHON_CMD} \
-		--extra-cflags=-I${WRKSRC}\ -I${LOCALBASE}/include\ -DPREFIX=\\\"\"${PREFIX}\\\"\"\ -DBSD_GUEST_AGENT\ -DFREEBSD \
-		--disable-blobs \
-		--disable-system \
-		--disable-user \
-		--disable-linux-user \
-		--disable-bsd-user \
-		--disable-docs \
-		--enable-guest-agent \
-		--disable-guest-agent-msi \
-		--disable-pie \
-		--disable-modules \
-		--disable-module-upgrades \
-		--disable-debug-tcg \
-		--disable-debug-info \
-		--disable-sparse \
-		--disable-gnutls \
-		--disable-nettle \
-		--disable-gcrypt \
-		--disable-auth-pam \
-		--disable-sdl \
-		--disable-sdl-image \
-		--disable-gtk \
-		--disable-vte \
-		--disable-curses \
-		--disable-iconv \
-		--disable-vnc \
-		--disable-vnc-sasl \
-		--disable-vnc-jpeg \
-		--disable-vnc-png \
-		--disable-cocoa \
-		--disable-virtfs \
-		--disable-mpath \
-		--disable-xen \
-		--disable-xen-pci-passthrough \
-		--disable-brlapi \
-		--disable-curl \
-		--disable-membarrier \
-		--disable-fdt \
-		--disable-kvm \
-		--disable-hax \
-		--disable-hvf \
-		--disable-whpx \
-		--disable-rdma \
-		--disable-pvrdma \
-		--disable-vde \
-		--disable-netmap \
-		--disable-linux-aio \
-		--disable-linux-io-uring \
-		--disable-cap-ng \
-		--disable-attr \
-		--disable-vhost-net \
-		--disable-vhost-vsock \
-		--disable-vhost-scsi \
-		--disable-vhost-crypto \
-		--disable-vhost-kernel \
-		--disable-vhost-user \
-		--disable-spice \
-		--disable-rbd \
-		--disable-libiscsi \
-		--disable-libnfs \
-		--disable-smartcard \
-		--disable-libusb \
-		--disable-live-block-migration \
-		--disable-usb-redir \
-		--disable-lzo \
-		--disable-snappy \
-		--disable-bzip2 \
-		--disable-lzfse \
-		--disable-zstd \
-		--disable-seccomp \
-		--disable-coroutine-pool \
-		--disable-glusterfs \
-		--disable-tpm \
-		--disable-libssh \
-		--disable-numa \
-		--disable-libxml2 \
-		--disable-tcmalloc \
-		--disable-jemalloc \
-		--disable-avx2 \
-		--disable-avx512f \
-		--disable-replication \
-		--disable-opengl \
-		--disable-virglrenderer \
-		--disable-xfsctl \
-		--disable-qom-cast-debug \
-		--enable-tools \
-		--disable-vxhs \
-		--disable-bochs \
-		--disable-cloop \
-		--disable-dmg \
-		--disable-qcow1 \
-		--disable-vdi \
-		--disable-vvfat \
-		--disable-qed \
-		--disable-parallels \
-		--disable-sheepdog \
-		--disable-crypto-afalg \
-		--disable-capstone \
-		--disable-debug-mutex \
-		--disable-libpmem \
-		--disable-xkbcommon
-
-post-install:
-	@${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/qemu-*
-	@${RM} ${STAGEDIR}${PREFIX}/bin/qemu-nbd
-	@${RM} ${STAGEDIR}${PREFIX}/bin/qemu-edid
-	@${RM} ${STAGEDIR}${PREFIX}/bin/qemu-img
-	@${RM} ${STAGEDIR}${PREFIX}/bin/qemu-io
-	@${RMDIR} ${STAGEDIR}${DATADIR}
-	${MKDIR} ${STAGEDIR}${PREFIX}/qemu
-
-.include <bsd.port.options.mk>
-
-.if !defined(STRIP) || ${STRIP} == ""
-CONFIGURE_ARGS+=--disable-strip
-.endif
-
-.if ${ARCH} == "amd64"
-MAKE_ARGS+=	ARCH=x86_64
-.endif
-
-.if ${ARCH} == "powerpc"
-MAKE_ARGS+=	ARCH=ppc
-.endif
-
-.if ${ARCH} == "powerpc64"
-MAKE_ARGS+=	ARCH=ppc64
-.endif
-
-.if ${ARCH} == "sparc64"
-CONFIGURE_ARGS+=	--sparc_cpu=v9
-.endif
-
-PLIST_SUB+=	LINUXBOOT_DMA=""
-
-# XXX need to disable usb host code on head while it's not ported to the
-# new usb stack yet
-post-configure:
-	@${REINPLACE_CMD} -E \
-		-e "s|^(HOST_USB=)bsd|\1stub|" \
-		${WRKSRC}/config-host.mak
-
-.include <bsd.port.mk>
diff --git a/emulators/qemu-guest-agent/distinfo b/emulators/qemu-guest-agent/distinfo
deleted file mode 100644
index d5f50ec2c84a..000000000000
--- a/emulators/qemu-guest-agent/distinfo
+++ /dev/null
@@ -1,7 +0,0 @@
-TIMESTAMP = 1603483758
-SHA256 (qemu/5.0.1/qemu-5.0.1.tar.xz) = 135fab4c3699a378c9584b3453927e2f5002e440311f21efa66fc189d4bb4982
-SIZE (qemu/5.0.1/qemu-5.0.1.tar.xz) = 62430168
-SHA256 (qemu/5.0.1/55765822804f.patch) = 10c2cc93ad01b02d854e26a9e445ba22bb5434dda1ef25baeb979be6292fa8ef
-SIZE (qemu/5.0.1/55765822804f.patch) = 2271
-SHA256 (qemu/5.0.1/aa4d30f6618d.patch) = eeddc5f5e08a460d2c133b4193d115fa1f00f206e0833f33ec66379981473efe
-SIZE (qemu/5.0.1/aa4d30f6618d.patch) = 2211
diff --git a/emulators/qemu-guest-agent/files/patch-Makefile b/emulators/qemu-guest-agent/files/patch-Makefile
deleted file mode 100644
index 3520d14c1d94..000000000000
--- a/emulators/qemu-guest-agent/files/patch-Makefile
+++ /dev/null
@@ -1,106 +0,0 @@
---- Makefile.orig	2020-09-15 19:31:13 UTC
-+++ Makefile
-@@ -361,29 +361,6 @@
- MANUAL_BUILDDIR := docs
- endif
- 
--ifdef BUILD_DOCS
--DOCS+=$(MANUAL_BUILDDIR)/system/qemu.1
--DOCS+=$(MANUAL_BUILDDIR)/tools/qemu-img.1
--DOCS+=$(MANUAL_BUILDDIR)/tools/qemu-nbd.8
--DOCS+=$(MANUAL_BUILDDIR)/interop/qemu-ga.8
--ifeq ($(CONFIG_LINUX)$(CONFIG_SECCOMP)$(CONFIG_LIBCAP_NG),yyy)
--DOCS+=$(MANUAL_BUILDDIR)/tools/virtiofsd.1
--endif
--DOCS+=$(MANUAL_BUILDDIR)/system/qemu-block-drivers.7
--DOCS+=docs/interop/qemu-qmp-ref.html docs/interop/qemu-qmp-ref.txt docs/interop/qemu-qmp-ref.7
--DOCS+=docs/interop/qemu-ga-ref.html docs/interop/qemu-ga-ref.txt docs/interop/qemu-ga-ref.7
--DOCS+=$(MANUAL_BUILDDIR)/system/qemu-cpu-models.7
--DOCS+=$(MANUAL_BUILDDIR)/index.html
--ifdef CONFIG_VIRTFS
--DOCS+=$(MANUAL_BUILDDIR)/tools/virtfs-proxy-helper.1
--endif
--ifdef CONFIG_TRACE_SYSTEMTAP
--DOCS+=$(MANUAL_BUILDDIR)/tools/qemu-trace-stap.1
--endif
--else
--DOCS=
--endif
--
- SUBDIR_MAKEFLAGS=$(if $(V),,--no-print-directory --quiet) BUILD_DIR=$(BUILD_DIR)
- SUBDIR_DEVICES_MAK=$(patsubst %, %/config-devices.mak, $(filter %-softmmu, $(TARGET_DIRS)))
- SUBDIR_DEVICES_MAK_DEP=$(patsubst %, %.d, $(SUBDIR_DEVICES_MAK))
-@@ -878,10 +855,6 @@
- 	$(call install-manual,user)
- 
- install-doc: $(DOCS) install-sphinxdocs
--	$(INSTALL_DIR) "$(DESTDIR)$(qemu_docdir)"
--	$(INSTALL_DATA) $(MANUAL_BUILDDIR)/index.html "$(DESTDIR)$(qemu_docdir)"
--	$(INSTALL_DATA) docs/interop/qemu-qmp-ref.html "$(DESTDIR)$(qemu_docdir)"
--	$(INSTALL_DATA) docs/interop/qemu-qmp-ref.txt "$(DESTDIR)$(qemu_docdir)"
- ifdef CONFIG_POSIX
- 	$(INSTALL_DIR) "$(DESTDIR)$(mandir)/man1"
- 	$(INSTALL_DATA) $(MANUAL_BUILDDIR)/system/qemu.1 "$(DESTDIR)$(mandir)/man1"
-@@ -889,21 +862,10 @@
- 	$(INSTALL_DATA) docs/interop/qemu-qmp-ref.7 "$(DESTDIR)$(mandir)/man7"
- 	$(INSTALL_DATA) $(MANUAL_BUILDDIR)/system/qemu-block-drivers.7 "$(DESTDIR)$(mandir)/man7"
- 	$(INSTALL_DATA) $(MANUAL_BUILDDIR)/system/qemu-cpu-models.7 "$(DESTDIR)$(mandir)/man7"
--ifeq ($(CONFIG_TOOLS),y)
--	$(INSTALL_DATA) $(MANUAL_BUILDDIR)/tools/qemu-img.1 "$(DESTDIR)$(mandir)/man1"
--	$(INSTALL_DIR) "$(DESTDIR)$(mandir)/man8"
--	$(INSTALL_DATA) $(MANUAL_BUILDDIR)/tools/qemu-nbd.8 "$(DESTDIR)$(mandir)/man8"
--endif
- ifdef CONFIG_TRACE_SYSTEMTAP
- 	$(INSTALL_DATA) $(MANUAL_BUILDDIR)/tools/qemu-trace-stap.1 "$(DESTDIR)$(mandir)/man1"
- endif
--ifneq (,$(findstring qemu-ga,$(TOOLS)))
--	$(INSTALL_DATA) $(MANUAL_BUILDDIR)/interop/qemu-ga.8 "$(DESTDIR)$(mandir)/man8"
--	$(INSTALL_DATA) docs/interop/qemu-ga-ref.html "$(DESTDIR)$(qemu_docdir)"
--	$(INSTALL_DATA) docs/interop/qemu-ga-ref.txt "$(DESTDIR)$(qemu_docdir)"
--	$(INSTALL_DATA) docs/interop/qemu-ga-ref.7 "$(DESTDIR)$(mandir)/man7"
- endif
--endif
- ifdef CONFIG_VIRTFS
- 	$(INSTALL_DIR) "$(DESTDIR)$(mandir)/man1"
- 	$(INSTALL_DATA) $(MANUAL_BUILDDIR)/tools/virtfs-proxy-helper.1 "$(DESTDIR)$(mandir)/man1"
-@@ -927,7 +889,7 @@
- install-includedir:
- 	$(INSTALL_DIR) "$(DESTDIR)$(includedir)"
- 
--install: all $(if $(BUILD_DOCS),install-doc) \
-+install: all \
- 	install-datadir install-localstatedir install-includedir \
- 	$(if $(INSTALL_BLOBS),$(edk2-decompressed)) \
- 	recurse-install
-@@ -974,31 +936,12 @@
- 			"$(DESTDIR)$(qemu_datadir)/firmware/$$x"; \
- 	done
- endif
--	for s in $(ICON_SIZES); do \
--		mkdir -p "$(DESTDIR)$(qemu_icondir)/hicolor/$${s}/apps"; \
--		$(INSTALL_DATA) $(SRC_PATH)/ui/icons/qemu_$${s}.png \
--			"$(DESTDIR)$(qemu_icondir)/hicolor/$${s}/apps/qemu.png"; \
--	done; \
--	mkdir -p "$(DESTDIR)$(qemu_icondir)/hicolor/32x32/apps"; \
--	$(INSTALL_DATA) $(SRC_PATH)/ui/icons/qemu_32x32.bmp \
--		"$(DESTDIR)$(qemu_icondir)/hicolor/32x32/apps/qemu.bmp"; \
--	mkdir -p "$(DESTDIR)$(qemu_icondir)/hicolor/scalable/apps"; \
--	$(INSTALL_DATA) $(SRC_PATH)/ui/icons/qemu.svg \
--		"$(DESTDIR)$(qemu_icondir)/hicolor/scalable/apps/qemu.svg"
--	mkdir -p "$(DESTDIR)$(qemu_desktopdir)"
--	$(INSTALL_DATA) $(SRC_PATH)/ui/qemu.desktop \
--		"$(DESTDIR)$(qemu_desktopdir)/qemu.desktop"
- ifdef CONFIG_GTK
- 	$(MAKE) -C po $@
- endif
- ifeq ($(CONFIG_PLUGIN),y)
- 	$(INSTALL_DATA) $(SRC_PATH)/include/qemu/qemu-plugin.h "$(DESTDIR)$(includedir)/qemu-plugin.h"
- endif
--	$(INSTALL_DIR) "$(DESTDIR)$(qemu_datadir)/keymaps"
--	set -e; for x in $(KEYMAPS); do \
--		$(INSTALL_DATA) $(SRC_PATH)/pc-bios/keymaps/$$x "$(DESTDIR)$(qemu_datadir)/keymaps"; \
--	done
--	$(INSTALL_DATA) $(BUILD_DIR)/trace-events-all "$(DESTDIR)$(qemu_datadir)/trace-events-all"
- 
- .PHONY: ctags
- ctags:
diff --git a/emulators/qemu-guest-agent/files/patch-configure b/emulators/qemu-guest-agent/files/patch-configure
deleted file mode 100644
index adf14fe21462..000000000000
--- a/emulators/qemu-guest-agent/files/patch-configure
+++ /dev/null
@@ -1,201 +0,0 @@
---- configure.orig	2020-09-15 19:31:13 UTC
-+++ configure
-@@ -360,7 +360,7 @@
- sdl=""
- sdl_image=""
- virtfs=""
--mpath=""
-+mpath="no"
- vnc="yes"
- sparse="no"
- vde=""
-@@ -408,7 +408,7 @@
- modules="no"
- module_upgrades="no"
- prefix="/usr/local"
--mandir="\${prefix}/share/man"
-+mandir="\${prefix}/man"
- datadir="\${prefix}/share"
- firmwarepath="\${prefix}/share/qemu-firmware"
- qemu_docdir="\${prefix}/share/doc/qemu"
-@@ -493,6 +493,9 @@
- tcmalloc="no"
- jemalloc="no"
- replication="yes"
-+pcap="no"
-+pcap_create="no"
-+bpf="no"
- vxhs=""
- bochs="yes"
- cloop="yes"
-@@ -509,6 +512,7 @@
- default_devices="yes"
- plugins="no"
- fuzzing="no"
-+libudev="no"
- 
- supported_cpu="no"
- supported_os="no"
-@@ -904,7 +908,7 @@
-   kvm="yes"
-   QEMU_INCLUDES="-isystem \$(SRC_PATH)/linux-headers -isystem $PWD/linux-headers $QEMU_INCLUDES"
-   supported_os="yes"
--  libudev="yes"
-+  libudev="no"
- ;;
- esac
- 
-@@ -1168,6 +1172,10 @@
-   ;;
-   --enable-vnc-png) vnc_png="yes"
-   ;;
-+  --enable-pcap) pcap="yes"
-+  ;;
-+  --disable-pcap) pcap="no"
-+  ;;
-   --disable-slirp) slirp="no"
-   ;;
-   --enable-slirp=git) slirp="git"
-@@ -3137,6 +3145,14 @@
- fi
- 
- ##########################################
-+# getifaddrs (for tests/test-io-channel-socket )
-+
-+have_ifaddrs_h=yes
-+if ! check_include "ifaddrs.h" ; then
-+  have_ifaddrs_h=no
-+fi
-+
-+##########################################
- # VTE probe
- 
- if test "$vte" != "no"; then
-@@ -3806,7 +3822,7 @@
-         glib_libs=$($pkg_config --libs $i)
-         QEMU_CFLAGS="$glib_cflags $QEMU_CFLAGS"
-         LIBS="$glib_libs $LIBS"
--        libs_qga="$glib_libs $libs_qga"
-+        libs_qga="$glib_libs -lintl $libs_qga"
-     else
-         error_exit "glib-$glib_req_ver $i is required to compile QEMU"
-     fi
-@@ -3926,7 +3942,7 @@
- ##########################################
- # pixman support probe
- 
--if test "$want_tools" = "no" && test "$softmmu" = "no"; then
-+if test "$softmmu" = "no"; then
-   pixman_cflags=
-   pixman_libs=
- elif $pkg_config --atleast-version=0.21.8 pixman-1 > /dev/null 2>&1; then
-@@ -4957,14 +4973,6 @@
-   fi
-   if has makeinfo && has pod2man && test "$sphinx_ok" = "yes"; then
-     docs=yes
--  else
--    if test "$docs" = "yes" ; then
--      if has $sphinx_build && test "$sphinx_ok" != "yes"; then
--        echo "Warning: $sphinx_build exists but it is either too old or uses too old a Python version" >&2
--      fi
--      feature_not_found "docs" "Install texinfo, Perl/perl-podlators and a Python 3 version of python-sphinx"
--    fi
--    docs=no
-   fi
- fi
- 
-@@ -5098,7 +5106,7 @@
- 
- # check for libusb
- if test "$libusb" != "no" ; then
--    if $pkg_config --atleast-version=1.0.13 libusb-1.0; then
-+    if $pkg_config libusb-1.0; then
-         libusb="yes"
-         libusb_cflags=$($pkg_config --cflags libusb-1.0)
-         libusb_libs=$($pkg_config --libs libusb-1.0)
-@@ -5501,7 +5509,51 @@
-   fi
- fi
- 
-+##########################################
-+# pcap probe
- 
-+if test "$pcap" = "yes" -a "$pcap" != "no"; then
-+  cat > $TMPC << EOF
-+#include <pcap.h>
-+int main(void) { return (pcap_lib_version() == (char *)0 ? 1 : 0); }
-+EOF
-+  if test "$mingw32" = "no" ; then
-+    libpcap=-lpcap
-+  else
-+    libpcap=-lwpcap
-+  fi
-+  if compile_prog "" "$libpcap" ; then
-+    :
-+  else
-+    echo
-+    echo "Error: Could not find pcap"
-+    echo "Make sure to have the pcap libs and headers installed."
-+    echo
-+    exit 1
-+  fi
-+  cat > $TMPC << EOF
-+#include <pcap.h>
-+int main(void)
-+{
-+  char errbuf[PCAP_ERRBUF_SIZE];
-+  return (pcap_create("foo", errbuf) == (pcap_t *)0 ? 1 : 0);
-+}
-+EOF
-+  if compile_prog "" "$libpcap" ; then
-+    pcap_create="yes"
-+  fi
-+  cat > $TMPC << EOF
-+#define PCAP_DONT_INCLUDE_PCAP_BPF_H
-+#include <pcap.h>
-+#include <net/bpf.h>
-+int main(void) { return (BPF_MAJOR_VERSION); }
-+EOF
-+  if compile_prog ; then
-+    bpf="yes"
-+  fi
-+  libs_softmmu="$libpcap $libs_softmmu"
-+fi # test "$pcap"
-+
- ##########################################
- # check if we have open_by_handle_at
- 
-@@ -6627,6 +6679,7 @@
- echo "Block whitelist (rw) $block_drv_rw_whitelist"
- echo "Block whitelist (ro) $block_drv_ro_whitelist"
- echo "VirtFS support    $virtfs"
-+echo "pcap support      $pcap"
- echo "Multipath support $mpath"
- echo "VNC support       $vnc"
- if test "$vnc" = "yes" ; then
-@@ -6864,6 +6917,15 @@
- if test "$want_tools" = "yes" ; then
-   echo "CONFIG_TOOLS=y" >> $config_host_mak
- fi
-+if test "$pcap" = "yes" ; then
-+  echo "CONFIG_PCAP=y" >> $config_host_mak
-+  if test "$pcap_create" = "yes" ; then
-+    echo "CONFIG_PCAP_CREATE=y" >> $config_host_mak
-+  fi
-+  if test "$bpf" = "yes" ; then
-+    echo "CONFIG_BPF=y" >> $config_host_mak
-+  fi
-+fi
- if test "$slirp" != "no"; then
-   echo "CONFIG_SLIRP=y" >> $config_host_mak
-   echo "CONFIG_SMBD_COMMAND=\"$smbd\"" >> $config_host_mak
-@@ -7120,6 +7182,9 @@
- # if this macro is set.
- if test "$have_fsxattr" = "yes" ; then
-     echo "HAVE_FSXATTR=y" >> $config_host_mak
-+fi
-+if test "$have_ifaddrs_h" = "yes" ; then
-+    echo "HAVE_IFADDRS_H=y" >> $config_host_mak
- fi
- if test "$have_copy_file_range" = "yes" ; then
-     echo "HAVE_COPY_FILE_RANGE=y" >> $config_host_mak
diff --git a/emulators/qemu-guest-agent/files/patch-qga_commands-posix.c b/emulators/qemu-guest-agent/files/patch-qga_commands-posix.c
deleted file mode 100644
index 11dce8e5b8fc..000000000000
--- a/emulators/qemu-guest-agent/files/patch-qga_commands-posix.c
+++ /dev/null
@@ -1,758 +0,0 @@
---- qga/commands-posix.c.orig	2020-09-15 16:31:14 UTC
-+++ qga/commands-posix.c
-@@ -28,6 +28,21 @@
- #include "qemu/cutils.h"
- #include "commands-common.h"
- 
-+#ifdef BSD_GUEST_AGENT
-+#include <ifaddrs.h>
-+#include <arpa/inet.h>
-+#include <sys/socket.h>
-+#include <sys/sysctl.h>
-+#include <net/if.h>
-+#include <sys/socket.h>
-+#include <ifaddrs.h>
-+#include <sys/statvfs.h>
-+#include <net/if_dl.h>
-+#include <net/if_types.h>
-+#include <net/ethernet.h>
-+#include <net/if_var.h>
-+#endif
-+
- #ifdef HAVE_UTMPX
- #include <utmpx.h>
- #endif
-@@ -85,14 +100,25 @@ void qmp_guest_shutdown(bool has_mode, const char *mod
- {
-     const char *shutdown_flag;
-     Error *local_err = NULL;
-+#ifdef BSD_GUEST_AGENT
-+    char *shutdown_mode;
-+#endif // BSD_GUEST_AGENT
-     pid_t pid;
-     int status;
- 
-     slog("guest-shutdown called, mode: %s", mode);
-     if (!has_mode || strcmp(mode, "powerdown") == 0) {
-+#ifdef BSD_GUEST_AGENT
-+        shutdown_flag = "-p";
-+#else
-         shutdown_flag = "-P";
-+#endif // BSD_GUEST_AGENT
-     } else if (strcmp(mode, "halt") == 0) {
-+#ifdef BSD_GUEST_AGENT
-+        shutdown_flag = "-h";
-+#else
-         shutdown_flag = "-H";
-+#endif // BSD_GUEST_AGENT
-     } else if (strcmp(mode, "reboot") == 0) {
-         shutdown_flag = "-r";
-     } else {
-@@ -108,9 +134,15 @@ void qmp_guest_shutdown(bool has_mode, const char *mod
-         reopen_fd_to_null(0);
-         reopen_fd_to_null(1);
-         reopen_fd_to_null(2);
-+#ifdef BSD_GUEST_AGENT
-+        shutdown_mode = g_strdup_printf("hypervisor initiated %s", mode);
- 
-+        execle("/sbin/shutdown", "-h", shutdown_flag, "+0",
-+               shutdown_mode, (char*)NULL, environ);
-+#else
-         execle("/sbin/shutdown", "shutdown", "-h", shutdown_flag, "+0",
-                "hypervisor initiated shutdown", (char*)NULL, environ);
-+#endif // BSD_GUEST_AGENT
-         _exit(EXIT_FAILURE);
-     } else if (pid < 0) {
-         error_setg_errno(errp, errno, "failed to create child process");
-@@ -153,9 +185,11 @@ int64_t qmp_guest_get_time(Error **errp)
- void qmp_guest_set_time(bool has_time, int64_t time_ns, Error **errp)
- {
-     int ret;
-+#ifndef BSD_GUEST_AGENT
-     int status;
-     pid_t pid;
-     Error *local_err = NULL;
-+#endif
-     struct timeval tv;
-     static const char hwclock_path[] = "/sbin/hwclock";
-     static int hwclock_available = -1;
-@@ -193,7 +227,7 @@ void qmp_guest_set_time(bool has_time, int64_t time_ns
-             return;
-         }
-     }
--
-+#ifndef BSD_GUEST_AGENT
-     /* Now, if user has passed a time to set and the system time is set, we
-      * just need to synchronize the hardware clock. However, if no time was
-      * passed, user is requesting the opposite: set the system time from the
-@@ -230,6 +264,7 @@ void qmp_guest_set_time(bool has_time, int64_t time_ns
-         error_setg(errp, "hwclock failed to set hardware clock to system time");
-         return;
-     }
-+#endif // BSD_GUEST_AGENT
- }
- 
- typedef enum {
-@@ -2625,25 +2660,263 @@ void qmp_guest_suspend_hybrid(Error **errp)
- {
-     error_setg(errp, QERR_UNSUPPORTED);
- }
--
-+#ifndef BSD_GUEST_AGENT
- GuestNetworkInterfaceList *qmp_guest_network_get_interfaces(Error **errp)
- {
-     error_setg(errp, QERR_UNSUPPORTED);
-     return NULL;
- }
-+#else
-+static GuestNetworkInterfaceList *
-+guest_find_interface(GuestNetworkInterfaceList *head,
-+                     const char *name)
-+{
-+    for (; head; head = head->next) {
-+        if (strcmp(head->value->name, name) == 0) {
-+            break;
-+        }
-+    }
- 
-+    return head;
-+}
-+
-+static int guest_get_network_stats(const char *name,
-+                       GuestNetworkInterfaceStat *stats)
-+{
-+	return -1;
-+}
-+
-+GuestNetworkInterfaceList *qmp_guest_network_get_interfaces(Error **errp)
-+{
-+    GuestNetworkInterfaceList *head = NULL, *cur_item = NULL;
-+    struct ifaddrs *ifap, *ifa;
-+
-+    if (getifaddrs(&ifap) < 0) {
-+        error_setg_errno(errp, errno, "getifaddrs failed");
-+        goto error;
-+    }
-+
-+    for (ifa = ifap; ifa; ifa = ifa->ifa_next) {
-+        GuestNetworkInterfaceList *info;
-+        GuestIpAddressList **address_list = NULL, *address_item = NULL;
-+        GuestNetworkInterfaceStat  *interface_stat = NULL;
-+        char addr4[INET_ADDRSTRLEN];
-+        char addr6[INET6_ADDRSTRLEN];
-+        int sock;
-+        struct ifreq ifr;
-+        // struct ifnet ifp;
-+        // struct if_data ifd;
-+        // unsigned char *mac_addr;
-+        char mac_addr[18]="00:00:00:00:00:00"; // = char[18];
-+        void *p;
-+
-+        g_debug("Processing %s interface", ifa->ifa_name);
-+
-+        info = guest_find_interface(head, ifa->ifa_name);
-+
-+        if (!info) {
-+            info = g_malloc0(sizeof(*info));
-+            info->value = g_malloc0(sizeof(*info->value));
-+            info->value->name = g_strdup(ifa->ifa_name);
-+
-+            if (!cur_item) {
-+                head = cur_item = info;
-+            } else {
-+                cur_item->next = info;
-+                cur_item = info;
-+            }
-+        }
-+
-+        if (!info->value->has_hardware_address &&
-+            ifa->ifa_flags & SIOCGHWADDR) {
-+            /* we haven't obtained HW address yet */
-+            sock = socket(PF_INET, SOCK_STREAM, 0);
-+            if (sock == -1) {
-+                error_setg_errno(errp, errno, "failed to create socket");
-+                goto error;
-+            }
-+            close(sock);
-+
-+            memset(&ifr, 0, sizeof(ifr));
-+            pstrcpy(ifr.ifr_name, IF_NAMESIZE, info->value->name);
-+            // memset(&ifp, 0, sizeof(ifp));
-+            // memset(&ifd, 0, sizeof(ifd));
-+
-+            if (ifa->ifa_addr->sa_family == AF_LINK) {
-+            	struct sockaddr_dl *sdl =
-+            			(struct sockaddr_dl *)ifa->ifa_addr;
-+
-+                info->value->has_hardware_address = false;
-+
-+                if (sdl->sdl_type == IFT_ETHER &&
-+                		sdl->sdl_alen == ETHER_ADDR_LEN) {
-+                        snprintf(mac_addr, 18, "%s", ether_ntoa((struct ether_addr *)LLADDR(sdl)));
-+                        info->value->has_hardware_address = true;
-+                }
-+                else
-+                {
-+                    info->value->has_hardware_address = true;
-+                }
-+                info->value->hardware_address = g_strdup_printf("%s", mac_addr);
-+             }
-+
-+        }
-+
-+        if (ifa->ifa_addr &&
-+            ifa->ifa_addr->sa_family == AF_INET) {
-+            /* interface with IPv4 address */
-+            p = &((struct sockaddr_in *)ifa->ifa_addr)->sin_addr;
-+            if (!inet_ntop(AF_INET, p, addr4, sizeof(addr4))) {
-+                error_setg_errno(errp, errno, "inet_ntop failed");
-+                goto error;
-+            }
-+
-+            address_item = g_malloc0(sizeof(*address_item));
-+            address_item->value = g_malloc0(sizeof(*address_item->value));
-+            address_item->value->ip_address = g_strdup(addr4);
-+            address_item->value->ip_address_type = GUEST_IP_ADDRESS_TYPE_IPV4;
-+
-+            if (ifa->ifa_netmask) {
-+                /* Count the number of set bits in netmask.
-+                 * This is safe as '1' and '0' cannot be shuffled in netmask. */
-+                p = &((struct sockaddr_in *)ifa->ifa_netmask)->sin_addr;
-+                address_item->value->prefix = ctpop32(((uint32_t *) p)[0]);
-+            }
-+        } else if (ifa->ifa_addr &&
-+                   ifa->ifa_addr->sa_family == AF_INET6) {
-+            /* interface with IPv6 address */
-+            p = &((struct sockaddr_in6 *)ifa->ifa_addr)->sin6_addr;
-+            if (!inet_ntop(AF_INET6, p, addr6, sizeof(addr6))) {
-+                error_setg_errno(errp, errno, "inet_ntop failed");
-+                goto error;
-+            }
-+
-+            address_item = g_malloc0(sizeof(*address_item));
-+            address_item->value = g_malloc0(sizeof(*address_item->value));
-+            address_item->value->ip_address = g_strdup(addr6);
-+            address_item->value->ip_address_type = GUEST_IP_ADDRESS_TYPE_IPV6;
-+
-+            if (ifa->ifa_netmask) {
-+                /* Count the number of set bits in netmask.
-+                 * This is safe as '1' and '0' cannot be shuffled in netmask. */
-+                p = &((struct sockaddr_in6 *)ifa->ifa_netmask)->sin6_addr;
-+                address_item->value->prefix =
-+                    ctpop32(((uint32_t *) p)[0]) +
-+                    ctpop32(((uint32_t *) p)[1]) +
-+                    ctpop32(((uint32_t *) p)[2]) +
-+                    ctpop32(((uint32_t *) p)[3]);
-+            }
-+        }
-+
-+        if (!address_item) {
-+            continue;
-+        }
-+
-+        address_list = &info->value->ip_addresses;
-+
-+        while (*address_list && (*address_list)->next) {
-+            address_list = &(*address_list)->next;
-+        }
-+
-+        if (!*address_list) {
-+            *address_list = address_item;
-+        } else {
-+            (*address_list)->next = address_item;
-+        }
-+
-+        info->value->has_ip_addresses = true;
-+
-+        if (!info->value->has_statistics) {
-+            interface_stat = g_malloc0(sizeof(*interface_stat));
-+            if (guest_get_network_stats(info->value->name,
-+                interface_stat) == -1) {
-+                info->value->has_statistics = false;
-+                g_free(interface_stat);
-+            } else {
-+                info->value->statistics = interface_stat;
-+                info->value->has_statistics = true;
-+            }
-+        }
-+    }
-+
-+    freeifaddrs(ifap);
-+    return head;
-+
-+error:
-+    freeifaddrs(ifap);
-+    qapi_free_GuestNetworkInterfaceList(head);
-+    return NULL;
-+}
-+#endif // BSD_GUEST_AGENT
-+
-+#ifndef BSD_GUEST_AGENT
- GuestLogicalProcessorList *qmp_guest_get_vcpus(Error **errp)
- {
-     error_setg(errp, QERR_UNSUPPORTED);
-     return NULL;
- }
-+#else
-+GuestLogicalProcessorList *qmp_guest_get_vcpus(Error **errp)
-+{
-+    int64_t current;
-+    GuestLogicalProcessorList *head, **link;
-+    long sc_max;
-+    Error *local_err = NULL;
-+    int				Query[2];
-+    int				NumCpu = 0;
-+    size_t			Length = sizeof(NumCpu);
-+    Query[0] = CTL_HW;
-+    Query[1] = HW_NCPU;
- 
-+    current = 0;
-+    head = NULL;
-+    link = &head;
-+    if (sysctl(Query, 2, &NumCpu, &Length, NULL, 0) == -1) {
-+        error_setg(errp, "sysctl get CTL_HW.HW_NCPU failed");
-+    }
-+    sc_max = NumCpu;
-+
-+    while (local_err == NULL && current < sc_max) {
-+        GuestLogicalProcessor *vcpu;
-+        GuestLogicalProcessorList *entry;
-+        int64_t id = current++;
-+        // char *path = g_strdup_printf("/sys/devices/system/cpu/cpu%" PRId64 "/",
-+        //                              id);
-+
-+        // if (g_file_test(path, G_FILE_TEST_EXISTS)) {
-+        vcpu = g_malloc0(sizeof *vcpu);
-+        vcpu->logical_id = id;
-+        vcpu->has_can_offline = false; /* lolspeak ftw */
-+        vcpu->online = true;
-+        vcpu->can_offline = false;
-+        // transfer_vcpu(vcpu, true, path, &local_err);
-+        entry = g_malloc0(sizeof *entry);
-+        entry->value = vcpu;
-+        *link = entry;
-+        link = &entry->next;
-+        // }
-+        // g_free(path);
-+    }
-+
-+    if (local_err == NULL) {
-+        /* there's no guest with zero VCPUs */
-+        g_assert(head != NULL);
-+        return head;
-+    }
-+
-+    qapi_free_GuestLogicalProcessorList(head);
-+    error_propagate(errp, local_err);
-+    return NULL;
-+}
-+#endif // BSD_GUEST_AGENT
-+
- int64_t qmp_guest_set_vcpus(GuestLogicalProcessorList *vcpus, Error **errp)
- {
-     error_setg(errp, QERR_UNSUPPORTED);
-     return -1;
- }
- 
-+#ifndef BSD_GUEST_AGENT
- void qmp_guest_set_user_password(const char *username,
-                                  const char *password,
-                                  bool crypted,
-@@ -2651,7 +2924,114 @@ void qmp_guest_set_user_password(const char *username,
- {
-     error_setg(errp, QERR_UNSUPPORTED);
- }
-+#else
-+void qmp_guest_set_user_password(const char *username,
-+                                 const char *password,
-+                                 bool crypted,
-+                                 Error **errp)
-+{
-+    Error *local_err = NULL;
-+    char *pw_path = NULL;
-+    pid_t pid;
-+    int status;
-+    int datafd[2] = { -1, -1 };
-+    char *rawpasswddata = NULL;
-+    size_t rawpasswdlen;
-+    char *chpasswddata = NULL;
-+    size_t chpasswdlen;
- 
-+    rawpasswddata = (char *)qbase64_decode(password, -1, &rawpasswdlen, errp);
-+    if (!rawpasswddata) {
-+        return;
-+    }
-+
-+    rawpasswddata = g_renew(char, rawpasswddata, rawpasswdlen + 1);
-+    rawpasswddata[rawpasswdlen] = '\0';
-+
-+    if (strchr(rawpasswddata, '\n')) {
-+        error_setg(errp, "forbidden characters in raw password");
-+        goto out;
-+    }
-+
-+    if (strchr(username, '\n') ||
-+        strchr(username, ':')) {
-+        error_setg(errp, "forbidden characters in username");
-+        goto out;
-+    }
-+
-+    chpasswddata = g_strdup_printf("%s", rawpasswddata);
-+    chpasswdlen = strlen(chpasswddata);
-+
-+    pw_path = g_find_program_in_path("pw");
-+
-+    if (!pw_path) {
-+        error_setg(errp, "cannot find 'pw' program in PATH");
-+        goto out;
-+    }
-+
-+    if (pipe(datafd) < 0) {
-+        error_setg(errp, "cannot create pipe FDs");
-+        goto out;
-+    }
-+
-+    pid = fork();
-+    if (pid == 0) {
-+        close(datafd[1]);
-+        /* child */
-+        setsid();
*** 451 LINES SKIPPED ***



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