From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 19F821382C5 for ; Fri, 30 Mar 2018 05:21:40 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 29A9EE07E0; Fri, 30 Mar 2018 05:20:54 +0000 (UTC) Received: from smtp.gentoo.org (mail.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id DDE69E09C6 for ; Fri, 30 Mar 2018 05:20:53 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 87815335D38 for ; Fri, 30 Mar 2018 05:20:52 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 3B4ED285 for ; Fri, 30 Mar 2018 05:20:48 +0000 (UTC) From: "Zac Medico" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Zac Medico" Message-ID: <1522381881.4d8602ba2f21b3b0a1ad9385fc3c8b8d05276ba7.zmedico@gentoo> Subject: [gentoo-commits] proj/portage:repoman commit in: repoman/pym/repoman/modules/linechecks/, repoman/cnf/linechecks/ X-VCS-Repository: proj/portage X-VCS-Files: repoman/cnf/linechecks/linechecks.yaml repoman/pym/repoman/modules/linechecks/config.py X-VCS-Directories: repoman/pym/repoman/modules/linechecks/ repoman/cnf/linechecks/ X-VCS-Committer: zmedico X-VCS-Committer-Name: Zac Medico X-VCS-Revision: 4d8602ba2f21b3b0a1ad9385fc3c8b8d05276ba7 X-VCS-Branch: repoman Date: Fri, 30 Mar 2018 05:20:48 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: bdb2c758-076f-40e5-9208-aa745163b8f9 X-Archives-Hash: 663ed8872737acaed5346be7e0ea2490 commit: 4d8602ba2f21b3b0a1ad9385fc3c8b8d05276ba7 Author: Brian Dolbec gentoo org> AuthorDate: Tue Dec 5 18:17:15 2017 +0000 Commit: Zac Medico gentoo org> CommitDate: Fri Mar 30 03:51:21 2018 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=4d8602ba repoman linechecks/config.py: Move the errors loading to a new /usr/share/repoman/linechecks directory This new directory can be installed to by third party add on modules that extend the checks. We can also in future use these file to get loaclized translations. repoman/cnf/linechecks/linechecks.yaml | 35 ++++++++++++++++++++++++ repoman/pym/repoman/modules/linechecks/config.py | 19 +++++++++++-- 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) From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 960711382C5 for ; Fri, 30 Mar 2018 04:23:58 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id A4535E0996; Fri, 30 Mar 2018 04:23:46 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 66009E0996 for ; Fri, 30 Mar 2018 04:23:46 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 48E73335D32 for ; Fri, 30 Mar 2018 04:23:45 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 5E0D2283 for ; Fri, 30 Mar 2018 04:23:41 +0000 (UTC) From: "Zac Medico" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Zac Medico" Message-ID: <1522381881.4d8602ba2f21b3b0a1ad9385fc3c8b8d05276ba7.zmedico@gentoo> Subject: [gentoo-commits] proj/portage:master commit in: repoman/cnf/linechecks/, repoman/pym/repoman/modules/linechecks/ X-VCS-Repository: proj/portage X-VCS-Files: repoman/cnf/linechecks/linechecks.yaml repoman/pym/repoman/modules/linechecks/config.py X-VCS-Directories: repoman/cnf/linechecks/ repoman/pym/repoman/modules/linechecks/ X-VCS-Committer: zmedico X-VCS-Committer-Name: Zac Medico X-VCS-Revision: 4d8602ba2f21b3b0a1ad9385fc3c8b8d05276ba7 X-VCS-Branch: master Date: Fri, 30 Mar 2018 04:23:41 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: d7e87c23-61b6-44c0-ad75-619095b45073 X-Archives-Hash: 57901148da7f851f411a90239219dfb2 Message-ID: <20180330042341.ayNnY0hYXWydb3lN1mEkiCsyuqFS_xfm4KXXwkj2mBY@z> commit: 4d8602ba2f21b3b0a1ad9385fc3c8b8d05276ba7 Author: Brian Dolbec gentoo org> AuthorDate: Tue Dec 5 18:17:15 2017 +0000 Commit: Zac Medico gentoo org> CommitDate: Fri Mar 30 03:51:21 2018 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=4d8602ba repoman linechecks/config.py: Move the errors loading to a new /usr/share/repoman/linechecks directory This new directory can be installed to by third party add on modules that extend the checks. We can also in future use these file to get loaclized translations. repoman/cnf/linechecks/linechecks.yaml | 35 ++++++++++++++++++++++++ repoman/pym/repoman/modules/linechecks/config.py | 19 +++++++++++-- 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)