sugarlabs / JClic

JClic Sugar activity
GNU General Public License v3.0
0 stars 3 forks source link

Depends on Java activity #3

Open tony37 opened 7 years ago

tony37 commented 7 years ago

The activity fails at line 65 in activity.py:

keyerror: "SUGAR_ACTIVITIES_PATH"

on Ubuntu 16.04 sucrose

This code apparently is attempting to determine if the java activity is installed. Users need to know of this dependency. In the Ubuntu version activities have two possible paths:

/usr/share/sugar/activities

or

/home/username/Activities

SUGAR_ACTIVITIES_PATH if implemented needs to know how to deal with the Java activity installed in the image (/usr/share/sugar/activities) or by the user (/home/username/Activities).

My sense is that Ubuntu based Sugar will not have the storage limitations of the XO and java could be installed in Ubuntu and the activities dependent on Java modified accordingly.

After installing jre (sudo apt-get install default-jre and commenting out the test for java.activity, the activity works on Ubuntu 16.04 sucrose.

vipulgupta2048 commented 6 years ago

@quozl A wild guess. But could we add JDR in the requirements or the dependency file? Just like when a program is being installed, the dependencies get installed too. So if the installation of JRE fixes the issue then why not add it. {This is really not my area but still exploring. I apologize.}

My sense is that Ubuntu-based Sugar will not have the storage limitations of the XO and java could be installed in Ubuntu and the activities dependent on Java modified accordingly.

And Java can be installed easily without any storage issues.

quozl commented 6 years ago

@vipulgupta2048 the Sugar bundles don't have dependencies, they are supposed to include everything they need within the bundle unless the platform has already provided it. See activity bundles.

We don't have a standard way to declare a dependency. We don't have a standard cross-platform way to resolve a dependency at run-time, though there are attempts to do so. This activity has an attempt at least to warn the user and not run. That code is defective, as @tony37 identified.

The storage limitations of the XO-1 are quite significant. The Fedora 18 OLPC OS build for the XO-1 has only a handful of megabytes free, so installing Java typically means removing something else first, and because of the way the olpc-update symlink farm works, the removal has to be an activity from /home/olpc rather than an RPM. For best results, people use the Fedora 18 OLPC OS builder to turn off the olpc-update feature to gain a bit more space to add dependencies by hand. They also remove GNOME desktop.

For using this activity on a platform other than Fedora 18 OLPC OS, such as Ubuntu 16.04, some patching is needed.

vipulgupta2048 commented 6 years ago

I understood the problem, but need to work and acquaint myself with the code. Thanks for the description. I am working on the build issue, right now. Have too much on the plate. I have added this to my checklist. Will take a look when that is done.