[PR #25] [MERGED] RPM: Properly order Signature tags #176

Closed
opened 2026-01-29 16:31:02 +00:00 by claunia · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/quamotion/dotnet-packaging/pull/25
Author: @qmfrederik
Created: 10/12/2017
Status: Merged
Merged: 10/12/2017
Merged by: @qmfrederik

Base: masterHead: fixes/rhel


📝 Commits (5)

  • 1a2463b Don't fail if lzma_stream_encoder_mt is not available (like e.g. on Ubuntu)
  • a5b20eb Specify an order for the Signature tags
  • 85ddade Make package creation more flexible:
  • 9f7063d Support dumping RPM package headers to a text file
  • 5e505d3 Add test which recreates a RPM lib from scratch, and aims to be 100% binary compatible.

📊 Changes

13 files changed (+465 additions, -30 deletions)

View changed files

📝 Packaging.Targets.Tests/Packaging.Targets.Tests.csproj (+6 -0)
Packaging.Targets.Tests/Rpm/DummySigner.cs (+38 -0)
📝 Packaging.Targets.Tests/Rpm/RpmPackageCreatorTests.cs (+90 -1)
Packaging.Targets.Tests/Rpm/RpmSigTag_Pgp.bin (+0 -0)
Packaging.Targets.Tests/Rpm/RpmSigTag_Rsa.bin (+0 -0)
📝 Packaging.Targets/IO/NativeMethods.cs (+20 -2)
📝 Packaging.Targets/IO/XZOutputStream.cs (+1 -1)
📝 Packaging.Targets/Native/FunctionLoader.cs (+11 -3)
📝 Packaging.Targets/Rpm/DefaultOrder.cs (+7 -0)
Packaging.Targets/Rpm/IPackageSigner.cs (+13 -0)
Packaging.Targets/Rpm/PackageSigner.cs (+30 -0)
Packaging.Targets/Rpm/RpmDumper.cs (+86 -0)
📝 Packaging.Targets/Rpm/RpmPackageCreator.cs (+163 -23)

📄 Description

This fixes an issue where the order of the tags in the Signature section was not what was expected by RPM. This would cause validation of the RPM packages to fail on RPM version 4.13.0.1 and higher.

This PR also adds unit tests which re-create the libplist package from scratch and ensure it is 100% binary compatible with the original package. To enable this, some updates were required:

  • Fixes in how the package is generated (package name in the RPM lead, and prevent writing pre/post (un)install scripts if none are specified)
  • Support faking PGP signatures
  • Support passing the raw compressed payload - purely for binary compatibility

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/quamotion/dotnet-packaging/pull/25 **Author:** [@qmfrederik](https://github.com/qmfrederik) **Created:** 10/12/2017 **Status:** ✅ Merged **Merged:** 10/12/2017 **Merged by:** [@qmfrederik](https://github.com/qmfrederik) **Base:** `master` ← **Head:** `fixes/rhel` --- ### 📝 Commits (5) - [`1a2463b`](https://github.com/quamotion/dotnet-packaging/commit/1a2463b9bba38d56f45244678f97ed8a6717e5a9) Don't fail if lzma_stream_encoder_mt is not available (like e.g. on Ubuntu) - [`a5b20eb`](https://github.com/quamotion/dotnet-packaging/commit/a5b20eb01bb517750230155a34e724e7365c513a) Specify an order for the Signature tags - [`85ddade`](https://github.com/quamotion/dotnet-packaging/commit/85ddadef191e059ce8fb16ce5659a37ebfac0883) Make package creation more flexible: - [`9f7063d`](https://github.com/quamotion/dotnet-packaging/commit/9f7063d11376b545eb525f7393fa6c5d376b9119) Support dumping RPM package headers to a text file - [`5e505d3`](https://github.com/quamotion/dotnet-packaging/commit/5e505d3cd1e4c15584bedeeaa1830dc4d0e04f4c) Add test which recreates a RPM lib from scratch, and aims to be 100% binary compatible. ### 📊 Changes **13 files changed** (+465 additions, -30 deletions) <details> <summary>View changed files</summary> 📝 `Packaging.Targets.Tests/Packaging.Targets.Tests.csproj` (+6 -0) ➕ `Packaging.Targets.Tests/Rpm/DummySigner.cs` (+38 -0) 📝 `Packaging.Targets.Tests/Rpm/RpmPackageCreatorTests.cs` (+90 -1) ➕ `Packaging.Targets.Tests/Rpm/RpmSigTag_Pgp.bin` (+0 -0) ➕ `Packaging.Targets.Tests/Rpm/RpmSigTag_Rsa.bin` (+0 -0) 📝 `Packaging.Targets/IO/NativeMethods.cs` (+20 -2) 📝 `Packaging.Targets/IO/XZOutputStream.cs` (+1 -1) 📝 `Packaging.Targets/Native/FunctionLoader.cs` (+11 -3) 📝 `Packaging.Targets/Rpm/DefaultOrder.cs` (+7 -0) ➕ `Packaging.Targets/Rpm/IPackageSigner.cs` (+13 -0) ➕ `Packaging.Targets/Rpm/PackageSigner.cs` (+30 -0) ➕ `Packaging.Targets/Rpm/RpmDumper.cs` (+86 -0) 📝 `Packaging.Targets/Rpm/RpmPackageCreator.cs` (+163 -23) </details> ### 📄 Description This fixes an issue where the order of the tags in the Signature section was not what was expected by RPM. This would cause validation of the RPM packages to fail on RPM version 4.13.0.1 and higher. This PR also adds unit tests which re-create the libplist package from scratch and ensure it is 100% binary compatible with the original package. To enable this, some updates were required: - Fixes in how the package is generated (package name in the RPM lead, and prevent writing pre/post (un)install scripts if none are specified) - Support faking PGP signatures - Support passing the raw compressed payload - purely for binary compatibility --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
claunia added the pull-request label 2026-01-29 16:31:02 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/dotnet-packaging#176