Age | Commit message (Collapse) | Author |
|
|
|
docker image references
|
|
This reverts commit 9c963b3bc34fac9e5a51b753cf7aba624680307a.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
code guidelines
|
|
|
|
failure earlier
|
|
ActivityInstrumentationTestCase2
|
|
|
|
|
|
Add CAA
See merge request !4
|
|
|
|
|
|
|
|
Closes https://0xacab.org/leap/bitmask_android/merge_requests/1
README:
add detailed instructions on installing and compiling
provide workarounds for gotchas setting up emulator on 64-bit debian
provide updated dockerfile & offer instructions for building in docker
Docker:
move dockerfiles to registry contained w/in bitmask_android repo
provide separate dockerfiles for sdk (base), ndk, and emulator images
resolve issues causing containerized build to fail, including:
upstream ics-openvpn conflict with clang (:. transitively with ndk >
r12b)
(subtle!) missing dependency of ndk r12b on file (message: "missing
file" meant a missing program called "file" not an actual missing file)
missing locales causing errors in copyIcsOpenVPNFiles build step
(resolved by generating all locales in dockerfile)
silent failure in sdknmanager's isntallation of platforms;android-23
during image build causing install failure in remote (but not local!)
containers
Signed-off-by: kwadronaut <kwadronaut@leap.se>
|
|
|
|
|
|
* on remote builds, failure of Android SDK Platform 23 to properly
install was causing build failures undetected in local container.
see: <https://0xacab.org/aguestuser/bitmask_android/builds/9906>
* to fix this, tweak order of `sdkmanager` calls and remove `echo -y`
flags to ensure platform installation completes successfully and
build step never tries to install Platform 23
|
|
|
|
|
|
|
|
|
|
|
|
* this change was necessitated by prior format failing a whitelisted
images check here: https://0xacab.org/aguestuser/bitmask_android/builds/9406
* NOTE: this format means we can't label `android-sdk` images by version
because the tag is reserved for the image name, not the version :(
* ie: the whitelist forces us to specify `bimtask_android:android-sdk`
rather than `bitmask_android/android-sdk:0.0.1` -- is there a reason for this?
|
|
* for greater compartmentalization and self-documentation,
use docker registry in this repo to host image used in its build
rather than registry in `leap/gitlab-buildpackage` as before
|
|
* HACK: replace all toolchain references to `linux-x86_64` with `linux-x86`
* FIX: provide dependency on `file` package that will allow `ndk-build` to
detect 32-bit userland, making this
* side-effects:
* group sdk/env vars with installation code that uses them
* add explanatory note about why we use outdated version of `android-ndk`
------------------
*Explanation:*
More careful analysis of the meaning of the word `file` in this (subtle!) error message:
```shell
/opt/android-sdk-linux/android-ndk-r12b/build/ndk-build: 143: /opt/android-sdk-linux/android-ndk-r12b/build/ndk-build: file: not found
```
led to inspecting line 143 of `ndk-build`, revealing an undefined variable
called `file` that would allow `ndk-build` to detect a 32-bit userland:
```shell
file -L "$SHELL" | grep -q "x86[_-]64"
```
Thus the error messsage was *not* trying to tell us that a file could
not be found, but that the program called `file` could not be
found. FUN! :)
|
|
* PROBLEM:
* most recent version (r14b) of `android-ndk` uses `clang` for cross-compilation
* BUT: `openssl` cannot compile successfully w/ `clang`
* AND: we depend on `openssl` transitively through `ics-openvpn`
while trying to use `android-ndk` r14b
* FIX:
* downgrade to `android-ndk` (12b) (most recent versoin that still
uses `gcc` instead of `clang`)
* modify some of the default
* REMAINING PROBLEMS:
* some string translations for Jamaica now break the build (unclear
why -- outdated country abbreviation? ja for jm???)
* we are now using a version of ndk that is 2 versions old and a
version of ics-openvpn (pinned to a 3.1.2016 commit via submodule)
that depends on an outdated version of `openssl`, which raises
security concerns. updating to the most recent version will force
us to wade into all the dependency problems amongst `ics-openvpn`/`openssl`/`ndk`
* REFERENCES:
* on `openssl` incompatibility w/ clang: https://github.com/openssl/openssl/pull/2229
* on `ics-openvpn` problems with `ndk`: https://github.com/android-ndk/ndk/issues/144
|
|
* PROBLEM: the build fails on gitlab in a debian-based docker container
* BUT: i (@aguestuser) have a recently-achieved passing build on a
debian laptop
* ATTEMPTED SOLUTION: construct a dockerfile that matches my local
configuration as precisely as possible
* PROGRESS: the build gets further than it did before -- getting part of
the way through the `buildNative` gradle script before failing
* REMAINING FAILURE: several arm64 cross-compile steps in the
`ndk-build` step fail because they depend on
[neon](https://developer.android.com/ndk/guides/cpu-arm-neon.html):
```shell
[arm64-v8a] Compile : crypto_static <= aesv8-armx-64.S
openssl/crypto/aes/asm/aesv8-armx-64.S:35:2: error: instruction requires: neon
eor v0.16b,v0.16b,v0.16b
^
openssl/crypto/aes/asm/aesv8-armx-64.S:36:2: error: instruction requires: neon
ld1 {v3.16b},[x0],#16
^
openssl/crypto/aes/asm/aesv8-armx-64.S:38:2: error: instruction requires: neon
ld1 {v1.4s,v2.4s},[x3],#32
```
* PROPOSED NEXT STEPS:
* consult team to see if there's any collective wisdom about `neon`
* look for ways to analyze diff of c dependencies in local machine
v. docker instance
* consider using ubuntu or debian:sid as the base image for the
android container?
|
|
* add detailed instructions on installing and compiling
* provide workarounds for gotchas setting up emulator on debian
* offer instructions for building in docker
side-effects:
* update build tools & gradle version
* fix indentation in build.gradle
* comment out tests in `TestLogFileHandler` causing `build` to break (and provide justification)
|
|
|
|
|
|
|
|
|
|
|
|
|