• Re: [gentoo-user] --depclean and openrc [Was: Wayland! Beware of!]

    From =?utf-8?Q?Arsen_Arsenovi=C4=87?=@21:1/5 to Alan Mackenzie on Tue Sep 24 13:50:01 2024
    Alan Mackenzie <acm@muc.de> writes:

    Hello, Eli.

    On Mon, Sep 23, 2024 at 18:54:50 -0400, Eli Schwartz wrote:
    On 9/23/24 6:08 PM, Alan Mackenzie wrote:
    Do you have that little faith in the Gentoo Developers, that you think
    we'd make a USE flag change that made everyone's systems suddenly break?

    It happens, from time to time, by accident. For example, emerge
    --depclean on my system wants to unmerge openrc. Not a deliberate
    move by the developers, just some accident. But it's the reason I
    don't do emerge --depclean, ever.

    This should not generally be possible. The @system set contains
    virtual/service-manager, so you cannot depclean that.

    It is very much possible, and it happens. The mechanism is understood, you've outlined it below.

    [ .... ]

    So, @system requires you to have any one of:

    - openrc
    - openrc-navi (a testing fork with openrc user services)
    - s6
    - systemd
    - runit
    - daemontools

    It's possible you have installed another one of these packages too. If
    you do, then virtual/service-manager will still be satisfied, and it
    will allow you to depclean openrc.

    Yes, I have daemontools, needed as a component of a qmail variant.

    In that case, it'd be wise to 'emerge -n openrc' to prevent such
    trouble.

    I do wonder if we should keep s6, runit and daemontools in that virutal
    though, given that we can't boot them. Perhaps they'd be fine behind a
    USE flag. I'll propose that.

    In theory, one should not have multiple init systems installed. And
    openrc is the preferred satisfier, so if you use `emerge --depclean` it
    will try to depclean the other package, not openrc. But you can depclean
    openrc itself in that case, since portage doesn't know which init system
    you intend to keep.

    If I had invoked --depclean without the -a (or -p) flag, my system
    would have had openrc removed, and it would have been unbootable.
    This is the sort of thing a new Gentoo user might do.

    Even in this case it emits a warning:

    !!! 'sys-apps/openrc' (virtual/service-manager) is part of your system
    profile.
    !!! Unmerging it may be damaging to your system.

    So, having your system made unbootable is opt-out rather than opt-in.

    to make sure you are fully aware that you intend to depclean a package
    that *might* be the wrong one.

    The context of this discussion was an implication that the Gentoo
    maintainers wouldn't make a change "that made everyone's systems
    suddenly break". I submitted a bug report about --depclean back in
    the summer of 2021 (though I can't find that bug any more). I think
    it was closed as not-a-bug.

    Whoever closed it was wrong, frankly.

    There are several ways this could have been fixed, for example with --depclean preserving packages in system, as well as world.

    That probably would not fix anything here, openrc is not in @system, virtual/service-manager is.

    But it was regarded as not a bug.

    So I think it is fair to say that the Gentoo developers are content for
    some systems (in particular, mine) suddenly to break.

    Developers differ a good bit.. we generally try not to break things.

    I am thus somewhat sceptical about things in Gentoo which may be based
    on assumptions which don't hold in my system. The new +wayland USE
    flag kind of looked a bit like that to me. Actually, it wasn't, so I apologise for my opening post.
    --
    Arsen Arsenović

    --=-=-Content-Type: application/pgp-signature; name="signature.asc"

    -----BEGIN PGP SIGNATURE-----

    iOcEARYKAI8WIQT+4rPRE/wAoxYtYGFSwpQwHqLEkwUCZvKlSV8UgAAAAAAuAChp c3N1ZXItZnByQG5vdGF0aW9ucy5vcGVucGdwLmZpZnRoaG9yc2VtYW4ubmV0RkVF MkIzRDExM0ZDMDBBMzE2MkQ2MDYxNTJDMjk0MzAxRUEyQzQ5MxEcYXJzZW5AZ2Vu dG9vLm9yZwAKCRBSwpQwHqLEk4o2AP9aXZrtUQLhSbISPrQt4ZKAKhs64Y8vtk7h mHTkE6zGEgEAi5Q+CH+HfE9edEwZJ3x21erpJwqJ3Kug6odikKAIXQQ=bgmX
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Alan Mackenzie@21:1/5 to Eli Schwartz on Tue Sep 24 13:40:01 2024
    Hello, Eli.

    On Mon, Sep 23, 2024 at 18:54:50 -0400, Eli Schwartz wrote:
    On 9/23/24 6:08 PM, Alan Mackenzie wrote:
    Do you have that little faith in the Gentoo Developers, that you think
    we'd make a USE flag change that made everyone's systems suddenly break?

    It happens, from time to time, by accident. For example, emerge
    --depclean on my system wants to unmerge openrc. Not a deliberate
    move by the developers, just some accident. But it's the reason I
    don't do emerge --depclean, ever.

    This should not generally be possible. The @system set contains virtual/service-manager, so you cannot depclean that.

    It is very much possible, and it happens. The mechanism is understood,
    you've outlined it below.

    [ .... ]

    So, @system requires you to have any one of:

    - openrc
    - openrc-navi (a testing fork with openrc user services)
    - s6
    - systemd
    - runit
    - daemontools

    It's possible you have installed another one of these packages too. If
    you do, then virtual/service-manager will still be satisfied, and it
    will allow you to depclean openrc.

    Yes, I have daemontools, needed as a component of a qmail variant.

    In theory, one should not have multiple init systems installed. And
    openrc is the preferred satisfier, so if you use `emerge --depclean` it
    will try to depclean the other package, not openrc. But you can depclean openrc itself in that case, since portage doesn't know which init system
    you intend to keep.

    If I had invoked --depclean without the -a (or -p) flag, my system would
    have had openrc removed, and it would have been unbootable. This is the
    sort of thing a new Gentoo user might do.

    Even in this case it emits a warning:

    !!! 'sys-apps/openrc' (virtual/service-manager) is part of your system profile.
    !!! Unmerging it may be damaging to your system.

    So, having your system made unbootable is opt-out rather than opt-in.

    to make sure you are fully aware that you intend to depclean a package
    that *might* be the wrong one.

    The context of this discussion was an implication that the Gentoo
    maintainers wouldn't make a change "that made everyone's systems suddenly break". I submitted a bug report about --depclean back in the summer of
    2021 (though I can't find that bug any more). I think it was closed as not-a-bug.

    There are several ways this could have been fixed, for example with
    --depclean preserving packages in system, as well as world. But it was regarded as not a bug.

    So I think it is fair to say that the Gentoo developers are content for
    some systems (in particular, mine) suddenly to break. I am thus somewhat sceptical about things in Gentoo which may be based on assumptions which
    don't hold in my system. The new +wayland USE flag kind of looked a bit
    like that to me. Actually, it wasn't, so I apologise for my opening
    post.

    --
    Eli Schwartz

    --
    Alan Mackenzie (Nuremberg, Germany).

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Alan Mackenzie@21:1/5 to All on Tue Sep 24 14:40:01 2024
    Hello, Arsen.

    On Tue, Sep 24, 2024 at 13:40:57 +0200, Arsen Arsenović wrote:
    Alan Mackenzie <acm@muc.de> writes:

    [ .... ]

    So, @system requires you to have any one of:

    - openrc
    - openrc-navi (a testing fork with openrc user services)
    - s6
    - systemd
    - runit
    - daemontools

    It's possible you have installed another one of these packages too. If
    you do, then virtual/service-manager will still be satisfied, and it
    will allow you to depclean openrc.

    Yes, I have daemontools, needed as a component of a qmail variant.

    In that case, it'd be wise to 'emerge -n openrc' to prevent such
    trouble.

    Yes.

    I do wonder if we should keep s6, runit and daemontools in that virutal though, given that we can't boot them. Perhaps they'd be fine behind a
    USE flag. I'll propose that.

    Thanks!

    [ .... ]

    The context of this discussion was an implication that the Gentoo maintainers wouldn't make a change "that made everyone's systems
    suddenly break". I submitted a bug report about --depclean back in
    the summer of 2021 (though I can't find that bug any more). I think
    it was closed as not-a-bug.

    Whoever closed it was wrong, frankly.

    I've found the bug. It was 803878. The developer who responded treated
    my bug as though it were a request for personal support, and he
    completely evaded my point that it was a bug in portage which should be
    fixed. It was actually closed as TEST-REQUEST, whatever that means. The
    bug was never addressed.

    There are several ways this could have been fixed, for example with --depclean preserving packages in system, as well as world.

    That probably would not fix anything here, openrc is not in @system, virtual/service-manager is.

    --depclean could preserve anything under a virtual in @system.

    But it was regarded as not a bug.

    So I think it is fair to say that the Gentoo developers are content for some systems (in particular, mine) suddenly to break.

    Developers differ a good bit.. we generally try not to break things.

    :-)

    I am thus somewhat sceptical about things in Gentoo which may be based
    on assumptions which don't hold in my system. The new +wayland USE
    flag kind of looked a bit like that to me. Actually, it wasn't, so I apologise for my opening post.
    --
    Arsen Arsenović

    --
    Alan Mackenzie (Nuremberg, Germany).

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Eli Schwartz@21:1/5 to Alan Mackenzie on Tue Sep 24 17:20:01 2024
    This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------8rM0CAVi7aV8XCVYIfUEuTq9
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: quoted-printable

    On 9/24/24 7:30 AM, Alan Mackenzie wrote:
    This should not generally be possible. The @system set contains
    virtual/service-manager, so you cannot depclean that.

    It is very much possible, and it happens. The mechanism is understood, you've outlined it below.


    Clearly, since I said it is "generally" not possible, I agree that it is sometimes possible and the mechanism for the sometimes is understood.

    After all, I did outline it, and you agree with my outline.

    So why, exactly, are you *arguing* with me, as though you believe I have
    said it is not possible?

    Can you point me to where I said it is not possible?

    I said it's an edge case, not a systematic flaw in Gentoo or portage
    designed to break people's systems. Edge cases should be reported and
    fixed, but also edge cases have trivial workarounds which you can carry
    out: add openrc manually to @world, and it is no longer dangerous to run --depclean as part of regular maintenance of a healthy system.


    It's possible you have installed another one of these packages too. If
    you do, then virtual/service-manager will still be satisfied, and it
    will allow you to depclean openrc.

    Yes, I have daemontools, needed as a component of a qmail variant.


    Sigh, djbware strikes again. The fact that daemontools claims to be a
    service manager, but is needed for random packages WITHOUT being used as
    a service manager, is alarming and probably broken.


    In theory, one should not have multiple init systems installed. And
    openrc is the preferred satisfier, so if you use `emerge --depclean` it
    will try to depclean the other package, not openrc. But you can depclean
    openrc itself in that case, since portage doesn't know which init system
    you intend to keep.

    If I had invoked --depclean without the -a (or -p) flag, my system would
    have had openrc removed, and it would have been unbootable. This is the
    sort of thing a new Gentoo user might do.

    Even in this case it emits a warning:

    !!! 'sys-apps/openrc' (virtual/service-manager) is part of your system
    profile.
    !!! Unmerging it may be damaging to your system.

    So, having your system made unbootable is opt-out rather than opt-in.


    That is a severely unkind interpretation of what I said, and of what
    portage does.

    Also, installing daemontools isn't the kind of thing a new Gentoo user
    might do. Nor is installing qmail.


    to make sure you are fully aware that you intend to depclean a package
    that *might* be the wrong one.

    The context of this discussion was an implication that the Gentoo
    maintainers wouldn't make a change "that made everyone's systems suddenly break". I submitted a bug report about --depclean back in the summer of
    2021 (though I can't find that bug any more). I think it was closed as not-a-bug.

    There are several ways this could have been fixed, for example with --depclean preserving packages in system, as well as world. But it was regarded as not a bug.

    So I think it is fair to say that the Gentoo developers are content for
    some systems (in particular, mine) suddenly to break. I am thus somewhat sceptical about things in Gentoo which may be based on assumptions which don't hold in my system. The new +wayland USE flag kind of looked a bit
    like that to me. Actually, it wasn't, so I apologise for my opening
    post.


    There is nothing sudden about this! No change has been made! According
    to your explanation, the presence of daemontools on a system has always
    made --depclean result in potentially making a system unbootable.

    The Gentoo developers have taken no action to *make* this a problem. It
    is the unfortunate combination of a number of moving parts that together
    result in a historically present issue.

    Inferring from here that Gentoo developers making an active profile
    change with the intent of resulting in systems suddenly breaking while dismissing concerns, is unreasonable, irrational, and paranoid. Sorry.

    Gentoo works better when users report issues and ask for them to be fixed.

    Gentoo works better when users see a change and ask what the
    ramifications are, e.g. "I was curious whether this would have a
    negative effect on my X-only system", rather than immediately leaping to "PSA!!! DANGER ALERT! CODE RED, ALL GENTOO USERS BEWARE!!!"

    You can always post the "PSA!!! DANGER ALERT! CODE RED" if you asked for information and did not get an answer that satisfied you, but the
    initial assumption of good faith would be appreciated.


    ....


    Regarding the daemontools situation:

    """
    for example with --depclean preserving packages in system, as well as world
    """

    Is not a valid suggestion, since --depclean already does precisely this,
    but openrc isn't a package in system, it is a package that satisfies a recursive dependency of system. As far as portage knows, it is already
    doing exactly what you want it to do, as described in the Package
    Manager Specification.

    Perhaps you meant to say that --depclean should preserve all versions of
    an "any-of" dependency. This would break a whole lot of use cases, as
    then one would no longer be able to change their system to suit
    themselves using the intended power of virtuals.

    For example, it would become impossible for a user to install s6-rc into
    their world file, with the intention of using s6-rc as their service
    manager, and then --depclean and remove openrc which they no longer
    intend to use!

    (It would also be impossible to install vim or emacs, then uninstall
    nano. For that matter, it would be impossible for an emacs user to
    install vim, try it out for a day, decide they don't like it, and
    uninstall vim. Vim would be there to stay: forever.)

    Normally, installing s6-rc is an intentional action to use s6-rc. But apparently, "normally" installing daemontools isn't an intentional
    action to use daemontools.

    Thus, reporting this as a bug against portage is illogical, but
    reporting it as a bug against virtual/service-manager is logical. I can understand why a bug submitted "about --depclean" would be closed as
    not-a-bug, since it is... not, in fact, a bug, there is a totally
    different bug.

    Perhaps the person who closed that bug should have thought deeper about
    the implications of such a thing, and reassigned that bug to the correct package with a fixed explanation. And perhaps you should have
    communicated better why it's a problem for you to install daemontools
    *without intending to* and having that affect openrc. For example, by highlighting that daemontools isn't being used as a service manager and
    you do not believe installing "ordinary applications such as qmail"
    should be allowed to override your choice of init system.


    --
    Eli Schwartz


    --------------8rM0CAVi7aV8XCVYIfUEuTq9--

    -----BEGIN PGP SIGNATURE-----

    wnsEABYIACMWIQTnFNnmK0TPZHnXm3qEp9ErcA0vVwUCZvLXfgUDAAAAAAAKCRCEp9ErcA0vV4L7 AP4qAss4wkqIeHjkxaLea9zYcpc7KRQjuB48xFW+ch6JvwD/VrgLGTSiYTjER5sqCZZtQxyhnCQf wg5Y9sPDpr2NKAE=
    =BPTU
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Eli Schwartz@21:1/5 to Alan Mackenzie on Tue Sep 24 17:30:01 2024
    This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------vPPMbY0SvsKyQUEIKL8AvTls
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: quoted-printable

    On 9/24/24 8:34 AM, Alan Mackenzie wrote:
    The context of this discussion was an implication that the Gentoo
    maintainers wouldn't make a change "that made everyone's systems
    suddenly break". I submitted a bug report about --depclean back in
    the summer of 2021 (though I can't find that bug any more). I think
    it was closed as not-a-bug.

    Whoever closed it was wrong, frankly.

    I've found the bug. It was 803878. The developer who responded treated
    my bug as though it were a request for personal support, and he
    completely evaded my point that it was a bug in portage which should be fixed. It was actually closed as TEST-REQUEST, whatever that means. The
    bug was never addressed.


    The bug was confused about the issue at hand and lacking the full
    explanation of why it's an issue it could be understood why it was
    assumed to be a personal support request.

    It is not a bug in portage, which is part of the confusion here. It is a
    bug in virtual/service-manager.

    I reopened the bug report, corrected the description, and assigned it.

    https://bugs.gentoo.org/803878


    --
    Eli Schwartz


    --------------vPPMbY0SvsKyQUEIKL8AvTls--

    -----BEGIN PGP SIGNATURE-----

    wnsEABYIACMWIQTnFNnmK0TPZHnXm3qEp9ErcA0vVwUCZvLZngUDAAAAAAAKCRCEp9ErcA0vV+Lm AQDScqpT9Y3XwYmmUKO2VjxeXP0yUOA99fKdSVskkF+EwwEAzMh2wzAsueTVgBs4yI6WkbUT+kTD aA1xOLF5nHvwQwM=
    =IShP
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Alan Mackenzie@21:1/5 to Eli Schwartz on Tue Sep 24 20:20:01 2024
    Hello, Eli.

    On Tue, Sep 24, 2024 at 11:24:14 -0400, Eli Schwartz wrote:
    On 9/24/24 8:34 AM, Alan Mackenzie wrote:
    The context of this discussion was an implication that the Gentoo
    maintainers wouldn't make a change "that made everyone's systems
    suddenly break". I submitted a bug report about --depclean back in
    the summer of 2021 (though I can't find that bug any more). I think
    it was closed as not-a-bug.

    Whoever closed it was wrong, frankly.

    I've found the bug. It was 803878. The developer who responded treated
    my bug as though it were a request for personal support, and he
    completely evaded my point that it was a bug in portage which should be fixed. It was actually closed as TEST-REQUEST, whatever that means. The bug was never addressed.


    The bug was confused about the issue at hand and lacking the full
    explanation of why it's an issue it could be understood why it was
    assumed to be a personal support request.

    Whenever I get a confused bug report, the first thing I do is work out
    what the problem really is, which often involves getting in touch with
    the OP. That didn't happen with 803878 - the response to my initial
    bug report occurred with 17 minutes of it being raised.

    It is not a bug in portage, which is part of the confusion here. It is a
    bug in virtual/service-manager.

    That is clear now, it wasn't clear in 2021-06 when the bug was raised.
    It is surely not the submitter's job to work out where in a system a bug
    is caused, rather it's the job of the specialist handling the bug.

    I reopened the bug report, corrected the description, and assigned it.

    Thanks! That's appreciated. It's looking like it's now going to get
    fixed. :-)

    https://bugs.gentoo.org/803878


    --
    Eli Schwartz

    --
    Alan Mackenzie (Nuremberg, Germany).

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Alan Mackenzie@21:1/5 to Eli Schwartz on Tue Sep 24 21:00:02 2024
    Hello, Eli.

    On Tue, Sep 24, 2024 at 11:15:10 -0400, Eli Schwartz wrote:
    On 9/24/24 7:30 AM, Alan Mackenzie wrote:

    [ .... ]

    It's possible you have installed another one of these packages too. If
    you do, then virtual/service-manager will still be satisfied, and it
    will allow you to depclean openrc.

    Yes, I have daemontools, needed as a component of a qmail variant.

    Sigh, djbware strikes again. The fact that daemontools claims to be a
    service manager, but is needed for random packages WITHOUT being used as
    a service manager, is alarming and probably broken.

    Yes, we agree on this.

    In theory, one should not have multiple init systems installed. And
    openrc is the preferred satisfier, so if you use `emerge --depclean` it
    will try to depclean the other package, not openrc. But you can depclean >> openrc itself in that case, since portage doesn't know which init system >> you intend to keep.

    If I had invoked --depclean without the -a (or -p) flag, my system would have had openrc removed, and it would have been unbootable. This is the sort of thing a new Gentoo user might do.

    Even in this case it emits a warning:

    !!! 'sys-apps/openrc' (virtual/service-manager) is part of your system
    profile.
    !!! Unmerging it may be damaging to your system.

    So, having your system made unbootable is opt-out rather than opt-in.


    That is a severely unkind interpretation of what I said, and of what
    portage does.

    I don't think somebody whose system would no longer boot would agree with
    you there.

    Also, installing daemontools isn't the kind of thing a new Gentoo user
    might do. Nor is installing qmail.

    I don't see why not. I was new to Gentoo (but knew qmail) when I first installed it on Gentoo.

    to make sure you are fully aware that you intend to depclean a package
    that *might* be the wrong one.

    The context of this discussion was an implication that the Gentoo maintainers wouldn't make a change "that made everyone's systems suddenly break". I submitted a bug report about --depclean back in the summer of 2021 (though I can't find that bug any more). I think it was closed as not-a-bug.

    There are several ways this could have been fixed, for example with --depclean preserving packages in system, as well as world. But it was regarded as not a bug.

    So I think it is fair to say that the Gentoo developers are content for some systems (in particular, mine) suddenly to break. I am thus somewhat sceptical about things in Gentoo which may be based on assumptions which don't hold in my system. The new +wayland USE flag kind of looked a bit like that to me. Actually, it wasn't, so I apologise for my opening
    post.


    There is nothing sudden about this! No change has been made! According
    to your explanation, the presence of daemontools on a system has always
    made --depclean result in potentially making a system unbootable.

    The Gentoo developers have taken no action to *make* this a problem. It
    is the unfortunate combination of a number of moving parts that together result in a historically present issue.

    Inferring from here that Gentoo developers making an active profile
    change with the intent of resulting in systems suddenly breaking while dismissing concerns, is unreasonable, irrational, and paranoid. Sorry.

    Please note that when I raised the matter, I first described it as
    accidental, and I've never meant to imply it was anything else. The
    "content for some systems ... to break" was a direct reference to bug
    803878 being summarily rejected in 2021.

    Anyhow, I think all misunderstandings with respect to that bug have now
    been resolved, and it is getting fixed.

    Gentoo works better when users report issues and ask for them to be fixed.

    As I did with bug 803878.

    Gentoo works better when users see a change and ask what the
    ramifications are, e.g. "I was curious whether this would have a
    negative effect on my X-only system", rather than immediately leaping to "PSA!!! DANGER ALERT! CODE RED, ALL GENTOO USERS BEWARE!!!"

    Perhaps. As already said, I would have been much less jumpy if the explanations which have come in this thread had been in a news item.

    With this change involving wayland, users HAVE to make a decision, namely whether to set USE='-wayland', as both of us have done, or to accept the
    bloat of around 50 packages and many megabytes of things like qt and kde libraries. I think the necessary background information to make that
    decision was missing.

    You can always post the "PSA!!! DANGER ALERT! CODE RED" if you asked for information and did not get an answer that satisfied you, but the
    initial assumption of good faith would be appreciated.

    ....

    Regarding the daemontools situation:

    """
    for example with --depclean preserving packages in system, as well as world """

    Is not a valid suggestion, since --depclean already does precisely this,
    but openrc isn't a package in system, it is a package that satisfies a recursive dependency of system.

    I think that's a rather obscure distinction. Do users actually perceive virtual packages this way? I certainly don't.

    As far as portage knows, it is already doing exactly what you want it
    to do, as described in the Package Manager Specification.

    My machine would have become unbootable long before I got around to
    reading that spec.

    Perhaps you meant to say that --depclean should preserve all versions of
    an "any-of" dependency.

    Yes, that's what I meant - at least those in @system.

    This would break a whole lot of use cases, as then one would no longer
    be able to change their system to suit themselves using the intended
    power of virtuals.

    What is wrong with # emerge --unmerge? I fail to see why that isn't
    entirely satisfactory.

    For example, it would become impossible for a user to install s6-rc into their world file, with the intention of using s6-rc as their service
    manager, and then --depclean and remove openrc which they no longer
    intend to use!

    # emerge --unmerge openrc.

    (It would also be impossible to install vim or emacs, then uninstall
    nano. For that matter, it would be impossible for an emacs user to
    install vim, try it out for a day, decide they don't like it, and
    uninstall vim. Vim would be there to stay: forever.)

    What about the users, who can't be all that rare, who wish all of nano,
    vim, and emacs to be installed? They're application programs, not system services.

    Normally, installing s6-rc is an intentional action to use s6-rc. But apparently, "normally" installing daemontools isn't an intentional
    action to use daemontools.

    Yes.

    Thus, reporting this as a bug against portage is illogical, but
    reporting it as a bug against virtual/service-manager is logical. I can understand why a bug submitted "about --depclean" would be closed as not-a-bug, since it is... not, in fact, a bug, there is a totally
    different bug.

    Perhaps the person who closed that bug should have thought deeper about
    the implications of such a thing, and reassigned that bug to the correct package with a fixed explanation. And perhaps you should have
    communicated better why it's a problem for you to install daemontools *without intending to* and having that affect openrc. For example, by highlighting that daemontools isn't being used as a service manager and
    you do not believe installing "ordinary applications such as qmail"
    should be allowed to override your choice of init system.

    --
    Eli Schwartz

    --
    Alan Mackenzie (Nuremberg, Germany).

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Eli Schwartz@21:1/5 to Alan Mackenzie on Tue Sep 24 21:40:01 2024
    This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------LM9axYhQsFiRf88j0LJqFkws
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: quoted-printable

    On 9/24/24 2:53 PM, Alan Mackenzie wrote:
    Regarding the daemontools situation:

    """
    for example with --depclean preserving packages in system, as well as world >> """

    Is not a valid suggestion, since --depclean already does precisely this,
    but openrc isn't a package in system, it is a package that satisfies a
    recursive dependency of system.

    I think that's a rather obscure distinction. Do users actually perceive virtual packages this way? I certainly don't.

    As far as portage knows, it is already doing exactly what you want it
    to do, as described in the Package Manager Specification.

    My machine would have become unbootable long before I got around to
    reading that spec.


    Indeed, you are correct, but I am not sure why you'd need to read the
    spec anyway.

    That is why I am correct too -- since I am pointing out that things like requesting specific portage / PMS behavior when interacting with virtual packages is not how one should perceive the end-user problem.

    (A virtual package is "just" a package with no installed files. How
    virtual packages are used is a matter of Gentoo policy, not a matter of
    how portage works. And PMS only mentions virtual packages once, and that
    one time is to state that the old way was removed from the spec and that
    new style virtuals are "just packages, and have no special treatment".)

    Since it is "just a package", the solution should lie in fixing
    ::gentoo, not in fixing the "emerge" command. That's what the re-opened
    bug is about. :)


    This would break a whole lot of use cases, as then one would no longer
    be able to change their system to suit themselves using the intended
    power of virtuals.

    What is wrong with # emerge --unmerge? I fail to see why that isn't
    entirely satisfactory.


    Recommending an option that can break your system is a workaround, not a solution. Surely we want to end up in a good state of affairs, eventually?

    The emerge manpage warns you against using --unmerge for good reason.


    (It would also be impossible to install vim or emacs, then uninstall
    nano. For that matter, it would be impossible for an emacs user to
    install vim, try it out for a day, decide they don't like it, and
    uninstall vim. Vim would be there to stay: forever.)

    What about the users, who can't be all that rare, who wish all of nano,
    vim, and emacs to be installed? They're application programs, not system services.


    If you want all 3, then virtual/editor isn't an appropriate way to
    install a large collection of apps. Add them to your world file.

    virtual/editor doesn't restrict how many editors you have installed, it
    simply requires you have at least one.

    And it shouldn't require that any editors you install, cannot be
    uninstalled with --depclean



    --
    Eli Schwartz


    --------------LM9axYhQsFiRf88j0LJqFkws--

    -----BEGIN PGP SIGNATURE-----

    wnsEABYIACMWIQTnFNnmK0TPZHnXm3qEp9ErcA0vVwUCZvMUywUDAAAAAAAKCRCEp9ErcA0vV1ch AP9LIVz8EXUEmgXFBtRa+Vj7TZmeqcJyff/hdVTQetP8RQEAmIxw2iIXIXuasbuqp+Oji6zxHp7j ziIl9fLqmfYYFg4=
    =WKfQ
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Matt Jolly@21:1/5 to Alan Mackenzie on Wed Sep 25 02:40:01 2024
    Hi Alan,

    On 25/9/24 04:53, Alan Mackenzie wrote:
    Perhaps. As already said, I would have been much less jumpy if the explanations which have come in this thread had been in a news item.

    As has been mentioned here this was not news-worthy. There is no
    decision to make or mandatory migration. Users on the desktop
    profile have simply transparently been rolled forward with a USE flag
    change as happens with some regularity.

    With this change involving wayland, users HAVE to make a decision, namely whether to set USE='-wayland', as both of us have done, or to accept the bloat of around 50 packages and many megabytes of things like qt and kde libraries. I think the necessary background information to make that decision was missing.

    Most users of a desktop profile already made their decision: to trust
    the distribution developers to make sane decisions on their behalf, and
    to deviate from the default when they have a need to.

    At the end of the day, unless your workstation is a literal 1990s potato
    you can spare the disk space and CPU time for Wayland if you're on a
    desktop profile. Users that really care about these things are
    encouraged to carefully inspect each of the USE flags changed on a world
    update (and ideally are familiar with Gentoo VCS) so that they can
    inform themselves when a change comes around.

    Cheers,

    Matt

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mitchell Dorrell@21:1/5 to arsen@gentoo.org on Fri Sep 27 02:20:01 2024
    On Tue, Sep 24, 2024, 07:41 Arsen Arsenović <arsen@gentoo.org> wrote:

    I do wonder if we should keep s6, runit and daemontools in that virutal though, given that we can't boot them. Perhaps they'd be fine behind a
    USE flag. I'll propose that.


    So, this is a case where you definitely always need one of the
    dependencies, and sometimes you might want two, but the reason you might
    want the second one would not be to fulfill the purpose represented by the virtual.

    It sounds to me like a set of local USE flags would be perfect, with a REQUIRED_USE enforcing exactly-one-of to choose the dependency. The USE
    flag controls the choice, and if you pull in an alternative service manager
    for an unrelated reason, it doesn't change the USE flag, so it doesn't
    change the dependency which satisfies the virtual. The USE-disabled service managers are simply ignored.

    Would that work? Or is that exactly what you're planning to propose?

    I don't think using just one USE flag would be as safe, unless this is only
    an issue for daemontools. Tons of stuff tries to pull in systemd, but
    blockers generally prevent you from making a mess that way.

    -MD



    <div dir="ltr"><div dir="auto"><div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Sep 24, 2024, 07:41 Arsen Arsenović &lt;<a href="mailto:arsen@gentoo.org" rel="noreferrer" target="_blank">arsen@gentoo.org</a>&gt; wrote:<br></div><
    blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I do wonder if we should keep s6, runit and daemontools in that virutal<br>
    though, given that we can&#39;t boot them.  Perhaps they&#39;d be fine behind a<br>
    USE flag.  I&#39;ll propose that.<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">So, this is a case where you definitely always need one of the dependencies, and sometimes you might want two, but the reason you might want the
    second one would not be to fulfill the purpose represented by the virtual.</div><div dir="auto"><br></div><div dir="auto">It sounds to me like a set of local USE flags would be perfect, with a REQUIRED_USE enforcing exactly-one-of to choose the
    dependency. The USE flag controls the choice, and if you pull in an alternative service manager for an unrelated reason, it doesn&#39;t change the USE flag, so it doesn&#39;t change the dependency which satisfies the virtual. The USE-disabled service
    managers are simply ignored.</div><div dir="auto"><br></div><div dir="auto">Would that work? Or is that exactly what you&#39;re planning to propose?</div><div dir="auto"><br></div><div dir="auto">I don&#39;t think using just one USE flag would be as safe,
    unless this is only an issue for daemontools. Tons of stuff tries to pull in systemd, but blockers generally prevent you from making a mess that way.</div><div dir="auto"><br></div><div dir="auto">-MD</div><div dir="auto"><div class="gmail_quote"><
    blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
    </blockquote></div></div></div>
    </div>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Alan Mackenzie@21:1/5 to Eli Schwartz on Fri Oct 25 21:30:01 2024
    Hello, Eli.

    On Tue, Sep 24, 2024 at 15:36:43 -0400, Eli Schwartz wrote:
    On 9/24/24 2:53 PM, Alan Mackenzie wrote:
    Regarding the daemontools situation:

    """
    for example with --depclean preserving packages in system, as well as world
    """

    Is not a valid suggestion, since --depclean already does precisely this, >> but openrc isn't a package in system, it is a package that satisfies a
    recursive dependency of system.

    I think that's a rather obscure distinction. Do users actually perceive virtual packages this way? I certainly don't.

    As far as portage knows, it is already doing exactly what you want it
    to do, as described in the Package Manager Specification.

    My machine would have become unbootable long before I got around to
    reading that spec.


    Indeed, you are correct, but I am not sure why you'd need to read the
    spec anyway.

    That is why I am correct too -- since I am pointing out that things like requesting specific portage / PMS behavior when interacting with virtual packages is not how one should perceive the end-user problem.

    (A virtual package is "just" a package with no installed files. How
    virtual packages are used is a matter of Gentoo policy, not a matter of
    how portage works. And PMS only mentions virtual packages once, and that
    one time is to state that the old way was removed from the spec and that
    new style virtuals are "just packages, and have no special treatment".)

    Since it is "just a package", the solution should lie in fixing
    ::gentoo, not in fixing the "emerge" command. That's what the re-opened
    bug is about. :)

    What is getting fixed are the data. That leaves the same problem in the
    emerge code to bite again the next time there are faulty data.

    This would break a whole lot of use cases, as then one would no longer
    be able to change their system to suit themselves using the intended
    power of virtuals.

    What is wrong with # emerge --unmerge? I fail to see why that isn't entirely satisfactory.


    Recommending an option that can break your system is a workaround, not a solution. Surely we want to end up in a good state of affairs, eventually?

    We've already established that --depclean can break one's system, not
    just theoretically but in real world use. --unmerge is surely safer -
    you're unmerging specific packages which, presumably, you've already
    checked for safety.

    There doesn't appear to be anything better in emerge - I've looked but
    not found an emerge action to unmerge specific packages only, apart from --unmerge. Why is there not a version of --unmerge which does safety
    checks first?

    The envisaged work flow seems to be doing things like --deselect,
    followed by --depclean, praying that the latter isn't going to break the system. Given how much safer --unmerge is than --depclean, I don't
    understand why the emerge man page puts a bold face warning right at the
    start of --unmerge, but not on --depclean.

    The emerge manpage warns you against using --unmerge for good reason.

    But doesn't state that reason or give a workable alternative. Saying it
    can remove important packages is unhelpful if it doesn't give an
    alternative which can't.

    My current workflow for clearing out orphaned packages is to do emerge
    -p --depclean, then use emerge --unmerge on those packages listed which
    aren't critical system packages or needed application programs.

    (It would also be impossible to install vim or emacs, then uninstall
    nano. For that matter, it would be impossible for an emacs user to
    install vim, try it out for a day, decide they don't like it, and
    uninstall vim. Vim would be there to stay: forever.)

    What about the users, who can't be all that rare, who wish all of
    nano, vim, and emacs to be installed? They're application programs,
    not system services.


    If you want all 3, then virtual/editor isn't an appropriate way to
    install a large collection of apps. Add them to your world file.

    virtual/editor is an obscure internal mechanism of portage. If I emerge
    vim, and emerge Emacs, I expect portage to respect my intentions, as
    well as not assuming I want rid of nano or anything else in @system.

    virtual/editor doesn't restrict how many editors you have installed, it simply requires you have at least one.

    And it shouldn't require that any editors you install, cannot be
    uninstalled with --depclean

    --depclean is too clumsy. It assumes I want to unmerge nano, for reasons
    which are surely not intended UI, but just because that's the way it was implemented. I think a --ask flag only asks whether to delete all listed packages or none, not each package individually. What I would prefer is
    an interface by which _I_ specify which packages are to be removed.

    --
    Eli Schwartz

    --
    Alan Mackenzie (Nuremberg, Germany).

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Walter Dnes@21:1/5 to Alan Mackenzie on Sat Oct 26 05:20:01 2024
    On Fri, Oct 25, 2024 at 07:22:01PM +0000, Alan Mackenzie wrote

    There doesn't appear to be anything better in emerge - I've looked but
    not found an emerge action to unmerge specific packages only, apart from --unmerge. Why is there not a version of --unmerge which does safety
    checks first?

    I've cobbled together a script of my own to handle this. It's /root/bin/autodepclean : NOTE: it does *NOT* clean out anything.
    Rather, it generates a script "cleanscript" in the current directory.
    The idea is that you inspect it first before running ./cleanscript

    ##########################################

    #!/bin/bash
    # autodepclean script v 0.04 released under GPL v3 by Walter Dnes
    # 2023/02/18 Generates a file "cleanscript" in the current directory to
    # remove unused ebuilds, including buildtime-only dependancies.
    #
    # Warning; this script is beta. I recommend that you check the output
    # in cleanscript before running it.
    #
    # With the arrival of "virtual/editor", the script now suggests removing
    # app-editors/nano, which may not be what you want. If you want to keep
    # nano, put it into world.
    #
    # version 0.03 disables the removal of gentoo-sources. Your current kernel
    # is not always the most recent one in /usr/src.
    #
    # version 0.04 adds "--verbose" to the "emerge --depclean". This makes it
    # easier to track down circular dependancies.
    #
    # version 0.05 wipes cleanscript if no files to process. This guards
    # against the edge case of running a flat "emerge --depclean" if there
    # are no ebuilds to remove.

    echo "#!/bin/bash" > cleanscript
    echo "#" >> cleanscript
    echo "emerge --depclean \\" >> cleanscript
    emerge --pretend --depclean |\
    grep -A1 "^ .*/" |\
    grep -v "^ \*" |\
    grep -v "^--" |\
    sed ":/: {
    N
    s:\n::
    s/ selected: /-/
    s/^ / =/
    s/$/ \\\/
    }" | grep -v "=app-editors/nano" |\
    grep -v "=sys-kernel/gentoo-sources" |\
    grep -v "=sys-devel/gcc-" >> cleanscript
    echo ' ; echo ""' >> cleanscript
    echo "revdep-rebuild" >> cleanscript
    chmod 744 cleanscript
    if grep "=" cleanscript >> /dev/null 2>&1 ;
    then
    echo "OK to proceed."
    else
    echo "" > cleanscript
    echo "Nothing to process"
    fi

    ##########################################

    I last updated my system 32 days ago. When I ran "autodepclean" after updating world today, it generated the following "cleanscript"

    ##########################################

    #!/bin/bash
    #
    emerge --depclean \
    =net-dns/bind-tools-9.18.0 \
    =dev-python/pip-24.2-r1 \
    =dev-build/autoconf-2.71-r7 \
    =dev-python/typing-extensions-4.12.2 \
    =dev-python/truststore-0.9.2 \
    =dev-python/rich-13.7.1 \
    =dev-python/resolvelib-1.0.1 \
    =dev-python/pyproject-hooks-1.1.0 \
    =dev-python/distro-1.9.0 \
    =dev-python/distlib-0.3.8 \
    =dev-python/cachecontrol-0.14.0 \
    =dev-python/requests-2.32.3 \
    =dev-python/poetry-core-1.9.0 \
    =dev-python/msgpack-1.0.8 \
    =dev-python/markdown-it-py-3.0.0 \
    =dev-python/colorama-0.4.6 \
    =dev-python/urllib3-2.2.2 \
    =dev-python/mdurl-0.1.2 \
    =dev-python/linkify-it-py-2.0.3 \
    =dev-python/lark-1.2.2 \
    =dev-python/idna-3.8 \
    =dev-python/fastjsonschema-2.20.0 \
    =dev-python/charset-normalizer-3.3.2 \
    =dev-python/certifi-3024.7.22 \
    =dev-python/uc-micro-py-1.0.3 \
    =dev-python/PySocks-1.7.1-r2 \
    ; echo ""
    revdep-rebuild

    ##########################################

    autodepclean takes out a lot of "virtual-perl" packages after a perl
    update, but doesn't cause problems.

    --
    There are 2 types of people in this world
    1) Those who can extrapolate from incomplete data

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)