openSUSE:Build Service Concept Program Temporary Fix
Program Temporary Fix
The Program Temporary Fix (PTF) concept is technically very similar to a source link. The purpose of this concept is to deliver a specific fix for a certain version of a program without other additional patches. This is used to fix customer issues between releases of maintenance updates.
- create a project in the PTF namespace, e.g. PTF:<Bug # from b.n.c>
- create a source link to a snapshot of the maintained products updates repository, e.g. SUSE:SLE-11:Update
- Specify the source revision by adding the source revision counter (rev=...) to the Build_Service/Tips_and_Tricks#Example_of_a__link _link file.
- Besides that it is now possible to create a PTF on top of a moving target. These PTFs get rebuild automatically when a new maintenance update gets released unless the patch no longer applies.
- Having a fixed revision source link is the default policy.
- create the patch and verify the fix locally (osc build --local-package ...)
- commit and upload the fix to the Build Service
- the build result is delivered to the customer once the build succeeds
The PTF namespace is defined by the PTF project in the internal buildservice. The persons able to create project in the PTF namespace are listed as maintainers in the PTF project. Additional persons can be granted write access later to the created project. Therefore the maintainer of a package can prepare the PTF while the L3 Agent is coordinating the work.
This workflow is generic and independent of other issues like the version and release numbering scheme.
PTF release numbers
The numbering scheme should be handled independent from the technical aspects of how to build PTFs in the openSUSE Build Service. Nevertheless the numbering schemes are described here for reference.
Ideally the numbering schemes for release numbers used by PTF should integrate seamlessly into the release numbers used for official maintenance updates. The following requirements should be fulfilled:
- it is easy to determine if a PTF is installed in the system
- installed PTF shouldn't affect the installation of new maintenance updates
- newer maintenance updates obsolete installed PTFs
The current numbering scheme
Currently we use the following numbering scheme:
<name>-<version>-<release> are the name and the version-release string of the package that the PTF is based on. The extension of the release number is used to clearly state that this package is a PTF.
The rewrite of the Release tag in the spec can be done as follows:
Set "cicount" attribute of the link element to "copy". Set the Release tag in the .spec file as follows:
Where "3" is the original build number of the source package for the PTF, "284686" is the bug number, and "0" is the sequence number of the PTF.