Introducing Easier Delivery of Hot Fixes from SUSE Technical Support

Share
Share

When the SUSE Technical Support team provides assistance to customers, we often share a link to a directory listing with the RPM packages that address the issue. (RPM packages are utilities for managing the software packages of major Linux distributions.) These packages are called PTFs (Program Temporary Fix). Deploying them involves downloading these packages, distributing them to the affected systems and installing them. The procedure is documented in Best practice for applying Program Temporary Fixes (PTFs).

However, applying these fixes is cumbersome since the required RPMs are not integrated into the update stack. We’ve got a solution. To ease the deployment of PTFs, customers can now use our new PTF Repositories. The software fixes will be available directly in the customer’s systems for installation through Zypper, updating only the already installed packages. That means no customer intervention is required.

In this post, I’ll walk through the advantages of the new repo and discuss what’s coming in the future ideas.

What are PTF repositories?

PTF repositories use the same infrastructure that SUSE uses to deliver Maintenance Updates. These are rpm-md repositories available through updates.suse.com. This means that a new package will be available to customers to install directly with Zypper once the PTF repository is enabled and refreshed. These repositories are visible only to the systems within a single SUSE Customer Center account and are also separated by product service pack.

Customers also can use the Repository Mirroring Tool (RMT) to distribute PTFs across their infrastructure, since they share the same infrastructure as Maintenance Updates.

The packages also contained in PTF repositories take advantage of a regression prevention feature of Zypper: they will be locked in the system until the issue has been fully integrated in a future maintenance update, replaced only when a release known to address the issue is available. This prevents issues from being reintroduced in case a new version of the same package is available but doesn’t include the fix yet, which can happen when a PTF is delivered and a maintenance update is about to be released. SUSE can provide an updated PTF based on the latest maintenance update on request.

Getting started with PTF repositories

When working out an issue with SUSE Technical Support, customers now can request PTFs delivered to a private repository. Once the SUSE developers release the package to the repository and it is synchronized to the update servers, it will be ready to be enabled on the system.

The detailed instructions and troubleshooting are available in the TID Installing Program Temporary Fixes (PTFs) from SUSEConnect repositories.

To have a taste of it, once Zypper discovers the PTF repository, it will look like this:

$ sudo zypper repos
 # | Alias | Name | Enabled | GPG Check | Refresh
 ---+-------------------------------------------------------------------------------------------------+--------------------------------------------------------+---------+-----------+--------
 1 | Basesystem_Module_15_SP3_x86_64:SLE-Module-Basesystem15-SP3-Debuginfo-Pool | SLE-Module-Basesystem15-SP3-Debuginfo-Pool | No | ---- | ----
 2 | Basesystem_Module_15_SP3_x86_64:SLE-Module-Basesystem15-SP3-Debuginfo-Updates | SLE-Module-Basesystem15-SP3-Debuginfo-Updates | No | ---- | ----
 [...]
 7 | SUSE_Linux_Enterprise_Server_15_SP3_x86_64:PTFs for SUSE Linux Enterprise Server 15 SP3 x86_64 | PTFs for SUSE Linux Enterprise Server 15 SP3 x86_64 | No | ---- | ----
 8 | SUSE_Linux_Enterprise_Server_15_SP3_x86_64:SLE-Product-SLES15-SP3-Debuginfo-Pool | SLE-Product-SLES15-SP3-Debuginfo-Pool | No | ---- | ----
 [...]

The repository number 7 in the listing includes all PTFs released for that registered account and for SUSE Linux Enterprise Server 15 SP3. It comes disabled by default and after enabling it and authorizing the key for the repository, you can see all published PTFs:

$ sudo zypper search --repo 7 ptf-
Loading repository data...
Reading installed packages...

S | Name | Summary | Type
--+-----------+---------------------------+-----------
| ptf-22333 | PTF for salt-minion addressing bsc#8891133, case 0328392 | package
| ptf-22333 | PTF for salt-minion addressing bsc#8891133, case 0328392 | srcpackage

The package named ptf-22333 in the listing above requires all other packages
patched to address the issue reported in the (in this example) case 0328392, so
it means installing ptf-22333 will also install the corrected packages:

$ sudo zypper install ptf-22333
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW package is going to be installed:
ptf-22333

The following 3 packages are going to be upgraded:
python3-salt salt salt-minion

The following 4 packages have no support information from their vendor:
ptf-22333 python3-salt salt salt-minion

3 packages to upgrade, 1 new.
Overall download size: 8.5 MiB. Already cached: 0 B. After the operation, additional 1.6 KiB will be used.
Continue? [y/n/v/...? shows all options] (y): y
Retrieving package ptf-22333-1-0.noarch (1/4), 9.7 KiB ( 1.6 KiB unpacked)
Retrieving: ptf-22333-1-0.noarch.rpm ..........................................................................................................................[done]
Retrieving package salt-3000-30.1.22333.0.PTF.1047068.x86_64 (2/4), 155.9 KiB ( 26.8 KiB unpacked)
Retrieving: salt-3000-30.1.22333.0.PTF.1047068.x86_64.rpm .....................................................................................................[done]
Retrieving package python3-salt-3000-30.1.22333.0.PTF.1047068.x86_64 (3/4), 8.2 MiB ( 44.7 MiB unpacked)
Retrieving: python3-salt-3000-30.1.22333.0.PTF.1047068.x86_64.rpm ..................................................................................[done (1.8 MiB/s)]
Retrieving package salt-minion-3000-30.1.22333.0.PTF.1047068.x86_64 (4/4), 156.2 KiB ( 40.3 KiB unpacked)
Retrieving: salt-minion-3000-30.1.22333.0.PTF.1047068.x86_64.rpm ..................................................................................[done (156.2 KiB/s)]

Checking for file conflicts: .....................................................................................................................................[done]
(1/4) Installing: ptf-22333-1-0.noarch ...........................................................................................................................[done]
(2/4) Installing: salt-3000-30.1.22333.0.PTF.1047068.x86_64 ......................................................................................................[done]

Mirroring PTF repositories using RMT

RMT allows the management of SUSE Linux Enterprise software updates and subscription entitlements.

Once published, the PTF repository is also visible in RMT for the same organization:

$ sudo rmt-cli repos list --all | grep PTF
| 5510 | PTFs for SUSE Linux Enterprise Server 15 SP3 x86_64 for | Not Mandatory | Don't Mirror | 2021-12-10 10:34:26 UTC |
$ sudo rmt-cli repos enable 5510
Repository by ID 5510 successfully enabled.

And can be mirrored like any other repository handled by RMT:

$ sudo rmt-cli mirror
I, [2022-02-14T21:16:20.070914 #57]  INFO -- : Mirroring SUSE Manager product tree to /usr/share/rmt/public/suma/
I, [2022-02-14T21:16:20.464251 #57]  INFO -- : ↓ product_tree.json
I, [2022-02-14T21:16:20.575890 #57]  INFO -- : Mirroring repository SLE-Module-Basesystem15-SP3-Updates to /usr/share/rmt/public/repo/SUSE/Updates/SLE-Module-Basesystem/15-SP3/x86_64/update/
[...]
I, [2022-02-14T21:21:00.511160 #57]  INFO -- : Mirroring repository PTFs for SUSE Linux Enterprise Server 15 SP3 x86_64 to /usr/share/rmt/public/repo/PTF/Release/A123456/SLES/15.3/x86_64/ptf/
I, [2022-02-14T21:21:01.932138 #57]  INFO -- : ↓ ptf-22333-1-0.noarch.rpm
I, [2022-02-14T21:21:01.294238 #57]  INFO -- : ↓ python3-salt-3000-30.1.22333.0.PTF.1047068.x86_64.rpm
I, [2022-02-14T21:21:02.124838 #57]  INFO -- : ↓ salt-minion-3000-30.1.22333.0.PTF.1047068.x86_64.rpm
I, [2022-02-14T21:21:03.799818 #57]  INFO -- : ↓ salt-3000-30.1.22333.0.PTF.1047068.x86_64.rpm
I, [2022-02-14T21:21:04.817169 #57]  INFO -- : Mirroring complete.

With these packages mirrored, you can have the PTF available in all systems registered for the same product in the organization.

Conclusion

By integrating PTF delivery and deployment into the update stack, SUSE is adding convenience for customers.

PTFs can be easily mirrored via RMT — no more downloading the individual RPM packages. SUSE Manager is not supported yet.

SUSE’s software management and update stacks make sure to update the required packages and pull in the minimal needed dependencies — customers no longer need to pick the required packages or add required packages to fulfill new dependencies.

When the PTF-related fix is in integrated and released in a Maintenance Update, SUSE releases an update to the specific PTF, relaxing the RPM dependencies. The software management and update stack will pull in the packages of the newest Maintenance Update containing the PTF fix on the next run. No more manual interaction is required.

In the future, we will integrate PTF repositories with SUSE Manager.

If your support request requires a hot fix, check with your support contact to see if the new model will work for you.

Share
(Visited 1 times, 1 visits today)
1,228 views