octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Octave on Android


From: Corbin Champion
Subject: Re: Octave on Android
Date: Tue, 22 Oct 2013 09:35:51 -0700




On Tue, Oct 22, 2013 at 8:24 AM, John Swensen <address@hidden> wrote:



On Tue, Oct 22, 2013 at 11:07 AM, John Swensen <address@hidden> wrote:
After looking through https://github.com/corbinlc/octave4android/blob/master/octave/src/com/octave/octaveMain.java I am not convinced that everything needed to get this working is being provided. If you look at the member functions
private void unpackAll(),
private void installPackage(String packageName), and
private boolean updateRequired(String packageName),
it seem apparent that the obfuscated filenames found in the 
directory seem to be the actually binaries created by some other build process that is not included herein. So, essentially this seems to be the terminal launcher for Android that loads shared libraries created with some other build environment that transforms the Octave binaries into the Android package format. I looked through the rest of the build files and other resources and the process of building Octave for ARM and subsequently generating the Android package files is not included in this Github repository (maybe he has another non-public one?).

John Swensen



On Tue, Oct 22, 2013 at 10:16 AM, c. <address@hidden> wrote:

On 22 Oct 2013, at 16:07, Jordi Gutiérrez Hermoso <address@hidden> wrote:

> I believe this is precisely that required source code. This looks like
> the line that you have to change if you want to create a version that
> does not ask for a donation for these two packages:
>
>   https://github.com/corbinlc/octave4android/blob/master/octave/src/com/octave/octaveMain.java#L232
>
> Corbin, am I correct, or is there more required to build this package?

If that is so that's cool! I'd love to try and build and run Octave on my Galaxy ...
Corbin, can you confirm that evrything I need is on github?

> - Jordi G. H.
c.


Sorry for top-posting on my last one (mental lapse). I am going to give a little added information to my last statement. Many of the files in https://github.com/corbinlc/octave4android/tree/master/octave/libs/armeabi are not actually shared libraries. Some of them are lists of files (e.g. https://github.com/corbinlc/octave4android/blob/master/octave/libs/armeabi/lib__install_link.so), some of them are m-files (e.g. https://github.com/corbinlc/octave4android/blob/master/octave/libs/armeabi/lib__file999.so) and some of them are binary files (e.g. https://github.com/corbinlc/octave4android/blob/master/octave/libs/armeabi/lib__file0.so). They do appear to just be a renaming/packaging of a cross-compiled tree of an octave build, but as to how this is generated from the build tree I am not exactly sure. Maybe someone with more Android dev experience could point this out.

John Swensen



John Swensen,

Good reverse engineering :)  Please just ask me questions.  I have never tired to be secretive about this project or its code.

The files that are under libs get installed to /data/data/com.octave/lib .  This is not my doing, this is how Android APKs are installed.  Similarly, the libs directory of packages like the ODE package gets put in a similar place.  The java code, then puts these files in a more normal directory tree.

There is no source code modification for any of the packages provided.  The lib directory of a package simply provide a renaming of the files .m and .oct that I get when build a given package.  There were a couple of C code modifications for Octave itself, but those have been pushed back as patches. 

Richard Crozier,

Thank you.  This is the first request I have received for this package and one of the first for any of my work.  I checked and actually, I only had the source code for the octave app pushed up there and not the packages.  I have pushed up the source code for the ODE package, but will push the others later, when I have a few minutes to work on it.  What do you need to build the package or Octave for Android itself:

If you want to recompile Octave for armel, you can do so, in a normal fashion (if there is a normal way to cross compile, I now prefer just creating an ARM image per debootstrap and building in there via QEMU).  The only thing that is required is that you set the prefix properly.  I have pushed some patches described here https://github.com/corbinlc/octave4android/wiki/Octave-Source-Changes .

You also need eclipse and the android-sdk.  That is about it.

If you are serious, please do try it out and tell me what is missing.  If you are just showing how someone is allowed and is supposed to request source code if they want it, I appreciate the example.  I have a very large change coming to Octave and the packages relatively soon (before Christmas I would guess).  It will make the old way of building obsolete.

This will include: Building things off of stable released .deb files instead of compiling it myself.  More packages (maybe all of them) which will also be more directly based of the .deb files.  No renaming of files and including them as assets instead of libraries.  Moving 90% of the files to the sdcard.  Better plot output handling.  This will provide numerous features and fix various bugs.  It will also be easier to maintain, build and understand. 

Jordi,

Agreed.  I figure anyone can modify the code if they want. 

Thomas,

Was your issue that you could not find the source code and didn't realize, as a user, you could make a request for it?  Or did you think that charging for GPL licensed programs is not allowed (but actually is)?  Trust me, I have struggled over this.  With the various projects I have, I actually have a lot of users and get contacted a lot and am continuously improving my apps (the number of hours I have for this is small, so this may not be obvious).  I expected that others would want to contribute time/skill, but I don't get emails about that.  I get emails about bugs, feature requests and how to do a particular thing.  I also get effectively love letter and hate mail.  I didn't charge for a long time, but I now believe (knowing myself) that I will provide a better product with some small incentive.  I have made that payment requirement have very minimal impact on the users and I have made the source code available so it can be modified.  If you know a little something about Android and my source code, the payment can be bypassed in a couple of ways that doesn't even require source code modification (nothing illegal, just the right file in the right place).  Can we tone this down a bit?  Can you drop your complaint to Google until you are sure there is a valid complaint to be made? 

Thanks everyone,
Corbin

reply via email to

[Prev in Thread] Current Thread [Next in Thread]