Home Wiki > openSUSE:Packaging for Leap
Sign up | Login

openSUSE:Packaging for Leap

tagline: From openSUSE


This article will give you a view from the contributor perspective on openSUSE Leap. Many of the concepts, commands to execute, people to talk to and so on are very similar to openSUSE Factory. It is recommended to use the How to Contribute to openSUSE Factory guide as a starting point, with this guide focusing on the differences specific to openSUSE Leap. This article will show that contribution to Leap is both easy and very welcome.

When can packages be submitted into Leap

In general, packages can only be added to an openSUSE Leap version during its development, not after its release. Any exceptions have to be approved and processed by the Maintenance team.

Packages that are already in openSUSE Factory will not automatically show up in Leap. Acceptance in Factory usually is a precondition though.

How to add a new package to an openSUSE Leap release in development

Note that openSUSE Leap 42.1 and 42.2 are now under maintenance. This section applies to openSUSE Leap 42.3.

Leap is a stable release built by combining packages from SUSE Linux Enterprise and openSUSE Tumbleweed.

For people familiar with the Factory Development Model, Factory serves a purpose for Leap similar to the purpose a Devel Project serves for Factory.

By default new packages for Leap must either come from SLE or be accepted in Factory first.

Preferably new packages should be introduced on the opensuse-factory list with a link to the submit request. A good introduction contains information on the state of the upstream project, how maintainable it is and what the purpose of having it in the distribution will be.

Example of submitting from the Factory devel project:

osc submitrequest -m 'Submitting Factory version of Salt for openSUSE Leap, see https://lists.opensuse.org/opensuse-factory/2015-07/msg00443.html ' systemsmanagement:saltstack/salt openSUSE:Leap:42.3

It's also possible to submit from Factory but that requires extra hacks:

osc submitrequest -m 'Submitting Salt for openSUSE Leap, see https://lists.opensuse.org/opensuse-factory/2015-07/msg00443.html ' openSUSE:Factory/salt openSUSE:Leap:42.3

Because of bugs in OBS, ~/.oscrc must have submitrequest_on_accept_action unset, and there must be no --cleanup nor --no-cleanup specified on the osc command line. Otherwise, OBS would return a permission error.

The following example shows how to submit a package from SLE:

osc submitrequest -m 'Submitting jakarta-commons-dbcp from SLE 12 to Leap' SUSE:SLE-12-SP2:GA/jakarta-commons-dbcp openSUSE:Leap:42.3

If a package for Leap for whatever reason cannot be taken from either SLE or Factory the reason for that should be explained in the submit request.

How to upgrade a package in an openSUSE Leap release in development

In general version updates of packages in minor Leap version upgrades (42.2 -> 42.3) are possible. The packager should carefully consider the pros and cons of such upgrades for the users though. Within a major version Leap is considered stable, so overly disruptive and incompatible changes are to be avoided.

After careful consideration of the pros and cons the same process as with new packages applies. I.e. packages must be accepted in Factory first.

How to add a new package to a released openSUSE Leap version

See Maintenance Portal and Maintenance submission.

Development Information

Project Layout

openSUSE:Leap:42.3
packages with free software license [1]
openSUSE:Leap:42.3:NonFree
packages with non free licenses [2]
openSUSE:Leap:42.3:Update
updates for packages with free software license [3]
openSUSE:Leap:42.3:NonFree:Updates
updates for packages with non free licenses [4]

Upstream Projects

Many packages in openSUSE Leap 42.3 come from other projects. During the development phase release engineers may pull package updates from those. A mapping file specifies the origin of each package.

SUSE:SLE-12-*
SUSE Linux Enterprise packages: pulled automatically
openSUSE:Leap:42.2
Maintenance updates from previous release: pulled automatically
openSUSE:Factory
Factory package updates: pulled automatically until package freeze.

RPM Distro Version Macros

  • suse_version 1315 for the full time life of SLE12 and openSUSE:Leap:42.x
  • additionally is_opensuse 1 for openSUSE:Leap:* to mark differences
RPM macros for SLE12 and openSUSE:Leap
SLE12:GA SLE12:SP1 SLE12:SP2 SLE12:SP3 Leap 42.1 Leap 42.2 Leap 42.3 Tumbleweed
suse_version 1315 1315 1315 1315 1315 1315 1315 1330
sle_version 120000 120100 120200 120300 120100 120200 120300 undefined
is_opensuse undefined undefined undefined undefined 1 1 1 1
leap_version undefined undefined undefined undefined undefined 420200 420300 undefined

For cross distribution have a look here: openSUSE:Build_Service_cross_distribution_howto

Tips and Tricks

Package not checked in for weeks

Build failure in Staging:adi

All package submissions are built isolated in openSUSE:Leap:42.3:Staging:adi:<number> to make sure the submission is complete. Sometimes that fails due to different configurations in the devel project for example. Sometimes other packages need to be grouped into the same project. Talk to the release team if a package needs manual help there.

Factory review

The 42.3 submissions wait for the submission to Factory in order to pass reviews there. Sometimes leaf packages have to wait a long time due to low priority. If a Factory submission is stuck e.g. in legal review for too long and it affects 42.3 talk to the release team so they can adjust priorities.

Maintainer review

Packages submitted by someone other than the Factory package maintainer(s) have a review set to the devel project/package to ask for permission by the Factory package maintainer. If there's no reply for too long, try adding a comment in the request to get some attention or talk to the project maintainers directly.