From 0bb70e95c8d7166a9b6fa6b263b75253dc8f2286 Mon Sep 17 00:00:00 2001 From: Peter Beck Date: Thu, 3 Aug 2017 10:05:50 +0200 Subject: [PATCH] QEMU Guest Agent for Windose --- .../qemu-guest-agent/qemu-guest-agent.nuspec | 18 +++++++++ .../tools/chocolateyinstall.ps1 | 40 +++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100755 packages/qemu-guest-agent/qemu-guest-agent.nuspec create mode 100755 packages/qemu-guest-agent/tools/chocolateyinstall.ps1 diff --git a/packages/qemu-guest-agent/qemu-guest-agent.nuspec b/packages/qemu-guest-agent/qemu-guest-agent.nuspec new file mode 100755 index 0000000..d9ade0d --- /dev/null +++ b/packages/qemu-guest-agent/qemu-guest-agent.nuspec @@ -0,0 +1,18 @@ + + + + qemu-guest-agent + 7.4.5 + QEMU guest agent + Red Hat + foo.li systeme + software + https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html + https://fedoraproject.org/wiki/Windows_Virtio_Drivers + https://raw.githubusercontent.com/peterbeck/chocolatey/master/icons/kvm.png + true + It is a daemon program running inside the domain which is supposed to help management applications with executing functions which need assistance of the guest OS. For example, freezing and thawing filesystems, entering suspend. However, guest agent (GA) is not bullet proof, and hostile guest OS can send spurious replies. + QEMU Guest Agent + initial package + virtualisation kvm qemu guest-agent + + diff --git a/packages/qemu-guest-agent/tools/chocolateyinstall.ps1 b/packages/qemu-guest-agent/tools/chocolateyinstall.ps1 new file mode 100755 index 0000000..95775d2 --- /dev/null +++ b/packages/qemu-guest-agent/tools/chocolateyinstall.ps1 @@ -0,0 +1,40 @@ +# QEMU Guest Agent +# 2016-2017 foo.li systeme + software + +$packageName = 'qemu-guest-agent' +$version = '7.4.5' +$installerType = 'msi' +$url = 'https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-qemu-ga/qemu-ga-win-' + $version + '-1/qemu-ga-x86.msi' +$url64 = 'https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-qemu-ga/qemu-ga-win-' + $version + '-1/qemu-ga-x64.msi' +$silentArgs = '/qb' +$packageSearch = 'QEMU guest agent*' +$checksum = 'A5BDE210C45BC81600ABAE438D31B6BB6DF93F3C' +$checksumType = 'sha1' +$checksum64 = '09D19C994EFA3FA41C4FE8EF249226CEB7EA0BAE' +$checksumType64 = $checksumType +$validExitCodes = @(0,3010) + +$compmanu = Get-WmiObject Win32_ComputerSystem | select manufacturer +if ($compmanu.manufacturer -like '*Bochs*') { Write-Host 'QEMU/KVM detected' } +elseif ($compmanu.manufacturer -like '*QEMU*'){ Write-Host 'QEMU/KVM detected' } +else { + Write-Host 'could not detect QEMU/KVM virtual machine. Stopping deployment' + throw 'no KVM/QEMU VM detected' +} + +try { + $app = Get-ItemProperty -Path @('HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*', + 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*') ` + -ErrorAction:SilentlyContinue | Where-Object { $_.DisplayName -like $packageSearch } + + if ($app -and ([version]$app.DisplayVersion -ge [version]$version)) { + Write-Host 'QEMU Guest Agent' $version 'or higher is already installed. Doing nothing.' + } else { + Install-ChocolateyPackage $packageName $installerType $silentArgs $url $url64 ` + -checksum $checksum -checksumType $checksumType ` + -checksum64 $checksum64 -checksumType64 $checksumType64 ` + -validExitCodes $validExitCodes + } +} catch { + throw $_.Exception +}