git: 92dec795cd3f - main - emulators/qemu-guest-agent: Delete port
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 20 Jan 2023 19:23:22 UTC
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 ***