app-portage/genlop: Correctly filter sandboxes.
authorGabriel Linder <linder.gabriel@gmail.com>
Sat, 11 May 2019 23:50:57 +0000 (01:50 +0200)
committerZac Medico <zmedico@gentoo.org>
Sun, 12 May 2019 04:39:08 +0000 (21:39 -0700)
Embed the patch provided by Joe Breuer to fix `genlop -c`.

The underlying cause seems to be that genlop looks for running emerges
by filtering over sandbox processes. A change to portage (or something)
introduced the pid-ns-init process to the call tree, which is also
selected by genlop looking for sandbox processes. This is what causes
each emerge to show up twice - once matched on the pid-ns-init process,
once on the sandbox process itself.

See https://bugs.gentoo.org/677890#c7 for more details.

Closes: https://github.com/gentoo/gentoo/pull/11975
Bug: https://bugs.gentoo.org/677890
Package-Manager: Portage-2.3.62, Repoman-2.3.12
Signed-off-by: Gabriel Linder <linder.gabriel@gmail.com>
Signed-off-by: Zac Medico <zmedico@gentoo.org>
app-portage/genlop/files/genlop-0.30.10-sandbox.patch [new file with mode: 0644]
app-portage/genlop/genlop-0.30.10-r2.ebuild [new file with mode: 0644]

diff --git a/app-portage/genlop/files/genlop-0.30.10-sandbox.patch b/app-portage/genlop/files/genlop-0.30.10-sandbox.patch
new file mode 100644 (file)
index 0000000..1b4efdb
--- /dev/null
@@ -0,0 +1,29 @@
+From af0fccf158a0a5d0c300be2eae167eace93cc1d3 Mon Sep 17 00:00:00 2001
+From: Joe Breuer <gentoo@jmbreuer.net>
+Date: Sat, 11 May 2019 21:08:21 -0700
+Subject: [PATCH] genlop -c: filter pid-ns-init duplicates (bug 677890)
+
+The latest stable version of portage introduces a pid-ns-init
+process which must be filtered in order to avoid duplicates.
+
+Bug: https://bugs.gentoo.org/677890
+Signed-off-by: Zac Medico <zmedico@gentoo.org>
+---
+ genlop | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/genlop b/genlop
+index b28c9d6..c154aa4 100755
+--- a/genlop
++++ b/genlop
+@@ -706,7 +706,7 @@ sub current()
+       # not check for sanity and have users check their FEATURES instead.
+       my @targets      = ();
+       my @sandbox_pids = ();
+-      my @sandbox_procs = qx{ps ax -o pid,args | tail -n +2 | sed -e's/^ *//' | grep ' sandbox ' | grep -v ' grep '};
++      my @sandbox_procs = qx{ps ax -o pid,args | tail -n +2 | sed -e's/^ *//' | grep ' sandbox ' | grep -v -e ' grep ' -e 'pid-ns-init '};
+       my ($e_curmerge, $e_lastmerge);
+       foreach (@sandbox_procs)
+       {
+--
+2.21.0
diff --git a/app-portage/genlop/genlop-0.30.10-r2.ebuild b/app-portage/genlop/genlop-0.30.10-r2.ebuild
new file mode 100644 (file)
index 0000000..36cc50c
--- /dev/null
@@ -0,0 +1,33 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit base bash-completion-r1
+
+DESCRIPTION="A nice emerge.log parser"
+HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Perl"
+SRC_URI="https://dev.gentoo.org/~dilfridge/distfiles/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
+IUSE=""
+
+DEPEND="dev-lang/perl
+        dev-perl/Date-Manip
+        dev-perl/libwww-perl"
+RDEPEND="${DEPEND}"
+
+# Populate the patches array for any patches for -rX releases
+PATCHES=(
+       "${FILESDIR}"/${P}-sync.patch
+       "${FILESDIR}"/${P}-sandbox.patch
+)
+
+src_install() {
+       dobin genlop
+       dodoc README Changelog
+       doman genlop.1
+       newbashcomp genlop.bash-completion genlop
+}