Hi,

was wondering if anyone else seen build problems with building Boinc for Android. Problems start with the build_boinc.sh script. So here's a little context:

OS/distro: Linux Mint 15, x86_64
uname -r: 3.5.0-17-generic
3GB RAM, 38GB free disk space

Android SDK: v1.6 release 1
Android NDK: ndk-r9
gcc -v: 4.7.2

Got the BOINC source code from: git://boinc.berkeley.edu/boinc-v2.git

Followed the build instructions from: http://boinc.berkeley.edu/trac/wiki/AndroidBuildClient

In particular:

- I ensured I exported a correct NDKROOT env var for my system

- script ./build_androidtc.sh works fine and puts the Android toolchain in ~/android-tc as expected

- modified build_openssl.sh to point to my OpenSSL source dir and the script build_openssl.sh executes fine with no errors
(OpenSSL source I cloned from: git://git.openssl.org/openssl.git)

- modified build_curl.sh to point to my curl source dir and the script build_curl.sh executes fine with no errors
(curl source I cloned from: git://github.com/bagder/curl.git)

So running each of the three above scripts on their own or as part of the "build_all.sh" script succeeds.

The point things start going wrong is with the script "build_boinc.sh", whether run "standalone" or called as part of the chain of build scripts in "build_all.sh"

Here are the issues:

1.
Lines 16-17:
export OPENSSL_DIR=$BOINC/../boinc_depends_android_eclipse/openssl
export CURL_DIR=$BOINC/../boinc_depends_android_eclipse/curl

These paths don't exist on my system, so I changed them to point to the same place as in build_openssl.sh and build_curl.sh respectively. That mod isn't documented on the http://boinc.berkeley.edu/trac/wiki/AndroidBuildClient webpage.

2.
That got me somewhat further and up to a compile error for the step "making all in api" in build_boinc.sh:

  CXX    boinc_api.lo
boinc_api.cpp: In function 'void worker_signal_handler(int)':
boinc_api.cpp:1247:35: error: 'timer_thread_id' was not declared in this scope

Fix: "timer_thread_id" should be "timer_thread_handle".

Got past that one, and...

3.
"Copy Assets" step in "build_boinc.sh": couldn't find the file ca-bundle.crt in my curl source tree, which is correct - the file isn't there. However, there is a file in ../curl (from the BOINC/android directory, so still inside the BOINC source tree) called ca-bundle.crt. So I'm guessing the build script is just looking in the wrong (curl) place?
Fixed that problem on line 70 of the build_boinc.sh script like so:

cp "$CURL_DIR/ca-bundle.crt" "BOINC/assets/ca-bundle.crt"
=>
cp "$BOINC/curl/ca-bundle.crt" "BOINC/assets/ca-bundle.crt"

Script build_boinc.sh now happily finding copying the file ca-bundle.crt, and builds correct, although with some compiler warnings still ("incorrect %lu specifier" and such-like...)

The script build_all.sh, with the above fixes to build_boinc.sh, now _almost_ completes successfully, with the last line of build_all.sh attempting to call the non-existent script "./copy_assets.sh"


Background:

One of the reasons I wanted to build the Android client is to use the external storage on my mobile for at least the app data (BOINC's "projects" directory) as right now I can install the Boinc client (+ manager) through Google's Play Store on my mobile (LG E400) but it refuses to run any apps saying "disk space too low" - which it is: system memory is only 157MiB with ~40MiB free, and I need around 100MB free. However, I do have an "internal storage" (*) area which is a separate 1024MiB partition with 985 MiB free, which would be ideal for the BOINC projects directory.

* Confusingly: what is displayed as "internal storage" on my mobile is what is usually referred to as "external storage" for the app install/ data storage location, which it kind-of is, but isn't the SD Card as such, which is separate again at 4GiB but is not available for use from the mobile. Here's more about it: http://developer.android.com/guide/topics/data/data-storage.html#filesExternal . In particular in the case of my mobile: "It's possible that a device using a partition of the internal storage for the external storage may also offer an SD card slot. In this case, the SD card is not part of the external storage and your app cannot access it (the extra storage is intended only for user-provided media that the system scans)."

I see from http://boinc.berkeley.edu/trac/wiki/AndroidBoincTodo that Hugo Puhlmann is already working on SD card support. I'm assuming here is meant "external storage" rather than explicitly SD Card (as above)? If so, then perhaps we can pool resources to get a little more leverage on this feature - it's something I as a BOINC on Android user really need - otherwise I can't - for all practical purposes - use BOINC Android on my mobile.

_______________________________________________
boinc_dev mailing list
[email protected]
http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
To unsubscribe, visit the above URL and
(near bottom of page) enter your email address.

Reply via email to