[packman] OBS 2.x and new repository layout
toddrme2178 at gmail.com
Fri Dec 31 01:04:13 CET 2010
On Thu, Dec 30, 2010 at 6:27 PM, Pascal Bleser
<pascal.bleser at opensuse.org> wrote:
> 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
> 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.
> + users just need to add a single repository
> - 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
> 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":
> .^ ^.
> / \
> games stuff
> + 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)
> - the users who want everything from Packman will need to add more than
> one repository (arguably, that's already how it works with
> 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).
> + 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)
> - 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 ?
Is there any way to have both, to have separate repositories, then one
master repository that mirrors all the packages from the other
Another advantage of sub-repositories is that they can be built
against other repositories. For instance the packman games repository
can be built against the OBS games repository, eliminating the need
for redundant packages and preventing conflicts like we have with
allegro. If you did a KDE repository, it could be built against all
the different KDE repositories (KDE:Distro:Stable, KDE:Distro:Factory,
KDE:Unstable:SC, etc) with no additional work on your part. Critical
packages that users might not have available could be linked to the
OBS ones, but would always automatically be kept in sync. This would
mean, for instance, you wouldn't need your own build of K3B, you could
just build the codecs against the version of K3B in each repository.
I do think that having proper patterns would be beneficial, if
possible. People should just be able to install, for instance, the
"packman codecs" pattern and it pulls in all of the normally-used
More information about the Packman