diff options
Diffstat (limited to 'gitlab/issues_text/target_missing/host_missing/accel_missing/2291')
| -rw-r--r-- | gitlab/issues_text/target_missing/host_missing/accel_missing/2291 | 182 |
1 files changed, 182 insertions, 0 deletions
diff --git a/gitlab/issues_text/target_missing/host_missing/accel_missing/2291 b/gitlab/issues_text/target_missing/host_missing/accel_missing/2291 new file mode 100644 index 000000000..cc6b0d724 --- /dev/null +++ b/gitlab/issues_text/target_missing/host_missing/accel_missing/2291 @@ -0,0 +1,182 @@ +building qemu with msys2 mingw64 in github actions, sed error unterminated address regex +Description of problem: +in Github Actions (Windows) +``` +$ make --trace -j $(nproc) +ninja: no work to do. +/d/a/qemu_app/qemu_app/qemu/BUILD/pyvenv/bin/meson introspect --targets --tests --benchmarks | D:/a/qemu_app/qemu_app/qemu/BUILD/pyvenv/bin/python3.exe -B scripts/mtest2make.py > Makefile.mtest +D:\a\_temp\msys64\mingw64\bin\sed.exe: -e expression #1, char 41: unterminated address regex +D:\a\_temp\msys64\mingw64\bin\sed.exe: -e expression #1, char 41: unterminated address regex +``` +Steps to reproduce: +```sh +# enable symlinks in msys2 MINGW64 shell + +export MSYS=winsymlinks:native + +# download and extract qemu + +curl -L https://download.qemu.org/qemu-9.0.0-rc4.tar.xz -O +tar xvJf qemu-9.0.0-rc4.tar.xz +mv qemu-9.0.0-rc4 qemu + +# remove symlinks known to cause `git add` to fail, we will recreate these later in the yaml file + +/usr/bin/rm -f qemu/roms/edk2/EmulatorPkg/Unix/Host/X11IncludeHack +/usr/bin/rm -f qemu/roms/skiboot/opal-ci/build-debian-unstable.sh +/usr/bin/rm -f qemu/roms/skiboot/opal-ci/build-fedora-rawhide.sh +/usr/bin/rm -f qemu/roms/u-boot/board/xilinx/zynq/zynq-cse-nand +/usr/bin/rm -f qemu/roms/u-boot/board/xilinx/zynqmp/avnet-ultra96-rev1 +/usr/bin/rm -f qemu/roms/u-boot/board/xilinx/zynqmp/zynqmp-g-a2197-00-revA +/usr/bin/rm -f qemu/roms/u-boot/board/xilinx/zynqmp/zynqmp-m-a2197-01-revA +/usr/bin/rm -f qemu/roms/u-boot/board/xilinx/zynqmp/zynqmp-m-a2197-03-revA +/usr/bin/rm -f qemu/roms/u-boot/board/xilinx/zynqmp/zynqmp-mini +/usr/bin/rm -f qemu/roms/u-boot/board/xilinx/zynqmp/zynqmp-mini-emmc0 +/usr/bin/rm -f qemu/roms/u-boot/board/xilinx/zynqmp/zynqmp-mini-emmc1 +/usr/bin/rm -f qemu/roms/u-boot/board/xilinx/zynqmp/zynqmp-mini-qspi +/usr/bin/rm -f qemu/roms/u-boot/board/xilinx/zynqmp/zynqmp-p-a2197-00-revA +/usr/bin/rm -f qemu/roms/u-boot/board/xilinx/zynqmp/zynqmp-zcu104-revC +/usr/bin/rm -f qemu/roms/u-boot/include/ctype.h +/usr/bin/rm -f qemu/roms/u-boot/tools/binman/binman +/usr/bin/rm -f qemu/roms/u-boot/tools/dtoc/dtoc +/usr/bin/rm -f qemu/roms/u-boot/tools/microcode-tool +/usr/bin/rm -f qemu/roms/u-boot/tools/patman/patman +/usr/bin/rm -f qemu/tests/lcitool/libvirt-ci/ci/gitlab/all_mappings_prep_env/almalinux-8-prep.sh +/usr/bin/rm -f qemu/tests/lcitool/libvirt-ci/ci/gitlab/all_mappings_prep_env/alpine-317-prep.sh +/usr/bin/rm -f qemu/tests/lcitool/libvirt-ci/ci/gitlab/all_mappings_prep_env/alpine-edge-prep.sh +/usr/bin/rm -f qemu/tests/lcitool/libvirt-ci/ci/gitlab/all_mappings_prep_env/fedora-37-prep.sh +/usr/bin/rm -f qemu/tests/lcitool/libvirt-ci/ci/gitlab/all_mappings_prep_env/fedora-38-prep.sh +/usr/bin/rm -f qemu/tests/lcitool/libvirt-ci/ci/gitlab/all_mappings_prep_env/fedora-rawhide-prep.sh + +# push qemu to github to test + +git init +git add -Av +git commit -m "qemu fail" +git branch -M main + +git remote add origin < a url to a newly created git repo to test the qemu build which currently fails with sed error > + +git push origin +``` +```yaml + +# save this in the following file: .github/workflows/windows.yaml + +# Job execution time - Each job in a workflow can run for up to 6 hours of execution time. +# Workflow run time - Each workflow run is limited to 35 days + +name: windows + +on: + push: + branches: [ "main" ] + workflow_dispatch: + +defaults: + run: + shell: msys2 {0} + +# each job runs under a NEW image +jobs: + build_qemu: + strategy: + matrix: + include: + - os: windows-latest + name: windows + sys: MINGW64 + + runs-on: ${{ matrix.os }} + + name: build qemu - ${{ matrix.name }} + + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v4 + with: + ref: ${{needs.should_run.outputs.output1}} + submodules: recursive + + - name: '${{ matrix.icon }} Setup MSYS2' + uses: msys2/setup-msys2@v2 + with: + msystem: ${{matrix.sys}} + update: true + path-type: strict + + - name: update packages + run: | + pacman -Sy + + - name: install qemu deps + run: | + # https://github.com/qemu/qemu/blob/master/.gitlab-ci.d/windows.yml#L84 + pacman -S --noconfirm --needed pactoys + pacman -S --noconfirm --needed bison flex git + pacboy -S --noconfirm --needed make:p cmake:p gcc:p meson:p autotools:p ninja:p python:p python-sphinx:p python-sphinx_rtd_theme:p tools-git:p angleproject:p capstone:p curl:p cyrus-sasl:p dtc:p expat:p fontconfig:p freetype:p fribidi:p gcc-libs:p gdk-pixbuf2:p gettext:p glib2:p gmp:p gnutls:p graphite2:p gst-plugins-base:p gstreamer:p gtk3:p harfbuzz:p jbigkit:p lerc:p libc++:p libdatrie:p libdeflate:p libepoxy:p libffi:p libiconv:p libidn2:p libjpeg-turbo:p libnfs:p libpng:p libpsl:p libslirp:p libssh:p libssh2:p libtasn1:p libthai:p libtiff:p libunistring:p libunwind:p libusb:p libwebp:p libwinpthread-git:p lz4:p lzo2:p nettle:p openssl:p opus:p orc:p p11-kit:p pango:p pixman:p SDL2:p SDL2_image:p snappy:p spice:p usbredir:p xz:p zlib:p zstd:p brotli:p bzip2:p nghttp2 diffutils grep make sed:p binutils:p capstone:p curl:p cyrus-sasl:p dtc:p gcc:p glib2:p gnutls:p gtk3:p libgcrypt:p libjpeg-turbo:p libnfs:p libpng:p libssh:p libtasn1:p libusb:p lzo2:p nettle:p ninja:p pixman:p pkgconf:p python:p SDL2:p SDL2_image:p snappy:p spice:p usbredir:p zstd:p + + - name: restore symlinks + run: | + export MSYS=winsymlinks:native + ln -s /opt/X11/include qemu/roms/edk2/EmulatorPkg/Unix/Host/X11IncludeHack + ln -s build-ubuntu-latest.sh qemu/roms/skiboot/opal-ci/build-debian-unstable.sh + ln -s build-fedora33.sh qemu/roms/skiboot/opal-ci/build-fedora-rawhide.sh + ln -s zynq-zc770-xm011 qemu/roms/u-boot/board/xilinx/zynq/zynq-cse-nand + ln -s zynqmp-zcu100-revC qemu/roms/u-boot/board/xilinx/zynqmp/avnet-ultra96-rev1 + ln -s zynqmp-a2197-revA qemu/roms/u-boot/board/xilinx/zynqmp/zynqmp-g-a2197-00-revA + ln -s zynqmp-a2197-revA qemu/roms/u-boot/board/xilinx/zynqmp/zynqmp-m-a2197-01-revA + ln -s zynqmp-a2197-revA qemu/roms/u-boot/board/xilinx/zynqmp/zynqmp-m-a2197-03-revA + ln -s zynqmp-zcu102-rev1.0 qemu/roms/u-boot/board/xilinx/zynqmp/zynqmp-mini + ln -s zynqmp-zcu100-revC qemu/roms/u-boot/board/xilinx/zynqmp/zynqmp-mini-emmc0 + ln -s zynqmp-zcu102-rev1.0 qemu/roms/u-boot/board/xilinx/zynqmp/zynqmp-mini-emmc1 + ln -s zynqmp-zcu102-rev1.0 qemu/roms/u-boot/board/xilinx/zynqmp/zynqmp-mini-qspi + ln -s zynqmp-a2197-revA qemu/roms/u-boot/board/xilinx/zynqmp/zynqmp-p-a2197-00-revA + ln -s zynqmp-zcu104-revA qemu/roms/u-boot/board/xilinx/zynqmp/zynqmp-zcu104-revC + ln -s linux/ctype.h qemu/roms/u-boot/include/ctype.h + ln -s main.py qemu/roms/u-boot/tools/binman/binman + ln -s main.py qemu/roms/u-boot/tools/dtoc/dtoc + ln -s microcode-tool.py qemu/roms/u-boot/tools/microcode-tool + ln -s main.py qemu/roms/u-boot/tools/patman/patman + ln -s centos-stream-8-prep.sh qemu/tests/lcitool/libvirt-ci/ci/gitlab/all_mappings_prep_env/almalinux-8-prep.sh + ln -s alpine-prep.sh qemu/tests/lcitool/libvirt-ci/ci/gitlab/all_mappings_prep_env/alpine-317-prep.sh + ln -s alpine-prep.sh qemu/tests/lcitool/libvirt-ci/ci/gitlab/all_mappings_prep_env/alpine-edge-prep.sh + ln -s fedora-prep.sh qemu/tests/lcitool/libvirt-ci/ci/gitlab/all_mappings_prep_env/fedora-37-prep.sh + ln -s fedora-prep.sh qemu/tests/lcitool/libvirt-ci/ci/gitlab/all_mappings_prep_env/fedora-38-prep.sh + ln -s fedora-prep.sh qemu/tests/lcitool/libvirt-ci/ci/gitlab/all_mappings_prep_env/fedora-rawhide-prep.sh + + # we dont use split.exe since we need only fails the build and need not upload the results + + # there is no use in caching the build directory since ../configure will cause a full rebuild + # and we are lazy to detect an existing Makefile + + - name: cmake configure qemu - Release + run: | + export MSYS=winsymlinks:native + cd qemu + mkdir BUILD || true + mkdir BUILD/BUILD_ROOT || true + cd BUILD + ls -l + + # this should succeed + ../configure --prefix=$(pwd)/BUILD_ROOT --enable-sdl --enable-gtk --disable-user --target-list=x86_64-softmmu --enable-whpx + + - name: cmake build qemu - Release + run: | + export MSYS=winsymlinks:native + cd qemu/BUILD + ls -l + cat -n Makefile + + # this should fail with sed.exe: -e expression #1, char 41: unterminated address regex + make --trace -j $(nproc) +``` +Additional information: +https://github.com/mgood7123/qemu_app/actions/runs/8732163169/job/23958798258 + +note `make` `succeeds` (returns 0) but does not build anything due to sed error + +qemu folder is https://download.qemu.org/qemu-9.0.0-rc4.tar.xz + +symlinks incompatible with `git add` have been removed and then recreated in GHA |