Instead of bringing the Qt binaries it builds our own.
It also finally solves some annoyances like including openssl by default.
Details
- Reviewers
nicolasfella - Commits
- R857:9f782ef55938: RFC: Dockerfile based on Qt 5.12 and clang
I plan to test it, haven't tested yet.
Diff Detail
- Repository
- R857 CI System Tooling
- Branch
- master
- Lint
No Linters Available - Unit
No Unit Test Coverage - Build Status
Buildable 6976 Build 6994: arc lint + arc unit
Tested this here now, and hit two minor issues:
- /opt/android-sdk/ needs to be user-writable as gradle apparently tries to put additional dependencies into there (happens e.g. during the KNotifications build)
- build-kde-project and build-kde-dependencies are missing, which build-generic needs
With that fixed, it builds KDE Itinerary and all its dependencies, fixing both the problem in there and in KNotifications currently visible on the CI. Okular still fails with the same phonon issue we also see on binary factory right now.
Btw, Poppler needing API level 24 has been fixed upstream in master meanwhile,
system-images/android/sdk/Dockerfile-clang | ||
---|---|---|
9 | Is there a particular reason why SDK level is still 21 instead of something recent-ish? |
system-images/android/sdk/Dockerfile-clang | ||
---|---|---|
9 | Doesn't seem to matter on the Java side at least, Gradle pulls in 28 for KNotification (therefore the need to have write access to the SDK location I guess). I suspect this is used also to define the minimum API level too though? |
I needed a small adjustment to build the image
diff --git a/system-images/android/sdk/Dockerfile-clang b/system-images/android/sdk/Dockerfile-clang index 75ba07e..ec364ad 100644 --- a/system-images/android/sdk/Dockerfile-clang +++ b/system-images/android/sdk/Dockerfile-clang @@ -71,7 +71,7 @@ RUN dpkg --add-architecture i386 && apt update && apt full-upgrade -y && apt ins # Download & unpack android SDK RUN curl -Lo /tmp/sdk-tools.zip 'https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip' \ && mkdir -p /opt/android-sdk && unzip -q /tmp/sdk-tools.zip -d /opt/android-sdk && rm -f /tmp/sdk-tools.zip \ - && yes | sdkmanager --licenses && sdkmanager --verbose "platforms;${SDK_PLATFORM}" "build-tools;${SDK_BUILD_TOOLS}" ${SDK_PACKAGES} + && yes | sdkmanager --licenses && yes | sdkmanager --verbose "platforms;${SDK_PLATFORM}" "build-tools;${SDK_BUILD_TOOLS}" ${SDK_PACKAGES} # Download & unpack android NDK RUN mkdir /tmp/android && cd /tmp/android && curl -Lo ndk.zip "https://dl.google.com/android/repository/android-ndk-${NDK_VERSION}-linux-x86_64.zip" \
Itinerary did build fine after fixing the issues Volker mentioned, but copying the apk to /output failed because it was expecting a different path. The apk was in itinerary-app_build_apk//build/outputs/apk/debug/itinerary-app_build_apk-debug.apk, but it tried to copy *_build_apk/build/outputs/apk/*.apk