tests: add 'rust' and 'bindgen' to CI package list

Although we're not enabling rust by default yet, we can still add
rust and bindgen to the CI package list.

This demonstrates that we're not accidentally triggering unexpected
build behaviour merely from Rust being present. When we do dev work
to enable rust by default, this will show we're building correctly
on all platforms we target.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Link: https://lore.kernel.org/r/20241015133925.311587-2-berrange@redhat.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Daniel P. Berrangé 2024-10-15 14:39:24 +01:00 committed by Paolo Bonzini
parent 388b849fb6
commit 548de8f8dc
23 changed files with 51 additions and 3 deletions

View File

@ -11,6 +11,6 @@ MAKE='/usr/local/bin/gmake'
NINJA='/usr/local/bin/ninja' NINJA='/usr/local/bin/ninja'
PACKAGING_COMMAND='pkg' PACKAGING_COMMAND='pkg'
PIP3='/usr/local/bin/pip-3.8' PIP3='/usr/local/bin/pip-3.8'
PKGS='alsa-lib bash bison bzip2 ca_root_nss capstone4 ccache cmocka ctags curl cyrus-sasl dbus diffutils dtc flex fusefs-libs3 gettext git glib gmake gnutls gsed gtk-vnc gtk3 json-c libepoxy libffi libgcrypt libjpeg-turbo libnfs libslirp libspice-server libssh libtasn1 llvm lzo2 meson mtools ncurses nettle ninja opencv pixman pkgconf png py311-numpy py311-pillow py311-pip py311-pyyaml py311-sphinx py311-sphinx_rtd_theme py311-tomli python3 rpm2cpio sdl2 sdl2_image snappy sndio socat spice-protocol tesseract usbredir virglrenderer vte3 xorriso zstd' PKGS='alsa-lib bash bison bzip2 ca_root_nss capstone4 ccache cmocka ctags curl cyrus-sasl dbus diffutils dtc flex fusefs-libs3 gettext git glib gmake gnutls gsed gtk-vnc gtk3 json-c libepoxy libffi libgcrypt libjpeg-turbo libnfs libslirp libspice-server libssh libtasn1 llvm lzo2 meson mtools ncurses nettle ninja opencv pixman pkgconf png py311-numpy py311-pillow py311-pip py311-pyyaml py311-sphinx py311-sphinx_rtd_theme py311-tomli python3 rpm2cpio rust rust-bindgen-cli sdl2 sdl2_image snappy sndio socat spice-protocol tesseract usbredir virglrenderer vte3 xorriso zstd'
PYPI_PKGS='' PYPI_PKGS=''
PYTHON='/usr/local/bin/python3' PYTHON='/usr/local/bin/python3'

View File

@ -11,6 +11,6 @@ MAKE='/opt/homebrew/bin/gmake'
NINJA='/opt/homebrew/bin/ninja' NINJA='/opt/homebrew/bin/ninja'
PACKAGING_COMMAND='brew' PACKAGING_COMMAND='brew'
PIP3='/opt/homebrew/bin/pip3' PIP3='/opt/homebrew/bin/pip3'
PKGS='bash bc bison bzip2 capstone ccache cmocka ctags curl dbus diffutils dtc flex gcovr gettext git glib gnu-sed gnutls gtk+3 gtk-vnc jemalloc jpeg-turbo json-c libepoxy libffi libgcrypt libiscsi libnfs libpng libslirp libssh libtasn1 libusb llvm lzo make meson mtools ncurses nettle ninja pixman pkg-config python3 rpm2cpio sdl2 sdl2_image snappy socat sparse spice-protocol swtpm tesseract usbredir vde vte3 xorriso zlib zstd' PKGS='bash bc bindgen bison bzip2 capstone ccache cmocka ctags curl dbus diffutils dtc flex gcovr gettext git glib gnu-sed gnutls gtk+3 gtk-vnc jemalloc jpeg-turbo json-c libepoxy libffi libgcrypt libiscsi libnfs libpng libslirp libssh libtasn1 libusb llvm lzo make meson mtools ncurses nettle ninja pixman pkg-config python3 rpm2cpio rust sdl2 sdl2_image snappy socat sparse spice-protocol swtpm tesseract usbredir vde vte3 xorriso zlib zstd'
PYPI_PKGS='PyYAML numpy pillow sphinx sphinx-rtd-theme tomli' PYPI_PKGS='PyYAML numpy pillow sphinx sphinx-rtd-theme tomli'
PYTHON='/opt/homebrew/bin/python3' PYTHON='/opt/homebrew/bin/python3'

View File

@ -11,6 +11,6 @@ MAKE='/opt/homebrew/bin/gmake'
NINJA='/opt/homebrew/bin/ninja' NINJA='/opt/homebrew/bin/ninja'
PACKAGING_COMMAND='brew' PACKAGING_COMMAND='brew'
PIP3='/opt/homebrew/bin/pip3' PIP3='/opt/homebrew/bin/pip3'
PKGS='bash bc bison bzip2 capstone ccache cmocka ctags curl dbus diffutils dtc flex gcovr gettext git glib gnu-sed gnutls gtk+3 gtk-vnc jemalloc jpeg-turbo json-c libepoxy libffi libgcrypt libiscsi libnfs libpng libslirp libssh libtasn1 libusb llvm lzo make meson mtools ncurses nettle ninja pixman pkg-config python3 rpm2cpio sdl2 sdl2_image snappy socat sparse spice-protocol swtpm tesseract usbredir vde vte3 xorriso zlib zstd' PKGS='bash bc bindgen bison bzip2 capstone ccache cmocka ctags curl dbus diffutils dtc flex gcovr gettext git glib gnu-sed gnutls gtk+3 gtk-vnc jemalloc jpeg-turbo json-c libepoxy libffi libgcrypt libiscsi libnfs libpng libslirp libssh libtasn1 libusb llvm lzo make meson mtools ncurses nettle ninja pixman pkg-config python3 rpm2cpio rust sdl2 sdl2_image snappy socat sparse spice-protocol swtpm tesseract usbredir vde vte3 xorriso zlib zstd'
PYPI_PKGS='PyYAML numpy pillow sphinx sphinx-rtd-theme tomli' PYPI_PKGS='PyYAML numpy pillow sphinx sphinx-rtd-theme tomli'
PYTHON='/opt/homebrew/bin/python3' PYTHON='/opt/homebrew/bin/python3'

View File

@ -7,6 +7,7 @@
packages: packages:
- bash - bash
- bc - bc
- bindgen
- bison - bison
- bsdextrautils - bsdextrautils
- bzip2 - bzip2
@ -113,6 +114,7 @@ packages:
- python3-venv - python3-venv
- python3-yaml - python3-yaml
- rpm2cpio - rpm2cpio
- rustc
- sed - sed
- socat - socat
- sparse - sparse

View File

@ -7,6 +7,7 @@
packages: packages:
- bash - bash
- bc - bc
- bindgen
- bison - bison
- bsdextrautils - bsdextrautils
- bzip2 - bzip2
@ -111,6 +112,7 @@ packages:
- python3-venv - python3-venv
- python3-yaml - python3-yaml
- rpm2cpio - rpm2cpio
- rustc
- sed - sed
- socat - socat
- sparse - sparse

View File

@ -90,6 +90,8 @@ RUN apk update && \
py3-yaml \ py3-yaml \
python3 \ python3 \
rpm2cpio \ rpm2cpio \
rust \
rust-bindgen \
samurai \ samurai \
sdl2-dev \ sdl2-dev \
sdl2_image-dev \ sdl2_image-dev \

View File

@ -16,6 +16,7 @@ RUN dnf distro-sync -y && \
alsa-lib-devel \ alsa-lib-devel \
bash \ bash \
bc \ bc \
bindgen-cli \
bison \ bison \
brlapi-devel \ brlapi-devel \
bzip2 \ bzip2 \
@ -102,6 +103,7 @@ RUN dnf distro-sync -y && \
python3-sphinx_rtd_theme \ python3-sphinx_rtd_theme \
python3-tomli \ python3-tomli \
rdma-core-devel \ rdma-core-devel \
rust \
sed \ sed \
snappy-devel \ snappy-devel \
socat \ socat \

View File

@ -13,6 +13,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
eatmydata apt-get install --no-install-recommends -y \ eatmydata apt-get install --no-install-recommends -y \
bash \ bash \
bc \ bc \
bindgen \
bison \ bison \
bsdextrautils \ bsdextrautils \
bzip2 \ bzip2 \
@ -53,6 +54,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
python3-venv \ python3-venv \
python3-yaml \ python3-yaml \
rpm2cpio \ rpm2cpio \
rustc \
sed \ sed \
socat \ socat \
sparse \ sparse \
@ -170,6 +172,7 @@ endian = 'little'\n" > /usr/local/share/meson/cross/x86_64-linux-gnu && \
ENV ABI "x86_64-linux-gnu" ENV ABI "x86_64-linux-gnu"
ENV MESON_OPTS "--cross-file=x86_64-linux-gnu" ENV MESON_OPTS "--cross-file=x86_64-linux-gnu"
ENV RUST_TARGET "x86_64-unknown-linux-gnu"
ENV QEMU_CONFIGURE_OPTS --cross-prefix=x86_64-linux-gnu- ENV QEMU_CONFIGURE_OPTS --cross-prefix=x86_64-linux-gnu-
ENV DEF_TARGET_LIST x86_64-softmmu,x86_64-linux-user,i386-softmmu,i386-linux-user ENV DEF_TARGET_LIST x86_64-softmmu,x86_64-linux-user,i386-softmmu,i386-linux-user
# As a final step configure the user (if env is defined) # As a final step configure the user (if env is defined)

View File

@ -13,6 +13,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
eatmydata apt-get install --no-install-recommends -y \ eatmydata apt-get install --no-install-recommends -y \
bash \ bash \
bc \ bc \
bindgen \
bison \ bison \
bsdextrautils \ bsdextrautils \
bzip2 \ bzip2 \
@ -53,6 +54,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
python3-venv \ python3-venv \
python3-yaml \ python3-yaml \
rpm2cpio \ rpm2cpio \
rustc \
sed \ sed \
socat \ socat \
sparse \ sparse \
@ -169,6 +171,7 @@ endian = 'little'\n" > /usr/local/share/meson/cross/aarch64-linux-gnu && \
ENV ABI "aarch64-linux-gnu" ENV ABI "aarch64-linux-gnu"
ENV MESON_OPTS "--cross-file=aarch64-linux-gnu" ENV MESON_OPTS "--cross-file=aarch64-linux-gnu"
ENV RUST_TARGET "aarch64-unknown-linux-gnu"
ENV QEMU_CONFIGURE_OPTS --cross-prefix=aarch64-linux-gnu- ENV QEMU_CONFIGURE_OPTS --cross-prefix=aarch64-linux-gnu-
ENV DEF_TARGET_LIST aarch64-softmmu,aarch64-linux-user ENV DEF_TARGET_LIST aarch64-softmmu,aarch64-linux-user
# As a final step configure the user (if env is defined) # As a final step configure the user (if env is defined)

View File

@ -13,6 +13,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
eatmydata apt-get install --no-install-recommends -y \ eatmydata apt-get install --no-install-recommends -y \
bash \ bash \
bc \ bc \
bindgen \
bison \ bison \
bsdextrautils \ bsdextrautils \
bzip2 \ bzip2 \
@ -53,6 +54,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
python3-venv \ python3-venv \
python3-yaml \ python3-yaml \
rpm2cpio \ rpm2cpio \
rustc \
sed \ sed \
socat \ socat \
sparse \ sparse \
@ -169,6 +171,7 @@ endian = 'little'\n" > /usr/local/share/meson/cross/arm-linux-gnueabihf && \
ENV ABI "arm-linux-gnueabihf" ENV ABI "arm-linux-gnueabihf"
ENV MESON_OPTS "--cross-file=arm-linux-gnueabihf" ENV MESON_OPTS "--cross-file=arm-linux-gnueabihf"
ENV RUST_TARGET "armv7-unknown-linux-gnueabihf"
ENV QEMU_CONFIGURE_OPTS --cross-prefix=arm-linux-gnueabihf- ENV QEMU_CONFIGURE_OPTS --cross-prefix=arm-linux-gnueabihf-
ENV DEF_TARGET_LIST arm-softmmu,arm-linux-user ENV DEF_TARGET_LIST arm-softmmu,arm-linux-user
# As a final step configure the user (if env is defined) # As a final step configure the user (if env is defined)

View File

@ -13,6 +13,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
eatmydata apt-get install --no-install-recommends -y \ eatmydata apt-get install --no-install-recommends -y \
bash \ bash \
bc \ bc \
bindgen \
bison \ bison \
bsdextrautils \ bsdextrautils \
bzip2 \ bzip2 \
@ -53,6 +54,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
python3-venv \ python3-venv \
python3-yaml \ python3-yaml \
rpm2cpio \ rpm2cpio \
rustc \
sed \ sed \
socat \ socat \
sparse \ sparse \
@ -168,6 +170,7 @@ endian = 'little'\n" > /usr/local/share/meson/cross/i686-linux-gnu && \
ENV ABI "i686-linux-gnu" ENV ABI "i686-linux-gnu"
ENV MESON_OPTS "--cross-file=i686-linux-gnu" ENV MESON_OPTS "--cross-file=i686-linux-gnu"
ENV RUST_TARGET "i686-unknown-linux-gnu"
ENV QEMU_CONFIGURE_OPTS --cross-prefix=i686-linux-gnu- ENV QEMU_CONFIGURE_OPTS --cross-prefix=i686-linux-gnu-
ENV DEF_TARGET_LIST x86_64-softmmu,x86_64-linux-user,i386-softmmu,i386-linux-user ENV DEF_TARGET_LIST x86_64-softmmu,x86_64-linux-user,i386-softmmu,i386-linux-user
# As a final step configure the user (if env is defined) # As a final step configure the user (if env is defined)

View File

@ -13,6 +13,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
eatmydata apt-get install --no-install-recommends -y \ eatmydata apt-get install --no-install-recommends -y \
bash \ bash \
bc \ bc \
bindgen \
bison \ bison \
bsdextrautils \ bsdextrautils \
bzip2 \ bzip2 \
@ -53,6 +54,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
python3-venv \ python3-venv \
python3-yaml \ python3-yaml \
rpm2cpio \ rpm2cpio \
rustc \
sed \ sed \
socat \ socat \
sparse \ sparse \
@ -158,6 +160,7 @@ endian = 'little'\n" > /usr/local/share/meson/cross/mips64el-linux-gnuabi64 && \
ENV ABI "mips64el-linux-gnuabi64" ENV ABI "mips64el-linux-gnuabi64"
ENV MESON_OPTS "--cross-file=mips64el-linux-gnuabi64" ENV MESON_OPTS "--cross-file=mips64el-linux-gnuabi64"
ENV RUST_TARGET "mips64el-unknown-linux-gnuabi64"
ENV QEMU_CONFIGURE_OPTS --cross-prefix=mips64el-linux-gnuabi64- ENV QEMU_CONFIGURE_OPTS --cross-prefix=mips64el-linux-gnuabi64-
ENV DEF_TARGET_LIST mips64el-softmmu,mips64el-linux-user ENV DEF_TARGET_LIST mips64el-softmmu,mips64el-linux-user
# As a final step configure the user (if env is defined) # As a final step configure the user (if env is defined)

View File

@ -13,6 +13,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
eatmydata apt-get install --no-install-recommends -y \ eatmydata apt-get install --no-install-recommends -y \
bash \ bash \
bc \ bc \
bindgen \
bison \ bison \
bsdextrautils \ bsdextrautils \
bzip2 \ bzip2 \
@ -53,6 +54,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
python3-venv \ python3-venv \
python3-yaml \ python3-yaml \
rpm2cpio \ rpm2cpio \
rustc \
sed \ sed \
socat \ socat \
sparse \ sparse \
@ -166,6 +168,7 @@ endian = 'little'\n" > /usr/local/share/meson/cross/mipsel-linux-gnu && \
ENV ABI "mipsel-linux-gnu" ENV ABI "mipsel-linux-gnu"
ENV MESON_OPTS "--cross-file=mipsel-linux-gnu" ENV MESON_OPTS "--cross-file=mipsel-linux-gnu"
ENV RUST_TARGET "mipsel-unknown-linux-gnu"
ENV QEMU_CONFIGURE_OPTS --cross-prefix=mipsel-linux-gnu- ENV QEMU_CONFIGURE_OPTS --cross-prefix=mipsel-linux-gnu-
ENV DEF_TARGET_LIST mipsel-softmmu,mipsel-linux-user ENV DEF_TARGET_LIST mipsel-softmmu,mipsel-linux-user
# As a final step configure the user (if env is defined) # As a final step configure the user (if env is defined)

View File

@ -13,6 +13,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
eatmydata apt-get install --no-install-recommends -y \ eatmydata apt-get install --no-install-recommends -y \
bash \ bash \
bc \ bc \
bindgen \
bison \ bison \
bsdextrautils \ bsdextrautils \
bzip2 \ bzip2 \
@ -53,6 +54,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
python3-venv \ python3-venv \
python3-yaml \ python3-yaml \
rpm2cpio \ rpm2cpio \
rustc \
sed \ sed \
socat \ socat \
sparse \ sparse \
@ -168,6 +170,7 @@ endian = 'little'\n" > /usr/local/share/meson/cross/powerpc64le-linux-gnu && \
ENV ABI "powerpc64le-linux-gnu" ENV ABI "powerpc64le-linux-gnu"
ENV MESON_OPTS "--cross-file=powerpc64le-linux-gnu" ENV MESON_OPTS "--cross-file=powerpc64le-linux-gnu"
ENV RUST_TARGET "powerpc64le-unknown-linux-gnu"
ENV QEMU_CONFIGURE_OPTS --cross-prefix=powerpc64le-linux-gnu- ENV QEMU_CONFIGURE_OPTS --cross-prefix=powerpc64le-linux-gnu-
ENV DEF_TARGET_LIST ppc64-softmmu,ppc64-linux-user ENV DEF_TARGET_LIST ppc64-softmmu,ppc64-linux-user
# As a final step configure the user (if env is defined) # As a final step configure the user (if env is defined)

View File

@ -13,6 +13,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
eatmydata apt-get install --no-install-recommends -y \ eatmydata apt-get install --no-install-recommends -y \
bash \ bash \
bc \ bc \
bindgen \
bison \ bison \
bsdextrautils \ bsdextrautils \
bzip2 \ bzip2 \
@ -53,6 +54,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
python3-venv \ python3-venv \
python3-yaml \ python3-yaml \
rpm2cpio \ rpm2cpio \
rustc \
sed \ sed \
socat \ socat \
sparse \ sparse \
@ -167,6 +169,7 @@ endian = 'big'\n" > /usr/local/share/meson/cross/s390x-linux-gnu && \
ENV ABI "s390x-linux-gnu" ENV ABI "s390x-linux-gnu"
ENV MESON_OPTS "--cross-file=s390x-linux-gnu" ENV MESON_OPTS "--cross-file=s390x-linux-gnu"
ENV RUST_TARGET "s390x-unknown-linux-gnu"
ENV QEMU_CONFIGURE_OPTS --cross-prefix=s390x-linux-gnu- ENV QEMU_CONFIGURE_OPTS --cross-prefix=s390x-linux-gnu-
ENV DEF_TARGET_LIST s390x-softmmu,s390x-linux-user ENV DEF_TARGET_LIST s390x-softmmu,s390x-linux-user
# As a final step configure the user (if env is defined) # As a final step configure the user (if env is defined)

View File

@ -13,6 +13,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
eatmydata apt-get install --no-install-recommends -y \ eatmydata apt-get install --no-install-recommends -y \
bash \ bash \
bc \ bc \
bindgen \
bison \ bison \
bsdextrautils \ bsdextrautils \
bzip2 \ bzip2 \
@ -120,6 +121,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
python3-venv \ python3-venv \
python3-yaml \ python3-yaml \
rpm2cpio \ rpm2cpio \
rustc \
sed \ sed \
socat \ socat \
sparse \ sparse \

View File

@ -23,6 +23,7 @@ exec "$@"\n' > /usr/bin/nosync && \
alsa-lib-devel \ alsa-lib-devel \
bash \ bash \
bc \ bc \
bindgen-cli \
bison \ bison \
brlapi-devel \ brlapi-devel \
bzip2 \ bzip2 \
@ -113,6 +114,7 @@ exec "$@"\n' > /usr/bin/nosync && \
python3-sphinx_rtd_theme \ python3-sphinx_rtd_theme \
python3-zombie-imp \ python3-zombie-imp \
rdma-core-devel \ rdma-core-devel \
rust \
sed \ sed \
snappy-devel \ snappy-devel \
socat \ socat \

View File

@ -20,6 +20,7 @@ exec "$@"\n' > /usr/bin/nosync && \
nosync dnf install -y \ nosync dnf install -y \
bash \ bash \
bc \ bc \
bindgen-cli \
bison \ bison \
bzip2 \ bzip2 \
ca-certificates \ ca-certificates \
@ -53,6 +54,7 @@ exec "$@"\n' > /usr/bin/nosync && \
python3-sphinx \ python3-sphinx \
python3-sphinx_rtd_theme \ python3-sphinx_rtd_theme \
python3-zombie-imp \ python3-zombie-imp \
rust \
sed \ sed \
socat \ socat \
sparse \ sparse \

View File

@ -23,6 +23,7 @@ exec "$@"\n' > /usr/bin/nosync && \
alsa-lib-devel \ alsa-lib-devel \
bash \ bash \
bc \ bc \
bindgen-cli \
bison \ bison \
brlapi-devel \ brlapi-devel \
bzip2 \ bzip2 \
@ -113,6 +114,7 @@ exec "$@"\n' > /usr/bin/nosync && \
python3-sphinx_rtd_theme \ python3-sphinx_rtd_theme \
python3-zombie-imp \ python3-zombie-imp \
rdma-core-devel \ rdma-core-devel \
rust \
sed \ sed \
snappy-devel \ snappy-devel \
socat \ socat \

View File

@ -96,6 +96,8 @@ RUN zypper update -y && \
python311-pip \ python311-pip \
python311-setuptools \ python311-setuptools \
rdma-core-devel \ rdma-core-devel \
rust \
rust-bindgen \
sed \ sed \
snappy-devel \ snappy-devel \
sndio-devel \ sndio-devel \

View File

@ -13,6 +13,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
eatmydata apt-get install --no-install-recommends -y \ eatmydata apt-get install --no-install-recommends -y \
bash \ bash \
bc \ bc \
bindgen \
bison \ bison \
bsdextrautils \ bsdextrautils \
bzip2 \ bzip2 \
@ -120,6 +121,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
python3-venv \ python3-venv \
python3-yaml \ python3-yaml \
rpm2cpio \ rpm2cpio \
rustc \
sed \ sed \
socat \ socat \
sparse \ sparse \

View File

@ -3,6 +3,7 @@ packages:
- alsa - alsa
- bash - bash
- bc - bc
- bindgen
- bison - bison
- brlapi - brlapi
- bzip2 - bzip2
@ -101,6 +102,7 @@ packages:
- python3-tomli - python3-tomli
- python3-venv - python3-venv
- rpm2cpio - rpm2cpio
- rust
- sdl2 - sdl2
- sdl2-image - sdl2-image
- sed - sed

View File

@ -61,6 +61,8 @@
"py311-tomli", "py311-tomli",
"python3", "python3",
"rpm2cpio", "rpm2cpio",
"rust",
"rust-bindgen-cli",
"sdl2", "sdl2",
"sdl2_image", "sdl2_image",
"snappy", "snappy",