* [gentoo-commits] proj/portage:repoman commit in: pym/repoman/checks/directories/, pym/repoman/checks/ebuilds/eclasses/, ...
@ 2015-09-20 2:06 Brian Dolbec
0 siblings, 0 replies; only message in thread
From: Brian Dolbec @ 2015-09-20 2:06 UTC (permalink / raw
To: gentoo-commits
commit: c26a2a2a09699a78d7ff249434a719c4fc8572a6
Author: Tom Wijsman <tomwij <AT> gentoo <DOT> org>
AuthorDate: Fri Jun 6 12:24:18 2014 +0000
Commit: Brian Dolbec <dolsen <AT> gentoo <DOT> org>
CommitDate: Sun Sep 20 01:54:07 2015 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=c26a2a2a
repoman: Apply PEP 8 guidelines again (except for W191)
pym/repoman/_portage.py | 1 -
pym/repoman/_xml.py | 6 --
pym/repoman/checks/directories/files.py | 17 +++--
pym/repoman/checks/ebuilds/checks.py | 2 +-
pym/repoman/checks/ebuilds/eclasses/live.py | 2 +-
pym/repoman/checks/ebuilds/eclasses/ruby.py | 2 +-
pym/repoman/checks/ebuilds/fetches.py | 29 ++++----
pym/repoman/checks/ebuilds/isebuild.py | 6 +-
pym/repoman/checks/ebuilds/manifests.py | 7 +-
pym/repoman/checks/ebuilds/misc.py | 11 ++-
pym/repoman/checks/ebuilds/pkgmetadata.py | 42 ++++++-----
pym/repoman/checks/ebuilds/thirdpartymirrors.py | 8 +-
pym/repoman/checks/ebuilds/use_flags.py | 5 --
pym/repoman/checks/herds/metadata.py | 4 -
pym/repoman/ebuild.py | 6 +-
pym/repoman/errors.py | 2 -
pym/repoman/main.py | 97 +++++++++++++++----------
pym/repoman/qa_data.py | 2 -
pym/repoman/qa_tracker.py | 13 ++--
pym/repoman/repos.py | 35 +++++----
pym/repoman/scan.py | 18 ++---
pym/repoman/vcs/vcs.py | 10 ++-
pym/repoman/vcs/vcsstatus.py | 17 ++---
23 files changed, 163 insertions(+), 179 deletions(-)
diff --git a/pym/repoman/_portage.py b/pym/repoman/_portage.py
index e72ce9f..0f611f7 100644
--- a/pym/repoman/_portage.py
+++ b/pym/repoman/_portage.py
@@ -23,4 +23,3 @@ sys.path.insert(0, pym_path)
import portage
portage._internal_caller = True
portage._disable_legacy_globals()
-
diff --git a/pym/repoman/_xml.py b/pym/repoman/_xml.py
index d5b5a5e..7bf6698 100644
--- a/pym/repoman/_xml.py
+++ b/pym/repoman/_xml.py
@@ -15,7 +15,6 @@ from repoman._subprocess import repoman_getstatusoutput
class _XMLParser(xml.etree.ElementTree.XMLParser):
-
def __init__(self, data, **kwargs):
xml.etree.ElementTree.XMLParser.__init__(self, **kwargs)
self._portage_data = data
@@ -27,13 +26,11 @@ class _XMLParser(xml.etree.ElementTree.XMLParser):
self.parser.StartDoctypeDeclHandler = \
self._portage_StartDoctypeDeclHandler
-
def _portage_XmlDeclHandler(self, version, encoding, standalone):
if self._base_XmlDeclHandler is not None:
self._base_XmlDeclHandler(version, encoding, standalone)
self._portage_data["XML_DECLARATION"] = (version, encoding, standalone)
-
def _portage_StartDoctypeDeclHandler(
self, doctypeName, systemId, publicId, has_internal_subset):
if self._base_StartDoctypeDeclHandler is not None:
@@ -61,7 +58,6 @@ class XmlLint(object):
self.binary = None
self._check_capable()
-
def _check_capable(self):
if self.options.mode == "manifest":
return
@@ -74,12 +70,10 @@ class XmlLint(object):
# this can be problematic if xmllint changes their output
self._is_capable = True
-
@property
def capable(self):
return self._is_capable
-
def check(self, checkdir, repolevel):
'''Runs checks on the package metadata.xml file
diff --git a/pym/repoman/checks/directories/files.py b/pym/repoman/checks/directories/files.py
index 87220c0..b1d77df 100644
--- a/pym/repoman/checks/directories/files.py
+++ b/pym/repoman/checks/directories/files.py
@@ -13,8 +13,8 @@ from repoman.vcs.vcs import vcs_new_changed
class FileChecks(object):
- def __init__(self, qatracker, repoman_settings, repo_settings, portdb,
- vcs_settings):
+ def __init__(
+ self, qatracker, repoman_settings, repo_settings, portdb, vcs_settings):
'''
@param qatracker: QATracker instance
@param repoman_settings: settings instance
@@ -27,7 +27,6 @@ class FileChecks(object):
self.repoman_settings = repoman_settings
self.vcs_settings = vcs_settings
-
def check(self, checkdir, checkdirlist, checkdir_relative, changed, new):
'''Checks the ebuild sources and files for errors
@@ -48,10 +47,12 @@ class FileChecks(object):
# prohibited characters). See bug #406877.
index = -1
if index != -1:
- self.qatracker.add_error("file.name",
+ self.qatracker.add_error(
+ "file.name",
"%s/%s: char '%s'" % (checkdir, y_file, y_file[index]))
- if not (y_file in ("ChangeLog", "metadata.xml")
+ if not (
+ y_file in ("ChangeLog", "metadata.xml")
or y_file.endswith(".ebuild")):
continue
f = None
@@ -70,10 +71,10 @@ class FileChecks(object):
line += l2
if l2 != 0:
s = s[s.rfind("\n") + 1:]
- self.qatracker.add_error("file.UTF8",
- "%s/%s: line %i, just after: '%s'" % (checkdir, y_file, line, s))
+ self.qatracker.add_error(
+ "file.UTF8", "%s/%s: line %i, just after: '%s'" % (
+ checkdir, y_file, line, s))
finally:
if f is not None:
f.close()
return
-
diff --git a/pym/repoman/checks/ebuilds/checks.py b/pym/repoman/checks/ebuilds/checks.py
index b3c988a..5ebc6c1 100644
--- a/pym/repoman/checks/ebuilds/checks.py
+++ b/pym/repoman/checks/ebuilds/checks.py
@@ -517,7 +517,7 @@ class InheritEclass(LineCheck):
def end(self):
if not self._disabled and self._comprehensive and self._inherit \
- and not self._func_call:
+ and not self._func_call:
self.repoman_check_name = 'inherit.unused'
yield 'no function called from %s.eclass; please drop' % self._eclass
diff --git a/pym/repoman/checks/ebuilds/eclasses/live.py b/pym/repoman/checks/ebuilds/eclasses/live.py
index 20c573e..bf14cff 100644
--- a/pym/repoman/checks/ebuilds/eclasses/live.py
+++ b/pym/repoman/checks/ebuilds/eclasses/live.py
@@ -36,4 +36,4 @@ class LiveEclassChecks(object):
good_keywords_exist = len(bad_stable_keywords) < len(keywords)
if good_keywords_exist and not has_global_mask(pkg, global_pmaskdict):
- self.qatracker.add_error("LIVEVCS.unmasked", ebuild.relative_path)
\ No newline at end of file
+ self.qatracker.add_error("LIVEVCS.unmasked", ebuild.relative_path)
diff --git a/pym/repoman/checks/ebuilds/eclasses/ruby.py b/pym/repoman/checks/ebuilds/eclasses/ruby.py
index abfb166..e8d36ea 100644
--- a/pym/repoman/checks/ebuilds/eclasses/ruby.py
+++ b/pym/repoman/checks/ebuilds/eclasses/ruby.py
@@ -29,4 +29,4 @@ class RubyEclassChecks(object):
self.qatracker.add_error(
"IUSE.rubydeprecated",
(ebuild.relative_path + ": Deprecated ruby target: %s")
- % myruby)
\ No newline at end of file
+ % myruby)
diff --git a/pym/repoman/checks/ebuilds/fetches.py b/pym/repoman/checks/ebuilds/fetches.py
index 22e89b6..53ed64f 100644
--- a/pym/repoman/checks/ebuilds/fetches.py
+++ b/pym/repoman/checks/ebuilds/fetches.py
@@ -16,8 +16,8 @@ from repoman.vcs.vcs import vcs_new_changed
class FetchChecks(object):
'''Performs checks on the files needed for the ebuild'''
- def __init__(self, qatracker, repoman_settings, repo_settings, portdb,
- vcs_settings):
+ def __init__(
+ self, qatracker, repoman_settings, repo_settings, portdb, vcs_settings):
'''
@param qatracker: QATracker instance
@param repoman_settings: settings instance
@@ -31,7 +31,6 @@ class FetchChecks(object):
self.vcs_settings = vcs_settings
self._digests = None
-
def check(self, xpkg, checkdir, checkdir_relative, mychanged, mynew):
'''Checks the ebuild sources and files for errors
@@ -40,7 +39,8 @@ class FetchChecks(object):
@param checkdir_relative: repolevel determined path
'''
self.checkdir = checkdir
- fetchlist_dict = portage.FetchlistDict(checkdir, self.repoman_settings, self.portdb)
+ fetchlist_dict = portage.FetchlistDict(
+ checkdir, self.repoman_settings, self.portdb)
myfiles_all = []
self.src_uri_error = False
for mykey in fetchlist_dict:
@@ -54,8 +54,8 @@ class FetchChecks(object):
# This will be reported as an "ebuild.syntax" error.
pass
else:
- self.qatracker.add_error("SRC_URI.syntax",
- "%s.ebuild SRC_URI: %s" % (mykey, e))
+ self.qatracker.add_error(
+ "SRC_URI.syntax", "%s.ebuild SRC_URI: %s" % (mykey, e))
del fetchlist_dict
if not self.src_uri_error:
# This test can produce false positives if SRC_URI could not
@@ -102,26 +102,29 @@ class FetchChecks(object):
# 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))
+ self.qatracker.add_error(
+ "file.size.fatal", "(%d KiB) %s/files/%s" % (
+ mystat.st_size // 1024, xpkg, y))
elif mystat.st_size > 20480:
- self.qatracker.add_error("file.size",
- "(%d KiB) %s/files/%s" % (mystat.st_size // 1024, xpkg, y))
+ self.qatracker.add_error(
+ "file.size", "(%d KiB) %s/files/%s" % (
+ mystat.st_size // 1024, xpkg, y))
index = self.repo_settings.repo_config.find_invalid_path_char(y)
if index != -1:
y_relative = os.path.join(checkdir_relative, "files", y)
- if self.vcs_settings.vcs is not None and not vcs_new_changed(y_relative, mychanged, mynew):
+ if self.vcs_settings.vcs is not None \
+ and not vcs_new_changed(y_relative, mychanged, mynew):
# If the file isn't in the VCS new or changed set, then
# assume that it's an irrelevant temporary file (Manifest
# entries are not generated for file names containing
# prohibited characters). See bug #406877.
index = -1
if index != -1:
- self.qatracker.add_error("file.name",
+ self.qatracker.add_error(
+ "file.name",
"%s/files/%s: char '%s'" % (checkdir, y, y[index]))
-
@property
def digests(self):
'''Property function, returns the saved digests or
diff --git a/pym/repoman/checks/ebuilds/isebuild.py b/pym/repoman/checks/ebuilds/isebuild.py
index 065914e..f0c9a48 100644
--- a/pym/repoman/checks/ebuilds/isebuild.py
+++ b/pym/repoman/checks/ebuilds/isebuild.py
@@ -14,14 +14,12 @@ from repoman.qa_data import no_exec, allvars
class IsEbuild(object):
-
def __init__(self, repoman_settings, repo_settings, portdb, qatracker):
''''''
self.portdb = portdb
self.qatracker = qatracker
- self.root_config = RootConfig(repoman_settings,
- repo_settings.trees[repo_settings.root], None)
-
+ self.root_config = RootConfig(
+ repoman_settings, repo_settings.trees[repo_settings.root], None)
def check(self, checkdirlist, checkdir, xpkg):
self.continue_ = False
diff --git a/pym/repoman/checks/ebuilds/manifests.py b/pym/repoman/checks/ebuilds/manifests.py
index 1d65e1d..3b8dec5 100644
--- a/pym/repoman/checks/ebuilds/manifests.py
+++ b/pym/repoman/checks/ebuilds/manifests.py
@@ -12,14 +12,12 @@ from portage.util import writemsg_level
class Manifests(object):
-
def __init__(self, options, qatracker=None, repoman_settings=None):
self.options = options
self.qatracker = qatracker
self.repoman_settings = repoman_settings
self.generated_manifest = False
-
def run(self, checkdir, portdb):
self.generated_manifest = False
self.digest_only = self.options.mode != 'manifest-check' \
@@ -45,7 +43,8 @@ class Manifests(object):
level=logging.ERROR, noiselevel=-1)
if not self.generated_manifest:
- writemsg_level("Unable to generate manifest.",
+ writemsg_level(
+ "Unable to generate manifest.",
level=logging.ERROR, noiselevel=-1)
failed = True
@@ -75,7 +74,6 @@ class Manifests(object):
sys.exit(1)
return False
-
def create_manifest(self, checkdir, fetchlist_dict):
try:
distdir = self.repoman_settings['DISTDIR']
@@ -95,7 +93,6 @@ class Manifests(object):
finally:
portage._doebuild_manifest_exempt_depend -= 1
-
def digest_check(self, xpkg, checkdir):
self.repoman_settings['O'] = checkdir
self.repoman_settings['PORTAGE_QUIET'] = '1'
diff --git a/pym/repoman/checks/ebuilds/misc.py b/pym/repoman/checks/ebuilds/misc.py
index 744784a..d735542 100644
--- a/pym/repoman/checks/ebuilds/misc.py
+++ b/pym/repoman/checks/ebuilds/misc.py
@@ -28,13 +28,13 @@ def bad_split_check(xpkg, y_ebuild, pkgdir, qatracker):
is_pv_toolong2 = pv_toolong_re.search(myesplit[2])
if is_pv_toolong or is_pv_toolong2:
- qatracker.add_error("ebuild.invalidname",
- xpkg + "/" + y_ebuild + ".ebuild")
+ qatracker.add_error(
+ "ebuild.invalidname", xpkg + "/" + y_ebuild + ".ebuild")
return True
elif myesplit[0] != pkgdir:
print(pkgdir, myesplit[0])
- qatracker.add_error("ebuild.namenomatch",
- xpkg + "/" + y_ebuild + ".ebuild")
+ qatracker.add_error(
+ "ebuild.namenomatch", xpkg + "/" + y_ebuild + ".ebuild")
return True
return False
@@ -49,7 +49,6 @@ def pkg_invalid(pkg, qatracker, ebuild):
if pkg.invalid:
for k, msgs in pkg.invalid.items():
for msg in msgs:
- qatracker.add_error(k,
- "%s: %s" % (ebuild.relative_path, msg))
+ qatracker.add_error(k, "%s: %s" % (ebuild.relative_path, msg))
return True
return False
diff --git a/pym/repoman/checks/ebuilds/pkgmetadata.py b/pym/repoman/checks/ebuilds/pkgmetadata.py
index 674d32f..8dc3f60 100644
--- a/pym/repoman/checks/ebuilds/pkgmetadata.py
+++ b/pym/repoman/checks/ebuilds/pkgmetadata.py
@@ -28,7 +28,8 @@ from portage import os
from portage import _encodings, _unicode_encode
from portage.dep import Atom
-from repoman.metadata import (metadata_xml_encoding, metadata_doctype_name,
+from repoman.metadata import (
+ metadata_xml_encoding, metadata_doctype_name,
metadata_dtd_uri, metadata_xml_declaration, parse_metadata_use)
from repoman.checks.herds.herdbase import get_herd_base
from repoman.checks.herds.metadata import check_metadata, UnknownHerdsError
@@ -51,8 +52,6 @@ class PkgMetadata(object):
self.musedict = {}
self.xmllint = XmlLint(self.options, self.repoman_settings)
-
-
def check(self, xpkg, checkdir, checkdirlist, repolevel):
'''Performs the checks on the metadata.xml for the package
@@ -91,8 +90,8 @@ class PkgMetadata(object):
pass
else:
if "XML_DECLARATION" not in xml_info:
- self.qatracker.add_error("metadata.bad",
- "%s/metadata.xml: "
+ self.qatracker.add_error(
+ "metadata.bad", "%s/metadata.xml: "
"xml declaration is missing on first line, "
"should be '%s'" % (xpkg, metadata_xml_declaration))
else:
@@ -104,14 +103,15 @@ class PkgMetadata(object):
encoding_problem = "but it is undefined"
else:
encoding_problem = "not '%s'" % xml_encoding
- self.qatracker.add_error("metadata.bad",
- "%s/metadata.xml: "
+ self.qatracker.add_error(
+ "metadata.bad", "%s/metadata.xml: "
"xml declaration encoding should be '%s', %s" %
(xpkg, metadata_xml_encoding, encoding_problem))
if "DOCTYPE" not in xml_info:
metadata_bad = True
- self.qatracker.add_error("metadata.bad",
+ self.qatracker.add_error(
+ "metadata.bad",
"%s/metadata.xml: %s" % (xpkg, "DOCTYPE is missing"))
else:
doctype_name, doctype_system, doctype_pubid = \
@@ -121,14 +121,14 @@ class PkgMetadata(object):
system_problem = "but it is undefined"
else:
system_problem = "not '%s'" % doctype_system
- self.qatracker.add_error("metadata.bad",
- "%s/metadata.xml: "
+ self.qatracker.add_error(
+ "metadata.bad", "%s/metadata.xml: "
"DOCTYPE: SYSTEM should refer to '%s', %s" %
(xpkg, metadata_dtd_uri, system_problem))
if doctype_name != metadata_doctype_name:
- self.qatracker.add_error("metadata.bad",
- "%s/metadata.xml: "
+ self.qatracker.add_error(
+ "metadata.bad", "%s/metadata.xml: "
"DOCTYPE: name should be '%s', not '%s'" %
(xpkg, metadata_doctype_name, doctype_name))
@@ -137,8 +137,8 @@ class PkgMetadata(object):
self.musedict = parse_metadata_use(_metadata_xml)
except portage.exception.ParseError as e:
metadata_bad = True
- self.qatracker.add_error("metadata.bad",
- "%s/metadata.xml: %s" % (xpkg, e))
+ self.qatracker.add_error(
+ "metadata.bad", "%s/metadata.xml: %s" % (xpkg, e))
else:
for atom in chain(*self.musedict.values()):
if atom is None:
@@ -146,22 +146,24 @@ class PkgMetadata(object):
try:
atom = Atom(atom)
except InvalidAtom as e:
- self.qatracker.add_error("metadata.bad",
+ self.qatracker.add_error(
+ "metadata.bad",
"%s/metadata.xml: Invalid atom: %s" % (xpkg, e))
else:
if atom.cp != xpkg:
- self.qatracker.add_error("metadata.bad",
+ self.qatracker.add_error(
+ "metadata.bad",
"%s/metadata.xml: Atom contains "
"unexpected cat/pn: %s" % (xpkg, atom))
# Run other metadata.xml checkers
try:
- check_metadata(_metadata_xml,
- get_herd_base(self.repoman_settings))
+ check_metadata(_metadata_xml, get_herd_base(
+ self.repoman_settings))
except (UnknownHerdsError, ) as e:
metadata_bad = True
- self.qatracker.add_error("metadata.bad",
- "%s/metadata.xml: %s" % (xpkg, e))
+ self.qatracker.add_error(
+ "metadata.bad", "%s/metadata.xml: %s" % (xpkg, e))
del e
# Only carry out if in package directory or check forced
diff --git a/pym/repoman/checks/ebuilds/thirdpartymirrors.py b/pym/repoman/checks/ebuilds/thirdpartymirrors.py
index 50a0da8..061e71f 100644
--- a/pym/repoman/checks/ebuilds/thirdpartymirrors.py
+++ b/pym/repoman/checks/ebuilds/thirdpartymirrors.py
@@ -17,7 +17,6 @@ class ThirdPartyMirrors(object):
self.qatracker = qatracker
-
def check(self, myaux, relative_path):
# Check that URIs don't reference a server from thirdpartymirrors.
for uri in portage.dep.use_reduce(
@@ -32,7 +31,8 @@ class ThirdPartyMirrors(object):
continue
new_uri = "mirror://%s/%s" % (mirror_alias, uri[len(mirror):])
- self.qatracker.add_error("SRC_URI.mirror",
- "%s: '%s' found in thirdpartymirrors, use '%s'" %
- (relative_path, mirror, new_uri))
+ self.qatracker.add_error(
+ "SRC_URI.mirror",
+ "%s: '%s' found in thirdpartymirrors, use '%s'" % (
+ relative_path, mirror, new_uri))
return
diff --git a/pym/repoman/checks/ebuilds/use_flags.py b/pym/repoman/checks/ebuilds/use_flags.py
index d63ae6d..73680d0 100644
--- a/pym/repoman/checks/ebuilds/use_flags.py
+++ b/pym/repoman/checks/ebuilds/use_flags.py
@@ -24,7 +24,6 @@ class USEFlagChecks(object):
self.defaultUseFlags = []
self.usedUseFlags = set()
-
def check(self, pkg, package, ebuild, y_ebuild, localUseFlags):
'''Perform the check.
@@ -42,12 +41,10 @@ class USEFlagChecks(object):
self._checkMetadata(package, ebuild, y_ebuild, localUseFlags)
self._checkRequiredUSE(pkg, ebuild)
-
def getUsedUseFlags(self):
'''Get the USE flags that this check has seen'''
return self.usedUseFlags
-
def _checkGlobal(self, pkg):
for myflag in pkg._metadata["IUSE"].split():
flag_name = myflag.lstrip("+-")
@@ -57,7 +54,6 @@ class USEFlagChecks(object):
if flag_name not in self.globalUseFlags:
self.useFlags.append(flag_name)
-
def _checkMetadata(self, package, ebuild, y_ebuild, localUseFlags):
for mypos in range(len(self.useFlags) - 1, -1, -1):
if self.useFlags[mypos] and (self.useFlags[mypos] in localUseFlags):
@@ -75,7 +71,6 @@ class USEFlagChecks(object):
"IUSE.invalid",
"%s/%s.ebuild: %s" % (package, y_ebuild, self.useFlags[mypos]))
-
def _checkRequiredUSE(self, pkg, ebuild):
required_use = pkg._metadata["REQUIRED_USE"]
if required_use:
diff --git a/pym/repoman/checks/herds/metadata.py b/pym/repoman/checks/herds/metadata.py
index ef0c9d0..3c67fcf 100644
--- a/pym/repoman/checks/herds/metadata.py
+++ b/pym/repoman/checks/herds/metadata.py
@@ -1,7 +1,5 @@
-
-
class UnknownHerdsError(ValueError):
def __init__(self, herd_names):
_plural = len(herd_names) != 1
@@ -25,5 +23,3 @@ def check_metadata_herds(xml_tree, herd_base):
def check_metadata(xml_tree, herd_base):
if herd_base is not None:
check_metadata_herds(xml_tree, herd_base)
-
-
diff --git a/pym/repoman/ebuild.py b/pym/repoman/ebuild.py
index fbe25a9..1dddfb9 100644
--- a/pym/repoman/ebuild.py
+++ b/pym/repoman/ebuild.py
@@ -6,7 +6,8 @@ from portage import os
class Ebuild(object):
'''Class to run primary checks on ebuilds'''
- def __init__(self, repo_settings, repolevel, pkgdir, catdir, vcs_settings, x, y):
+ def __init__(
+ self, repo_settings, repolevel, pkgdir, catdir, vcs_settings, x, y):
self.vcs_settings = vcs_settings
self.relative_path = os.path.join(x, y + ".ebuild")
self.full_path = os.path.join(repo_settings.repodir, self.relative_path)
@@ -17,7 +18,6 @@ class Ebuild(object):
self.ebuild_path = os.path.join(catdir, self.ebuild_path)
self.ebuild_path = os.path.join(".", self.ebuild_path)
-
def untracked(self, check_ebuild_notadded, y, eadded):
do_check = self.vcs_settings.vcs in ("cvs", "svn", "bzr")
really_notadded = check_ebuild_notadded and y not in eadded
@@ -26,5 +26,3 @@ class Ebuild(object):
# ebuild not added to vcs
return True
return False
-
-
diff --git a/pym/repoman/errors.py b/pym/repoman/errors.py
index dff6547..305eece 100644
--- a/pym/repoman/errors.py
+++ b/pym/repoman/errors.py
@@ -17,5 +17,3 @@ def caterror(catdir, repodir):
" Skipping QA checks in this directory.\n"
"Please ensure that you add %s to %s/profiles/categories\n"
"if it is a new category." % (catdir, catdir, repodir))
-
-
diff --git a/pym/repoman/main.py b/pym/repoman/main.py
index ea54ec4..1e23387 100755
--- a/pym/repoman/main.py
+++ b/pym/repoman/main.py
@@ -135,8 +135,9 @@ vcs_settings = VCSSettings(options, repoman_settings)
##################
-repo_settings = RepoSettings(config_root, portdir, portdir_overlay,
- repoman_settings, vcs_settings, options, qawarnings)
+repo_settings = RepoSettings(
+ config_root, portdir, portdir_overlay,
+ repoman_settings, vcs_settings, options, qawarnings)
repoman_settings = repo_settings.repoman_settings
@@ -207,12 +208,14 @@ if repolevel == 1:
startdir = repo_settings.repodir
else:
startdir = normalize_path(mydir)
- startdir = os.path.join(repo_settings.repodir, *startdir.split(os.sep)[-2 - repolevel + 3:])
+ startdir = os.path.join(
+ repo_settings.repodir, *startdir.split(os.sep)[-2 - repolevel + 3:])
###################
# get lists of valid keywords, licenses, and use
new_data = repo_metadata(repo_settings.portdb, repoman_settings)
-kwlist, liclist, uselist, profile_list, global_pmaskdict, liclist_deprecated = new_data
+kwlist, liclist, uselist, profile_list, \
+ global_pmaskdict, liclist_deprecated = new_data
repoman_settings['PORTAGE_ARCHLIST'] = ' '.join(sorted(kwlist))
repoman_settings.backup_changes('PORTAGE_ARCHLIST')
@@ -339,14 +342,15 @@ for xpkg in effective_scanlist:
ebuildlist = sorted(pkgs.values())
ebuildlist = [pkg.pf for pkg in ebuildlist]
#######################
- filescheck.check(checkdir, checkdirlist, checkdir_relative,
- changed.changed, changed.new)
+ filescheck.check(
+ checkdir, checkdirlist, checkdir_relative, changed.changed, changed.new)
#######################
status_check.check(check_ebuild_notadded, checkdir, checkdir_relative, xpkg)
eadded.extend(status_check.eadded)
#################
- fetchcheck.check(xpkg, checkdir, checkdir_relative, changed.changed, changed.new)
+ fetchcheck.check(
+ xpkg, checkdir, checkdir_relative, changed.changed, changed.new)
#################
if check_changelog and "ChangeLog" not in checkdirlist:
@@ -363,9 +367,11 @@ for xpkg in effective_scanlist:
used_useflags = set()
for y_ebuild in ebuildlist:
-##################
- ebuild = Ebuild(repo_settings, repolevel, pkgdir, catdir, vcs_settings, xpkg, y_ebuild)
-##################
+ ##################
+ ebuild = Ebuild(
+ repo_settings, repolevel, pkgdir, catdir, vcs_settings,
+ xpkg, y_ebuild)
+ ##################
if check_changelog and not changelog_modified \
and ebuild.ebuild_path in changed.new_ebuilds:
@@ -373,8 +379,8 @@ for xpkg in effective_scanlist:
if ebuild.untracked(check_ebuild_notadded, y_ebuild, eadded):
# ebuild not added to vcs
- qatracker.add_error("ebuild.notadded",
- xpkg + "/" + y_ebuild + ".ebuild")
+ qatracker.add_error(
+ "ebuild.notadded", xpkg + "/" + y_ebuild + ".ebuild")
##################
if bad_split_check(xpkg, y_ebuild, pkgdir, qatracker):
@@ -391,19 +397,20 @@ for xpkg in effective_scanlist:
live_ebuild = live_eclasses.intersection(inherited)
if repo_settings.repo_config.eapi_is_banned(eapi):
- qatracker.add_error("repo.eapi.banned",
- "%s: %s" % (ebuild.relative_path, eapi))
+ qatracker.add_error(
+ "repo.eapi.banned", "%s: %s" % (ebuild.relative_path, eapi))
elif repo_settings.repo_config.eapi_is_deprecated(eapi):
- qatracker.add_error("repo.eapi.deprecated",
- "%s: %s" % (ebuild.relative_path, eapi))
+ qatracker.add_error(
+ "repo.eapi.deprecated", "%s: %s" % (ebuild.relative_path, eapi))
for k, v in myaux.items():
if not isinstance(v, basestring):
continue
m = non_ascii_re.search(v)
if m is not None:
- qatracker.add_error("variable.invalidchar",
+ qatracker.add_error(
+ "variable.invalidchar",
"%s: %s variable contains non-ASCII "
"character at position %s" %
(ebuild.relative_path, k, m.start() + 1))
@@ -433,7 +440,8 @@ for xpkg in effective_scanlist:
# 14 is the length of DESCRIPTION=""
if len(myaux['DESCRIPTION']) > max_desc_len:
- qatracker.add_error('DESCRIPTION.toolong',
+ qatracker.add_error(
+ 'DESCRIPTION.toolong',
"%s: DESCRIPTION is %d characters (max %d)" %
(ebuild.relative_path, len(myaux['DESCRIPTION']), max_desc_len))
@@ -519,7 +527,8 @@ for xpkg in effective_scanlist:
if atoms and mytype.endswith("DEPEND"):
if runtime and \
"test?" in mydepstr.split():
- qatracker.add_error(mytype + '.suspect',
+ qatracker.add_error(
+ mytype + '.suspect',
"%s: 'test?' USE conditional in %s" %
(ebuild.relative_path, mytype))
@@ -541,8 +550,8 @@ for xpkg in effective_scanlist:
if catdir != "virtual":
if not is_blocker and \
atom.cp in suspect_virtual:
- qatracker.add_error('virtual.suspect',
- ebuild.relative_path +
+ qatracker.add_error(
+ 'virtual.suspect', ebuild.relative_path +
": %s: consider using '%s' instead of '%s'" %
(mytype, suspect_virtual[atom.cp], atom))
if not is_blocker and \
@@ -556,26 +565,28 @@ for xpkg in effective_scanlist:
not is_blocker and \
not inherited_java_eclass and \
atom.cp == "virtual/jdk":
- qatracker.add_error('java.eclassesnotused',
- ebuild.relative_path)
+ qatracker.add_error(
+ 'java.eclassesnotused', ebuild.relative_path)
elif buildtime and \
not is_blocker and \
not inherited_wxwidgets_eclass and \
atom.cp == "x11-libs/wxGTK":
- qatracker.add_error('wxwidgets.eclassnotused',
+ qatracker.add_error(
+ 'wxwidgets.eclassnotused',
"%s: %ss on x11-libs/wxGTK without inheriting"
" wxwidgets.eclass" % (ebuild.relative_path, mytype))
elif runtime:
if not is_blocker and \
atom.cp in suspect_rdepend:
- qatracker.add_error(mytype + '.suspect',
+ qatracker.add_error(
+ mytype + '.suspect',
ebuild.relative_path + ": '%s'" % atom)
if atom.operator == "~" and \
portage.versions.catpkgsplit(atom.cpv)[3] != "r0":
qacat = 'dependency.badtilde'
- qatracker.add_error(qacat,
- "%s: %s uses the ~ operator"
+ qatracker.add_error(
+ qacat, "%s: %s uses the ~ operator"
" with a non-zero revision: '%s'" %
(ebuild.relative_path, mytype, atom))
@@ -589,8 +600,8 @@ for xpkg in effective_scanlist:
qacat = "dependency.syntax"
else:
qacat = m + ".syntax"
- qatracker.add_error(qacat,
- "%s: %s: %s" % (ebuild.relative_path, m, b))
+ qatracker.add_error(
+ qacat, "%s: %s: %s" % (ebuild.relative_path, m, b))
badlicsyntax = len([z for z in type_list if z == "LICENSE"])
badprovsyntax = len([z for z in type_list if z == "PROVIDE"])
@@ -618,10 +629,12 @@ for xpkg in effective_scanlist:
# Need to check for "||" manually as no portage
# function will remove it without removing values.
if lic not in liclist and lic != "||":
- qatracker.add_error("LICENSE.invalid",
+ qatracker.add_error(
+ "LICENSE.invalid",
xpkg + "/" + y_ebuild + ".ebuild: %s" % lic)
elif lic in liclist_deprecated:
- qatracker.add_error("LICENSE.deprecated",
+ qatracker.add_error(
+ "LICENSE.deprecated",
"%s: %s" % (ebuild.relative_path, lic))
# restrict checks
@@ -630,7 +643,8 @@ for xpkg in effective_scanlist:
myrestrict = portage.dep.use_reduce(
myaux["RESTRICT"], matchall=1, flat=True)
except portage.exception.InvalidDependString as e:
- qatracker.add_error("RESTRICT.syntax",
+ qatracker.add_error(
+ "RESTRICT.syntax",
"%s: RESTRICT: %s" % (ebuild.relative_path, e))
del e
if myrestrict:
@@ -638,7 +652,8 @@ for xpkg in effective_scanlist:
mybadrestrict = myrestrict.difference(valid_restrict)
if mybadrestrict:
for mybad in mybadrestrict:
- qatracker.add_error("RESTRICT.invalid",
+ qatracker.add_error(
+ "RESTRICT.invalid",
xpkg + "/" + y_ebuild + ".ebuild: %s" % mybad)
# Syntax Checks
@@ -655,8 +670,8 @@ for xpkg in effective_scanlist:
mode='r', encoding=_encodings['repo.content'])
try:
for check_name, e in run_checks(f, pkg):
- qatracker.add_error(check_name,
- ebuild.relative_path + ': %s' % e)
+ qatracker.add_error(
+ check_name, ebuild.relative_path + ': %s' % e)
finally:
f.close()
except UnicodeDecodeError:
@@ -829,15 +844,16 @@ for xpkg in effective_scanlist:
for mytype, atom in unknown_pkgs:
type_map.setdefault(mytype, set()).add(atom)
for mytype, atoms in type_map.items():
- qatracker.add_error("dependency.unknown",
- "%s: %s: %s"
+ qatracker.add_error(
+ "dependency.unknown", "%s: %s: %s"
% (ebuild.relative_path, mytype, ", ".join(sorted(atoms))))
# check if there are unused local USE-descriptions in metadata.xml
# (unless there are any invalids, to avoid noise)
if allvalid:
for myflag in muselist.difference(used_useflags):
- qatracker.add_error("metadata.warning",
+ qatracker.add_error(
+ "metadata.warning",
"%s/metadata.xml: unused local USE-description: '%s'"
% (xpkg, myflag))
@@ -1129,7 +1145,10 @@ else:
myremoved = ["./" + elem.rstrip() for elem in myremoved]
if vcs_settings.vcs:
- if not (mychanged or mynew or myremoved or (vcs_settings.vcs == "hg" and mydeleted)):
+ a_file_is_changed = mychanged or mynew or myremoved
+ a_file_is_deleted_hg = vcs_settings.vcs == "hg" and mydeleted
+
+ if not (a_file_is_changed or a_file_is_deleted_hg):
utilities.repoman_sez(
"\"Doing nothing is not always good for QA.\"")
print()
diff --git a/pym/repoman/qa_data.py b/pym/repoman/qa_data.py
index f4415ba..461b064 100644
--- a/pym/repoman/qa_data.py
+++ b/pym/repoman/qa_data.py
@@ -6,8 +6,6 @@ from _emerge.Package import Package
# import our initialized portage instance
from repoman._portage import portage
-
-
# 14 is the length of DESCRIPTION=""
max_desc_len = 100
allowed_filename_chars = "a-zA-Z0-9._-+:"
diff --git a/pym/repoman/qa_tracker.py b/pym/repoman/qa_tracker.py
index 48a7241..9bfe0e2 100644
--- a/pym/repoman/qa_tracker.py
+++ b/pym/repoman/qa_tracker.py
@@ -12,7 +12,6 @@ class QATracker(object):
self.fails = {}
self.warns = {}
-
def add_error(self, detected_qa, info):
'''Add the Q/A error to the database of detected problems
@@ -20,15 +19,15 @@ class QATracker(object):
@param info: string, details of the detected problem
'''
if detected_qa not in qacats:
- logging.error('QATracker: Exiting on error. unknown detected_qa type passed in '
- 'to add_error(): %s, %s' % (detected_qa, info))
+ logging.error(
+ 'QATracker: Exiting on error. Unknown detected_qa type passed '
+ 'in to add_error(): %s, %s' % (detected_qa, info))
sys.exit(1)
try:
self.fails[detected_qa].append(info)
except KeyError:
self.fails[detected_qa] = [info]
-
def add_warning(self, detected_qa, info):
'''Add the Q/A warning to the database of detected problems
@@ -36,11 +35,11 @@ class QATracker(object):
@param info: string, details of the detected problem
'''
if detected_qa not in qawarnings:
- logging.error('QATracker: Exiting on error. unknown detected_qa type passed in '
- 'to add_warning(): %s, %s' % (detected_qa, info))
+ logging.error(
+ 'QATracker: Exiting on error. Unknown detected_qa type passed '
+ 'in to add_warning(): %s, %s' % (detected_qa, info))
sys.exit(1)
try:
self.warns[detected_qa].append(info)
except KeyError:
self.warns[detected_qa] = [info]
-
diff --git a/pym/repoman/repos.py b/pym/repoman/repos.py
index d2164ea..700c064 100644
--- a/pym/repoman/repos.py
+++ b/pym/repoman/repos.py
@@ -23,16 +23,19 @@ bad = portage.output.create_color_func("BAD")
class RepoSettings(object):
'''Holds out repo specific settings'''
- def __init__(self, config_root, portdir, portdir_overlay,
+ def __init__(
+ self, config_root, portdir, portdir_overlay,
repoman_settings=None, vcs_settings=None, options=None,
qawarnings=None):
self.repoman_settings = repoman_settings
self.vcs_settings = vcs_settings
+ repoman_repos = self.repoman_settings.repositories
+
# Ensure that current repository is in the list of enabled repositories.
self.repodir = os.path.realpath(portdir_overlay)
try:
- repoman_settings.repositories.get_repo_for_location(self.repodir)
+ repoman_repos.get_repo_for_location(self.repodir)
except KeyError:
self._add_repo(config_root, portdir_overlay)
@@ -44,15 +47,15 @@ class RepoSettings(object):
# Constrain dependency resolution to the master(s)
# that are specified in layout.conf.
- self.repo_config = self.repoman_settings.repositories.get_repo_for_location(self.repodir)
+ self.repo_config = repoman_repos.get_repo_for_location(self.repodir)
self.portdb.porttrees = list(self.repo_config.eclass_db.porttrees)
self.portdir = self.portdb.porttrees[0]
self.commit_env = os.environ.copy()
# list() is for iteration on a copy.
- for repo in list(self.repoman_settings.repositories):
+ for repo in list(repoman_repos):
# all paths are canonical
if repo.location not in self.repo_config.eclass_db.porttrees:
- del self.repoman_settings.repositories[repo.name]
+ del repoman_repos[repo.name]
if self.repo_config.allow_provide_virtual:
qawarnings.add("virtual.oldstyle")
@@ -124,10 +127,10 @@ class RepoSettings(object):
logging.error(line)
sys.exit(1)
-
def _add_repo(self, config_root, portdir_overlay):
self.repo_conf = portage.repository.config
- self.repo_name = self.repo_conf.RepoConfig._read_valid_repo_name(portdir_overlay)[0]
+ self.repo_name = self.repo_conf.RepoConfig._read_valid_repo_name(
+ portdir_overlay)[0]
self.layout_conf_data = self.repo_conf.parse_layout_conf(portdir_overlay)[0]
if self.layout_conf_data['repo-name']:
self.repo_name = self.layout_conf_data['repo-name']
@@ -146,18 +149,19 @@ class RepoSettings(object):
# We have to call the config constructor again so that attributes
# dependent on config.repositories are initialized correctly.
self.repoman_settings = portage.config(
- config_root=config_root, local_config=False, repositories=self.repositories)
+ config_root=config_root, local_config=False,
+ repositories=self.repositories)
- ########### future vcs plugin functions
+ ##########
+ # future vcs plugin functions
+ ##########
def _vcs_gpg_bzr(self):
pass
-
def _vcs_gpg_cvs(self):
pass
-
def _vcs_gpg_git(self):
# NOTE: It's possible to use --gpg-sign=key_id to specify the key in
# the commit arguments. If key_id is unspecified, then it must be
@@ -173,17 +177,13 @@ class RepoSettings(object):
except OSError:
pass
-
def _vcs_gpg_hg(self):
pass
-
def _vcs_gpg_svn(self):
pass
-
-
def list_checks(kwlist, liclist, uselist, repoman_settings):
liclist_deprecated = set()
if "DEPRECATED" in repoman_settings._license_manager._license_groups:
@@ -291,7 +291,8 @@ def repo_metadata(portdb, repoman_settings):
global_pmaskdict.setdefault(x.cp, []).append(x)
del global_pmasklines
- return (kwlist, liclist, uselist, profile_list, global_pmaskdict,
+ return (
+ kwlist, liclist, uselist, profile_list, global_pmaskdict,
list_checks(kwlist, liclist, uselist, repoman_settings))
@@ -303,5 +304,3 @@ def has_global_mask(pkg, global_pmaskdict):
if portage.dep.match_from_list(x, pkg_list):
return x
return None
-
-
diff --git a/pym/repoman/scan.py b/pym/repoman/scan.py
index e7ce8ff..fef6d82 100644
--- a/pym/repoman/scan.py
+++ b/pym/repoman/scan.py
@@ -23,7 +23,7 @@ def scan(repolevel, reposplit, startdir, categories, repo_settings):
continue
if os.path.isdir(startdir + "/" + x):
scanlist.append(catdir + "/" + x)
- #repo_subdir = catdir + os.sep
+ # repo_subdir = catdir + os.sep
elif repolevel == 1:
for x in categories:
if not os.path.isdir(startdir + "/" + x):
@@ -33,20 +33,20 @@ def scan(repolevel, reposplit, startdir, categories, repo_settings):
continue
if os.path.isdir(startdir + "/" + x + "/" + y):
scanlist.append(x + "/" + y)
- #repo_subdir = ""
+ # repo_subdir = ""
elif repolevel == 3:
catdir = reposplit[-2]
if catdir not in categories:
- caterror(catdir,repo_settings.repodir)
+ caterror(catdir, repo_settings.repodir)
scanlist.append(catdir + "/" + reposplit[-1])
- #repo_subdir = scanlist[-1] + os.sep
+ # repo_subdir = scanlist[-1] + os.sep
else:
msg = 'Repoman is unable to determine PORTDIR or PORTDIR_OVERLAY' + \
' from the current working directory'
logging.critical(msg)
sys.exit(1)
- #repo_subdir_len = len(repo_subdir)
+ # repo_subdir_len = len(repo_subdir)
scanlist.sort()
logging.debug(
@@ -67,12 +67,10 @@ class Changes(object):
This will ease future addition of new VCS types.
'''
-
def __init__(self, options):
self.options = options
self._reset()
-
def _reset(self):
self.new_ebuilds = set()
self.ebuilds = set()
@@ -81,7 +79,6 @@ class Changes(object):
self.new = []
self.removed = []
-
def scan(self, vcs_settings):
self._reset()
@@ -96,7 +93,6 @@ class Changes(object):
x for x in chain(self.changed, self.new)
if os.path.basename(x) == "ChangeLog")
-
def scan_cvs(self):
tree = cvstree.getentries("./", recursive=1)
self.changed = cvstree.findchanged(tree, recursive=1, basedir="./")
@@ -105,7 +101,6 @@ class Changes(object):
self.removed = cvstree.findremoved(tree, recursive=1, basedir="./")
del tree
-
def scan_svn(self):
with repoman_popen("svn status") as f:
svnstatus = f.readlines()
@@ -123,7 +118,6 @@ class Changes(object):
for elem in svnstatus
if elem.startswith("D")]
-
def scan_git(self):
with repoman_popen(
"git diff-index --name-only "
@@ -145,7 +139,6 @@ class Changes(object):
self.removed = ["./" + elem[:-1] for elem in removed]
del removed
-
def scan_bzr(self):
with repoman_popen("bzr status -S .") as f:
bzrstatus = f.readlines()
@@ -163,7 +156,6 @@ class Changes(object):
for elem in bzrstatus
if elem and (elem[1:2] == "K" or elem[0:1] == "R")]
-
def scan_hg(self):
with repoman_popen("hg status --no-status --modified .") as f:
changed = f.readlines()
diff --git a/pym/repoman/vcs/vcs.py b/pym/repoman/vcs/vcs.py
index 6a9d455..180692c 100644
--- a/pym/repoman/vcs/vcs.py
+++ b/pym/repoman/vcs/vcs.py
@@ -256,8 +256,10 @@ class VCSSettings(object):
# Disable copyright/mtime check if vcs does not preserve mtime (bug #324075).
self.vcs_preserves_mtime = self.vcs in ('cvs',)
- self.vcs_local_opts = repoman_settings.get("REPOMAN_VCS_LOCAL_OPTS", "").split()
- self.vcs_global_opts = repoman_settings.get("REPOMAN_VCS_GLOBAL_OPTS")
+ self.vcs_local_opts = repoman_settings.get(
+ "REPOMAN_VCS_LOCAL_OPTS", "").split()
+ self.vcs_global_opts = repoman_settings.get(
+ "REPOMAN_VCS_GLOBAL_OPTS")
if self.vcs_global_opts is None:
if self.vcs in ('cvs', 'svn'):
self.vcs_global_opts = "-q"
@@ -266,5 +268,7 @@ class VCSSettings(object):
self.vcs_global_opts = self.vcs_global_opts.split()
if options.mode == 'commit' and not options.pretend and not self.vcs:
- logging.info("Not in a version controlled repository; enabling pretend mode.")
+ logging.info(
+ "Not in a version controlled repository; "
+ "enabling pretend mode.")
options.pretend = True
diff --git a/pym/repoman/vcs/vcsstatus.py b/pym/repoman/vcs/vcsstatus.py
index 0517c04..30e00ad 100644
--- a/pym/repoman/vcs/vcsstatus.py
+++ b/pym/repoman/vcs/vcsstatus.py
@@ -8,7 +8,6 @@ from portage import os
from repoman._subprocess import repoman_popen
-
class VCSStatus(object):
'''Determines the status of the vcs repositories
to determine if files are not added'''
@@ -19,43 +18,39 @@ class VCSStatus(object):
self.eadded = []
self.qatracker = qatracker
-
def check(self, check_not_added, checkdir, checkdir_relative, xpkg):
if self.vcs and check_not_added:
vcscheck = getattr(self, 'check_%s' % self.vcs)
vcscheck(checkdir, checkdir_relative, xpkg)
-
def post_git_hg(self, myf, xpkg):
for l in myf:
if l[:-1][-7:] == ".ebuild":
- self.qatracker.add_error("ebuild.notadded",
+ self.qatracker.add_error(
+ "ebuild.notadded",
os.path.join(xpkg, os.path.basename(l[:-1])))
myf.close()
-
def check_git(self, checkdir, checkdir_relative, xpkg):
myf = repoman_popen(
"git ls-files --others %s" %
(portage._shell_quote(checkdir_relative),))
self.post_git_hg(myf, xpkg)
-
def check_hg(self, checkdir, checkdir_relative, xpkg):
myf = repoman_popen(
"hg status --no-status --unknown %s" %
(portage._shell_quote(checkdir_relative),))
self.post_git_hg(myf, xpkg)
-
def check_cvs(self, checkdir, checkdir_relative, xpkg):
try:
myf = open(checkdir + "/CVS/Entries", "r")
myl = myf.readlines()
myf.close()
except IOError:
- self.qatracker.add_error("CVS/Entries.IO_error",
- checkdir + "/CVS/Entries")
+ self.qatracker.add_error(
+ "CVS/Entries.IO_error", checkdir + "/CVS/Entries")
return True
for l in myl:
if l[0] != "/":
@@ -67,7 +62,6 @@ class VCSStatus(object):
self.eadded.append(splitl[0][:-7])
return True
-
def check_svn(self, checkdir, checkdir_relative, xpkg):
try:
myf = repoman_popen(
@@ -101,7 +95,6 @@ class VCSStatus(object):
self.eadded.append(os.path.basename(l[:-7]))
return True
-
def check_bzr(self, checkdir, checkdir_relative, xpkg):
try:
myf = repoman_popen(
@@ -117,4 +110,4 @@ class VCSStatus(object):
l = l.split()[-1]
if l[-7:] == ".ebuild":
self.eadded.append(os.path.basename(l[:-7]))
- return True
+ return True
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2015-09-20 2:07 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-20 2:06 [gentoo-commits] proj/portage:repoman commit in: pym/repoman/checks/directories/, pym/repoman/checks/ebuilds/eclasses/, Brian Dolbec
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox