commit:     7980fff798a450fd9c13b251259fb559f2888f56
Author:     Amadeusz Żołnowski <aidecoe <AT> gentoo <DOT> org>
AuthorDate: Sun Aug 21 21:23:02 2016 +0000
Commit:     Amadeusz Piotr Żołnowski <aidecoe <AT> gentoo <DOT> org>
CommitDate: Sun Aug 21 21:26:44 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7980fff7

app-admin/checkrestart: Workaround a problem with finding pkg name

The output of qfile is used by checkrestart to get a list of programs
owning certain files. A feature of qfile is that its output is dependent
on the current working directory. Some of the files in its output aren't
programs and checkrestart crashed. This patch sets the cwd to / for the
qfile subprocess, so its output is as expected.

Thanks to Karl <karlc <AT> keckec.com> for investigating the issue, providing
patch and explanation above.

This not a final soluation for the problem, but it's a good workaround
given there are not so many processes named after any directory in /.

Gentoo-Bug: 548920

Package-Manager: portage-2.3.0

 app-admin/checkrestart/checkrestart-0.47-r4.ebuild | 39 ++++++++++++++++++++++
 .../checkrestart/files/checkrestart-0.47-cwd.patch | 11 ++++++
 2 files changed, 50 insertions(+)

diff --git a/app-admin/checkrestart/checkrestart-0.47-r4.ebuild 
b/app-admin/checkrestart/checkrestart-0.47-r4.ebuild
new file mode 100644
index 0000000..1bf1b95
--- /dev/null
+++ b/app-admin/checkrestart/checkrestart-0.47-r4.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit eutils python-single-r1
+
+DESCRIPTION="the sysadmin's rolling upgrade tool"
+HOMEPAGE="http://arcdraco.net/checkrestart";
+SRC_URI="http://arcdraco.net/~dragon/${P}-sep.tar.bz2";
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~x86"
+IUSE=""
+
+RDEPEND="
+       ${PYTHON_DEPS}
+       sys-apps/lsb-release
+       app-portage/portage-utils
+       sys-process/lsof
+"
+
+REQUIRED_USE=${PYTHON_REQUIRED_USE}
+
+S=${WORKDIR}
+
+src_prepare() {
+       epatch "${FILESDIR}"/${P}-list-comprehension-fix.patch
+       epatch "${FILESDIR}"/${P}-cwd.patch
+       python_fix_shebang ${PN}
+}
+
+src_install() {
+       dosbin ${PN}
+}

diff --git a/app-admin/checkrestart/files/checkrestart-0.47-cwd.patch 
b/app-admin/checkrestart/files/checkrestart-0.47-cwd.patch
new file mode 100644
index 0000000..6d5fd50
--- /dev/null
+++ b/app-admin/checkrestart/files/checkrestart-0.47-cwd.patch
@@ -0,0 +1,11 @@
+--- /usr/sbin/checkrestart     2016-02-22 08:08:34.000000000 -0800
++++ /usr/sbin/checkrestarta    2016-02-22 08:19:16.013507231 -0800
+@@ -114,7 +114,7 @@
+ def portage_fQuery(programs, packages):
+     
+     dpkgQuery = ["qfile", "-C"] + programs.keys()
+-    dpkgProc = subprocess.Popen(dpkgQuery, stdout=subprocess.PIPE)
++    dpkgProc = subprocess.Popen(dpkgQuery, stdout=subprocess.PIPE, cwd='/')
+     for line in dpkgProc.stdout.readlines():
+         packagename, program = line[:-1].split(' ')
+         program = re.match('\((.*)\)', program).group(1)

Reply via email to