[gentoo-commits] proj/portage:master commit in: repoman/man/, repoman/cnf/repository/, repoman/cnf/qa_data/, ...

2021-03-28 Thread Zac Medico
commit: 15cbe87076b512b318fac1729ec94e6d6674a95a
Author: Zac Medico  gentoo  org>
AuthorDate: Sat Mar 27 23:15:16 2021 +
Commit: Zac Medico  gentoo  org>
CommitDate: Mon Mar 29 04:46:41 2021 +
URL:https://gitweb.gentoo.org/proj/portage.git/commit/?id=15cbe870

repoman: add variable.phase check like pkgcheck VariableScopeCheck (bug 608664)

The variable.phase check is inspired by pkgcheck's VariableScopeCheck,
and uses essentially the same PMS data to drive the check.

References:
- https://projects.gentoo.org/pms/7/pms.html#x1-10900011.1
- 
https://pkgcore.github.io/pkgcheck/_modules/pkgcheck/checks/codingstyle.html#VariableScopeCheck
- https://bugs.gentoo.org/775191

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

 repoman/cnf/qa_data/qa_data.yaml   |   1 +
 repoman/cnf/repository/qa_data.yaml|   1 +
 repoman/cnf/repository/repository.yaml |   1 +
 .../repoman/modules/linechecks/phases/__init__.py  |   6 +
 .../lib/repoman/modules/linechecks/phases/phase.py | 132 +++--
 repoman/lib/repoman/tests/simple/test_simple.py|  28 -
 repoman/man/repoman.1  |   5 +-
 7 files changed, 162 insertions(+), 12 deletions(-)

diff --git a/repoman/cnf/qa_data/qa_data.yaml b/repoman/cnf/qa_data/qa_data.yaml
index 29a3d6e9f..530c8c806 100644
--- a/repoman/cnf/qa_data/qa_data.yaml
+++ b/repoman/cnf/qa_data/qa_data.yaml
@@ -129,6 +129,7 @@ qahelp:
 obsolete: "The ebuild makes use of an obsolete construct"
 variable:
 invalidchar: "A variable contains an invalid character that is not 
part of the ASCII character set"
+phase: "Variable referenced found within scope of incorrect ebuild 
phase as specified by PMS"
 readonly: "Assigning a readonly variable"
 usedwithhelpers: "Ebuild uses D, ROOT, BROOT, ED, EROOT or EPREFIX 
with helpers"
 virtual:

diff --git a/repoman/cnf/repository/qa_data.yaml 
b/repoman/cnf/repository/qa_data.yaml
index 3fe6b53d5..2249000c3 100644
--- a/repoman/cnf/repository/qa_data.yaml
+++ b/repoman/cnf/repository/qa_data.yaml
@@ -80,6 +80,7 @@ qawarnings:
 - usage.obsolete
 - upstream.workaround
 - uri.https
+- variable.phase
 - virtual.suspect
 - wxwidgets.eclassnotused
 

diff --git a/repoman/cnf/repository/repository.yaml 
b/repoman/cnf/repository/repository.yaml
index ad00d18c1..dbc1decaa 100644
--- a/repoman/cnf/repository/repository.yaml
+++ b/repoman/cnf/repository/repository.yaml
@@ -61,6 +61,7 @@ linechecks_modules:
 emakeparallel
 srccompileeconf
 srcunpackpatches
+pmsvariablerefphasescope
 portageinternal
 portageinternalvariableassignment
 quote

diff --git a/repoman/lib/repoman/modules/linechecks/phases/__init__.py 
b/repoman/lib/repoman/modules/linechecks/phases/__init__.py
index 686c675d2..e166b31a3 100644
--- a/repoman/lib/repoman/modules/linechecks/phases/__init__.py
+++ b/repoman/lib/repoman/modules/linechecks/phases/__init__.py
@@ -29,6 +29,12 @@ module_spec = {
'class': "SrcUnpackPatches",
'description': doc,
},
+   'pmsvariablerefphasescope-check': {
+   'name': "pmsvariablerefphasescope",
+   'sourcefile': "phase",
+   'class': "PMSVariableReference",
+   'description': doc,
+   },
},
'version': 1,
 }

diff --git a/repoman/lib/repoman/modules/linechecks/phases/phase.py 
b/repoman/lib/repoman/modules/linechecks/phases/phase.py
index 74cf4608f..433e93601 100644
--- a/repoman/lib/repoman/modules/linechecks/phases/phase.py
+++ b/repoman/lib/repoman/modules/linechecks/phases/phase.py
@@ -1,7 +1,19 @@
 
+import fnmatch
 import re
-
-from portage.eapi import eapi_has_src_prepare_and_src_configure
+import types
+
+from portage.eapi import (
+   eapi_has_broot,
+   eapi_has_sysroot,
+   eapi_has_src_prepare_and_src_configure,
+   eapi_exports_AA,
+   eapi_exports_replace_vars,
+   eapi_exports_ECLASSDIR,
+   eapi_exports_PORTDIR,
+   eapi_supports_prefix,
+   eapi_exports_merge_type,
+)
 from repoman.modules.linechecks.base import LineCheck
 
 
@@ -9,11 +21,22 @@ class PhaseCheck(LineCheck):
""" basic class for function detection """
 
func_end_re = re.compile(r'^\}$')
-   phases_re = re.compile('(%s)' % '|'.join((
-   'pkg_pretend', 'pkg_setup', 'src_unpack', 'src_prepare',
-   'src_configure', 'src_compile', 'src_test', 'src_install',
-   'pkg_preinst', 'pkg_postinst', 'pkg_prerm', 'pkg_postrm',
-   'pkg_config')))
+   phase_funcs = (
+   'pkg_pretend',
+   'pkg_setup',
+   'src_unpack',
+   'src_prepare',
+   'src_configure',
+   'src_compile',
+   'src_test',
+ 

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

2019-12-05 Thread Zac Medico
commit: 1b1e0fcf0adf4aab07083edcd3bc82a988732137
Author: Zac Medico  gentoo  org>
AuthorDate: Thu Dec  5 22:23:28 2019 +
Commit: Zac Medico  gentoo  org>
CommitDate: Fri Dec  6 07:20:29 2019 +
URL:https://gitweb.gentoo.org/proj/portage.git/commit/?id=1b1e0fcf

repoman: support profiles/package.deprecated (bug 702100)

Bug: https://bugs.gentoo.org/702100
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/depend/_depend_checks.py | 14 ++
 repoman/lib/repoman/scanner.py|  4 
 repoman/man/repoman.1 |  3 +++
 5 files changed, 23 insertions(+)

diff --git a/repoman/cnf/qa_data/qa_data.yaml b/repoman/cnf/qa_data/qa_data.yaml
index 6aad56b8c..9a807aaf3 100644
--- a/repoman/cnf/qa_data/qa_data.yaml
+++ b/repoman/cnf/qa_data/qa_data.yaml
@@ -26,6 +26,7 @@ qahelp:
 badinexp: "User-visible ebuilds with unsatisfied dependencies (matched 
against *visible* ebuilds) in experimental arch"
 badmaskedinexp: "Masked ebuilds with unsatisfied dependencies (matched 
against *all* ebuilds) in experimental arch"
 badtilde: "Uses the ~ dep operator with a non-zero revision part, 
which is useless (the revision is ignored)"
+deprecated: "Ebuild has a dependency that refers to a deprecated 
package"
 equalsversion: "Suspicious =-dependency with a specific version and no 
rev. Please either use ~ if any revision is acceptable, or append -r0 to 
silence the warning."
 missingslot: "RDEPEND matches more than one SLOT but does not specify 
a slot and/or use the := or :* slot operator"
 perlcore: "This ebuild directly depends on a package in perl-core; it 
should use the corresponding virtual instead."

diff --git a/repoman/cnf/repository/qa_data.yaml 
b/repoman/cnf/repository/qa_data.yaml
index c96ce46a9..464482056 100644
--- a/repoman/cnf/repository/qa_data.yaml
+++ b/repoman/cnf/repository/qa_data.yaml
@@ -44,6 +44,7 @@ qawarnings:
 - dependency.badindev
 - dependency.badmaskedindev
 - dependency.badtilde
+- dependency.deprecated
 - dependency.equalsversion
 - dependency.missingslot
 - dependency.perlcore

diff --git a/repoman/lib/repoman/modules/scan/depend/_depend_checks.py 
b/repoman/lib/repoman/modules/scan/depend/_depend_checks.py
index 690b95aa0..e01024da2 100644
--- a/repoman/lib/repoman/modules/scan/depend/_depend_checks.py
+++ b/repoman/lib/repoman/modules/scan/depend/_depend_checks.py
@@ -108,6 +108,20 @@ def _depend_checks(ebuild, pkg, portdb, qatracker, 
repo_metadata, qadata):
not atom.cp.startswith("virtual/"):
unknown_pkgs.add((mytype, 
atom.unevaluated_atom))
 
+   if not atom.blocker:
+   all_deprecated = False
+   for pkg_match in 
portdb.xmatch("match-all", atom):
+   if 
any(repo_metadata['package.deprecated'].iterAtomsForPackage(pkg_match)):
+   all_deprecated = True
+   else:
+   all_deprecated = False
+   break
+
+   if all_deprecated:
+   qatracker.add_error(
+   'dependency.deprecated',
+   ebuild.relative_path + 
": '%s'" % atom)
+
if pkg.category != "virtual":
if not is_blocker and \
atom.cp in 
qadata.suspect_virtual:

diff --git a/repoman/lib/repoman/scanner.py b/repoman/lib/repoman/scanner.py
index 06234b0ad..5db54bb97 100644
--- a/repoman/lib/repoman/scanner.py
+++ b/repoman/lib/repoman/scanner.py
@@ -8,6 +8,7 @@ from itertools import chain
 import portage
 from portage import normalize_path
 from portage import os
+from portage._sets.base import InternalPackageSet
 from portage.output import green
 from portage.util.futures.extendedfutures import ExtendedFuture
 from repoman.metadata import get_metadata_xsd
@@ -93,6 +94,9 @@ class Scanner(object):
'profile_list': profile_list,
'pmaskdict': global_pmaskdict,
'lic_deprecated': liclist_deprecated,
+   'package.deprecated': 
InternalPackageSet(initial_atoms=portage.util.stack_lists(
+   
[portage.util.grabfile_package(os.path.join(path, 'profiles', 
'package.deprecated'), recursive=Tru

[gentoo-commits] proj/portage:master commit in: repoman/man/

2019-11-21 Thread Zac Medico
commit: 0d7aa0d4991f402c2ff7c386419e177a5244c9a0
Author: Zac Medico  gentoo  org>
AuthorDate: Thu Nov 21 20:16:08 2019 +
Commit: Zac Medico  gentoo  org>
CommitDate: Thu Nov 21 20:17:25 2019 +
URL:https://gitweb.gentoo.org/proj/portage.git/commit/?id=0d7aa0d4

repoman/man/repoman.1: fix \fI typo

$ groff -man repoman/man/repoman.1 >/dev/null
repoman/man/repoman.1:105: warning: can't find font `L'

Reported-by: Ulrich Müller  gentoo.org>
Fixes: 2ecf4e2b0ebd ("repoman: add --experimental-repository-modules= 
option")
Signed-off-by: Zac Medico  gentoo.org>

 repoman/man/repoman.1 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/repoman/man/repoman.1 b/repoman/man/repoman.1
index f33fb6098..7bd440a4c 100644
--- a/repoman/man/repoman.1
+++ b/repoman/man/repoman.1
@@ -102,7 +102,7 @@ internal eclass database becomes outdated.
 .TP
 \fB\-\-experimental\-repository\-modules=\fR
 Enable experimental repository modules:
-\fLhttps://wiki.gentoo.org/wiki/Project:Portage/Repoman-Module-specs\fR
+\fIhttps://wiki.gentoo.org/wiki/Project:Portage/Repoman-Module-specs\fR
 .TP
 \fB\-\-if\-modified=\fR
 Only check packages that have uncommitted modifications



[gentoo-commits] proj/portage:master commit in: repoman/man/, repoman/lib/repoman/tests/simple/, repoman/lib/repoman/, ...

2019-11-20 Thread Zac Medico
commit: e9bb1e9681685f4e4d7174f51751356fd3f67d0c
Author: Sergei Trofimovich  gentoo  org>
AuthorDate: Tue Nov 19 00:21:13 2019 +
Commit: Zac Medico  gentoo  org>
CommitDate: Wed Nov 20 10:29:14 2019 +
URL:https://gitweb.gentoo.org/proj/portage.git/commit/?id=e9bb1e96

repoman: add --include-profiles=PROFILES

repoman slows down ~linearly with amount of profiles being scanned.
In case of amd64 we have 28 stable profiles.

To speed up processing and fit into time budged of various CIs we can
split the work across different processes that handle different profiles.

Example benchmark on ::haskell overlay:
$ ./repoman full --include-arches=amd64
~65 minutes
$ ./repoman full --include-profiles=default/linux/amd64/17.0
~4 minutes
This allows for a crude sharding of work across processes and allows for
cheap tree-wide scans for early failures.

Bug: https://bugs.gentoo.org/700456
Signed-off-by: Sergei Trofimovich  gentoo.org>
Signed-off-by: Zac Medico  gentoo.org>

 repoman/lib/repoman/actions.py  | 4 
 repoman/lib/repoman/argparser.py| 7 +++
 repoman/lib/repoman/modules/scan/depend/__init__.py | 3 ++-
 repoman/lib/repoman/modules/scan/depend/profile.py  | 9 +++--
 repoman/lib/repoman/scanner.py  | 5 +
 repoman/lib/repoman/tests/simple/test_simple.py | 1 +
 repoman/man/repoman.1   | 4 
 7 files changed, 30 insertions(+), 3 deletions(-)

diff --git a/repoman/lib/repoman/actions.py b/repoman/lib/repoman/actions.py
index 1c9989a72..92d4d4e94 100644
--- a/repoman/lib/repoman/actions.py
+++ b/repoman/lib/repoman/actions.py
@@ -412,6 +412,10 @@ the whole commit message to abort.
report_options.append(
"--include-arches=\"%s\"" %
" ".join(sorted(self.scanner.include_arches)))
+   if self.scanner.include_profiles is not None:
+   report_options.append(
+   "--include-profiles=\"%s\"" %
+   " ".join(sorted(self.scanner.include_profiles)))
 
if portage_version is None:
sys.stderr.write("Failed to insert portage version in 
message!\n")

diff --git a/repoman/lib/repoman/argparser.py b/repoman/lib/repoman/argparser.py
index fa0e6ff90..670a0e91d 100644
--- a/repoman/lib/repoman/argparser.py
+++ b/repoman/lib/repoman/argparser.py
@@ -164,6 +164,13 @@ def parse_args(argv, repoman_default_opts):
'A space separated list of arches used to '
'filter the selection of profiles for dependency 
checks'))
 
+   parser.add_argument(
+   '--include-profiles',
+   dest='include_profiles', metavar='PROFILES', action='append',
+   help=(
+   'A space separated list of profiles used to '
+   'define the selection of profiles for dependency 
checks'))
+
parser.add_argument(
'-d', '--include-dev', dest='include_dev', action='store_true',
default=False,

diff --git a/repoman/lib/repoman/modules/scan/depend/__init__.py 
b/repoman/lib/repoman/modules/scan/depend/__init__.py
index c3cc0ddeb..9068760bb 100644
--- a/repoman/lib/repoman/modules/scan/depend/__init__.py
+++ b/repoman/lib/repoman/modules/scan/depend/__init__.py
@@ -19,7 +19,8 @@ module_spec = {
'func_desc': {
},
'mod_kwargs': ['qatracker', 'portdb', 'profiles', 
'options',
-   'repo_metadata', 'repo_settings', 
'include_arches', 'caches',
+   'repo_metadata', 'repo_settings', 
'include_arches',
+   'include_profiles', 'caches',
'repoman_incrementals', 'env', 'have', 
'dev_keywords'
],
'func_kwargs': {

diff --git a/repoman/lib/repoman/modules/scan/depend/profile.py 
b/repoman/lib/repoman/modules/scan/depend/profile.py
index d980f4eca..39d8b550c 100644
--- a/repoman/lib/repoman/modules/scan/depend/profile.py
+++ b/repoman/lib/repoman/modules/scan/depend/profile.py
@@ -33,6 +33,7 @@ class ProfileDependsChecks(ScanBase):
@param options: cli options
@param repo_settings: repository settings instance
@param include_arches: set
+   @param include_profiles: set
@param caches: dictionary of our caches
@param repoman_incrementals: tuple
@param env: the environment
@@ -46,6 +47,7 @@ class ProfileDependsChecks(ScanBase):
self.options = kwargs.get('options')
self.repo_settings = kwargs.get('repo_settings')
self.include_arches = kwargs.get('include_arches')
+   self.include_

[gentoo-commits] proj/portage:master commit in: repoman/man/

2018-03-29 Thread Zac Medico
commit: 47a3f7e905b3ba252659fa1a98071d03a1560807
Author: zlg  gentoo  org>
AuthorDate: Thu Mar 29 22:31:22 2018 +
Commit: Zac Medico  gentoo  org>
CommitDate: Fri Mar 30 02:31:44 2018 +
URL:https://gitweb.gentoo.org/proj/portage.git/commit/?id=47a3f7e9

repoman man/repoman.1: Add "BEHAVIOR" section (fix bug 650520)

The manpage references "directory tree", but doesn't explicitly outline
the expected behavior when run anywhere above the package directory
level.

Exact name of section, location within the manpage, and/or wording open
to suggestions.

Bug: https://bugs.gentoo.org/650520
Requested-by: zlg  gentoo.org>
Signed-off-by: zlg  gentoo.org>

 repoman/man/repoman.1 | 8 +++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/repoman/man/repoman.1 b/repoman/man/repoman.1
index db6526b5e..6a591e59d 100644
--- a/repoman/man/repoman.1
+++ b/repoman/man/repoman.1
@@ -1,4 +1,4 @@
-.TH "REPOMAN" "1" "Jun 2017" "Repoman VERSION" "Repoman"
+.TH "REPOMAN" "1" "Mar 2018" "Repoman VERSION" "Repoman"
 .SH NAME
 repoman \- Gentoo's program to enforce a minimal level of quality assurance in
 packages added to the portage tree
@@ -437,6 +437,12 @@ not directly.
 .B wxwidgets.eclassnotused
 Ebuild DEPENDs on x11-libs/wxGTK without inheriting wxwidgets.eclass. Refer to
 bug #305469 for more information.
+.SH "BEHAVIOR"
+When invoked from a level higher than a package directory, \fBrepoman\fR
+will recurse through a directory tree and execute the given command
+on a per\-package basis, e.g. \fBrepoman manifest\fR at the root of
+the repository will generate manifests for every package within the
+repository.
 .SH "REPORTING BUGS"
 Please report bugs via https://bugs.gentoo.org/
 .SH AUTHORS



[gentoo-commits] proj/portage:master commit in: repoman/man/, repoman/pym/repoman/

2017-09-11 Thread Michał Górny
commit: 342d3d5479b08d97635bc09615083b5a4493eb92
Author: Michał Górny  gentoo  org>
AuthorDate: Sat Sep  2 21:55:08 2017 +
Commit: Michał Górny  gentoo  org>
CommitDate: Mon Sep 11 20:32:44 2017 +
URL:https://gitweb.gentoo.org/proj/portage.git/commit/?id=342d3d54

repoman: Unify usage of --bug and --closes options

Replace the different logic used for --bug and --closes options with
a uniform solution. As a result, --closes now interprets numbers
as Gentoo bug numbers rather than GitHub pull request numbers.

This change is mostly done since the 'Closes' tag now started being used
to resolve Gentoo bugs. While changing the logic could be confusing,
it has not made it into a release yet and the GitHub default would not
be very useful anyway.

After all, repoman is normally used to commit the changes before a pull
request is created, which implies that the user does not know the pull
request number yet. The 'Closes' tag for pull request is usually added
by the reviewer before merging, using 'git --amend' since repoman has
no amending option. That considered, it is quite unlikely that anyone
would find --closes with pull request numbers useful.

 repoman/man/repoman.1  |  7 ---
 repoman/pym/repoman/actions.py | 17 -
 2 files changed, 8 insertions(+), 16 deletions(-)

diff --git a/repoman/man/repoman.1 b/repoman/man/repoman.1
index a49c72c0d..41df8ed2f 100644
--- a/repoman/man/repoman.1
+++ b/repoman/man/repoman.1
@@ -31,9 +31,10 @@ is forced for known bug trackers.
 \fB-c\fR, \fB--closes\fR
 Include a \fBCloses\fR tag in the commit message footer that can be used
 to close pull requests (and issues) on GitHub and other compatible
-services (GitLab, Bitbucket). The argument can be either a PR number for
-the gentoo/gentoo GitHub repository or a full PR/bug URL. For bug URLs,
-HTTPS is forced automatically for known bug/PR trackers.
+services (GitLab, Bitbucket). The argument can be either a Gentoo bug
+number or a full PR/bug URL. Gentoo bug URLs are automatically shortened
+to the canonical \fBhttps://bugs.gentoo.org/NN\fR form, and HTTPS
+is forced for known bug trackers.
 .TP
 \fB\-\-digest=\fR
 Automatically update Manifest digests for modified files. This

diff --git a/repoman/pym/repoman/actions.py b/repoman/pym/repoman/actions.py
index 2112299c0..b76a6e466 100644
--- a/repoman/pym/repoman/actions.py
+++ b/repoman/pym/repoman/actions.py
@@ -357,7 +357,9 @@ class Actions(object):
 
# Common part of commit footer
commit_footer = "\n"
-   for bug in self.options.bug:
+   for tag, bug in chain(
+   (('Bug', x) for x in self.options.bug),
+   (('Closes', x) for x in self.options.closes)):
# case 1: pure number NN
if bug.isdigit():
bug = 'https://bugs.gentoo.org/%s' % (bug, )
@@ -374,18 +376,7 @@ class Actions(object):
elif (purl.scheme == 'http' and
purl.netloc in 
self.https_bugtrackers):
bug = urlunsplit(('https',) + purl[1:])
-   commit_footer += "Bug: %s\n" % (bug, )
-
-   for closes in self.options.closes:
-   # case 1: pure number 
-   if closes.isdigit():
-   closes = 
'https://github.com/gentoo/gentoo/pull/%s' % (closes, )
-   else:
-   purl = urlsplit(closes)
-   # case 2: bug tracker w/ http -> https
-   if purl.netloc in self.https_bugtrackers:
-   closes = urlunsplit(('https',) + 
purl[1:])
-   commit_footer += "Closes: %s\n" % (closes, )
+   commit_footer += "%s: %s\n" % (tag, bug)
 
if dco_sob:
commit_footer += "Signed-off-by: %s\n" % (dco_sob, )



[gentoo-commits] proj/portage:master commit in: repoman/man/

2017-09-11 Thread Michał Górny
commit: ee39ad638e341de937fc1e5ccf5dc653f641b4e9
Author: Michał Górny  gentoo  org>
AuthorDate: Sat Sep  2 19:08:45 2017 +
Commit: Michał Górny  gentoo  org>
CommitDate: Mon Sep 11 20:32:45 2017 +
URL:https://gitweb.gentoo.org/proj/portage.git/commit/?id=ee39ad63

repoman: Update --bug/--closes description for bugs.g.o hooks

Update the description for --bug and --closes to account for the fact
that the tags are now handled by git hooks on Gentoo Infra, and cause
actions on Gentoo Bugzilla.

Closes: https://github.com/gentoo/portage/pull/203
Reviewed-by: Zac Medico  gentoo.org>

 repoman/man/repoman.1 | 13 +++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/repoman/man/repoman.1 b/repoman/man/repoman.1
index 41df8ed2f..813bdae21 100644
--- a/repoman/man/repoman.1
+++ b/repoman/man/repoman.1
@@ -27,14 +27,23 @@ be either a Gentoo bug number or a full bug URL (either 
Gentoo
 or upstream). Gentoo bug URLs are automatically shortened to
 the canonical \fBhttps://bugs.gentoo.org/NN\fR form, and HTTPS
 is forced for known bug trackers.
+
+When pushing to the Gentoo repository, the reference to the commit
+will be automatically added as a comment on the bug.
 .TP
 \fB-c\fR, \fB--closes\fR
 Include a \fBCloses\fR tag in the commit message footer that can be used
-to close pull requests (and issues) on GitHub and other compatible
-services (GitLab, Bitbucket). The argument can be either a Gentoo bug
+to close bugs and pull requests. The argument can be either a Gentoo bug
 number or a full PR/bug URL. Gentoo bug URLs are automatically shortened
 to the canonical \fBhttps://bugs.gentoo.org/NN\fR form, and HTTPS
 is forced for known bug trackers.
+
+When pushing to the Gentoo repository, the referenced bugs will be
+closed as RESOLVED/FIXED automatically with a comment referencing
+the commit. Furthermore, GitHub pull requests will be closed as well
+due to the automatic GitHub mirroring.
+
+Other platforms using the \fBCloses\fR tag include GitLab and Bitbucket.
 .TP
 \fB\-\-digest=\fR
 Automatically update Manifest digests for modified files. This



[gentoo-commits] proj/portage:master commit in: repoman/man/

2017-06-24 Thread Zac Medico
commit: 02eeaa4bd0c5bb4a22120bb5aca378cb0935d5c7
Author: Zac Medico  gentoo  org>
AuthorDate: Sat Jun 24 18:28:29 2017 +
Commit: Zac Medico  gentoo  org>
CommitDate: Sat Jun 24 18:29:39 2017 +
URL:https://gitweb.gentoo.org/proj/portage.git/commit/?id=02eeaa4b

repoman/man/repoman.1: refer to the vcs instead of cvs

Reported-by: Devan Franchini  gentoo.org>

 repoman/man/repoman.1 | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/repoman/man/repoman.1 b/repoman/man/repoman.1
index 78e4b7275..4101c283f 100644
--- a/repoman/man/repoman.1
+++ b/repoman/man/repoman.1
@@ -1,4 +1,4 @@
-.TH "REPOMAN" "1" "Feb 2017" "Repoman VERSION" "Repoman"
+.TH "REPOMAN" "1" "Jun 2017" "Repoman VERSION" "Repoman"
 .SH NAME
 repoman \- Gentoo's program to enforce a minimal level of quality assurance in
 packages added to the portage tree
@@ -254,7 +254,7 @@ An ebuild was added but the ChangeLog was not modified
 Missing ChangeLog files
 .TP
 .B changelog.notadded
-ChangeLogs that exist but have not been added to cvs
+ChangeLogs that exist but have not been added to the vcs
 .TP
 .B dependency.bad
 User-visible ebuilds with unsatisfied dependencies (matched against *visible*
@@ -317,7 +317,7 @@ Ebuild files that do not have the same name as their parent 
directory
 Placing 'die' inside ( ) prints an error, but doesn't stop the ebuild.
 .TP
 .B ebuild.notadded
-Ebuilds that exist but have not been added to cvs
+Ebuilds that exist but have not been added to the vcs
 .TP
 .B ebuild.output
 A simple sourcing of the ebuild produces output; this breaks ebuild policy.



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

2017-02-12 Thread Zac Medico
commit: 04e5f8dee2130901386f4f1b65328bbf0b8104c1
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sun Feb 12 16:21:51 2017 +
Commit: Zac Medico  gentoo  org>
CommitDate: Sun Feb 12 17:22:45 2017 +
URL:https://gitweb.gentoo.org/proj/portage.git/commit/?id=04e5f8de

repoman: Check for empty files in filesdir.

This checks for files with zero size in filesdir. The QA script at
https://qa-reports.gentoo.org/output/find-binary-files.txt reports a
couple of them which at least in part are blunders.

 repoman/man/repoman.1 | 5 -
 repoman/pym/repoman/modules/scan/fetch/fetches.py | 3 +++
 repoman/pym/repoman/qa_data.py| 3 +++
 3 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/repoman/man/repoman.1 b/repoman/man/repoman.1
index 3b3aec27e..9b106906f 100644
--- a/repoman/man/repoman.1
+++ b/repoman/man/repoman.1
@@ -1,4 +1,4 @@
-.TH "REPOMAN" "1" "Dec 2016" "Repoman VERSION" "Repoman"
+.TH "REPOMAN" "1" "Feb 2017" "Repoman VERSION" "Repoman"
 .SH NAME
 repoman \- Gentoo's program to enforce a minimal level of quality assurance in
 packages added to the portage tree
@@ -328,6 +328,9 @@ error or digest verification failure.
 .B file.UTF8
 File is not UTF8 compliant
 .TP
+.B file.empty
+Empty file in the files directory
+.TP
 .B file.executable
 Ebuilds, digests, metadata.xml, Manifest, and ChangeLog do not need the
 executable bit

diff --git a/repoman/pym/repoman/modules/scan/fetch/fetches.py 
b/repoman/pym/repoman/modules/scan/fetch/fetches.py
index 9ee3c652a..241cfaa7b 100644
--- a/repoman/pym/repoman/modules/scan/fetch/fetches.py
+++ b/repoman/pym/repoman/modules/scan/fetch/fetches.py
@@ -130,6 +130,9 @@ class FetchChecks(ScanBase):
self.qatracker.add_error(
"file.size", "(%d KiB) 
%s/files/%s" % (
mystat.st_size // 1024, 
xpkg, y))
+   elif mystat.st_size == 0:
+   self.qatracker.add_error(
+   "file.empty", "%s/files/%s" % 
(xpkg, y))
 
index = 
self.repo_settings.repo_config.find_invalid_path_char(y)
if index != -1:

diff --git a/repoman/pym/repoman/qa_data.py b/repoman/pym/repoman/qa_data.py
index 29a95abf6..0dc32789f 100644
--- a/repoman/pym/repoman/qa_data.py
+++ b/repoman/pym/repoman/qa_data.py
@@ -67,6 +67,8 @@ qahelp = {
"Files in the files directory must be under 20 KiB"),
"file.size.fatal": (
"Files in the files directory must be under 60 KiB"),
+   "file.empty": (
+   "Empty file in the files directory"),
"file.name": (
"File/dir name must be composed"
" of only the following chars: %s " % allowed_filename_chars),
@@ -262,6 +264,7 @@ qawarnings = set((
"ebuild.minorsyn",
"ebuild.badheader",
"ebuild.patches",
+   "file.empty",
"file.size",
"inherit.unused",
"inherit.deprecated",



[gentoo-commits] proj/portage:master commit in: repoman/man/

2016-12-05 Thread Brian Dolbec
commit: 162ac7671b85ee0e09a73680031f6d2795ec91bd
Author: Brian Dolbec  gentoo  org>
AuthorDate: Mon Dec  5 19:31:45 2016 +
Commit: Brian Dolbec  gentoo  org>
CommitDate: Mon Dec  5 20:35:36 2016 +
URL:https://gitweb.gentoo.org/proj/portage.git/commit/?id=162ac767

repoman/man/repoman.1: Update man page

 repoman/man/repoman.1 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/repoman/man/repoman.1 b/repoman/man/repoman.1
index 8df3207..f99197b 100644
--- a/repoman/man/repoman.1
+++ b/repoman/man/repoman.1
@@ -1,4 +1,4 @@
-.TH "REPOMAN" "1" "Jun 2015" "Portage VERSION" "Portage"
+.TH "REPOMAN" "1" "Dec 2016" "Repoman VERSION" "Repoman"
 .SH NAME
 repoman \- Gentoo's program to enforce a minimal level of quality assurance in
 packages added to the portage tree



[gentoo-commits] proj/portage:master commit in: repoman/man/, repoman/pym/repoman/

2016-09-16 Thread Brian Dolbec
commit: 3aa9b7ad3e12d0c4b1177d6a52a02ae14edff3d5
Author: Brian Dolbec  gentoo  org>
AuthorDate: Thu Sep 15 22:28:47 2016 +
Commit: Brian Dolbec  gentoo  org>
CommitDate: Fri Sep 16 19:36:09 2016 +
URL:https://gitweb.gentoo.org/proj/portage.git/commit/?id=3aa9b7ad

repoman: Update man page and commitmsgfile option

Use .lower() on the leading 9 characters of the message text for the 
substitution
test.
Update the man page for this new templating capability.

 repoman/man/repoman.1  | 6 +-
 repoman/pym/repoman/actions.py | 2 +-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/repoman/man/repoman.1 b/repoman/man/repoman.1
index 4a9122e..8df3207 100644
--- a/repoman/man/repoman.1
+++ b/repoman/man/repoman.1
@@ -109,7 +109,11 @@ Behave as if no package.mask entries exist (not allowed 
with commit mode)
 Adds a commit message via the command line
 .TP
 \fB-M\fR, \fB--commitmsgfile\fR
-Adds a commit message from the specified file
+Adds a commit message from the specified file.  This option also will perform
+an automatic text substitution of a leading "cat/pkg: " string (upper or lower
+case) with the actual category/package prefix as defined by the required 
message
+format.  Use this option for templating a common commit message for multiple
+package updates.
 .TP
 \fB-V\fR, \fB--version\fR
 Show version info

diff --git a/repoman/pym/repoman/actions.py b/repoman/pym/repoman/actions.py
index 0534c29..796dbaf 100644
--- a/repoman/pym/repoman/actions.py
+++ b/repoman/pym/repoman/actions.py
@@ -108,7 +108,7 @@ class Actions(object):
" --commitmsgfile='%s'\n" % 
self.options.commitmsgfile)
else:
raise
-   if commitmessage[:9] in ("cat/pkg: ", "CAT/PKG: "):
+   if commitmessage[:9].lower() in ("cat/pkg: ",):
commitmessage = self.msg_prefix() + 
commitmessage[9:]
 
if not commitmessage or not commitmessage.strip():