[Systems] Sweets, Zero Install based Package Management System

Aleksey Lim alsroot at activitycentral.org
Sun Oct 2 14:29:25 EDT 2011


Hi all!

There is an announce of initial release of Sweets[1], hight level
tools and infrastructure wrapper around Zero Install
(originally, this initiative was named Zero Sugar).

http://wiki.sugarlabs.org/go/Platform_Team/Sweets/1.0/Notes
http://thread.gmane.org/gmane.linux.laptop.olpc.sugar/31940

This is the initial release and has missed some critical points or
bugs. The major purpose for this release is exposing the fact that
basic ideas and core implementations are mature enough to make
Sweets useful and to involve more people in Sweets and Sweets related
project testing and development.

The major purposes of Sweets initiative, were to make entrance
barriers lower (that is especially important for Sugar[2]).
That was done by following methods:

* Add more centralizing (yeah, it sounds like a disadvantage,
  but it see the reset of this text) by using OBS[3] as a central place
  for hosting sources and building binaries.

* Using recipes[4] on top of feeds, feeds will be generated
  automatically on OBS after uploading sources tarball with a release.
  This is a way to simplify releasing worflow, ie, people have a simple
  history-less spec file in human friendly .ini format (Sugar already
  uses files like that for existed distribution method).

* Auto build implementations from sources, e.g., for the call:
    sweets http://sweets.sugarlabs.org/sdk/sugar
  of even shorted
    sweets sdk/sugar
  sweets will auto build all interfaces, that don't have binary
  implementations, from sources and lunch the sweet.

* Local sweets[5] (i.e., packages, not the same as local feeds),
  e.g., to use a directory with sources as a virtual implementation for
  the interface it implements, i.e., without any changing in
  local/remote 0install db.

* Being uploaded to the OBS by the command:
    sweets commit
  the sources will be auto built for all supported (on OBS) distros,
  and after adding previously uploaded releases, the feed files will be
  generated to be accessible from http://sweets.sugarlabs.org/.
  Tarballs will be downloaded from
  http://download.sugarlabs.org/sweets/.

Mostly, it is an experiment. Being entirely based on zinstall-injector
code, Sweets patches it[6] for reasons:

* support virtual feeds to sweet directories,

* closer distro integration like supporting *-devel native packages and
  choosing binary implementations basing on LSB metadata to reuse
  binaries built exactly for targeted distro. The bad thing here is that
  there are bunch of binaries built for the same sources release (but
  the process is automatised on OBS), but the good thing is that people
  all time sure that binaries won't fail due to broken API/API or
  different uild flags.

* more sync approach for Sweets' top level code. It is simplifying the
  code, e.g., PK code in Sweets is:
  http://git.sugarlabs.org/sdk/sweets/blobs/master/zerosugar/local/packagekit.py
  and download related code is:
  http://git.sugarlabs.org/sdk/sweets/blobs/master/zerosugar/local/download.py
  As a result, the main injector process works mostly in sync mode. The
  launch will happen by exec system call. The GUI is working by
  starting injector as a subprocess in slave mode, where all
  interactions between parent and slave process will happen via
  stdin/stdout in JSON notation strings.

This announce is a request to figure out how Sweets implementation's
ideas might be useful for the upstream for better synergy (or, in some
cases, merge).

The another point, is considering possibility if Sugar Labs's OBS instance
might be useful for Zero Install community.
(BCCed to Sugar Labs Infrastructure Team mailing list).

[1] http://wiki.sugarlabs.org/go/Platform_Team/Sweets
[2] http://wiki.sugarlabs.org/go/What_is_Sugar%3F
[3] http://wiki.sugarlabs.org/go/Platform_Team/Open_Build_System
[4] http://wiki.sugarlabs.org/go/Platform_Team/Sweets/Glossary#recipe
[5] http://wiki.sugarlabs.org/go/Platform_Team/Sweets/Glossary#local_sweet
[6] http://git.sugarlabs.org/0sugar/zeroinstall-injector

-- 
Aleksey


More information about the Systems mailing list