• [gentoo-dev] Re: EGO_SUM

    From Anna (cybertailor) Vyalkova@21:1/5 to Florian Schmaus on Mon Apr 17 11:30:01 2023
    On 2023-04-17 09:37, Florian Schmaus wrote:
    The EGO_SUM alternatives
    - do not have the same level of trust and therefore have a negative
    impact on security (a dubious tarball someone put somewhere, especially
    when proxy-maint)

    Solution: generate release tarballs in upstream CI/CD.

    - are not easily verifiable

    `go mod verify` (called by eclass) does part of the job.

    - require additional effort when developing ebuilds

    Generating EGO_SUM needs effort on every bump too.

    - hinder the packaging and Gentoo's adoption of Go-based projects, which
    is worrisome as Go is very popular

    Go's approach to package management is the prime cause after all.
    Downstream can only choose what workaround to apply.

    - prevent Go modules from being shared as DISTFILES on the mirrors
    across various packages

    Go modules often use pinned commits, so only a small share is reused.

    Last but not least, we have the same situation in the Rust ecosystem,
    but we allow the EGO_SUM "equivalent" there.

    Rust crates are not such a disaster as Go modules.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Florian Schmaus@21:1/5 to Florian Schmaus on Mon Apr 24 18:20:02 2023
    I like to ask the Gentoo council to vote on whether EGO_SUM should be reinstated ("un-deprecated") or not.

    EGO_SUM is a project-comprehensive matter, as it affects not only
    Go-lang packaging but also the proxy-maint and GURU projects.
    Furthermore, as I have mentioned in my previous emails, the deprecation
    of EGO_SUM has a significant negative impact on our users and is,
    therefore, a global Gentoo issue.

    Asking for council involvement should be a last resort and only be done
    in essential conflicts. But, unfortunately, I was unable to convince the relevant maintainer with arguments that the deprecation of EGO_SUM is
    harmful. And this matter is significant enough to proceed with this.

    Most voices on the related mailing-list threads expressed support for reinstating EGO_SUM. At least, that is my impression. While the
    arguments used to deprecate EGO_SUM were mostly of esthetic nature.

    I want to state what should be common sense. Namely, asking for a
    democratic vote is not a personal attack against any involved person. I contacted the council because of a design dispute about what is best for
    Gentoo and its users. Furthermore, I tried to create the best
    preconditions to reinstate EGO_SUM by working on portage. For example,
    making portage emit a warning if an ebuild process environment grows unreasonably large. And after advocating for reinstating EGO_SUM for a
    long time, I seek closure with that request to the council.

    - Flow


    On 17/04/2023 09.37, Florian Schmaus wrote:
    I want to continue the discussion to re-instate EGO_SUM, potentially
    leading to a democratic vote on whether EGO_SUM should be re-instated or deprecated.

    For the past months, I tried to find *technical reasons*, e.g., reasons
    that affect end-users, that justify the deprecation of EGO_SUM. However,
    I was unable to find any. The closest thing I could find was portage
    being unable to process an ebuild due to its large environment (bug
    830187). However, as this happens while developing an ebuild, it should
    never affect users. Obviously this is a situation where EGO_SUM can not
    be used. Fortunately, it does not affect most Go packages, as seen in my previous analysis of Go packages in ::gentoo and their EGO_SUM size. Furthermore, newer portage versions, with USE=gentoo-dev, will
    proactively warn you if the environment caused by the ebuild becomes large.

    All further arguments for the deprecation of EGO_SUM where of cosmetic nature.

    However, the deprecation of EGO_SUM is harmful to Gentoo and its users.
    To briefly re-iterate the reasons:

    The EGO_SUM alternatives
    - do not have the same level of trust and therefore have a negative
    impact on security (a dubious tarball someone put somewhere, especially
    when proxy-maint)
    - are not easily verifiable
    - require additional effort when developing ebuilds
    - hinder the packaging and Gentoo's adoption of Go-based projects, which
    is worrisome as Go is very popular
    - prevent Go modules from being shared as DISTFILES on the mirrors
    across various packages

    Last but not least, we have the same situation in the Rust ecosystem,
    but we allow the EGO_SUM "equivalent" there.

    So with portage checking the environment of ebuilds and warning if it
    becomes too large, and with the arguments above, I do not see any reason
    we should outlaw EGO_SUM.

    - Flow

    Previous discussions: https://archives.gentoo.org/gentoo-dev/message/1a64a8e7694c3ee11cd48a58a95f2faa
    https://archives.gentoo.org/gentoo-dev/message/d78af7f168cef24bfa302f7f75c3ef11

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Sam James@21:1/5 to Florian Schmaus on Mon Apr 24 22:40:02 2023
    Florian Schmaus <flow@gentoo.org> writes:

    [CCing williamh@ as go-module.eclass & dev-lang/go maintainer.]

    I like to ask the Gentoo council to vote on whether EGO_SUM should be reinstated ("un-deprecated") or not.

    EGO_SUM is a project-comprehensive matter, as it affects not only
    Go-lang packaging but also the proxy-maint and GURU
    projects. Furthermore, as I have mentioned in my previous emails, the deprecation of EGO_SUM has a significant negative impact on our users
    and is, therefore, a global Gentoo issue.

    Asking for council involvement should be a last resort and only be
    done in essential conflicts. But, unfortunately, I was unable to
    convince the relevant maintainer with arguments that the deprecation
    of EGO_SUM is harmful. And this matter is significant enough to
    proceed with this.

    My feeling on this is that this proposal isn't yet complete enough
    for the council to assess. In the various previous discussions, the need
    for _some_ limit to be implemented (derived from EGO_SUM) was clear from
    the QA team and others.

    Voting on the matter now would be reopening the issue which led EGO_SUM
    to be deprecated in the first place, with only a partial mitigation
    (the Portage warning).

    Any such limit should be supported by pkgcheck, allow using EGO_SUM
    for most packages, but exclude the pathological cases which we're
    unlikely to want in ::gentoo.

    (Limit-per-ebuild rather than per-package is one option of many,
    too.)


    Most voices on the related mailing-list threads expressed support for reinstating EGO_SUM. At least, that is my impression. While the
    arguments used to deprecate EGO_SUM were mostly of esthetic nature.

    I want to state what should be common sense. Namely, asking for a
    democratic vote is not a personal attack against any involved
    person.
    [...]

    I agree this is an important issue that affects the practicality
    of using Gentoo for some, and for contributing to Gentoo to others.


    On 17/04/2023 09.37, Florian Schmaus wrote:
    [original msg snipped]

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

    iOUEARYKAI0WIQQlpruI3Zt2TGtVQcJzhAn1IN+RkAUCZEbnkV8UgAAAAAAuAChp c3N1ZXItZnByQG5vdGF0aW9ucy5vcGVucGdwLmZpZnRoaG9yc2VtYW4ubmV0MjVB NkJCODhERDlCNzY0QzZCNTU0MUMyNzM4NDA5RjUyMERGOTE5MA8cc2FtQGdlbnRv by5vcmcACgkQc4QJ9SDfkZDmqwEAt/0AN8Pzu3BQyRgy4O3wUkXiNXsImiMRsa0z AH2rP7EBALJZZnwe9tFaKqqBpz24LIC4BUxkl9LfiJlIa64tfBoK
    =NKA6
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Alexey Zapparov@21:1/5 to sam@gentoo.org on Tue Apr 25 01:00:01 2023
    My 2 cents. As somebody who contributes to ::guru, I would like to
    second that having a burden of hosting dependencies tarballs feels
    like an obstacle. Pursuing upstream projects to adopt dependencies
    bundling is often difficult (it's hard to convince developers to
    change their workflows to make the life of ebuild packagers easier).
    Latter is leading to forking the project on GitHub/Gitlab with the
    only goal to cut release of dependencies tarball.

    On Mon, Apr 24, 2023 at 10:33 PM Sam James <sam@gentoo.org> wrote:


    Florian Schmaus <flow@gentoo.org> writes:

    [CCing williamh@ as go-module.eclass & dev-lang/go maintainer.]

    I like to ask the Gentoo council to vote on whether EGO_SUM should be reinstated ("un-deprecated") or not.

    EGO_SUM is a project-comprehensive matter, as it affects not only
    Go-lang packaging but also the proxy-maint and GURU
    projects. Furthermore, as I have mentioned in my previous emails, the deprecation of EGO_SUM has a significant negative impact on our users
    and is, therefore, a global Gentoo issue.

    Asking for council involvement should be a last resort and only be
    done in essential conflicts. But, unfortunately, I was unable to
    convince the relevant maintainer with arguments that the deprecation
    of EGO_SUM is harmful. And this matter is significant enough to
    proceed with this.

    My feeling on this is that this proposal isn't yet complete enough
    for the council to assess. In the various previous discussions, the need
    for _some_ limit to be implemented (derived from EGO_SUM) was clear from
    the QA team and others.

    Voting on the matter now would be reopening the issue which led EGO_SUM
    to be deprecated in the first place, with only a partial mitigation
    (the Portage warning).

    Any such limit should be supported by pkgcheck, allow using EGO_SUM
    for most packages, but exclude the pathological cases which we're
    unlikely to want in ::gentoo.

    (Limit-per-ebuild rather than per-package is one option of many,
    too.)


    Most voices on the related mailing-list threads expressed support for reinstating EGO_SUM. At least, that is my impression. While the
    arguments used to deprecate EGO_SUM were mostly of esthetic nature.

    I want to state what should be common sense. Namely, asking for a democratic vote is not a personal attack against any involved
    person.
    [...]

    I agree this is an important issue that affects the practicality
    of using Gentoo for some, and for contributing to Gentoo to others.


    On 17/04/2023 09.37, Florian Schmaus wrote:
    [original msg snipped]

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Florian Schmaus@21:1/5 to Sam James on Wed Apr 26 17:40:01 2023
    Hi Sam,

    thanks for your feedback. I am glad for everyone who engages in this
    discussion and shares their views and new information.

    On 24/04/2023 22.28, Sam James wrote:
    Florian Schmaus <flow@gentoo.org> writes:

    [CCing williamh@ as go-module.eclass & dev-lang/go maintainer.]

    I like to ask the Gentoo council to vote on whether EGO_SUM should be
    reinstated ("un-deprecated") or not > In the various previous discussions, the need
    for _some_ limit to be implemented (derived from EGO_SUM) was clear from
    the QA team and others.

    Asking to impose an artificial limit is based on the same unfounded
    belief under which EGO_SUM was deprecated in the first place. I am
    worried that if we follow this, then a potential next step is to argue
    about adding packages to ::gentoo.


    Voting on the matter now would be reopening the issue which led EGO_SUM
    to be deprecated in the first place, with only a partial mitigation
    (the Portage warning).

    I am sorry, but I do not follow. I think this is partly because it is
    not clear "what" (else) to mitigate.

    The discussion would be more productive if someone who is supporting the EGO_SUM deprecation could rationally summarize the main arguments why we deprecated EGO_SUM.


    Any such limit should be supported by pkgcheck, allow using EGO_SUM
    for most packages, but exclude the pathological cases which we're
    unlikely to want in ::gentoo.

    (Limit-per-ebuild rather than per-package is one option of many,
    too.)

    As you probably noticed, I am not aware why we should impose such a
    limit. Especially a per-package limit confines the ability to provide
    the user with multiple versions of a package, which sometimes comes in
    handy [1].


    Most voices on the related mailing-list threads expressed support for
    reinstating EGO_SUM. At least, that is my impression. While the
    arguments used to deprecate EGO_SUM were mostly of esthetic nature.

    I want to state what should be common sense. Namely, asking for a
    democratic vote is not a personal attack against any involved
    person.
    [...]

    I agree this is an important issue that affects the practicality
    of using Gentoo for some, and for contributing to Gentoo to others.

    Same data point: Just in the last few days, multiple users reported in
    #-guru issues they wouldn't have had if EGO_SUM was not deprecated.

    - Flow

    1: From my experience, this is also something Gentoo is praised for.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Matt Turner@21:1/5 to flow@gentoo.org on Wed Apr 26 18:20:02 2023
    On Wed, Apr 26, 2023 at 11:31 AM Florian Schmaus <flow@gentoo.org> wrote:
    The discussion would be more productive if someone who is supporting the EGO_SUM deprecation could rationally summarize the main arguments why we deprecated EGO_SUM.

    You're requesting the changes. It's on you to read the previous
    threads and try to understand. It's not others' responsibilities to
    justify the status quo to you, but tl;dr is Manifest files grew to
    insane sizes for golang packages with many dependencies, and the
    Manifest size is a cost all Gentoo users pay regardless of whether
    they use the package.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Andrew Ammerlaan@21:1/5 to Matt Turner on Wed Apr 26 21:40:01 2023
    On 26/04/2023 18:12, Matt Turner wrote:
    On Wed, Apr 26, 2023 at 11:31 AM Florian Schmaus <flow@gentoo.org> wrote:
    The discussion would be more productive if someone who is supporting the
    EGO_SUM deprecation could rationally summarize the main arguments why we
    deprecated EGO_SUM.

    You're requesting the changes. It's on you to read the previous
    threads and try to understand. It's not others' responsibilities to
    justify the status quo to you, but tl;dr is Manifest files grew to
    insane sizes for golang packages with many dependencies, and the
    Manifest size is a cost all Gentoo users pay regardless of whether
    they use the package.


    This is a valid point and I think it is clear. What is not clear however
    is why the EGO_SUM method should be dropped entirely instead of keeping
    it as an option for overlays (with an appropriate warning). As I
    remember this is where the discussion got 'stuck' last time.

    There are other cases where things are possible but prohibited in
    ::gentoo by policy. E.g. the acct-user eclass allows setting
    ACCT_USER_ID to -1 for dynamic assignment, but we do not allow this in ::gentoo. I don't see why we could not do the same for EGO_SUM, keep it
    as an option, while disallowing it in ::gentoo.

    This way ridiculously large manifests are gone out of ::gentoo. But
    overlays can still use the EGO_SUM method for their go packages if a
    tarball is too much of a hassle. And everyone is happy. It is then the responsibility of the overlay maintainers to ensure that their manifests
    don't grow out of hand. A warning from the eclass and/or pkgcheck should
    ensure that they are aware of the potential problem.

    What am I missing? I truly do not understand why this matter is not
    resolved already and why we continue to have this discussion again and
    again. The solution just seems so simple.

    Best regards,
    Andrew

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Matt Turner@21:1/5 to andrewammerlaan@gentoo.org on Wed Apr 26 22:50:01 2023
    On Wed, Apr 26, 2023 at 3:31 PM Andrew Ammerlaan
    <andrewammerlaan@gentoo.org> wrote:

    On 26/04/2023 18:12, Matt Turner wrote:
    On Wed, Apr 26, 2023 at 11:31 AM Florian Schmaus <flow@gentoo.org> wrote:
    The discussion would be more productive if someone who is supporting the >> EGO_SUM deprecation could rationally summarize the main arguments why we >> deprecated EGO_SUM.

    You're requesting the changes. It's on you to read the previous
    threads and try to understand. It's not others' responsibilities to
    justify the status quo to you, but tl;dr is Manifest files grew to
    insane sizes for golang packages with many dependencies, and the
    Manifest size is a cost all Gentoo users pay regardless of whether
    they use the package.


    This is a valid point and I think it is clear. What is not clear however
    is why the EGO_SUM method should be dropped entirely instead of keeping
    it as an option for overlays (with an appropriate warning). As I
    remember this is where the discussion got 'stuck' last time.

    There are other cases where things are possible but prohibited in
    ::gentoo by policy. E.g. the acct-user eclass allows setting
    ACCT_USER_ID to -1 for dynamic assignment, but we do not allow this in ::gentoo. I don't see why we could not do the same for EGO_SUM, keep it
    as an option, while disallowing it in ::gentoo.

    I suspect allowing it unrestricted in overlays is fine—which seems to
    be the major practical issue that spurred this thread.

    Sam suggested a requirement for a maximum Manifest size (presumably
    thinking about ::gentoo), and Florian replied:

    Asking to impose an artificial limit is based on the same unfounded
    belief under which EGO_SUM was deprecated in the first place. I am
    worried that if we follow this, then a potential next step is to argue
    about adding packages to ::gentoo.

    So I think that's where the disagreement is.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Sam James@21:1/5 to Florian Schmaus on Wed Apr 26 23:00:01 2023
    Florian Schmaus <flow@gentoo.org> writes:

    Hi Sam,

    thanks for your feedback. I am glad for everyone who engages in this discussion and shares their views and new information.

    On 24/04/2023 22.28, Sam James wrote:
    Florian Schmaus <flow@gentoo.org> writes:
    [CCing williamh@ as go-module.eclass & dev-lang/go maintainer.]

    I like to ask the Gentoo council to vote on whether EGO_SUM should be
    reinstated ("un-deprecated") or not > In the various previous discussions, the need
    for _some_ limit to be implemented (derived from EGO_SUM) was clear from
    the QA team and others.

    Asking to impose an artificial limit is based on the same unfounded
    belief under which EGO_SUM was deprecated in the first place. I am
    worried that if we follow this, then a potential next step is to argue
    about adding packages to ::gentoo.


    Voting on the matter now would be reopening the issue which led EGO_SUM
    to be deprecated in the first place, with only a partial mitigation
    (the Portage warning).

    I am sorry, but I do not follow. I think this is partly because it is
    not clear "what" (else) to mitigate.

    The discussion would be more productive if someone who is supporting
    the EGO_SUM deprecation could rationally summarize the main arguments
    why we deprecated EGO_SUM.

    I think Matt handled this in his reply.



    Any such limit should be supported by pkgcheck, allow using EGO_SUM
    for most packages, but exclude the pathological cases which we're
    unlikely to want in ::gentoo.
    (Limit-per-ebuild rather than per-package is one option of many,
    too.)

    As you probably noticed, I am not aware why we should impose such a
    limit. Especially a per-package limit confines the ability to provide
    the user with multiple versions of a package, which sometimes comes in
    handy [1].

    You added a check to Portage (thank you!) to warn when the environment
    size is too big. This is a runtime/dynamic check which we can't
    determine purely from the repository, so pkgcheck can't notice it.

    I would like pkgcheck to have an approximation of a too-large A
    in an ebuild (can use Manifest as a proxy if required) derived from
    the maximum environment size.

    I thought I'd communicated that need for the counterpart before.

    thanks,
    sam

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

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

    iOUEARYKAI0WIQQlpruI3Zt2TGtVQcJzhAn1IN+RkAUCZEmPVF8UgAAAAAAuAChp c3N1ZXItZnByQG5vdGF0aW9ucy5vcGVucGdwLmZpZnRoaG9yc2VtYW4ubmV0MjVB NkJCODhERDlCNzY0QzZCNTU0MUMyNzM4NDA5RjUyMERGOTE5MA8cc2FtQGdlbnRv by5vcmcACgkQc4QJ9SDfkZDJCAD7Bwk5bwf/crCjKPuu36uDbMxyuZATDL/veAut GYkwj58A/3PLT4zDCsytIl62FybSb0cJt1VT+Aa2wQnkPuTC00EG
    4p
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Ulrich Mueller@21:1/5 to All on Thu Apr 27 11:30:01 2023
    On Thu, 27 Apr 2023, Florian Schmaus wrote:

    Network traffic, while also being cheap, may be more of an issue.
    Currently, gentoo-latest.tar.xz is ~41 MiB. So on a conservative approximation ::gentoo compresses to 1/10. So, the 10 Go-packages
    cause 200 KiB of additional traffic. Even when using a low-bandwidth connection, say 12 KiB/s, this only adds 17 extra seconds to the
    transfer duration.

    Manifest files contain binary hashes which don't compress to 1/10.
    A factor of 1/2 may be more realistic (since a byte is represented by
    two hex digits).

    Ulrich

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

    iQFDBAEBCAAtFiEEtDnZ1O9xIP68rzDbUYgzUIhBXi4FAmRKP2oPHHVsbUBnZW50 b28ub3JnAAoJEFGIM1CIQV4ulXIH/iJHyq57FYnDKr/i1EqswKsvlOgH/n/eGldy eXRwn2pUX2GvvlFkm+i6XDoAWWoVsO+WIvwpQP9qpu/qiPuXfOZPLVMIVivMMbsh 1zOOOu3yo4lED7Yyh6V7tqoQvJIlASlDAZo9bQrmMLQTHzJWYxsuz8MhsBKEyFwu UsANB8vKoPEwyhBSW8R9PqOohw9NWYl0KWXAEhJbsCLYTxqlS+3YeOaqtzYfU9S0 bi1UPl2SQ1wCCjMFSTwr/daHzTo60c/rSbo7bxh3h0JWrAmyzfCRKxmsnV4n3NS3 ZWuO+/EeaC519KFIbMjuEoEd2alxgkz5HO7Pw+aboBrAZ1xuL3g=
    =RHKf
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Micha=C5=82_G=C3=B3rny?=@21:1/5 to Florian Schmaus on Thu Apr 27 15:00:01 2023
    On Thu, 2023-04-27 at 09:58 +0200, Florian Schmaus wrote:
    Disk space is cheap.

    No, it's not. Gentoo supports more hardware than your average PC with
    beefy hard drive and/or possibility of installing one. Let's not forget
    that you need a ::gentoo checkout even on a system running purely
    on binary packages.

    Let's not forget that git keeps all history, so every bump of a Go
    package with large Manifest has a permanent negative impact on clone
    size. A few version bumps of Go packages can easily outweigh complete
    history of hundreds of other packages.

    Network traffic, while also being cheap, may be more of an issue.

    Again, you're making assumption based on living in a well-developed area
    and discriminating against users who have shoddy Internet connectivity.

    That said, this all was discussed in the past. I really wish you would
    humble down and try to find a solution that would work for everyone
    instead of showing arrogance and lack of concern for users outside your "majority" view of Gentoo.

    --
    Best regards,
    Michał Górny

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From William Hubbs@21:1/5 to All on Thu Apr 27 20:10:01 2023
    On Mon, Apr 17, 2023 at 02:28:22PM +0500, Anna (cybertailor) Vyalkova wrote:
    On 2023-04-17 09:37, Florian Schmaus wrote:
    The EGO_SUM alternatives
    - do not have the same level of trust and therefore have a negative
    impact on security (a dubious tarball someone put somewhere, especially when proxy-maint)

    I haven't read all of this thread yet, but I did speak with Sam last
    night, and I have another idea about this.

    - I still want to deprecate EGO_SUM, but I'm working in the background
    on reworking get-ego-vendor to generate the data that goes into
    src_uri directly. This would eliminate most of the processing in the
    eclass.


    That, however, doesn't remove the concern about big ebuilds and
    manifests. I will look at the remainder of the thread to figure out
    what is going on with that.

    William

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

    iF0EABECAB0WIQTVeuxEZo4uUHOkQAluVBb0MMRlOAUCZEq4KwAKCRBuVBb0MMRl OMirAJ4rJOV8BKqLlm4CKqodzwo9o3GnSgCfW06Fr1zu2fP4++zzhEMYe07mbEs=
    =gs/T
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From David Seifert@21:1/5 to William Hubbs on Thu Apr 27 20:20:01 2023
    On Thu, 2023-04-27 at 13:00 -0500, William Hubbs wrote:
     That, however, doesn't remove the concern about big ebuilds and  manifests. I will look at the remainder of the thread to figure out
     what is going on with that.

    You do know that the main reason it was deprecated in ::gentoo was the ballooning of manifests, not some SRC_URI-generating implementation
    details of the eclass itself?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Sam James@21:1/5 to Florian Schmaus on Thu Apr 27 23:20:01 2023
    Florian Schmaus <flow@gentoo.org> writes:

    [[PGP Signed Part:Undecided]]
    On 26/04/2023 18.12, Matt Turner wrote:
    On Wed, Apr 26, 2023 at 11:31 AM Florian Schmaus <flow@gentoo.org> wrote: >>> The discussion would be more productive if someone who is supporting the >>> EGO_SUM deprecation could rationally summarize the main arguments why we >>> deprecated EGO_SUM.
    You're requesting the changes. It's on you to read the previous
    threads and try to understand. It's not others' responsibilities to
    justify the status quo to you, but tl;dr is Manifest files grew to
    insane sizes for golang packages with many dependencies, and the
    Manifest size is a cost all Gentoo users pay regardless of whether
    they use the package.

    I am sorry. I did try to understand the reasoning in the previous
    threads. However, I do not conclude that the "cost" users must pay for EGO_SUM justifies EGO_SUM's deprecation. It is the other way around: EGO_SUM's advantages do not explain its deprecation, even if users
    have to pay a cost.

    You write that the "Manifest sizes grew to insane sizes"?

    At which boundary does a package size, the total size of the package's directory, become insane?

    Disk space is cheap. Currently, ::gentoo, without metadata, is around
    470 MiB. If you add 10 Go packages with a whopping 200 KiB each, then
    this adds 2 MiB to that. I need someone to explain how this
    constitutes an issue with disk space. Even if we add 100 Go packages, probably roughly the number of Go packages we have in ::gentoo, then
    those 20 MiB are not significant. Needless to say that the average
    size of a Go package is less than the 200 KiB uses in this
    calculation.

    The numbers you've used here suggest you've missed some of the
    big problematic cases from the past:
    - https://bugs.gentoo.org/833478 (1.1MB manifest)
    - https://bugs.gentoo.org/833477 (1.6MB manifest)

    sam

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

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

    iOUEARYKAI0WIQQlpruI3Zt2TGtVQcJzhAn1IN+RkAUCZErmoV8UgAAAAAAuAChp c3N1ZXItZnByQG5vdGF0aW9ucy5vcGVucGdwLmZpZnRoaG9yc2VtYW4ubmV0MjVB NkJCODhERDlCNzY0QzZCNTU0MUMyNzM4NDA5RjUyMERGOTE5MA8cc2FtQGdlbnRv by5vcmcACgkQc4QJ9SDfkZAO7gEAlqtTQa0Nnfq5n8bn4SHKxrRMPofLDHt8o5U3 UQn2ljUA/0MyHv/VmyN6GPNrgSIRuhMVicjwQE1NEtcsMqaAznAG
    =8vMc
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?utf-8?Q?Pascal_J=C3=A4ger?=@21:1/5 to All on Fri Apr 28 01:20:01 2023
    Maybe I’m getting this wrong, but didn’t we switch to shallow checkouts for the systems repository? I remember it was a major outcry on the mailing list. So at least for end users git keeps no history and our repository history should not impact
    clone size of a shallow copy, should it?

    On Donnerstag, Apr. 27, 2023 at 14:54, Michał Górny <mgorny@gentoo.org (mailto:mgorny@gentoo.org)> wrote:
    On Thu, 2023-04-27 at 09:58 +0200, Florian Schmaus wrote:
    Disk space is cheap.

    No, it's not. Gentoo supports more hardware than your average PC with
    beefy hard drive and/or possibility of installing one. Let's not forget
    that you need a ::gentoo checkout even on a system running purely
    on binary packages.

    Let's not forget that git keeps all history, so every bump of a Go
    package with large Manifest has a permanent negative impact on clone
    size. A few version bumps of Go packages can easily outweigh complete
    history of hundreds of other packages.

    Network traffic, while also being cheap, may be more of an issue.

    Again, you're making assumption based on living in a well-developed area
    and discriminating against users who have shoddy Internet connectivity.

    That said, this all was discussed in the past. I really wish you would
    humble down and try to find a solution that would work for everyone
    instead of showing arrogance and lack of concern for users outside your "majority" view of Gentoo.

    --
    Best regards,
    Michał Górny



    <html xmlns="http://www.w3.org/1999/xhtml"><head> <title></title> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"> </head> <body><div id="CanaryBody"> <div>Maybe I’m getting this wrong, but didn’t  we switch
    to shallow checkouts for the systems repository? I remember it was a major outcry on the mailing list. So at least for end users git keeps no history and our repository history should not impact clone size of a shallow copy, should it? </div></div><div
    id="CanarySig"><div><div style="font-family:Helvetica;"><a href="https://canarymail.io"></a></div> <div><br></div> </div> </div> <div id="CanaryDropbox"> </div> <blockquote id="CanaryBlockquote"> <div> <div>On Donnerstag, Apr. 27, 2023 at 14:54, Michał
    Górny &lt;<a href="mailto:mgorny@gentoo.org">mgorny@gentoo.org</a>&gt; wrote:<br></div> <div>On Thu, 2023-04-27 at 09:58 +0200, Florian Schmaus wrote: <br><blockquote type="cite">Disk space is cheap. <br></blockquote> <br>No, it's not. Gentoo supports
    more hardware than your average PC with <br>beefy hard drive and/or possibility of installing one. Let's not forget <br>that you need a ::gentoo checkout even on a system running purely <br>on binary packages. <br> <br>Let's not forget that git keeps all
    history, so every bump of a Go <br>package with large Manifest has a permanent negative impact on clone <br>size. A few version bumps of Go packages can easily outweigh complete <br>history of hundreds of other packages. </div><div> <br><blockquote type=
    "cite">Network traffic, while also being cheap, may be more of an issue. <br></blockquote> <br>Again, you're making assumption based on living in a well-developed area <br>and discriminating against users who have shoddy Internet connectivity. <br> <br>
    That said, this all was discussed in the past. I really wish you would <br>humble down and try to find a solution that would work for everyone <br>instead of showing arrogance and lack of concern for users outside your <br>"majority" view of Gentoo. <br>
    <br>-- <br>Best regards, <br>Michał Górny <br> <br> <br></div> </div> </blockquote> </body></html>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Sam James@21:1/5 to Pascal.jaeger@leimstift.de on Fri Apr 28 02:40:01 2023
    Pascal Jäger <Pascal.jaeger@leimstift.de> writes:

    Maybe I’m getting this wrong, but didn’t  we switch to shallow
    checkouts for the systems repository? I remember it was a major
    outcry on the mailing list. So at least for end users git keeps no
    history and our repository history should not impact clone size of a
    shallow copy, should it? 


    (Try to avoid top-posting if you can, reply after the message you're
    replying to.)

    rsync copies of the tree aren't affected by this, nor are full
    git clones for development.



    On Donnerstag, Apr. 27, 2023 at 14:54, Michał Górny <
    mgorny@gentoo.org> wrote:
    On Thu, 2023-04-27 at 09:58 +0200, Florian Schmaus wrote:

    Disk space is cheap.


    No, it's not. Gentoo supports more hardware than your average PC
    with
    beefy hard drive and/or possibility of installing one. Let's not
    forget
    that you need a ::gentoo checkout even on a system running purely
    on binary packages.

    Let's not forget that git keeps all history, so every bump of a
    Go
    package with large Manifest has a permanent negative impact on
    clone
    size. A few version bumps of Go packages can easily outweigh
    complete
    history of hundreds of other packages. 


    Network traffic, while also being cheap, may be more of an
    issue.


    Again, you're making assumption based on living in a
    well-developed area
    and discriminating against users who have shoddy Internet
    connectivity.

    That said, this all was discussed in the past. I really wish you
    would
    humble down and try to find a solution that would work for
    everyone
    instead of showing arrogance and lack of concern for users
    outside your
    "majority" view of Gentoo.

    --
    Best regards,
    Michał Górny




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

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

    iOUEARYKAI0WIQQlpruI3Zt2TGtVQcJzhAn1IN+RkAUCZEsVyF8UgAAAAAAuAChp c3N1ZXItZnByQG5vdGF0aW9ucy5vcGVucGdwLmZpZnRoaG9yc2VtYW4ubmV0MjVB NkJCODhERDlCNzY0QzZCNTU0MUMyNzM4NDA5RjUyMERGOTE5MA8cc2FtQGdlbnRv by5vcmcACgkQc4QJ9SDfkZDu/AD7BjeX8pgD9T4iuAcnXC9dgHqoETiYx8m5Gyb3 zXgwpYMBAKyZNPHbbEys2tgbPlNktQuiv2wYlRgDZkQmJVyopsoH
    =Li5z
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Micha=C5=82_G=C3=B3rny?=@21:1/5 to Sam James on Fri Apr 28 06:30:02 2023
    On Fri, 2023-04-28 at 01:38 +0100, Sam James wrote:
    Pascal Jäger <Pascal.jaeger@leimstift.de> writes:

    Maybe I’m getting this wrong, but didn’t  we switch to shallow checkouts for the systems repository? I remember it was a major
    outcry on the mailing list. So at least for end users git keeps no
    history and our repository history should not impact clone size of a shallow copy, should it? 


    (Try to avoid top-posting if you can, reply after the message you're
    replying to.)

    rsync copies of the tree aren't affected by this, nor are full
    git clones for development.


    Err, but full gentoo.git clones are definitely affected! After all,
    that's where huge ebuilds and their Manifests land first.

    --
    Best regards,
    Michał Górny

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Sam James@21:1/5 to mgorny@gentoo.org on Fri Apr 28 07:40:01 2023
    Michał Górny <mgorny@gentoo.org> writes:

    On Fri, 2023-04-28 at 01:38 +0100, Sam James wrote:
    Pascal Jäger <Pascal.jaeger@leimstift.de> writes:

    Maybe I’m getting this wrong, but didn’t  we switch to shallow
    checkouts for the systems repository? I remember it was a major
    outcry on the mailing list. So at least for end users git keeps no
    history and our repository history should not impact clone size of a
    shallow copy, should it? 


    (Try to avoid top-posting if you can, reply after the message you're
    replying to.)

    rsync copies of the tree aren't affected by this, nor are full
    git clones for development.


    Err, but full gentoo.git clones are definitely affected! After all,
    that's where huge ebuilds and their Manifests land first.

    I meant they're not affected by any changes to Portage's new default
    of shallow clones, i.e. it doesn't help the problem for them.


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

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

    iOUEARYKAI0WIQQlpruI3Zt2TGtVQcJzhAn1IN+RkAUCZEtaP18UgAAAAAAuAChp c3N1ZXItZnByQG5vdGF0aW9ucy5vcGVucGdwLmZpZnRoaG9yc2VtYW4ubmV0MjVB NkJCODhERDlCNzY0QzZCNTU0MUMyNzM4NDA5RjUyMERGOTE5MA8cc2FtQGdlbnRv by5vcmcACgkQc4QJ9SDfkZDj3gD/cXcNThqBuTK7c+cc4N4RSGHKv0zOYpnZPC7/ WZ8xKNwA/REJljy0xqhF2TKpfk7SokHkKt8u+bUeah2asAbnuo0A
    =EP22
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Micha=C5=82_G=C3=B3rny?=@21:1/5 to Florian Schmaus on Fri Apr 28 16:40:01 2023
    On Fri, 2023-04-28 at 08:59 +0200, Florian Schmaus wrote:
    On 27/04/2023 14.54, Michał Górny wrote:
    On Thu, 2023-04-27 at 09:58 +0200, Florian Schmaus wrote:
    Disk space is cheap.

    No, it's not. Gentoo supports more hardware than your average PC with beefy hard drive and/or possibility of installing one. Let's not forget that you need a ::gentoo checkout even on a system running purely
    on binary packages.

    You are right. Gentoo supports a broad range of hardware in many
    dimensions, e.g., architecture, release date, and composition.

    You seem to suggest that are Gentoo systems that can not handle the additional disk space consumption of EGO_SUM Go-packages?

    I can not imagine systems that are able to deal with the ~500 MiB
    ::gentoo repository, but would break if the same repository would
    contain 100 additional Go-packages with 200 KiB each.

    Even under a "worst-case" assumption, where we would have 256
    Go-packages with each having a 1 MiB package-directory size, any system
    that can handle the current state of ::gentoo should be able to take the additional 256 MiB (+ metadata).

    That's the slippery slope of exponential growth. If every developer
    thought "oh, worst case it'll grow only 10%"...

    There's roughly 19k packages in Gentoo. Go packages constitute only
    a small number of them, yet maintainers of these packages seem to assume
    it's fine if they take up a significant portion of disk space. That's
    not fair at all.

    In fact, I'm pretty sure I ground some numbers in the previous thread.


    I am only pursuing the modest request to legitimize any decision
    regarding EGO_SUM by a democratic vote.

    As far as I can tell, there was never a democratic vote regarding
    EGO_SUM. But please correct me if I am wrong.

    Since when are eclass design issues "legitimized" by "a democratic
    vote"? In the best case, they are handled via rough consensus.
    In the worst, a single person can't stand a decision and bothers
    everyone until they let them have their way.

    Open source is not a democracy, it's volunteer effort. People dedicate
    their free time and do their best. If you want something done, you have
    to either do it yourself (and do it right!) or convince someone to do
    it. You don't overturn maintainers by "democratic votes", that's
    actually how you shatter open source community and make volunteers stop contributing.

    Believe me, I've made enough bad decisions to know that now.

    And I never said that I believe in representing the majority's opinion.
    That said, I prefer to have this voted on by an all-developer vote than
    a council vote. Then we would know what the majority voted for. Is that possible?

    There's the General Resolution but it's supposed to be used only to
    override Council decisions, so you should go with a Council vote first.

    I don't believe this is a hill worth dying on but if you insist...
    *shrug*. I just wish you'd actually listen to people and put some real
    effort to reach a compromise/consensus rather than pushing your narrow
    solution through with no regard for consequences.

    --
    Best regards,
    Michał Górny

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Robin H. Johnson@21:1/5 to Florian Schmaus on Sun Apr 30 00:40:01 2023
    On Fri, Apr 28, 2023 at 08:59:29AM +0200, Florian Schmaus wrote:
    On 27/04/2023 14.54, Michał Górny wrote:
    On Thu, 2023-04-27 at 09:58 +0200, Florian Schmaus wrote:
    Disk space is cheap.

    No, it's not. Gentoo supports more hardware than your average PC with beefy hard drive and/or possibility of installing one. Let's not forget that you need a ::gentoo checkout even on a system running purely
    on binary packages.

    You are right. Gentoo supports a broad range of hardware in many
    dimensions, e.g., architecture, release date, and composition.

    You seem to suggest that are Gentoo systems that can not handle the additional disk space consumption of EGO_SUM Go-packages?

    I can not imagine systems that are able to deal with the ~500 MiB
    ::gentoo repository, but would break if the same repository would
    contain 100 additional Go-packages with 200 KiB each.

    Even under a "worst-case" assumption, where we would have 256
    Go-packages with each having a 1 MiB package-directory size, any system
    that can handle the current state of ::gentoo should be able to take the additional 256 MiB (+ metadata).
    This email ended up more rambling than I intended, but I wanted to get the data out there, and enable us to look deeper at the problems and potential impacts of the solutions.

    Before the ideas and data I wanted to note the semi-conceptual ways to package new things that have many dependency artifacts (package or distfile).

    Distfile-heavy packages:
    ------------------------
    A package declares many distfile dependencies, but very few package dependencies. The Manifest files in this case suffer a lot of
    duplication - but the growth is mostly limited to ::gentoo (or
    overlays).

    Any change of a package that leads to slightly different Manifest file,
    and while delta compression will reduce the growth factor, it's still
    large (dropping a version, adding a version, adding a remotely-fetched patch.

    Dependency-heavy packages:
    --------------------------
    A package declares many package dependencies, with the distfile growth distributed over MANY packages. Major downside here is that
    build-depends consume a lot more space & inodes to install all the
    depends that are used for the ebuild, esp. when a given distfile might
    be used for only one package. Want to build a complex Go-based package? Debian/Ubuntu use this approach, and it shows might have to explicitly
    package 70+ dependencies to get something you want packaged. https://salsa.debian.org/go-team/packages/consul/-/blob/debian/sid/debian/control#L10-89
    a quick back-of-napkin set of math show the Debian golang dep packages,
    as of 22.04 LTS: ~30% are a dep for only one package; a further 30% are
    a dep for only 2 packages.

    ----
    With the above in mind, we see that it's not just the size of the Manifest, but the combinatorial problem of Manifest revisions, with the saving roll of Git's delta compression.

    I pulled a Git listing of every Manifest blob that was larger than 64KiB
    in Git history (excluding the historical conversion), and then go based
    on those: 2718 blobs in total, taking up ~516MiB, 1600056 DIST entries,
    for 166726 distinct distfiles.

    I tried to break those distfiles down, based on filename patterns, or where they occurred (sorted by number of distfiles here):
    76075 dist-tex (all in the tex category)
    33949 dist-mozilla (firefox*, thunderbird*)
    19314 dist-office
    17802 dist-golang (*%2F@v%2F* files; 10160 .mod, 7642 .zip)
    10478 dist-rust (*.crate files)
    3630 dist-other
    1325 dist-jar-pom (*.jar, *.pom)
    1020 dist-tablebase-syzygy (distfiles for a specific package)
    981 dist-kde (kde manifests that met the threshold)
    980 dist-kernel-and-genpatches
    749 dist-tessdata (again specific packages)
    424 dist-bash (specific packages)
    166727 == total

    The Rust & Golang counts *are* lower bounds, because it's not trivial to
    take into account changes in packaging. However, the upper bound
    E.g. this distfile isn't immediately classifiable as Rust: d3d12-rs-a990c93ec64eeab78f2292763d0715da9dba1d59.gh.tar.gz
    To assume a worst case, assign the dist-other to the category of your choice.

    Ecosystems that are distfile-heavy, in order of Manifest sizes: TeX, Golang, Rust
    Packages that are distfile-heavy: LibreOffice/OpenOffice, Firefox, Thunderbird

    TeX has only a few packages, but the MOST distfiles. dev-texlive/texlive-latexextra/Manifest peaked over 6MB with 15480 entries. For all of Gentoo git history however, there have only been 19 revisions of that Manifest. For all TeX packages, 286 revisions of Manifests over 37 packages. Those 286 Manifest revisions clock in at ~94MB together before compression.

    The Mozilla packages have the next most distfiles:
    4 packages, 768 manifest revisions, but the largest single Manifest was only 285519 bytes.
    ~88MB for all the manifest revision bytes together.

    The office packages (app-office/libreoffice-l10n & app-office/openoffice-bin) are similar to Mozilla stats overall, and not much to discuss.
    ~35MB for all Manifest revisions together.

    With those big 3 out the way, we're into Golang & Rust.
    Golang:
    83 packages, 787 Manifest revisions. Largest manifest was sys-cluster/k3s/Manifest in blob f0e4d1761c0fe80a48b45007ad02024676490841, coming in just under 1MiB. However, the duplication of distfiles between Manifests *really* shows up:
    ~247MB for all Manifest revisions together.

    Rust:
    48 packages, 543 Manifest revisions, largest Manifest was blob af989423f436338fb3e1d4193448dada5b9154da of app-shells/nushell/Manifest at 336646 bytes. ~64MB for all Manifest revisions together.

    --- End of data-analysis.

    The estimates of Manifest compression were fine as a baseline, but Git uses delta compression, and what tends to matter is the total number of unique
    lines in a repo. The expansion *does* matter when the Manifests are checked out at the same time.

    If we took the Debian approach, we'd minimize the number of times a given distfile has data repeated in Manifests, because it'd be abstracted a single dependency entry. The apparent downside is the significant increase in build-only dependencies that are rarely used.

    Previously I'd sketched an idea for out-of-tree Manifests, that hoisted many SRC_URI entries into a *versioned* Manifest artifact that wasn't present inside the tree, but had to be fetched & verified first, and then used to fetch & verify the actual distfiles.

    That Manifest, while relatively small, would be subject to some of hosting problems as the distfile dep tarballs presently used. However it *would* mean that the deps are much harder to tamper with
  • From Sam James@21:1/5 to Florian Schmaus on Tue May 2 21:50:01 2023
    Florian Schmaus <flow@gentoo.org> writes:

    [[PGP Signed Part:Undecided]]
    On 27/04/2023 23.16, Sam James wrote:
    Florian Schmaus <flow@gentoo.org> writes:

    [[PGP Signed Part:Undecided]]
    On 26/04/2023 18.12, Matt Turner wrote:
    On Wed, Apr 26, 2023 at 11:31 AM Florian Schmaus <flow@gentoo.org> wrote:
    The discussion would be more productive if someone who is supporting the >>>>> EGO_SUM deprecation could rationally summarize the main arguments why we >>>>> deprecated EGO_SUM.
    You're requesting the changes. It's on you to read the previous
    threads and try to understand. It's not others' responsibilities to
    justify the status quo to you, but tl;dr is Manifest files grew to
    insane sizes for golang packages with many dependencies, and the
    Manifest size is a cost all Gentoo users pay regardless of whether
    they use the package.

    I am sorry. I did try to understand the reasoning in the previous
    threads. However, I do not conclude that the "cost" users must pay for
    EGO_SUM justifies EGO_SUM's deprecation. It is the other way around:
    EGO_SUM's advantages do not explain its deprecation, even if users
    have to pay a cost.

    You write that the "Manifest sizes grew to insane sizes"?

    At which boundary does a package size, the total size of the package's
    directory, become insane?

    Disk space is cheap. Currently, ::gentoo, without metadata, is around
    470 MiB. If you add 10 Go packages with a whopping 200 KiB each, then
    this adds 2 MiB to that. I need someone to explain how this
    constitutes an issue with disk space. Even if we add 100 Go packages,
    probably roughly the number of Go packages we have in ::gentoo, then
    those 20 MiB are not significant. Needless to say that the average
    size of a Go package is less than the 200 KiB uses in this
    calculation.
    The numbers you've used here suggest you've missed some of the
    big problematic cases from the past:
    - https://bugs.gentoo.org/833478 (1.1MB manifest)
    - https://bugs.gentoo.org/833477 (1.6MB manifest)

    Thanks for pointing those bugs out.

    But please allow me to clarify that I did not miss those "problematic"
    cases from the past.

    This kind of phrasing is the sort of thing which makes it seem like you
    don't appreciate/acknowledge others' concerns.

    I said problematic because it was clearly beyond what your worst-case
    estimates were, i.e. far more than what you were saying would be a
    large amount for the purposes of calculations.


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

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

    iOUEARYKAI0WIQQlpruI3Zt2TGtVQcJzhAn1IN+RkAUCZFFonF8UgAAAAAAuAChp c3N1ZXItZnByQG5vdGF0aW9ucy5vcGVucGdwLmZpZnRoaG9yc2VtYW4ubmV0MjVB NkJCODhERDlCNzY0QzZCNTU0MUMyNzM4NDA5RjUyMERGOTE5MA8cc2FtQGdlbnRv by5vcmcACgkQc4QJ9SDfkZDl5wEAoXKpyB/L7/tJmxAyYRsD7+cwtFWvA2kRm9+o zBsl5CUBAJtn3fAQ6EytUhKY+Uxtvooi90M4d7eN2rV7i2jA0C8O
    =Ne+j
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Sam James@21:1/5 to Florian Schmaus on Tue May 2 21:40:01 2023
    Florian Schmaus <flow@gentoo.org> writes:

    [[PGP Signed Part:Undecided]]
    On 28/04/2023 16.34, Michał Górny wrote:
    On Fri, 2023-04-28 at 08:59 +0200, Florian Schmaus wrote:
    And I never said that I believe in representing the majority's opinion.
    That said, I prefer to have this voted on by an all-developer vote than
    a council vote. Then we would know what the majority voted for. Is that
    possible?
    There's the General Resolution but it's supposed to be used only to
    override Council decisions, so you should go with a Council vote first.

    Could we temporarily re-purpose Gentoo's election infrastructure to
    hold an all-developer opinion poll?

    I imagine a poll asking for opinions, nothing binding. Furthermore,
    since Gentoo's voting infrastructure uses the Condorcet method, we
    could have multiple options.


    You still haven't addressed all concerns on this ML, including my
    last email, so I'd say this is a bit premature.


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

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

    iOUEARYKAI0WIQQlpruI3Zt2TGtVQcJzhAn1IN+RkAUCZFFm7V8UgAAAAAAuAChp c3N1ZXItZnByQG5vdGF0aW9ucy5vcGVucGdwLmZpZnRoaG9yc2VtYW4ubmV0MjVB NkJCODhERDlCNzY0QzZCNTU0MUMyNzM4NDA5RjUyMERGOTE5MA8cc2FtQGdlbnRv by5vcmcACgkQc4QJ9SDfkZDnOgD+LKvPoWWxtrpasZ3rYY5mob0bBAZxPWuhL2oA Kjz+EpsBAI9gbFORIyR+JJ3eeviRsKm116AWns1lPH2ClhLssNMG
    =NE1Y
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Matt Turner@21:1/5 to flow@gentoo.org on Tue May 2 22:10:01 2023
    On Tue, May 2, 2023 at 3:33 PM Florian Schmaus <flow@gentoo.org> wrote:
    I performed a tree-wide analysis regarding EGO_SUM and IIRC published
    the results in my previous post about EGO_SUM last year. https://dev.gentoo.org/~flow/ego_sum-2022-01-01.txt shows the analysis results for ::gentoo as of 2022-01-01 (I've recently updated the file to contain the Manifest-size too).

    Minikube (#833478) and k3s (#833477) appear there, too, with package-directory sizes over one MiB. However, those packages are under
    the top five of packages using EGO_SUM by package-directory size.

    They do not represent the average Go package.

    The mean size of a Manifest of a package using EGO_SUM was 186 KiB, and
    the median was even lower at 84 KiB. Only a tiny percentage of packages, below 5%, had a Manifest-size above one MiB.

    It sounds like you've identified a compelling rationale for a Manifest
    size limit.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Anna (cybertailor) Vyalkova@21:1/5 to Florian Schmaus on Tue May 30 18:40:01 2023
    On 2023-05-30 17:52, Florian Schmaus wrote:
    To prevent harm from Gentoo, we should reach an agreement that everyone
    can live with. To achieve a consensus, and since I can not rule out that
    I missed a post that includes specific numbers, please share your ideas
    on how EGO_SUM could be reinstated in ::gentoo by replying to this mail.

    Instate a policy to allow EGO_SUM in the gentoo tree:

    1) from proxied maintainers
    2) if there are no more than N entries

    and disallow use otherwise.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Arthur Zamarin@21:1/5 to Florian Schmaus on Tue May 30 18:40:01 2023
    To: flow@gentoo.org (Florian Schmaus)

    This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------1ifbccXJklBGZ0VdP5KV5Q5a
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: quoted-printable

    On 30/05/2023 18.52, Florian Schmaus wrote:

    I am thankful that the council considered my request to vote on the
    topic. However, the council decided not to vote on this in its last
    session and to return the issue to the mailing lists.

    Some see the requirement of some limitations as necessity it comes to reinstating EGO_SUM. Unfortunately, I could not see specific numbers mentioned since June 2022 in the three EGO_SUM threads [1, 2, 3] I am
    aware of.

    To prevent harm from Gentoo, we should reach an agreement that everyone
    can live with. To achieve a consensus, and since I can not rule out that
    I missed a post that includes specific numbers, please share your ideas
    on how EGO_SUM could be reinstated in ::gentoo by replying to this mail.

    I still want to ask why in ::gentoo should it be enabled? I'm trying to understand why? If you speak about overlays, then I agree that it should
    be allowed there, but I don't see any benefit to it existence in
    ::gentoo. My reason for that difference: the existence of gentoo-devs
    with access to ~devspace.

    Currently the best solution *per package* is to speak with upstream, to
    add a CI workflow which create a source tarball which includes `vendor`
    dir. This is the best way, and I'm doing that for multiple upstream of
    some random Go packages in ::gentoo. But I know the disadvantage -
    requirement to speak with upstream, explain why, and add it to the
    system. This is best long-run solution, but more hardships.

    Having EGO_SUM would significantly increase the security of Gentoo's
    users (amongst other benefits).

    While technically correct, we return to same "confidence" issue in the
    dev (a dev can add malicious code into ebuild). Yes, adding malicious
    code inside vendor tarball to hide it is easier and robbat2 demonstrated
    it as working.

    How can we solve it? One weird idea I have is to use vendor tarball
    consisting of multiple tarballs per package, and include hash for it
    inside the vendor tarball. I think you can compare the manifest stored
    in `go.sum` file in source code with the once from the tarball
    (verification of that claim needed). As a result I think we can offline
    verify it.

    Personally, I do not see that we currently need any form of limitation
    to reinstate EGO_SUM. I substantiated this with data based on a two-year history analysis of gentoo.git. The summary is that the
    - size increase of ::gentoo is unproblematic for users
    - additional sync delta of ::gentoo is unproblematic for users
    - higher rate of gentoo.git's increase is unproblematic for developers
    when we reinstate EGO_SUM in ::gentoo.

    Why "unproblematic"? Where I leave I have quite high RTT, meaning each
    download takes long initial time until fetches with good speed. Fetching
    a lot of small files is really bad for me (even from mirror in same
    country, sigh). Having big deltas hit hard the git packs, higher load on
    a lot of places.

    Thinking on infra side, I remember stories of the issues when go.pkg was
    doing full `git clone` (not shallow copy) of the whole gentoo.git
    repository. Now imagine we allow the huge and frequent deltas of go
    modules to run, image how fast we get to huge full repository. Yes, now
    we blacklist this stupid failure of go.pkg, but it might happen with
    other service. Full git clones aren't that rare.

    Also note that Go packages tend to update frequently (because of all the bundling and security issues). The fact you don't see a lot of updates
    in ::gentoo is because many of them are under less active developers
    (not to offend anyone, it is fine to skip bumps were a good place, not
    my place to criticize!).

    Also please remember the issue of scale. Look at the amount of packages
    under dev-python. There are a lot of tools written in Go.

    Therefore, we could (and IMHO should) simply un-deprecate EGO_SUM.
    However, I would review this decision once the number of Go packages has doubled or in two years (whatever comes first).

    Many share the concerns of an EGO_SUM-less world. I know that some seek
    a compromise by reinstating EGO_SUM with some limitations. The ::gentoo repository is able to handle packages (at least) up to the range of 2 to
    1.5 MiB total package-directory size. Therefore I propose a limit in
    that range.

    My solution is as such:

    1. Undeprecate EGO_SUM in eclass
    2. Forbid it's usage in ::gentoo (done by pkgcheck, error level, will
    fail CI and as such we can see the misuse). Overlays are allowed.
    3. Maintainer starts talks with upstreams to add release workflow to
    create vendored source tarball, in hopes of it succeeding. "Start early,
    to future profit". I see this flow similar to the "always try to
    upstream patches".
    4. Until upstream adds it, in ::gentoo use vendor tarballs.

    I also think many devs agree with this solution, but I can't talk for
    them, so I'll be happy agreeing devs can at least reply shortly their
    agreement or disagreement.

    - Flow


    1: https://www.mail-archive.com/gentoo-dev@lists.gentoo.org/msg95175.html
    2: https://www.mail-archive.com/gentoo-dev@lists.gentoo.org/msg95279.html
    3: https://www.mail-archive.com/gentoo-dev@lists.gentoo.org/msg97310.html

    I must say this conversation around EGO_SUM makes me a little sad the
    long time it takes, and sometimes it feels like it derails to bad
    directions (I mean less helpful once) too often. I think we should go to
    the way Flow - suggest concrete action items (something easier for
    Council / all devs to vote).

    Also sorry this mail is a little jumping all over, it is quite hard for
    me to write long mails in English, so if paragraphs are less coherent,
    I'll be happy to explain them more :)

    --
    Arthur Zamarin
    arthurzam@gentoo.org
    Gentoo Linux developer (Python, pkgcore stack, Arch Teams, GURU)


    --------------1ifbccXJklBGZ0VdP5KV5Q5a--

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

    iQEzBAEBCgAdFiEE/axFlFuH2ptjtO5EAqCvUD0SBQQFAmR2Jc8ACgkQAqCvUD0S BQRQLAf/SEaFYwVm3yrAlSCGdM7/3hTwQ43iF2owAOoJoWKK/2cj7pcM1fSMU8Yp FsJNlC7QoJNHPFtkedAJrquPTbZBa/Unf03xy6k8AQlXtEAcc+oSrqyBoF3SCaMG vscH0XsHzNb36lOI8ZjEAuRisp1kDz9Gc+RHgNM7964NuwRkl7TvnQcRkSphxz2D Us+jZB3gPQOzSp+Jwp90PmDHugqaGkF7TaEEZjg5mL6HEz3kdwfQhQiCGkULaz7p ci0IXUQCz4BXiQJdDg3ppyO6a99HuVGVvDuLZt9OPYb4a03jAjwt37uzNKZwQPFH 4Rh9EptUo6jLpfZQ5O6XbtAprp+DVQ==
    =mj24
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Oskari Pirhonen@21:1/5 to All on Wed May 31 07:10:01 2023
    On Tue, May 30, 2023 at 21:30:49 +0500, Anna (cybertailor) Vyalkova wrote:
    On 2023-05-30 17:52, Florian Schmaus wrote:
    To prevent harm from Gentoo, we should reach an agreement that everyone can live with. To achieve a consensus, and since I can not rule out that
    I missed a post that includes specific numbers, please share your ideas
    on how EGO_SUM could be reinstated in ::gentoo by replying to this mail.

    Instate a policy to allow EGO_SUM in the gentoo tree:

    1) from proxied maintainers

    I agree that allowing EGO_SUM in ::gentoo at least for proxy maintained packages would be a good idea. I don't have any Go packages, but I can
    see how it could be cumbersome to get a tarball hosted somewhere.

    - Oskari

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

    iHUEABYIAB0WIQQfOU+JeXjo4uxN6vCp8he9GGIfEQUCZHbU2QAKCRCp8he9GGIf EYlYAQDlnFnIqUMoDlF7OXujvfdOsbDn6URNiIP/LQdQcRf/twD7BLvt3rAiFLhH P6vrPbQUu6iA8hhXOGCuDAJAxbMkcAg=
    =5cE6
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From pascal.jaeger leimstift.de@21:1/5 to All on Wed May 31 08:40:01 2023
    Arthur Zamarin <arthurzam@gentoo.org> hat am 30.05.2023 18:35 CEST geschrieben:


    Currently the best solution *per package* is to speak with upstream, to
    add a CI workflow which create a source tarball which includes `vendor`
    dir. This is the best way, and I'm doing that for multiple upstream of
    some random Go packages in ::gentoo. But I know the disadvantage - requirement to speak with upstream, explain why, and add it to the
    system. This is best long-run solution, but more hardships.


    I would like to add to this, that even if upstream is not willing to do this, devs could automate the creation of vendor tarballs using GitHub actions. I only did this for an upstream repositories that are also on GitHub and for projects written in Rust.
    Initially I did this for complicated Rust projects with several git submodules and submodules of submodules. But with a little tweaking of the GitHub actions I think it would be possible to use it for Go as well.
    https://wiki.gentoo.org/wiki/User:Schievel/autocreate_rust_sources

    This is additional initial work, but once you set it up, you don't even have the extra work of creating a new EGO_SUM for every package release. Ideally you just have to change the version in the file name of the ebuild to bump a package.

    Security wise I do not see a difference between this and creating the vendor tarball manually and uploading it to GitHub, as many proxy maintainers without devspace do it.

    Regards
    Pascal

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Andrew Ammerlaan@21:1/5 to Arthur Zamarin on Wed May 31 08:30:01 2023
    On 30/05/2023 18:35, Arthur Zamarin wrote:
    My solution is as such:

    1. Undeprecate EGO_SUM in eclass
    2. Forbid it's usage in ::gentoo (done by pkgcheck, error level, will
    fail CI and as such we can see the misuse). Overlays are allowed.
    3. Maintainer starts talks with upstreams to add release workflow to
    create vendored source tarball, in hopes of it succeeding. "Start early,
    to future profit". I see this flow similar to the "always try to
    upstream patches".
    4. Until upstream adds it, in ::gentoo use vendor tarballs.

    I also think many devs agree with this solution, but I can't talk for
    them, so I'll be happy agreeing devs can at least reply shortly their agreement or disagreement.

    I fully agree with Arthur

    With regards to proxy-maintained packages: The proxy can generate and
    upload the vendor tarball for the proxied, this is not that much extra
    work.

    Best regards,
    Andrew

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Ryan Qian@21:1/5 to All on Wed May 31 10:50:01 2023
    --Apple-Mail-184F06FF-057D-4D08-9732-333D0354851C
    Content-Type: text/plain;
    charset=utf-8
    Content-Transfer-Encoding: quoted-printable

    Just FYI, here is a working GitHub action for generating vendor tarballs in the same repo but with different branches https://github.com/bekcpear/gopkg-vendors/blob/main/.github/workflows/make-vendor.yaml
    It has already worked for a long time.

    Sincerely.
    Ryan

    在 2023年5月31日,14:20,Andrew Ammerlaan <andrewammerlaan@gentoo.org> 写道:

    On 30/05/2023 18:35, Arthur Zamarin wrote:
    My solution is as such:
    1. Undeprecate EGO_SUM in eclass
    2. Forbid it's usage in ::gentoo (done by pkgcheck, error level, will
    fail CI and as such we can see the misuse). Overlays are allowed.
    3. Maintainer starts talks with upstreams to add release workflow to
    create vendored source tarball, in hopes of it succeeding. "Start early,
    to future profit". I see this flow similar to the "always try to
    upstream patches".
    4. Until upstream adds it, in ::gentoo use vendor tarballs.
    I also think many devs agree with this solution, but I can't talk for
    them, so I'll be happy agreeing devs can at least reply shortly their
    agreement or disagreement.

    I fully agree with Arthur

    With regards to proxy-maintained packages: The proxy can generate and upload the vendor tarball for the proxied, this is not that much extra work.

    Best regards,
    Andrew




    --Apple-Mail-184F06FF-057D-4D08-9732-333D0354851C
    Content-Type: text/html;
    charset=utf-8
    Content-Transfer-Encoding: quoted-printable

    <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto">Just FYI, here is a working GitHub action for generating vendor tarballs in the same repo but with different branches&nbsp;<a href="https://github.com/
    bekcpear/gopkg-vendors/blob/main/.github/workflows/make-vendor.yaml">https://github.com/bekcpear/gopkg-vendors/blob/main/.github/workflows/make-vendor.yaml</a><div>It has already worked for a long time.<br><br><div dir="ltr">Sincerely.<br><div>Ryan</div><
    /div><div dir="ltr"><br><blockquote type="cite">在 2023年5月31日,14:20,Andrew Ammerlaan &lt;andrewammerlaan@gentoo.org&gt; 写道:<br><br></blockquote></div><blockquote type="cite"><div dir="ltr"><span>On 30/05/2023 18:35, Arthur Zamarin
    wrote:</span><br><blockquote type="cite"><span>My solution is as such:</span><br></blockquote><blockquote type="cite"><span>1. Undeprecate EGO_SUM in eclass</span><br></blockquote><blockquote type="cite"><span>2. Forbid it's usage in ::gentoo (done by
    pkgcheck, error level, will</span><br></blockquote><blockquote type="cite"><span>fail CI and as such we can see the misuse). Overlays are allowed.</span><br></blockquote><blockquote type="cite"><span>3. Maintainer starts talks with upstreams to add
    release workflow to</span><br></blockquote><blockquote type="cite"><span>create vendored source tarball, in hopes of it succeeding. "Start early,</span><br></blockquote><blockquote type="cite"><span>to future profit". I see this flow similar to the "
    always try to</span><br></blockquote><blockquote type="cite"><span>upstream patches".</span><br></blockquote><blockquote type="cite"><span>4. Until upstream adds it, in ::gentoo use vendor tarballs.</span><br></blockquote><blockquote type="cite"><span>I
    also think many devs agree with this solution, but I can't talk for</span><br></blockquote><blockquote type="cite"><span>them, so I'll be happy agreeing devs can at least reply shortly their</span><br></blockquote><blockquote type="cite"><span>agreement
    or disagreement.</span><br></blockquote><span></span><br><span>I fully agree with Arthur</span><br><span></span><br><span>With regards to proxy-maintained packages: The proxy can generate and upload the vendor tarball for the proxied, this is not that
    much extra work.</span><br><span></span><br><span>Best regards,</span><br><span>Andrew</span><br><span></span><br><span></span><br><span></span><br></div></blockquote></div></body></html>
    --Apple-Mail-184F06FF-057D-4D08-9732-333D0354851C--

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Arsen =?utf-8?Q?Arsenovi=C4=87?=@21:1/5 to Andrew Ammerlaan on Wed May 31 11:20:01 2023
    Andrew Ammerlaan <andrewammerlaan@gentoo.org> writes:

    On 30/05/2023 18:35, Arthur Zamarin wrote:
    My solution is as such:
    1. Undeprecate EGO_SUM in eclass
    2. Forbid it's usage in ::gentoo (done by pkgcheck, error level, will
    fail CI and as such we can see the misuse). Overlays are allowed.
    3. Maintainer starts talks with upstreams to add release workflow to
    create vendored source tarball, in hopes of it succeeding. "Start early,
    to future profit". I see this flow similar to the "always try to
    upstream patches".
    4. Until upstream adds it, in ::gentoo use vendor tarballs.
    I also think many devs agree with this solution, but I can't talk for
    them, so I'll be happy agreeing devs can at least reply shortly their
    agreement or disagreement.

    I fully agree with Arthur

    +1

    With regards to proxy-maintained packages: The proxy can generate and upload the vendor tarball for the proxied, this is not that much extra work.

    This expands the required trust in proxy maintainers, in a way which is unusually easy to double check.

    We can automate generating vendor tarballs (or more). If implemented
    such that tarballs are reproducible, it should be easy to verify by
    running the same procedure from a different host and verifying.

    There would still be a slight cost to an initial 'whitelist package'
    step or such, but IMO, that's not a very large cost. (and, also,
    possibly some other mechanism could be implemented)

    Best regards,
    Andrew


    --
    Arsen Arsenović

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

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

    iOcEARYKAI8WIQT+4rPRE/wAoxYtYGFSwpQwHqLEkwUCZHcP318UgAAAAAAuAChp c3N1ZXItZnByQG5vdGF0aW9ucy5vcGVucGdwLmZpZnRoaG9yc2VtYW4ubmV0RkVF MkIzRDExM0ZDMDBBMzE2MkQ2MDYxNTJDMjk0MzAxRUEyQzQ5MxEcYXJzZW5AZ2Vu dG9vLm9yZwAKCRBSwpQwHqLEkzMfAQCybGrXPKYvOSjFwAy9/+xkJOwTnvgRDFSG 97VLqJdWHgEAzvPZYQmPeVmSlOmsww/2S7t26E28Bl4g7OBVGB9grgQ=0YWX
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From William Hubbs@21:1/5 to pascal.jaeger leimstift.de on Thu Jun 1 06:10:02 2023
    --G0JJ/glcT8jU5bEP
    Content-Type: text/plain; charset=us-ascii
    Content-Disposition: inline
    Content-Transfer-Encoding: quoted-printable

    On Wed, May 31, 2023 at 08:30:58AM +0200, pascal.jaeger leimstift.de wrote:

    Arthur Zamarin <arthurzam@gentoo.org> hat am 30.05.2023 18:35 CEST geschrieben:


    Currently the best solution *per package* is to speak with upstream, to
    add a CI workflow which create a source tarball which includes `vendor` dir. This is the best way, and I'm doing that for multiple upstream of
    some random Go packages in ::gentoo. But I know the disadvantage - requirement to speak with upstream, explain why, and add it to the
    system. This is best long-run solution, but more hardships.


    I would like to add to this, that even if upstream is not willing to do this, devs could automate the creation of vendor tarballs using GitHub actions. I only did this for an upstream repositories that are also on GitHub and for projects written in
    Rust. Initially I did this for complicated Rust projects with several git submodules and submodules of submodules. But with a little tweaking of the GitHub actions I think it would be possible to use it for Go as well.
    https://wiki.gentoo.org/wiki/User:Schievel/autocreate_rust_sources

    This is additional initial work, but once you set it up, you don't even have the extra work of creating a new EGO_SUM for every package release. Ideally you just have to change the version in the file name of the ebuild to bump a package.

    Security wise I do not see a difference between this and creating the vendor tarball manually and uploading it to GitHub, as many proxy maintainers without devspace do it.

    Can we please avoid vendor tarballs? there are situations, say when a dependency includes non-go code, when vendor tarballs do not work.
    That is why I went with the dependency tarballs.

    I haven't written github actions, but here is the script I use to create
    them, partly thanks to Sam for this.

    This is stored in my ~/bin directory and I run it from the top level of
    a go project which does not have a "vendor" directory.

    William

    --G0JJ/glcT8jU5bEP
    Content-Type: text/plain; charset=us-ascii
    Content-Disposition: attachment; filenamep-tarball

    #!/bin/bash

    if [[ -z $1 ]]; then
    printf "no tarball name specified\n" >&2
    return 1
    fi

    GOMODCACHE=${PWD}/go-mod go mod download -modcacherw
    XZ_OPT='-T0 -9' \
    tar --owner 0 --group 0 --posix -acf ${1}-deps.tar.xz go-mod
    rm -fr go-mod

    --G0JJ/glcT8jU5bEP--

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

    iF0EABECAB0WIQTVeuxEZo4uUHOkQAluVBb0MMRlOAUCZHgX4QAKCRBuVBb0MMRl ONVqAKCvgbE9gMT+gqo4V8Iew2YyTEzyZACgpgPDj0QUQ7wr+HVUYY90n/Y2ZvU=
    =2/6T
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Micha=C5=82_G=C3=B3rny?=@21:1/5 to Florian Schmaus on Fri Jun 2 10:40:01 2023
    On Fri, 2023-06-02 at 10:17 +0200, Florian Schmaus wrote:
    On 30/05/2023 18.35, Arthur Zamarin wrote:
    On 30/05/2023 18.52, Florian Schmaus wrote:
    To prevent harm from Gentoo, we should reach an agreement that everyone can live with. To achieve a consensus, and since I can not rule out that I missed a post that includes specific numbers, please share your ideas on how EGO_SUM could be reinstated in ::gentoo by replying to this mail.

    I still want to ask why in ::gentoo should it be enabled? I'm trying to understand why?

    In short: Auditability

    Let me try to explain with a simplified example.

    Gentoo's ebuilds contain the instructions to transform source code
    (input) via a compilation process (transformation) into a binary image (output).

    A pseudo-example ebuild may contain the following

    foo-1.0.ebuild:
    ```
    # Input
    SRC_URI="https://foo-soft.org/foo/1.0/foo-1.0.tar.gz"

    # Transformation
    src_compile() {
    emake foo
    }

    # Output into imagedir $D
    src_install() {
    emake DESTDIR="${D}" foo-install
    }
    ```

    A Gentoo developer, Gentoo user, or, anyone can look at the ebuild and immediately tell that it will likely not inject malicious code into the resulting binary image. Furthermore, the only input is from upstream,
    and while you may not look at every line of source code, you assign a certain trust level to upstream and probably assume that the input is
    also likely non-malicious.


    This reasoning is seriously flawed. A "typical" EGO_SUM ebuilds
    contains dozens to hundreds of different packages from dozens of
    different authors. You can't seriously expect anyone to be able to
    reasonably establish trust to all of them.

    In the end, gentoo.git security model is entirely reliant
    on the developer verifying the final product and signing on it.
    Everything else is untrustworthy noise.

    --
    Best regards,
    Michał Górny

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