This commit updates the version of manylinux base images to use custom
flavor having Python 3.8. See https://github.com/scikit-build/manylinux#available-branches
Python 3.8.0a2 was initially added to upstream manylinux
after integrating https://github.com/pypa/manylinux/pull/273.
But considering that Python 3.8 is still an alpha release and that
(1) the associated ABI is not yet stable and (2) incompatibilities are
expected between wheels generated for alpha/beta/rc and final version
of python 3.8.0, the manylinux maintainers decided to revert the update.
The purpose of this commit is to rebuild the dockcross images against
the latest manylinux images including Python 3.7 and also updated
setuptools, autitwheel, git, curl, ...
Note that python 3.3 was removed from the image.
$ docker run -ti --rm quay.io/pypa/manylinux1_x86_64 bash -c "ls -1 /opt/python/"
cp27-cp27m
cp27-cp27mu
cp34-cp34m
cp35-cp35m
cp36-cp36m
cp37-cp37m
* Consistently use "/usr/src" as download and staging area
* install-cmake-binary: Introduce CMAKE_ROOT var
* build-and-install-openssl: Remove redundant -fPIC flag, download openssl sources using "wget"
This commit is a follow up of b7028af (entrypoint.sh: Update help
text so that current image name is used)
It ensures that the suggested script in the help text doesn't include ":"
in its name.
Assuming DEFAULT_DOCKCROSS_IMAGE is set to "dockcross/imagename:latest"
Instead of suggesting:
[...]
# docker run --rm dockcross/imagename:latest > dockcross-imagename:latest
# chmod +x dockcross-imagename:latest
[...]
it will now suggest
[...]
# docker run --rm dockcross/imagename:latest > dockcross-imagename-latest
# chmod +x dockcross-imagename-latest
[...]
xref https://github.com/dockbuild/dockbuild/issues/30
[ci skip]
This commit fixes the following error specific to AUFS:
/dockcross/entrypoint.sh: line 47: /usr/bin/gosu: Text file busy
/dockcross/entrypoint.sh: line 47: /usr/bin/gosu: Success
Thanks @sobolevn
See https://github.com/moby/moby/issues/13594#issuecomment-262441366
Backported from thewtex/docker-centos-build@26f7fd3
CentOS 5 is no longer supported and requests to obtain information from
the mirrors fails. However, the packages are still available on the
"Vault" mirrors.
Comment out the `mirrorlist` entries and set `enabled=0` in
CentOS-Base.repo, add entries for 5.11 in CentOS-Vault.repo and mark
them `enabled=1`.
This commit will fix installation of packages like nose that would otherwise
fail to install with error like the following:
Installing collected packages: nose
Exception:
Traceback (most recent call last):
[...]
Permission denied: '/opt/_internal/cpython-2.7.11-ucs2/man'
This commit will avoid the following error from being reported
on MacOSX:
```
docker run --rm dockcross/linux-armv7 > ./dockcross-linux-armv7
chmod +x ./dockcross-linux-armv7
./dockcross-linux-armv7 bash -c '$CC test/C/hello.c -o hello_arm'
grep: /proc/version: No such file or directory
grep: /proc/version: No such file or directory
```
Reported-by: Chris Warth <cswarth@gmail.com>
This commit follows up on 2e71db2 (dockcross: Ignore deletion error
when running in unprivileged LXC container) by hiding the message
only when (a) the command output matches the expected error message
and (b) is executed on CircleCI.
Doing so will avoid adding "noise" to log of service like CircleCI
that are effectively running docker in unprivileged LXC container.
See #50
As recommended in by CircleCI, explicitly specify the "latest"
tag. This will be important when we will start versioning our images.
Copied from CircleCI documentation [1]:
"Make sure you tag the image you use in the FROM command in your
Dockerfile, even if it is the default “latest” tag. Otherwise, Docker
will pull down all tags for the image you specify. This will create
significant performance problems because the save/load strategy described
above only caches the image layers (and thus tags) that you specify in
the docker save command, so other tags will be re-pulled on every build
if a tag is not specified in the FROM command."
[1] https://circleci.com/docs/docker/#caching-docker-layers
To workaround, CircleCI limitation [1]:
"Please note that since we do not support parallel deployment, specifying
‘parallel:true’ in the deployment phase will cause an error."
This commit moves the deployment step as the last action of the test
step. Doing so will ensure, every container will take care of pushing
images it was responsible to build.
[1] https://circleci.com/docs/parallel-manual-setup/#simple-example
* style: Rename TASK to STEP
* do not pull base image after it was copied from node0 and loaded.
It caused the current Dockerfile to be out-of-sync with the current image.
* do not pull images after loading the downloaded and up-to-date
base.tar. It was overwriting the base.tar downloaded and loaded.
* save debian:jessie into base.tar
* use "time" command to help identify long running operation
* rename marker file from "BASE_READY" to "BASE_AVAILABLE"
* build base image only if needed.
This commit updates the "browser-asmjs" images to avoid systematic
rebuild of emscripten sdk. Instead, it introduces dependency on the
image maintained by @trzeci
Note also:
* emscripten sdk updated from 1.36.7 to 1.36.14
* symlinking of "/bin/bash" as "/bin/sh" is reverted. This ensures other
images including file like "common.debian" and relying on standard "sh"
behavior will work as expected.
* workaround associated with CMakeForceCompiler has been removed from
Dockerfile. Emscripten as been fixed.
See https://github.com/kripken/emscripten/pull/4477
* we will revisit once official images are available.
See https://github.com/kripken/emscripten/issues/4682
To accommodate the requirements associated with x86 and x64 images, the
command building OpenSSL and CMake became overly complex and hard to
maintain.
This commit has multiple purposes:
(1) simplify common.docker
(2) fix the building of 64-bit shared libraries against the static openssl
libraries by passing the -fPIC flag.
(3) ensure [many]linux-x86 and [many]linux-x64 images have an up-to-date
OpenSSL install. Openssl static libraries are installed in /usr
(4) simplify and speedup CMake build avoiding the second build with
explicit -DCMAKE_USE_OPENSSL:BOOL=ON. Indeed, configuring CMake on Linux
already looks for OpenSSL.
(5) speedup download of CMake source directly downloading the archive
corresponding to the revision.
(6) test CMake by:
- running CMake.FileDownload test
- trying to download a file served over https