Changes
Running Linux Applications Under Sugar (view source)
Revision as of 22:53, 13 July 2008
, 22:53, 13 July 2008→Comments
I haven't been able to get this to work in Update.1 --[[leetcharmer]]
I haven't been able to get this to work in Update.1 --[[leetcharmer]]
Rob - I modified the script to work in Update 1 for SeaMonkey, but it requires an effective disabling of security. The crux of the problem is that Rainbow runs your application as a totally new user each time (never as "olpc"), and that these "on-the-fly" users don't have write access to their home directories. All of these users are created in the same persistent group, and all share write access to a common "data" directory for the group. (The preceding is just a paraphrase of the Rainbow docs - should likely be a link). In the case of non-Sugar apps, the application has no idea that the usual role of a user has been migrated to a group, and so the application is unlikely to create it's data files with the correct permissions.
Rob - I modified the script to work in Update 1 for SeaMonkey, but it requires an effective disabling of security. The crux of the problem is that Rainbow 1) runs your application as a totally new user each time (never as "olpc"), 2) these "on-the-fly" users don't have write access to their home directories, and 3) these "on-the-fly" users are destroyed on reboot. All of these users are created in the same persistent group, and all share write access to a common "data" directory for the group. (The preceding is just a paraphrase of the Rainbow docs - should likely be a link). In the case of non-Sugar apps, the application has no idea that the usual role of a user has been migrated to a group, and so the application is unlikely to create it's data files with the correct permissions. Further, since the "on-the-fly" users are destroyed on each reboot, if the username appears in persistent data (e.g., absolute pathnames), the application will fail after a reboot. All of these issues are addressed in the following for the SeaMonkey application.
'''Note Well:''' ''The following instructions essentially remove all security on your machine. If you have set passwords on any of the machine accounts (root, olpc, etc.), likely you don't want to execute these instructions.''
'''Note Well:''' ''The following instructions essentially remove all security on your machine. If you have set passwords on any of the machine accounts (root, olpc, etc.), likely you don't want to execute these instructions.''
# Causes SeaMonkey to put the .mozilla directory in a
# Causes SeaMonkey to put the .mozilla directory in a
# place that is writable, and also where Rainbow wants
# place that is writable, and also where Rainbow wants
# it. SUGAR_ACTIVITY_ROOT/data is not suitable since it
# it. SUGAR_ACTIVITY_ROOT/data is a link to the same
# contains a reference to a user that will be destroyed
# place, but it contains a reference to a user that will
# be destroyed on reboot, and SeaMonkey stores absolute
# in its persistent data.
# pathnames in its persistent data.
export HOME="/home/olpc/isolation/1/gid_to_data_dir/$GROUPS"
export HOME="/home/olpc/isolation/1/gid_to_data_dir/$GROUPS"