[packman] OBS 2.x and new repository layout

Herbert Graeber herbert at links2linux.de
Fri Dec 31 13:16:18 CET 2010

Am Freitag, 31. Dezember 2010, 00:27:12 schrieb Pascal Bleser:
> Dear Packmans :)
> (I'm putting the discussion on the public list to give our users a
> chance to give their input/preferences as well)
> Detlef was so kind to set up a new (and fresh) OBS 2.1 instance (it's on
> another server, the currently running OBS 1.7 instance on pmbs is still
> up & running until we switch).
> To make our lives easier, we decided that we'll migrate the packages
> manually, one by one, instead of attempting a server-side migration.
> We will lose package history but that's not really much of a problem
> (IMHO).

That's a good chance to get rid of old nearly unmaintained stuff....

> The other reason we want to make it manually is that we have a (rare)
> chance of setting up a new project layout, as the current one has
> several deficiencies.
> So, right now, we need to discuss what we'd like to have.
> Whatever the option, one thing we will definitely do is to enable 11.1,
> 11.2 and 11.3 on project-level, hence on all the packages, instead of
> having to enable them on every single package as we have it now (which
> is really a pain in the ...). That's also how it's managed on
> build.opensuse.org, by exception (disable those you don't want to build
> or, rather, those that don't work).
> Option 1: all-in-one
> --------------------
> The first option is to have all the packages in a single OBS project, as
> we have right now in "main_pm", which we also result in a single, big
> packman package repository for users.
> Pros:
> + users just need to add a single repository
> Cons:
> - users have no granularity, it's one big repository with everything
>   (codecs, multimedia, random updated packages)
> - more difficult for us to select a subset of "essential" packages for a
>   "minimal packman" (i.e. codecs and multimedia), e.g. for Factory and
>   SLE

For some time a had small mirror for all my machines with all this large 
games,taht are often rebuild because an online updated by SUSE, it became 
impossible to do that.

> Option 2: divide and conquer
> ----------------------------
> The other extreme is to split the set of packages into several
> projects (and, hence repositories) to enable users to pick what they
> want to have, e.g.:
> * codecs
> * multimedia
> * games
> * stuff
> Of course, and OBS gives us the ability of doing so, we'll have
> dependencies between those projects/repositories, like a "layering":
>      codecs
>        ^
>    multimedia
>      .^ ^.
>     /     \
>   games  stuff
> Pros:
> + users can pick what they want from Packman, e.g. only the codecs and
>   the multimedia stuff
> + easier for us to enable a minimal set of things for Factory and SLE
>   (we just need to enable Factory and SLE11 on codecs and multimedia)
> Cons:
> - the users who want everything from Packman will need to add more than
>   one repository (arguably, that's already how it works with
>   download.opensuse.org)

That's the layout I would prefer (as user and as packman). Unfortunately 
repositories do not have Requires and Recommends dendencies, like patterns and 
packages have.

> Option 3: debianista
> --------------------
> Another approach to "several projects/repos" could also be to split into
> stable and unstable or, rather, to freeze the versions of codecs and
> multimedia packages with every openSUSE release (and only update on
> critical bugfixes and security issues).
> Pros:
> + users only need to add one or two repositories and won't get updates
>   all the time, which will most probably give them a better experience
>   regarding stability
> + OBS can help us, by using links on revisions (from unstable to stable)
> Cons:
> - potentially more work for us, as it is easier to just bump the version
>   to the latest than having to only do it when there are security issues
>   (we will always update to the latest version for the "unstable"
>   repository/repositories anyway)
> Other options: anything in-between, or combinations thereof.
> Ideas, preferences ?

I would like to have a variant of option 3 on top of option 2:


where the *.11.x projects are built against openSUSE:11.x only and mostly 
frozen with 11.x release, except for important updates (security, bugs really 
hurting). I know that backporting patches can be hard, but we can handle this 
a little more relaxed, like SUSE does for firefox or thunderbird. The 
important thing is that users can use these repos without that things get 

*:Factory repos are build against openSUSE 11.x, and Factory and mostly like 
what we have now. eventually we make it possible to build against newer KDE or 
Gnome here, too.

This is for the experienced users, who know what they are doing.

All in all it is a little bit similar like openSUSE:Contrib is handled now.


More information about the Packman mailing list