[gentoo-commits] proj/portage:master commit in: repoman/lib/repoman/modules/scan/metadata/

2022-01-29 Thread Ulrich Müller
commit: 0ec131cc84893f429da2c4486545a6c93d3447c0
Author: Ulrich Müller  gentoo  org>
AuthorDate: Tue Jan 25 16:41:18 2022 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Tue Jan 25 16:41:18 2022 +
URL:https://gitweb.gentoo.org/proj/portage.git/commit/?id=0ec131cc

repoman: Remove http compatibility code for metadata DTD

Commit 3950d76df says: "The http:// compat can be removed once the
Gentoo repository is updated to use https:// everywhere."

Bug: https://bugs.gentoo.org/552720
Signed-off-by: Ulrich Müller  gentoo.org>

 repoman/lib/repoman/modules/scan/metadata/pkgmetadata.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/repoman/lib/repoman/modules/scan/metadata/pkgmetadata.py 
b/repoman/lib/repoman/modules/scan/metadata/pkgmetadata.py
index b4e0ee933..0fb97a0df 100644
--- a/repoman/lib/repoman/modules/scan/metadata/pkgmetadata.py
+++ b/repoman/lib/repoman/modules/scan/metadata/pkgmetadata.py
@@ -127,7 +127,7 @@ class PkgMetadata(ScanBase, USEFlagChecks):
 )
 else:
 doctype_system = _metadata_xml.docinfo.system_url
-if doctype_system.replace("http://;, "https://;) != 
metadata_dtd_uri:
+if doctype_system != metadata_dtd_uri:
 if doctype_system is None:
 system_problem = "but it is undefined"
 else:



[gentoo-commits] proj/portage:master commit in: repoman/lib/repoman/modules/scan/

2021-03-31 Thread Zac Medico
commit: d04486767159f9dba443e7a9d1a6c3854db00400
Author: Zac Medico  gentoo  org>
AuthorDate: Wed Mar 31 07:30:51 2021 +
Commit: Zac Medico  gentoo  org>
CommitDate: Wed Mar 31 07:33:50 2021 +
URL:https://gitweb.gentoo.org/proj/portage.git/commit/?id=d0448676

repoman: fix ModuleConfig _not_installed path (bug 779055)

Bug: https://bugs.gentoo.org/779055
Signed-off-by: Zac Medico  gentoo.org>

 repoman/lib/repoman/modules/scan/module.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/repoman/lib/repoman/modules/scan/module.py 
b/repoman/lib/repoman/modules/scan/module.py
index 3321cb224..41c1becfc 100644
--- a/repoman/lib/repoman/modules/scan/module.py
+++ b/repoman/lib/repoman/modules/scan/module.py
@@ -31,9 +31,9 @@ class ModuleConfig:
if repository_modules:
self.configpaths = [os.path.join(path, 
'repository.yaml') for path in configpaths]
elif _not_installed:
-   self.configpaths = 
[os.path.realpath(os.path.join(os.path.dirname(
+   self.configpaths = [os.path.realpath(os.path.join(

os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(
-   os.path.dirname(__file__)), 
'repoman/cnf/repository/repository.yaml'))]
+   os.path.dirname(__file__), 
'cnf/repository/repository.yaml'))]
else:
self.configpaths = [os.path.join(portage.const.EPREFIX 
or '/',
'usr/share/repoman/repository/repository.yaml')]



[gentoo-commits] proj/portage:master commit in: repoman/lib/repoman/modules/scan/metadata/

2021-01-18 Thread Zac Medico
commit: 030e2fc8ba6cf6c28b582c9ccbb5343ece887776
Author: Zac Medico  gentoo  org>
AuthorDate: Tue Jan 19 07:32:49 2021 +
Commit: Zac Medico  gentoo  org>
CommitDate: Tue Jan 19 07:33:33 2021 +
URL:https://gitweb.gentoo.org/proj/portage.git/commit/?id=030e2fc8

repoman: fix DeprecationWarning: invalid escape sequence \s

Signed-off-by: Zac Medico  gentoo.org>

 repoman/lib/repoman/modules/scan/metadata/pkgmetadata.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/repoman/lib/repoman/modules/scan/metadata/pkgmetadata.py 
b/repoman/lib/repoman/modules/scan/metadata/pkgmetadata.py
index c1ba8e9f4..2e85cc3b9 100644
--- a/repoman/lib/repoman/modules/scan/metadata/pkgmetadata.py
+++ b/repoman/lib/repoman/modules/scan/metadata/pkgmetadata.py
@@ -101,7 +101,7 @@ class PkgMetadata(ScanBase, USEFlagChecks):
 
indentation_chars = Counter()
for l in etree.tostring(_metadata_xml).splitlines():
-   indentation_chars.update(re.match(b"\s*", l).group(0))
+   indentation_chars.update(re.match(rb"\s*", l).group(0))
if len(indentation_chars) > 1:
self.qatracker.add_error("metadata.warning", 
"%s/metadata.xml: %s" %
(xpkg, "inconsistent use of tabs and spaces in 
indentation")



[gentoo-commits] proj/portage:master commit in: repoman/lib/repoman/modules/scan/depend/

2021-01-18 Thread Zac Medico
commit: b5918d7416de7ef2e1b8f0ac86cd2d21cae8405e
Author: Zac Medico  gentoo  org>
AuthorDate: Mon Jan 18 12:39:55 2021 +
Commit: Zac Medico  gentoo  org>
CommitDate: Mon Jan 18 13:08:03 2021 +
URL:https://gitweb.gentoo.org/proj/portage.git/commit/?id=b5918d74

repoman: Use async and await syntax

Signed-off-by: Zac Medico  gentoo.org>

 repoman/lib/repoman/modules/scan/depend/profile.py | 22 +-
 1 file changed, 9 insertions(+), 13 deletions(-)

diff --git a/repoman/lib/repoman/modules/scan/depend/profile.py 
b/repoman/lib/repoman/modules/scan/depend/profile.py
index 468bc55e2..7549a414d 100644
--- a/repoman/lib/repoman/modules/scan/depend/profile.py
+++ b/repoman/lib/repoman/modules/scan/depend/profile.py
@@ -18,7 +18,6 @@ from portage.dep import Atom
 from portage.package.ebuild.profile_iuse import iter_iuse_vars
 from portage.util import getconfig
 from portage.util.futures import asyncio
-from portage.util.futures.compat_coroutine import coroutine, coroutine_return
 from portage.util.futures.executor.fork import ForkExecutor
 from portage.util.futures.iter_completed import async_iter_completed
 
@@ -102,13 +101,12 @@ class ProfileDependsChecks(ScanBase):
for result in results:
self._check_result(task, result)
 
-   loop = asyncio._wrap_loop()
-   loop.run_until_complete(self._async_check(loop=loop, **kwargs))
+   loop = asyncio.get_event_loop()
+   loop.run_until_complete(self._async_check(loop, **kwargs))
 
return False
 
-   @coroutine
-   def _async_check(self, loop=None, **kwargs):
+   async def _async_check(self, loop, **kwargs):
'''Perform async profile dependant dependency checks
 
@param arches:
@@ -118,7 +116,6 @@ class ProfileDependsChecks(ScanBase):
@param unknown_pkgs: set of tuples (type, atom.unevaluated_atom)
@returns: dictionary
'''
-   loop = asyncio._wrap_loop(loop)
ebuild = kwargs.get('ebuild').get()
pkg = kwargs.get('pkg').get()
unknown_pkgs = ebuild.unknown_pkgs
@@ -130,8 +127,8 @@ class ProfileDependsChecks(ScanBase):
 
if self.options.jobs > 1:
for future_done_set in 
async_iter_completed(self._iter_tasks(loop, executor, ebuild, pkg),
-   max_jobs=self.options.jobs, 
max_load=self.options.load_average, loop=loop):
-   for task in (yield future_done_set):
+   max_jobs=self.options.jobs, 
max_load=self.options.load_average):
+   for task in (await future_done_set):
task, results = task.result()
for result in results:
self._check_result(task, result)
@@ -145,10 +142,9 @@ class ProfileDependsChecks(ScanBase):
"dependency.unknown", "%s: %s: %s"
% (ebuild.relative_path, mytype, ", 
".join(sorted(atoms
 
-   @coroutine
-   def _task(self, task, loop=None):
-   yield task.future
-   coroutine_return((task, task.future.result()))
+   async def _task(self, task):
+   await task.future
+   return (task, task.future.result())
 
def _iter_tasks(self, loop, executor, ebuild, pkg):
for keyword, groups, prof in ebuild.relevant_profiles:
@@ -222,7 +218,7 @@ class ProfileDependsChecks(ScanBase):
yield (task, target())
else:
task.future = 
asyncio.ensure_future(loop.run_in_executor(executor, target), loop=loop)
-   yield self._task(task, loop=loop)
+   yield asyncio.ensure_future(self._task(task), 
loop=loop)
 
 
def _task_subprocess(self, task, pkg, dep_settings):



[gentoo-commits] proj/portage:master commit in: repoman/lib/repoman/modules/scan/fetch/, repoman/cnf/qa_data/, repoman/man/, ...

2020-10-18 Thread Zac Medico
commit: 6258c62c84bf60b8ade8b7fb63ed4475c6195f21
Author: Joonas Niilola  gentoo  org>
AuthorDate: Sun Oct 18 06:20:08 2020 +
Commit: Zac Medico  gentoo  org>
CommitDate: Sun Oct 18 08:16:12 2020 +
URL:https://gitweb.gentoo.org/proj/portage.git/commit/?id=6258c62c

repoman: fix file.size-fatal to be 20 KiB

Closes: https://github.com/gentoo/portage/pull/629
Bug: https://bugs.gentoo.org/748144
Signed-off-by: Joonas Niilola  gentoo.org>
Signed-off-by: Zac Medico  gentoo.org>

 repoman/cnf/qa_data/qa_data.yaml  | 1 -
 repoman/cnf/repository/qa_data.yaml   | 1 -
 repoman/lib/repoman/modules/scan/fetch/fetches.py | 7 +--
 repoman/man/repoman.1 | 2 +-
 4 files changed, 2 insertions(+), 9 deletions(-)

diff --git a/repoman/cnf/qa_data/qa_data.yaml b/repoman/cnf/qa_data/qa_data.yaml
index 9a807aaf3..29a3d6e9f 100644
--- a/repoman/cnf/qa_data/qa_data.yaml
+++ b/repoman/cnf/qa_data/qa_data.yaml
@@ -60,7 +60,6 @@ qahelp:
 file:
 executable: "Ebuilds, digests, metadata.xml, Manifest, and ChangeLog 
do not need the executable bit"
 size: "Files in the files directory must be under 20 KiB"
-size-fatal: "Files in the files directory must be under 60 KiB"
 empty: "Empty file in the files directory"
 name: "File/dir name must be composed of only the following chars: %s "
 UTF8: "File is not UTF8 compliant"

diff --git a/repoman/cnf/repository/qa_data.yaml 
b/repoman/cnf/repository/qa_data.yaml
index 464482056..3fe6b53d5 100644
--- a/repoman/cnf/repository/qa_data.yaml
+++ b/repoman/cnf/repository/qa_data.yaml
@@ -59,7 +59,6 @@ qawarnings:
 - ebuild.badheader
 - ebuild.patches
 - file.empty
-- file.size
 - HOMEPAGE.virtual
 - inherit.unused
 - inherit.deprecated

diff --git a/repoman/lib/repoman/modules/scan/fetch/fetches.py 
b/repoman/lib/repoman/modules/scan/fetch/fetches.py
index 5a958a461..7d4c58908 100644
--- a/repoman/lib/repoman/modules/scan/fetch/fetches.py
+++ b/repoman/lib/repoman/modules/scan/fetch/fetches.py
@@ -120,12 +120,7 @@ class FetchChecks(ScanBase):
continue
filesdirlist.append(y + "/" + z)
# Current policy is no files over 20 KiB, these 
are the checks.
-   # File size between 20 KiB and 60 KiB causes a 
warning,
-   # while file size over 60 KiB causes an error.
-   elif mystat.st_size > 61440:
-   self.qatracker.add_error(
-   "file.size-fatal", "(%d KiB) 
%s/files/%s" % (
-   mystat.st_size // 1024, 
xpkg, y))
+   # File size over 20 KiB causes an error.
elif mystat.st_size > 20480:
self.qatracker.add_error(
"file.size", "(%d KiB) 
%s/files/%s" % (

diff --git a/repoman/man/repoman.1 b/repoman/man/repoman.1
index 6f9a24544..0926e806c 100644
--- a/repoman/man/repoman.1
+++ b/repoman/man/repoman.1
@@ -393,7 +393,7 @@ executable bit
 File/dir name must be composed of only the following chars: a-zA-Z0-9._-+:
 .TP
 .B file.size
-Files in the files directory must be under 20k
+Files in the files directory must be under 20 KiB
 .TP
 .B inherit.missing
 Ebuild uses functions from an eclass but does not inherit it



[gentoo-commits] proj/portage:master commit in: repoman/lib/repoman/modules/scan/depend/, repoman/lib/repoman/, repoman/man/

2020-08-17 Thread Zac Medico
commit: 26524e5fbc8019e22d15765a35570df7c7a315ca
Author: Zac Medico  gentoo  org>
AuthorDate: Sat Aug 15 02:51:38 2020 +
Commit: Zac Medico  gentoo  org>
CommitDate: Mon Aug 17 05:39:06 2020 +
URL:https://gitweb.gentoo.org/proj/portage.git/commit/?id=26524e5f

repoman: Add --jobs and --load-average options (bug 448462)

Add --jobs and --load-average options which allow dependency checks
for multiple profiles to run in parallel. The increase in performance
is non-linear for the number of jobs, but it can be worthwhile
(I measured a 35% decrease in time when running 'repoman -j8 full'
on sys-apps/portage). For the -j1 case (default), all dependency
checks run in the main process as usual, so there is no significant
performance penalty for the default case.

Bug: https://bugs.gentoo.org/448462
Signed-off-by: Zac Medico  gentoo.org>

 repoman/lib/repoman/argparser.py   |   9 ++
 repoman/lib/repoman/modules/scan/depend/profile.py | 117 +
 repoman/man/repoman.1  |   9 +-
 3 files changed, 116 insertions(+), 19 deletions(-)

diff --git a/repoman/lib/repoman/argparser.py b/repoman/lib/repoman/argparser.py
index 670a0e91d..6d545ccca 100644
--- a/repoman/lib/repoman/argparser.py
+++ b/repoman/lib/repoman/argparser.py
@@ -199,6 +199,15 @@ def parse_args(argv, repoman_default_opts):
'--output-style', dest='output_style', choices=output_keys,
help='select output type', default='default')
 
+   parser.add_argument(
+   '-j', '--jobs', dest='jobs', action='store', type=int, 
default=1,
+   help='Specifies the number of jobs (processes) to run 
simultaneously.')
+
+   parser.add_argument(
+   '-l', '--load-average', dest='load_average', action='store', 
type=float, default=None,
+   help='Specifies that no new jobs (processes) should be started 
if there are others '
+   'jobs running and the load average is at least load (a 
floating-point number).')
+
parser.add_argument(
'--mode', dest='mode', choices=mode_keys,
help='specify which mode repoman will run in (default=full)')

diff --git a/repoman/lib/repoman/modules/scan/depend/profile.py 
b/repoman/lib/repoman/modules/scan/depend/profile.py
index 39d8b550c..1eb69422a 100644
--- a/repoman/lib/repoman/modules/scan/depend/profile.py
+++ b/repoman/lib/repoman/modules/scan/depend/profile.py
@@ -2,7 +2,9 @@
 
 
 import copy
+import functools
 import os
+import types
 from pprint import pformat
 
 from _emerge.Package import Package
@@ -15,6 +17,10 @@ from repoman.modules.scan.depend._gen_arches import 
_gen_arches
 from portage.dep import Atom
 from portage.package.ebuild.profile_iuse import iter_iuse_vars
 from portage.util import getconfig
+from portage.util.futures import asyncio
+from portage.util.futures.compat_coroutine import coroutine, coroutine_return
+from portage.util.futures.executor.fork import ForkExecutor
+from portage.util.futures.iter_completed import async_iter_completed
 
 
 def sort_key(item):
@@ -58,16 +64,14 @@ class ProfileDependsChecks(ScanBase):
def check(self, **kwargs):
'''Perform profile dependant dependency checks
 
-   @param arches:
@param pkg: Package in which we check (object).
@param ebuild: Ebuild which we check (object).
-   @param baddepsyntax: boolean
-   @param unknown_pkgs: set of tuples (type, atom.unevaluated_atom)
@returns: dictionary
'''
ebuild = kwargs.get('ebuild').get()
pkg = kwargs.get('pkg').get()
-   unknown_pkgs, baddepsyntax = _depend_checks(
+
+   ebuild.unknown_pkgs, ebuild.baddepsyntax = _depend_checks(
ebuild, pkg, self.portdb, self.qatracker, 
self.repo_metadata,
self.repo_settings.qadata)
 
@@ -90,8 +94,64 @@ class ProfileDependsChecks(ScanBase):
relevant_profiles.append((keyword, groups, 
prof))
 
relevant_profiles.sort(key=sort_key)
+   ebuild.relevant_profiles = relevant_profiles
+
+   if self.options.jobs <= 1:
+   for task in self._iter_tasks(None, None, ebuild, pkg):
+   task, results = task
+   for result in results:
+   self._check_result(task, result)
+
+   loop = asyncio._wrap_loop()
+   loop.run_until_complete(self._async_check(loop=loop, **kwargs))
+
+   return False
+
+   @coroutine
+   def _async_check(self, loop=None, **kwargs):
+   '''Perform async profile dependant dependency checks
+
+   @param arches:
+   @param pkg: Package in which we check (object).
+   @param 

[gentoo-commits] proj/portage:master commit in: repoman/lib/repoman/modules/scan/metadata/, lib/portage/repository/

2019-08-18 Thread Zac Medico
commit: be21bd79e63282e48d9202d18b89bfd132aa4b2f
Author: Zac Medico  gentoo  org>
AuthorDate: Tue Aug  6 03:38:10 2019 +
Commit: Zac Medico  gentoo  org>
CommitDate: Mon Aug 19 01:48:48 2019 +
URL:https://gitweb.gentoo.org/proj/portage.git/commit/?id=be21bd79

repoman: support metadata/layout.conf restrict-allowed

Bug: https://bugs.gentoo.org/690786
Signed-off-by: Zac Medico  gentoo.org>

 lib/portage/repository/config.py  | 8 +++-
 repoman/lib/repoman/modules/scan/metadata/restrict.py | 6 +-
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/lib/portage/repository/config.py b/lib/portage/repository/config.py
index 2b2b1e151..46bb6b65a 100644
--- a/lib/portage/repository/config.py
+++ b/lib/portage/repository/config.py
@@ -103,6 +103,7 @@ class RepoConfig(object):
'portage1_profiles_compat',
'priority',
'profile_formats',
+   'restrict_allowed',
'sign_commit',
'sign_manifest',
'strict_misc_digests',
@@ -339,7 +340,7 @@ class RepoConfig(object):
for value in ('allow-missing-manifest',
'cache-formats',
'create-manifest', 'disable-manifest', 
'manifest-hashes',
-   'manifest-required-hashes', 'profile-formats',
+   'manifest-required-hashes', 'profile-formats', 
'restrict-allowed',
'sign-commit', 'sign-manifest', 
'thin-manifest', 'update-changelog'):
setattr(self, value.lower().replace("-", "_"), 
layout_data[value])
 
@@ -1142,6 +1143,11 @@ def parse_layout_conf(repo_location, repo_name=None):
data['eapis-banned'] = tuple(layout_data.get('eapis-banned', 
'').split())
data['eapis-deprecated'] = tuple(layout_data.get('eapis-deprecated', 
'').split())
 
+   restrict_allowed = layout_data.get('restrict-allowed')
+   if restrict_allowed is not None:
+   restrict_allowed = tuple(restrict_allowed.split())
+   data['restrict-allowed'] = restrict_allowed
+
data['sign-commit'] = layout_data.get('sign-commits', 'false').lower() \
== 'true'
 

diff --git a/repoman/lib/repoman/modules/scan/metadata/restrict.py 
b/repoman/lib/repoman/modules/scan/metadata/restrict.py
index 99784f231..f39128b24 100644
--- a/repoman/lib/repoman/modules/scan/metadata/restrict.py
+++ b/repoman/lib/repoman/modules/scan/metadata/restrict.py
@@ -18,6 +18,10 @@ class RestrictChecks(ScanBase):
'''
self.qatracker = kwargs.get('qatracker')
self.repo_settings = kwargs.get('repo_settings')
+   if self.repo_settings.repo_config.restrict_allowed is None:
+   self._restrict_allowed = 
self.repo_settings.qadata.valid_restrict
+   else:
+   self._restrict_allowed = 
self.repo_settings.repo_config.restrict_allowed
 
def check(self, **kwargs):
xpkg = kwargs.get('xpkg')
@@ -35,7 +39,7 @@ class RestrictChecks(ScanBase):
 
if myrestrict:
myrestrict = set(myrestrict)
-   mybadrestrict = 
myrestrict.difference(self.repo_settings.qadata.valid_restrict)
+   mybadrestrict = 
myrestrict.difference(self._restrict_allowed)
 
if mybadrestrict:
for mybad in mybadrestrict:



[gentoo-commits] proj/portage:master commit in: repoman/lib/repoman/modules/scan/ebuild/, lib/portage/_sets/, cnf/sets/, ...

2019-07-27 Thread Ulrich Müller
commit: e75e46958b6b032890ed27d10239e07eced63087
Author: Ulrich Müller  gentoo  org>
AuthorDate: Fri Jul 26 08:51:08 2019 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Fri Jul 26 23:00:22 2019 +
URL:https://gitweb.gentoo.org/proj/portage.git/commit/?id=e75e4695

Support PROPERTIES="live".

Bug: https://bugs.gentoo.org/233589
Signed-off-by: Ulrich Müller  gentoo.org>

 cnf/sets/portage.conf |  8 +++-
 lib/_emerge/EbuildExecuter.py |  4 ++--
 lib/portage/_sets/__init__.py | 12 +---
 repoman/lib/repoman/modules/scan/ebuild/ebuild.py |  3 +--
 4 files changed, 19 insertions(+), 8 deletions(-)

diff --git a/cnf/sets/portage.conf b/cnf/sets/portage.conf
index ac282d911..ed4c6d9a7 100644
--- a/cnf/sets/portage.conf
+++ b/cnf/sets/portage.conf
@@ -55,9 +55,15 @@ world-candidate = True
 [preserved-rebuild]
 class = portage.sets.libs.PreservedLibraryConsumerSet
 
-# Installed ebuilds that inherit from known live eclasses.
+# Installed ebuilds with "live" property.
 [live-rebuild]
 class = portage.sets.dbapi.VariableSet
+variable = PROPERTIES
+includes = live
+
+# Installed ebuilds that inherit from known live eclasses.
+[deprecated-live-rebuild]
+class = portage.sets.dbapi.VariableSet
 variable = INHERITED
 includes = bzr cvs darcs git git-2 git-r3 golang-vcs mercurial subversion tla
 

diff --git a/lib/_emerge/EbuildExecuter.py b/lib/_emerge/EbuildExecuter.py
index d387b42be..ca9859437 100644
--- a/lib/_emerge/EbuildExecuter.py
+++ b/lib/_emerge/EbuildExecuter.py
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 from _emerge.EbuildPhase import EbuildPhase
@@ -49,7 +49,7 @@ class EbuildExecuter(CompositeTask):
phase="unpack", scheduler=self.scheduler,
settings=self.settings)
 
-   if self._live_eclasses.intersection(self.pkg.inherited):
+   if "live" in self.settings.get("PROPERTIES", "").split():
# Serialize $DISTDIR access for live ebuilds since
# otherwise they can interfere with eachother.
 

diff --git a/lib/portage/_sets/__init__.py b/lib/portage/_sets/__init__.py
index 2c9bf9715..7b81c55e2 100644
--- a/lib/portage/_sets/__init__.py
+++ b/lib/portage/_sets/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2007-2014 Gentoo Foundation
+# Copyright 2007-2019 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 from __future__ import print_function
@@ -121,8 +121,14 @@ class SetConfig(object):
parser.remove_section("live-rebuild")
parser.add_section("live-rebuild")
parser.set("live-rebuild", "class", 
"portage.sets.dbapi.VariableSet")
-   parser.set("live-rebuild", "variable", "INHERITED")
-   parser.set("live-rebuild", "includes", " 
".join(sorted(portage.const.LIVE_ECLASSES)))
+   parser.set("live-rebuild", "variable", "PROPERTIES")
+   parser.set("live-rebuild", "includes", "live")
+
+   parser.remove_section("deprecated-live-rebuild")
+   parser.add_section("deprecated-live-rebuild")
+   parser.set("deprecated-live-rebuild", "class", 
"portage.sets.dbapi.VariableSet")
+   parser.set("deprecated-live-rebuild", "variable", "INHERITED")
+   parser.set("deprecated-live-rebuild", "includes", " 
".join(sorted(portage.const.LIVE_ECLASSES)))
 
parser.remove_section("module-rebuild")
parser.add_section("module-rebuild")

diff --git a/repoman/lib/repoman/modules/scan/ebuild/ebuild.py 
b/repoman/lib/repoman/modules/scan/ebuild/ebuild.py
index d2715bc6e..70011e387 100644
--- a/repoman/lib/repoman/modules/scan/ebuild/ebuild.py
+++ b/repoman/lib/repoman/modules/scan/ebuild/ebuild.py
@@ -12,7 +12,6 @@ from repoman.modules.scan.scanbase import ScanBase
 # import our initialized portage instance
 from repoman._portage import portage
 from portage import os
-from portage.const import LIVE_ECLASSES
 from portage.exception import InvalidPackageName
 
 pv_toolong_re = re.compile(r'[0-9]{19,}')
@@ -110,7 +109,7 @@ class Ebuild(ScanBase):
self.metadata = self.pkg._metadata
self.eapi = self.metadata["EAPI"]
self.inherited = self.pkg.inherited
-   self.live_ebuild = LIVE_ECLASSES.intersection(self.inherited)
+   self.live_ebuild = "live" in self.metadata["PROPERTIES"].split()
self.keywords = self.metadata["KEYWORDS"].split()
self.archs = set(kw.lstrip("~") for kw in self.keywords if not 
kw.startswith("-"))
return False



[gentoo-commits] proj/portage:master commit in: repoman/lib/repoman/modules/scan/metadata/

2019-06-20 Thread Zac Medico
commit: 73232537c3f7d8cb4121c0a2dee5b450de584e38
Author: Michał Górny  gentoo  org>
AuthorDate: Thu Jun 20 12:33:01 2019 +
Commit: Zac Medico  gentoo  org>
CommitDate: Thu Jun 20 19:50:41 2019 +
URL:https://gitweb.gentoo.org/proj/portage.git/commit/?id=73232537

Allow empty LICENSE in acct-* packages

Since acct-* packages do not create any files (except for keepfile
for the home directory), it is perfectly normal for the LICENSE
to be empty.

Signed-off-by: Zac Medico  gentoo.org>

 repoman/lib/repoman/modules/scan/metadata/ebuild_metadata.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/repoman/lib/repoman/modules/scan/metadata/ebuild_metadata.py 
b/repoman/lib/repoman/modules/scan/metadata/ebuild_metadata.py
index 4c35bbc12..2edf8f7f2 100644
--- a/repoman/lib/repoman/modules/scan/metadata/ebuild_metadata.py
+++ b/repoman/lib/repoman/modules/scan/metadata/ebuild_metadata.py
@@ -39,8 +39,8 @@ class EbuildMetadata(ScanBase):
ebuild = kwargs.get('ebuild').get()
for pos, missing_var in 
enumerate(self.repo_settings.qadata.missingvars):
if not ebuild.metadata.get(missing_var):
-   if kwargs.get('catdir') == "virtual" and \
-   missing_var in ("HOMEPAGE", "LICENSE"):
+   if (kwargs.get('catdir') in ("acct-group", 
"acct-user", "virtual")
+   and missing_var in ("HOMEPAGE", 
"LICENSE")):
continue
if ebuild.live_ebuild and missing_var == 
"KEYWORDS":
continue