writemsg_level('!!!
> utime(\'%s\', (%s, %s)): %s\n' %
> + (path, max_mtime,
> max_mtime, e),
> +
> level=logging.WARNING, noiselevel=-1)
> def sign(self):
> """ Sign the Manifest """
Looks fine :)
--
Brian Dolbec
t; > it. This commit adds a test ebuild that violates the PMS (with
> > respect to ROOT) in several ways.
>
> This looks good to me, very thorough. I say go ahead and push it.
>
I agree, and thank you.
I'll work on adding this check to repoman after I finish getting some
in progress changes done so the new repoman code can be released.
--
Brian Dolbec
Overall I like it, but I'll let others review the actual code
implementation since I'm not an experienced "C" coder. In 30
years, I never did more than hello world a few times in C. And the
pascal coding I did in College is more like python than c.
--
Brian Dolbec
On Mon, 16 May 2016 12:20:00 -0700
Zac Medico wrote:
> On 03/14/2016 11:36 AM, Brian Dolbec wrote:
> > On Mon, 14 Mar 2016 11:26:23 +0100
> > Alexander Berntsen wrote:
> >
> >> -BEGIN PGP SIGNED MESSAGE-
> >> Hash: SHA512
> >
> &g
ffect, we introduce the machinary for future
> >> modules in setup.py.
> > Split it into two commits.
> >
> Read the code, you really can't.
>
I think he means the setup.py change that adds the extension
capability, then add the locale changes and new module.
That seems like a logical split to me.
--
Brian Dolbec
this because I found _unicode_decode() which does what I
> want. Thanks for the clue. BTW, why are those functions/classes in
> pym/portage/__init__.py? All that code in there is just cluttering
> __init__.py. Shouldn't that stuff be pulled into a separate file and
> imported cleanly?
>
Yes, there is generally far too much code in many of the __init__.py's.
There are many with over 1K LOC
--
Brian Dolbec
x27;ll let him be the judge.
> - --
> Alexander
> berna...@gentoo.org
I agree that all 3 look good, But I would say that the other changes
Michal proposed should be their own commit(s). This being the first,
the others each adding to it.
- --
Brian D
t:Portage/Meetings#Agenda>
> - --
> Alexander
> berna...@gentoo.org
Here it the full list of times:
WhenIsGood Results
Event: Portage meeting
Date: June 7, 2016
Time: 2:00:00 PM
Can make it:Brian Dolbec , bernalex, mgorny
Add to calendar:iCal export
(Ou
lt;https://wiki.gentoo.org/wiki/Project:Portage/Meetings>
> - --
> Alexander
> berna...@gentoo.org
> https://secure.plaimi.net/~alexander
>
Yeah, will do...
Sorry, I slept in... something that doesn't happen often.
- --
Brian Dolbec
-BEGIN PGP SIGNATURE-
Versio
me rules for committing as the tree does.
signed commits, signed pushes
- --
Brian Dolbec
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.1
iQJ8BAEBCgBmBQJXYWniXxSAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXRBNUQ3Qzc0RTA4MUNDNzBEQjRBNEFBRjVG
QkJEMDg
ot;DEPEND"):
> qacat = "dependency.syntax"
> diff --git a/repoman/pym/repoman/qa_data.py
> b/repoman/pym/repoman/qa_data.py index b9475e8..48ab389 100644
> --- a/repoman/pym/repoman/qa_data.py
> +++ b/repoman/pym/repoman/qa_data.py
> @@ -58,6 +58,8 @@ qahelp = {
> "Ebuild has a dependency that refers to an unknown
> package" " (which may be valid if it is a blocker for a
> renamed/removed package," " or is an alternative choice provided by
> an overlay)"),
> + "dependency.badslotop": (
> + "RDEPEND contains ':=' slot operator under '||'
> dependency."), "file.executable": (
> "Ebuilds, digests, metadata.xml, Manifest, and
> ChangeLog do not need" " the executable bit"),
--
Brian Dolbec
quot; in the summary. You may have
found this via your repoman changes, but this is a portage namespace
file. Plus only one file.
so...
portage/dep/depcheck.py: Whitespace, add indentation level after newline
--
Brian Dolbec
On Sat, 18 Jun 2016 20:37:06 +0100
Sergei Trofimovich wrote:
> On Sat, 18 Jun 2016 11:02:53 -0700
> Brian Dolbec wrote:
>
> > > + if runtime:
> > > + try:
> > > + # to find u
27;.format(backup_dblink.mycpv))):
> + if binpkg.build_time == build_time:
> + return os.EX_OK
>
> self.lockdb()
> try:
looks fine to me, I trust it'll do the job :)
--
Brian Dolbec
gt; necessary for visibility # filtering. Anything else can be discarded
> to reduce memory consumption.
> - if self.options.mode != "manifest" and
> self.options.digest != "y":
> + if not self.generate_manifest:
> # Don't do this when generating manifests,
> since that uses # additional keys if spawn_nofetch is called
> (RESTRICT and # DEFINED_PHASES).
> @@ -286,8 +292,8 @@ class Scanner(object):
> if self.kwargs['checks']['ebuild_notadded']:
> self.vcs_settings.status.check(checkdir,
> checkdir_relative, xpkg)
> - manifester = manifest.Manifest(**self.kwargs)
> - manifester.update_manifest(checkdir)
> + if self.generate_manifest:
> +
> manifest.Manifest(**self.kwargs).update_manifest(checkdir)
> checkdirlist = os.listdir(checkdir)
> dynamic_data = {
Works for me :)
--
Brian Dolbec
> b/repoman/pym/repoman/qa_data.py index b9475e8..48ab389 100644
> --- a/repoman/pym/repoman/qa_data.py
> +++ b/repoman/pym/repoman/qa_data.py
> @@ -58,6 +58,8 @@ qahelp = {
> "Ebuild has a dependency that refers to an unknown
> package" " (which may be valid if it is a blocker for a
> renamed/removed package," " or is an alternative choice provided by
> an overlay)"),
> + "dependency.badslotop": (
> + "RDEPEND contains ':=' slot operator under '||'
> dependency."), "file.executable": (
> "Ebuilds, digests, metadata.xml, Manifest, and
> ChangeLog do not need" " the executable bit"),
I've merged V4 and it is in the 2.3.0 release.
Thank you
--
Brian Dolbec
. Honestly, people who can't be exposed to
> options like this should not have root access.
yeah, the development work I've been doing for work has me making a
bunch of new ebuilds for pkgs not yet in the tree.
This feature would make it easier for sure.
I also like the idea of this feature.
I don't think there will be many users killing their system by
overusing it or adding it to EMERGE_DEFAULT_OPTS.
--
Brian Dolbec
> emerge_config.trees)
> >> + settings, trees, mtimedb = emerge_config
> >> +
> >
> > The Package instances inside the depgraph are still going to
> > reference the old RootConfig instances, so I'll update the patch to
> > solve that somehow.
>
> Fixed in v2 by making load_emerge_config update existing RootConfig
> instances in-place.
looks fine to me
--
Brian Dolbec
d),
> **self.spawn_kwargs)
> +
> + if exitcode == os.EX_OK and self.repo.sync_depth is
> not None:
> + reset_cmd = [self.bin_command, 'reset',
> '--hard', remote_branch]
> + if quiet:
> + reset_cmd.append('--quiet')
> + exitcode = subprocess.call(reset_cmd,
> +
> cwd=portage._unicode_encode(self.repo.location)) +
> if exitcode != os.EX_OK:
> msg = "!!! git pull error in %s" %
> self.repo.location self.logger(self.xterm_titles, msg)
looks fine
--
Brian Dolbec
; +
> (len(selected_nodes),), noiselevel=-1)
> +
> cycle_digraph.debug_print()
> +
> writemsg("\n", noiselevel=-1) +
> + if leaves:
> +
> writemsg("runtime cycle leaf: %s\n\n" %
> +
> (selected_nodes[0],), noiselevel=-1)
> if prefer_asap and
> asap_nodes and not selected_nodes: # We failed to find any asap nodes
> to merge, so ignore diff --git
As usual, we are not resolver guru's, but the code changes look decent
enough :)
LGTM
--
Brian Dolbec
- badprovsyntax = len([z for z in type_list if z == "PROVIDE"])
> - baddepsyntax = len(type_list) != badlicsyntax + badprovsyntax
> + badlicsyntax = len([z for z in badsyntax if z[0] ==
> "LICENSE"])
> + badprovsyntax = len([z for z in badsyntax if z[0] ==
> "PROVIDE"])
> + baddepsyntax = len(badsyntax) != badlicsyntax + badprovsyntax
> badlicsyntax = badlicsyntax > 0
> #badprovsyntax = badprovsyntax > 0
>
looks good, thanks for the fast fix Zac.
--
Brian Dolbec
On Wed, 14 Sep 2016 17:01:27 -0400
"Anthony G. Basile" wrote:
> As per Brian's request on IRC, here's the patchset for adding a C
> module to help check locales.
>
Merged
--
Brian Dolbec
From 08f6d22b366c8dc2968573ebc4fd4f0401ea67b7 Mon Sep 17 00:00:00 2001
From: Brian Dolbec
Date: Thu, 15 Sep 2016 12:45:10 -0700
Subject: [PATCH] repoman: Update man page and commitmsgfile option
Use .lower() on the leading message 9 charachters of hte message text for the
substitution
test
On Thu, 15 Sep 2016 12:50:13 -0700
Brian Dolbec wrote:
> From 08f6d22b366c8dc2968573ebc4fd4f0401ea67b7 Mon Sep 17 00:00:00 2001
> From: Brian Dolbec
> Date: Thu, 15 Sep 2016 12:45:10 -0700
> Subject: [PATCH] repoman: Update man page and commitmsgfile option
>
> Use .lowe
On Thu, 15 Sep 2016 14:47:31 -0700
Zac Medico wrote:
> On 09/15/2016 12:50 PM, Brian Dolbec wrote:
> >
> > From 08f6d22b366c8dc2968573ebc4fd4f0401ea67b7 Mon Sep 17 00:00:00
> > 2001 From: Brian Dolbec
> > Date: Thu, 15 Sep 2016 12:45:10 -0700
> > Subject: [PA
tings.pop('PORTAGE_EBUILD_EXIT_FILE', None)
if self.phase not in self._phases_without_builddir:
if 'PORTAGE_BUILDDIR_LOCKED' not in
self.settings:
--
Brian Dolbec
3.2.
Sorry, been out all day, and again tomorrow...
Yeah, looks fine
--
Brian Dolbec
ext Friday, unless anyone
> objects to this.
> - --
> Alexander
> alexan...@plaimi.net
> https://secure.plaimi.net/~alexander
>
>
Of course I nominate Alexander again :)
Sure, voting next week works for me...
- --
Brian Dolbec
vote for Brian too. Brian! :)
>
> ++Brian.
>
hmm, seems I've been drafted :)
--
Brian Dolbec
pgpSl0knogBs1.pgp
Description: OpenPGP digital signature
?id=597918
> ---
> bin/emerge-webrsync | 51
> +++
> man/make.conf.5 | 6 -- 2 files changed, 51 insertions(+), 6
> deletions(-)
>
LGTM
--
Brian Dolbec
suggested numerous
> times by Martin Väth.
I suspect we won't hear the end of our breakage of a perfectly working
git module until maybe we add enough git-sync-options configurable in
repos.conf to account for every possible file system and every possible
repo useage/abuse-age...
Maybe we should just ship several versions of a git module... one for
every use case ;) (kidding)
--
Brian Dolbec
On Thu, 3 Nov 2016 09:10:14 -0700
Zac Medico wrote:
> On 11/02/2016 11:17 PM, Brian Dolbec wrote:
> > On Wed, 2 Nov 2016 21:57:09 -0700
> > Zac Medico wrote:
> >
> >> On 11/02/2016 05:17 PM, Zac Medico wrote:
> >>> On 11/02/2016 02:09 PM, Mike Gilb
; + update_index_cmd = [self.bin_command,
> > 'update-index', '-q', '--unmerged', '--refresh']
> > exitcode =
> > subprocess.call(update_index_cmd,
> > cwd=portage._unicode_encode(self.repo.location))
>
> LGTM.
+1 LGTM too
--
Brian Dolbec
: https://bugs.gentoo.org/show_bug.cgi?id=597752
>
> Any feedback?
Sorry, I was behind on emails from the weekend.
This stuff is dabbling into the dep calc voodo ;) But I ddin't see any
typo's :) I trust you got it right.
--
Brian Dolbec
ge-2.3.2 when the time
> comes?
I'm not sure. Do we -r1 it adding a patch or two and ask it be stabled?
--
Brian Dolbec
On Fri, 4 Nov 2016 13:53:02 -0700
Zac Medico wrote:
> On 11/04/2016 01:43 PM, Michał Górny wrote:
> > On Fri, 4 Nov 2016 13:19:39 -0700
> > Zac Medico wrote:
> >
> >> On 11/04/2016 01:14 PM, Brian Dolbec wrote:
> >>> On Thu, 3 Nov 2
On Sat, 5 Nov 2016 13:56:44 +0100
Manuel Rüger wrote:
> On 05.11.2016 00:15, Zac Medico wrote:
> > On 11/04/2016 03:55 PM, Zac Medico wrote:
> >> On 11/04/2016 03:47 PM, Brian Dolbec wrote:
> >>> On Fri, 4 Nov 2016 13:53:02 -0700
> >>> Zac Medico wr
s://gitweb.gentoo.org/proj/portage.git/commit/?id=f5d258656de3db54af06fbca9b8da5217d3802f4
> https://gitweb.gentoo.org/proj/portage.git/commit/?id=f77fcd6b0b4ebb49ca62f5767cd5c931127c3dbb
> https://gitweb.gentoo.org/proj/portage.git/commit/?id=d075422a8902617833ec945d94beb0bb334d44c9
>
Yeah, this will be best, go for it.
--
Brian Dolbec
KeyError:
> + pass
> + else:
> + continue
> +
> # emulate the Element.itertext()
> method from python-2.7 inner_text = []
> stack = []
third time's the charm ;) LGTM
--
Brian Dolbec
t])
> + all_match_previous =
> all(a.match(highest_cpv)
> + for a in
> slot_atoms[avail_slot])
> + if all_match_previous and not
> all_match_current:
> + continue
> +
&
tage/package/ebuild/digestcheck.py | 2 +-
> pym/portage/repository/config.py | 18 ++
> 4 files changed, 27 insertions(+), 8 deletions(-)
>
LGTM
--
Brian Dolbec
return 1
> + fi
> else
> __vecho "unpack ${x}: file
> format not recognized. Ignoring." fi
looks good, thanks
--
Brian Dolbec
ference
> with ebuilds that install
> + # files with portage group
> permissions (see bug 600804).
> + if (mystat.st_uid, mystat.st_gid) !=
> (portage_uid, portage_gid): continue
> myuid = -1
> mygid = -1
looks good to me
--
Brian Dolbec
TAGE_BUILDDIR'],
> '.ebuild_changed'),
> 'w').close()
> -if 'digest' in tmpsettings.features:
> - if pargs and pargs[0] not in ("digest", "manifest"):
> - pargs = ['digest'] + pargs
> - # We only need to build digests on the first pass.
> - tmpsettings.features.discard('digest')
> -
> checked_for_stale_env = False
>
> for arg in pargs:
looks fine to me
--
Brian Dolbec
rite("# " + file_name)
return last_file_path
--
2.9.3
--
Brian Dolbec
From f47e3589761cf27722bae9da55adf022b915b176 Mon Sep 17 00:00:00 2001
From: Brian Dolbec
Date: Tue, 29 Nov 2016 18:25:36 -0800
Subject: [PATCH] egencache: Migrate _special_filename class to
portage.utils.changelog for api use
Requested move by Robin for the new split changelog repo
scripts
ynamic_config._package_tracker.match(
> + root,
> pkg.slot_atom, installed=False))), None)
> if not e_pkg:
> break
LGTM
--
Brian Dolbec
On Sat, 3 Dec 2016 14:20:05 -0800
Zac Medico wrote:
> On 12/03/2016 01:48 PM, Brian Dolbec wrote:
> >
> > From c4a61bebca1cfeb0833cefb2c64be6156bdb8e8d Mon Sep 17 00:00:00
> > 2001 From: "hackers.terabit"
> > Date: Thu, 27 Oct 2016 03:29:16 +
>
On Sat, 3 Dec 2016 14:10:33 -0800
Zac Medico wrote:
> On 12/03/2016 01:49 PM, Brian Dolbec wrote:
> > + if self.file_type_lt(self, other):
> > + return True
> > + elif self.file_type_lt(other, self):
> > + retu
From 1586f1a25c41fb6036a24b47cfa58e3e818b8a58 Mon Sep 17 00:00:00 2001
From: Brian Dolbec
Date: Mon, 5 Dec 2016 11:27:15 -0800
Subject: [PATCH] repoman: Fix versioning system
Repoman had been showing the portage version. Which was the same for the last
release.
Copy the live versions code
On Mon, 5 Dec 2016 11:42:10 -0800
Brian Dolbec wrote:
> From 1586f1a25c41fb6036a24b47cfa58e3e818b8a58 Mon Sep 17 00:00:00 2001
> From: Brian Dolbec
> Date: Mon, 5 Dec 2016 11:27:15 -0800
> Subject: [PATCH] repoman: Fix versioning system
>
> Repoman had been showing the porta
From 5074b2bfb36b6b9117f188588da55de3b5c01435 Mon Sep 17 00:00:00 2001
From: Brian Dolbec
Date: Mon, 5 Dec 2016 11:56:02 -0800
Subject: [PATCH] portage/__init__.py: Fix live versioning to look for portage
tags only
---
pym/portage/__init__.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion
On Mon, 5 Dec 2016 13:00:36 -0800
Zac Medico wrote:
> On 12/05/2016 12:41 PM, Brian Dolbec wrote:
> > From 5074b2bfb36b6b9117f188588da55de3b5c01435 Mon Sep 17 00:00:00
> > 2001 From: Brian Dolbec
> > Date: Mon, 5 Dec 2016 11:56:02 -0800
> > Subject: [PATCH] po
On Mon, 5 Dec 2016 13:10:38 -0800
Zac Medico wrote:
> On 12/05/2016 12:32 PM, Brian Dolbec wrote:
> > On Mon, 5 Dec 2016 11:42:10 -0800
> > Brian Dolbec wrote:
> >
> >> From 1586f1a25c41fb6036a24b47cfa58e3e818b8a58 Mon Sep 17 00:00:00
> >> 2001 From: B
;\n")
>
> + if need_rebuild:
> + msg.append("\n!!! The slot conflict(s) shown
> above involve package(s) which may need to\n")
> + msg.append("!!! be rebuilt in order to solve
> the conflict(s). However, the following\n")
> + msg.append("!!! package(s) cannot be rebuilt
> for the reason(s) shown:\n\n")
> + for ppkg, reason in need_rebuild.items():
> + msg.append("%s%s: %s\n" % (indent,
> ppkg, reason))
> + msg.append("\n")
> +
> + msg.append("\n")
> +
> def get_explanation(self):
> msg = ""
>
Looks good, but did you stay up all night?
--
Brian Dolbec
.errno !=
> errno.ENOENT:
> + raise
> + # File removed
> concurrently.
> + continue
> + entry.multilib_category =
> compute_multilib_category(elf_header)
> + entry.filename =
> entry.filename[root_len:]
> + owner =
> plibs.pop(entry.filename, None)
> + lines.append((owner,
> "scanelf", _unicode(entry))) proc.wait()
> proc.stdout.close()
>
looks fine
--
Brian Dolbec
nces of this class will have missing attributes for
> metadata that
> + has not been passed into the constructor. The missing
> attributes are
> + used to distinguish missing metadata values from undefined
> metadata values.
> + For example, the repo attribute will be missing if the
> 'repository' key
> + is missing from the metadata dictionary.
> """
>
> def __new__(cls, cpv, metadata=None, settings=None,
> eapi=None,
LGTM
--
Brian Dolbec
lected: %s\n" %
> (selected_pkg,), noiselevel=-1)
> + writemsg(" skipped: %s (see unsatisfied
> dependency below)\n"
> + % (pkg,), noiselevel=-1)
>
> for parent, root, atom in parent_atoms:
> self._show_unsatisfied_dep(root,
> atom, myparent=parent)
looks good :)
--
Brian Dolbec
| 8 +-
> .../resolver/test_imagemagick_graphicsmagick.py| 104
> + 2 files changed, 110 insertions(+), 2
> deletions(-) create mode 100644
> pym/portage/tests/resolver/test_imagemagick_graphicsmagick.py
>
LGTM
--
Brian Dolbec
,
> + "metadata.bad",
> "%s/metadata.xml: unused
> local USE-description: '%s'" % (xpkg, myflag))
> return False
Thanks, looks good.
--
Brian Dolbec
On Wed, 4 Jan 2017 14:29:01 -0800
Brian Dolbec wrote:
> On Wed, 4 Jan 2017 13:14:38 -0500
> Mike Gilbert wrote:
>
> > X-Gentoo-Bug: 602002
> > X-Gentoo-Bug-URL: https://bugs.gentoo.org/602002
> > ---
> > repoman/pym/repoman/modules/scan/metadata/pkgmetadata
ge. And we seem to...
> mostly... agree that it should be 'component: Capitalised
> description', not 'component: lowercase description'. (No need to
> email a v2 for something so trivial -- just fix it before pushing.)
hmm, this one never got merged.
I cleaned off the tra
# IPv6
> data = yield from
> reader.readexactly(16) addr = socket.inet_ntop(socket.AF_INET6, data)
looks good
--
Brian Dolbec
uot; ".join(report_options) @@ -351,7 +355,7 @@ class
> Actions(object): unameout += platform.processor()
> else:
> unameout += platform.machine()
> - commit_footer = "\n\n"
> + commit_footer = "\n"
> if dco_sob:
> commit_footer += "Signed-off-by:
> %s\n" % (dco_sob, ) commit_footer += "(Portage version: %s/%s/%s" % \
looks good, you can push it once your enable to the repo...
--
Brian Dolbec
o keep these modules pythonic in the sense that
they return standard True/False for API use. In this case returning
True/False would also make it easy to process the list of rcodes
returned to main()
sys.exit(False in rcodes)
which will reverse the True/False to 0/1 automatically for us and make
it super simple to process a variable length list success/fail results.
--
Brian Dolbec
> + msg.append("PORT_LOGDIR_CLEAN
> command returned %s"
> + % ("%d" % rval if rval else
> "None")) msg.append("See the make.conf(5) man page for "
> "PORT_LOGDIR_CLEAN usage
> instructions.") return msg
Thank you, looks good
--
Brian Dolbec
d.py
> +++ b/pym/portage/emaint/modules/world/world.py
> @@ -65,7 +65,9 @@ class WorldHandler(object):
> errors += ["'%s' is not installed" % x for x
> in self.not_installed] else:
> errors.append(self.world_file + " could not
> be opened for reading")
> - return errors
> + if errors:
> + return (False, errors)
> + return (True, None)
>
> def fix(self, **kwargs):
> onProgress = kwargs.get('onProgress', None)
> @@ -83,7 +85,9 @@ class WorldHandler(object):
> except
> portage.exception.PortageException: errors.append("%s could not be
> opened for writing" % \ self.world_file)
> - return errors
> + if errors:
> + return (False, errors)
> + return (True, None)
> finally:
> world_set.unlock()
>
> diff --git a/pym/portage/tests/emerge/test_simple.py
> b/pym/portage/tests/emerge/test_simple.py
> index b1a2af5..5930f6c 100644
> --- a/pym/portage/tests/emerge/test_simple.py
> +++ b/pym/portage/tests/emerge/test_simple.py
> @@ -382,6 +382,7 @@ pkg_preinst() {
> "PORTAGE_PYTHON" : portage_python,
> "PORTAGE_REPOSITORIES" :
> settings.repositories.config_string(), "PORTAGE_TMPDIR" :
> portage_tmpdir,
> + "PORT_LOGDIR" : portage_tmpdir,
> "PYTHONDONTWRITEBYTECODE" :
> os.environ.get("PYTHONDONTWRITEBYTECODE", ""), "PYTHONPATH" :
> pythonpath, "__PORTAGE_TEST_PATH_OVERRIDE" : fake_bin,
merged :) thank you
--
Brian Dolbec
the make.conf(5) man
> page for " "PORT_LOGDIR_CLEAN usage instructions.")
> return msg
Thanks, applied by hand. Seems it was not rebased onto your previous
patches. My editor also did a bit on whitespace cleanup. So you will
likely have to force your branch to the new master since your commit
will likely not like mine.
--
Brian Dolbec
urn code.
>
> I've pushed a minimal fix:
>
> https://gitweb.gentoo.org/proj/portage.git/commit/?id=23f239134b0290cbe0435e13d8f1b1757c6d8524
>
> It just returns 1 on failure. Would it really be useful to preserve
> the returncode from the first failed repo? Probably not.
Thanks Alexandru, Zac.
--
Brian Dolbec
d in the main process.
> > + bool(groups)
> > +
> > parent_pid = os.getpid()
> > pid = None
> > try:
> >
>
> Pushed:
>
> https://gitweb.gentoo.org/proj/portage.git/commit/?id=ccf975296daec92d376c4989e5ffb2a6cdbe8a2d
Sorry, it's been hard to keep up with email last few days, but yeah,
this is a trivial patch. I know it's been a bastard to track down the
source of the problem. Thanks
--
Brian Dolbec
@ -85,6 +85,11 @@ pkg_setup() {
> python_prepare_all() {
> distutils-r1_python_prepare_all
>
> + if use native-extensions; then
> + printf "[build_ext]\nportage-ext-modules=true" >> \
> + setup.cfg || die
> + fi
> +
> if ! use ipc ; then
> einfo "Disabling ipc..."
> sed -e "s:_enable_ipc_daemon =
> True:_enable_ipc_daemon = False:" \
looks good :)
--
Brian Dolbec
.class
> +*.so
> /build
> /tags
> +setup.cfg
>
> repoman/build
looks good, push please :)
--
Brian Dolbec
multiline = multiline[:-2] + line
> - if not line_escaped.endswith('\0'):
> + if not line_escaped:
> line = multiline
> num = multinum
> multiline = None
> else:
> continue
> else:
> - if line_escaped.endswith('\0'):
> + if line_escaped:
> multinum = num
> multiline = line
> continue
Code seems fine to me, I trust you ;)
--
Brian Dolbec
27;_', '-'),
> d), level=self.logger.ERROR, noiselevel=-1)
> else:
> if d == 0:
> d = None
> - self.repo.sync_depth = d
> + setattr(self.repo, attr, d)
>
>
> module_spec = {
> diff --git a/pym/portage/sync/modules/git/git.py
> b/pym/portage/sync/modules/git/git.py index 02eeb16..d5400d5 100644
> --- a/pym/portage/sync/modules/git/git.py
> +++ b/pym/portage/sync/modules/git/git.py
> @@ -52,7 +52,9 @@ class GitSync(NewBase):
> git_cmd_opts = ""
> if self.settings.get("PORTAGE_QUIET") == "1":
> git_cmd_opts += " --quiet"
> - if self.repo.sync_depth is not None:
> + if self.repo.clone_depth is not None:
> + git_cmd_opts += " --depth %d" %
> self.repo.clone_depth
> + elif self.repo.sync_depth is not None:
> git_cmd_opts += " --depth %d" %
> self.repo.sync_depth if
> self.repo.module_specific_options.get('sync-git-clone-extra-opts'):
> git_cmd_opts += " %s" %
> self.repo.module_specific_options['sync-git-clone-extra-opts']
hmm, I might be out of sync, but if this isn't merged already, looks
fine.
--
Brian Dolbec
pend((pkg,
> > source_file))
> > + else:
> > + atoms.append(pkg)
> > + continue
> > pkg = pkg[1:]
> > - if pkg[:1] == '*' and mybasename == 'packages':
> > + if pkg[:1] == '*' and is_packages_file:
> > pkg = pkg[1:]
> > try:
> > pkg = Atom(pkg,
> > allow_wildcard=allow_wildcard,
>
--
Brian Dolbec
sts/resolver/ResolverPlayground.py | 5 +
> pym/portage/tests/resolver/test_bdeps.py | 215
> +++ 6 files changed, 266 insertions(+), 5
> deletions(-) create mode 100644
Looks fine, merge please :)
--
Brian Dolbec
as e:
> +
> missing_white_space_check(token, pos) raise InvalidDependString(
> _("Invalid
> token '%s', token %s") % (token, pos+1))
looks good :)
--
Brian Dolbec
ot;app-misc/A"],
> ignore_mergelist_order=True,
> all_permutations=True,
> - options = {"--backtrack": 3,
> '--deep': True},
> + options = {"--backtrack": 3,
> '--update': True, '--deep': True}, success = True,
> mergelist = expected_mergelist),
> )
> @@ -229,6 +229,12 @@ class SlotConflictRebuildTestCase(TestCase):
> ResolverPlaygroundTestCase(
> ["app-misc/A"],
> success = True,
> + mergelist = ['app-misc/A-2']),
> +
> + ResolverPlaygroundTestCase(
> + ["app-misc/A"],
> + options={"--update": True, "--deep":
> True},
> + success = True,
> mergelist = ['app-misc/B-2',
> 'app-misc/C-1', 'app-misc/A-2']), )
>
looks good :)
--
Brian Dolbec
gt;
> X-Gentoo-bug: 612094
> X-Gentoo-bug-url: https://bugs.gentoo.org/show_bug.cgi?id=612094
> ---
> pym/_emerge/depgraph.py| 28 +++--
> .../test_slot_operator_runtime_pkg_mask.py | 136
> + 2 files changed, 152 insertions(+)
+ if not has_changed:
> return
>
> # Filter out USE flags that aren't part of IUSE.
> This has to
looks good :)
--
Brian Dolbec
CiWvAK5PZOz4/cfEUtEawUrQg4wtoPap05qzMx8fsk3rX9J7ifrq
> rQlBVxwGQqjN9ykzDl2IkY8/W9sx8Nhe5/M5rmUCsk0KUzhcrkQNCOHdzSSU2jSM
> Yimj4y+gBnizHIVn2+sAZ4vosTXic/zVKi5meYgSM4pBRAwD4GJgQ5vV//cWTTZl
> 6QTa+hD/NQZAQd14COhc
> =9N4L
> -END PGP SIGNATURE-
>
Sorry, merged finall
__init__.py| 36 ++
> pym/portage/util/movefile.py | 4 +-
> setup.py | 9 +
> src/portage_util_file_copy_reflink_linux.c| 385
> ++ 7 files changed, 504 insertions(+), 1
> deletion(-) create mode 100644
I'd say go for it, merge. There's been no additional feedback or review
--
Brian Dolbec
eg: "%s is missing %s required use flag..." % ('sys-apps/foo', 'bar')
I know I don't always enforce the line length for a few characters,
also when clarity is more important than line length.
We could also increase the max. line length to something like 120 or 130.
--
Brian Dolbec
er -> Blocked Package edges
> - self._blocked_pkgs = digraph()
> + # Do not initialized this until the depgraph
/
typo -d
Otherwise looks good :)
--
Brian Dolbec
On Thu, 16 Mar 2017 09:43:08 +0200
Alexandru Elisei wrote:
> On Thu, Mar 16, 2017 at 12:32 AM, Brian Dolbec
> wrote:
> > That could be pretty hard to do for all messages.
> > Especially messages with embedded data
> >
> > eg: "%s is missing %s req
atoms_probe(
> +
> dep.child.root, replacement_parent)
> + atom_not_selected =
> unevaluated_atom not in selected_atoms +
> if atom_not_selected:
> continue
>
> replacement_candidates.append(candidate_pkg_atoms)
Looks good other than 2 typos permfomed and "# an soname" -n
--
Brian Dolbec
On Fri, 17 Mar 2017 06:58:23 + (UTC)
Duncan <1i5t5.dun...@cox.net> wrote:
> Brian Dolbec posted on Thu, 16 Mar 2017 01:08:30 -0700 as excerpted:
>
> >> > We could also increase the max. line length to something like
> >> > 120 or 130.
> >>
>
test_case.fail_msg)
> + finally:
> + playground.cleanup()
> diff --git a/pym/portage/util/digraph.py b/pym/portage/util/digraph.py
> index 4a9cb43..b6be0c9 100644
> --- a/pym/portage/util/digraph.py
> +++ b/pym/portage/util/digraph.py
> @@ -93,6 +93,12 @@ class digraph(object):
> del self.nodes[node]
> self.order = order
>
> + def has_edge(self, child, parent):
> + """
> + Return True if the given edge exists.
> + """
> + return child in self.nodes[parent][0]
> +
> def remove_edge(self, child, parent):
> """
> Remove edge in the direction from child to parent.
> Note that it is
Looks good
--
Brian Dolbec
://bugs.gentoo.org/show_bug.cgi?id=612960
> ---
> pym/_emerge/depgraph.py| 32 +++-
> .../resolver/test_binary_pkg_ebuild_visibility.py | 94
> ++ 2 files changed, 123 insertions(+), 3
> deletions(-) create mode 100644
Looks fine
--
Brian Dolbec
ResolverPlaygroundTestCase(
> + ["=app-misc/foo-3"],
> + options = {
> + "--use-ebuild-visibility":
> "y",
> + "--usepkg": True,
> + },
> + success = False,
> + ),
> )
>
> playground = ResolverPlayground(binpkgs=binpkgs,
> ebuilds=ebuilds,
looks good
--
Brian Dolbec
m_callback)
>
> def _term_callback(self):
> + if self._fetch_iterator is not None:
> + self._fetch_iterator.terminate()
> self.cancel()
> self.wait()
>
Not that I know enough about all this that I could say "your doing it
wrong"
But the series looks OK, I didn't see any obvious goofs ;)
Thanks
--
Brian Dolbec
gt; + def remove_done_callback(self, fn):
> + """Remove all instances of a callback from
> the "call when done" list. +
> + Returns the number of callbacks removed.
> + """
> + filtered_callbacks = [f for f in
> self._callbacks if f != fn]
> + removed_count = len(self._callbacks) -
> len(filtered_callbacks)
> + if removed_count:
> + self._callbacks[:] =
> filtered_callbacks
> + return removed_count
> +
> def set_result(self, result):
> """Mark the future done and set its result.
>
> @@ -103,6 +169,7 @@ except ImportError:
> raise InvalidStateError('{}:
> {!r}'.format(self._state, self)) self._result = result
> self._state = _FINISHED
> + self._schedule_callbacks()
>
> def set_exception(self, exception):
> """Mark the future done and set an exception.
> @@ -116,3 +183,8 @@ except ImportError:
> exception = exception()
> self._exception = exception
> self._state = _FINISHED
> + self._schedule_callbacks()
> +
> +
> +if Future is None:
> + Future = _EventLoopFuture
looks fine... /me ignoring the lack of parameters descriptions in the
docstrings
--
Brian Dolbec
ts:
> + search_future =
> event_loop.create_future()
> + event_loop.call_soon(search_pkg,
> cpv, search_future)
> +
> event_loop.run_until_complete(search_future)
> + for result in search_future.result():
> yield result
>
> class vartree(object):
looks fine.
Question, will this help make the spinner more consistent with spin?
--
Brian Dolbec
; self.pid, self._waitpid_cb)
> @@ -129,6 +146,10 @@ class SubProcess(AbstractPollTask):
> self.scheduler.source_remove(self._reg_id)
> self._reg_id = None
>
> + if self._waitpid_id is not None:
> +
> self.scheduler.source_remove(self._waitpid_id)
> + self._waitpid_id = None
> +
> if self._files is not None:
> for f in self._files.values():
> if isinstance(f, int):
looks fine
--
Brian Dolbec
flags.append(UseFlagDisplay(f.display, True,
> f.flag in forced_flags)) for f in use_disabled.get(varname, []):
> - flags.append(UseFlagDisplay(f, False, f in
> forced_flags))
> + flags.append(UseFlagDisplay(f.display,
> False, f.flag in forced_flags)) if alphabetical_use:
> flags.sort(key=UseFlagDisplay.sort_combined)
> else:
Sorry, Zac, I somehow missed this one... too busy with my head burried
in twisted test fixes and new deps...
Looks fine :)
--
Brian Dolbec
uled for rebuild by the previous
> calculation,
> + # triggering an unsolved slot conflict and
> preventing
> + # slot operator rebuilds.
> + ResolverPlaygroundTestCase(
> + ["=app-misc/meta-pkg-2",
> "app-misc/C"],
> + options = {
> + "--backtrack": 5,
> + },
> + success = True,
> + ambiguous_merge_order = True,
> + mergelist = [
> + 'dev-libs/foo-2',
> + ('app-misc/D-1',
> 'app-misc/C-1', 'app-misc/B-2'),
> + 'app-misc/meta-pkg-2',
> + ]
> + ),
> + )
> +
> + playground = ResolverPlayground(debug=False,
> + ebuilds=ebuilds, installed=installed,
> + world=world)
> + try:
> + for test_case in test_cases:
> + playground.run_TestCase(test_case)
> +
> self.assertEqual(test_case.test_success, True,
> + test_case.fail_msg)
> + finally:
> + # Disable debug so that cleanup works.
> + playground.debug = False
> + playground.cleanup()
looks good. I look forward to getting less conflicts with this...
--
Brian Dolbec
_refresh=True): if (not os.path.isdir(self.pkgdir) and not
> getbinpkgs): return 0
>
> @@ -832,6 +840,9 @@ class binarytree(object):
> url = base_url.rstrip("/") +
> "/Packages" f = None
>
> + if not getbinpkg_refresh and
> local_timestamp:
> + raise
> UseCachedCopyOfRemoteIndex() +
> try:
> ttl =
> float(pkgindex.header.get("TTL", 0)) except ValueError:
looks good. Thanks for migrating that 0 for False
--
Brian Dolbec
for force_dummy in (True, False):
> async_lock =
> AsynchronousLock(path=path, scheduler=scheduler,
> _force_async=force_async, @@ -26,7 +28,10 @@ class
> AsynchronousLockTestCase(TestCase): async_lock.start()
> self.assertEqual(async_lock.wait(),
> os.EX_OK) self.assertEqual(async_lock.returncode, os.EX_OK)
> - async_lock.unlock()
> + if async_unlock:
> +
> scheduler.run_until_complete(async_lock.async_unlock())
> + else:
> + async_lock.unlock()
>
> async_lock =
> AsynchronousLock(path=path, scheduler=scheduler,
> _force_async=force_async, @@ -34,8 +39,10 @@ class
> AsynchronousLockTestCase(TestCase): async_lock.start()
> self.assertEqual(async_lock.wait(),
> os.EX_OK) self.assertEqual(async_lock.returncode, os.EX_OK)
> - async_lock.unlock()
> -
> + if async_unlock:
> +
> scheduler.run_until_complete(async_lock.async_unlock())
> + else:
> + async_lock.unlock()
> finally:
> shutil.rmtree(tempdir)
>
looks fine :)
--
Brian Dolbec
tasks are started.
> """
>
> - if '--fetchonly' in self.myopts:
> - return os.EX_OK
> -
> digest = '--digest' in self.myopts
> if not digest:
> for pkgsettings in self.pkgsettings.values():
looks good
--
Brian Dolbec
uot;""
> + Create a NofetchPrivateTmpdir instance, and execute it
> synchronously.
> + This function must not be called from asynchronous code,
> since it will
> + trigger event loop recursion which is incompatible with
> asyncio.
> + """
> + nofetch = SpawnNofetchWithoutBuilddir(background=False,
> + portdb=portdb,
> + ebuild_path=ebuild_path,
> +
> scheduler=SchedulerInterface(portage._internal_caller and
> global_event_loop() or EventLoop(main=False)),
> - fd_pipes=fd_pipes, settings=settings)
> - ebuild_phase.start()
> - ebuild_phase.wait()
> - elog_process(settings.mycpv, settings)
> - finally:
> - shutil.rmtree(private_tmpdir)
> -
> - return ebuild_phase.returncode
> + fd_pipes=fd_pipes, settings=settings)
> +
> + nofetch.start()
> + return nofetch.wait()
looks good
--
Brian Dolbec
1 - 100 of 634 matches
Mail list logo