From: Zac Medico <zmedico@gentoo.org>
To: Matt Turner <mattst88@gentoo.org>
Cc: gentoo-portage-dev@lists.gentoo.org
Subject: Re: [gentoo-portage-dev] [PATCH gentoolkit 2/2] eclean: Add option to delete binpkgs with changed deps
Date: Mon, 2 Mar 2020 21:15:18 -0800 [thread overview]
Message-ID: <b5c7ca65-2b86-42e7-d77d-0245d460e1e2@gentoo.org> (raw)
In-Reply-To: <CAEdQ38EF7cQtPvB8T40JTH-yJo6QfnjB=BU2v=PgfpSSBLS9KA@mail.gmail.com>
[-- Attachment #1.1: Type: text/plain, Size: 2289 bytes --]
On 3/2/20 1:11 PM, Matt Turner wrote:
> On Sun, Mar 1, 2020 at 10:39 PM Zac Medico <zmedico@gentoo.org> wrote:
>>
>> On 2/20/20 9:29 PM, Matt Turner wrote:
>>> @@ -564,7 +577,22 @@ def findPackages(
>>>
>>> # Exclude if binpkg exists in the porttree and not --deep
>>> if not destructive and port_dbapi.cpv_exists(cpv):
>>> - continue
>>> + if not options['changed-deps']:
>>> + continue
>>> +
>>> + uselist = bin_dbapi.aux_get(cpv, ['USE'])[0].split()
>>> + all_equal = True
>>> +
>>> + for k in ('RDEPEND', 'PDEPEND'):
>>> + binpkg_deps = bin_dbapi.aux_get(cpv, [k])
>>> + ebuild_deps = port_dbapi.aux_get(cpv, [k])
>>> +
>>> + if not _deps_equal(binpkg_deps, ebuild_deps, cpv.eapi, uselist):
>>> + all_equal = False
>>> + break
>>> +
>>> + if all_equal:
>>> + continue
>>
>> If all_equal is True, then none of the other filters have an opportunity
>> to add this package to the dead_binpkgs set. That's not good is it?
>
> There are four cases we skip including packages: 1) exclude list, 2)
> time limit, 3) non-destructive and package still exists (and now
> optionally runtime deps haven't changed), 4) destructive and package
> is installed. Cases (3) and (4) are non-overlapping.
>
> If none of those cases are true, then we add the package to the
> dead_binpkgs set. The logic looks right to me.
>
> Maybe I'm not understanding.
What I imagine is that you could have some old packages that you
probably want to delete because they're so old, even though their deps
have not changed. Meanwhile you have some packages that are
relatively recent and you'd like to delete them if they have changed deps.
Given the current logic, I guess you'd have to do separate passes, one
to delete packages based on age and another to delete packages based on
changed deps. Maybe it's fine to require separate passes for this kind
of thing. I supposed the alternative would be to add an --or flag that
would allow you to say that you want to delete packages if they are at
least a certain age or they have changed deps.
--
Thanks,
Zac
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 981 bytes --]
next prev parent reply other threads:[~2020-03-03 5:15 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-21 5:29 [gentoo-portage-dev] [PATCH gentoolkit 1/2] eclean: Rewrite findPackages() Matt Turner
2020-02-21 5:29 ` [gentoo-portage-dev] [PATCH gentoolkit 2/2] eclean: Add option to delete binpkgs with changed deps Matt Turner
2020-03-02 6:32 ` Zac Medico
2020-03-02 20:40 ` Matt Turner
2020-03-02 21:02 ` Matt Turner
2020-03-03 3:38 ` Zac Medico
2020-03-02 6:39 ` Zac Medico
2020-03-02 21:11 ` Matt Turner
2020-03-03 5:15 ` Zac Medico [this message]
2020-03-07 6:10 ` Matt Turner
2020-02-21 5:34 ` [gentoo-portage-dev] Re: [PATCH gentoolkit 1/2] eclean: Rewrite findPackages() Matt Turner
2020-02-21 5:36 ` [gentoo-portage-dev] " Michael 'veremitz' Everitt
2020-03-02 6:25 ` Zac Medico
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=b5c7ca65-2b86-42e7-d77d-0245d460e1e2@gentoo.org \
--to=zmedico@gentoo.org \
--cc=gentoo-portage-dev@lists.gentoo.org \
--cc=mattst88@gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox