Skip to content

Commit

Permalink
Merge pull request #70 from Chia-Network/sqlite_for_risc
Browse files Browse the repository at this point in the history
build sqlite for risc python installs
  • Loading branch information
altendky authored Sep 11, 2024
2 parents 14c66a3 + fcff9a3 commit 3dd40a2
Showing 1 changed file with 42 additions and 14 deletions.
56 changes: 42 additions & 14 deletions ubuntu-22.04-risc/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,36 +1,64 @@
FROM riscv64/ubuntu:focal as base

RUN apt-get update && \
DEBIAN_FRONTEND="noninteractive" apt-get install -y build-essential cmake curl wget git make pkg-config libgmp-dev libboost-dev libssl-dev zlib1g zlib1g-dev libreadline-dev libffi-dev && \
DEBIAN_FRONTEND="noninteractive" apt-get install -y tree build-essential cmake curl wget git make pkg-config libgmp-dev libboost-dev libssl-dev zlib1g zlib1g-dev libreadline-dev libffi-dev && \
rm -rf /var/lib/apt/lists/*

FROM base as ld

RUN curl -L -O https://ftpmirror.gnu.org/gnu/binutils/binutils-2.38.tar.gz && \
tar -xvzf binutils-2.38.tar.gz && \
cd binutils-2.38 && \
./configure --enable-ld --disable-gas --disable-gmp --disable-gold --disable-gprof --prefix=/ld/usr && \
./configure --enable-ld --disable-gas --disable-gmp --disable-gold --disable-gprof --prefix=/opt/ld && \
make && \
make install && \
ls -la /ld/usr/bin && \
ld --version
tree /opt && \
/opt/ld/bin/ld --version

FROM base as sqlite

RUN curl -L -O https://sqlite.org/2022/sqlite-autoconf-3400100.tar.gz && \
tar -xvzf sqlite-autoconf-3400100.tar.gz && \
cd sqlite-autoconf-3400100 && \
CFLAGS="-DSQLITE_MAX_VARIABLE_NUMBER=500000" ./configure --prefix=/opt/sqlite3 && \
make && \
make install && \
tree /opt && \
/opt/sqlite3/bin/sqlite3 -version

FROM base as final

COPY --from=ld /ld/usr /usr
RUN ls -la /usr/bin && \
ld --version
COPY --from=ld /opt/ld /usr

COPY --from=sqlite /opt/sqlite3 /opt/sqlite3

RUN tree /opt && \
ld --version && \
/opt/sqlite3/bin/sqlite3 -version

ENV PYENV_ROOT=/root/.pyenv
ENV PATH="$PYENV_ROOT/shims:$PYENV_ROOT/bin:$PATH"

RUN curl https://pyenv.run | bash && \
PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install --skip-existing 3.8 && \
PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install --skip-existing 3.9 && \
PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install --skip-existing 3.10 && \
PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install --skip-existing 3.11 && \
PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install --skip-existing 3.12 && \
pyenv global 3.12
RUN curl https://pyenv.run | bash

ARG PYTHON_CONFIGURE_OPTS="--enable-shared"
ARG LDFLAGS="-Wl,-rpath,/opt/sqlite3/lib -L/opt/sqlite3/lib -lsqlite3"
ARG CPPFLAGS="-I/opt/sqlite3/include"

RUN pyenv install 3.8
RUN pyenv install 3.9
RUN pyenv install 3.10
RUN pyenv install 3.11
RUN pyenv install 3.12

RUN pyenv global 3.12 3.11 3.10 3.9 3.8

# make sure sqlite is loaded from the expected path
RUN ldd $(python3.8 -c 'import _sqlite3; print(_sqlite3.__file__)') | grep /opt/sqlite3/lib/
RUN ldd $(python3.9 -c 'import _sqlite3; print(_sqlite3.__file__)') | grep /opt/sqlite3/lib/
RUN ldd $(python3.10 -c 'import _sqlite3; print(_sqlite3.__file__)') | grep /opt/sqlite3/lib/
RUN ldd $(python3.11 -c 'import _sqlite3; print(_sqlite3.__file__)') | grep /opt/sqlite3/lib/
RUN ldd $(python3.12 -c 'import _sqlite3; print(_sqlite3.__file__)') | grep /opt/sqlite3/lib/

ENV PATH="/root/.cargo/bin:${PATH}"
ENV RUST_BACKTRACE=1
Expand Down

0 comments on commit 3dd40a2

Please sign in to comment.