Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add 3.11 to images with newer openssl as needed - also update sqlite #93

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 24 additions & 5 deletions rocky8/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -17,25 +17,44 @@ RUN yum -y groupinstall "Development Tools" && \

# Compile newer version of sqlite3
RUN cd ~ && \
wget -q https://sqlite.org/2022/sqlite-autoconf-3400100.tar.gz && \
tar -xzf sqlite-autoconf-3400100.tar.gz && \
cd sqlite-autoconf-3400100 && \
wget -q https://www.sqlite.org/2024/sqlite-autoconf-3450100.tar.gz && \
altendky marked this conversation as resolved.
Show resolved Hide resolved
tar -xzf sqlite-autoconf-3450100.tar.gz && \
cd sqlite-autoconf-3450100 && \
CFLAGS="-DSQLITE_MAX_VARIABLE_NUMBER=500000" ./configure --prefix=/usr/sqlite3 && \
make && \
make install && \
cd ~ && \
rm -rf ~/sqlite-autoconf*

RUN cd ~ && \
yum -y install perl-IPC-Cmd perl-Pod-Html && \
wget -q https://github.com/openssl/openssl/releases/download/openssl-3.0.15/openssl-3.0.15.tar.gz && \
tar -xzf openssl-3.0.15.tar.gz && \
cd openssl-3.0.15 && \
./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl --libdir=lib no-ssl3 no-idea no-dtls no-srp no-comp shared && \
make && \
make install && \
cd ~ && \
rm -rf ~/openssl-3.0.15*

# Compile newer version of python3
RUN yum -y install openssl openssl-devel zlib-devel bzip2 bzip2-devel readline-devel tk-devel libffi-devel xz-devel && \
cd ~ && \
# Set up pyenv \
git clone https://github.com/pyenv/pyenv.git ~/.pyenv && \
pyenv install 3.10 && \
# setup python 3.10 \
PYTHON_CONFIGURE_OPTS="--enable-shared --enable-optimizations" pyenv install 3.10 && \
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we want to be changing 3.10 configure options?

# setup python 3.11 w/ openssl 3 \
PYTHON_CONFIGURE_OPTS="--with-openssl=/usr/local/ssl --with-openssl-rpath=auto --enable-shared --enable-optimizations" pyenv install 3.11 && \
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

review the details of optimizations specifically related to asserts being disabled

pyenv global 3.10 && \
pip install --upgrade pip && \
pip install --no-cache-dir py3createtorrent awscli && \
python3 -c 'import sys; import sqlite3; sys.exit(sqlite3.sqlite_version != "3.40.1")' && \
python3 -c 'import sys; import sqlite3; sys.exit(sqlite3.sqlite_version != "3.45.1")' && \
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we want to be changing the sqlite version in 3.10? i know that it would be more hassle to have two versions. just make sure we plan accordingly.

pyenv global 3.11 && \
pip install --upgrade pip && \
pip install --no-cache-dir py3createtorrent awscli && \
altendky marked this conversation as resolved.
Show resolved Hide resolved
python3 -c 'import sys; import sqlite3; sys.exit(sqlite3.sqlite_version != "3.45.1")' && \
python3 -c 'import sys; import ssl; sys.exit(ssl.OPENSSL_VERSION_INFO != (3,0,0,15,0))' && \
yum clean all

# Add nodejs
Expand Down
28 changes: 23 additions & 5 deletions ubuntu-20.04/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -47,22 +47,40 @@ RUN apt-get update && \

# Compile newer version of sqlite3 \
RUN cd ~ && \
wget -q https://sqlite.org/2022/sqlite-autoconf-3400100.tar.gz && \
tar -xzf sqlite-autoconf-3400100.tar.gz && \
cd sqlite-autoconf-3400100 && \
wget -q https://www.sqlite.org/2024/sqlite-autoconf-3450100.tar.gz && \
tar -xzf sqlite-autoconf-3450100.tar.gz && \
cd sqlite-autoconf-3450100 && \
CFLAGS="-DSQLITE_MAX_VARIABLE_NUMBER=500000" ./configure --prefix=/usr && \
make && \
make install && \
cd ~ && \
rm -rf ~/sqlite-autoconf*

# Compile newer version of openssl \
RUN cd ~ && \
wget -q https://github.com/openssl/openssl/releases/download/openssl-3.0.15/openssl-3.0.15.tar.gz && \
tar -xzf openssl-3.0.15.tar.gz && \
cd openssl-3.0.15 && \
./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl --libdir=lib no-ssl3 no-idea no-dtls no-srp no-comp shared && \
make && \
make install && \
cd ~ && \
rm -rf ~/openssl-3.0.15*

# Set up pyenv \
RUN git clone https://github.com/pyenv/pyenv.git ~/.pyenv && \
pyenv install 3.10 && \
PYTHON_CONFIGURE_OPTS="--enable-shared --enable-optimizations" pyenv install 3.10 && \
PYTHON_CONFIGURE_OPTS="--with-openssl=/usr/local/ssl --with-openssl-rpath=auto --enable-shared --enable-optimizations" pyenv install 3.11 && \
pyenv global 3.10 && \
pip install --upgrade pip && \
pip install --no-cache-dir py3createtorrent && \
python3 -c 'import sys; import sqlite3; sys.exit(sqlite3.sqlite_version != "3.40.1")'
python3 -c 'import sys; import sqlite3; sys.exit(sqlite3.sqlite_version != "3.45.1")' && \
pyenv global 3.11 && \
pip install --upgrade pip && \
pip install --no-cache-dir py3createtorrent awscli && \
python3 -c 'import sys; import sqlite3; sys.exit(sqlite3.sqlite_version != "3.45.1")' && \
python3 -c 'import sys; import ssl; sys.exit(ssl.OPENSSL_VERSION_INFO != (3,0,0,15,0))'


# Add nodejs
ENV NODE_MAJOR=18
Expand Down
11 changes: 6 additions & 5 deletions ubuntu-22.04-risc/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ RUN curl -L -O https://ftpmirror.gnu.org/gnu/binutils/binutils-2.38.tar.gz && \

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 && \
RUN curl -L -O https://www.sqlite.org/2024/sqlite-autoconf-3450100.tar.gz && \
tar -xvzf sqlite-autoconf-3450100.tar.gz && \
cd sqlite-autoconf-3450100 && \
CFLAGS="-DSQLITE_MAX_VARIABLE_NUMBER=500000" ./configure --prefix=/opt/sqlite3 && \
make && \
make install && \
Expand All @@ -42,15 +42,16 @@ ENV PATH="$PYENV_ROOT/shims:$PYENV_ROOT/bin:$PATH"

RUN curl https://pyenv.run | bash

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

RUN pyenv install 3.9
RUN pyenv install 3.10
RUN pyenv install 3.11
RUN pyenv install 3.12
RUN pyenv install 3.13
# enable-optimizations seems to cause compiler error and crash
RUN PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.13

RUN pyenv global 3.13 3.12 3.11 3.10 3.9

Expand Down
15 changes: 11 additions & 4 deletions ubuntu-22.04/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,9 @@ RUN apt-get update && \

# Compile newer version of sqlite3 \
RUN cd ~ && \
wget -q https://sqlite.org/2022/sqlite-autoconf-3400100.tar.gz && \
tar -xzf sqlite-autoconf-3400100.tar.gz && \
cd sqlite-autoconf-3400100 && \
wget -q https://www.sqlite.org/2024/sqlite-autoconf-3450100.tar.gz && \
tar -xzf sqlite-autoconf-3450100.tar.gz && \
cd sqlite-autoconf-3450100 && \
CFLAGS="-DSQLITE_MAX_VARIABLE_NUMBER=500000" ./configure --prefix=/usr && \
make && \
make install && \
Expand All @@ -58,11 +58,18 @@ RUN cd ~ && \

# Set up pyenv
RUN git clone https://github.com/pyenv/pyenv.git ~/.pyenv && \
export PYTHON_CONFIGURE_OPTS="--enable-shared --enable-optimizations" && \
pyenv install 3.10 && \
pyenv install 3.11 && \
pyenv global 3.10 && \
pip install --upgrade pip && \
pip install --no-cache-dir py3createtorrent && \
python3 -c 'import sys; import sqlite3; sys.exit(sqlite3.sqlite_version != "3.40.1")'
python3 -c 'import sys; import sqlite3; sys.exit(sqlite3.sqlite_version != "3.45.1")' && \
pyenv global 3.11 && \
pip install --upgrade pip && \
pip install --no-cache-dir py3createtorrent && \
python3 -c 'import sys; import sqlite3; sys.exit(sqlite3.sqlite_version != "3.45.1")'


# Add nodejs
ENV NODE_MAJOR=18
Expand Down
Loading