Tarballs for XEN and QEMU-XEN

tested on slackware current (oct 2021)

assuming a power system with all slackware packages installed

this is about our xen-nox slackbuild

Intro

prepare xen and qemu-xen tarballs an for updated slackbuild

to avoid the gcc 11 related error, we switched to 4.15 stable branch instead of the 4.15.0 release.

we are going for xen LATEST STABLE and qemu-xen CURRENT. qemu-xen latest stable did not build because of keycodemapdb which was not generating the required .c files.

Requirements

for XEN and tools to build you will require those.

    # official
    slackpkg search ninja

    # sbo
    sbopkg -i acpica
    #sbopkg -i scikit-build
    #sbopkg -i wheel
    sbopkg -i yajl

Tarballs

grab the latest xen stable branch

    #git clone git://xenbits.xen.org/xen.git
    git clone https://xenbits.xen.org/git-http/xen.git
    cd xen/
    git checkout stable-4.15
    git branch
    git log -1 # f50ef17c9884c0c2d486d3b1de8f110bb6b22c42
    mv .git/ ../xen-REPO-DOT-GIT
    cd ../
    tar czf xen-f50ef17.tar.gz xen/

grab the latest qemu-xen stable branch AND SUBMODULES

    git clone https://xenbits.xen.org/git-http/qemu-xen.git
    cd qemu-xen/
    git config --file .gitmodules --name-only --get-regexp path
    git submodule update --init --recursive meson/
    git submodule update --init --recursive tests/fp/berkeley-softfloat-3/
    git submodule update --init --recursive tests/fp/berkeley-testfloat-3/
    git submodule update --init --recursive ui/keycodemapdb/
    git log -1 # b6e539830bf45e2d7a6bd86ddfdf003088b173b0
    mv .git/ ../qemu-xen-REPO-DOT-GIT
    cd ../
    tar czf qemu-xen-b6e5398.tar.gz qemu-xen/

Check before delivery

check that it build when done manually (it will avoid you troubles when using the slackbuild), while INCLUDING xen’s Makefile parameters (but --enable-xen)

    #mv /usr/bin/python /usr/bin/python.dist
    #ln -s python3 /usr/bin/python

    cd qemu-xen/
    ./configure --sysconfdir=/etc --localstatedir=/var \
            --target-list=i386-softmmu \
            --disable-kvm \
            --disable-docs \
            --disable-guest-agent \
            --python=python3 \
            --cpu=x86_64 \
                    --audio-drv-list= \
                    --disable-slirp \
                    --disable-blobs \
                    --disable-plugins \
                    --disable-gtk \
                    --disable-sdl \
                    --disable-sdl-image \
                    --disable-opengl \
                    --disable-capstone \
                    --disable-slirp-smbd \
                    --disable-spice-protocol \
                    --disable-fuse \
                    --disable-fuse-lseek

    echo $MAKEFLAGS
    make clean
    make > ../qemu-xen.log && echo BUILT || echo FAILED
    cd ../

Results

the resulting tarballs are also available over there.

Build

you are now ready to build XEN, QEMU-XEN and make the resulting slackbuild packages available for the world.

keep the repos for updating further tarballs

    mv xen-f50ef17.tar.gz ~/slackbuilds/xen-nox/
    mv qemu-xen-b6e5398.tar.gz ~/slackbuilds/xen-nox/

now proceed with the build as follows

    cd ~/slackbuilds/xen-nox/
    grep tar.gz *info
    grep VER *uild
    ls -lF *.tar.gz
    ./xen-nox.SlackBuild > ../xen-nox.log && echo BUILT
    tail ../xen-nox.log

and see slack/seedy-gonzales for further ado.

Troubleshooting

==> meson/ submodule was missing

    In file included from x86_emulate.c:45:
    x86_emulate/x86_emulate.c: In function ‘x86_emulate’:
    x86_emulate/x86_emulate.c:726:26: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
      726 |     (ptr)[0 - PFX_BYTES] = ext < ext_8f08 ? 0xc4 : 0x8f; \
          |     ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

==> I don’t remember how I solved that one, but the guide has been updated accordingly.

    /tmp/SBo/xen/tools/qemu-xen/ui/input-keymap.c:7:10: fatal error: ui/input-keymap-atset1-to-qcode.c: No such file or directory
        7 | #include "ui/input-keymap-atset1-to-qcode.c"
          |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

==> Makefile:KEYCODEMAP_GEN didn’t work, switch to qemu-xen CURRENT

    ERROR: --python requires using QEMU's embedded Meson distribution, but it was not found.

Resources

https://slackbuilds.org/repository/15.0/system/xen/

git

How to “git clone” including submodules? https://stackoverflow.com/questions/3796927/how-to-git-clone-including-submodules

List submodules in a Git repository https://stackoverflow.com/questions/12641469/list-submodules-in-a-git-repository

qemu

[027/132] meson: keymap-gen https://patchwork.kernel.org/project/qemu-devel/patch/1576155176-2464-28-git-send-email-pbonzini@redhat.com/

“–target list” meaning in qemu installation https://stackoverflow.com/questions/26664946/target-list-meaning-in-qemu-installation

Member “qemu-6.1.0/configure” (24 Aug 2021, 147017 Bytes) of package /linux/misc/qemu-6.1.0.tar.xz: https://fossies.org/linux/qemu/configure

QEMU Upstream https://wiki.xenproject.org/wiki/QEMU_Upstream

Re: [Qemu-devel] QEMU without X11 support https://lists.nongnu.org/archive/html/qemu-devel/2017-10/msg03032.html

qemu: Allow building without X11 support https://patchwork.openembedded.org/patch/66017/


HOME | GUIDES | LECTURES | LAB | SMTP HEALTH | NU | HTML5
Copyright © 2022 Pierre-Philipp Braun