Commit Graph

86 Commits

Author SHA1 Message Date
acdf508e3d Add linux-armv6-musl image 2020-12-04 14:04:29 +01:00
14013efcdf Add linux-armv7l-musl image 2020-11-13 13:38:47 +01:00
7683a5ab13 Merge pull request #450 from JonasVautherin/add-linux-arm64-musl
Add linux-arm64-musl image
2020-11-11 16:57:00 -05:00
6bb13a8083 Add linux-arm64-musl image 2020-11-10 23:52:43 +01:00
d85a6ab93c Eagerly evaluate TAG, to ensure it's consistent
By deferring the evaluation of TAG, we risk the date changing mid-build
leading to images from the same make invocation having different tags.
2020-10-20 18:18:43 -05:00
1db5ed11bf Merge pull request #427 from veblush/manylinux2014-x86
Added manylinux2014-x86
2020-07-12 22:04:10 -04:00
de84690710 Added manylinux2014-x86 2020-07-04 16:46:50 -07:00
e2d20c0626 common.dockcross: Split minimal "dockcross" from 'debian' and 'docker' 2020-06-25 21:34:49 -05:00
fdb8d43e34 add support for manylinux2014-aarch64 2020-06-06 01:12:46 -04:00
42b7dd5602 add support for manylinux2014-x64 2019-12-23 10:20:32 +01:00
2a3efdd548 Add manylinux2010-x86 2019-12-17 10:13:08 -08:00
48f9bda187 re-enable ppc64le with crosstool-ng 2019-11-26 19:20:32 +05:30
b671432c6f add support for armv5 using musl as libc version 2019-06-08 18:06:12 -04:00
4793ea7c06 Add manylinux2010-x64 image
Since i686 image is not yet available in upstream project, this commit
only add the x64 version.
2019-05-22 03:21:10 -04:00
1e0e89814b Rename manylinux images to manylinux1 2019-05-22 03:11:45 -04:00
2a29197b3b added image for ARMv7-A 2019-03-03 18:54:14 +03:00
46c941df93 fix makefile 2019-03-01 16:22:44 +01:00
c9a7606f1f add windows images with shared linking 2019-03-01 16:22:44 +01:00
3c194a1914 web-wasm: Rename image from browser-asmjs
WebAssembly has a better mindshare than asm.js. In the future, it will
be used in much more than browsers. Also, newer versions of Emscripten
default to WebAssembly.
2019-01-19 16:05:29 -05:00
c96cbdc956 versioning: Set DEFAULT_DOCKCROSS_IMAGE based on the image tag
This ensures that the dockcross script will continue to use the specific
tagged version of the image that generates it.
2019-01-16 23:25:52 -05:00
03931af69b browser-asmjs: Use tagged version for the default dockcross image 2019-01-01 21:15:02 -05:00
fce48bcfe3 build-deploy: Tag images by date and Git SHA
Tag with the pattern:

<imagename>:YYYYMMDD-SHA{N} where YYYYMMDD is the date of the build and
SHA{N} the output of `git rev-parse --short HEAD`

along with `latest` as discussed in Issue #223.

This helps clients use a fixed, reproducible image that will be
available for a long period of time.
2018-12-19 08:51:55 -05:00
bbf6d6d45e Crosstool-ng'd armv5 2018-07-15 13:43:55 +03:00
b3bcf24ffc Crosstool-ng'd armv7 2018-07-11 10:45:53 +03:00
9997a896ae [windows_x64_posix] Updated Makefile to take into account windows-x64-posix 2018-06-12 00:45:44 -04:00
aa202df283 windows-(x86|x64): Optimize images introducing "common.windows"
* Avoid duplication introducing common  script
* Optimize image size reducing the number of RUN instructions
2018-06-09 01:20:20 -04:00
6191491ba5 Fixed linux-arm64 compilation I hope. 2018-05-03 06:49:46 -04:00
1cad97f9b2 Adding android-arm64 as a target 2018-03-19 14:50:17 +02:00
8b78b8d2d7 Add linux-s390x support 2017-09-14 16:59:57 -04:00
7dd46fa045 Implement "ct-ng" building, add "linux-mips".
Add a mechanism to construct a full cross-compiler environment using the
"crosstool-ng" cross-compiler building utility. This is implemented in
the new "common.crosstool" include, and augments the "dockcross/base"
base image.

Update Makefile to consolidate Dockerfile generation, notably the
"sed"-based inclusion directives.

Finally, employ all of this to generate a "linux-mips" 32-bit hard-float
MIPS cross-compiler Dockcross image.
2017-09-01 10:09:31 -04:00
499f8f5510 ci: Use CircleCI 2.0
Addresses #156
2017-08-28 13:24:53 -04:00
ae35e5ebbe Add linux-mipsel dockcross target 2017-01-22 23:07:53 +01:00
5117ab6493 Makefile: Fix tests removing double quote from RM variable
This commit fixes a regression introduced in 6823cb1 (Makefile: Do not
specify "--rm" docker run argument when executing on CircleCI)
2016-11-28 23:47:26 -05:00
6823cb1bd9 Makefile: Do not specify "--rm" docker run argument when executing on CircleCI
This will avoid the "Driver btrfs failed to remove" error message when
executing the command on CircleCI.
See https://circleci.com/docs/docker-btrfs-error/
2016-11-28 20:01:39 -05:00
1560f4c3b6 makefile/browser-asmjs: Remove now unneeded dependency to "base"
Following 09868d5 (browser-asmjs: Update to depend on existing image from
"trzeci/emscripten"), browser-asmjs does NOT depend anymore on base image.
2016-11-26 18:20:35 -05:00
09868d5289 browser-asmjs: Update to depend on existing image from "trzeci/emscripten"
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
2016-11-25 15:51:42 -05:00
46cef1a33a common: Introduce "common.debian"
This will facilitate the configuration of other images based on debian
but *NOT* depending on the dockcross/base image.
2016-11-25 15:51:42 -05:00
191d773e01 makefile: Ensure imagefiles are available in build image context 2016-11-25 15:51:38 -05:00
a68f2b6aa4 base: Optimize image build adding only image and vcs_url metatdata
To avoid dependent images to systematically rebuild, this commit
adds only "static" metatdata to the base image
2016-11-24 13:48:58 -05:00
0552c37fea common.docker: Improve OpenSSL and CMake install introducing helper scripts
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
2016-11-21 06:08:30 -05:00
d9d65ffcc9 dockcross: Add support for Windows
Tested on Git Bash and Bash on Ubuntu for Windows.

There are some issue with building the Docker image itself, but using the
images works great.
2016-11-16 19:02:55 -08:00
26c5447d29 manylinux: Consolidate common content into common.manylinux 2016-11-03 21:50:41 -04:00
cfcc7d6700 dockerfile: Keep track of buildtime metadata
This commit build each images with the following arguments:

* IMAGE: Name of the image (e.g dockcross/base, dockcross/manylinux-x64, ...)
* VCS_REF: dockcross/dockcross commit from which this image is built
* VCS_URL: this repository obtained reading remote.origin.url
* BUILD_DATE: Date and time when the build was initiated

Then, within the Dockerfile, the metadata are associated with the image
using the "LABEL" instruction.
See https://docs.docker.com/engine/reference/builder/#/label

The corresponding labels can be found here:
http://label-schema.org/rc1/#build-time-labels

See #28
2016-10-30 23:57:04 -04:00
97385c1356 Makefile: Make sure base.test also create bin directory
This commit fixes a regression [1] introduced in 606d0b3 (Makefile: Make sure
BIN directory exist when running any test)

Reported below the dry-run summary before and after, we can confirm the
bin directory is now created when building the `base.test` target.

Before:

$ make base.test --dry-run
docker build -t dockcross/base .
docker run --rm dockcross/base > bin/dockcross-base && chmod +x bin/dockcross-base

After:

$ make base.test --dry-run
docker build -t dockcross/base .
mkdir -p bin
docker run --rm dockcross/base > bin/dockcross-base && chmod +x bin/dockcross-base


[1] Error fixed by this commit:

Successfully built e6388fe49824
docker run --rm dockcross/base > bin/dockcross-base && chmod +x bin/dockcross-base
/bin/sh: 1: cannot create bin/dockcross-base: Directory nonexistent
make: *** [base.test] Error 2

make base.test returned exit code 2
2016-09-26 11:38:43 -04:00
606d0b3ed9 Makefile: Make sure BIN directory exist when running any test
This commit allows to run any test directly after checking out
the source code.
2016-09-26 00:21:16 -04:00
8a4e0845da Makefile: All images are tested. Remove ALL_IMAGES and DEFAULT_IMAGES vars.
To confirm that the Makefiles works as expected after this patch, the
list of executed commands before and after has been compared.

Before:

```
make --dry-run > ../dockcross-make-baseline
make test --dry-run > ../dockcross-make-test-baseline
```

After:

```
make --dry-run > ../dockcross-make-current;
make test --dry-run > ../dockcross-make-test-current

for target in make make-test; do
  diff --ignore-trailing-space ../dockcross-$target-baseline ../dockcross-$target-current> /dev/null 2>&1
  [[ $? == 1 ]] && \
    echo "" && \
    echo "-------------------------------" && \
    echo "Here is output of:" && \
    echo "  diff --ignore-trailing-space ../dockcross-$target-baseline ../dockcross-$target-current" && \
    echo "" && \
    diff --ignore-trailing-space ../dockcross-$target-baseline ../dockcross-$target-current
done
```

Output:

```
-------------------------------
Here is output of:
  diff --ignore-trailing-space ../dockcross-make-baseline ../dockcross-make-current

8a9
> docker build -t dockcross/linux-ppc64le linux-ppc64le
10a12,14
> cp -r test browser-asmjs/
> docker build -t dockcross/browser-asmjs browser-asmjs
> rm -rf browser-asmjs/test

-------------------------------
Here is output of:
  diff --ignore-trailing-space ../dockcross-make-test-baseline ../dockcross-make-test-current

24a25,27
> docker build -t dockcross/linux-ppc64le linux-ppc64le
> docker run --rm dockcross/linux-ppc64le > bin/dockcross-linux-ppc64le && chmod +x bin/dockcross-linux-ppc64le
> bin/dockcross-linux-ppc64le python test/run.py --languages C
30a34,38
> cp -r test browser-asmjs/
> docker build -t dockcross/browser-asmjs browser-asmjs
> rm -rf browser-asmjs/test
> docker run --rm dockcross/browser-asmjs > bin/dockcross-browser-asmjs && chmod +x bin/dockcross-browser-asmjs
> bin/dockcross-browser-asmjs python test/run.py --exe-suffix ".js"

```
2016-09-25 23:28:23 -04:00
aa4735ddf2 Makefile: Add "display_default_images" and "display_all_images" targets 2016-09-25 19:46:49 -04:00
4a0c6442c2 Makefile: Introduce NON_STANDARD_IMAGES, ALL_IMAGES and DEFAULT_IMAGES vars
This commit also ensures that:
* all image targets are declared as PHONY
* "test" and not "tests" is declared as PHONY


To confirm that the Makefiles works as expected after this patch, the
list of executed commands before and after is compared.


Before:

```
make --dry-run > ../dockcross-make-baseline
make test --dry-run > ../dockcross-make-test-baseline
make browser-asmjs.test --dry-run > ../dockcross-make-browser-asmjs-test-baseline
make linux-ppc64le.test --dry-run > ../dockcross-make-linux-ppc64le-test-baseline
```

After:

```
make --dry-run > ../dockcross-make-current;
make test --dry-run > ../dockcross-make-test-current
make browser-asmjs.test --dry-run > ../dockcross-make-browser-asmjs-test-current
make linux-ppc64le.test --dry-run > ../dockcross-make-linux-ppc64le-test-current

for target in make make-test make-browser-asmjs-test make-linux-ppc64le-test; do
  diff --ignore-trailing-space ../dockcross-$target-current ../dockcross-$target-baseline > /dev/null 2>&1
  [[ $? == 1 ]] && \
    echo "" && \
    echo "Error: Problem with '${target}' target: Dry-run output before and after this commit do not match."
done
```
2016-09-25 19:04:07 -04:00
b033376284 Makefile: Add comments and move implicit rules at the end of the file
To confirm that the Makefiles works as expected after this patch, the
list of executed commands before and after is compared:

Before:

```
make --dry-run > ../dockcross-make-baseline
make test --dry-run > ../dockcross-make-test-baseline
```

After:

```
make --dry-run > ../dockcross-make-current;
make test --dry-run > ../dockcross-make-test-current

for target in make make-test; do
  diff --ignore-trailing-space ../dockcross-$target-current ../dockcross-$target-baseline > /dev/null 2>&1
  [[ $? == 1 ]] && \
    echo "" && \
    echo "Error: Problem with '${target}' target: Dry-run output before and after this commit do not match."
done
```
2016-09-25 18:38:26 -04:00
0710c46745 Makefile: Treat windows-(x86|x64) as regular image introducing _ARGS var
To confirm that the Makefiles works as expected after this patch, the
list of executed commands before and after is compared.

The only difference was due to the extra space in the command line
associated with windows-x86

```
< bin/dockcross-windows-x86 python test/run.py  --exe-suffix ".exe"
---
> bin/dockcross-windows-x86 python test/run.py --exe-suffix ".exe"
```


Before:

```
make --dry-run > ../dockcross-make-baseline
make test --dry-run > ../dockcross-make-test-baseline
```

After:

```
make --dry-run > ../dockcross-make-current;
make test --dry-run > ../dockcross-make-test-current

for target in make make-test; do
  diff --ignore-trailing-space ../dockcross-$target-current ../dockcross-$target-baseline > /dev/null 2>&1
  [[ $? == 1 ]] && \
    echo "" && \
    echo "Error: Problem with '${target}' target: Dry-run output before and after this commit do not match."
done
```
2016-09-25 18:20:02 -04:00