mirror of
https://github.com/termux/termux-packages.git
synced 2024-11-23 13:46:16 +00:00
159 lines
4.3 KiB
Bash
159 lines
4.3 KiB
Bash
TERMUX_PKG_HOMEPAGE=https://www.qemu.org
|
|
TERMUX_PKG_DESCRIPTION="A generic and open source machine emulator and virtualizer"
|
|
TERMUX_PKG_LICENSE="GPL-2.0"
|
|
TERMUX_PKG_MAINTAINER="@termux"
|
|
TERMUX_PKG_VERSION=1:8.2.6
|
|
TERMUX_PKG_SRCURL=https://download.qemu.org/qemu-${TERMUX_PKG_VERSION:2}.tar.xz
|
|
TERMUX_PKG_SHA256=8cadb1e6b039954e672d4a7cc3a5f30738b4cb99bc92c2640b15cc89f8f91fa2
|
|
TERMUX_PKG_DEPENDS="dtc, gdk-pixbuf, glib, gtk3, libbz2, libcairo, libcurl, libepoxy, libgmp, libgnutls, libiconv, libjpeg-turbo, liblzo, libnettle, libnfs, libpixman, libpng, libslirp, libspice-server, libssh, libusb, libusbredir, libx11, mesa, ncurses, pulseaudio, qemu-common, resolv-conf, sdl2, sdl2-image, virglrenderer, zlib, zstd"
|
|
|
|
# Required by configuration script, but I can't find any binary that uses it.
|
|
TERMUX_PKG_BUILD_DEPENDS="libtasn1"
|
|
|
|
# Remove files already present in qemu-utils and qemu-common.
|
|
TERMUX_PKG_RM_AFTER_INSTALL="
|
|
bin/elf2dmp
|
|
bin/qemu-edid
|
|
bin/qemu-ga
|
|
bin/qemu-img
|
|
bin/qemu-io
|
|
bin/qemu-nbd
|
|
bin/qemu-pr-helper
|
|
bin/qemu-storage-daemon
|
|
include/*
|
|
libexec/qemu-bridge-helper
|
|
libexec/virtfs-proxy-helper
|
|
share/applications
|
|
share/doc
|
|
share/icons
|
|
share/man/man1/qemu-img.1*
|
|
share/man/man1/qemu-storage-daemon.1*
|
|
share/man/man1/qemu.1*
|
|
share/man/man1/virtfs-proxy-helper.1*
|
|
share/man/man7
|
|
share/man/man8/qemu-ga.8*
|
|
share/man/man8/qemu-nbd.8*
|
|
share/man/man8/qemu-pr-helper.8*
|
|
share/qemu
|
|
"
|
|
|
|
TERMUX_PKG_CONFLICTS="qemu-system-x86_64, qemu-system-x86_64-headless, qemu-system-x86-64-headless"
|
|
TERMUX_PKG_REPLACES="qemu-system-x86_64, qemu-system-x86_64-headless, qemu-system-x86-64-headless"
|
|
TERMUX_PKG_PROVIDES="qemu-system-x86_64"
|
|
TERMUX_PKG_BUILD_IN_SRC=true
|
|
|
|
termux_step_pre_configure() {
|
|
# Workaround for https://github.com/termux/termux-packages/issues/12261.
|
|
if [ $TERMUX_ARCH = "aarch64" ]; then
|
|
rm -f $TERMUX_PKG_BUILDDIR/_lib
|
|
mkdir -p $TERMUX_PKG_BUILDDIR/_lib
|
|
|
|
cd $TERMUX_PKG_BUILDDIR
|
|
mkdir -p _setjmp-aarch64
|
|
pushd _setjmp-aarch64
|
|
mkdir -p private
|
|
local s
|
|
for s in $TERMUX_PKG_BUILDER_DIR/setjmp-aarch64/{setjmp.S,private-*.h}; do
|
|
local f=$(basename ${s})
|
|
cp ${s} ./${f/-//}
|
|
done
|
|
$CC $CFLAGS $CPPFLAGS -I. setjmp.S -c
|
|
$AR cru $TERMUX_PKG_BUILDDIR/_lib/libandroid-setjmp.a setjmp.o
|
|
popd
|
|
|
|
LDFLAGS+=" -L$TERMUX_PKG_BUILDDIR/_lib -l:libandroid-setjmp.a"
|
|
fi
|
|
}
|
|
|
|
termux_step_configure() {
|
|
termux_setup_ninja
|
|
|
|
if [ "$TERMUX_ARCH" = "i686" ]; then
|
|
LDFLAGS+=" -latomic"
|
|
fi
|
|
|
|
local QEMU_TARGETS=""
|
|
|
|
# System emulation.
|
|
QEMU_TARGETS+="aarch64-softmmu,"
|
|
QEMU_TARGETS+="arm-softmmu,"
|
|
QEMU_TARGETS+="i386-softmmu,"
|
|
QEMU_TARGETS+="m68k-softmmu,"
|
|
QEMU_TARGETS+="ppc64-softmmu,"
|
|
QEMU_TARGETS+="ppc-softmmu,"
|
|
QEMU_TARGETS+="riscv32-softmmu,"
|
|
QEMU_TARGETS+="riscv64-softmmu,"
|
|
QEMU_TARGETS+="x86_64-softmmu"
|
|
|
|
CFLAGS+=" $CPPFLAGS"
|
|
CXXFLAGS+=" $CPPFLAGS"
|
|
LDFLAGS+=" -landroid-shmem -llog"
|
|
|
|
# Note: using --disable-stack-protector since stack protector
|
|
# flags already passed by build scripts but we do not want to
|
|
# override them with what QEMU configure provides.
|
|
./configure \
|
|
--prefix="$TERMUX_PREFIX" \
|
|
--cross-prefix="${TERMUX_HOST_PLATFORM}-" \
|
|
--host-cc="gcc" \
|
|
--cc="$CC" \
|
|
--cxx="$CXX" \
|
|
--objcc="$CC" \
|
|
--disable-stack-protector \
|
|
--smbd="$TERMUX_PREFIX/bin/smbd" \
|
|
--enable-coroutine-pool \
|
|
--audio-drv-list=pa,sdl \
|
|
--enable-trace-backends=nop \
|
|
--disable-guest-agent \
|
|
--enable-gnutls \
|
|
--enable-nettle \
|
|
--enable-sdl \
|
|
--enable-sdl-image \
|
|
--enable-gtk \
|
|
--enable-opengl \
|
|
--enable-virglrenderer \
|
|
--disable-vte \
|
|
--enable-curses \
|
|
--enable-iconv \
|
|
--enable-vnc \
|
|
--disable-vnc-sasl \
|
|
--enable-vnc-jpeg \
|
|
--enable-png \
|
|
--disable-xen \
|
|
--disable-xen-pci-passthrough \
|
|
--enable-virtfs \
|
|
--enable-curl \
|
|
--enable-fdt=system \
|
|
--enable-kvm \
|
|
--disable-hvf \
|
|
--disable-whpx \
|
|
--enable-libnfs \
|
|
--enable-lzo \
|
|
--disable-snappy \
|
|
--enable-bzip2 \
|
|
--disable-lzfse \
|
|
--disable-seccomp \
|
|
--enable-libssh \
|
|
--enable-bochs \
|
|
--enable-cloop \
|
|
--enable-dmg \
|
|
--enable-parallels \
|
|
--enable-qed \
|
|
--enable-slirp \
|
|
--enable-spice \
|
|
--enable-libusb \
|
|
--enable-usb-redir \
|
|
--disable-vhost-user \
|
|
--disable-vhost-user-blk-server \
|
|
--target-list="$QEMU_TARGETS"
|
|
}
|
|
|
|
termux_step_post_make_install() {
|
|
local i
|
|
for i in aarch64 arm i386 m68k ppc ppc64 riscv32 riscv64 x86_64; do
|
|
ln -sfr \
|
|
"${TERMUX_PREFIX}"/share/man/man1/qemu.1 \
|
|
"${TERMUX_PREFIX}"/share/man/man1/qemu-system-${i}.1
|
|
done
|
|
}
|