summaryrefslogtreecommitdiffstats
path: root/scripts/docker
AgeCommit message (Collapse)Author
2021-01-10build-system: compile stats code on mobile OSsGravatar Dirk Hohndel
Android and iOS use qmake, so add the code to the .pro file. This also removes all remnants of QCharts includes and uses and all the references to QCharts in our various build systems. That was a brief but extremely useful detour. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-12-29build-system/trusty: use new Qt installerGravatar Subsurface CI
Update to Qt 5.12.10, latest OpenSSL, add QtChart, add other missing packages. Also switch to gcc-7 as our statistics code requires better C++17 support than what gcc-6 can offer. This then creates trusty-qt512:1.1 Signed-off-by: Subsurface CI <dirk@hohndel.org>
2020-11-19build-system: update Android builder docker containerGravatar Dirk Hohndel
This adjusts the docker setup to create a container with the correct NDK, SDK, tools, Qt version, etc, and updates the helper scripts that are needed in order to do that. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-10-30build-system: switch to the 32/64bit MXE build containerGravatar Dirk Hohndel
This doesn't actually build 32 bit binaries, yet. One step at a time. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-10-30build-system: create an MXE docker container for both 32 & 64 bitGravatar Dirk Hohndel
This should allow us to then do both 32 and 64 bit Windows builds in our CI/CD and of course for our releases. In order to still be able to use this container in a GitHub action, aggressively remove things that we won't need during the build. Since we use the experimental -squash argument during docker build, this should get us a much smaller container image in the end. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-10-30build-system: Docker build for 64bit MXEGravatar Dirk Hohndel
We previously tried to build the MXE Docker container on GitHub using an Action, but that really didn't work well and was a lot more trouble than it was worth. So this goes back to an offline build mechanism where I simply create an updated Docker image when needed and push that to Docker Hub. But this nearly hides the most interesting change here - we are finally switching to using 64bit binaries on Windows. It's 2020 and fewer than 1% of our users use 32bit Windows machines. We'll need to expand this to be able to have both a 32bit and a 64bit version of Subsurface for Windows. But for now, this solves the problem for 99% of our users. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-10-08build-system: remove Grantlee from the container setup scriptsGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-06-25build-system/MXE: build with more up to date MXE tools.Gravatar Paul Buxton
- use hidapi grantlee and mdbtools from MXE - update MXE version to use QT 5.15, and pull in libzstd and CMake 3.17.3 - fix linking of winmm on windows build with new mxe - add some instructions on building the container - add some new dependancies from QT 5.15 to the packaging - add a patch to MXE to Build qtconnectivity with native-win32-bluetooth [Dirk Hohndel: small refactor] Signed-off-by: Paul Buxton <paulbuxton.mail@googlemail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-26move GitHub url to the Subsurface orgGravatar Dirk Hohndel
Instead of using the Subsurface-divelog user on GitHub, we now use an org that was generously donated to us. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-25build-system/Android: use PREFIX outside of NDKGravatar Dirk Hohndel
If we install our support libraries into the NDK we later run into include path order issues that result in strange errors around the inclusion of math.h (because we find the C version of that include file that ships with the NDK before we find the libstdc++ version of math.h (because the include path for our support libraries is listed before the libstdc++ include search path). By having a distinct install-root for our libraries we can avoid this problem. Remove the previous hack that tried to work around the symptoms of this issue. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-25build-system/Android: use install-qt.sh to install QtGravatar Dirk Hohndel
The official installer now requires the user to log in which we can't really do in a scripted manner. Let's see how long this way of installing things will be available. While doing this remove an ancient hack of some Qt settings that we no longer need. This also tries to prune some things that we don't need in the Docker image to reduce image size. The mapbox plugin is removed as it would add a dependency to QtSql which we otherwise don't need. And since the plugin isn't used, no point in installing it. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-12-07GitHub Actions: deal with case sensitive file systemGravatar Dirk Hohndel
Sadly, there's an explicit change in the sources to of QtConnectivity that requires this workaround when running the build on a case sensitive file system. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-11-28GitHub Actions: work around bug in Ubuntu 14.04 docker base imageGravatar Dirk Hohndel
Right now in the Ubuntu 14.04 base image for Docker the file /etc/apt/preferences.d/ubuntu-esm-infra-trusty doesn't exist. Subsequently, apt-get update enables ESM, but since we don't have a license to use that upgrades / installs from ESM fail. This workaround simply ensure that there is such a file pinning ESM to never be used. With that, the creation of our image should succeed again. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-11-28GitHub Actions: add two stage MXE container buildGravatar Dirk Hohndel
Based on ideas from Anton - both the basic building of containers in the first place as well as the workaround for the 6h build limit. Because GitHub Actions are limited to 6 hours we split the creation of the MXE container into two steps and push the intermediary container after stage 1 to docker hub. Right now each of the steps takes about 3.5 hours, so hopefully even with changes in the future this will continue to work. This commit also introduces use of docker hub instead of GitHub's own registry (since strangely right now GitHub actions cannot run containers from GitHub's private registry). In order for this to work, we need to have the docker credentials in secrets in GitHub. As a result, only people who can create branches in our repository can easily test changes to the container images. Others can modify the code to use a different docker hub account and provide those secrets in their own GitHub account. Not ideal, but of course we cannot allow every pull request to potentially overwrite docker images in our "official" docker hub account. Suggested-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-14Revert "Windows build: Changesto build using mxebased hidapi,libusb and ↵Gravatar Dirk Hohndel
grantlee" This reverts commit 60e63afb8219ca22001a4d1c5c0e6a7e27af89d5. I merged this to early without paying attention to the fact that this needed an updated build container as well. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-13Windows build: Changesto build using mxebased hidapi,libusb and grantleeGravatar Paul Buxton
Remove hidapi from manually built components and use the mxe based one instead. Remove libzip as that is handled by mxe packages. Update version of grantlee used to build with qt 5.13.1. Also hide vscode files from git. [Dirk Hohndel: combined two commits, cleaned up the commit message and removed one now incorrect comment line from mxe-based-build.sh] Signed-off-by: Paul Buxton <paulbuxton.mail@googlemail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-05builld-system: switch Android to Qt 5.13.1Gravatar Dirk Hohndel
This fixes the SSL issue with Android 5.x/Lollipop. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-09-23AppImage: Fix path of machine-id in dbus libraryGravatar Paul Buxton
When building dbus within the appimage, cmake picks up the installation path of various files dbus uses through the GNUInstallDirs package, however this doesn't work under the appimage build. So we replace the variable with the normal location of this file. Signed-off-by: Paul Buxton <paubuxton.mail@googlemail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-09-23AppImage: Fix missing libssl1.1Gravatar Paul Buxton
Add ssl to the AppImage build. Add helper script to fetch required dependancies. Update docker build container used. Signed-off-by: Paul Buxton <paubuxton.mail@googlemail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-09-05build-system: add Dockerfile for Qt 5.12 on TrustyGravatar Dirk Hohndel
We'll use this to create a better AppImage on Travis. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-07-18Android Docker: make a nice version tag fileGravatar Jan Mulder
Trivial. The final touch command was missing the proper quotes, so it created a bunch of strangely names files from the date command. Just good for the developers that like to peek into the docker image. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2019-07-18Android: hack around the build issue with a custom containerGravatar Dirk Hohndel
Local testing seems to indicate that the build should work with this container. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-07-18Android: Switch to Qt 5.12.4 containerGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-05-18docker-mxe: Fix tee command line for static buildGravatar Salvador Cuñat
Add -a parameter to tee to avoid overwriting build.log when building static libraries for smtk2ssrf Signed-off-by: Salvador Cuñat <salvador.cunat@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-05-18docker-mxe: Make Dockerfile reusableGravatar Salvador Cuñat
Passing an argument on the docker build command line avoids the need to modify the Dockerfile for each image build. Signed-off-by: Salvador Cuñat <salvador.cunat@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-05-18Build static glib under mxeGravatar Salvador Cuñat
mdbtools only builds static under mxe. This should add static build of glib to the container with the mxe libraries. [Dirk Hohndel: merged with latest version of Dockerfile] Signed-off-by: Salvador Cuñat <salvador.cunat@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-05-18MXE Docker build: clean up DockerfileGravatar Dirk Hohndel
Instead of trying to do it all in one step rely on --squash to do its job. Don't try to be so aggressive in removing things, it saves very little space and caused builds to fail. This results in version 0.9 of the MXE build container Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-01-25build system: Docker image creationGravatar Dirk Hohndel
Just like Android, Windows binaries are best created in a container. I still need to push the latest version to docker hub and use it on Travis, but this way at least the Dockerfile is here. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-12-30Android Dockerfile: add latest cmake 3.13.2Gravatar Dirk Hohndel
cmake 3.10 (which comes with Ubuntu 18.04) in combination with Qt 5.12 and the current qt-android-cmake causes an odd bug. Paths are set with a double slash at the start '//' and later in the process this causes garbled path names for some of the objects which in return causes the APKs built in the container to fail. Upgrading the cmake inside the container to 3.13.2 fixes that problem. All the credit for identifying the problem and figuring out a solution goes to Jan Mulder. The resulting container was pushed to Docker hub as version to 5.12.03. Reported-by: Jan Mulder <jlmulder@xs4all.nl> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-12-30Android Dockerfile: ugly hack to deal with current NDK compile problemsGravatar Dirk Hohndel
As explained in commit 449d4ee33d ("Android build: add explanation for huge hack"). It seems reasonable to add this to our Travis image as that is custom made just to build our Android binaries. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-12-30Android Dockerfile: add comments and try to shrink the image moreGravatar Dirk Hohndel
This image is downloaded on every Travis run. Making it smaller is important. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-12-30Android: update for Qt 5.12.0Gravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-12-30Android: create docker containerGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-12-30Android: add Dockerfile for build environmentGravatar Dirk Hohndel
We'll use that on Travis, but anyone can use that on their system. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>