public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/rpmlint] rawhide: remove patch, turned out to be legit bug in glibc
@ 2026-08-25 14:04 Tom spot Callaway
  0 siblings, 0 replies; only message in thread
From: Tom spot Callaway @ 2026-08-25 14:04 UTC (permalink / raw)
  To: git-commits

A new commit has been pushed.

Repo   : rpms/rpmlint
Branch : rawhide
Commit : 647dc518a0da865203164e946487fe6c0ba2ce70
Author : Tom spot Callaway <spotaws@amazon.com>
Date   : 2026-08-25T10:04:46-04:00
Stats  : +4/-64 in 2 file(s)
URL    : https://src.fedoraproject.org/rpms/rpmlint/c/647dc518a0da865203164e946487fe6c0ba2ce70?branch=rawhide

Log:
remove patch, turned out to be legit bug in glibc

---
diff --git a/lddparser-glibc244-fallback.patch b/lddparser-glibc244-fallback.patch
deleted file mode 100644
index 703247a..0000000
--- a/lddparser-glibc244-fallback.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From 58b13f05add5a564c2764c12bec67591742bf511 Mon Sep 17 00:00:00 2001
-From: Tom Callaway <spot@fedoraproject.org>
-Date: Wed, 12 Aug 2026 10:06:40 -0400
-Subject: [PATCH] lddparser: Add fallback for glibc >= 2.44 ldd -u behavior
-
-glibc 2.44 changed the behavior of 'ldd -u' when a shared library has
-IFUNC-related issues. Instead of producing the expected 'Unused direct
-dependencies:' output, it now emits a 'Relink' message and exits
-non-zero without any useful dependency information.
-
-Add a fallback mechanism: when 'ldd -u' fails without producing the
-expected output format, run 'ldd -r' and detect NEEDED libraries that
-are marked as 'not found'. These libraries cannot contribute any
-resolved symbols and are effectively unused from the linker's
-perspective, matching the previous behavior of 'ldd -u' for
-unresolvable dependencies.
-
-I'm not entirely sure if this is the right fix, or if this is a glibc
-regression, but I at least understand this (and I don't really
-understand glibc internals).
-
----
- rpmlint/lddparser.py | 15 +++++++++++++++
- 1 file changed, 15 insertions(+)
-
-diff --git a/rpmlint/lddparser.py b/rpmlint/lddparser.py
-index 81d1d1d..d949745 100644
---- a/rpmlint/lddparser.py
-+++ b/rpmlint/lddparser.py
-@@ -37,6 +37,7 @@ class LddParser:
- 
-     unused_regex = re.compile(r'^\s+(?P<lib>\S+)')
-     undef_regex = re.compile(r'^undefined symbol:\s+(?P<symbol>[^, ]+)')
-+    notfound_regex = re.compile(r'^\s+(?P<lib>\S+)\s+=>\s+not found')
- 
-     def __init__(self, pkgfile_path, path, is_installed_pkg):
-         self.pkgfile_path = pkgfile_path
-@@ -66,6 +67,20 @@ class LddParser:
-                 else:
-                     is_unused = False
- 
-+        # Fallback for glibc >= 2.44 where ldd -u may not produce the
-+        # expected "Unused direct dependencies:" output due to IFUNC
-+        # handling changes. In this case, detect unused dependencies by
-+        # finding NEEDED libraries that cannot be resolved ("not found"
-+        # in ldd -r output), as these cannot contribute any symbols.
-+        if not self.unused_dependencies and r.returncode != 0:
-+            r2 = subprocess.run(['ldd', '-r', self.pkgfile_path], encoding='utf8',
-+                                capture_output=True, env=ENGLISH_ENVIRONMENT)
-+            if r2.returncode == 0:
-+                for line in r2.stdout.splitlines():
-+                    m = self.notfound_regex.search(line)
-+                    if m:
-+                        self.unused_dependencies.append(m.group('lib'))
-+
-     def parse_undefined_symbols(self):
-         r = subprocess.run(['ldd', '-r', self.pkgfile_path], encoding='utf8',
-                            capture_output=True, env=ENGLISH_ENVIRONMENT)
--- 
-2.55.0
-

diff --git a/rpmlint.spec b/rpmlint.spec
index c6dc701..485dfdd 100644
--- a/rpmlint.spec
+++ b/rpmlint.spec
@@ -3,7 +3,7 @@
 
 Name:           rpmlint
 Version:        2.10.0
-Release:        1%{?dist}
+Release:        2%{?dist}
 Summary:        Tool for checking common errors in RPM packages
 License:        GPL-2.0-or-later
 URL:            https://github.com/rpm-software-management/rpmlint
@@ -15,8 +15,6 @@ Source3:        scoring.toml
 Source4:        users-groups.toml
 Source5:        warn-on-functions.toml
 
-Patch0:         lddparser-glibc244-fallback.patch
-
 BuildArch:      noarch
 
 # use git to apply patches; it handles binary diffs
@@ -98,6 +96,9 @@ cp -a %{SOURCE1} %{SOURCE3} %{SOURCE4} %{SOURCE5} %{buildroot}%{_sysconfdir}/xdg
 %{_bindir}/rpmlint
 
 %changelog
+* Tue Aug 25 2026 Tom Callaway <spot@fedoraproject.org> - 2.10.0-2
+- remove patch, turned out to be legit bug in glibc
+
 * Wed Aug 12 2026 Tom Callaway <spot@fedoraproject.org> - 2.10.0-1
 - update to 2.10.0
 - add fix for ldd issues with glibc 2.44

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-08-25 14:04 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-25 14:04 [rpms/rpmlint] rawhide: remove patch, turned out to be legit bug in glibc Tom spot Callaway

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox