On Sat, 30 Jan 2021 04:59:32 -0800
Zac Medico wrote:
> Call os.getpid() lazily, which eliminates getpid calls when possible
> after os.fork() in the portage.process module.
>
> Bug: https://bugs.gentoo.org/767913
> Signed-off-by: Zac Medico
> ---
> lib/portage/__init__.py | 4 +++-
> 1 file ch
On Sat, 30 Jan 2021 03:49:41 -0800
Zac Medico wrote:
> Disable --autounmask-license by default, in order to limit user
> exposure to risks associated with package.license changes.
> The changes that this option suggests are only intended to be
> accepted when a user has made a conscious decision
On Sat, 23 Jan 2021 15:38:49 -0800
Zac Medico wrote:
> Since the emaint --fix merges uses emerge --ask, add
> a -y, --yes option to use --ask=n instead.
Looks good to me
>
> Bug: https://bugs.gentoo.org/766767
> Signed-off-by: Zac Medico
> ---
> lib/portage/emaint/modules/merges/__init__.py
On Sun, 16 Aug 2020 20:26:56 -0700
Zac Medico wrote:
> Add --jobs and --load-average options which allow dependency checks
> for multiple profiles to run in parallel. The increase in performance
> is non-linear for the number of jobs, but it can be worthwhile
> (I measured a 35% decrease in time
On Sat, 15 Aug 2020 12:26:42 -0700
Zac Medico wrote:
> Add a short -l option for --load-average just like make(1) has.
>
> Bug: https://bugs.gentoo.org/699256
> Signed-off-by: Zac Medico
>
> Zac Medico (2):
> emerge: Remove deprecated --changelog option (bug 699256)
> emerge: Add short -l
On Tue, 4 Aug 2020 21:56:08 -0400
Aaron Bauman wrote:
> On Tue, Aug 04, 2020 at 09:43:03PM -0400, Aaron Bauman wrote:
> > * This fixes the one instance of a trailing comma in the repo which
> > actually causes a tuple to be created.
> >
> > Signed-off-by: Aaron Bauman
> > ---
> > lib/portage
On Sun, 2 Aug 2020 16:38:06 -0700
Zac Medico wrote:
> Add an egencache --update-pkg-desc-index example for users
> of app-portage/esearch to migrate to.
>
> Bug: https://bugs.gentoo.org/735626
> Signed-off-by: Zac Medico
> ---
> cnf/repo.postsync.d/example | 15 ++-
> 1 file chang
On Mon, 6 Jul 2020 11:42:06 -0700
Zac Medico wrote:
> It should be pretty safe to drop support for python2.7 at this point.
>
> Bug: https://bugs.gentoo.org/731114
> Signed-off-by: Zac Medico
> ---
> .travis.yml | 1 -
> tox.ini | 6 ++
> 2 files changed, 2 insertions(+), 5 deletions(
On Fri, 19 Jun 2020 13:39:19 -0700
Zac Medico wrote:
> This variable specifies a command that filters build log output to a
> log file. The plan is to extend this to support a separate filter for
> tty output in the future.
>
> In order to enable the EbuildPhase class to write elog messages to
>
On Fri, 19 Jun 2020 13:39:18 -0700
Zac Medico wrote:
> Add support to write to a non-blocking pipe instead of a
> log file. This is needed for the purposes of bug 709746,
> where PipeLogger will write to a pipe that is drained
> by anoher PipeLogger instance which is running in the same
> process
On Thu, 18 Jun 2020 00:35:48 -0700
Zac Medico wrote:
> In the coroutine finally clause, do not call remove_writer in cases
> where fd has been closed and then re-allocated to a concurrent
> coroutine as in bug 716636.
>
> Also, assume that the caller will put the file in non-blocking mode
> and
On Tue, 16 Jun 2020 20:43:44 +0200 (CEST)
"michael.lienhardt" wrote:
> Dear all,
> My bad for not noticing it sooner, but when there is a dependency
> like ">=sys-fs/udev-208-r1:0/0[static-libs?]" (that occurs in
> virtual/libgudev-215-r3), since 'static-libs' is not a use flags of
> sys-fs/ude
On Fri, 12 Jun 2020 16:51:51 -0700
Zac Medico wrote:
> Add a sync-openpgp-key-refresh option that makes it possible to
> disable key refresh, which may be useful in cases when it is not
> possible to refresh keys.
>
> Key refresh is enabled by default, and if it is disabled then
> the SyncBase._
On Sun, 10 May 2020 19:29:34 -0700
Zac Medico wrote:
> This includes a _compat_upgrade.binpkg_compression script that the
> ebuild can call in pkg_preinst in order to maintain a
> backward-compatible bzip2 default when appropriate, ensuring that
> binary package consumers are not caught off guard
On Sun, 10 May 2020 21:32:25 -0700
Zac Medico wrote:
> The feature enables finer grained locks for install operations, and
> everyone agrees that it's safe to enable by default.
>
> Bug: https://bugs.gentoo.org/715110
> Signed-off-by: Zac Medico
> ---
> cnf/make.globals | 2 +-
> 1 file change
On Sun, 26 Apr 2020 14:57:32 -0700
Zac Medico wrote:
> The ebuild will have a default enabled USE=zstd which changes the
> default to zstd here.
>
> Bug: https://bugs.gentoo.org/715108
> Bug: https://bugs.gentoo.org/719456
> Signed-off-by: Zac Medico
> ---
> cnf/make.globals | 5 -
> 1 fil
On Sat, 11 Apr 2020 17:39:53 -0700
Zac Medico wrote:
> When searching for slot operator rebuilds, respect non slot-operator
> components of parent dependencies, so that a like the not be completely ignored. This will prevent erroneous attempts to
> trigger slot operator rebuilds for upgrades th
On Tue, 16 Apr 2019 13:05:40 -0700
Zac Medico wrote:
> Hi all,
>
> We're due for a Portage project lead election [1] which is required by
> GLEP 39 [2]. Please reply with nominations. Thanks!
>
> [1] https://bugs.gentoo.org/683510
> [2] https://www.gentoo.org/glep/glep-0039.html
Well, as Zac i
On Sun, 17 Feb 2019 15:04:29 -0800
Zac Medico wrote:
> Since hardlinks on sshfs do not have matching inode numbers, detect
> this behavior and use a simple stat call to detect if lock_path has
> been removed.
>
> Bug: https://bugs.gentoo.org/678218
> Signed-off-by: Zac Medico
> ---
> lib/porta
On Sun, 13 Jan 2019 16:27:21 -0800
Zac Medico wrote:
> Execute pid-ns-init as the first fork after unshare, as
> required for it to have pid 1 and become the default reaper
> of orphaned descendant processes. In _exec, exec a separate
> pid-ns-init process to behave as a supervisor which will
> f
On Sun, 2 Dec 2018 23:55:23 -0800
Zac Medico wrote:
> Make child processes inherit the current process's environment by
> default, so that behavior is equivalent to the standard library's
> subprocess module.
>
> Bug: https://bugs.gentoo.org/672440
> Signed-off-by: Zac Medico
> ---
> lib/port
On Fri, 23 Nov 2018 16:15:23 -0800
Zac Medico wrote:
> Use portage.process.spawn (with new cwd parameter) and
> self.spawn_kwargs to drop privileges for git gc and merge commands.
>
> Fixes: 3cd8cf93abb6 ("GitSync: abort checkout for signature problem
> (bug 660372)") Fixes: 903c4b1a6768 ("GitSy
On Sun, 2 Sep 2018 15:03:28 -0700
Zac Medico wrote:
> Since BROOT is only defined in src_* phases, make has/best_version -b
> use the equivalent /${PORTAGE_OVERRIDE_EPREFIX#/} value that is
> defined in all phases. This makes has/best_version -b in EAPI 7
> behave exactly the same as --host-root
On Mon, 6 Aug 2018 00:40:29 -0700
Zac Medico wrote:
> Add a boolean sync-rcu repos.conf setting that behaves as follows:
>
> sync-rcu = yes|no
>
> Enable read-copy-update (RCU) behavior for sync operations. The
> current latest immutable version of a repository will be
> referenced by
On Mon, 6 Aug 2018 00:40:32 -0700
Zac Medico wrote:
> Since there aremany ways to manage repository storage, split out a
> repo storage framework. The HardlinkQuarantineRepoStorage class
> implements the existing default behavior, and the InplaceRepoStorage
> class implements the legacy behavior
On Thu, 9 Aug 2018 16:04:42 -0700
Zac Medico wrote:
> For USERLAND=BSD, set XARGS="gxargs -r" if gxargs is available,
> so the code from bug 630292 works for USERLAND=BSD.
>
> Fixes: 50283f1abb77 (install-qa-check.d/60pngfix: parallel support
> (bug 630292)) Reported-by: Michał Górny
> Bug: ht
On Sun, 5 Aug 2018 22:32:34 -0700
Zac Medico wrote:
> Update all relevant references in docs, messages, and comments
> to refer to /var/db/repos/gentoo instead of /usr/portage. Also
> update DISTDIR and PKGDIR references to refer to the new
> /var/cache/{distfiles,binpkgs} locations.
>
> Bug: h
On Sun, 5 Aug 2018 22:46:58 -0700
Zac Medico wrote:
> On 08/05/2018 09:59 PM, Ulrich Mueller wrote:
> >> On Sun, 5 Aug 2018, Zac Medico wrote:
> >
> >> --- a/cnf/make.conf.example
> >> +++ b/cnf/make.conf.example
> >> [...]
> >
> >> @@ -119,16 +119,16 @@
> >> # fetched on deman
On Sun, 15 Jul 2018 16:02:03 -0700
Zac Medico wrote:
> For the empty profile that's used to check dependencies of
> ebuilds that have empty KEYWORDS, populate implicit IUSE
> from all of the make.defaults files found in the relevant
> repositories (this should take less than 1 second on most
> ha
On Sun, 15 Jul 2018 14:09:24 -0700
Zac Medico wrote:
> Pass the main-repo name from repos.conf as the repository name
> for the PORTDIR RepoConfig constructor, so that it can override
> the main repo location even if the profiles/repo_name file does
> not exist yet (like in a stage3 tarball).
>
On Fri, 27 Jul 2018 00:56:40 -0700
Zac Medico wrote:
> Add repos.conf settings that enable sync-openpgp-key-path support for
> both emerge-webrsync and emerge-delta-webrsync:
>
> sync-webrsync-delta = true|false
> Use app-portage/emerge-delta-webrsync to minimize
> bandwidth. Default
On Tue, 17 Jul 2018 13:28:05 -0700
Zac Medico wrote:
> Are there any objections to renaming the pym directory to lib [1]?
> Note that the git log --follow option makes this kind of rename
> fairly painless.
>
> [1] https://github.com/gentoo/portage/pull/343
is fine with me
pgpewJwnz8KUC.pgp
D
if os.path.exists(profile_bashrc):
> - bashrc_files.append(profile_bashrc)
> + for profile, profile_bashrc in
> zip(self._locations_manager.profiles_complex, self._profile_bashrc):
> + if profile_bashrc:
> +
> bashrc_files.append(os.path.join(profile.location, 'profile.bashrc'))
> if profile in self._pbashrcdict: cpdict =
> self._pbashrcdict[profile].get(cp) if cpdict:
looks good
--
Brian Dolbec
tegories\n") % \
> (mycp,
> self.settings["PORTAGE_CONFIGROOT"]), noiselevel=-1) mylist = []
> - else:
> - mylist = list(d)
> - # Always sort in ascending order here since it's
> handy
> - # and the result can be easily cached and reused.
> + # Always sort in ascending order here since it's
> handy and
> + # the result can be easily cached and reused. Since
> mylist
> + # is initially in ascending order by repo.priority,
> stable
> + # sort by version produces results in ascending
> order by
> + # (pkg.version, repo.priority).
> self._cpv_sort_ascending(mylist)
> if self.frozen and mytree is None:
> cachelist = mylist[:]
looks fine
--
Brian Dolbec
ursive_parents =
> []
> + for parent in
> set(parents):
> + while parent
> in revisit:
> +
> recursive_parents.append(parent)
> +
> parent = os.path.dirname(parent) +
> + for parent in
> sorted(set(recursive_parents)):
> +
> dirs.append((parent, revisit.pop(parent)))
> def isowner(self, filename, destroot=None):
> """
LGTM
--
Brian Dolbec
s._iuse_implicit_match(flag))
> + return iuse_implicit_match
> +
> def _iuse_implicit_cnstr(self, pkg, metadata):
> """
> Construct a callable that checks if a given USE flag
> should
looks good thanks.
Please add the test case ebuild that was supplied to the repoman
gen-b0rk repo "not-broken" category.
https://gitweb.gentoo.org/repo/proj/gen-b0rk.git/
--
Brian Dolbec
anyone else objects...
--
Brian Dolbec
ss (bug 654600),
> + # and no EAPI expects SYSROOT to have a trailing
> slash, always strip
> + # the trailing slash from SYSROOT.
> + if 'SYSROOT' in mydict:
> + mydict['SYSROOT'] =
> mydict['SYSROOT'].rstrip(os.path.sep) +
> try:
> builddir = mydict["PORTAGE_BUILDDIR"]
> distdir = mydict["DISTDIR"]
looks good
--
Brian Dolbec
gt; pym/portage/dbapi/porttree.py | 75 +++--- 3
> files changed, 146 insertions(+), 42 deletions(-)
>
I didn't see any errors glaring at me... :)
looks like it should be good
--
Brian Dolbec
uot;
> + % (async_lock.returncode,)))
>
> - self._lock_obj = async_lock
> - self.locked = True
> + self._lock_obj = AsynchronousLock(path=self.pkg_path,
> + scheduler=self.scheduler)
> + self._lock_obj.addExitListener(acquired_lock)
> + self._lock_obj.start()
> + return result
>
> class AlreadyLocked(portage.exception.PortageException):
> pass
Looks fine to me :)
--
Brian Dolbec
ter due to non-inheritable file
> descriptor behavior from PEP 446). @type close_fds: Boolean
> @param unshare_net: If True, networking will be unshared
> from the spawned process @type unshare_net: Boolean
looks harmless enough ;)
--
Brian Dolbec
d, thank you :)
--
Brian Dolbec
precated
> + # after this is available in a stable version of
> portage).
> + if '/' in self.searchkey:
> + match_category = 1
> fuzzy = False
> if regexsearch:
> self.searchre=re.compile(self.searchkey,re.I)
looks fine
--
Brian Dolbec
that can be
added to easily. And just run it from the Actions class as M.J.
Everitt suggested.
--
Brian Dolbec
> > + ("", repoman_cmd + ("commit", "-m",
> > "cat/pkg: bump to version 2")), ("", cp_cmd + (test_ebuild,
> > test_ebuild[:-8] + "3.ebuild")), ("", git_cmd + ("add",
> > test_ebuild[:-8] + "3.ebuild")),
> > - ("dev-libs", repoman_cmd + ("commit",
> > "-m", "bump to version 3")),
> > + ("dev-libs", repoman_cmd + ("commit",
> > "-m", "cat/pkg: bump to version 3")), ("", cp_cmd + (test_ebuild,
> > test_ebuild[:-8] + "4.ebuild")), ("", git_cmd + ("add",
> > test_ebuild[:-8] + "4.ebuild")),
> > - ("dev-libs/A", repoman_cmd + ("commit",
> > "-m", "bump to version 4")),
> > + ("dev-libs/A", repoman_cmd + ("commit",
> > "-m", "cat/pkg: bump to version 4")), )
> >
> > env = {
> Might I suggest breaking out checks into a separate module? I think
> that hard-coding it all is likely to become a pain as time goes on,
> more checks get added, etc ...
>
So, you would like the commit message checks to be a plug-in system
like the ebuild checks are now.
Yes that is possible, that would also allow overlays and sub-distros
to customize it to their liking. But you do realize it would be a
module system with only the one plug-in. It would add a slight amount
of overhead and subsequently a tiny bit more time. Although it is not
much as I remember when I first developed the plug-in system for emaint.
I will consider that for the stage3 work in progress, but for the
master branch of repoman, the hard-coded version above would be fine.
--
Brian Dolbec
pgprVkLpLeUb3.pgp
Description: OpenPGP digital signature
; myopts) and
> - deep is True and '--update' in myopts):
> + changed_deps_report = myopts.get('--changed-deps-report',
> 'n') == 'y'
> + if changed_deps_report:
> myparams['changed_deps_report'] = True
>
> if myopts.get("--selective") == "n":
looks good, if not already merged.
--
Brian Dolbec
On Sun, 04 Feb 2018 18:58:21 +0100
Michał Górny wrote:
> W dniu nie, 04.02.2018 o godzinie 09∶51 -0800, użytkownik Brian Dolbec
> napisał:
> >
> > I know there are not a lot of repoman unit tests, but, can you
> > please create some to test this? That way it doesn'
if body_too_long:
> + problems.append('body lines should be
> wrapped at 72 characters') +
> + if problems:
> + return (False, '\n'.join('- %s' % x for x in
> problems))
> + return (True, None)
I know there are not a lot of repoman unit tests, but, can you please
create some to test this? That way it doesn't get any worse.
In the PR, you mentioned adding in an editor call to re-edit the
message. This would be a good thing and I know is not that difficult
to accomplish. Is this coming in another patch?
--
Brian Dolbec
ps://bugs.gentoo.org/615620
> +if False:
> +#if gcrypt_algos.difference(hashfunc_map):
> try:
> import binascii
> import pygcrypt.hashcontext
looks good thanks, merge please
--
Brian Dolbec
On Tue, 5 Dec 2017 08:42:43 -0800
Brian Dolbec wrote:
> On Tue, 5 Dec 2017 17:34:23 +0100
> Michał Górny wrote:
>
> > Closes: https://bugs.gentoo.org/615620
> > ---
> > pym/portage/checksum.py | 5 -
> > 1 file changed, 4 insertions(+), 1 deletion(-)
https://bugs.gentoo.org/615620
> +if False and gcrypt_algos.difference(hashfunc_map):
> try:
> import binascii
> import pygcrypt.hashcontext
It would be better to just comment out the original if, then add a new
line to replace it with just if False. it would be clearer what the
original code should be. Of course with the reason comments...
--
Brian Dolbec
mal.py
> b/pym/portage/tests/resolver/test_onlydeps_minimal.py index
> 13c79ed55..efda02c59 100644 ---
> a/pym/portage/tests/resolver/test_onlydeps_minimal.py +++
> b/pym/portage/tests/resolver/test_onlydeps_minimal.py @@ -25,9 +25,10
> @@ class OnlydepsMinimalTestCase(TestCase): success = True,
> options = { "--onlydeps": True,
> "--onlydeps-with-rdeps":
> "y" },
> - mergelist = ["dev-libs/B-1",
> + ambiguous_merge_order = True,
> + mergelist = [("dev-libs/B-1",
>"dev-libs/C-1",
> - "dev-libs/D-1"]),
> + "dev-libs/D-1")]),
> ResolverPlaygroundTestCase(
> ["dev-libs/A"],
> all_permutations = True,
looks good
--
Brian Dolbec
; + test_cases = (
> + ResolverPlaygroundTestCase(
> + ['net-misc/foo'],
> + success=True,
> + mergelist=[
> + 'sys-libs/glibc-2.24',
> + 'net-misc/foo-1',
> + ],
> + ),
> + )
> +
> + playground = ResolverPlayground(debug=False,
> + ebuilds=ebuilds, installed=installed,
> world=world,
> + user_config=user_config)
> +
> + try:
> + for test_case in test_cases:
> + playground.run_TestCase(test_case)
> +
> self.assertEqual(test_case.test_success, True,
> + test_case.fail_msg)
> + finally:
> + playground.debug = False
> + playground.cleanup()
looks good
--
Brian Dolbec
if (errno == EINVAL && !offset_out) {
> -sendfile_works = 0;
> -}
> -break;
> +if (copyfunc_ret < 0) {
> +error = errno;
> +if (errno == EINVAL && !offset_out) {
> +sendfile_works = 0;
> }
> +break;
> }
> }
> }
Looks good, has been checked by chutzpah
--
Brian Dolbec
"${ED}" | LC_ALL=C sort)) if [[ -n ${f} ]] ;
> then echo "${f}" > "${T}"/scanelf-ignored-LDFLAGS.log
> if [ "${QA_STRICT_FLAGS_IGNORED-unset}" =
> unset ] ; then
looks good
--
Brian Dolbec
{
> # since we're editing the ELF here, we should recompute the
> build-id # (the -i flag below). save that output so we don't need to
> recompute # it later on in the save_elf_debug step.
> - buildid=$(debugedit -i \
> + buildid=$("${debugedit}" -i \
> -b "${WORKDIR}" \
> -d "${prepstrip_sources_dir}" \
> -l
> "${tmpdir}/sources/${x##*/}.${BASHPID:-$(__bashpid)}" \
Looks fine to me
--
Brian Dolbec
ambiguous_merge_order=True,
> + mergelist=[
> + ('dev-libs/C-1',
> 'dev-libs/A-2'),
> + 'dev-libs/D-1',
> + ],
> + use_changes={'dev-libs/C-1': {'y':
> True, 'x': True}},
> + ),
> + )
> +
> + playground = ResolverPlayground(
> + 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:
> + playground.cleanup()
Looks fine
--
Brian Dolbec
is_arg_parent = isinstance(parent,
> AtomArg)
> + is_arg_parent = (inst_pkg is not
> None and
> + not
> self._want_installed_pkg(inst_pkg)) is_non_conflict_parent = parent
> not in conflict_pkgs and \ parent not in indirect_conflict_pkgs
>
looks good
--
Brian Dolbec
ResolverPlaygroundTestCase(
> - world,
> + ['@world'],
> all_permutations = True,
> options = {"--update": True,
> "--deep": True}, success = True,
looks good
--
Brian Dolbec
pkg.installed) +
> + sorted(pkg for pkg in pkgs if not
> pkg.installed)) +
> for pkg in pkgs:
> eliminate_pkg = True
> for atom in
> atom_pkg_graph.parent_nodes(pkg):
Looks good
--
Brian Dolbec
-o -name '*.xpm' -o -name '*.icon'
> ')'
> + )
> # if the cache does not exist at all, we complain
> for any file # otherwise, we look for files newer than the cache
> [[ -f ${d}/icon-theme.cache ]] &&
Works for me, since Gilles approved the change :)
--
Brian Dolbec
are
> any unrecognized options, so the intention is for 100% compatibility.
>
> > I take issue with the copyright assignment, as I believe the
> > legal .. err .. IANAL devs are campaigning for full rights to be
> > owned and enforced by Gentoo Inc LLC in the US .. even if they have
> > no idea what that means or does .. :]
>
> Since it's a BSD-style license, we can copy the code into our project
> as long as we retain the copyright notice.
Patches look fine to me, glad for the speedup :)
--
Brian Dolbec
t)s:") % {"pkg": colorize("INFORM", key),
> "root": root})
> + if logfile is not None:
> + printer.einfo(_("Log file: %s") %
> colorize("INFORM", logfile)) print()
> for phase in EBUILD_PHASES:
> if phase not in logentries:
Looks good to me :)
--
Brian Dolbec
r ssl certificate verification is enabled by
> default for
> + stdlib http clients (PEP 476).
> +
> + @returns: bool, True if ssl certificate verification is
> enabled by
> + default
> + """
> + return hasattr(__import__('ssl'),
> '_create_unverified_context') +
> +
> def urlopen(url, if_modified_since=None):
> parse_result = urllib_parse.urlparse(url)
> if parse_result.scheme not in ("http", "https"):
looks fine
--
Brian Dolbec
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA512
On Sun, 2 Jul 2017 11:28:09 -0700
Brian Dolbec wrote:
> -BEGIN PGP SIGNED MESSAGE-
> Hash: SHA512
>
> On Sat, 24 Jun 2017 20:20:16 -0700
> Brian Dolbec wrote:
>
> > On Sun, 18 Jun 2017 15:48:44 +0200
>
you primarily have to
be in the infra team. So, as a result, progress stalls, dies out.
--
Brian Dolbec
pgpVROTFPVD5Q.pgp
Description: OpenPGP digital signature
t; + part_matchers,
> part_split(match_string))) +
> for package in self._cp_all():
> self._spinner_update()
>
looks fine
--
Brian Dolbec
On Thu, 6 Jul 2017 20:12:46 +0200
Alexander Berntsen wrote:
> On 06/07/17 19:25, Brian Dolbec wrote:
> > You can't, I declined this time around
> You didn't reply here. So technically you just didn't accept. ;)
>
> I vote for Zac then.
Crap, I didn't
Begin forwarded message:
Date: Thu, 6 Jul 2017 08:40:45 -0700
From: Brian Dolbec
To: Zac Medico
Subject: Re: [gentoo-portage-dev] Leader election
On Tue, 4 Jul 2017 13:02:35 -0700
Zac Medico wrote:
> On 07/02/2017 12:02 PM, Brian Dolbec wrote:
> > On Sun, 2 Jul 2017 11:28
On Thu, 6 Jul 2017 17:45:33 +0200
Alexander Berntsen wrote:
> I vote for Brian.
You can't, I declined this time around
--
Brian Dolbec
pgp3t5YNJcNZh.pgp
Description: OpenPGP digital signature
On Thu, 6 Jul 2017 08:35:13 -0700
Brian Dolbec wrote:
> On Thu, 6 Jul 2017 11:40:45 +0200
> Alexander Berntsen wrote:
>
> > On 04/07/17 22:02, Zac Medico wrote:
> > > Thank you, I accept.
> > >
> > > I also nominate Brian Dolbec and Alexa
On Thu, 6 Jul 2017 11:40:45 +0200
Alexander Berntsen wrote:
> On 04/07/17 22:02, Zac Medico wrote:
> > Thank you, I accept.
> >
> > I also nominate Brian Dolbec and Alexander Berntsen.
> Thank you, I accept.
>
>
> Do we vote here in the sam
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA512
On Sun, 2 Jul 2017 11:28:09 -0700
Brian Dolbec wrote:
> On Sat, 24 Jun 2017 20:20:16 -0700
> Brian Dolbec wrote:
>
> > On Sun, 18 Jun 2017 15:48:44 +0200
> > Alexander Berntsen wrote:
> >
> > > Friends,
is not portable" realname=${x%.*}
> suffix=${realname##*.}
> fi
sounds good
--
Brian Dolbec
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA512
On Sat, 24 Jun 2017 20:20:16 -0700
Brian Dolbec wrote:
> On Sun, 18 Jun 2017 15:48:44 +0200
> Alexander Berntsen wrote:
>
> > Friends,
> >
> > It's that time of year. We're having a leader election again,
tees: Dolsen
Europe/Berlin
Date: July 2, 2017
Time: 6:00:00 PM
Invitees: mrueg
Poland
Date: July 2, 2017
Time: 6:00:00 PM
Invitees: mgorny
US/Pacific
Date: July 2, 2017
Time: 9:00:00 AM
Invitees: zmedico
- --
Brian
t; "gst-plugins-bad": "gstreamer",
> "gst-plugins-base": "gstreamer",
> @@ -434,6 +438,7 @@ class InheritDeprecated(LineCheck):
> "python": "python-r1 / python-single-r1 /
> python-any-r1", "ruby": "ruby-ng",
> "x-modular": "xorg-2",
> + "xfconf": False,
> }
>
> _inherit_re = re.compile(r'^\s*inherit\s(.*)$')
looks fine
--
Brian Dolbec
f self.repo.clone_depth is not None:
> @@ -86,6 +96,16 @@ class GitSync(NewBase):
> '''
>
> git_cmd_opts = ""
> + if
> self.repo.module_specific_options.get('sync-git-env'):
> + shlexed_env =
>
ate forced_flags correctly:
>
> if myeb:
> now_use = self._pkg_use_enabled(myeb)
> forced_flags = set(chain(
> myeb.use.force, myeb.use.mask))
> else:
> pkgsettings.setcpv(pkg)
> now_use = pkgsettings["PORTAGE_USE"].split()
> forced_flags = set(chain(
> pkgsettings.useforce, pkgsettings.usemask))
>
OK, LGTM
--
Brian Dolbec
On Mon, 29 May 2017 15:11:41 -0700
Zac Medico wrote:
> On Mon, May 29, 2017 at 3:03 PM, Brian Dolbec
> wrote:
>
> > On Sun, 28 May 2017 03:07:50 -0700
> > Zac Medico wrote:
> >
> > > With FEATURES=binpkg-multi-instance, it is normal to have some
> &g
TS contains
> --autounmask=n, then --autounmask
> + # must be specified with
> --autounmask-continue.
> + ({"EMERGE_DEFAULT_OPTS" :
> "--autounmask=n"},) + \
> + emerge_cmd + ("--autounmask",
> "--autounmask-continue", "dev-libs/C",), # Verify that the above
> --autounmask-continue command caused # USE=flag to be applied
> correctly to dev-libs/D. portageq_cmd + ("match", eroot,
> "dev-libs/D[flag]"),
WFM
--
Brian Dolbec
d users to
> > write --autounmask too.
>
> Yeah, we can go the other way and make --autounmask=n trigger a
> warning message when --autounmask-continue is also in the options. My
> main goal is to prevent confusion in this case.
Yeah, I prefer this over --autounmask-coninue automatically setting
autunmask to True.
--
Brian Dolbec
. The '\-*' wildcard discards all @system and @profile packages
> +added by parent profiles.
>
> .I Example:
> .nf
LGTM
--
Brian Dolbec
binaries.pop(pkg)
> + break
> +
> if selected_pkg.installed and \
> selected_pkg.cpv == pkg.cpv
> and \ selected_pkg.build_time == pkg.build_time:
--
Brian Dolbec
in this slot)
> + #
> + # (dev-libs/A-2:0/0::test_repo, ebuild
> scheduled for merge) pulled in by
> + #>=dev-libs/A-2 required by
> (dev-libs/C-1:0/0::test_repo, ebuild scheduled for merge)
> + #^^ ^
> + #
> + #The following keyword changes are necessary
> to proceed:
> + # (see "package.accept_keywords" in the
> portage(5) man page for more details)
> + ## required by dev-libs/C-1::test_repo
> + ## required by @selected
> + ## required by @world (argument)
> + #=dev-libs/A-2 ~x86
> + #
> + #emerge: there are no ebuilds to satisfy
> "dev-libs/initially-unsatisfied".
> + #(dependency required by
> "dev-libs/broken-1::test_repo" [installed])
> + #(dependency required by "@selected" [set])
> + #(dependency required by "@world" [argument])
> +
> # Test --deep = True
> ResolverPlaygroundTestCase(
> ["@world"],
> options={
> "--autounmask": "y",
> + "--autounmask-backtrack":
> "y", "--complete-graph": True,
> "--selective": True,
> "--deep": True
> @@ -103,6 +156,14 @@ class
> SlotConflictUnsatisfiedDeepDepsTestCase(TestCase):
> unstable_keywords=["dev-libs/A-2"],
> unsatisfied_deps=["dev-libs/initially-unsatisfied"], success=False),
> +
> + # The effects of --autounmask-backtrack are
> the same as the previous test case.
> + # Both test cases can randomly succeed with
> --autounmask-backtrack=n, when
> + # "backtracking due to unsatisfied dep"
> randomly occurs before the autounmask
> + # unstable keyword change. It would be
> possible to eliminate backtracking here
> + # by recognizing that there are no
> alternatives to satisfy the dev-libs/broken
> + # atom in the world file. Then the test
> cases will consistently succeed with
> + # --autounmask-backtrack=n.
> )
>
> playground = ResolverPlayground(ebuilds=ebuilds,
> installed=installed,
Looks good, thank you :)
--
Brian Dolbec
ebug" in myopts
> mydepgraph = None
> - max_retries = myopts.get('--backtrack', 3)
> + max_retries = myopts.get('--backtrack', 10)
> max_depth = max(1, (max_retries + 1) // 2)
> allow_backtracking = max_retries > 0
> backtracker = Backtracker(max_depth)
yeah, is good :)
--
Brian Dolbec
self, PyObject
> *args)
> } else if (buf_bytes < 0) {
> error = errno;
> + buf_bytes = 0;
> break;
> }
> }
looks fine :)
--
Brian Dolbec
"dev-libs/C-1",
> + "dev-libs/D-1"]),
> + ResolverPlaygroundTestCase(
> + ["dev-libs/A"],
> + all_permutations = True,
> + success = True,
> + options = { "--onlydeps": True,
> + "--onlydeps-with-rdeps":
> "n" },
> + mergelist = ["dev-libs/B-1"]),
> + )
> +
> + playground = ResolverPlayground(ebuilds=ebuilds,
> + installed=installed, debug=False)
> + try:
> + for test_case in test_cases:
> + playground.run_TestCase(test_case)
> +
> self.assertEqual(test_case.test_success, True, test_case.fail_msg)
> + finally:
> + playground.cleanup()
looks fine
--
Brian Dolbec
ze_t buf_bytes, buf_offset, copyfunc_ret;
> struct stat stat_in, stat_out;
> char* buf;
> -ssize_t (*copyfunc)(int, int, loff_t *, size_t);
> +ssize_t (*copyfunc)(int, int, off_t *, size_t);
>
> if (!PyArg_ParseTuple(args, "ii", &fd_in, &fd_out))
> return NULL;
looks fine and is Anthony approved ;)
--
Brian Dolbec
t callbacks
> regardless of whether or @@ -457,7 +471,7 @@ class EventLoop(object):
> @return: an integer ID
> """
> with self._thread_condition:
> - source_id = self._new_source_id()
> + source_i
uot; on line: %d"
> >
> >
> > _base_check_classes = (InheritEclass, LineCheck, PhaseCheck)
>
> It looks like you forgot to post a first patch in this series, because
> I don't see a EbuildNonRelativeDosym class anywhere:
>
>
> https://github.com/gentoo/portage/search?utf8=%E2%9C%93&q=EbuildNonRelativeDosym&type=
>
nice catch Zac. I obviously didn't look closely enough :/
--
Brian Dolbec
sed instead"),
> "ebuild.majorsyn": (
> "This ebuild has a major syntax error"
> " that may cause the ebuild to fail partially or
> fully"), @@ -262,6 +265,7 @@ qawarnings = set((
> "RDEPEND.suspect",
> "virtual.suspect",
> "RESTRICT.invalid",
> + "ebuild.absdosym",
> "ebuild.minorsyn",
> "ebuild.badheader",
> "ebuild.patches",
looks good. merge approved :)
thank you
--
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
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
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
_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
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
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
; 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
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
1 - 100 of 1006 matches
Mail list logo