Contrib/Discussion

From openSUSE

Contents

Contrib: The Universal openSUSE Repository for Third-party Packages

Note: The discussion about Contrib is ongoing on the opensuse-factory mailing list. There is a consensus that the openSUSE project would benefit from such a proposal. Currently we discuss the details of the proposal before we start the project. This whole page needs some rework and polish and will in the end reflect the status of Contrib.

Problem and Vision

Problems

Current model of third-party packages for openSUSE, in opinion of many users, is complicated to use. There are lots of packages across hundreds of Build Service projects, which brings few problems:

  • It is not easy to navigate,
  • There are duplicate packages,
  • They are not tested in different configurations.

This model is good in some scenarios, for instance experimentation and development, but it is not good for average users.

Additionally, there are software packages in other distributions, that can be interesting to our users, but currently not packaged for openSUSE.

Duplication and home:* is killing the cat^WOBS

From the users perspective, the biggest problems in the OBS are that:

  • there are way too many home:* repositories with pointless duplication of existing packages (existing e.g. in other OBS repos, or in the Packman repo)
  • home:* repositories with different goals and levels of quality:
    • some are just playgrounds to learn about packaging,
    • others are good quality and exist under "home:" because it's either
      • too tedious to get maintainer rights in one of the "real" OBS project (you might think it isn't, but people who contribute many packages in their free time can't just wait for a few hours to get access), or
      • we're lacking several "real" repositories (e.g. nowhere to put Jabber clients, command-line utilities, firewall tools, hardware related packages, ...)

We really have to move good packages from home:* repos into the "real" ones and have duplicates removed.

OBS: too many repos

Clearly, the number of repositories _is_ a problem. Packages are way too scattered into a multitude of repositories, and with every repository you add to any package manager, the likelihood of conflicts and other issues (e.g. running into package manager bugs) raises accordingly.

Vision

We want to make a new model, which suites better deployment and distribution.

Our goal is to setup some kind of universal repository for third-party packages.

This repository should be viewed as a community-driven extension of Factory, with all it's standards and limitations applied.

Getting everything into Factory is right now not an option since for Factory we have Novell employees as maintainers to guarantee updates. In the long run this might change once Contrib is successful.

The consensus of the community members discussing this is to establish a big, united third-party packages repository for openSUSE (in the Build Service), with the goal of making those packages stable and easily searchable & downloadable.

This repository sits somewhere in between openSUSE itself "Factory", and small user's Build Service projects, where few packages usually exist.


Rules for inclusion of packages in Contrib

There are several limitations on what is allowed:

  • The packages should be testable during openSUSE development period
  • No new packages after openSUSE feature freeze
  • The repository is frozen at openSUSE release time
  • Everything is built against the openSUSE base or packages from this repository
  • Stability - Only tested & stable packages will be allowed.
  • No duplication of packages from Factory and no (file) conflicts with Factory packages

Open issues and packages

Open issues:

  • Security - perhaps Novell security guys can give us basic guidelines.
  • What about updates for single packages in that repository? If the repository is frozen after the release, we need an additional repository just for packages containing bugfixes and security fixes. Who will maintain this additional repository? Who will review the packages submitted there? Should there be patches like for the official openSUSE packages available? Related: [opensuse-factory] Contrib: Progress


Packages:

First group of packages will be taken from other RPM repositories (including Mandriva, Fedora, and openSUSE Build Service). Later on we will add new SPEC files to build RPMs.

For a quick list of planned packages, visit the "candidates" page /packages

Roles

  • every package needs a "maintainer", the person who creates the spec file and is responsible for updating the package
    • there can be "maintainers" with hundred packages as well as "maintainers" with a single package
    • these people may or may not have direct write access to the package in the Contrib repo, see below
  • the repository needs a small group that has access rights to review & create packages and review changes (if there's going to be a review of changes)
    • "maintainer" is taken, call them "reviewers" perhaps?
    • number of "reviewers" is going to be much lower than the number of "maintainers" in the long term
    • of course, anyone can help with reviews, but the final decision is up to this group

Permissions

Permissions or "who is allowed to do what":

  • "reviewers" can do anything by definition, they have write access to Contrib
  • being a "maintainer" does not necessarily mean being a "reviewer". Two proposals:
    • a) "maintainer" only has access to Contrib/mypackage, OR
    • b) "maintainer" only has access to home:maintainer/mypackage and changes are propagated to Contrib/mypackage _somehow_ (_link vs. submitreq)

More detailed proposal for handling new packages: /Adding new packages.

Quick Comparison

Space requirements:

  • openSUSE 10.3 - 8 GB per architecture (i586+noarch) = 6000 packages (I speak only about official packages, not third-party ones)
  • Debian 4.0 - 13 GB per architecture = 18000 packages

Debian uses approximately 60% more space for 200% more packages, because most of the big packages exist in both openSUSE and Debian. Small utilities, however, are severely lacking in openSUSE. Our goal is to eliminate this gap.

Frequently Asked Questions

  • Q: Do we want to have a contrib-(staging|beta|unstable|experimental|testing) repository where packages have to undergo some reported tests before they end up in contrib ?
  • A: Generally I prefer to keep unstable/experimental stuff either upstream or in user's OBS, not in contrib. After package becomes stable, request for integration can be sent. Maybe later on we will revisit the idea, and add separation (stable/unstable/...). If anyone thinks we need unstable repository now, let's discuss it.
  • Q: Please define the release cycle (freezing, announcing, etc...)
  • A: "Contrib" will be in sync with Factory release cycles. It will develop during openSUSE Alpha cycle and BETA-test during openSUSE BETA cycle, together with it. Freezing of Factory will also affect "Contrib".
  • Q: What about "backports" ?
  • A: Unfortunately, we cannot ensure stability & maintenance of "backports". I believe, that this will allow us to stay in focus. (not waste energy to maintain too many repos) and provide better results in the long run. "Backports" are really better to be continued to be offered by specific projects (GNOME, KDE, etc...) or by user's OBS. Again, This repository should be viewed as a community-driven extension of Factory, with all it's standards and limitations applied. (of course, if there are volunteers we can re-discuss it)

History

This project originated based on community's needs. Discussions started on 08.08.08 (!) "[opensuse-factory] if the community contributed?".

Link to mailing-list archive?

Maling List

http://en.opensuse.org/Communicate/Mailinglists

Our list is: opensuse-contrib@opensuse.org

To subscribe, send email to: opensuse-contrib+subscribe@opensuse.org

Interested People

Interested People :

  • Alexey Eromenko "Technologov" (al4321@gmail.com) (Reviewer, project originator)
  • Martin Schlander <martin.schlander@gmail.com> (does not want to become reviewer/maintainer)
  • Michal Marek (User:Michal-m) (Reviewer)
  • Boyd Lynn Gerber User:gerberb (considering to become reviewer/maintainer)
  • James Oakley User:jimfunk (volunteers to become reviewer/maintainer)
  • Pascal Bleser User:Pbleser (Reviewer)
  • Cristian Rodríguez User:Elvigia (volunteered to become reviewer)
  • Birger Kollstrand User:MrKane
  • Peter Linnell User:MrDocs (volunteers to become reviewer/maintainer)
  • Pavol Rusnak User:prusnak (volunteers to become reviewer/maintainer)
  • Marek Stopka User:M4r3k (volunteers to become reviewer/maintainer)
  • Michal Vyskocil User:mvyskocil (volunteers to become reviewer/maintainer)
  • Jakub 'Livio' Rusinek User:Liviopl (considering to become maintainer)
  • Alexandre Rogoski <matrixworkstation@gmail.com> (volunteers to become reviewer/maintainer)
  • Leonardo Rogoski <leorogoski@gmail.com> (volunteers to become reviewer/maintainer)