summaryrefslogtreecommitdiff
path: root/libre/qemu-static/PKGBUILD
blob: 8346661115a64e7f21ae2b48147b800e23cabb77 (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
# Maintainer: Márcio Silva <coadde@parabola.nu>
# based of qemu

pkgbase=qemu
pkgname=('qemu-static'
         'qemu-arch-extra-static')
pkgver=2.5.1
pkgrel=1
arch=('i686' 'x86_64' 'armv7h')
license=('GPL2' 'LGPL2.1')
url='http://wiki.qemu.org/'
makedepends=('python2' 'glib2-static' 'pcre-static' 'libgcrypt-static' 'libgpg-error')
#makedepends=('pixman' 'libjpeg' 'libpng' 'sdl' 'alsa-lib' 'nss' 'glib2'
#             'gnutls' 'bluez-libs' 'vde2' 'util-linux' 'curl' 'libsasl'
#             'libgl' 'libpulse' 'seabios' 'libcap-ng' 'libaio' 'libseccomp'
#             'libiscsi' 'libcacard' 'spice' 'spice-protocol' 'python2'
#             'usbredir' 'ceph' 'glusterfs' 'libssh2' 'lzo' 'snappy')

source=(http://wiki.qemu.org/download/${pkgbase}-${pkgver}.tar.bz2)
md5sums=('42e73182dea8b9213fa7050e168a4615')

_extra_arches=(aarch64 alpha arm armeb cris m68k microblaze microblazeel
or32 ppc ppc64 ppc64abi32 ppc64le s390x tilegx
sh4 sh4eb sparc sparc32plus sparc64 unicore32)
if [[ $CARCH = x86_64 || $CARCH = i686 ]]; then
  _extra_arches+=(aarch64 arm armeb mips mips64 mips64el mipsel mipsn32 mipsn32el)
elif [[ $CARCH = armv7h ]]; then
  _extra_arches+=(x86_64 i386 mips mips64 mips64el mipsel mipsn32 mipsn32el)
elif [[ $CARCH = mips64el ]]; then
  _extra_arches+=(x86_64 i386 aarch64 arm armeb)
fi


prepare() {
  for _p in *.patch; do
    [[ -e "$_p" ]] || continue
    msg2 "Patching $_p"
    patch -p1 -d ${pkgbase}-${pkgver} < "$_p"
  done
}

build ()
{
  cd ${pkgbase}-${pkgver}
  # qemu vs. make 4 == bad
  export ARFLAGS="rv"
  # http://permalink.gmane.org/gmane.comp.emulators.qemu/238740
  export CFLAGS+=' -fPIC'
  ./configure --prefix=/usr --sysconfdir=/etc \
              --python=/usr/bin/python2 \
              --libexecdir=/usr/lib/qemu \
              --localstatedir=/var \
              --enable-tpm \
              --disable-system --static
  make V=99
}

package_qemu-static() {
  pkgdesc='A generic and free processor emulator which achieves a good emulation speed by using dynamic translation (static binaries only)'
#  depends=('qemu')
#  depends=('glibc' 'pixman' 'libjpeg' 'libpng' 'sdl' 'alsa-lib' 'nss' 'glib2'
#           'gnutls' 'bluez-libs' 'vde2' 'util-linux' 'libsasl' 'libgl'
#           'seabios' 'libcap' 'libcap-ng' 'libaio' 'libseccomp' 'libcacard'
#           'spice' 'usbredir' 'lzo' 'snappy' 'gcc-libs' 'zlib' 'bzip2' 'nspr'
#           'ncurses' 'libx11' 'libusb' 'libpulse' 'libssh2' 'curl')
  optdepends=('qemu-arch-extra-static: extra architectures support')
  options=(!strip)

  make -C ${pkgbase}-${pkgver} DESTDIR="${pkgdir}" install

  cd "${pkgdir}"

  # remove extra arch
  for _arch in "${_extra_arches[@]}"; do
    rm -f usr/bin/qemu-${_arch}
  done

  # remove conflicting files
  rm -vr {usr/share,var}
  rm -v bin/{ivshmem-{client,server},qemu-{img,io,nbd},virtfs-proxy-helper}
  rm -v lib/qemu/qemu-bridge-helper
}

package_qemu-arch-extra-static() {
  pkgdesc='QEMU with full support for non native architectures (static binaries only)'
  depends=('qemu-static' 'qemu-arch-extra')
  options=(!strip)

  cd qemu-${pkgver}
  install -dm755 "${pkgdir}"/usr/bin
  for _arch in "${_extra_arches[@]}"; do
    install -m755 ${_arch}-*/qemu-*${_arch} "${pkgdir}"/usr/bin
  done

  # manually stripping
  find "${pkgdir}"/usr/bin -type f -exec strip {} \;
}