Skip to content

debian/control: add libgnutls30t64 to Conflicts/Replaces/Provides#82

Open
MarkAtwood wants to merge 1 commit into
wolfSSL:mainfrom
MarkAtwood:t64-transition-conflicts-replaces-provides
Open

debian/control: add libgnutls30t64 to Conflicts/Replaces/Provides#82
MarkAtwood wants to merge 1 commit into
wolfSSL:mainfrom
MarkAtwood:t64-transition-conflicts-replaces-provides

Conversation

@MarkAtwood
Copy link
Copy Markdown

Summary

Extends debian/control's drop-in-replacement clauses for gnutls-wolfssl to cover both libgnutls30 AND libgnutls30t64, so the package installs cleanly on Debian Trixie and Ubuntu Noble (which underwent the t64 transition renaming libgnutls30libgnutls30t64).

Problem

On a fresh Trixie host, apt install gnutls-wolfssl (built from this source as-is) fails:

gnutls-wolfssl conflicts with libgnutls30; libgnutls30t64 provides
libgnutls30 and is present and installed.

The upstream libgnutls30t64 declares Provides: libgnutls30 as a transition stub so most consumers continue to work transparently. But this source's Conflicts: libgnutls30 clause matches the virtual libgnutls30 provided by libgnutls30t64, so dpkg refuses to install.

Fix

Standard Debian t64 transition pattern: extend Conflicts, Replaces, and Provides to list both names. This is what Debian's own openssl source package did (libssl3libssl3t64).

-Provides: libgnutls30 (= 3.8.9)
-Conflicts: libgnutls30
-Replaces: libgnutls30
+Provides: libgnutls30 (= 3.8.9), libgnutls30t64 (= 3.8.9)
+Conflicts: libgnutls30, libgnutls30t64
+Replaces: libgnutls30, libgnutls30t64

Safety

The change is unconditional and safe across suites:

  • On Bookworm and pre-t64 systems, there's no libgnutls30t64 to match against, so the t64-specific clauses are inert. No behavior change.
  • On Trixie and post-t64 systems, the t64 clauses let apt resolve the drop-in replacement correctly and install gnutls-wolfssl cleanly over the system's libgnutls30t64.

Discovery

Found while building gnutls-wolfssl for Debian Trixie in the wolfSSL FIPS-eval channel pipeline on 2026-05-24. The downstream pipeline has been sed-patching debian/control at build time as a workaround; this PR lands the fix upstream so the workaround can be removed.

Background

Debian Trixie and Ubuntu Noble underwent the t64 transition (time_t
becomes 64-bit on 32-bit archs), which renamed libgnutls30 to
libgnutls30t64. The upstream libgnutls30t64 binary package declares
'Provides: libgnutls30' as a transition stub so most consumers
continue to work transparently.

But this gnutls-wolfssl source package's drop-in-replacement clauses
list only libgnutls30. On a fresh Trixie host (which has
libgnutls30t64 installed providing virtual libgnutls30), apt refuses
to install gnutls-wolfssl:

  gnutls-wolfssl conflicts with libgnutls30; libgnutls30t64 provides
  libgnutls30 and is present and installed.

Standard Debian t64 transition pattern is to extend the lists to
include both names. This is what Debian's own openssl source package
did (libssl3 -> libssl3t64).

The change is unconditional and safe across suites:
- On Bookworm and pre-t64 systems, there's no libgnutls30t64 to match
  against, so the t64-specific clauses are inert. No behavior change.
- On Trixie and post-t64 systems, the t64 clauses let apt resolve
  the drop-in replacement correctly and install gnutls-wolfssl
  cleanly over the system's libgnutls30t64.

Discovered while building gnutls-wolfssl for Debian Trixie/amd64 on
2026-05-24 in the wolfSSL FIPS-eval channel pipeline. The
FIPS-eval build harness has been sed-patching debian/control at
build time as a workaround; this commit lands the fix upstream so
the workaround can be removed from downstream pipelines.

Refs: https://wiki.debian.org/ArmHfPort/64bit_time_t (t64 transition
background)
Copilot AI review requested due to automatic review settings May 26, 2026 19:47
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the Debian packaging metadata so gnutls-wolfssl remains a drop-in replacement for the system GnuTLS runtime library across Debian/Ubuntu suites that have renamed libgnutls30 to libgnutls30t64 during the t64 transition.

Changes:

  • Extend Provides to include both libgnutls30 and libgnutls30t64 with the same provided version.
  • Extend Conflicts and Replaces to include both libgnutls30 and libgnutls30t64, avoiding install failures on t64-based distributions.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants