summaryrefslogtreecommitdiff
path: root/kernels/xen/PKGBUILD
blob: 33a2dccb11cd923ea1a54c48ccd4796a06099741 (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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# Maintainer: Limao Luo <luolimao+AUR@gmail.com>
# Contributor: Luceo
# Contributor: Revellion

pkgname=xen
pkgver=4.2.0
pkgrel=12
pkgdesc="Xen Hypervisor & Tools"
arch=(i686 x86_64)
url=http://xen.org
license=(GPL)
depends=(bin86 bluez bridge-utils glib2 gnutls libaio libjpeg-turbo libpng lzo2 sdl wget vde2 yajl)
[[ "$CARCH" == "x86_64" ]] && depends+=(lib32-glibc)
makedepends=(dev86 git iasl markdown ocaml-findlib)
optdepends=('xen-docs: Official Xen Documentation')
conflicts=(xen-4.2{,-testing-hg} xen-{gdbsx,hg-unstable,rc})
backup=(etc/$pkgname/xend-{config,pci-{permissive,quirks}}.sxp etc/modules-load.d/$pkgname.conf)
options=(!buildflags !emptydirs !strip)
install=$pkgname.install
source=(http://bits.xensource.com/oss-xen/release/$pkgver/$pkgname-$pkgver.tar.gz
    09_xen
    archinit.patch
    texi2html.patch
    proc-xen.mount
    var-lib-xenstored.mount
    xenconsoled.service
    xendomains.service
    xendomU@.service
    xenstored.service
    $pkgname.conf)
sha256sums=('43f4a086e4e0330145a27b7ace8365c42b5afbc95cefadafe067be91bd3e5cfb'
    'e8dd740c0f18ea41bb80afad36ca981669e6ab86eb3848fbb40f0dff3b8aa3e6'
    '35900d3ae2f2cc27834b8a7cb11f134b582f01bde033598c407c8e58ad58fdb9'
    '08e5bf65c833a608470ad118ce369e32f9c267e1787f2900c06708af321225e6'
    '139eed988bfaf8edc8ccdfd0b668382bd63db48ce17be91776182a7e28e9d88c'
    'c19146931c6ab8e53092bd9b2ebbfda5c76fd22ad3b1d42dcda3dd1b61f123ff'
    'ba8f1c10b3f3df1f9fda0782a691fed67661e36f49be74471c86850639fee3ba'
    '0bd45d9de6456c4f9adf32e726f2db3a3cd0423c1d161b442e8a1666d2e68e3f'
    '1862a14607582d14247b74435dfb16411fd68904aa19e2a93c5e6ac301169d3c'
    '0a1960fd51a2f4e8e856c7392e33cc9607ac4a80e9d68b316b6a4281f34728e0'
    '50a9b7fd19e8beb1dea09755f07318f36be0b7ec53d3c9e74f3266a63e682c0c')
sha512sums=('4fb56c79d722fb307bc657f16d02079c6636427e7650c4354193632d38d2d1db8e588f844ff0ca6e757c108ed639a528565ec9fc7c00bb4d5b6fbc9d122d8a70'
    '23402f54e1a40c058566d6c0f18ac2e89ea85eea8bedf669f059e30ad76b3b90d81b7ff34d8e8c07ab4fea7f82ae32c80a66df2fd95fb3b296e982cdcc93d0b6'
    '9ce0c009f055c9be42435be9eeeec980285cbef4fb52cbd8d81f76ae1e7760575b5c9f958e3d44612d2740eafa1e18ee48f30a5571f0c06bd031d4e102abb22f'
    '562f12e723116c705fc9d0fd4a2afd382a93465be7f616d1e20e87daf39c11029fbc57ec46e38d3ff61c482fdc9ac4df9e07600a77515867d9da6f0faf3da7f9'
    '6afdf16e32bb837faf6333334f86855a746f1f46fee9673a4fddc62eecf41f9856bc34397807203c6f5071f0b1ce74532214084042154585c0d39514450db25c'
    '00e340f4d3635e3850ca24baea1da08467523c17815feb74161e18397b607fef904db2165fd9bf4632a6e8a6e37aeddad4e56965e1c99b5213c98b3f9afc6aad'
    '27d7289a8bf6e15bddcb360287001429205b57ee4d791b0337328879ffd76b8e375e3c1dd0de0ab57dd4bd1e2a2bc1748c44cc05b2528632a3e6af60f626de9d'
    'f00034f8b826b828659a0177f0a6454113c625e69a817dfe32e461767f6643e0288bfc2a22d23358504240df627af6e3b8f5ffa0077e241e590b33d3f252e74c'
    '31fefc739f0f0e568df03dcf9aa02e0265ff4fbf77e7ae62d6a318fcc34e87a0ffd3fc4b84ff8c9cc95511e2e74b7b61e6b5471cd0b3cd47ee0da86b1ea90268'
    '87aceb1c646e49940bfbc47da85d7e20c9436449b152c0842b357033f66aba68a590f1d56c4a3f437d093047a611f28fd67d381692d9b21a582e598ecf1a72a2'
    'ccaa2ff82e4203b11e5dec9aeccac2e165721d8067e0094603ecaa7a70b78c9eb9e2287a32687883d26b6ceae6f8d2ad7636ddf949eb658637b3ceaa6999711b')

build() {
    cd "$srcdir"/$pkgname-$pkgver/

    patch -Np1 -i ../archinit.patch
    patch -Np1 -i ../texi2html.patch

    ./autogen.sh
    ./configure PYTHON=/usr/bin/python2
}

package() {
    cd "$srcdir"/$pkgname-$pkgver/

    make PYTHON=python2 DESTDIR="$pkgdir" install-xen install-tools
    # stubdom won't build with multiple makethreads
    make -j1 PYTHON=python2 DESTDIR="$pkgdir" install-stubdom

    cd ../
    for f in ${source[@]}; do
        [[ $f =~ .mount || $f =~ .service ]] && install -Dm644 $f "$pkgdir"/usr/lib/systemd/system/$f
    done
    install -Dm644 $pkgname.conf "$pkgdir"/etc/modules-load.d/$pkgname.conf
    install -Dm755 09_xen "$pkgdir"/etc/grub.d/09_xen

    cd "$pkgdir"
    sed -i ':XENDOM_CONFIG=/etc/:s:sysconfig/xendomains:conf.d/xendomains:' etc/init.d/xendomains
    sed -i 's:touch /var/lock/subsys/xend:mkdir -p /var/lock/subsys\n       &:' etc/init.d/xend

    if [[ -d usr/lib64 ]]; then
        cd usr/
        cp -r lib64/* lib/
        rm -rf lib64
    fi

    mv etc/{init,rc}.d

    mv usr/local/etc/qemu/ etc/
    rm -rf usr/local/share/
    mv etc/rc.d/xendomains etc/xen/scripts/xendomains

    ##### Kill unwanted stuff #####
    # stubdom: newlib
    rm -rf usr/*-xen-elf

    # hypervisor symlinks
    rm -f boot/xen{,-4,-4.2}.gz

    # silly doc dir fun
    rm -rf usr/share/doc/xen
    rm -rf usr/share/doc/qemu

    # Pointless helper
    rm -f usr/sbin/xen-python-path

    # qemu stuff (unused or available from upstream)
    rm -rf usr/share/xen/man
    rm -rf usr/bin/qemu-*-xen
    for file in bios.bin openbios-sparc32 openbios-sparc64 ppc_rom.bin \
        pxe-e1000.bin pxe-ne2k_pci.bin pxe-pcnet.bin pxe-rtl8139.bin \
        vgabios.bin vgabios-cirrus.bin video.x openbios-ppc bamboo.dtb; do
        rm -f usr/share/xen/qemu/$file
    done

    # adhere to Static Library Packaging Guidelines
    rm -rf usr/lib/*.a

    # Fix errors from deprecated xend
    rm etc/udev/rules.d/xend.rules
}