mirror of https://github.com/xemu-project/xemu.git
dockerfiles: install bindgen from cargo on Ubuntu 22.04
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>
This commit is contained in:
parent
5b1b5a8ae4
commit
951f71ad67
|
@ -7,7 +7,6 @@
|
||||||
packages:
|
packages:
|
||||||
- bash
|
- bash
|
||||||
- bc
|
- bc
|
||||||
- bindgen
|
|
||||||
- bison
|
- bison
|
||||||
- bsdextrautils
|
- bsdextrautils
|
||||||
- bzip2
|
- bzip2
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
packages:
|
packages:
|
||||||
- bash
|
- bash
|
||||||
- bc
|
- bc
|
||||||
- bindgen
|
|
||||||
- bison
|
- bison
|
||||||
- bsdextrautils
|
- bsdextrautils
|
||||||
- bzip2
|
- bzip2
|
||||||
|
|
|
@ -13,7 +13,6 @@ 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 \
|
||||||
|
@ -150,6 +149,11 @@ ENV LANG "en_US.UTF-8"
|
||||||
ENV MAKE "/usr/bin/make"
|
ENV MAKE "/usr/bin/make"
|
||||||
ENV NINJA "/usr/bin/ninja"
|
ENV NINJA "/usr/bin/ninja"
|
||||||
ENV PYTHON "/usr/bin/python3"
|
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)
|
# As a final step configure the user (if env is defined)
|
||||||
ARG USER
|
ARG USER
|
||||||
ARG UID
|
ARG UID
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
mappings:
|
mappings:
|
||||||
|
# Too old on Ubuntu 22.04; we install it from cargo instead
|
||||||
|
bindgen:
|
||||||
|
Ubuntu2204:
|
||||||
|
|
||||||
flake8:
|
flake8:
|
||||||
OpenSUSELeap15:
|
OpenSUSELeap15:
|
||||||
|
|
||||||
|
|
|
@ -137,6 +137,14 @@ fedora_rustup_nightly_extras = [
|
||||||
'RUN /usr/local/cargo/bin/rustup run nightly cargo install bindgen-cli\n',
|
'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):
|
def cross_build(prefix, targets):
|
||||||
conf = "ENV QEMU_CONFIGURE_OPTS --cross-prefix=%s\n" % (prefix)
|
conf = "ENV QEMU_CONFIGURE_OPTS --cross-prefix=%s\n" % (prefix)
|
||||||
targets = "ENV DEF_TARGET_LIST %s\n" % (targets)
|
targets = "ENV DEF_TARGET_LIST %s\n" % (targets)
|
||||||
|
@ -157,7 +165,8 @@ try:
|
||||||
trailer="".join(debian12_extras))
|
trailer="".join(debian12_extras))
|
||||||
generate_dockerfile("fedora", "fedora-40")
|
generate_dockerfile("fedora", "fedora-40")
|
||||||
generate_dockerfile("opensuse-leap", "opensuse-leap-15")
|
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
|
# Non-fatal Rust-enabled build
|
||||||
|
|
Loading…
Reference in New Issue