[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 39/40] dockerfiles: install bindgen from cargo on Ubuntu 22.04
From: |
Paolo Bonzini |
Subject: |
[PULL 39/40] dockerfiles: install bindgen from cargo on Ubuntu 22.04 |
Date: |
Mon, 4 Nov 2024 18:27:18 +0100 |
Because Ubuntu 22.04 has a very old version of bindgen, that
does not have the important option --allowlist-file, it will
not be able to use --enable-rust out of the box. Instead,
install the latest version of bindgen-cli via "cargo install"
in the container, following QEMU's own documentation.
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
scripts/ci/setup/ubuntu/ubuntu-2204-aarch64.yaml | 1 -
scripts/ci/setup/ubuntu/ubuntu-2204-s390x.yaml | 1 -
tests/docker/dockerfiles/ubuntu2204.docker | 6 +++++-
tests/lcitool/mappings.yml | 4 ++++
tests/lcitool/refresh | 11 ++++++++++-
5 files changed, 19 insertions(+), 4 deletions(-)
diff --git a/scripts/ci/setup/ubuntu/ubuntu-2204-aarch64.yaml
b/scripts/ci/setup/ubuntu/ubuntu-2204-aarch64.yaml
index dd89ba1b3a7..31078f96462 100644
--- a/scripts/ci/setup/ubuntu/ubuntu-2204-aarch64.yaml
+++ b/scripts/ci/setup/ubuntu/ubuntu-2204-aarch64.yaml
@@ -7,7 +7,6 @@
packages:
- bash
- bc
- - bindgen
- bison
- bsdextrautils
- bzip2
diff --git a/scripts/ci/setup/ubuntu/ubuntu-2204-s390x.yaml
b/scripts/ci/setup/ubuntu/ubuntu-2204-s390x.yaml
index 74f14d8d0fe..fdd50d03e88 100644
--- a/scripts/ci/setup/ubuntu/ubuntu-2204-s390x.yaml
+++ b/scripts/ci/setup/ubuntu/ubuntu-2204-s390x.yaml
@@ -7,7 +7,6 @@
packages:
- bash
- bc
- - bindgen
- bison
- bsdextrautils
- bzip2
diff --git a/tests/docker/dockerfiles/ubuntu2204.docker
b/tests/docker/dockerfiles/ubuntu2204.docker
index ce3aa39d4f3..5f8a811788a 100644
--- a/tests/docker/dockerfiles/ubuntu2204.docker
+++ b/tests/docker/dockerfiles/ubuntu2204.docker
@@ -13,7 +13,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
eatmydata apt-get install --no-install-recommends -y \
bash \
bc \
- bindgen \
bison \
bsdextrautils \
bzip2 \
@@ -149,6 +148,11 @@ ENV LANG "en_US.UTF-8"
ENV MAKE "/usr/bin/make"
ENV NINJA "/usr/bin/ninja"
ENV PYTHON "/usr/bin/python3"
+ENV CARGO_HOME=/usr/local/cargo
+ENV PATH=$CARGO_HOME/bin:$PATH
+RUN DEBIAN_FRONTEND=noninteractive eatmydata \
+ apt install -y --no-install-recommends cargo
+RUN cargo install bindgen-cli
# As a final step configure the user (if env is defined)
ARG USER
ARG UID
diff --git a/tests/lcitool/mappings.yml b/tests/lcitool/mappings.yml
index 9c5ac87c1c2..c90b23a00f1 100644
--- a/tests/lcitool/mappings.yml
+++ b/tests/lcitool/mappings.yml
@@ -1,4 +1,8 @@
mappings:
+ # Too old on Ubuntu 22.04; we install it from cargo instead
+ bindgen:
+ Ubuntu2204:
+
flake8:
OpenSUSELeap15:
diff --git a/tests/lcitool/refresh b/tests/lcitool/refresh
index 0f16f4d525c..a46cbbdca41 100755
--- a/tests/lcitool/refresh
+++ b/tests/lcitool/refresh
@@ -137,6 +137,14 @@ fedora_rustup_nightly_extras = [
'RUN /usr/local/cargo/bin/rustup run nightly cargo install bindgen-cli\n',
]
+ubuntu2204_bindgen_extras = [
+ "ENV CARGO_HOME=/usr/local/cargo\n",
+ 'ENV PATH=$CARGO_HOME/bin:$PATH\n',
+ "RUN DEBIAN_FRONTEND=noninteractive eatmydata \\\n",
+ " apt install -y --no-install-recommends cargo\n",
+ 'RUN cargo install bindgen-cli\n',
+]
+
def cross_build(prefix, targets):
conf = "ENV QEMU_CONFIGURE_OPTS --cross-prefix=%s\n" % (prefix)
targets = "ENV DEF_TARGET_LIST %s\n" % (targets)
@@ -157,7 +165,8 @@ try:
trailer="".join(debian12_extras))
generate_dockerfile("fedora", "fedora-40")
generate_dockerfile("opensuse-leap", "opensuse-leap-15")
- generate_dockerfile("ubuntu2204", "ubuntu-2204")
+ generate_dockerfile("ubuntu2204", "ubuntu-2204",
+ trailer="".join(ubuntu2204_bindgen_extras))
#
# Non-fatal Rust-enabled build
--
2.47.0
- [PULL 32/40] rust: introduce alternative implementation of offset_of!, (continued)
- [PULL 34/40] rust: clean up detection of the language, Paolo Bonzini, 2024/11/04
- [PULL 35/40] rust: allow version 1.63.0 of rustc, Paolo Bonzini, 2024/11/04
- [PULL 36/40] rust: do not use --generate-cstr, Paolo Bonzini, 2024/11/04
- [PULL 38/40] rust: make rustfmt optional, Paolo Bonzini, 2024/11/04
- [PULL 37/40] rust: allow older version of bindgen, Paolo Bonzini, 2024/11/04
- [PULL 40/40] ci: enable rust in the Debian and Ubuntu system build job, Paolo Bonzini, 2024/11/04
- [PULL 39/40] dockerfiles: install bindgen from cargo on Ubuntu 22.04,
Paolo Bonzini <=
- Re: [PULL 00/40] Rust changes for QEMU 9.2 soft freeze, Peter Maydell, 2024/11/06