Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
zen0bit committed Sep 28, 2024
1 parent 633a004 commit 82b1693
Show file tree
Hide file tree
Showing 4 changed files with 287 additions and 103 deletions.
176 changes: 155 additions & 21 deletions .github/workflows/blank.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,70 +2,204 @@

name: CI

# Controls when the action will run.
# 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 ]
#branches: [ main,q ]
paths-ignore: [ '**/README.md' ]
pull_request:
branches: [ main ]
#branches: [ main,q ]
paths-ignore: [ '**/README.md' ]

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

# 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: ubuntu-20.04
runs-on: ubuntu-22.04

# 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
- uses: actions/checkout@v4

- name: Prerequisites
run: |
sudo apt update && sudo apt upgrade -y
sudo apt install ninja-build python3-venv git pkg-config libglib2.0-dev flex bison git libglib2.0-dev libfdt-dev libpixman-1-dev zlib1g-dev libspice-protocol-dev
sudo apt-get install libaio-dev libbluetooth-dev libcapstone-dev libbrlapi-dev libbz2-dev libusb* libspice-server1 libspice-server-dev
sudo apt-get install libcap-ng-dev libcurl4-gnutls-dev libgtk-3-dev libnfs* slirp* libslirp0 libslirp-dev
sudo apt-get install libibverbs-dev libjpeg8-dev libncurses5-dev libnuma-dev libvirglrenderer-dev libvirglrenderer1 virgl-server libiscsi7 libiscsi-dev libzstd1 libzstd-dev
sudo apt-get install librbd-dev librdmacm-dev
sudo apt-get install libsasl2-dev libsdl2-dev libseccomp-dev libsnappy-dev libssh-dev
sudo apt-get install libvde-dev libvdeplug-dev libvte-2.91-dev libxen-dev liblzo2-dev
sudo apt-get install valgrind xfslibs-dev libpixman-1-0 libpixman-1-dev
sudo apt-get update && sudo apt-get upgrade -y
sudo apt update --fix-missing
wget -c "https://github.com/ninja-build/ninja/releases/download/v1.12.0/ninja-linux.zip" && unzip ninja-linux.zip && sudo mv ninja /usr/bin/
wget -c "https://github.com/mesonbuild/meson/releases/download/1.4.0/meson-1.4.0.tar.gz" && tar -xf meson-1.4.0.tar.gz && cd meson-1.4.0/ && sudo ln -rs meson.py /usr/bin/meson
sudo apt-get install libxml2-utils xsltproc libglib2.0-dev gnutls-bin libgnutls28-dev libxml2-dev pip docutils-common gettext
sudo apt -y install python3-venv git ninja-build pkg-config libglib2.0-dev flex bison libglib2.0-dev libfdt-dev libpixman-1-dev zlib1g-dev
sudo apt-get -y install \
bash \
coreutils \
genisoimage \
grep \
jq \
libaio-dev \
libbluetooth-dev \
libcapstone-dev \
libbrlapi-dev \
libbz2-dev \
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 \
libiscsi7 \
libiscsi-dev \
liblzo2-dev \
libglib2.0-dev \
libspice-protocol-dev \
libspice-server-dev \
libvirglrenderer-dev \
libvirglrenderer1 \
libcacard-dev \
libzstd-dev \
libzstd1 \
libxkbcommon-dev \
lsb-base \
ovmf \
pkg-config \
procps \
sed \
slirp* \
libslirp0 \
libslirp-dev \
spice-client-gtk \
tss2 \
unzip \
usbutils \
valgrind \
virgl-server \
wget \
libxkbcommon-dev \
xdg-user-dirs \
xfslibs-dev \
zsync
# linuxdeploy & appimagetool
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
# quickemu
sudo add-apt-repository -y ppa:flexiondotorg/quickemu
sudo apt-get update && sudo apt-get -y install quickemu
# q
wget -q https://raw.githubusercontent.com/oSoWoSo/DistroHopper/all/q ; chmod a+x q
# gum
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
# needed directories
mkdir -p lucas/usr/lib/
mkdir -p lucas/usr/share/
cp -r /usr/share/mime/ lucas/usr/share/
#mkdir -p lucas/usr/share/
#cp -r /usr/share/mime/ lucas/usr/share/
# qemu
git clone https://gitlab.com/qemu-project/qemu.git
cd qemu
git submodule init
git submodule update --recursive
./configure --disable-docs --enable-modules --enable-system --enable-virglrenderer --enable-guest-agent --enable-gio --enable-sdl --enable-gtk --enable-gtk-clipboard --enable-spice --enable-spice-protocol --enable-pixman --enable-user --enable-opengl --enable-kvm --enable-gnutls --enable-libssh --enable-libusb --enable-libudev --enable-nettle --enable-alsa --enable-pa --enable-slirp --enable-slirp-smbd --prefix=${GITHUB_WORKSPACE}/lucas/usr/
#<<<<<<< HEAD
#./configure --disable-docs --enable-modules --enable-system --enable-virglrenderer --enable-guest-agent --enable-gio --enable-sdl --enable-gtk --enable-gtk-clipboard --enable-spice --enable-spice-protocol --enable-pixman --enable-user --enable-opengl --enable-kvm --enable-gnutls --enable-libssh --enable-libusb --enable-libudev --enable-nettle --enable-alsa --enable-pa --enable-slirp --enable-slirp-smbd --prefix=${GITHUB_WORKSPACE}/lucas/usr/
#=======
./configure \
--disable-docs \
--enable-alsa \
--enable-brlapi \
--enable-guest-agent \
--enable-gio \
--enable-gtk \
--enable-gtk-clipboard \
--enable-gnutls \
--enable-kvm \
--enable-libssh \
--enable-libusb \
--enable-libudev \
--enable-libssh \
--enable-modules \
--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-system \
--enable-tpm \
--enable-usb-redir \
--enable-user \
--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-vmdk \
--enable-vnc \
--enable-vnc-jpeg \
--enable-vnc-sasl \
--enable-vpc \
--enable-vte \
--enable-vvfat \
--enable-xen \
--enable-xen-pci-passthrough \
--enable-zstd \
--target-list=x86_64-linux-user --prefix=${GITHUB_WORKSPACE}/lucas/usr/
make
make install
cd ..
cp qemu.desktop qemu_logo_no_text.svg AppRun libunionpreload.so lucas/
ls
pwd
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 qemu.desktop lucas/
cp q.desktop lucas/
ARCH=x86_64 ./appimagetool -n lucas/
- name: release
uses: "marvinpinto/action-automatic-releases@6273874b61ebc8c71f1a61b2d98e234cf389b303"
uses: "marvinpinto/action-automatic-releases@latest"
with:
title: Continuous build
automatic_release_tag: continuous-stable
Expand Down
10 changes: 8 additions & 2 deletions AppRun
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,15 @@ export PATH="${HERE}"/usr:"${HERE}"/usr/libexec:"${HERE}"/usr/bin:"${HERE}"/usr/
export LD_LIBRARY_PATH="${HERE}"/usr:"${HERE}"/usr/libexec:"${HERE}"/usr/bin:"${HERE}"/usr/lib:"${HERE}"/usr/include:"${HERE}"/usr/var:"${HERE}"/usr/var/run:"${HERE}"/usr/share:"${HERE}"/usr/share/doc:"${HERE}"/usr/share/qemu:"${HERE}"/usr/share/qemu/keymaps:"${HERE}"/usr/share/qemu/firmware:"${HERE}"/usr/share/applications:"${HERE}"/usr/share/mime:"${HERE}"/usr/share/mime/x-epoc:"${HERE}"/usr/share/mime/inode:"${HERE}"/usr/share/mime/video:"${HERE}"/usr/share/mime/text:"${HERE}"/usr/share/mime/application:"${HERE}"/usr/share/mime/audio:"${HERE}"/usr/share/mime/model:"${HERE}"/usr/share/mime/image:"${HERE}"/usr/share/mime/font:"${HERE}"/usr/share/mime/x-content:"${HERE}"/usr/share/mime/packages:"${HERE}"/usr/share/mime/multipart:"${HERE}"/usr/share/mime/message:"${LD_LIBRARY_PATH}"
export XDG_DATA_DIRS="${HERE}"/usr:"${HERE}"/usr/libexec:"${HERE}"/usr/bin:"${HERE}"/usr/lib:"${HERE}"/usr/include:"${HERE}"/usr/var:"${HERE}"/usr/var/run:"${HERE}"/usr/share:"${HERE}"/usr/share/doc:"${HERE}"/usr/share/qemu:"${HERE}"/usr/share/qemu/keymaps:"${HERE}"/usr/share/qemu/firmware:"${HERE}"/usr/share/applications:"${HERE}"/usr/share/mime:"${HERE}"/usr/share/mime/x-epoc:"${HERE}"/usr/share/mime/inode:"${HERE}"/usr/share/mime/video:"${HERE}"/usr/share/mime/text:"${HERE}"/usr/share/mime/application:"${HERE}"/usr/share/mime/audio:"${HERE}"/usr/share/mime/model:"${HERE}"/usr/share/mime/image:"${HERE}"/usr/share/mime/font:"${HERE}"/usr/share/mime/x-content:"${HERE}"/usr/share/mime/packages:"${HERE}"/usr/share/mime/multipart:"${HERE}"/usr/share/mime/message:"${XDG_DATA_DIRS}"
export GSETTINGS_SCHEMA_DIR="${HERE}"/usr/share/glib-2.0/schemas/:"${GSETTINGS_SCHEMA_DIR}"
if [[ "${1}" =~ ^(qemu-edid|qemu-system-tricore|qemu-s390x|qemu-system-ppc64|qemu-sparc|qemu-riscv64|qemu-system-aarch64|qemu-io|qemu-keymap|qemu-system-sh4|qemu-xtensa|qemu-ga|qemu-system-alpha|qemu-microblaze|qemu-system-s390x|qemu-microblazeel|qemu-nbd|qemu-system-avr|qemu-system-xtensaeb|qemu-m68k|qemu-storage-daemon|qemu-riscv32|qemu-ppc64le|qemu-system-nios2|qemu-sh4|qemu-aarch64_be|qemu-system-mips64el|qemu-sparc32plus|qemu-sparc64|qemu-system-riscv32|qemu-img|qemu-system-i386|qemu-system-cris|qemu-armeb|qemu-system-arm|qemu-mipsn32el|qemu-x86_64|qemu-system-or1k|qemu-system-mips|qemu-ppc64|qemu-system-microblazeel|qemu-system-mipsel|qemu-mipsel|qemu-system-mips64|qemu-or1k|qemu-alpha|qemu-loongarch64|qemu-system-microblaze|qemu-system-hppa|qemu-nios2|qemu-hexagon|qemu-ppc|qemu-system-m68k|qemu-mipsn32|qemu-mips|qemu-i386|qemu-aarch64|qemu-system-rx|qemu-system-ppc|qemu-cris|qemu-mips64el|qemu-system-sparc|qemu-arm|qemu-system-loongarch64|qemu-xtensaeb|qemu-system-riscv64|qemu-system-sh4eb|qemu-hppa|qemu-system-xtensa|qemu-mips64|elf2dmp|qemu-sh4eb|qemu-pr-helper|qemu-system-x86_64|qemu-system-sparc64|qemu-bridge-helper|virtfs-proxy-helper)$ ]]; then
#<<<<<<< HEAD
#if [[ "${1}" =~ ^(qemu-edid|qemu-system-tricore|qemu-s390x|qemu-system-ppc64|qemu-sparc|qemu-riscv64|qemu-system-aarch64|qemu-io|qemu-keymap|qemu-system-sh4|qemu-xtensa|qemu-ga|qemu-system-alpha|qemu-microblaze|qemu-system-s390x|qemu-microblazeel|qemu-nbd|qemu-system-avr|qemu-system-xtensaeb|qemu-m68k|qemu-storage-daemon|qemu-riscv32|qemu-ppc64le|qemu-system-nios2|qemu-sh4|qemu-aarch64_be|qemu-system-mips64el|qemu-sparc32plus|qemu-sparc64|qemu-system-riscv32|qemu-img|qemu-system-i386|qemu-system-cris|qemu-armeb|qemu-system-arm|qemu-mipsn32el|qemu-x86_64|qemu-system-or1k|qemu-system-mips|qemu-ppc64|qemu-system-microblazeel|qemu-system-mipsel|qemu-mipsel|qemu-system-mips64|qemu-or1k|qemu-alpha|qemu-loongarch64|qemu-system-microblaze|qemu-system-hppa|qemu-nios2|qemu-hexagon|qemu-ppc|qemu-system-m68k|qemu-mipsn32|qemu-mips|qemu-i386|qemu-aarch64|qemu-system-rx|qemu-system-ppc|qemu-cris|qemu-mips64el|qemu-system-sparc|qemu-arm|qemu-system-loongarch64|qemu-xtensaeb|qemu-system-riscv64|qemu-system-sh4eb|qemu-hppa|qemu-system-xtensa|qemu-mips64|elf2dmp|qemu-sh4eb|qemu-pr-helper|qemu-system-x86_64|qemu-system-sparc64|qemu-bridge-helper|virtfs-proxy-helper)$ ]]; then
#=======
if [ -z "${1}" ]; then
exec q
elif [[ "${1}" =~ ^(getfacl|bzexe|bzmore|bunzip2|chacl|bzcat|bzip2|bzgrep|bzdiff|tar|setfacl|bzip2recover|setcap|resize2fs|logsave|getpcaps|dumpe2fs|mke2fs|e2scrub_all|capsh|tune2fs|debugfs|e2image|getcap|e2undo|e2fsck|badblocks|e2scrub|qemu-aarch64|x86_64-linux-gnu-dwp|lzmainfo|qemu-img|dpkg-scanpackages|qemu-system-microblazeel|qemu-nios2|qemu-cris|lsattr|qemu-mipsel|qemu-storage-daemon|xzgrep|dpkg-gencontrol|qemu-sh4eb|qemu-system-microblaze|qemu-hppa|qemu-sparc64|dpkg-checkbuilddeps|dpkg-name|qemu-riscv64|x86_64-linux-gnu-gprof|x86_64-linux-gnu-addr2line|x86_64-linux-gnu-elfedit|qemu-mips64|qemu-system-xtensa|dpkg-scansources|qemu-system-x86_64-spice|qemu-armeb|qemu-system-tricore|qemu-system-rx|dpkg-architecture|qemu-ppc64le|kvm-spice|qemu-xtensaeb|qemu-system-sparc64|qemu-system-mips64|qemu-system-mips64el|x86_64-linux-gnu-ld.gold|qemu-ppc|qemu-sparc|x86_64-linux-gnu-as|qemu-system-i386|qemu-hexagon|dpkg-distaddfile|chattr|wget|qemu-system-m68k|qemu-x86_64|qemu-system-x86_64-microvm|xzless|qemu-arm|qemu-aarch64_be|qemu-sh4|qemu-s390x|qemu-system-riscv32|xzdiff|qemu-riscv32|dpkg-gensymbols|qemu-system-cris|xzmore|x86_64-linux-gnu-strings|qemu-mips64el|debuild-pbuilder|qemu-system-riscv64|qemu-system-ppc64|qemu-system-sh4eb|qemu-alpha|qemu-m68k|x86_64-linux-gnu-objdump|dpkg-genbuildinfo|qemu-pr-helper|qemu-microblazeel|xz|qemu-sparc32plus|x86_64-linux-gnu-readelf|pdebuild|x86_64-linux-gnu-strip|qemu-system-aarch64|x86_64-linux-gnu-nm|qemu-ppc64|x86_64-linux-gnu-objcopy|dpkg-source|x86_64-linux-gnu-ranlib|qemu-system-or1k|qemu-mipsn32|qemu-system-avr|dpkg-buildflags|make-first-existing-target|qemu-system-mips|qemu-system-alpha|qemu-nbd|qemu-mips|dpkg-shlibdeps|qemu-mipsn32el|qemu-system-ppc|qemu-system-mipsel|qemu-system-xtensaeb|qemu-i386|dpkg-buildpackage|make|qemu-system-x86_64|dpkg-parsechangelog|qemu-io|qemu-system-hppa|patch|qemu-system-nios2|x86_64-linux-gnu-ld.bfd|qemu-microblaze|x86_64-linux-gnu-c++filt|qemu-system-s390x|dpkg-mergechangelogs|qemu-xtensa|dpkg-vendor|qemu-system-sh4|qemu-system-sparc|update-mime-database|qemu-system-arm|qemu-or1k|x86_64-linux-gnu-ar|x86_64-linux-gnu-size|dpkg-genchanges|qemubuilder|e4defrag|tarcat|qemu-make-debian-root|filefrag|e2freefrag|e4crypt|rmt-tar|pbuilder|debootstrap|deluser|adduser|mklost+found|q|bash|grep|jq|wget|unzip|python|sed|spice|zsync|quickemu|quickget|macrecovery|tput|gum|tr)$ ]]; then
#>>>>>>> 0bb0d9a (q test)
args=( "${@}" )
args[0]="${1}"
set "${args[@]}"
exec "${@}"
fi
exec "${@}"
6 changes: 3 additions & 3 deletions qemu.desktop → q.desktop
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[Desktop Entry]
Name=QEMU
Exec=qemu-system-x86_64
Name=Q
Exec=q
Terminal=true
Type=Application
Icon=qemu_logo_no_text
Icon=q_logo_no_text
Categories=System;Emulator;
Loading

0 comments on commit 82b1693

Please sign in to comment.