summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: d9fd02d1e713812dcca73169ad8d6c45d4e41af1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
pkgname=windows-gaming-git # '-bzr', '-git', '-hg' or '-svn'
pkgver=r18.85b1ac4
pkgrel=1
pkgdesc="Windows gaming utils"
arch=('x86_64')
url=""
license=('GPL')
groups=()
depends=('qemu-headless' 'sudo' 'libsystemd' 'acl' 'udev' 'coreutils' 'pciutils')
optdepends=('samba: shared folder support')
makedepends=('git' 'rpmextract' 'curl' 'libarchive' 'cargo' 'mono' 'cdrkit') # 'bzr', 'git', 'mercurial' or 'subversion'
provides=("${pkgname%-git}")
conflicts=("${pkgname%-git}")
replaces=()
backup=()
options=()
install="windows-gaming.install"
source=('git+https://github.com/main--/windows-gaming.git' 'https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.126-2/virtio-win_amd64.vfd')
noextract=()
md5sums=('SKIP' '954ca57735102d16e87a7c4caa979f67')

# Please refer to the 'USING VCS SOURCES' section of the PKGBUILD man page for
# a description of each element in the source array.

pkgver() {
	cd "$srcdir/${pkgname%-git}"

# The examples below are not absolute and need to be adapted to each repo. The
# primary goal is to generate version numbers that will increase according to
# pacman's version comparisons with later commits to the repo. The format
# VERSION='VER_NUM.rREV_NUM.HASH', or a relevant subset in case VER_NUM or HASH
# are not available, is recommended.

# Git, tags available
#	printf "%s" "$(git describe --long | sed 's/\([^-]*-\)g/r\1/;s/-/./g')"

# Git, no tags available
	printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}

prepare() {
	cd "$srcdir/${pkgname%-git}"
}

build() {
	cd "$srcdir/${pkgname%-git}"

	cd windows-gaming-driver
	cargo build --release
	cd ..

	cd guest-agent
	xbuild /p:Configuration=Release VfioService/VfioService.sln
	cp VfioService/VfioService/bin/Release/VfioService.exe .
	mkisofs -m VfioService -o windows-gaming-ga.iso -r -J -input-charset iso8859-1 -V "windows-gaming-ga" .
	cd ..

	# grab ovmf
        curl -o ovmf.rpm "https://www.kraxel.org/repos/jenkins/edk2/$(curl -s 'https://www.kraxel.org/repos/jenkins/edk2/' | grep -Eo 'edk2.git-ovmf-x64-[-\.a-z0-9]+\.noarch\.rpm' | head -n1)"
        rpm2cpio ovmf.rpm | bsdtar -xvf - --strip-components 4 './usr/share/edk2.git/ovmf-x64/OVMF_CODE-pure-efi.fd' './usr/share/edk2.git/ovmf-x64/OVMF_VARS-pure-efi.fd'
}

check() {
	cd "$srcdir/${pkgname%-git}"
}

package() {
	cd "$srcdir/${pkgname%-git}"

	install -D windows-gaming-driver/target/release/windows-gaming-driver $pkgdir/usr/bin/windows-gaming-driver
	install -D -m644 ovmf-x64/OVMF_CODE-pure-efi.fd $pkgdir/usr/lib/windows-gaming/ovmf-code.fd
	install -D -m644 ovmf-x64/OVMF_VARS-pure-efi.fd $pkgdir/usr/lib/windows-gaming/ovmf-vars.fd
	install -D -m644 guest-agent/windows-gaming-ga.iso $pkgdir/usr/lib/windows-gaming/windows-gaming-ga.iso
	install -D -m644 ../virtio-win_amd64.vfd $pkgdir/usr/lib/windows-gaming/virtio-win.vfd
	install -D -m644 misc/windows.service $pkgdir/usr/lib/systemd/system/windows.service
	install -D -m644 misc/windows.service $pkgdir/usr/lib/systemd/user/windows.service
	install -D -m644 misc/80-vfio.rules $pkgdir/usr/lib/udev/rules.d/80-vfio.rules
}



# JUCK FARO