| # Copyright lowRISC contributors. | |
| # Licensed under the Apache License, Version 2.0, see LICENSE for details. | |
| # SPDX-License-Identifier: Apache-2.0 | |
| FROM ubuntu:22.10 | |
| RUN apt-get update \ | |
| && apt-get install -y --no-install-recommends \ | |
| fonts-freefont-ttf locales locales-all \ | |
| git curl \ | |
| doxygen hugo xsltproc \ | |
| python3 python3-pip \ | |
| gcc libc-dev | |
| ENV LC_ALL "en_US.UTF-8" | |
| ENV LANG "en_US.UTF-8" | |
| ENV LANGUAGE en_US:en | |
| RUN mkdir -p /tools | |
| ############ | |
| ### rust ### | |
| ############ | |
| # Install cargo and mdbook | |
| ENV RUSTUP_HOME "/tools/.rustup" | |
| ENV CARGO_HOME "/tools/.cargo" | |
| ENV PATH "/tools/.cargo/bin:${PATH}" | |
| RUN curl -so- https://sh.rustup.rs | bash -s -- -y \ | |
| && cargo install mdbook | |
| ############## | |
| ### python ### | |
| ############## | |
| # Explicitly updating pip and setuptools is required to have these tools | |
| # properly parse Python-version metadata, which some packages uses to | |
| # specify that an older version of a package must be used for a certain | |
| # Python version. If that information is not read, pip installs the latest | |
| # version, which then fails to run. | |
| COPY python-requirements.txt ./ | |
| RUN python3 -m pip install -U pip "setuptools<66.0.0" \ | |
| && pip3 install -r python-requirements.txt | |
| # Make /tools accessible to everyone | |
| RUN chmod -R a+rwX /tools | |
| # Cleanup | |
| RUN apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* |