Gentoo Archives: gentoo-commits

From: Zac Medico <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/portage:master commit in: lib/portage/_sets/, cnf/sets/
Date: Thu, 12 Sep 2019 02:28:05
Message-Id: 1568253193.b1342ac2c83b4a1b0415eb5fcc4dd1d6c65561d8.zmedico@gentoo
commit:     b1342ac2c83b4a1b0415eb5fcc4dd1d6c65561d8
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 11 01:52:35 2019 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Thu Sep 12 01:53:13 2019 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=b1342ac2

x11-module-rebuild: support SYMLINK_LIB=no (bug 693980)

Use a lib* glob to support SYMLINK_LIB=no.

Bug: https://bugs.gentoo.org/693980
Signed-off-by: Zac Medico <zmedico <AT> gentoo.org>

 cnf/sets/portage.conf         |  2 +-
 lib/portage/_sets/__init__.py |  2 +-
 lib/portage/_sets/dbapi.py    | 15 ++++++++++++---
 3 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/cnf/sets/portage.conf b/cnf/sets/portage.conf
index 38c50a647..0d11d7891 100644
--- a/cnf/sets/portage.conf
+++ b/cnf/sets/portage.conf
@@ -76,7 +76,7 @@ files = /lib/modules
 # excluding the package that owns /usr/bin/Xorg.
 [x11-module-rebuild]
 class = portage.sets.dbapi.OwnerSet
-files = /usr/lib/xorg/modules
+files = /usr/lib*/xorg/modules
 exclude-files = /usr/bin/Xorg
 
 # Binary packages that have a different build time from a currently

diff --git a/lib/portage/_sets/__init__.py b/lib/portage/_sets/__init__.py
index 7b81c55e2..a569b273b 100644
--- a/lib/portage/_sets/__init__.py
+++ b/lib/portage/_sets/__init__.py
@@ -142,7 +142,7 @@ class SetConfig(object):
 		parser.remove_section("x11-module-rebuild")
 		parser.add_section("x11-module-rebuild")
 		parser.set("x11-module-rebuild", "class", "portage.sets.dbapi.OwnerSet")
-		parser.set("x11-module-rebuild", "files", "/usr/lib/xorg/modules")
+		parser.set("x11-module-rebuild", "files", "/usr/lib*/xorg/modules")
 		parser.set("x11-module-rebuild", "exclude-files", "/usr/bin/Xorg")
 
 	def update(self, setname, options):

diff --git a/lib/portage/_sets/dbapi.py b/lib/portage/_sets/dbapi.py
index 5d78fd1d3..5c600ec9e 100644
--- a/lib/portage/_sets/dbapi.py
+++ b/lib/portage/_sets/dbapi.py
@@ -1,8 +1,9 @@
-# Copyright 2007-2014 Gentoo Foundation
+# Copyright 2007-2019 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 from __future__ import division
 
+import glob
 import re
 import time
 
@@ -67,11 +68,19 @@ class OwnerSet(PackageSet):
 
 	def mapPathsToAtoms(self, paths, exclude_paths=None):
 		"""
-		All paths must begin with a slash, must include EPREFIX, and
-		must not include ROOT.
+		All paths must begin with a slash, and must not include EROOT.
+		Supports globs.
 		"""
 		rValue = set()
 		vardb = self._db
+
+		eroot = vardb.settings['EROOT']
+		expanded_paths = []
+		for p in paths:
+			expanded_paths.extend(expanded_p[len(eroot)-1:] for expanded_p in
+				glob.iglob(os.path.join(eroot, p.lstrip(os.sep))))
+		paths = expanded_paths
+
 		pkg_str = vardb._pkg_str
 		if exclude_paths is None:
 			for link, p in vardb._owners.iter_owners(paths):