libzstd-dev #17
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This is a basic workflow to help you get started with Actions | |
name: CI | |
# Controls when the action will run. | |
on: | |
# Build at 00:00 on every 12th day-of-month. | |
schedule: | |
- cron: "0 0 */12 * *" | |
# Triggers the workflow on push or pull request events but only for the master branch | |
push: | |
branches: [ main,q ] | |
paths-ignore: [ '**/README.md' ] | |
pull_request: | |
branches: [ main,q ] | |
paths-ignore: [ '**/README.md' ] | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
# A workflow run is made up of one or more jobs that can run sequentially or in parallel | |
jobs: | |
# This workflow contains a single job called "build-stable" | |
build-stable: | |
# The type of runner that the job will run on | |
runs-on: self-hosted | |
# Steps represent a sequence of tasks that will be executed as part of the job | |
steps: | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- uses: actions/checkout@v3 | |
#Using './build' as the directory for build output | |
#Usage: configure [options] | |
#Options: [defaults in brackets after descriptions] | |
#Standard options: | |
#--help print this message | |
#--target-list=LIST set target list (default: build all) | |
#Available targets: aarch64-linux-user | |
#aarch64_be-linux-user alpha-linux-user | |
#arm-linux-user armeb-linux-user cris-linux-user | |
#hexagon-linux-user hppa-linux-user i386-linux-user | |
#loongarch64-linux-user m68k-linux-user | |
#microblaze-linux-user microblazeel-linux-user | |
#mips-linux-user mips64-linux-user | |
#mips64el-linux-user mipsel-linux-user | |
#mipsn32-linux-user mipsn32el-linux-user | |
#nios2-linux-user or1k-linux-user ppc-linux-user | |
#ppc64-linux-user ppc64le-linux-user | |
#riscv32-linux-user riscv64-linux-user | |
#s390x-linux-user sh4-linux-user sh4eb-linux-user | |
#sparc-linux-user sparc32plus-linux-user | |
#sparc64-linux-user x86_64-linux-user | |
#xtensa-linux-user xtensaeb-linux-user | |
#aarch64-softmmu alpha-softmmu arm-softmmu | |
#avr-softmmu cris-softmmu hppa-softmmu i386-softmmu | |
#loongarch64-softmmu m68k-softmmu microblaze-softmmu | |
#microblazeel-softmmu mips-softmmu mips64-softmmu | |
#mips64el-softmmu mipsel-softmmu nios2-softmmu | |
#or1k-softmmu ppc-softmmu ppc64-softmmu | |
#riscv32-softmmu riscv64-softmmu rx-softmmu | |
#s390x-softmmu sh4-softmmu sh4eb-softmmu | |
#sparc-softmmu sparc64-softmmu tricore-softmmu | |
#x86_64-softmmu xtensa-softmmu xtensaeb-softmmu | |
#--target-list-exclude=LIST exclude a set of targets from the default target-list | |
#Advanced options (experts only): | |
#-Dmesonoptname=val passthrough option to meson unmodified | |
#--cross-prefix=PREFIX use PREFIX for compile tools, PREFIX can be blank [] | |
#--cc=CC use C compiler CC [cc] | |
#--host-cc=CC when cross compiling, use C compiler CC for code run | |
#at build time [cc] | |
#--cxx=CXX use C++ compiler CXX [c++] | |
#--objcc=OBJCC use Objective-C compiler OBJCC [cc] | |
#--extra-cflags=CFLAGS append extra C compiler flags CFLAGS | |
#--extra-cxxflags=CXXFLAGS append extra C++ compiler flags CXXFLAGS | |
#--extra-objcflags=OBJCFLAGS append extra Objective C compiler flags OBJCFLAGS | |
#--extra-ldflags=LDFLAGS append extra linker flags LDFLAGS | |
#--cross-cc-ARCH=CC use compiler when building ARCH guest test cases | |
#--cross-cc-cflags-ARCH= use compiler flags when building ARCH guest tests | |
#--cross-prefix-ARCH=PREFIX cross compiler prefix when building ARCH guest test cases | |
#--python=PYTHON use specified python [/usr/bin/python3] | |
#--ninja=NINJA use specified ninja [] | |
#--static enable static build [no] | |
#--without-default-features default all --enable-* options to "disabled" | |
#--without-default-devices do not include any device that is not needed to | |
#start the emulator (only use if you are including | |
#desired devices in configs/devices/) | |
#--with-devices-ARCH=NAME override default configs/devices | |
#--enable-debug enable common debug build options | |
#--cpu=CPU Build for host CPU [x86_64] | |
#--disable-containers don't use containers for cross-building | |
#--container-engine=TYPE which container engine to use [auto] | |
#--gdb=GDB-path gdb to use for gdbstub tests [/usr/bin/gdb] | |
#--audio-drv-list=CHOICES Set audio driver list [default] (choices: alsa/co | |
#reaudio/default/dsound/jack/oss/pa/pipewire/sdl/s | |
#ndio) | |
#--bindir=VALUE Executable directory [bin] | |
#--block-drv-ro-whitelist=VALUE | |
#set block driver read-only whitelist (by default | |
#affects only QEMU, not tools like qemu-img) | |
#--block-drv-rw-whitelist=VALUE | |
#set block driver read-write whitelist (by default | |
#affects only QEMU, not tools like qemu-img) | |
#--datadir=VALUE Data file directory [share] | |
#--disable-coroutine-pool coroutine freelist (better performance) | |
#--disable-debug-info Enable debug symbols and other information | |
#--disable-hexagon-idef-parser | |
#use idef-parser to automatically generate TCG | |
#code for the Hexagon frontend | |
#--disable-install-blobs install provided firmware blobs | |
#--disable-qom-cast-debug cast debugging support | |
#--disable-relocatable toggle relocatable install | |
#--docdir=VALUE Base directory for documentation installation | |
#(can be empty) [share/doc] | |
#--enable-block-drv-whitelist-in-tools | |
#use block whitelist also in tools instead of only | |
#QEMU | |
#--enable-cfi Control-Flow Integrity (CFI) | |
#--enable-cfi-debug Verbose errors in case of CFI violation | |
#--enable-debug-graph-lock | |
#graph lock debugging support | |
#--enable-debug-mutex mutex debugging support | |
#--enable-debug-stack-usage | |
#measure coroutine stack usage | |
#--enable-debug-tcg TCG debugging | |
#--enable-fdt[=CHOICE] Whether and how to find the libfdt library | |
#(choices: auto/disabled/enabled/internal/system) | |
#--enable-fuzzing build fuzzing targets | |
#--enable-gcov Enable coverage tracking. | |
#--enable-lto Use link time optimization | |
#--enable-malloc=CHOICE choose memory allocator to use [system] (choices: | |
#jemalloc/system/tcmalloc) | |
#--enable-module-upgrades try to load modules from alternate paths for | |
#upgrades | |
#--enable-rng-none dummy RNG, avoid using /dev/(u)random and | |
#getrandom() | |
#--enable-safe-stack SafeStack Stack Smash Protection (requires | |
#clang/llvm and coroutine backend ucontext) | |
#--enable-sanitizers enable default sanitizers | |
#--enable-strip Strip targets on install | |
#--enable-tcg-interpreter TCG with bytecode interpreter (slow) | |
#--enable-trace-backends=CHOICES | |
#Set available tracing backends [log] (choices: | |
#dtrace/ftrace/log/nop/simple/syslog/ust) | |
#--enable-tsan enable thread sanitizer | |
#--firmwarepath=VALUES search PATH for firmware files [share/qemu- | |
#firmware] | |
#--iasl=VALUE Path to ACPI disassembler | |
#--includedir=VALUE Header file directory [include] | |
#--interp-prefix=VALUE where to find shared libraries etc., use %M for | |
#cpu name [/usr/gnemul/qemu-%M] | |
#--libdir=VALUE Library directory [system default] | |
#--libexecdir=VALUE Library executable directory [libexec] | |
#--localedir=VALUE Locale data directory [share/locale] | |
#--localstatedir=VALUE Localstate data directory [/var/local] | |
#--mandir=VALUE Manual page directory [share/man] | |
#--prefix=VALUE Installation prefix [/usr/local] | |
#--qemu-ga-distro=VALUE second path element in qemu-ga registry entries | |
#[Linux] | |
#--qemu-ga-manufacturer=VALUE | |
#"manufacturer" name for qemu-ga registry entries | |
#[QEMU] | |
#--qemu-ga-version=VALUE version number for qemu-ga installer | |
#--smbd=VALUE Path to smbd for slirp networking | |
#--sysconfdir=VALUE Sysconf data directory [etc] | |
#--tls-priority=VALUE Default TLS protocol/cipher priority string | |
#[NORMAL] | |
#--with-coroutine=CHOICE coroutine backend to use (choices: | |
#auto/sigaltstack/ucontext/windows) | |
#--with-pkgversion=VALUE use specified string as sub-version of the | |
#package | |
#--with-suffix=VALUE Suffix for QEMU data/modules/config directories | |
#(can be empty) [qemu] | |
#--with-trace-file=VALUE Trace file prefix for simple backend [trace] | |
#Optional features, enabled with --enable-FEATURE and | |
#disabled with --disable-FEATURE, default is enabled if available | |
#(unless built with --without-default-features): | |
#af-xdp AF_XDP network backend support | |
#alsa ALSA sound support | |
#attr attr/xattr support | |
#auth-pam PAM access control | |
#avx2 AVX2 optimizations | |
#avx512bw AVX512BW optimizations | |
#avx512f AVX512F optimizations | |
#blkio libblkio block device driver | |
#bochs bochs image format support | |
#bpf eBPF support | |
#brlapi brlapi character device driver | |
#bzip2 bzip2 support for DMG images | |
#canokey CanoKey support | |
#cap-ng cap_ng support | |
#capstone Whether and how to find the capstone library | |
#cloop cloop image format support | |
#cocoa Cocoa user interface (macOS only) | |
#colo-proxy colo-proxy support | |
#coreaudio CoreAudio sound support | |
#crypto-afalg Linux AF_ALG crypto backend driver | |
#curl CURL block device driver | |
#curses curses UI | |
#dbus-display -display dbus support | |
#dmg dmg image format support | |
#docs Documentations build support | |
#dsound DirectSound sound support | |
#fuse FUSE block device export | |
#fuse-lseek SEEK_HOLE/SEEK_DATA support for FUSE exports | |
#gcrypt libgcrypt cryptography support | |
#gettext Localization of the GTK+ user interface | |
#gio use libgio for D-Bus support | |
#glusterfs Glusterfs block device driver | |
#gnutls GNUTLS cryptography support | |
#gtk GTK+ user interface | |
#gtk-clipboard clipboard support for the gtk UI (EXPERIMENTAL, MAY HANG) | |
#guest-agent Build QEMU Guest Agent | |
#guest-agent-msi Build MSI package for the QEMU Guest Agent | |
#hv-balloon hv-balloon driver (requires Glib 2.68+ GTree API) | |
#hvf HVF acceleration support | |
#iconv Font glyph conversion support | |
#jack JACK sound support | |
#keyring Linux keyring support | |
#kvm KVM acceleration support | |
#l2tpv3 l2tpv3 network backend support | |
#libdaxctl libdaxctl support | |
#libdw debuginfo support | |
#libiscsi libiscsi userspace initiator | |
#libkeyutils Linux keyutils support | |
#libnfs libnfs block device driver | |
#libpmem libpmem support | |
#libssh ssh block device support | |
#libudev Use libudev to enumerate host devices | |
#libusb libusb support for USB passthrough | |
#libvduse build VDUSE Library | |
#linux-aio Linux AIO support | |
#linux-io-uring Linux io_uring support | |
#live-block-migration | |
#block migration in the main migration stream | |
#lzfse lzfse support for DMG images | |
#lzo lzo compression support | |
#malloc-trim enable libc malloc_trim() for memory optimization | |
#membarrier membarrier system call (for Linux 4.14+ or Windows | |
#modules modules support (non Windows) | |
#mpath Multipath persistent reservation passthrough | |
#multiprocess Out of process device emulation support | |
#netmap netmap network backend support | |
#nettle nettle cryptography support | |
#numa libnuma support | |
#nvmm NVMM acceleration support | |
#opengl OpenGL support | |
#oss OSS sound support | |
#pa PulseAudio sound support | |
#parallels parallels image format support | |
#pipewire PipeWire sound support | |
#pixman pixman support | |
#plugins TCG plugins via shared library loading | |
#png PNG support with libpng | |
#pvrdma Enable PVRDMA support | |
#qcow1 qcow1 image format support | |
#qed qed image format support | |
#qga-vss build QGA VSS support (broken with MinGW) | |
#rbd Ceph block device driver | |
#rdma Enable RDMA-based migration | |
#replication replication support | |
#rutabaga-gfx rutabaga_gfx support | |
#sdl SDL user interface | |
#sdl-image SDL Image support for icons | |
#seccomp seccomp support | |
#selinux SELinux support in qemu-nbd | |
#slirp libslirp user mode network backend support | |
#slirp-smbd use smbd (at path --smbd=*) in slirp networking | |
#smartcard CA smartcard emulation support | |
#snappy snappy compression support | |
#sndio sndio sound support | |
#sparse sparse checker | |
#spice Spice server support | |
#spice-protocol Spice protocol support | |
#stack-protector compiler-provided stack protection | |
#tcg TCG support | |
#tools build support utilities that come with QEMU | |
#tpm TPM support | |
#u2f U2F emulation support | |
#usb-redir libusbredir support | |
#vde vde network backend support | |
#vdi vdi image format support | |
#vduse-blk-export | |
#VDUSE block export support | |
#vfio-user-server | |
#vfio-user server support | |
#vhdx vhdx image format support | |
#vhost-crypto vhost-user crypto backend support | |
#vhost-kernel vhost kernel backend support | |
#vhost-net vhost-net kernel acceleration support | |
#vhost-user vhost-user backend support | |
#vhost-user-blk-server | |
#build vhost-user-blk server | |
#vhost-vdpa vhost-vdpa kernel backend support | |
#virglrenderer virgl rendering support | |
#virtfs virtio-9p support | |
#virtfs-proxy-helper | |
#virtio-9p proxy helper support | |
#vmdk vmdk image format support | |
#vmnet vmnet.framework network backend support | |
#vnc VNC server | |
#vnc-jpeg JPEG lossy compression for VNC server | |
#vnc-sasl SASL authentication for VNC server | |
#vpc vpc image format support | |
#vte vte support for the gtk UI | |
#vvfat vvfat image format support | |
#werror Treat warnings as errors | |
#whpx WHPX acceleration support | |
#xen Xen backend support | |
#xen-pci-passthrough | |
#Xen PCI passthrough support | |
#xkbcommon xkbcommon support | |
#zstd zstd compression support | |
#system all system emulation targets | |
#user supported user emulation targets | |
#linux-user all linux usermode emulation targets | |
#bsd-user all BSD usermode emulation targets | |
#pie Position Independent Executables | |
- name: Prerequisites | |
run: | | |
sudo apt-get -y install bash \ | |
bison \ | |
coreutils \ | |
flex \ | |
genisoimage \ | |
git \ | |
grep \ | |
jq \ | |
libglib2.0-dev \ | |
libfdt-dev \ | |
libpixman-1-dev \ | |
libaio-dev \ | |
libbluetooth-dev \ | |
libcapstone-dev \ | |
libbrlapi-dev \ | |
libbz2-dev \ | |
libfuse2 \ | |
libusb* \ | |
libcap-ng-dev \ | |
libcurl4-gnutls-dev \ | |
libgtk-3-dev \ | |
libnfs* \ | |
libibverbs-dev \ | |
libjpeg8-dev \ | |
libncurses5-dev \ | |
libnuma-dev \ | |
librbd-dev \ | |
librdmacm-dev \ | |
libsasl2-dev \ | |
libsdl2-dev \ | |
libseccomp-dev \ | |
libsnappy-dev \ | |
libssh-dev \ | |
libvde-dev \ | |
libvdeplug-dev \ | |
libvte-2.91-dev \ | |
libxen-dev \ | |
liblzo2-dev \ | |
libglib2.0-dev \ | |
libspice-protocol-dev \ | |
libspice-server-dev \ | |
libvirglrenderer-dev \ | |
libcacard-dev \ | |
libzstd-dev \ | |
lsb-base \ | |
ovmf \ | |
ninja-build \ | |
pkg-config \ | |
procps \ | |
python3-venv \ | |
sed \ | |
slirp* \ | |
spice-client-gtk \ | |
tss2 \ | |
unzip \ | |
usbutils \ | |
valgrind \ | |
wget \ | |
xdg-user-dirs \ | |
xfslibs-dev \ | |
zlib1g-dev \ | |
zsync | |
wget -q "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage" -O linuxdeploy ; chmod a+x linuxdeploy | |
wget -q "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage" -O appimagetool ; chmod a+x appimagetool | |
sudo add-apt-repository -y ppa:flexiondotorg/quickemu | |
sudo apt-get update && sudo apt-get -y install quickemu | |
wget -q https://raw.githubusercontent.com/oSoWoSo/DistroHopper/all/q ; chmod a+x q | |
sudo mkdir -p /etc/apt/keyrings | |
curl -fsSL https://repo.charm.sh/apt/gpg.key | sudo gpg --batch --yes --dearmor -o /etc/apt/keyrings/charm.gpg | |
echo "deb [signed-by=/etc/apt/keyrings/charm.gpg] https://repo.charm.sh/apt/ * *" | sudo tee /etc/apt/sources.list.d/charm.list | |
sudo apt-get update && sudo apt-get -y install gum | |
mkdir -p lucas/usr/lib/ | |
mkdir -p lucas/usr/share/ | |
cp -r /usr/share/mime/ lucas/usr/share/ | |
git clone https://gitlab.com/qemu-project/qemu.git | |
cd qemu | |
git submodule init | |
git submodule update --recursive | |
./configure --enable-alsa \ | |
--enable-guest-agent \ | |
--enable-gtk \ | |
--enable-gnutls \ | |
--enable-kvm \ | |
--enable-libssh \ | |
--enable-libusb \ | |
--enable-libudev \ | |
--enable-libssh \ | |
--enable-netmap \ | |
--enable-nettle \ | |
--enable-opengl \ | |
--enable-pa \ | |
--enable-pixman \ | |
--enable-smartcard \ | |
--enable-sdl \ | |
--enable-slirp \ | |
--enable-slirp-smbd \ | |
--enable-spice \ | |
--enable-spice-protocol \ | |
--enable-tpm \ | |
--enable-usb-redir \ | |
--enable-vde \ | |
--enable-virglrenderer \ | |
--enable-vnc \ | |
--enable-vde \ | |
--enable-vdi \ | |
--enable-vduse-blk-export \ | |
--enable-vhdx \ | |
--enable-vhost-crypto \ | |
--enable-vhost-kernel \ | |
--enable-vhost-net \ | |
--enable-vhost-user \ | |
--enable-vhost-user-blk-server \ | |
--enable-vhost-vdpa \ | |
--enable-virtfs \ | |
--enable-vmdk \ | |
--enable-vnc \ | |
--enable-vnc-jpeg \ | |
--enable-vnc-sasl \ | |
--enable-vpc \ | |
--enable-vte \ | |
--enable-vvfat \ | |
--enable-xen \ | |
--enable-xen-pci-passthrough \ | |
--enable-xkbcommon \ | |
--enable-zstd \ | |
--target-list=x86_64-linux-user --prefix=${GITHUB_WORKSPACE}/lucas/usr/ | |
make | |
make install | |
cd .. | |
cp q.desktop q_logo_no_text.svg AppRun libunionpreload.so lucas/ | |
# Runs a set of commands using the runners shell | |
- name: Build appimage | |
run: | | |
./linuxdeploy --appdir lucas/ | |
cp q.desktop lucas/ | |
ARCH=x86_64 ./appimagetool -n lucas/ | |
- name: release | |
uses: "marvinpinto/action-automatic-releases@6273874b61ebc8c71f1a61b2d98e234cf389b303" | |
with: | |
title: Continuous build | |
automatic_release_tag: continuous-stable | |
prerelease: false | |
draft: false | |
files: /home/runner/work/Qemu_Appimage/Qemu_Appimage/*.AppImage* |