tox.ini update: Fix breakage caused by src/ext move, add 32-bit linux environments and other architectures supported by docker
mkoeppe opened this issue · 35 comments
#29053 added tox.ini to support testing the sage distribution in isolated environments via docker.
In 9.1.beta6, the generated docker files do not work due to #21785.
This ticket fixes it and also adds linux environments for various other architectures supported by docker (see https://github.com/docker-library/official-images#architectures-other-than-amd64).
Examples:
$ tox -e docker-debian-buster-standard-i386
$ tox -e docker-ubuntu-bionic-standard-arm64
$ tox -e docker-ubuntu-bionic-minimal-armhf
$ tox -e docker-fedora-31-standard-arm64v8 # Docker for Mac only
$ tox -e docker-ubuntu-latest-standard-s390x # Docker for Mac only
(The last two work with macOS Docker Desktop because it has binfmt_misc with qemu enabled.)
See also: https://trac.sagemath.org/wiki/ExoticPorts
Resources:
- How to Build and Run ARM Docker Containers on x86 Hosts · MatchboxBlog - https://matchboxdorry.gitbooks.io/matchboxblog/content/blogs/build_and_run_arm_images.html
- Cross Building and Running Multi-Arch Docker Images – Micheal Waltz – DevOps Engineer - https://www.ecliptik.com/Cross-Building-and-Running-Multi-Arch-Docker-Images/
- multiarch/qemu-user-static - Docker Hub - https://hub.docker.com/r/multiarch/qemu-user-static/
- multiarch/ubuntu-core - Docker Hub - https://hub.docker.com/r/multiarch/ubuntu-core/
CC: @vbraun @sagetrac-tmonteil @kiwifb @dimpase
Component: porting
Author: Matthias Koeppe
Branch/Commit: 7f122bd
Reviewer: Volker Braun
Issue created by migration from https://trac.sagemath.org/ticket/29143
Description changed:
---
+++
@@ -2,3 +2,4 @@
This ticket adds some 32-bit linux environments such as https://hub.docker.com/r/i386/ubuntu/
+https://github.com/docker-library/official-images#architectures-other-than-amd64Last 10 new commits:
98edff6 | Add build/pkgs/gfortran/distros/fedora.txt |
843ca76 | build/pkgs/fedora.txt: Add python3 |
bd6a545 | tox.ini: Add debian stretch, put sid last |
23c6334 | build/pkgs/openblas/distros/arch.txt: Add lapack, cblas |
fca6654 | tox.ini: Add toxenvs local-homebrew-macos-minimal, local-homebrew-macos-standard |
e0e8a4c | tox.ini [local-homebrew]: Fixup PATH, PKG_CONFIG_PATH, set LDFLAGS, CPPFLAGS; [local-direct]: New |
16ca88f | tox.ini: Use {envlogdir}; use ln -sf |
6a1803d | tox.ini [local]: First build the base-toolchain |
4b72987 | tox.ini [local-homebrew]: Set PATH earlier and set ACLOCAL_PATH for bootstrapping |
839d6fb | tox.ini: Add other archs supported by docker |
Description changed:
---
+++
@@ -1,5 +1,13 @@
#29053 adds `tox.ini` to support testing the sage distribution in isolated environments via docker.
-This ticket adds some 32-bit linux environments such as https://hub.docker.com/r/i386/ubuntu/
+This ticket adds linux environments for various other architectures supported by docker (see https://github.com/docker-library/official-images#architectures-other-than-amd64).
-https://github.com/docker-library/official-images#architectures-other-than-amd64
+Examples:
+
+```
+$ tox -e docker-fedora-31-standard-arm64v8
+$ tox -e docker-debian-buster-standard-i386
+$ tox -e docker-ubuntu-latest-standard-s390x
+```
+
+}}}Author: Matthias Koeppe
Branch pushed to git repo; I updated commit sha1. New commits:
67e14ce | fixup for llocal |
This works on macOS because it is running everything in a virtualbox.
I haven't succeeded in getting it to work on github actions yet. last attempt: https://github.com/mkoeppe/sage/runs/422184737?check_suite_focus=true
Description changed:
---
+++
@@ -10,4 +10,3 @@
$ tox -e docker-ubuntu-latest-standard-s390x
```
-}}}Description changed:
---
+++
@@ -10,3 +10,9 @@
$ tox -e docker-ubuntu-latest-standard-s390x
```
+This works out of the box with macOS Docker Desktop because it has `binfmt_misc` with `qemu` enabled.
+- How to Build and Run ARM Docker Containers on x86 Hosts · MatchboxBlog - https://matchboxdorry.gitbooks.io/matchboxblog/content/blogs/build_and_run_arm_images.html
+- Cross Building and Running Multi-Arch Docker Images – Micheal Waltz – DevOps Engineer - https://www.ecliptik.com/Cross-Building-and-Running-Multi-Arch-Docker-Images/
+- multiarch/qemu-user-static - Docker Hub - https://hub.docker.com/r/multiarch/qemu-user-static/
+- multiarch/ubuntu-core - Docker Hub - https://hub.docker.com/r/multiarch/ubuntu-core/
+Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
2141b75 | Merge tag '9.1.beta3' into t/29104/tox-homebrew |
2b0a25e | tox.ini: Add other archs supported by docker |
e3f832c | fixup for llocal |
b5361e2 | tox.ini: Restructure docker image:tag construction, add multiarch for Linux Docker |
Description changed:
---
+++
@@ -5,9 +5,11 @@
Examples:
```
-$ tox -e docker-fedora-31-standard-arm64v8
$ tox -e docker-debian-buster-standard-i386
-$ tox -e docker-ubuntu-latest-standard-s390x
+$ tox -e docker-ubuntu-bionic-standard-arm64
+$ tox -e docker-ubuntu-bionic-minimal-armhf
+$ tox -e docker-fedora-31-standard-arm64v8 # Docker for Mac only
+$ tox -e docker-ubuntu-latest-standard-s390x # Docker for Mac only
```
This works out of the box with macOS Docker Desktop because it has `binfmt_misc` with `qemu` enabled.Description changed:
---
+++
@@ -12,7 +12,13 @@
$ tox -e docker-ubuntu-latest-standard-s390x # Docker for Mac only
```
-This works out of the box with macOS Docker Desktop because it has `binfmt_misc` with `qemu` enabled.
+(The last two work with macOS Docker Desktop because it has `binfmt_misc` with `qemu` enabled.)
+
+The branch is on top of #29104 (homebrew).
+
+---
+
+Resources:
- How to Build and Run ARM Docker Containers on x86 Hosts · MatchboxBlog - https://matchboxdorry.gitbooks.io/matchboxblog/content/blogs/build_and_run_arm_images.html
- Cross Building and Running Multi-Arch Docker Images – Micheal Waltz – DevOps Engineer - https://www.ecliptik.com/Cross-Building-and-Running-Multi-Arch-Docker-Images/
- multiarch/qemu-user-static - Docker Hub - https://hub.docker.com/r/multiarch/qemu-user-static/Tests run at https://github.com/mkoeppe/sage/actions/runs/35630769
Description changed:
---
+++
@@ -16,6 +16,8 @@
The branch is on top of #29104 (homebrew).
+See also: https://trac.sagemath.org/wiki/ExoticPorts
+
---
Resources:Branch pushed to git repo; I updated commit sha1. New commits:
4350d0a | tox.ini: Add raspbian |
Also this ticket needs review and would facilitate testing on 32bit x86 and ARM
Branch pushed to git repo; I updated commit sha1. New commits:
59e1d6f | Merge tag '9.1.beta4' into t/29143/add_to_tox_ini_some_32_bit_linux_environments |
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
749f83e | tox.ini: Add other archs supported by docker |
e941bd5 | fixup for llocal |
2441fe9 | tox.ini: Restructure docker image:tag construction, add multiarch for Linux Docker |
2f057cb | tox.ini: Add raspbian |
7f122bd | build/bin/write-dockerfile.sh: src/ext has moved and is no longer needed for the configure phase |
Description changed:
---
+++
@@ -1,6 +1,8 @@
-#29053 adds `tox.ini` to support testing the sage distribution in isolated environments via docker.
+#29053 added `tox.ini` to support testing the sage distribution in isolated environments via docker.
-This ticket adds linux environments for various other architectures supported by docker (see https://github.com/docker-library/official-images#architectures-other-than-amd64).
+In 9.1.beta6, the generated docker files do not work due to #21785.
+
+This ticket fixes it and also adds linux environments for various other architectures supported by docker (see https://github.com/docker-library/official-images#architectures-other-than-amd64).
Examples:
@@ -14,8 +16,6 @@
(The last two work with macOS Docker Desktop because it has `binfmt_misc` with `qemu` enabled.)
-The branch is on top of #29104 (homebrew).
-
See also: https://trac.sagemath.org/wiki/ExoticPorts
---Reviewer: Volker Braun
Thanks!
Changed branch from u/mkoeppe/add_to_tox_ini_some_32_bit_linux_environments to 7f122bd