tagline: From openSUSE
- 1 Contrib: the universal openSUSE repository for third-party packages
- 2 Deprecated:Contrib
- 3 Historic reasons for Contrib
- 4 Rules or what do we do
- 5 Permissions or who does what
- 6 Processes or how do we do it
- 7 Mailing list or whom to talk to
- 8 Frequently asked questions
Contrib: the universal openSUSE repository for third-party packages
Please note that from the openSUSE 12.1 release onwards, the Contrib repository is deprecated!
If you are a user, rest assured that the vast majority of these packages is now integrated in the main repository of openSUSE. Some of them are available on the build service and you can find them using the [software.opensuse.org/ software search].
Historic reasons for Contrib
The model of third-party packages in the Build Service was complicated to use.
There were lots of packages across hundreds of Build Service projects, which brought problems: repositories were not easy to navigate; there were duplicate packages; repositories were not tested for compatibility with other repositories. The real solution would be to get all packages into Factory and this was the long-term goal. However, in the mean time, the Contrib repository provided an lower-barrier, universal repository for third-party packages. This repository was viewed as a community-driven extension of Factory, with all it's standards and limitations applied.
Rules or what do we do
In general Contrib has the same rules as Factory, like the release deadlines etc.
Rules for the repository
- Everything is built against the openSUSE base or packages from this repository
- No duplication of packages from Factory
- The repository is branched at openSUSE release time (openSUSE:Factory:Contrib -> openSUSE:<version>:Contrib)
- After the branch no version updates are allowed anymore, unless explicitly allowed by openSUSE:<version>:Contrib maintainers.
- Bugfixes happen as patches to the packages
Rules for the packages
- Packages have to have a package maintainer that cares for:
- Package Updates
- Maintenance for packages (fixing bugs, working with upstream on bugs, etc.)
- Security Updates (SuSE Security Team will help with that)
- Beta Testing during the openSUSE beta phase
- Packages need to go through the contrib review process
- no (file) conflicts with Factory packages
Permissions or who does what
To ensure that we follow the above stated rules we need to have a set of permissions for the repository and the packages in it. Therefore we need 2 roles involved. The maintainer who is responsible for one or more packages and the reviewers who are responsible for the repository itself.
- Repository is owned by reviewers
- Submission of new packages happens trough osc submitreq and goes trough an initial review.
- Repo bugowner is email@example.com
- Packages are owned by maintainers
- Development on packages just happens, no additional review.
- Package bugowner is the maintainer
- Repository is owned by reviewers
- No new packages
- Packages are owned by reviewers
- Everything is handled by osc submitreq and goes trough a review
- Package bugowner is the maintainer
Processes or how do we do it
There's also an alternative approach: osc-contrib command.
New packages to openSUSE:Factory:Contrib
Please do not submit new packages to Contrib, submit them to Factory instead. See How to contribute to Factory for details.
Bugfixes for packages in openSUSE:Factory:Contrib
- Joe Packager checks out the package from openSUSE:Factory:Contrib
$ osc co openSUSE:Factory:Contrib blackbox
- Joe Packagers does his changes and checks the package back in
$ osc ci -m 'fixed bug in init script'
Bugfixes for packages in openSUSE:<version>:Contrib
- Joe Packager branches the package from openSUSE:<version>:Contrib
$ osc branch openSUSE:11.1:Contrib blackbox
- Joe Packager can now check out the package from his branch area and work on the package
$ osc co home:jpack:branches:openSUSE:11.1:Contrib/blackbox
- Once Joe Packager thinks that he has fixed the issue he submits the package
$ osc ci -m "fixed serious bug"
- after everything is building Joe creates a submitrequest for openSUSE:<version>:Contrib again
$ osc sr create -m 'fixed serious bug'
- A mail gets send to firstname.lastname@example.org (will look like http://old-en.opensuse.org/User:Hennevogel:Tmp)
- The Contrib reviewer either accepts the submission
$ osc submitreq accept 6002 --message="reviewed ok. Update is released"
or declines it
$ osc submitreq decline 6002 --message="Sorry. Declined. There is another buffer overflow in main.c line 155"
Similar procedure is also used if Joe Packager wants to modify a package in openSUSE:Factory:Contrib, but if he does not have maintainer permissions for this package (it is maintained by somebody else). The submitrequest should be handled by the package maintainer.
Security bugs for packages in openSUSE:<version>:Contrib
- The same as above only that the bugreporter will be the security team.
Mailing list or whom to talk to
- email@example.com - Mailing list for openSUSE Contrib repository.
Subscribe - Unsubscribe - Help - Archives
See the mailing lists page to learn how to subscribe and how to handle openSUSE mainling lists in general
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.
- Q: Please define the release cycle (freezing, announcing, etc...)
- A: "Contrib" will be in sync with Factory release cycles. It will develop during openSUSE Milestone cycle during openSUSE development cycle, together with it. Freezing of Factory will also affect "Contrib".
- Q: Where is the contrib repository?
- A: The repository basedir is here: http://download.opensuse.org/repositories/openSUSE:/Factory:/Contrib/
- Q: How to add the Factory:Contrib repository in to my openSUSE ?
- A: For openSUSE 11.2 use:
zypper ar -f http://download.opensuse.org/repositories/openSUSE:Factory:Contrib/openSUSE_11.2 openSUSE:Factory:Contrib:openSUSE_11.2
- A: For openSUSE 11.3 use:
zypper ar -f http://download.opensuse.org/repositories/openSUSE:Factory:Contrib/openSUSE_11.3 openSUSE:Factory:Contrib:openSUSE_11.3
- A: For openSUSE Factory use:
zypper ar -f http://download.opensuse.org/repositories/openSUSE:Factory:Contrib/standard openSUSE:Factory:Contrib
- Q: How to add the openSUSE:11.2:Contrib repository to my openSUSE ?
- A: Use:
zypper ar http://download.opensuse.org/repositories/openSUSE:/11.2:/Contrib/standard/
or use yast2->Software Repositories->Add->select Community Repositories->Next->select Contrib->OK.
- Q: But I don't like a Factory, it's so much updates. Aren't here a backports?
- A: Yes, the Contrib is built for openSUSE 11.3, because we want to allow an easier adoption and testing of Contrib. But consider Factory is a main target, so this is not a "backport", just another build target.