turtl / tracker

This project is for tracking issues, bug reports, and progress on the entire Turtl project.
67 stars 3 forks source link

Problems build turtl desktop and android from source #157

Closed Tom3141 closed 6 years ago

Tom3141 commented 6 years ago

Hi I was attempting to build the turl desktop from source on ubuntu 16.04 64 bit according to the https://github.com/turtl/desktop build instructions. I had to install a bunch of dependencies that need to be installed not listed in the instructions. Anyway, I was running the make run command I ran into this issue.

- build/index.html:  build/make-js build/app/index.html lib/node/preload/ipc.js lib/node/preload/ipc_core.js lib/node/tcrypt.js lib/node/comm.js lib/node/tools.js lib/node/popup.js lib/node/dispatch.js lib/node/core.js lib/node/pairing.js lib/node/sjcl.js lib/app/models/note_ipc.js lib/app/models/search_ipc.js lib/app/controllers/sidebar_hijack.js lib/app/controllers/bookmark.js lib/app/controllers/add_note.js lib/app/controllers/_open_note.js lib/app/controllers/pairing.js lib/app/core-adapter/thread.js lib/app/core-adapter/main.js lib/app/ipc.js lib/app/popup/main.js lib/app/popup/ipc.js scripts/gen-index
- build/popup.html:  lib/app/popup/index.html.tpl lib/node/preload/ipc.js lib/node/preload/ipc_core.js lib/node/tcrypt.js lib/node/comm.js lib/node/tools.js lib/node/popup.js lib/node/dispatch.js lib/node/core.js lib/node/pairing.js lib/node/sjcl.js lib/app/models/note_ipc.js lib/app/models/search_ipc.js lib/app/controllers/sidebar_hijack.js lib/app/controllers/bookmark.js lib/app/controllers/add_note.js lib/app/controllers/_open_note.js lib/app/controllers/pairing.js lib/app/core-adapter/thread.js lib/app/core-adapter/main.js lib/app/ipc.js lib/app/popup/main.js lib/app/popup/ipc.js scripts/gen-index
./node_modules/.bin/electron .
App threw an error during load
Error: EACCES: permission denied, open '/home/jonasthomas/.config/Turtl/you-meddling-kids.json'
    at Object.fs.openSync (fs.js:652:18)
    at Object.module.(anonymous function) [as openSync] (ELECTRON_ASAR.js:172:20)
    at Object.fs.readFileSync (fs.js:553:33)
    at Object.fs.readFileSync (ELECTRON_ASAR.js:508:29)
    at ElectronStore.get store [as store] (/home/jonasthomas/turtl/desktop/node_modules/conf/index.js:108:18)
    at ElectronStore.Conf (/home/jonasthomas/turtl/desktop/node_modules/conf/index.js:44:56)
    at ElectronStore (/home/jonasthomas/turtl/desktop/node_modules/electron-store/index.js:20:3)
    at Object.<anonymous> (/home/jonasthomas/turtl/desktop/lib/node/pairing.js:5:15)
    at Object.<anonymous> (/home/jonasthomas/turtl/desktop/lib/node/pairing.js:48:3)
    at Module._compile (module.js:569:30)
A JavaScript error occurred in the main process
Uncaught Exception:
Error: EACCES: permission denied, open '/home/jonasthomas/.config/Turtl/you-meddling-kids.json'
    at Object.fs.openSync (fs.js:652:18)
    at Object.module.(anonymous function) [as openSync] (ELECTRON_ASAR.js:172:20)
    at Object.fs.readFileSync (fs.js:553:33)
    at Object.fs.readFileSync (ELECTRON_ASAR.js:508:29)
    at ElectronStore.get store [as store] (/home/jonasthomas/turtl/desktop/node_modules/conf/index.js:108:18)
    at ElectronStore.Conf (/home/jonasthomas/turtl/desktop/node_modules/conf/index.js:44:56)
    at ElectronStore (/home/jonasthomas/turtl/desktop/node_modules/electron-store/index.js:20:3)
    at Object.<anonymous> (/home/jonasthomas/turtl/desktop/lib/node/pairing.js:5:15)
    at Object.<anonymous> (/home/jonasthomas/turtl/desktop/lib/node/pairing.js:48:3)
    at Module._compile (module.js:569:30)

The issue seems to be a permissions thing. This seems a bit odd to me, and I thought I run it past you guys before I start unlocking folder permissions. Any thoughts?

Tom3141 commented 6 years ago

Ok... I ran "make run" as "sudo make run" that seems to make it work ok. Should the permissions be changed on /home/jonasthomas/.config/Turtl/

I'm getting a message to update the database, if I do that, will I currently still be able to access the database from my android phone? I'm currently running 6.4 on android? To answer my own question, it is apparently different. It appears that the file is imported but it not visible by the andriod app downloaded from the play store. I guess I need to compile the android source and updload the APK.

Tom3141 commented 6 years ago

So I managed to get the desktop app running from source and I updated the database. The 6.4 Android app does not seem to recognize this new version. So tried building the Android app from source according to these directions https://github.com/turtl/android/commit/648ac68a3a6c76e38979e7716d67887b99f66df0 on ubuntu 16.04 64 bit

When I tried installing cordova, I get this

sudo npm install -g cordova
npm WARN deprecated hoek@2.16.3: The major version is no longer supported. Please update to 4.x or newer
/usr/local/bin/cordova -> /usr/local/lib/node_modules/cordova/bin/cordova
+ cordova@8.0.0
updated 1 package in 11.479s

googling this took me here: https://github.com/nodegit/nodegit/issues/1539 npm -v 6.4.1 node -v v10.10.0

I tried everything to get rid of npm WARN deprecated hoek@2.16.3: ;( It still seems to have build despite the warning. Any thoughts?

At this point, I'm getting confused by:

So we grab our Turtl js project's source and the mobile source as siblings (with the name "js" preserved...renaming js to something else will break the build).

Building

Before you can build, you have to make sure the file config.js exists in the proper place. It's safe to use the default settings by running:


cp ./www/app/config/config.js.default  ./www/app/config/config.js

locate config.js.default /home/jonasthomas/turtl/desktop/build/app/config/config.js.default /home/jonasthomas/turtl/js/config/config.js.default

jonasthomas@jonasthomas-ThinkPad-W530:~/turtl/js/config$ ls auth.js config.js config.js.default constants.js jslint.conf routes.js

jonasthomas@jonasthomas-ThinkPad-W530:~/turtl/mobile/www$ ls config.js config.live.js core-adapter.js core-logs.js download.js events.js openssl-authority.js remember-me-adapter.js

I'm assuming it's ok to build the desktop and the android app from the same turtl sub folder. Is that correct? I don't understand what to do here:

So we grab our Turtl js project's source and the mobile source as siblings

When I try builiding I get: jonasthomas@jonasthomas-ThinkPad-W530:~/turtl/mobile$ sudo make release-android [sudo] password for jonasthomas: make: *** No rule to make target 'release-android'. Stop. So.. I'm thinking I probably need to install something like the Android Ndk?? Ohh.. This is getting complicated. Supposedly I'm better off using clang instead of gcc? If you have some recommended or work instructions would be appreciated. Ok.. It looks like cordova requires android-sdk. https://github.com/apache/cordova-android

orthecreedence commented 6 years ago

Are you building the v0.6.4 version of Turtl? Or the v0.7.0 version?

Tom3141 commented 6 years ago

Client version: desktop-0.7.0 00ae955809d03fa2e83b6d7733c1c96aa0384da8

orthecreedence commented 6 years ago

I'm assuming you have the core project building? If not, that's the first step, otherwise android/desktop will not work.

As far as the folder structure, it's

turtl/
  core/
  js/
  desktop/
  android/

so they should all have those exact names and should be next to each other in the turtl/ folder.

So for desktop, did you get it running? It's not clear from your messages.

For android, you'll need cordova and the android SDK (I don't think you need the NDK). Once you have those set up, you'll want to do

I think make release will install the plugins you need and everything.

Then you should have an apk in platforms/android/build/outputs/apk/android-release.apk.

Tom3141 commented 6 years ago

I did get the desktop running. (The latest version interesting. I'm looking forward to getting the android versions working.) I'm getting a weird error... Need to do a little googling here.

jonasthomas@jonasthomas-ThinkPad-W530:~/turtl/mobile$ cordova platform add android@6.3.0 Using cordova-fetch for cordova-android@6.3.0 Adding android project... Creating Cordova project for the Android platform: Path: platforms/android Package: com.lyonbros.turtl Name: Turtl Activity: MainActivity Android target: android-26 Subproject Path: CordovaLib Android project created with cordova-android@6.3.0 (node:4478) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: Source path does not exist: www/app/images/favicon.128.png

So I tried re-running the command and the error generated seem to indicate that android was installed. (When I tried to make release I got more errors: jonasthomas@jonasthomas-ThinkPad-W530:~/turtl/mobile$ cordova platform add android@6.3.0 Using cordova-fetch for cordova-android@6.3.0 (node:4769) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Platform android already added. jonasthomas@jonasthomas-ThinkPad-W530:~/turtl/mobile$ make release cat scripts/release-signing.properties.tpl \ | sed "s|{{ANDROID_SIGN_KEYSTORE}}||g" \ | sed "s|{{ANDROID_SIGN_ALIAS}}||g" \

platforms/android/release-signing.properties make[1]: Entering directory '/home/jonasthomas/turtl/js' make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/home/jonasthomas/turtl/js'

  • rsync project: ../js/main.js ../js/config/auth.js ../js/config/constants.js ../js/config/routes.js ../js/config/config.js ../js/controllers/settings/logs.js ../js/controllers/settings/delete_account.js ../js/controllers/settings/index.js ../js/controllers/settings/sync/item.js ../js/controllers/settings/sync/index.js ../js/controllers/settings/export.js ../js/controllers/settings/password.js ../js/controllers/help/markdown.js ../js/controllers/help/keyboard.js ../js/controllers/feedback/index.js ../js/controllers/spaces/sharing/index.js ../js/controllers/spaces/sharing/send.js ../js/controllers/spaces/edit.js ../js/controllers/spaces/members/item.js ../js/controllers/spaces/members/list.js ../js/controllers/error/index.js ../js/controllers/users/_base.js ../js/controllers/users/login.js ../js/controllers/users/welcome.js ../js/controllers/users/migrate.js ../js/controllers/users/must-login.js ../js/controllers/users/join.js ../js/controllers/pages.js ../js/controllers/0modules/form.js ../js/controllers/0modules/sidebar.js ../js/controllers/0modules/loading.js ../js/controllers/0modules/item-actions.js ../js/controllers/0modules/action.js ../js/controllers/0modules/header.js ../js/controllers/boards/move.js ../js/controllers/boards/edit.js ../js/controllers/invites/item.js ../js/controllers/invites/index.js ../js/controllers/notes/view.js ../js/controllers/notes/item.js ../js/controllers/notes/_note_base.js ../js/controllers/notes/search.js ../js/controllers/notes/list.js ../js/controllers/notes/index.js ../js/controllers/notes/edit/tags/list.js ../js/controllers/notes/edit/tags/index.js ../js/controllers/notes/edit/preview.js ../js/controllers/notes/edit/index.js ../js/controllers/notes/edit/file.js ../js/handlers/spaces.js ../js/handlers/notes.js ../js/handlers/invites.js ../js/handlers/users.js ../js/handlers/feedback.js ../js/handlers/boards.js ../js/handlers/settings.js ../js/lib/app/param_router.js ../js/lib/app/backstate.js ../js/lib/app/_functions.js ../js/lib/app/remember-me/_base.js ../js/lib/app/remember-me/localstorage.js ../js/lib/app/composer_sync.js ../js/lib/app/modal.js ../js/lib/app/handlebars.helpers.js ../js/lib/app/timer.js ../js/lib/app/public_setting.js ../js/lib/app/overlay.js ../js/lib/app/core-adaptors/_base.js ../js/lib/app/core-adaptors/websocket.js ../js/lib/app/keyboard.js ../js/lib/vnd/mooMasonry.js ../js/lib/vnd/loglevel.js ../js/lib/vnd/autocomplete.js ../js/lib/vnd/katex.js ../js/lib/vnd/markdown-it-task-lists.js ../js/lib/vnd/markdown-it.js ../js/lib/vnd/mootools-more-1.5.1.js ../js/lib/vnd/fuzzy.js ../js/lib/vnd/velocity.js ../js/lib/vnd/sexhr.js ../js/lib/vnd/bluebird.js ../js/lib/vnd/lunr.js ../js/lib/vnd/mootools-core-1.5.2.js ../js/lib/vnd/mobile.js ../js/lib/vnd/hammer.js ../js/lib/vnd/History.mootools.js ../js/lib/vnd/sodium.js ../js/lib/vnd/morphdom.js ../js/lib/vnd/markdown-it-katex.js ../js/lib/vnd/barfr.js ../js/lib/vnd/i18next.js ../js/lib/vnd/velocity.ui.js ../js/lib/vnd/composer.js ../js/lib/vnd/handlebars.runtime-v4.0.11.js ../js/models/user.js ../js/models/profile.js ../js/models/feedback.js ../js/models/tag.js ../js/models/search.js ../js/models/invite.js ../js/models/_sync.js ../js/models/space.js ../js/models/app.js ../js/models/board.js ../js/models/space_invite.js ../js/models/note.js ../js/models/member.js ../js/models/file.js ../js/index.html
  • www/version.js: scripts/gen-index config.xml ./node_modules/.bin/js-yaml ../core/config.yaml.default >> www/config-core.js /bin/bash: ./node_modules/.bin/js-yaml: No such file or directory Makefile:86: recipe for target 'www/config-core.js' failed make: *** [www/config-core.js] Error 127 jonasthomas@jonasthomas-ThinkPad-W530:~/turtl/mobile$
Tom3141 commented 6 years ago

I re-made it with a sudo and it seemed like that moved it along. jonasthomas@jonasthomas-ThinkPad-W530:~/turtl/mobile$ sudo make release [sudo] password for jonasthomas:

Discovered plugin "com.lyonbros.turtlcore" in config.xml. Adding it to the project Installing "com.lyonbros.turtlcore" for android Discovered plugin "cordova-plugin-file" in config.xml. Adding it to the project Installing "cordova-plugin-file" for android

The Android Persistent storage location now defaults to "Internal". Please check this plugin's README to see if your application needs any changes in its config.xml.

If this is a new application no changes are required.

If this is an update to an existing application that did not specify an "AndroidPersistentFileLocation" you may need to add:

  "<preference name="AndroidPersistentFileLocation" value="Compatibility" />"

to config.xml in order for the application to find previously stored files.

Discovered plugin "com.lyonbros.turtlstore" in config.xml. Adding it to the project Installing "com.lyonbros.turtlstore" for android ./scripts/cordova.sh compile android --release (node:5586) UnhandledPromiseRejectionWarning: CordovaError: Failed to find 'ANDROID_HOME' environment variable. Try setting setting it manually. Failed to find 'android' command in your 'PATH'. Try update your 'PATH' to include path to valid SDK directory. at /home/jonasthomas/turtl/mobile/platforms/android/cordova/lib/check_reqs.js:313:19 at _fulfilled (/home/jonasthomas/turtl/mobile/platforms/android/cordova/node_modules/q/q.js:854:54) at /home/jonasthomas/turtl/mobile/platforms/android/cordova/node_modules/q/q.js:883:30 at Promise.promise.promiseDispatch (/home/jonasthomas/turtl/mobile/platforms/android/cordova/node_modules/q/q.js:816:13) at /home/jonasthomas/turtl/mobile/platforms/android/cordova/node_modules/q/q.js:877:14 at runSingle (/home/jonasthomas/turtl/mobile/platforms/android/cordova/node_modules/q/q.js:137:13) at flush (/home/jonasthomas/turtl/mobile/platforms/android/cordova/node_modules/q/q.js:125:13) at process._tickCallback (internal/process/next_tick.js:61:11) at Function.Module.runMain (internal/modules/cjs/loader.js:745:11) at startup (internal/bootstrap/node.js:279:19) (node:5586) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1) (node:5586) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code. mv build/config.js.tmp www/config.js jonasthomas@jonasthomas-ThinkPad-W530:~/turtl/mobile$

Tom3141 commented 6 years ago

So.. I did a bit of googling and supposedly the solution is needed make an adjustment to my .bashrc where I added the following and rebooted.

export ANDROID_HOME=/home/jonasthomas/Android/Sdk 
export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

When I rebuilt the mobile app I got this:

jonasthomas@jonasthomas-ThinkPad-W530:~/turtl/mobile$ sudo make release [sudo] password for jonasthomas:

  • www/version.js: config.xml
  • index.html: www/version.js cp www/config.js build/config.js.tmp cp www/config.live.js www/config.js ./scripts/cordova.sh prepare android --release ./scripts/cordova.sh compile android --release (node:3920) UnhandledPromiseRejectionWarning: CordovaError: Failed to find 'ANDROID_HOME' environment variable. Try setting setting it manually. Failed to find 'android' command in your 'PATH'. Try update your 'PATH' to include path to valid SDK directory. at /home/jonasthomas/turtl/mobile/platforms/android/cordova/lib/check_reqs.js:313:19 at _fulfilled (/home/jonasthomas/turtl/mobile/platforms/android/cordova/node_modules/q/q.js:854:54) at /home/jonasthomas/turtl/mobile/platforms/android/cordova/node_modules/q/q.js:883:30 at Promise.promise.promiseDispatch (/home/jonasthomas/turtl/mobile/platforms/android/cordova/node_modules/q/q.js:816:13) at /home/jonasthomas/turtl/mobile/platforms/android/cordova/node_modules/q/q.js:877:14 at runSingle (/home/jonasthomas/turtl/mobile/platforms/android/cordova/node_modules/q/q.js:137:13) at flush (/home/jonasthomas/turtl/mobile/platforms/android/cordova/node_modules/q/q.js:125:13) at process._tickCallback (internal/process/next_tick.js:61:11) at Function.Module.runMain (internal/modules/cjs/loader.js:745:11) at startup (internal/bootstrap/node.js:279:19) (node:3920) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1) (node:3920) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code. mv build/config.js.tmp www/config.js

What's curious, is that is that if I run android from the command prompt I get this:

jonasthomas@jonasthomas-ThinkPad-W530:~/turtl/mobile$ android


The "android" command is deprecated. For manual SDK, AVD, and project management, please use Android Studio. For command-line tools, use tools/bin/sdkmanager and tools/bin/avdmanager


Invalid or unsupported command ""

Supported commands are: android list target android list avd android list device android create avd android move avd android delete avd android list sdk android update sdk jonasthomas@jonasthomas-ThinkPad-W530:~/turtl/mobile$

Is my only option to downgrade my Android sdk to one that supports the "android" command?

orthecreedence commented 6 years ago

Looks like ANDROID_HOME still isn't being set? Try

source ~/.bashrc
shsty commented 6 years ago

I followed the guide above (plus some googling), successfully built the android apk (v0.7.0) and installed it on my phone ( Android 5.1.1, I tried to build the apk because the released apks with minSdkVersion=23 doesn't support my phone ). However when I run the app it shows:

There was a problem loading:

Error: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.lyonbros.turtl-1/base.apk"],nativeLibraryDirectories=[/vendor/lib64, /system/lib64]]] couldn't find "libturtl_core.so" 
at file:///android_asset/www/core-adapter.js:145:38 at tryCatch1 (file:///android_asset/www/app/lib/vnd/bluebird.js:5004:21) 
at Promise$_callHandler [as _callHandler] (file:///android_asset/www/app/lib/vnd/bluebird.js:2562:13) 
at Promise$_settlePromiseFromHandler [as _settlePromiseFromHandler] (file:///android_asset/www/app/lib/vnd/bluebird.js:2576:18) 
at Promise$_settlePromiseAt [as _settlePromiseAt] (file:///android_asset/www/app/lib/vnd/bluebird.js:2739:14) 
at Promise$_settlePromises [as _settlePromises] (file:///android_asset/www/app/lib/vnd/bluebird.js:2882:14) 
at Promise$_rejectPromises [as _rejectPromises] (file:///android_asset/www/app/lib/vnd/bluebird.js:2875:10) 
at Async$_consumeFunctionBuffer [as _consumeFunctionBuffer] (file:///android_asset/www/app/lib/vnd/bluebird.js:150:12) 
at Async$consumeFunctionBuffer (file:///android_asset/www/app/lib/vnd/bluebird.js:113:14) 
at MutationObserver.Promise$_Scheduler (file:///android_asset/www/app/lib/vnd/bluebird.js:4210:17)

Seems that it lacks the native library libturtl_core.so. So how should I build it?

orthecreedence commented 6 years ago

libturtl_core.so requires rust, and the NDK for your android platform (to make a standalone gcc compiler for arm or arm64).

You have to compile libsodium, openssl, and turtl-core using the standalone NDK gcc.

It's actually kind of a pain in the ass, but I just made a script to automate it (and I have repeatable Dockerfile builds I'm going to publish soon): https://gitlab.com/fdroid/rfp/uploads/65dcd8fc5d19702c9e61ae2e8dfa5249/turtl-fdroid.tar.gz

This requires debian 9 (although you can probably get it working on any debian/ubuntu version if you want). It also includes a Dockerfile that just downloads debian and loads the build script into it (run it with ./build).

Hope this helps.

shsty commented 6 years ago

It worked! I didn't run the script but I used the args in it. Now I have a working app after some effort. Thanks for your help. Still it would be better for me if the official release supports android 5.1 and 5.0

orthecreedence commented 6 years ago

Glad it worked, closing this for now. @Tom3141 if you need any more assistance here feel free to ask on this ticket, i'll still monitor it.

Tom3141 commented 6 years ago

Hey Andrew, I tried your install script and it did not complete. (I'm a little out of my league here. Anythoughts?) Here is the error message:

Running build_core armv7
/tmp/turtl-build/turtl/core ~/fdroid
cargo build --target armv7-linux-androideabi --features "build-jni sqlite-static" --release
error: could not load Cargo configuration

Caused by:
  could not parse TOML configuration in `/home/jonasthomas/.cargo/config`

Caused by:
  could not parse input as TOML

Caused by:
  redefinition of table `target.armv7-unknown-linux-gnueabihf` for key `target.armv7-unknown-linux-gnueabihf` at line 16
Makefile:13: recipe for target 'build' failed
make: *** [build] Error 101

Here are the contents of /home/jonasthomas/.cargo/config

[target.armv7-unknown-linux-gnueabihf]
linker = "arm-linux-gnueabihf-gcc"

[target.arm-unknown-linux-gnueabihf]
linker = "arm-linux-gnueabihf-gcc"

[target.armv7-linux-androideabi]
linker = "arm-linux-androideabi-gcc"

[target.aarch64-unknown-linux-gnu]
linker = "aarch64-linux-gnu-gcc"

[target.aarch64-linux-android]
linker = "aarch64-linux-android-gcc"

[target.armv7-unknown-linux-gnueabihf]
linker = "arm-linux-gnueabihf-gcc"

[target.arm-unknown-linux-gnueabihf]
linker = "arm-linux-gnueabihf-gcc"

[target.armv7-linux-androideabi]
linker = "arm-linux-androideabi-gcc"

[target.aarch64-unknown-linux-gnu]
linker = "aarch64-linux-gnu-gcc"

[target.aarch64-linux-android]
linker = "aarch64-linux-android-gcc"
orthecreedence commented 6 years ago

Here's what I have in my ~/.cargo/config

[target.armv7-unknown-linux-gnueabihf]
linker = "arm-linux-gnueabihf-gcc"

[target.arm-unknown-linux-gnueabihf]
linker = "arm-linux-gnueabihf-gcc"

[target.armv7-linux-androideabi]
linker = "arm-linux-androideabi-gcc"

[target.aarch64-unknown-linux-gnu]
linker = "aarch64-linux-gnu-gcc"

[target.aarch64-linux-android]
linker = "aarch64-linux-android-gcc"
Tom3141 commented 6 years ago

My apologies about being a pain here. I think part of this was a mistake on my part. (I'm assuming that somehow I duplicated entries .cargo/config file. I eliminated the duplications, installed a couple of libraries and I moved it along. I seem to be having some issues linking to turtl core to arm-linux-androideabi-gcc Any thoughts?

Running build_core armv7
/tmp/turtl-build/turtl/core ~/fdroid
cargo build --target armv7-linux-androideabi --features "build-jni sqlite-static" --release
   Compiling turtl_core v0.1.1 (file:///tmp/turtl-build/turtl/core)
error: linking with `arm-linux-androideabi-gcc` failed: exit code: 1
  |
  = note: "arm-linux-androideabi-gcc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-Wl,--allow-multiple-definition" "-march=armv7-a" "-L" "/home/jonasthomas/.rustup/toolchains/1.28.0-x86_64-unknown-linux-gnu/lib/rustlib/armv7-linux-androideabi/lib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/turtl_core.turtl_core0-7eaf30b3f737923f4bb7444c815eb51.rs.rcgu.o" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/turtl_core.turtl_core1-7eaf30b3f737923f4bb7444c815eb51.rs.rcgu.o" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/turtl_core.turtl_core10-7eaf30b3f737923f4bb7444c815eb51.rs.rcgu.o" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/turtl_core.turtl_core11-7eaf30b3f737923f4bb7444c815eb51.rs.rcgu.o" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/turtl_core.turtl_core12-7eaf30b3f737923f4bb7444c815eb51.rs.rcgu.o" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/turtl_core.turtl_core13-7eaf30b3f737923f4bb7444c815eb51.rs.rcgu.o" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/turtl_core.turtl_core14-7eaf30b3f737923f4bb7444c815eb51.rs.rcgu.o" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/turtl_core.turtl_core15-7eaf30b3f737923f4bb7444c815eb51.rs.rcgu.o" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/turtl_core.turtl_core2-7eaf30b3f737923f4bb7444c815eb51.rs.rcgu.o" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/turtl_core.turtl_core3-7eaf30b3f737923f4bb7444c815eb51.rs.rcgu.o" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/turtl_core.turtl_core4-7eaf30b3f737923f4bb7444c815eb51.rs.rcgu.o" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/turtl_core.turtl_core5-7eaf30b3f737923f4bb7444c815eb51.rs.rcgu.o" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/turtl_core.turtl_core6-7eaf30b3f737923f4bb7444c815eb51.rs.rcgu.o" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/turtl_core.turtl_core7-7eaf30b3f737923f4bb7444c815eb51.rs.rcgu.o" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/turtl_core.turtl_core8-7eaf30b3f737923f4bb7444c815eb51.rs.rcgu.o" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/turtl_core.turtl_core9-7eaf30b3f737923f4bb7444c815eb51.rs.rcgu.o" "-o" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libturtl_core.so" "-Wl,--version-script=/tmp/rustc.HyXewQwUbms2/list" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/turtl_core.crate.allocator.rcgu.o" "-Wl,--gc-sections" "-Wl,-z,relro,-z,now" "-Wl,-O1" "-nodefaultlibs" "-L" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps" "-L" "/tmp/turtl-build/turtl/core/target/release/deps" "-L" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/build/openssl-2edc40c7304c6486/out" "-L" "/tmp/turtl-build/openssl/armv7-linux-android/lib" "-L" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/build/openssl-sys-extras-ddf5df248306d1d3/out" "-L" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/build/libsqlite3-sys-5a766a51032ef0ee/out" "-L" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/build/backtrace-sys-0f9047ae8b3aa598/out/.libs" "-L" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/build/rust-crypto-c4376b40def3967c/out" "-L" "/tmp/turtl-build/libsodium/arm-linux-androideabi/lib" "-L" "/home/jonasthomas/.rustup/toolchains/1.28.0-x86_64-unknown-linux-gnu/lib/rustlib/armv7-linux-androideabi/lib" "-Wl,-Bstatic" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libjni-125b077118638a0a.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libcesu8-64e2051d985791e8.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libcombine-454a3412b1c13d7a.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libascii-54a5bc12f2bd1440.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/liberror_chain-e2f108c6b451d83b.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libbacktrace-34de5ff6ab498940.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libbacktrace_sys-5831d4cb47475880.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/librustc_demangle-26cd1fcdde4775b7.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libjni_sys-59c16c1a42628eea.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libsodiumoxide-165dde4274fbc6ff.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/liblibsodium_sys-8188753ebf86a6ed.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libmigrate-05eb521c5c1dd8d2.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libencoding_rs-0d30b20a8ce15dcd.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libcrypto-ed0f490dd0e72a87.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/librand-0497ebce8cf0b30f.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/librand-3e793daab1af8d66.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/liblib_permissions-4be3c82f596f5e89.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libhex-47fe80d4b347a22c.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libglob-2f0d501680b281d5.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libfutures_cpupool-4be9ac1afff41b28.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libfutures-6792f08fcd5d1b44.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libfs2-2887e15f61673abe.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libdumpy-48015944bc9c3c0b.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libcrossbeam-47aa3bcc5f5c541f.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libconfig-b126cd19e5031024.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libclouseau-d5a83be4503781e0.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/librusqlite-3a639137e70d0e0f.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libbitflags-3da4a3402c43447c.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/liblru_cache-6a498ec0dd5b7cfd.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/liblinked_hash_map-fa60900383fdd5bb.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/liblibsqlite3_sys-f91a6b8db8675ff7.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libclippo-e0b7d9a00a03e1c4.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libscraper-67a35320bd00662f.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libselectors-700d0ad1212633ac.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libfnv-cbe90f98c79e83fe.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libsmallvec-b52ded8355a33eca.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libquickersort-3420be403640ac5b.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libnodrop-e30dacc2b26e07e4.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libhtml5ever-20936a26dfb25727.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libtendril-ba95775c3a8c0879.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libutf8-b00b89439d517f00.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libfutf-c9c33a1133148569.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libphf-c1f37a6451b631ea.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libmac-80374aad8f891866.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libstring_cache-5eaeeb169b0d50c6.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libphf_shared-8570e43986115898.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libsiphasher-fd10a6f7e0d9f930.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libserde-31bc505ce36adde0.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libdebug_unreachable-8c07f1b8e9dfa0d3.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libunreachable-9a8da47913a6950f.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libvoid-a8e9268311f272e4.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libego_tree-9f63987325f1d6ca.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libcssparser-ff943a3bf963c151.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libencoding-4e261ed4b0e27aeb.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libencoding_index_tradchinese-dcc29c05ac7097a3.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libencoding_index_simpchinese-b3c6cfb18519f630.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libencoding_index_japanese-24a890694eb9a8c8.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libencoding_index_korean-ec78bfd34a2c3c0e.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libencoding_index_singlebyte-f3286969de7c9954.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libregex-1bd43312bc8976bc.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libutf8_ranges-b1bdf5bef10113ef.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libregex_syntax-9a18d6e333260f37.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libthread_local-fbd35d3e02060bc7.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libthread_id-ceaaa6d05da19f5e.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libaho_corasick-724abfedf81ef4bd.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libmemchr-355b71a72ab23100.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libjedi-784f28055f6f28cf.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libserde_yaml-436c28e8367c50be.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libyaml_rust-cc9846cb68605d3d.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/liblinked_hash_map-f4713abe00f21e12.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libserde_json-724501a7fd16a5ce.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libdtoa-68220bfe21a9bbe7.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libitoa-3397a4564252c08c.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libnum_traits-3d7afb62351ec108.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libnum_traits-c08d74ee5a6b4f51.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libserde-9ae54bb85a4f291d.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libhyper-310646cec5fa9e5f.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libmime-cbf5ee241e24ed71.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/liblanguage_tags-a05757af8a65554e.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libsolicit-0914bab1afe51cfe.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libhpack-7b7b573e96165996.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/liblog-658b0d74a3b51af5.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libtypeable-82e2ff949090f124.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libtraitobject-a64b2fba6b6b0b04.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libnum_cpus-aab28047eb07ff0d.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libhttparse-f23b222cea072b31.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libunicase-da0497400c9af997.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libcookie-cb2f114eddeaf4b4.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libopenssl_verify-94c0c4e3dacd14b8.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libopenssl-4816217f0bf037bc.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libopenssl_sys_extras-8aecad420a4bdccd.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libopenssl_sys-7fa414a64fccad73.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libbitflags-9cafd9e78cc10805.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/liburl-967177d7a7d1d3ba.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libpercent_encoding-8acd65831fea63ac.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libidna-6a12149f867074a4.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libunicode_normalization-b4c16489c9b342fc.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libunicode_bidi-7acb18ecf1ba1067.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libmatches-22f3c8f0728714a0.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libtime-eb032f48a90f92ea.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/liblibc-7f0ab74f5728bf7c.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/librustc_serialize-62cfb67f2283a009.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libfern-836c94ad7ed129cd.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/liblog-633a4f63eeac865c.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libcfg_if-feaa1a38093c6ab9.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libcarrier-c9535b765f6afa0b.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libquick_error-f8a33684ecfe4eac.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/liblazy_static-f4ce19faecf5cd71.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libcrossbeam-49d8d3a67472adb6.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libbase64-ce8690ba601309d9.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libsafemem-1d104dcbed378dc8.rlib" "/tmp/turtl-build/turtl/core/target/armv7-linux-androideabi/release/deps/libbyteorder-424463389fc6cfe1.rlib" "-Wl,--start-group" "/home/jonasthomas/.rustup/toolchains/1.28.0-x86_64-unknown-linux-gnu/lib/rustlib/armv7-linux-androideabi/lib/libstd-9a440ef90899818f.rlib" "/home/jonasthomas/.rustup/toolchains/1.28.0-x86_64-unknown-linux-gnu/lib/rustlib/armv7-linux-androideabi/lib/libpanic_unwind-7bed87070cafeede.rlib" "/home/jonasthomas/.rustup/toolchains/1.28.0-x86_64-unknown-linux-gnu/lib/rustlib/armv7-linux-androideabi/lib/libunwind-8cd3b0417a81fb26.rlib" "/home/jonasthomas/.rustup/toolchains/1.28.0-x86_64-unknown-linux-gnu/lib/rustlib/armv7-linux-androideabi/lib/liballoc_system-387bd949d1b36a91.rlib" "/home/jonasthomas/.rustup/toolchains/1.28.0-x86_64-unknown-linux-gnu/lib/rustlib/armv7-linux-androideabi/lib/liblibc-453d825a151d7dec.rlib" "/home/jonasthomas/.rustup/toolchains/1.28.0-x86_64-unknown-linux-gnu/lib/rustlib/armv7-linux-androideabi/lib/liballoc-5235bf36189564a3.rlib" "/home/jonasthomas/.rustup/toolchains/1.28.0-x86_64-unknown-linux-gnu/lib/rustlib/armv7-linux-androideabi/lib/libcore-5725e7f9b84bd931.rlib" "-Wl,--end-group" "/home/jonasthomas/.rustup/toolchains/1.28.0-x86_64-unknown-linux-gnu/lib/rustlib/armv7-linux-androideabi/lib/libcompiler_builtins-874d313336916306.rlib" "-Wl,-Bdynamic" "-l" "dl" "-l" "log" "-l" "gcc" "-l" "gcc" "-l" "c" "-l" "m" "-shared"
  = note: /usr/lib/gcc/arm-linux-androideabi/4.7.4/../../../../arm-linux-androideabi/bin/ld: error: cannot find -llog
          collect2: error: ld returned 1 exit status

error: aborting due to previous error

error: Could not compile `turtl_core`.

To learn more, run the command again with --verbose.
Makefile:13: recipe for target 'build' failed
make: *** [build] Error 101
Tom3141 commented 6 years ago

I'm thinking my last issue is a critter within libsodium https://github.com/jedisct1/libsodium/releases/download/1.0.16/libsodium-1.0.16.tar.gz

I submitted an issue: https://github.com/jedisct1/libsodium/issues/768

Tom3141 commented 6 years ago

Ok.. As as the SIZE_MAX, I found a workaround. I think that's a libsodium specific issue using gcc which I detailed on the link above.

Once I got past that I had this showing up again:

~/turtl-build/turtl/core ~/fdroid cargo build --target armv7-linux-androideabi --features "build-jni sqlite-static" error: could not load Cargo configurationCaused by: could not parse TOML configuration in /home/jonasthomas/.cargo/configCaused by: could not parse input as TOMLCaused by: redefinition of table target.armv7-unknown-linux-gnueabihf for key target.armv7-unknown-linux-gnueabihf at line 17 Makefile:13: recipe for target 'build' failed make: *** [build] Error 101

What I think that's happening is that when I rerun your script somehow /.cargo/config keeps getting appended and entries duplicated(deleting the duplicates addresses that issue)

One other issue that threw me for a while: error: linking with arm-linux-androideabi-gcc failed: exit code: 1

You mentioned:

 # sets up rust with the targets we need for compilation. like the apt deps, this
# can probably be removed from this and just set up once.
#
# our system uses rust 1.28, but it will almost certainly work with earlier
# versions.
function setup_rust() {

Apparently, I had previously installed gcc-arm-linux-androideabi which caused the error when I ran the script

sudo apt-get remove gcc-arm-linux-androideabi seemed to fix that should anyone run into that same error.

I managed to get the script to run successfully and now I need to build and install the apk. When I check out: https://github.com/turtl/android/blob/master/README.md I see: Building/running

Docs coming soon.

Ok... This seems to be a new issue.