Commit Graph

290 Commits

Author SHA1 Message Date
9639405d67 Merge pull request #76 from jcfr/linux-toolchain-fix-asm-compiler
[many]linux-(x86|x64)/: toolchain: Fix ASM compiler
2016-11-20 03:01:13 -05:00
ed7872edee [many]linux-(x86|x64)/: toolchain: Fix ASM compiler
Similarly to the linux-x86 toolchain, gcc is used to compile assembler
file.
2016-11-19 22:30:33 -05:00
0bc5941bc8 Merge pull request #72 from jcfr/install-openssl-in-linux-based-images
common.docker: Ensure openssl-1.0.2j is available in manylinux and linux images
2016-11-18 20:09:00 -05:00
4bb8f97ffc common.docker: Ensure openssl-1.0.2j is available in manylinux and linux images
If images are any of manylinux-x86, manylinux-x64, linux-x86 or linux-x64,
OpenSSL libraries are installed in /usr .
2016-11-18 15:30:03 -05:00
2e9a5f7ed7 Merge pull request #71 from chadawagner/patch-1
quote HOST_PWD in docker cmd to allow spaces
2016-11-18 15:24:31 -05:00
9373f029f4 quote HOST_PWD in docker cmd to allow spaces 2016-11-17 21:19:54 -08:00
3a0f84f977 Merge pull request #68 from thewtex/DebianCDN
base: Use Debian package repository CDN
2016-11-17 09:19:27 -05:00
9a8d19a52c Merge pull request #69 from thewtex/WindowsSupport
Windows support
2016-11-17 09:18:33 -05:00
5e8b3e422a doc: Features formatting 2016-11-17 01:16:55 -05:00
192d14ccda Merge pull request #70 from thewtex/Articles
doc: Add Articles section
2016-11-17 01:15:01 -05:00
2254494748 doc: Add Articles section 2016-11-17 01:12:10 -05:00
8dffb1d6d8 base: Use Debian package repository CDN
For improved reliability and performance
2016-11-17 00:59:31 -05:00
6b71b08cbd doc: We support Docker for Mac and Docker for Windows
No longer support boot2docker on these platforms
2016-11-16 19:08:04 -08: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
0ee005a0ca Merge pull request #67 from thewtex/AndroidToolchainFile
Android toolchain file
2016-11-16 21:14:25 -05:00
a138f60ab6 android-arm: Update NDK to 13b and API to 16
API level 16 still covers the majority of systems:

  https://developer.android.com/about/dashboards/index.html

  https://developer.android.com/ndk/guides/stable_apis.html
2016-11-16 16:23:33 -05:00
0d3333a3e1 android-arm: Add CMake 3.7 toolchain file support
See:

  https://cmake.org/cmake/help/v3.7/manual/cmake-toolchains.7.html#cross-compiling-for-android-with-a-standalone-toolchain
2016-11-16 15:14:17 -05:00
46e4b18ebf Merge pull request #65 from thewtex/build-cmake-with-ssl
Build cmake with ssl
2016-11-06 15:20:25 -05:00
b54dbfd9cf base: Improve openssl build for i686
Avoid bash-isms.

Also return true from the sub-shell.
2016-11-06 10:13:08 -05:00
3b6e09b520 manylinux-x86: Fix build of Openssl and CMake
This commit fixes the error reported below by ensuring openssl and CMake
are configured and build as x86 binaries.

It also removes the download of CMake binaries that was introduced
by mistake in 1354fe2 (manylinux-x86: Initial addition).

Error:

```
Configured for linux-x86_64.
making all in crypto...
make[1]: Entering directory `/usr/src/openssl-1.0.2j/crypto'
/usr/bin/perl ../util/mkbuildinf.pl "gcc -I. -I.. -I../include  -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -m64 -DL_ENDIAN -O3 -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM" "linux-x86_64" >buildinf.h
gcc -I. -I.. -I../include  -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -m64 -DL_ENDIAN -O3 -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM   -c -o cryptlib.o cryptlib.c
cryptlib.c:1:0: sorry, unimplemented: 64-bit mode not compiled in
 /* crypto/cryptlib.c */
 ^
make[1]: *** [cryptlib.o] Error 1
```
2016-11-05 17:55:58 -04:00
6f7e7b05fd common.docker: Fix CMake https download building it against openssl 1.0.2j
See #63
2016-11-05 11:25:42 -04:00
39c5f29733 Merge pull request #62 from jcfr/manylinux-ownership-of-python-install
manylinux.common: Fix warning changing ownership of python install
2016-11-05 09:27:03 -04:00
8923c6a3c7 manylinux.common: Fix warning changing ownership of python install
While the use of sudo (made possible by 53cf084) allows to install
additional packages, the warning copied below was still reported.

To avoid this warning and streamline the installation of new packages,
this commit (1) introduces the concept of "pre_exec" entrypoint hook
and (2) adds such a hook to change the ownership of python "bin" and
"site-packages" directories for the manylinux images.

Warning reported are similar to this one:

```
The directory '/home/jcfr/.cache/pip/http' or its parent directory is
not owned by the current user and the cache has been disabled. Please
check the permissions and owner of that directory. If executing pip
with sudo, you may want sudo's -H flag.
```

Note that the sudo "-H" flag suggested in the warning is not available
in centos.
2016-11-04 22:58:31 -04:00
4b7265bde0 Merge pull request #60 from thewtex/no-tty-sudo
No tty sudo
2016-11-04 10:17:18 -04:00
f3654d8dce manylinux: Run visudo -c
Verify /etc/sudoers validity

Tested-by: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>
2016-11-03 21:50:42 -04:00
53cf0849fe manylinux: Do not require a tty for sudo
This enabling installation of Python packages with on CI services.

Issue #57
2016-11-03 21:50:41 -04:00
26c5447d29 manylinux: Consolidate common content into common.manylinux 2016-11-03 21:50:41 -04:00
d41d7f919e Merge pull request #59 from jcfr/manylinux-upgrade-pip
Manylinux upgrade pip
2016-11-03 21:22:18 -04:00
a257df34e8 Merge pull request #58 from thewtex/cmake-add_custom_command-built-emulator
base: Bump CMake for improved add_custom_command
2016-11-03 17:17:53 -04:00
667b5c1ca7 manylinux-common/install-python-packages: Ensure latest pip is installed 2016-11-03 13:11:47 -04:00
ab0ab22c67 manylinux: Deduplicate install-skbuild.sh and rename to install-python-packages.sh 2016-11-03 13:10:06 -04:00
b3feda218b base: Bump CMake for improved add_custom_command
Improves cross-compilation support in add_custom_command by integrating

  https://gitlab.kitware.com/cmake/cmake/merge_requests/217

CMake Git master from 2016-11-03 (3.8-master).

Addresses #54
2016-11-03 12:38:25 -04:00
ee2c1618c3 Merge pull request #56 from thewtex/microbadger-badges
doc: Use MicroBadger badges
2016-11-01 10:27:40 -04:00
e43de27275 Merge pull request #55 from thewtex/doc-variables
doc: variable -> variables
2016-11-01 10:01:15 -04:00
a7c894ab50 doc: Use MicroBadger badges 2016-11-01 10:00:15 -04:00
fdb3a52a01 doc: variable -> variables 2016-11-01 09:51:20 -04:00
d7ac739c2e Merge pull request #48 from jcfr/keep-track-buildtime-metadata
dockerfile: Keep track of buildtime metadata
2016-11-01 07:28:35 -04:00
95f2462567 Merge pull request #53 from thewtex/scikit-build-0.4.0
manylinux-x{64,86}: Bump scikit-build to 0.4.0
2016-10-31 21:21:32 -04:00
623148e6e5 manylinux-x{64,86}: Bump scikit-build to 0.4.0 2016-10-31 18:40:36 -04:00
cb95cf3c94 Merge pull request #52 from jcfr/dockcross-ignore-rm-error-when-running-in-unprivileged-lxc-container-no-tty-support
dockcross: Prevent dockcross from blocking when used with Python subprocess
2016-10-31 00:12:45 -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
f31e582f80 dockcross: Simplify container name generation using $RANDOM
This commit removes the complex pipeline leveraging output from
/dev/urandom and simply uses $RANDOM variable. For the purpose
of generating an available container name, it will works well.

Suggested-by: Matt McCormick <matt.mccormick@kitware.com>
2016-10-30 23:46:01 -04:00
bd234af0a9 dockcross: Prevent dockcross from blocking when used with Python subprocess
As explained in [1], when using dockcross from python subprocess, the
interactive mode is disabled and output of "cat /dev/urandom" is block
buffered instead of being line buffered.

Workaround to this problem is to simply read a fixed amount of characters
from urandom.

The following two snippets illustrates the problem and the
the implemented  solution:

Works

```python
import subprocess as sp
sp.check_call("var=$(head -c 500 /dev/urandom | base64 | tr -dc 'a-zA-Z0-9' | fold -w 7 | head -n 1); echo $var", shell=True)
```

=> output random string


Fail:

```python
import subprocess as sp
sp.check_call("var=$(cat /dev/urandom | base64 | tr -dc 'a-zA-Z0-9' | fold -w 7 | head -n 1); echo $var", shell=True)
```

=> Hang

[1] http://stackoverflow.com/questions/16805827/unable-to-read-stdout-from-a-running-process#16806506
2016-10-30 03:27:10 -04:00
e378a9b336 Merge pull request #51 from jcfr/dockcross-ignore-rm-error-when-running-in-unprivileged-lxc-container
dockcross: Ignore deletion error when running in unprivileged LXC container
2016-10-27 13:34:45 -04:00
3288c877e5 dockcross: Fix "tr: Illegal byte sequence" when generating container name on MacOSx
See #50
2016-10-27 13:20:31 -04:00
c5edcb3a74 dockcross: Ensure exit code associated with run command is always returned 2016-10-27 11:37:07 -04:00
904cb09858 dockcross: Change name of container from "dockcross" to "dockcross_RAND"
where RAND is a 7 characters long randomly generated alphanumeric string.

Note that container name can NOT start with "_",
only [a-zA-Z0-9][a-zA-Z0-9_.-] are allowed

See #50
2016-10-27 11:37:03 -04:00
7a8f4fab0e dockcross: Do not output any text after container is removed
See #50
2016-10-27 11:19:37 -04:00
195827d40d Merge pull request #49 from thewtex/mxe-update
windows-x{64,86}: Bump MXE to 2016-10-25
2016-10-27 11:12:17 -04:00
2e71db2234 dockcross: Ignore deletion error when running in unprivileged LXC container
This commit workarounds the problem described in [1] and [2] by ignoring error
happening when deleting container in unprivileged LXC container.

Fixes #50

[1] https://circleci.com/docs/docker-btrfs-error/
[2] https://discuss.circleci.com/t/docker-error-removing-intermediate-container/70
2016-10-26 23:24:25 -04:00