[PATCH 80/94] sys-kernel/hurd: add patch for libports assertion

Sam James <[email protected]>
Newsgroups gmane.linux.gentoo.devel
Message-ID <a2e41e2be4b321c9e98802d540be44a4bdce5999.1774994363.git.sam@gentoo.org>
Debian and Guix both carry this.

Signed-off-by: Sam James <[email protected]>
---
 ..._p20251029-libports-iterate-refcount.patch | 21 +++++++++++++++++++
 sys-kernel/hurd/hurd-0.9_p20251029.ebuild     |  1 +
 sys-kernel/hurd/hurd-9999.ebuild              |  1 +
 3 files changed, 23 insertions(+)
 create mode 100644 sys-kernel/hurd/files/hurd-0.9_p20251029-libports-iterate-refcount.patch

diff --git a/sys-kernel/hurd/files/hurd-0.9_p20251029-libports-iterate-refcount.patch b/sys-kernel/hurd/files/hurd-0.9_p20251029-libports-iterate-refcount.patch
new file mode 100644
index 0000000000000..f1a66bd548134
--- /dev/null
+++ b/sys-kernel/hurd/files/hurd-0.9_p20251029-libports-iterate-refcount.patch
@@ -0,0 +1,21 @@
+https://salsa.debian.org/hurd-team/hurd/-/blob/f2c31b4596fc22c2de9dd1758abd32bd4c781c97/debian/patches/libports-iterate-refcount.patch
+https://logs.guix.gnu.org/hurd/2024-11-20.log#082237
+https://lists.gnu.org/archive/html/bug-hurd/2016-03/msg00034.html
+--- a/libports/bucket-iterate.c
++++ b/libports/bucket-iterate.c
+@@ -58,7 +58,14 @@ _ports_bucket_class_iterate (struct hurd_ihash *ht,
+ 
+       if (class == 0 || pi->class == class)
+ 	{
+-	  refcounts_ref (&pi->refcounts, NULL);
++	  struct references result;
++	  refcounts_unsafe_ref (&pi->refcounts, &result);
++	  if (result.hard == 1 && result.weak == 0)
++	  {
++	    /* This one is on its way out, skip it.  */
++	    refcounts_deref (&pi->refcounts, NULL);
++	    continue;
++	  }
+ 	  p[n] = pi;
+ 	  n++;
+ 	}
diff --git a/sys-kernel/hurd/hurd-0.9_p20251029.ebuild b/sys-kernel/hurd/hurd-0.9_p20251029.ebuild
index 15554b6da93fd..79679c537a0ee 100644
--- a/sys-kernel/hurd/hurd-0.9_p20251029.ebuild
+++ b/sys-kernel/hurd/hurd-0.9_p20251029.ebuild
@@ -62,6 +62,7 @@ fi
 PATCHES=(
 	"${FILESDIR}"/${PN}-0.9_p20251029-glibc-2.43.patch
 	"${FILESDIR}"/${PN}-0.9_p20251029-rump-link.patch
+	"${FILESDIR}"/${PN}-0.9_p20251029-libports-iterate-refcount.patch
 )
 
 src_prepare() {
diff --git a/sys-kernel/hurd/hurd-9999.ebuild b/sys-kernel/hurd/hurd-9999.ebuild
index cd1ca6cb742a3..625039f09ba11 100644
--- a/sys-kernel/hurd/hurd-9999.ebuild
+++ b/sys-kernel/hurd/hurd-9999.ebuild
@@ -61,6 +61,7 @@ fi
 
 PATCHES=(
 	"${FILESDIR}"/${PN}-0.9_p20251029-rump-link.patch
+	"${FILESDIR}"/${PN}-0.9_p20251029-libports-iterate-refcount.patch
 )
 
 src_prepare() {
-- 
2.53.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.