added experimental sage image
This commit is contained in:
36
.gitea/workflows/build-jupyter-ganymede.yaml
Normal file
36
.gitea/workflows/build-jupyter-ganymede.yaml
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
name: CI
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ master ]
|
||||||
|
paths:
|
||||||
|
- 'jupyter-ganymede/*'
|
||||||
|
- '.gitea/workflows/build-jupyter-ganymede.yaml'
|
||||||
|
jobs:
|
||||||
|
"Build Jupyter Ganymede docker images":
|
||||||
|
runs-on: woryzen
|
||||||
|
steps:
|
||||||
|
-
|
||||||
|
name: Set up QEMU
|
||||||
|
uses: docker/setup-qemu-action@v3
|
||||||
|
-
|
||||||
|
name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
with:
|
||||||
|
driver: docker-container
|
||||||
|
-
|
||||||
|
name: Login to Gitea container registry
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
registry: gitea.woggioni.net
|
||||||
|
username: woggioni
|
||||||
|
password: ${{ secrets.PUBLISHER_TOKEN }}
|
||||||
|
-
|
||||||
|
name: Build and push jupyter-ganymede image
|
||||||
|
uses: docker/build-push-action@v5.3.0
|
||||||
|
with:
|
||||||
|
context: "{{defaultContext}}:jupyter-ganymede"
|
||||||
|
platforms: linux/amd64,linux/arm64
|
||||||
|
push: true
|
||||||
|
tags: gitea.woggioni.net/woggioni/jupyter-ganymede:latest
|
||||||
|
cache-from: type=registry,ref=gitea.woggioni.net/woggioni/jupyter-ganymede:buildx
|
||||||
|
cache-to: type=registry,mode=max,compression=zstd,image-manifest=true,oci-mediatypes=true,ref=gitea.woggioni.net/woggioni/jupyter-ganymede:buildx
|
@@ -2,8 +2,11 @@ name: CI
|
|||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [ master ]
|
branches: [ master ]
|
||||||
|
paths:
|
||||||
|
- 'jupyter-python/*'
|
||||||
|
- '.gitea/workflows/build-jupyter-python.yaml'
|
||||||
jobs:
|
jobs:
|
||||||
"Build docker images":
|
"Build Jupyter python Docker images":
|
||||||
runs-on: woryzen
|
runs-on: woryzen
|
||||||
steps:
|
steps:
|
||||||
-
|
-
|
||||||
@@ -30,16 +33,4 @@ jobs:
|
|||||||
push: true
|
push: true
|
||||||
tags: gitea.woggioni.net/woggioni/jupyter-python:latest
|
tags: gitea.woggioni.net/woggioni/jupyter-python:latest
|
||||||
cache-from: type=registry,ref=gitea.woggioni.net/woggioni/jupyter-python:buildx
|
cache-from: type=registry,ref=gitea.woggioni.net/woggioni/jupyter-python:buildx
|
||||||
cache-to: type=registry,mode=max,compression=zstd,image-manifest=true,oci-mediatypes=true,ref=gitea.woggioni.net/woggioni/jupyter-python:buildx
|
cache-to: type=registry,mode=max,compression=zstd,image-manifest=true,oci-mediatypes=true,ref=gitea.woggioni.net/woggioni/jupyter-python:buildx
|
||||||
|
|
||||||
-
|
|
||||||
name: Build and push jupyter-ganymede image
|
|
||||||
uses: docker/build-push-action@v5.3.0
|
|
||||||
with:
|
|
||||||
context: "{{defaultContext}}:jupyter-ganymede"
|
|
||||||
platforms: linux/amd64
|
|
||||||
push: true
|
|
||||||
tags: gitea.woggioni.net/woggioni/jupyter-ganymede:latest
|
|
||||||
cache-from: type=registry,ref=gitea.woggioni.net/woggioni/jupyter-ganymede:buildx
|
|
||||||
cache-to: type=registry,mode=max,compression=zstd,image-manifest=true,oci-mediatypes=true,ref=gitea.woggioni.net/woggioni/jupyter-ganymede:buildx
|
|
||||||
|
|
36
.gitea/workflows/build-jupyter-sage.yaml
Normal file
36
.gitea/workflows/build-jupyter-sage.yaml
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
name: CI
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ master ]
|
||||||
|
paths:
|
||||||
|
- 'jupyter-sage/*'
|
||||||
|
- '.gitea/workflows/build-jupyter-sage.yaml'
|
||||||
|
jobs:
|
||||||
|
"Build Jupyter Sage docker images":
|
||||||
|
runs-on: woryzen
|
||||||
|
steps:
|
||||||
|
-
|
||||||
|
name: Set up QEMU
|
||||||
|
uses: docker/setup-qemu-action@v3
|
||||||
|
-
|
||||||
|
name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
with:
|
||||||
|
driver: docker-container
|
||||||
|
-
|
||||||
|
name: Login to Gitea container registry
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
registry: gitea.woggioni.net
|
||||||
|
username: woggioni
|
||||||
|
password: ${{ secrets.PUBLISHER_TOKEN }}
|
||||||
|
-
|
||||||
|
name: Build and push jupyter-sage image
|
||||||
|
uses: docker/build-push-action@v5.3.0
|
||||||
|
with:
|
||||||
|
context: "{{defaultContext}}:jupyter-sage"
|
||||||
|
platforms: linux/amd64,linux/arm64
|
||||||
|
push: true
|
||||||
|
tags: gitea.woggioni.net/woggioni/jupyter-sage:latest
|
||||||
|
cache-from: type=registry,ref=gitea.woggioni.net/woggioni/jupyter-sage:buildx
|
||||||
|
cache-to: type=registry,mode=max,compression=zstd,image-manifest=true,oci-mediatypes=true,ref=gitea.woggioni.net/woggioni/jupyter-sage:buildx
|
36
jupyter-sage/Dockerfile
Normal file
36
jupyter-sage/Dockerfile
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
FROM debian:latest
|
||||||
|
RUN apt-get update && apt-get upgrade
|
||||||
|
RUN apt-get install bc binutils bzip2 ca-certificates cliquer cmake curl \
|
||||||
|
ecl eclib-tools fflas-ffpack g++ gap gcc gengetopt gfan gfortran \
|
||||||
|
glpk-utils gmp-ecm lcalc libatomic-ops-dev libboost-dev \
|
||||||
|
libbraiding-dev libbrial-dev libbrial-groebner-dev libbz2-dev \
|
||||||
|
libcdd-dev libcdd-tools libcliquer-dev libcurl4-openssl-dev libec-dev \
|
||||||
|
libecm-dev libffi-dev libflint-dev libfplll-dev libfreetype-dev \
|
||||||
|
libgap-dev libgc-dev libgd-dev libgf2x-dev libgiac-dev libgivaro-dev \
|
||||||
|
libglpk-dev libgmp-dev libgsl-dev libhomfly-dev libiml-dev \
|
||||||
|
liblfunction-dev liblinbox-dev liblrcalc-dev liblzma-dev libm4ri-dev \
|
||||||
|
libm4rie-dev libmpc-dev libmpfi-dev libmpfr-dev libncurses5-dev \
|
||||||
|
libntl-dev libopenblas-dev libpari-dev libplanarity-dev libppl-dev \
|
||||||
|
libprimesieve-dev libpython3-dev libqhull-dev libreadline-dev \
|
||||||
|
librw-dev libsingular4-dev libsqlite3-dev libssl-dev \
|
||||||
|
libsuitesparse-dev libsymmetrica2-dev libz-dev libzmq3-dev m4 make \
|
||||||
|
maxima maxima-sage meson nauty ninja-build openssl palp pari-doc \
|
||||||
|
pari-elldata pari-galdata pari-galpol pari-gp2c pari-seadata patch \
|
||||||
|
patchelf perl pkg-config planarity ppl-dev python3 python3-setuptools \
|
||||||
|
python3-venv singular singular-doc sqlite3 sympow tachyon tar texinfo \
|
||||||
|
tox xcas xz-utils git
|
||||||
|
RUN apt-get install default-jdk dvipng ffmpeg fonts-freefont-otf \
|
||||||
|
imagemagick latexmk libavdevice-dev libjpeg-dev pandoc tex-gyre \
|
||||||
|
texlive-fonts-recommended texlive-lang-cyrillic texlive-lang-english \
|
||||||
|
texlive-lang-european texlive-lang-french texlive-lang-german \
|
||||||
|
texlive-lang-italian texlive-lang-japanese texlive-lang-polish \
|
||||||
|
texlive-lang-portuguese texlive-lang-spanish texlive-latex-extra \
|
||||||
|
texlive-luatex texlive-xetex xindy
|
||||||
|
RUN useradd jovyan -u 1000 -s /bin/bash -m -h /home/jovyan
|
||||||
|
USER jovyan
|
||||||
|
WORKDIR /home/jovyan
|
||||||
|
COPY build.sh build.sh
|
||||||
|
RUN git clone -c core.symlinks=true --filter blob:none \
|
||||||
|
--origin upstream --branch master --tags \
|
||||||
|
https://github.com/sagemath/sage.git
|
||||||
|
RUN export srcdir=/home/jovyan/sage source build.sh && prepare && build
|
51
jupyter-sage/build.sh
Normal file
51
jupyter-sage/build.sh
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
pkgs=(standard
|
||||||
|
bliss
|
||||||
|
coxeter3
|
||||||
|
mcqd
|
||||||
|
meataxe
|
||||||
|
sirocco
|
||||||
|
tdlib)
|
||||||
|
|
||||||
|
prepare(){
|
||||||
|
cd sage
|
||||||
|
# use correct latte-count binary name
|
||||||
|
# patch -p1 -i ../latte-count.patch
|
||||||
|
# update to tdlib 0.9 (Fedora)
|
||||||
|
# patch -p1 -i ../sagemath-tdlib-0.9.patch
|
||||||
|
# Adapt to Singular changes
|
||||||
|
# patch -p1 -i ../singular-4.4.patch
|
||||||
|
# Fix build with GCC 14
|
||||||
|
# git cherry-pick -n e87fd8466d10c21d8f16bd08187c11b4dc116020
|
||||||
|
# git cherry-pick -n cec595ef953bb9e180aadee8583ad5a2fa5577d3
|
||||||
|
./bootstrap
|
||||||
|
}
|
||||||
|
|
||||||
|
build() {
|
||||||
|
export SAGE_NUM_THREADS=$(($(nproc)/2))
|
||||||
|
export PYTHONPATH="$PWD"/sage/pkgs/sage-setup
|
||||||
|
|
||||||
|
for _pkg in ${_pkgs[@]}; do
|
||||||
|
cd "$srcdir"/sage/pkgs/sagemath-$_pkg
|
||||||
|
python setup.py build
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
for _pkg in ${_pkgs[@]}; do
|
||||||
|
cd "$srcdir"/sage/pkgs/sagemath-$_pkg
|
||||||
|
python setup.py install --root="$pkgdir" --optimize=1
|
||||||
|
done
|
||||||
|
|
||||||
|
# fix symlinks to assets
|
||||||
|
# _pythonpath=`python -c "from sysconfig import get_path; print(get_path('platlib'))"`
|
||||||
|
# for _i in $(ls "$srcdir"/sage/src/sage/ext_data/notebook-ipython); do
|
||||||
|
# rm "$pkgdir"/usr/share/jupyter/kernels/sagemath/$_i
|
||||||
|
# ln -s $_pythonpath/sage/ext_data/notebook-ipython/$_i "$pkgdir"/usr/share/jupyter/kernels/sagemath/
|
||||||
|
# done
|
||||||
|
|
||||||
|
# adjust threejs version
|
||||||
|
# rm "$pkgdir"$_pythonpath/sage/ext_data/threejs/threejs-version.txt
|
||||||
|
# ln -s /usr/share/threejs-sage/version "$pkgdir"$_pythonpath/sage/ext_data/threejs/threejs-version.txt
|
||||||
|
}
|
Reference in New Issue
Block a user