Re: [Sugar-devel] Activity packaging

2010-08-08 Thread Gary Martin
On 8 Aug 2010, at 15:18, Jon Nettleton  wrote:

>> 
>> But the one of core ideas to not use only regular packaging systems
>> (via PackageKit or directly) is having this, natural and desired,
>> scenario for sugar ecosystem:
>> 
>> * there is an activity,
>> * several users might decide to experiment w/ this activity
>>  (i.e. change its code) and share this results
>> * third user wants to try all these experiments (including pristine
>>  activity)
>> 
>> This scenario is pretty undoable (by design) in native packaging systems
>> but 0install is designed to support scenarios like that (all
>> activity implementation are stored in separate directories in user's
>> home and can be launched in any time and even at the same time).
> 
> This doesn't sound like a package management system scenario.  Really
> this sounds like a revision control system is needed.  Wouldn't it
> make the most sense to integrate bzr or git into sugar to handle code
> sharing like this?  Then you could continue to have all the Activities
> in a single directory with multiple branches to can be switched
> between on the fly through a sugar interface.

FWIW this is certainly the way I've worked on activities in Sugar for some time 
now, my ~/Activities is mainly git clones.

--Gary 

> -Jon
> ___
> olpc mailing list
> o...@lists.fedoraproject.org
> https://admin.fedoraproject.org/mailman/listinfo/olpc
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: [Sugar-devel] Activity packaging

2010-08-08 Thread Aleksey Lim
On Sun, Aug 08, 2010 at 07:18:51AM -0700, Jon Nettleton wrote:
> >
> > But the one of core ideas to not use only regular packaging systems
> > (via PackageKit or directly) is having this, natural and desired,
> > scenario for sugar ecosystem:
> >
> > * there is an activity,
> > * several users might decide to experiment w/ this activity
> >  (i.e. change its code) and share this results
> > * third user wants to try all these experiments (including pristine
> >  activity)
> >
> > This scenario is pretty undoable (by design) in native packaging systems
> > but 0install is designed to support scenarios like that (all
> > activity implementation are stored in separate directories in user's
> > home and can be launched in any time and even at the same time).
> 
> This doesn't sound like a package management system scenario.  Really
> this sounds like a revision control system is needed.  Wouldn't it
> make the most sense to integrate bzr or git into sugar to handle code
> sharing like this?  Then you could continue to have all the Activities
> in a single directory with multiple branches to can be switched
> between on the fly through a sugar interface.

Well, I thought also about vcs but came to decision that it sounds
like misusing of vcs:

* vcs is all about sources (storing binaries is possible but is misusing),
* all sugar related code will be shared only in sources, which is not
  bad in general (especially as an option) but sounds overkill for
  binary-based activities
* all dependencies should be stored in vcs and deployed via vcs as well
  (otherwise system should be not pure vcs and will look pretty ugly)

Also there is no need in storing results of experiments in vcs at
all, e.g., doer just tweaks his local code and let 0sugar share it w/o
commiting to vcs server(which should be used to fetch sources on client
side), supporting per doer vcs servers would sound pretty overkill.

Some kind of binding vcs repos with packaging/distribution stuff is
possible and afaik many GNU/Linux distribution do packaging from, e.g.,
git repos (we can do similar things on our OBS), but they don't mix vcs
and distribution.

-- 
Aleksey
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: [Sugar-devel] Activity packaging

2010-08-08 Thread Jon Nettleton
>
> But the one of core ideas to not use only regular packaging systems
> (via PackageKit or directly) is having this, natural and desired,
> scenario for sugar ecosystem:
>
> * there is an activity,
> * several users might decide to experiment w/ this activity
>  (i.e. change its code) and share this results
> * third user wants to try all these experiments (including pristine
>  activity)
>
> This scenario is pretty undoable (by design) in native packaging systems
> but 0install is designed to support scenarios like that (all
> activity implementation are stored in separate directories in user's
> home and can be launched in any time and even at the same time).

This doesn't sound like a package management system scenario.  Really
this sounds like a revision control system is needed.  Wouldn't it
make the most sense to integrate bzr or git into sugar to handle code
sharing like this?  Then you could continue to have all the Activities
in a single directory with multiple branches to can be switched
between on the fly through a sugar interface.

-Jon
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: [Sugar-devel] Activity packaging

2010-08-08 Thread Aleksey Lim
On Wed, Aug 04, 2010 at 08:05:06PM +0100, pbrobin...@gmail.com wrote:
> On Tue, Jul 6, 2010 at 5:02 PM, Benjamin M. Schwartz
>  wrote:
> > On 07/06/2010 11:51 AM, Bernie Innocenti wrote:
> >> Ok, I think the requirements for activity bundles could be:
> >>
> >> 1) Support multiple CPU architectures
> >>
> >> 2) Support multiple distros (and different versions of same distro)
> >>
> >> 3) Centralized build cluster (submit one source package, get multiple
> >>    binary packages)
> >>
> >> 4) Support inter-bundle dependencies
> >>    (e.g.: GCompris + voices, OOo4Kids + dictionaries)
> >>
> >> 5) Support activity <-> OS dependencies (e.g.: espeak for Speak,
> >>    squeak for etoys...)
> >>
> >> 6) Work with any programming language (setup.py is python-centric)
> >>
> >> 7) Easy to learn for activity writers without too much distro-hacking
> >> experience
> >>
> >>
> >> These requirements would fit well both rpm and deb, with OpenSUSE Build
> >> Service or their native build clusters.
> >
> > I think you are missing an important requirement: installation without
> > elevated permissions.
> 
> PackageKit can already do that. There was a furore around 6 months ago
> when someone enabled it by default for Fedora.

Thats right, and all PackageKit benefits will be reused within
0sugar/0install (but mostly for non-sugar dependencies, it will be
possible to reuse native packages for sugar application as well but see
below).

But the one of core ideas to not use only regular packaging systems
(via PackageKit or directly) is having this, natural and desired,
scenario for sugar ecosystem:

* there is an activity,
* several users might decide to experiment w/ this activity
  (i.e. change its code) and share this results
* third user wants to try all these experiments (including pristine
  activity)

This scenario is pretty undoable (by design) in native packaging systems
but 0install is designed to support scenarios like that (all
activity implementation are stored in separate directories in user's
home and can be launched in any time and even at the same time).

-- 
Aleksey
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Activity packaging

2010-08-08 Thread Thomas Leonard
On Wed, 04 Aug 2010 20:05:06 +0100, pbrobin...@gmail.com wrote:

> On Tue, Jul 6, 2010 at 5:02 PM, Benjamin M. Schwartz
>  wrote:
>> On 07/06/2010 11:51 AM, Bernie Innocenti wrote:
>>> Ok, I think the requirements for activity bundles could be:
>>>
>>> 1) Support multiple CPU architectures
>>>
>>> 2) Support multiple distros (and different versions of same distro)
>>>
>>> 3) Centralized build cluster (submit one source package, get multiple
>>>    binary packages)
>>>
>>> 4) Support inter-bundle dependencies
>>>    (e.g.: GCompris + voices, OOo4Kids + dictionaries)
>>>
>>> 5) Support activity <-> OS dependencies (e.g.: espeak for Speak,
>>>    squeak for etoys...)
>>>
>>> 6) Work with any programming language (setup.py is python-centric)
>>>
>>> 7) Easy to learn for activity writers without too much distro-hacking
>>> experience
>>>
>>>
>>> These requirements would fit well both rpm and deb, with OpenSUSE
>>> Build Service or their native build clusters.
>>
>> I think you are missing an important requirement: installation without
>> elevated permissions.
> 
> PackageKit can already do that. There was a furore around 6 months ago
> when someone enabled it by default for Fedora.

I think that's a little different. Fedora allowed an unprivileged user to 
install a package, but giving the package full privileges.

For 0sugar, I assume, the user is fully privileged (it's their machine); 
it's the package that should be restricted, not the user.

This distinction has caused a lot of confusion in the past, and I've now 
added a section to http://0install.net/injector-security.html to try and 
clarify it.

I've also added a demonstration of using 0install for sandboxing, showing 
how sandboxed processes can still share libraries (which doesn't happen 
if you just create lots of separate RPM databases):

  http://0install.net/ebox.html

Hope that helps,


-- 
Dr Thomas Leonard   http://0install.net
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1

___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Activity packaging

2010-08-04 Thread pbrobin...@gmail.com
On Tue, Jul 6, 2010 at 6:50 PM, John Gilmore  wrote:
>> I think you are missing an important requirement: installation without
>> elevated permissions.
>
> Enhancing deb or rpm to be able to do this would be a win all around.
>
> A nonroot install would install under one's home directory, if either
> the package was marked as tested for homedir installation, or the user
> provided an override.  The underlying OS would have to ship user PATH
> and LD_LIBRARY_PATH defaults to include $HOME/bin and $HOME/lib.  A
> package database would exist under $HOME as well.  Read-only access to
> the global package database would allow the local package to check
> dependencies, etc.  It may be useful to define a standard programming
> convention for a package to readily find its control files and data
> files (either in /etc and /usr/lib, or in $HOME/.something, etc).
>
> Ideally it should be possible to ask that a package be installed under
> any particular directory, allowing users to install several different
> versions of a package and run them from different places.  This would
> let users run multiple applications which depend on particular
> versions of another package (e.g. python), while allowing the system
> default to be upgraded to the latest (incompatible) version.

rpm can already do that. It can relocate the package install location.

> I'd argue for adding this to deb, partly because Fedora at one point
> indicated a willingness to move from rpm/yum to deb/apt whenever
> "someone does the work", whereas Debian and Ubuntu seem satisfied with
> deb and apt.  But that would be a longer road for OLPC and other
> existing Fedora users.

I very much doubt that would ever happen.
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: [Sugar-devel] Activity packaging

2010-08-04 Thread pbrobin...@gmail.com
On Tue, Jul 6, 2010 at 5:02 PM, Benjamin M. Schwartz
 wrote:
> On 07/06/2010 11:51 AM, Bernie Innocenti wrote:
>> Ok, I think the requirements for activity bundles could be:
>>
>> 1) Support multiple CPU architectures
>>
>> 2) Support multiple distros (and different versions of same distro)
>>
>> 3) Centralized build cluster (submit one source package, get multiple
>>    binary packages)
>>
>> 4) Support inter-bundle dependencies
>>    (e.g.: GCompris + voices, OOo4Kids + dictionaries)
>>
>> 5) Support activity <-> OS dependencies (e.g.: espeak for Speak,
>>    squeak for etoys...)
>>
>> 6) Work with any programming language (setup.py is python-centric)
>>
>> 7) Easy to learn for activity writers without too much distro-hacking
>> experience
>>
>>
>> These requirements would fit well both rpm and deb, with OpenSUSE Build
>> Service or their native build clusters.
>
> I think you are missing an important requirement: installation without
> elevated permissions.

PackageKit can already do that. There was a furore around 6 months ago
when someone enabled it by default for Fedora.

Peter
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: [Sugar-devel] Activity packaging

2010-07-07 Thread C. Scott Ananian
On Wed, Jul 7, 2010 at 2:16 AM, Aleksey Lim  wrote:
> On Wed, Jul 07, 2010 at 01:18:04AM -0400, Michael Stone wrote:
>> Bernie wrote:
>> On Tue, 2010-07-06 at 12:02 -0400, Benjamin M. Schwartz wrote:
>> >> I think you are missing an important requirement: installation without
>> >> elevated permissions.
>> >
>> > Rainbow has been bit-rotting for the past 2 years
>>
>> Ahem. Sugar's integration with rainbow has bit-rotted, been rebuilt, and 
>> still
>> received no independent testing despite repeated calls for same.
>>
>> Rainbow, on the other hand, has seen a major new release, feature development
>> that spurred new work in general Linux sandboxing, and is now available in 
>> more
>> distributions than ever before thanks to dedicated support by folks like 
>> Luke,
>> Sascha, and Jonas.
>>
>> Finally, if rainbow itself now receives little day-to-day attention, this is
>> because it mostly does what its authors require and it does it well enough 
>> not
>> to require their continued hand-holding.
>
> To be honest I wasn't a fan of rainbow a bit time ago..
> But having Zero Sugar fully implemented and potential possibility to launch
> almost any piece of software  - compile on demand is a regular workflow within
> 0install (existed sugar doesn't not let such possibility:), rainbow should
> be more then essential requirement.

I took some time to read up on 0install -- very impressive technology,
good work.   I agree with Michael that this (userland installs) is the
direction Sugar should be pursuing.  With rainbow (or other sandbox)
integration, this would accomplish all of the original goals with a
much more robust packaging and dependency system than the .xo bundle.
  --scott

-- 
 ( http://cscott.net/ )
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: [Sugar-devel] Activity packaging

2010-07-07 Thread Michael Stone
Aleksey wrote:
> On Wed, Jul 07, 2010 at 01:18:04AM -0400, Michael Stone wrote:
>> Bernie wrote:
>> On Tue, 2010-07-06 at 12:02 -0400, Benjamin M. Schwartz wrote:
>> >> I think you are missing an important requirement: installation without
>> >> elevated permissions.
>> >
>> > Rainbow has been bit-rotting for the past 2 years 
>> 
>> Ahem. Sugar's integration with rainbow has bit-rotted, been rebuilt, and 
>> still
>> received no independent testing despite repeated calls for same.
>
> To be honest I wasn't a fan of rainbow a bit time ago..
>
> But having Zero Sugar fully implemented and potential possibility to launch
> almost any piece of software... rainbow should be more then essential
> requirement.

Let's be clear: the actual requirement is for something more like "safety" or
"isolation". 

Rainbow is merely one of several reasonable approaches -- and competition and
interoperability would be no bad thing here.

Michael

P.S. - Several other isolation shells that might be worth thinking about, if
only to better understand the tradeoffs that rainbow makes, are briefly
described at 

   http://sandboxing.org

P.P.S. - Also, either way, thanks for your encouragement. :)
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: [Sugar-devel] Activity packaging

2010-07-06 Thread Aleksey Lim
On Wed, Jul 07, 2010 at 01:18:04AM -0400, Michael Stone wrote:
> Bernie wrote:
> On Tue, 2010-07-06 at 12:02 -0400, Benjamin M. Schwartz wrote:
> >> I think you are missing an important requirement: installation without
> >> elevated permissions.
> >
> > Rainbow has been bit-rotting for the past 2 years 
> 
> Ahem. Sugar's integration with rainbow has bit-rotted, been rebuilt, and still
> received no independent testing despite repeated calls for same.
> 
> Rainbow, on the other hand, has seen a major new release, feature development
> that spurred new work in general Linux sandboxing, and is now available in 
> more
> distributions than ever before thanks to dedicated support by folks like Luke,
> Sascha, and Jonas. 
> 
> Finally, if rainbow itself now receives little day-to-day attention, this is
> because it mostly does what its authors require and it does it well enough not
> to require their continued hand-holding. 

To be honest I wasn't a fan of rainbow a bit time ago..
But having Zero Sugar fully implemented and potential possibility to launch
almost any piece of software  - compile on demand is a regular workflow within
0install (existed sugar doesn't not let such possibility:), rainbow should
be more then essential requirement.

-- 
Aleksey
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: [Sugar-devel] Activity packaging

2010-07-06 Thread Michael Stone
Bernie wrote:
On Tue, 2010-07-06 at 12:02 -0400, Benjamin M. Schwartz wrote:
>> I think you are missing an important requirement: installation without
>> elevated permissions.
>
> XO and SoaS distributions are configured for sudo with no password.

Yes. However, Uruguay does not maintain this configuration choice.

> Rainbow has been bit-rotting for the past 2 years 

Ahem. Sugar's integration with rainbow has bit-rotted, been rebuilt, and still
received no independent testing despite repeated calls for same.

Rainbow, on the other hand, has seen a major new release, feature development
that spurred new work in general Linux sandboxing, and is now available in more
distributions than ever before thanks to dedicated support by folks like Luke,
Sascha, and Jonas. 

Finally, if rainbow itself now receives little day-to-day attention, this is
because it mostly does what its authors require and it does it well enough not
to require their continued hand-holding. 

> and nobody volunteered to work on it. 

If you check the dates carefully, you'll find that most of my recent work on
rainbow and rainbow/sugar integration has occurred while I was on vacation from
my real job. So please do count that as "volunteer hours".

> The bottom line is that *nowadays*, any activity can escalate root
> privileges.

Sure. And if, by some miracle, Sugar ever becomes *worth* attacking [1], then
we will all rue the day when we had the opportunity to make it safe and chose
not to.

> A non-privileged account can already effectively do anything that a spammer
> would like to do.

And when will you be shipping my prctl(PR_DISABLENETWORK) kernel patch?

(Or have you a better approach?)

> Even in a Rainbow-enabled environment, privileged vs unprivileged
> installation isn't by itself the source of security issues. Packages
> could easily be checked to ensure that all bundled files are within a
> specific path, like we currently do with the zip files. Post-install
> scriptlets can be disabled.

I am still much more satisfied with the approach taken by 0install. [2]

Regards,

Michael

[1]: Except by accident, like with GNOME and Sugar today.

[2]: Thanks again, Aleksey, for pushing this work forward and for all the
improvements you've already contributed back to 0install to make this work
better for us!

___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: [Sugar-devel] Activity packaging

2010-07-06 Thread Aleksey Lim
On Tue, Jul 06, 2010 at 05:59:04PM -0400, Bernie Innocenti wrote:
> On Tue, 2010-07-06 at 19:56 +, Aleksey Lim wrote:
> 
> > Just to mention how it could look like on high level
> > http://wiki.sugarlabs.org/go/Activity_Team/Zero_Sugar#How_it_works_at_a_glance
> 
> Will it also remove the need to ship "fat bundles", as we do now?
> I mean, will it produce separate packages for each architecture/os or
> just one large package with many binaries in it?
> 
> I tend to prefer the first way, like rpm and deb do.

There is no any bundles in core design i.e. if you are talking about
"fat bundles" we are talking about distribution method, in my mind
such distribution methods could be:

* via distro repos on obs(or other build farm), users attach these repos

* via 0install, user just type "sugar-activity/0lauch http-url" to
  start activity or any software

* for sneakernet, 0sugar tool could generate bundles like "./setup.py
  dist_xo" does, imho there is not huge need in having smart/fat bundles
  like I tried to to with "0installed" bundles; but anyway later
  practice will make it more clear

> >   - move all packaging related stuff from current glucose to some kind
> > of packaging core with using 0install as an unified packaging
> > "engine", such core could be e.g. a dbus service (but could be a
> > library as well) e.g. for now, shell does things like: decides what
> > activities to use, from /usr or from ~/Activities, "plain versions
> > vs. dotted versions" (sounds a bit amusing). All these tasks will be
> > handled within new packaging core
> 
> Wouldn't PackageKit be a perfect match for this?

Firstly, 0install already can install native packages via PackageKit and
secondly (keeping in mind your reply to Benjamin), talking about *only*
native packages we loose one simple and core-for-sugar thing, any sugar user
should be, at the end, a doer. For example, if we have TuxPaint activity
and many doers are experimenting (change C code and compile) with it,
what can do a person, who decides to try all these TuxPaint activities,
having native packages as only distribution method? ask all doers use the
same repo (sounds useless); attach repos per doer (conflicts); handle all
issues by himself (not useful as well). With having 0install (which is
already exists and works) as engine, we handle these issues automatically.

Using 0install doesn't mean that everything is ok with 0install from
sugar pov, e.g. one of core sugar workflows when user need only place
activity to ~/Activities to make it useful is absent in 0install (it
designed as regular packaging system e.g. there is no need in changing
some software in /usr/lib). So, 0install is required later hacking but
it effectively solve last of packaging issues - how to *launch*(not
install) arbitrary activity in heterogeneous environment.

> > So, Zero Sugar will be useful already in two weeks e.g. it should be 
> > possible to attach
> > Sugar:Platform:Factory repo from obs to have development sucrose on
> > major rpm/deb distros 
> > (http://wiki.opensuse.org/openSUSE:Build_Service_supported_build_targets)
> > or install sugarized GC (in form of application or activity) from native 
> > packages.
> 
> It's an amazing piece of work, Aleksey!!
> 
> Considering that you're tackling on the hardest problem in the Sugar
> universe, I'm very impressed by the progress you've made in such a short
> amount of time.

Well, not so short amount of time, my first commit to jhconvert (my
first experience in meta packaging) was Fri Dec 05 01:29:55 + 2008

-- 
Aleksey
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: [Sugar-devel] Activity packaging

2010-07-06 Thread Bernie Innocenti
On Tue, 2010-07-06 at 19:56 +, Aleksey Lim wrote:

> Just to mention how it could look like on high level
> http://wiki.sugarlabs.org/go/Activity_Team/Zero_Sugar#How_it_works_at_a_glance

Will it also remove the need to ship "fat bundles", as we do now?
I mean, will it produce separate packages for each architecture/os or
just one large package with many binaries in it?

I tend to prefer the first way, like rpm and deb do.


>   - move all packaging related stuff from current glucose to some kind
> of packaging core with using 0install as an unified packaging
> "engine", such core could be e.g. a dbus service (but could be a
> library as well) e.g. for now, shell does things like: decides what
> activities to use, from /usr or from ~/Activities, "plain versions
> vs. dotted versions" (sounds a bit amusing). All these tasks will be
> handled within new packaging core

Wouldn't PackageKit be a perfect match for this?


> So, Zero Sugar will be useful already in two weeks e.g. it should be possible 
> to attach
> Sugar:Platform:Factory repo from obs to have development sucrose on
> major rpm/deb distros 
> (http://wiki.opensuse.org/openSUSE:Build_Service_supported_build_targets)
> or install sugarized GC (in form of application or activity) from native 
> packages.

It's an amazing piece of work, Aleksey!!

Considering that you're tackling on the hardest problem in the Sugar
universe, I'm very impressed by the progress you've made in such a short
amount of time.

-- 
   // Bernie Innocenti - http://codewiz.org/
 \X/  Sugar Labs   - http://sugarlabs.org/

___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Activity packaging

2010-07-06 Thread Bernie Innocenti
On Tue, 2010-07-06 at 12:02 -0400, Benjamin M. Schwartz wrote:

> I think you are missing an important requirement: installation without
> elevated permissions.

XO and SoaS distributions are configured for sudo with no password.
Rainbow has been bit-rotting for the past 2 years and nobody volunteered
to work on it. The bottom line is that *nowadays*, any activity can
escalate root privileges.

Before someone screams in horror, consider this: the only valuable data
on the laptop belongs to user "olpc". A non-privileged account can
already effectively do anything that a spammer would like to do.

Even in a Rainbow-enabled environment, privileged vs unprivileged
installation isn't by itself the source of security issues. Packages
could easily be checked to ensure that all bundled files are within a
specific path, like we currently do with the zip files. Post-install
scriptlets can be disabled.

Even with these limitations, a native packaging system is still years
ahead of us in terms of robustness and feature-completeness.


> P.S. This cross-posting is getting ridiculous.

Mikus keeps moving this thread to other lists because he won't subscribe
to sugar-devel. (why?? ask him).

-- 
   // Bernie Innocenti - http://codewiz.org/
 \X/  Sugar Labs   - http://sugarlabs.org/

___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: [Sugar-devel] Activity packaging

2010-07-06 Thread Aleksey Lim
On Tue, Jul 06, 2010 at 11:51:00AM -0400, Bernie Innocenti wrote:
> On Mon, 2010-07-05 at 16:20 +0200, Tomeu Vizoso wrote:
> 
> > Sorry about the confusion, these questions were about the move from xo
> > bundles to packages :(
> 
> Ah! Communication FAIL! :)
> 
> Ok, I think the requirements for activity bundles could be:
> 
> 1) Support multiple CPU architectures
> 
> 2) Support multiple distros (and different versions of same distro)
> 
> 3) Centralized build cluster (submit one source package, get multiple
>binary packages)
> 
> 4) Support inter-bundle dependencies
>(e.g.: GCompris + voices, OOo4Kids + dictionaries)
> 
> 5) Support activity <-> OS dependencies (e.g.: espeak for Speak,
>squeak for etoys...)
> 
> 6) Work with any programming language (setup.py is python-centric)
> 
> 7) Easy to learn for activity writers without too much distro-hacking
> experience
> 
> 
> These requirements would fit well both rpm and deb, with OpenSUSE Build
> Service or their native build clusters. To obtain (2) and (7), we might
> want to wrap the native packages with a distro-neutral meta-format,
> similar to the current activity.info files.
> 
> I don't know the details yet, but I guess this is pretty much what
> Aleksey is doing with his 0sugar redesign.

Just to mention how it could look like on high level
http://wiki.sugarlabs.org/go/Activity_Team/Zero_Sugar#How_it_works_at_a_glance

i.e. for activity developer, process should look like pretty straight
forward, everything what he needs is a spec file. Spec file is not like
regular activity.info (some kind of metadata file that is used in
runtime) but a regular spec file like .spec in rpm.

Some examples of real (but for now only built only for 0install)
http://wiki.sugarlabs.org/go/Activity_Team/Zero_Sugar/0sugar.info_Specification#Python_library
http://wiki.sugarlabs.org/go/Activity_Team/Zero_Sugar/0sugar.info_Specification#Vala_library
and how it will look like for activities
http://wiki.sugarlabs.org/go/Activity_Team/Zero_Sugar/0sugar.info_Specification#Python_activity

The milestones I'm planing are:

* Having just 0sugar.info spec file (and 0distro build time dependency
  on obs), build native packages on bunch of rpm and deb based distros
  on OBS. I'm planing to have rpm and deb packages for Sucrose, Polyol,
  GC, OOo4Kids built from only 0sugar.info spec files in two weeks

* Having just 0sugar.info and 0sugar tool, distribute  homemade blobs
  (already works) and blobs built on OBS via 0install

* merge all things together and make it useful within sugar
  - move all packaging related stuff from current glucose to some kind
of packaging core with using 0install as an unified packaging
"engine", such core could be e.g. a dbus service (but could be a
library as well) e.g. for now, shell does things like: decides what
activities to use, from /usr or from ~/Activities, "plain versions
vs. dotted versions" (sounds a bit amusing). All these tasks will be
handled within new packaging core
  - switch from bundle_id identification to http urls for activities,
(at some point it sounds like urls for microformat updates) it could
be really useful if user on any sugar box could run activity just by
mentioning its url 

* new UI, how it could look like with new packaging infrastructure

So, Zero Sugar will be useful already in two weeks e.g. it should be possible 
to attach
Sugar:Platform:Factory repo from obs to have development sucrose on
major rpm/deb distros 
(http://wiki.opensuse.org/openSUSE:Build_Service_supported_build_targets)
or install sugarized GC (in form of application or activity) from native 
packages.

The rest of steps could be implemented in parallel manner.

> I think switching to a native package format is essential:

> currently,
> both the Fedora and Ubuntu teams are spending a lot of time to
> re-packaging just a few activities, resulting in duplicated effort and
> increased "time-to-market" for activities.

just an OBS feature that could be used as is if most of activities will
accessible from obs
http://wiki.sugarlabs.org/go/Activity_Team/Zero_Sugar/Use_Cases#Per_user_Sugar_on_a_stick

-- 
Aleksey
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Activity packaging

2010-07-06 Thread Martin Langhoff
On Tue, Jul 6, 2010 at 1:50 PM, John Gilmore  wrote:
>> I think you are missing an important requirement: installation without
>> elevated permissions.
>
> Enhancing deb or rpm to be able to do this would be a win all around.

Yes, it's been in the To Do list for dpkg and rpm for as long as I've
been using Linux -- I asked about  this for rpms in '98.

Sadly, the rate of development around rpm and dpkg is... well... slow...

rpm has a leg up, anyway, in that it has (limited? buggy?) support for
relocatable rpms.

It would be amazing for the overall health of Linux distros if someone
took this on and worked on it all the way to getting it done and
merged.

Packages (and maint scripts) would need to be updated/adapted to
support this, and of course it's not appropriate for all packages.

cheers,


m
-- 
 martin.langh...@gmail.com
 mar...@laptop.org -- School Server Architect
 - ask interesting questions
 - don't get distracted with shiny stuff  - working code first
 - http://wiki.laptop.org/go/User:Martinlanghoff
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Activity packaging

2010-07-06 Thread John Gilmore
> I think you are missing an important requirement: installation without
> elevated permissions.

Enhancing deb or rpm to be able to do this would be a win all around.

A nonroot install would install under one's home directory, if either
the package was marked as tested for homedir installation, or the user
provided an override.  The underlying OS would have to ship user PATH
and LD_LIBRARY_PATH defaults to include $HOME/bin and $HOME/lib.  A
package database would exist under $HOME as well.  Read-only access to
the global package database would allow the local package to check
dependencies, etc.  It may be useful to define a standard programming
convention for a package to readily find its control files and data
files (either in /etc and /usr/lib, or in $HOME/.something, etc).

Ideally it should be possible to ask that a package be installed under
any particular directory, allowing users to install several different
versions of a package and run them from different places.  This would
let users run multiple applications which depend on particular
versions of another package (e.g. python), while allowing the system
default to be upgraded to the latest (incompatible) version.

I'd argue for adding this to deb, partly because Fedora at one point
indicated a willingness to move from rpm/yum to deb/apt whenever
"someone does the work", whereas Debian and Ubuntu seem satisfied with
deb and apt.  But that would be a longer road for OLPC and other
existing Fedora users.

John
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Activity packaging

2010-07-06 Thread Benjamin M. Schwartz
On 07/06/2010 11:51 AM, Bernie Innocenti wrote:
> Ok, I think the requirements for activity bundles could be:
> 
> 1) Support multiple CPU architectures
> 
> 2) Support multiple distros (and different versions of same distro)
> 
> 3) Centralized build cluster (submit one source package, get multiple
>binary packages)
> 
> 4) Support inter-bundle dependencies
>(e.g.: GCompris + voices, OOo4Kids + dictionaries)
> 
> 5) Support activity <-> OS dependencies (e.g.: espeak for Speak,
>squeak for etoys...)
> 
> 6) Work with any programming language (setup.py is python-centric)
> 
> 7) Easy to learn for activity writers without too much distro-hacking
> experience
> 
> 
> These requirements would fit well both rpm and deb, with OpenSUSE Build
> Service or their native build clusters.

I think you are missing an important requirement: installation without
elevated permissions.

--Ben

P.S. This cross-posting is getting ridiculous.



signature.asc
Description: OpenPGP digital signature
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Activity packaging

2010-07-06 Thread Bernie Innocenti
On Mon, 2010-07-05 at 16:20 +0200, Tomeu Vizoso wrote:

> Sorry about the confusion, these questions were about the move from xo
> bundles to packages :(

Ah! Communication FAIL! :)

Ok, I think the requirements for activity bundles could be:

1) Support multiple CPU architectures

2) Support multiple distros (and different versions of same distro)

3) Centralized build cluster (submit one source package, get multiple
   binary packages)

4) Support inter-bundle dependencies
   (e.g.: GCompris + voices, OOo4Kids + dictionaries)

5) Support activity <-> OS dependencies (e.g.: espeak for Speak,
   squeak for etoys...)

6) Work with any programming language (setup.py is python-centric)

7) Easy to learn for activity writers without too much distro-hacking
experience


These requirements would fit well both rpm and deb, with OpenSUSE Build
Service or their native build clusters. To obtain (2) and (7), we might
want to wrap the native packages with a distro-neutral meta-format,
similar to the current activity.info files.

I don't know the details yet, but I guess this is pretty much what
Aleksey is doing with his 0sugar redesign.

I think switching to a native package format is essential: currently,
both the Fedora and Ubuntu teams are spending a lot of time to
re-packaging just a few activities, resulting in duplicated effort and
increased "time-to-market" for activities.

-- 
   // Bernie Innocenti - http://codewiz.org/
 \X/  Sugar Labs   - http://sugarlabs.org/

___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel