[sugar] Squeak / Etoys RPMs
Ian Bicking
ianb
Mon Oct 9 13:12:14 EDT 2006
Marco Pesenti Gritti wrote:
> Ivan Krsti? wrote:
>> Marco Pesenti Gritti wrote:
>>
>>> * How do we pack executable code and resources in an activity bundle?
>>> distutils, setuptools, auto*, something else? I don't think we want to
>>> force people to use *one* build system but there should be at least a
>>> suggested/documented one.
>>>
>>
>> Right. So, it sounds like all of these systems will need to get extended
>> to support our bundle format; let's pick one to begin with, and do the
>> rest later (and the community might contribute them). I'd trust Ian's
>> judgment on picking an initial build system to bootstrap.
>>
>>
>
> Yeah, I don't think auto* is going to be a good base anyway and Ian's
> plan about setuptools made sense to me. Now, if Ian could work with Bert
> to port the etoys activity over setuptools, I think that would be a good
> basic test of his plan (the etoys activity looks really simple to
> "package").
This doesn't make sense to me. Here's how I see the situation:
Activity bundles are a format. That format includes:
* How to recognize a bundle (e.g., on a Mac the bundle name must end in
".app")
* What the internal directory structure of the bundle is
* Where metadata goes, and in what format
* If there is a signature process, then what gets signed and where that
signature goes
The metadata is the hard one. Currently there seems to be:
* An icon and a name (both internationalized)
* A routine to run when the activity is installed
* Maybe a routine to "run" the activity itself? Or perhaps this is
registered by the installation routine
* A deinstallation/deactivation routine
This list seems much too short to me. A central registry of things like
mime handlers seems important. Do we allow for scripts to be run when
the machine starts up? Or do we allow for just some particular things
-- for instance, a declaration that the activity should handle certain
events when they appear on the bus? Since a bundle implies that more
than one bundle providing the same (or equivalent) functionality can be
on the machine at one time, there has to be management above this. Does
that management simply detect conflicts, and activate one bundle and not
the other? Or does every aspect where activities conflict get managed
separately? For instance, you could reasonably want two bundles to both
get an event. Or you can ask the user what the do when a certain file
type has to be handled.
And then there's a bunch of other issues when activities extend other
activities.
Anyway, these are the bundle questions. The build process is entirely
separate, and I wouldn't actually consider it very related.
There's also setuptools. I think setuptools is a good way of building
Python-based activity bundles. I don't think it has anything to offer
for non-Python systems. For something like EToys, very possibly the
right thing is to simply create the bundle by hand, or with a small
number of scripts that fit with the EToys/Squeak release process.
Another useful build tool might be a simple skeleton creator, that asks
a few questions and sets up the appropriate directories and some
well-commented example config files.
--
Ian Bicking | ianb at colorstudy.com | http://blog.ianbicking.org
More information about the Sugar-devel
mailing list