summaryrefslogtreecommitdiff
path: root/opt/xen-tools/MAKEPKG
blob: a946dbed835a61f8047fbbdab08ea1ed3b079111 (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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#!/bin/mkpkg
# description: Xen tools
# url: https://xenproject.org

name=xen-tools
version=4.22.0
release=2
depends=(python3 yajl libnl lzo2 zlib bzip2 xz ncurses e2fsprogs)
makedeps=(python3 iasl perl swig pixman argp-standalone py-setuptools)
source=(https://downloads.xenproject.org/release/xen/$version/xen-$version.tar.gz
        xsa477.patch
        xsa479.patch
        xsa480.patch
        xsa481.patch
        hotplug-vif-vtrill.patch
        hotplug-Linux-iscsi-block-handle-lun-1.patch)
sha256sums=(
    "b2a14ca369e3cf26f123a455b1603f3962ae9fcee0b8640a9cc33879de198223"
    "025783441d7db846e717a1e48547b0db7a36fcc6af652b688524c684f0c3d2a7"
    "82369898d0287e69272d0d65fb0e6be5fd0106bda19cedb3c9f6e75688f6fb4b"
    "578f8fec3f34656e085419f6376d43987ffd6ed32e067b4024d3c83ce03a5901"
    "148147e4545a4670578c0f24aa136f67bc203c7b18ec980b8cc80cfbb04ace68"
    "c3994774305807f607742b6d49691c913fe3455cf1ab871254bc8fe2a4906b43"
    "a9dfb68d615aa4ee9e1137fa6bcc69a291e9603202db40bb343d50caf30dae3d"
)

build() {
    cd $SRC/xen-$version

    for p in $SRC/xsa477.patch $SRC/xsa479.patch $SRC/xsa480.patch $SRC/xsa481.patch \
              $SRC/hotplug-vif-vtrill.patch $SRC/hotplug-Linux-iscsi-block-handle-lun-1.patch; do
        [ -f "$p" ] && patch -N -p1 < "$p" || true
    done

    export ac_cv_lib_argp_argp_usage=yes

    unset CFLAGS CXXFLAGS CPPFLAGS ASFLAGS LDFLAGS AR OBJCOPY RANLIB CC LD LANG LC_ALL

    mkdir -p $SRC/fake-bin
    ln -sf /usr/bin/clang $SRC/fake-bin/gcc
    export PATH="$SRC/fake-bin:$PATH"

    find . \( -name '*.mk' -o -name 'Make*' \) \
        -exec sed -i -e 's/-Werror//g' {} +

    sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk

    #sed -e '/^SUBDIRS-y += pygrub/d' -i tools/Makefile
    sed -e '/^SUBDIRS-y += firmware/d' -i tools/Makefile
    sed -i '/SUBDIRS-$(CONFIG_QEMU_XEN)/s/^/#/g' tools/Makefile
    sed -i '/firmware/d' tools/Rules.mk

    export CONFIG_LOMOUNT=y
    export CONFIG_TESTS=n
    export XEN_TARGET_ARCH=x86_64

    autoreconf --install

    CONFIG_SHELL=/bin/bash ./configure \
        --prefix=/usr \
        --libdir=/usr/lib \
        --libexecdir=/usr/libexec \
        --localstatedir=/var \
        --with-rundir=/run \
        --with-sysconfig-leaf-dir=conf.d \
        --with-system-qemu=/usr/bin/qemu-system-x86_64 \
        --with-system-seabios=/usr/share/seabios/bios.bin \
        --with-xenstored=xenstored \
        --disable-xen \
        --disable-stubdom \
        --disable-golang \
        --disable-pvshim \
        --disable-werror \
        --disable-docs \
        --disable-ocamltools \
        --disable-ovmf \
        --disable-rombios \
        --disable-systemd \
        --enable-9pfs \
        --enable-tools

    NO_WERROR=1 make \
        CC=clang CXX=clang++ \
        HOSTCC=clang HOSTCXX=clang++ \
        tools

    export INITD_DIR=/tmp/init.d
    export CONFIG_LEAF_DIR=../tmp/default
    NO_WERROR=1 make DESTDIR=$PKG \
        DOCDIR=/usr/share/doc/xen \
        XEN_PYTHON_NATIVE_INSTALL=y \
        install-tools

    # remove openrc init scripts — we use runit
    rm -rf $PKG/etc/init.d

    # remove dev headers and static libs
    rm -rf $PKG/usr/include
    rm -f $PKG/usr/lib/*.a
    rm -rf $PKG/usr/lib/pkgconfig

    # remove debug dirs
    rm -rf $PKG/usr/lib/debug

    # remove pygrub
    # rm -f $PKG/usr/libexec/xen/bin/pygrub
    # rm -rf $PKG/usr/lib/python3*/site-packages/grub
    # rm -rf $PKG/usr/lib/python3*/site-packages/pygrub*

    # remove flask/xsm tools — not using XSM
    rm -f $PKG/usr/sbin/flask-*

    # remove debug/profiling tools
    rm -f $PKG/usr/sbin/gdbsx
    rm -f $PKG/usr/sbin/xen-kdd
    rm -f $PKG/usr/sbin/xenbaked
    rm -f $PKG/usr/sbin/xenlockprof
    rm -f $PKG/usr/sbin/xenmon
    rm -f $PKG/usr/sbin/xenperf
    rm -f $PKG/usr/sbin/xentrace
    rm -f $PKG/usr/sbin/xentrace_setmask
    rm -f $PKG/usr/sbin/xentrace_setsize

    # remove livepatch — desktop not server
    rm -f $PKG/usr/sbin/xen-livepatch

    # remove HVM loader — PVH only
    rm -f $PKG/usr/libexec/xen/boot/hvmloader
    rmdir $PKG/usr/libexec/xen/boot 2>/dev/null || true

    # remove init-xenstore-domain — not using xenstore stubdomain
    rm -f $PKG/usr/libexec/xen/bin/init-xenstore-domain

    # remove bash completion
    # rm -rf $PKG/etc/bash_completion.d

    # runtime dirs
    install -d $PKG/run/xen
    install -d $PKG/run/xenstored
    install -d $PKG/var/lib/xenstored
    install -d $PKG/var/lib/xen/xenpaging
}
signify() {
    untrusted comment: public key
    RWTZ9IduCSQ/mL8337TEUinPwT92xFEUpD92hkS7IxcOnzTt9QdpohT3
}
# vim: filetype=sh