1. 17 May, 2017 1 commit
  2. 04 May, 2017 1 commit
    • aguestuser's avatar
      Update README, Dockerfile to build, smoothing on-boarding · 59985587
      aguestuser authored
      Closes !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's avatarkwadronaut <kwadronaut@leap.se>
      59985587
  3. 01 May, 2017 13 commits
    • aguestuser's avatar
    • aguestuser's avatar
    • aguestuser's avatar
      [ag] modify sdk dockerfile to ensure android-23 platform installs · 730ab74a
      aguestuser authored
      * 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
      730ab74a
    • aguestuser's avatar
      1e8da8ed
    • aguestuser's avatar
    • aguestuser's avatar
    • aguestuser's avatar
    • aguestuser's avatar
      [ag] clean up README · 27b25ef2
      aguestuser authored
      27b25ef2
    • aguestuser's avatar
      [ag] use canonical format for 0xacab docker registry images · 9278f468
      aguestuser authored
      * 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?
      9278f468
    • aguestuser's avatar
      [ag] use self-contained docker registry in ci build · 7ed7d620
      aguestuser authored
      * 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
      7ed7d620
    • aguestuser's avatar
      [ag] eliminate hacky workaround for 64-bit builds · 215edb98
      aguestuser authored
      * 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! :)
      215edb98
    • aguestuser's avatar
      [ag] Fix native build step with revised dockerfile · e79058d8
      aguestuser authored
      * 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
      e79058d8
    • aguestuser's avatar
      [ag] Update dockerfile to match config in passing local build · a7b4f463
      aguestuser authored
      * 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?
      a7b4f463
  4. 17 Apr, 2017 1 commit
    • aguestuser's avatar
      [ag] Update README to promote smoother on-boarding · 9edd5d6b
      aguestuser authored
      * 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)
      9edd5d6b
  5. 14 Mar, 2017 6 commits
  6. 13 Oct, 2016 2 commits
  7. 20 Sep, 2016 1 commit
  8. 19 Sep, 2016 7 commits
  9. 03 Apr, 2016 2 commits
  10. 02 Apr, 2016 4 commits
  11. 07 Feb, 2016 2 commits