diff --git a/.gitignore b/.gitignore index 2f0276c..05fb7c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/virt-what-1.21.tar.gz +SOURCES/virt-what-1.25.tar.gz diff --git a/.virt-what.metadata b/.virt-what.metadata index 0f6c194..a8fd8a8 100644 --- a/.virt-what.metadata +++ b/.virt-what.metadata @@ -1 +1 @@ -572bdc052b8d6864c0f79b391cfe4b48a230008d SOURCES/virt-what-1.21.tar.gz +dcbec6a76eddadd63b5139e296e28f600201c37f SOURCES/virt-what-1.25.tar.gz diff --git a/SOURCES/0001-Add-support-for-VMware-ESXi-on-ARM.patch b/SOURCES/0001-Add-support-for-VMware-ESXi-on-ARM.patch deleted file mode 100644 index ad80782..0000000 --- a/SOURCES/0001-Add-support-for-VMware-ESXi-on-ARM.patch +++ /dev/null @@ -1,267 +0,0 @@ -From 09094be5f2afa21bb5b8221580303f125fd90d0c Mon Sep 17 00:00:00 2001 -From: Razvan Corneliu -Date: Mon, 10 May 2021 21:02:27 +0100 -Subject: [PATCH] Add support for VMware ESXi on ARM - -Virt-what doesn't recognize VMware VMs for AARCH64/ARM (with licensing -implications in ESXi Fling for ARM and Fusion v.Next for ARM). I've -created and attached a patch that adds both support for recognizing -ESXi and the automated tests for it. ---- - configure.ac | 2 + - tests/esx-arm/Makefile.am | 30 ++++++++++ - tests/esx-arm/proc/cpuinfo | 18 ++++++ - .../proc/device-tree/hypervisor/compatible | 1 + - .../esx-arm/proc/device-tree/hypervisor/name | 1 + - tests/esx-arm/proc/self/status | 55 +++++++++++++++++++ - tests/esx-arm/sbin/dmidecode | 2 + - tests/esx-arm/sbin/uname | 2 + - tests/esx-arm/sbin/virt-what-cpuid-helper | 2 + - tests/esx-arm/test.sh | 32 +++++++++++ - virt-what.in | 4 ++ - 11 files changed, 149 insertions(+) - create mode 100644 tests/esx-arm/Makefile.am - create mode 100644 tests/esx-arm/proc/cpuinfo - create mode 100644 tests/esx-arm/proc/device-tree/hypervisor/compatible - create mode 100644 tests/esx-arm/proc/device-tree/hypervisor/name - create mode 100644 tests/esx-arm/proc/self/status - create mode 100755 tests/esx-arm/sbin/dmidecode - create mode 100755 tests/esx-arm/sbin/uname - create mode 100755 tests/esx-arm/sbin/virt-what-cpuid-helper - create mode 100755 tests/esx-arm/test.sh - -diff --git a/configure.ac b/configure.ac -index bce03a1..9d0a423 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -41,6 +41,7 @@ tests="\ - baremetal \ - bhyve \ - docker \ -+ esx-arm \ - esx4.1 \ - hyperv \ - kvm \ -@@ -85,6 +86,7 @@ AC_CONFIG_FILES([Makefile - tests/baremetal/Makefile - tests/bhyve/Makefile - tests/docker/Makefile -+ tests/esx-arm/Makefile - tests/esx4.1/Makefile - tests/hyperv/Makefile - tests/kvm/Makefile -diff --git a/tests/esx-arm/Makefile.am b/tests/esx-arm/Makefile.am -new file mode 100644 -index 0000000..b87ec83 ---- /dev/null -+++ b/tests/esx-arm/Makefile.am -@@ -0,0 +1,30 @@ -+# Makefile for virt-what -+# Copyright (C) 2008-2011 Red Hat Inc. -+# -+# This program is free software; you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 2 of the License, or -+# (at your option) any later version. -+# -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+# -+# You should have received a copy of the GNU General Public License -+# along with this program; if not, write to the Free Software -+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -+ -+CLEANFILES = *~ -+ -+TESTS = test.sh -+ -+EXTRA_DIST = \ -+ test.sh \ -+ proc/cpuinfo \ -+ proc/device-tree/hypervisor/compatible \ -+ proc/device-tree/hypervisor/name \ -+ proc/self/status \ -+ sbin/dmidecode \ -+ sbin/uname \ -+ sbin/virt-what-cpuid-helper -diff --git a/tests/esx-arm/proc/cpuinfo b/tests/esx-arm/proc/cpuinfo -new file mode 100644 -index 0000000..246b574 ---- /dev/null -+++ b/tests/esx-arm/proc/cpuinfo -@@ -0,0 +1,18 @@ -+processor : 0 -+BogoMIPS : 108.00 -+Features : fp asimd evtstrm crc32 cpuid -+CPU implementer : 0x41 -+CPU architecture: 8 -+CPU variant : 0x0 -+CPU part : 0xd08 -+CPU revision : 3 -+ -+processor : 1 -+BogoMIPS : 108.00 -+Features : fp asimd evtstrm crc32 cpuid -+CPU implementer : 0x41 -+CPU architecture: 8 -+CPU variant : 0x0 -+CPU part : 0xd08 -+CPU revision : 3 -+ -diff --git a/tests/esx-arm/proc/device-tree/hypervisor/compatible b/tests/esx-arm/proc/device-tree/hypervisor/compatible -new file mode 100644 -index 0000000..0554874 ---- /dev/null -+++ b/tests/esx-arm/proc/device-tree/hypervisor/compatible -@@ -0,0 +1 @@ -+vmware -diff --git a/tests/esx-arm/proc/device-tree/hypervisor/name b/tests/esx-arm/proc/device-tree/hypervisor/name -new file mode 100644 -index 0000000..d508e44 ---- /dev/null -+++ b/tests/esx-arm/proc/device-tree/hypervisor/name -@@ -0,0 +1 @@ -+hypervisor -diff --git a/tests/esx-arm/proc/self/status b/tests/esx-arm/proc/self/status -new file mode 100644 -index 0000000..13dd246 ---- /dev/null -+++ b/tests/esx-arm/proc/self/status -@@ -0,0 +1,55 @@ -+Name: cat -+Umask: 0022 -+State: R (running) -+Tgid: 292937 -+Ngid: 0 -+Pid: 292937 -+PPid: 10956 -+TracerPid: 0 -+Uid: 0 0 0 0 -+Gid: 0 0 0 0 -+FDSize: 256 -+Groups: 0 -+NStgid: 292937 -+NSpid: 292937 -+NSpgid: 292937 -+NSsid: 10956 -+VmPeak: 6400 kB -+VmSize: 6400 kB -+VmLck: 0 kB -+VmPin: 0 kB -+VmHWM: 960 kB -+VmRSS: 960 kB -+RssAnon: 448 kB -+RssFile: 512 kB -+RssShmem: 0 kB -+VmData: 640 kB -+VmStk: 192 kB -+VmExe: 64 kB -+VmLib: 1600 kB -+VmPTE: 384 kB -+VmSwap: 0 kB -+HugetlbPages: 0 kB -+CoreDumping: 0 -+THP_enabled: 1 -+Threads: 1 -+SigQ: 2/3947 -+SigPnd: 0000000000000000 -+ShdPnd: 0000000000000000 -+SigBlk: 0000000000000000 -+SigIgn: 0000000000000000 -+SigCgt: 0000000000000000 -+CapInh: 0000000000000000 -+CapPrm: 0000003fffffffff -+CapEff: 0000003fffffffff -+CapBnd: 0000003fffffffff -+CapAmb: 0000000000000000 -+NoNewPrivs: 0 -+Seccomp: 0 -+Speculation_Store_Bypass: vulnerable -+Cpus_allowed: 3 -+Cpus_allowed_list: 0-1 -+Mems_allowed: 01 -+Mems_allowed_list: 0 -+voluntary_ctxt_switches: 1 -+nonvoluntary_ctxt_switches: 0 -diff --git a/tests/esx-arm/sbin/dmidecode b/tests/esx-arm/sbin/dmidecode -new file mode 100755 -index 0000000..e53c12f ---- /dev/null -+++ b/tests/esx-arm/sbin/dmidecode -@@ -0,0 +1,2 @@ -+#!/bin/sh - -+exit 1 -diff --git a/tests/esx-arm/sbin/uname b/tests/esx-arm/sbin/uname -new file mode 100755 -index 0000000..bd33a2d ---- /dev/null -+++ b/tests/esx-arm/sbin/uname -@@ -0,0 +1,2 @@ -+#!/bin/sh - -+echo aarch64 -diff --git a/tests/esx-arm/sbin/virt-what-cpuid-helper b/tests/esx-arm/sbin/virt-what-cpuid-helper -new file mode 100755 -index 0000000..77a6692 ---- /dev/null -+++ b/tests/esx-arm/sbin/virt-what-cpuid-helper -@@ -0,0 +1,2 @@ -+#!/bin/sh - -+# nothing -diff --git a/tests/esx-arm/test.sh b/tests/esx-arm/test.sh -new file mode 100755 -index 0000000..344afef ---- /dev/null -+++ b/tests/esx-arm/test.sh -@@ -0,0 +1,32 @@ -+# Test for ESXi on ARM -+# Copyright (C) 2008-2011 Red Hat Inc. -+# -+# This program is free software; you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 2 of the License, or -+# (at your option) any later version. -+# -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+# -+# You should have received a copy of the GNU General Public License -+# along with this program; if not, write to the Free Software -+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -+ -+output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)" -+expected="vmware" -+ -+if [ "$output" != "$expected" ]; then -+ echo "$0: test failed because output did not match expected" -+ echo "Expected output was:" -+ echo "----------------------------------------" -+ echo "$expected" -+ echo "----------------------------------------" -+ echo "But the actual output of the program was:" -+ echo "----------------------------------------" -+ echo "$output" -+ echo "----------------------------------------" -+ exit 1 -+fi -diff --git a/virt-what.in b/virt-what.in -index d52171c..b7d266b 100644 ---- a/virt-what.in -+++ b/virt-what.in -@@ -264,6 +264,10 @@ elif [ "$arch" = "arm" ] || [ "$arch" = "aarch64" ]; then - echo xen - skip_qemu_kvm=true - skip_lkvm=true -+ elif [ -d "${root}/proc/device-tree/hypervisor" ] && -+ grep -q "vmware" "${root}/proc/device-tree/hypervisor/compatible"; then -+ echo vmware -+ skip_lkvm=true - fi - elif [ "$arch" = "ia64" ]; then - if [ -d "${root}/sys/bus/xen" -a ! -d "${root}/sys/bus/xen-backend" ]; then --- -2.32.0 - diff --git a/SOURCES/copy-patches.sh b/SOURCES/copy-patches.sh new file mode 100755 index 0000000..af8f647 --- /dev/null +++ b/SOURCES/copy-patches.sh @@ -0,0 +1,61 @@ +#!/bin/bash - + +set -e + +# Maintainer script to copy patches from the git repo to the current +# directory. It's normally only used downstream (ie. in RHEL). Use +# it like this: +# ./copy-patches.sh + +project=virt-what +rhel_version=9.1 + +# Check we're in the right directory. +if [ ! -f $project.spec ]; then + echo "$0: run this from the directory containing '$project.spec'" + exit 1 +fi + +case `id -un` in + rjones) git_checkout=$HOME/d/$project-rhel-$rhel_version ;; + lacos) git_checkout=$HOME/src/v2v/$project ;; + *) git_checkout=$HOME/d/$project-rhel-$rhel_version ;; +esac +if [ ! -d $git_checkout ]; then + echo "$0: $git_checkout does not exist" + echo "This script is only for use by the maintainer when preparing a" + echo "$project release on RHEL." + exit 1 +fi + +# Get the base version of the project. +version=`grep '^Version:' $project.spec | awk '{print $2}'` +tag="v$version" + +# Remove any existing patches. +git rm -f [0-9]*.patch ||: +rm -f [0-9]*.patch + +# Get the patches. +(cd $git_checkout; rm -f [0-9]*.patch; git -c core.abbrev=9 format-patch -O/dev/null -N --submodule=diff $tag) +mv $git_checkout/[0-9]*.patch . + +# Remove any not to be applied. +rm -f *NOT-FOR-RPM*.patch + +# Add the patches. +git add [0-9]*.patch + +# Print out the patch lines. +echo +echo "--- Copy the following text into $project.spec file" +echo + +echo "# Patches." +for f in [0-9]*.patch; do + n=`echo $f | awk -F- '{print $1}'` + echo "Patch$n: $f" +done + +echo +echo "--- End of text" diff --git a/SPECS/virt-what.spec b/SPECS/virt-what.spec index 3e3829e..47c507a 100644 --- a/SPECS/virt-what.spec +++ b/SPECS/virt-what.spec @@ -1,14 +1,20 @@ Name: virt-what -Version: 1.21 -Release: 2%{?dist}.2 +Version: 1.25 +Release: 1%{?dist} Summary: Detect if we are running in a virtual machine License: GPLv2+ URL: http://people.redhat.com/~rjones/virt-what/ -Source0: http://people.redhat.com/~rjones/virt-what/files/%%{name}-%%{version}.tar.gz +Source0: http://people.redhat.com/~rjones/virt-what/files/%{name}-%{version}.tar.gz -# Support for VMware on aarch64 (RHBZ#1959174). -Patch1: 0001-Add-support-for-VMware-ESXi-on-ARM.patch +# Maintainer script which helps with handling patches. +Source1: copy-patches.sh + +# Patches are maintained in the following repository: +# http://git.annexia.org/?p=virt-what.git;a=shortlog;h=refs/heads/rhel-9.1 + +# Patches. +#(no patches) BuildRequires: make BuildRequires: git @@ -47,40 +53,42 @@ know about or can't detect. Current types of virtualization detected: - - aws Amazon Web Services - - bhyve FreeBSD hypervisor - - docker Docker container - - hyperv Microsoft Hyper-V - - ibm_power-kvm - IBM POWER KVM - - ibm_power-lpar_shared + - alibaba_cloud Alibaba cloud + - alibaba_cloud-ebm + - aws Amazon Web Services + - bhyve FreeBSD hypervisor + - docker Docker container + - google_cloud Google cloud + - hyperv Microsoft Hyper-V + - ibm_power-kvm IBM POWER KVM + - ibm_power-lpar_shared IBM POWER LPAR (hardware partition) - ibm_power-lpar_dedicated - IBM POWER LPAR (hardware partition) - - ibm_systemz-* - IBM SystemZ Direct / LPAR / z/VM / KVM - - ldoms Oracle VM Server for SPARC Logical Domains - - linux_vserver - Linux VServer container - - lxc Linux LXC container - - kvm Linux Kernel Virtual Machine (KVM) - - lkvm LKVM / kvmtool - - nutanix_ahv Nutanix Acropolis Hypervisor (AHV) - - openvz OpenVZ or Virtuozzo - - ovirt oVirt node - - parallels Parallels Virtual Platform - - powervm_lx86 IBM PowerVM Lx86 Linux/x86 emulator - - qemu QEMU (unaccelerated) - - rhev Red Hat Enterprise Virtualization - - uml User-Mode Linux (UML) - - virtage Hitachi Virtualization Manager (HVM) Virtage LPAR - - virtualbox VirtualBox - - virtualpc Microsoft VirtualPC - - vmm vmm OpenBSD hypervisor - - vmware VMware - - xen Xen - - xen-dom0 Xen dom0 (privileged domain) - - xen-domU Xen domU (paravirtualized guest domain) - - xen-hvm Xen guest fully virtualized (HVM) + - ibm_systemz-* IBM SystemZ Direct / LPAR / z/VM / KVM + - illumos-lx Illumos with Linux syscall emulation + - ldoms Oracle VM Server for SPARC Logical Domains + - linux_vserver Linux VServer container + - lxc Linux LXC container + - kvm Linux Kernel Virtual Machine (KVM) + - lkvm LKVM / kvmtool + - nutanix_ahv Nutanix Acropolis Hypervisor (AHV) + - openvz OpenVZ or Virtuozzo + - ovirt oVirt node + - parallels Parallels Virtual Platform + - podman Podman container + - powervm_lx86 IBM PowerVM Lx86 Linux/x86 emulator + - qemu QEMU (unaccelerated) + - redhat Red Hat hypervisor + - rhev Red Hat Enterprise Virtualization + - uml User-Mode Linux (UML) + - virtage Hitachi Virtualization Manager (HVM) Virtage LPAR + - virtualbox VirtualBox + - virtualpc Microsoft VirtualPC + - vmm vmm OpenBSD hypervisor + - vmware VMware + - xen Xen + - xen-dom0 Xen dom0 (privileged domain) + - xen-domU Xen domU (paravirtualized guest domain) + - xen-hvm Xen guest fully virtualized (HVM) %prep @@ -100,8 +108,8 @@ make %check -if ! make check ; then - cat test-suite.log +if ! make -k check ; then + find -name test-suite.log -exec cat {} \; exit 1 fi @@ -113,6 +121,19 @@ fi %changelog +* Wed Aug 17 2022 Richard W.M. Jones - 1.25-1 +- Rebase to 1.25 + resolves: rhbz#2118997 + +* Tue Aug 09 2022 Richard W.M. Jones - 1.22-2 +- Detect KVM on GCE and AWS Arm instances + resolves: rhbz#2114997 + +* Thu Apr 14 2022 Richard W.M. Jones - 1.22-1 +- New upstream version 1.22. + resolves: rhbz#2074476 +- Fix Source0 line. + * Tue Aug 10 2021 Mohan Boddu - 1.21-2.2 - Rebuilt for IMA sigs, glibc 2.34, aarch64 flags Related: rhbz#1991688