Closed Tom3141 closed 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.
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
Are you building the v0.6.4 version of Turtl? Or the v0.7.0 version?
Client version: desktop-0.7.0 00ae955809d03fa2e83b6d7733c1c96aa0384da8
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
cordova platform add android@6.3.0
make release
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
.
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$
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:
www/cacert.js: scripts/cacert.pem ./scripts/cordova.sh prepare android --release Discovered plugin "cordova-plugin-whitelist" in config.xml. Adding it to the project Installing "cordova-plugin-whitelist" for android
This plugin is only applicable for versions of cordova-android greater than 4.0. If you have a previous platform version, you do *not* need this plugin since the whitelist will be built in.
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$
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?
Looks like ANDROID_HOME
still isn't being set? Try
source ~/.bashrc
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?
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.
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
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.
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"
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"
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
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
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/config
Caused by: could not parse input as TOMLCaused by: redefinition of tabletarget.armv7-unknown-linux-gnueabihf
for keytarget.armv7-unknown-linux-gnueabihf
at line 17 Makefile:13: recipe for target 'build' failed make: *** [build] Error 101What 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.
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.
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?