aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--repoman/cnf/linechecks/linechecks.yaml35
-rw-r--r--repoman/pym/repoman/modules/linechecks/config.py19
2 files changed, 52 insertions, 2 deletions
diff --git a/repoman/cnf/linechecks/linechecks.yaml b/repoman/cnf/linechecks/linechecks.yaml
new file mode 100644
index 000000000..634381e80
--- /dev/null
+++ b/repoman/cnf/linechecks/linechecks.yaml
@@ -0,0 +1,35 @@
+---
+# linecheck_help.yaml
+
+# Repoman API version (do not edit)
+version: 1
+# minimum
+repoman_version: 2.3.3
+
+# configuration file for the LineCheck plugins run via the multicheck
+# scan module
+errors:
+ COPYRIGHT_ERROR: 'Invalid Gentoo Copyright on line: %d'
+ LICENSE_ERROR: 'Invalid Gentoo/GPL License on line: %d'
+ ID_HEADER_ERROR: 'Stale CVS header on line: %d'
+ NO_BLANK_LINE_ERROR: 'Non-blank line after header on line: %d'
+ LEADING_SPACES_ERROR: 'Ebuild contains leading spaces on line: %d'
+ TRAILING_WHITESPACE_ERROR: 'Trailing whitespace error on line: %d'
+ READONLY_ASSIGNMENT_ERROR: 'Ebuild contains assignment to read-only variable on line: %d'
+ MISSING_QUOTES_ERROR: 'Unquoted Variable on line: %d'
+ NESTED_DIE_ERROR: 'Ebuild calls die in a subshell on line: %d'
+ PATCHES_ERROR: 'PATCHES is not a bash array on line: %d'
+ REDUNDANT_CD_S_ERROR: 'Ebuild has redundant cd ${S} statement on line: %d'
+ EMAKE_PARALLEL_DISABLED: 'Upstream parallel compilation bug (ebuild calls emake -j1 on line: %d)'
+ EMAKE_PARALLEL_DISABLED_VIA_MAKEOPTS: 'Upstream parallel compilation bug (MAKEOPTS=-j1 on line: %d)'
+ DEPRECATED_BINDNOW_FLAGS: 'Deprecated bindnow-flags call on line: %d'
+ EAPI_DEFINED_AFTER_INHERIT: 'EAPI defined after inherit on line: %d'
+ NO_AS_NEEDED: 'Upstream asneeded linking bug (no-as-needed on line: %d)'
+ PRESERVE_OLD_LIB: 'Ebuild calls deprecated preserve_old_lib on line: %d'
+ BUILT_WITH_USE: 'built_with_use on line: %d'
+ NO_OFFSET_WITH_HELPERS: 'Helper function is used with D, ROOT, ED, EROOT or EPREFIX on line: %d'
+ SANDBOX_ADDPREDICT: 'Ebuild calls addpredict on line: %d'
+ USEQ_ERROR: 'Ebuild calls deprecated useq function on line: %d'
+ HASQ_ERROR: 'Ebuild calls deprecated hasq function on line: %d'
+ URI_HTTPS: 'Ebuild uses http:// but should use https:// on line: %d'
+
diff --git a/repoman/pym/repoman/modules/linechecks/config.py b/repoman/pym/repoman/modules/linechecks/config.py
index bde2e587f..6e4c5314e 100644
--- a/repoman/pym/repoman/modules/linechecks/config.py
+++ b/repoman/pym/repoman/modules/linechecks/config.py
@@ -15,6 +15,7 @@ from copy import deepcopy
from repoman._portage import portage
from repoman.config import load_config
+from repoman import _not_installed
# Avoid a circular import issue in py2.7
portage.proxy.lazyimport.lazyimport(globals(),
@@ -46,8 +47,7 @@ class LineChecksConfig(object):
@param configpaths: ordered list of filepaths to load
'''
self.repo_settings = repo_settings
- self.infopaths = [os.path.join(path, 'linechecks.yaml') for path in self.repo_settings.masters_list]
- logging.debug("LineChecksConfig; configpaths: %s", self.infopaths)
+ self.infopaths = None
self.info_config = None
self._config = None
self.usex_supported_eapis = None
@@ -58,8 +58,22 @@ class LineChecksConfig(object):
self.eclass_info = {}
self.eclass_info_experimental_inherit = {}
self.errors = {}
+ self.set_infopaths()
self.load_checks_info()
+ def set_infopaths(self):
+ if _not_installed:
+ cnfdir = os.path.realpath(os.path.join(os.path.dirname(
+ os.path.dirname(os.path.dirname(os.path.dirname(
+ os.path.dirname(__file__))))), 'cnf/linechecks'))
+ else:
+ cnfdir = os.path.join(portage.const.EPREFIX or '/', 'usr/share/repoman/linechecks')
+ repomanpaths = [os.path.join(cnfdir, _file_) for _file_ in os.listdir(cnfdir)]
+ logging.debug("LineChecksConfig; repomanpaths: %s", repomanpaths)
+ repopaths = [os.path.join(path, 'linechecks.yaml') for path in self.repo_settings.masters_list]
+ self.infopaths = repomanpaths + repopaths
+ logging.debug("LineChecksConfig; configpaths: %s", self.infopaths)
+
def load_checks_info(self, infopaths=None):
'''load the config files in order
@@ -69,6 +83,7 @@ class LineChecksConfig(object):
self.infopaths = infopaths
elif not self.infopaths:
logging.error("LineChecksConfig; Error: No linechecks.yaml files defined")
+
configs = load_config(self.infopaths, 'yaml', self.repo_settings.repoman_settings.valid_versions)
if configs == {}:
logging.error("LineChecksConfig: Failed to load a valid 'linechecks.yaml' file at paths: %s", self.infopaths)