• [gentoo-dev] Eselect repository feature request

    From TOMAS FABRIZIO ORSI@21:1/5 to All on Sun Jun 18 22:50:01 2023
    Hello gentoo devs. The other day I made a feature suggestion to the eselect repository github page. (Here's the link: https://github.com/projg2/eselect-repository/issues/20).
    Michał Górny suggested that I should contact the gentoo-dev mailing list
    with my suggestion, so here it is: My suggestion is to make it possible for eselect repository to manage overlay dependencies.

    As it stands, and as far as I'm concerned, there is no "proper" way of
    having an ebuild dependency from another overlay. So overlay writers have
    to copy ebuilds from other overlays or rewrite them. This implies synchronization issues (where the "copied" ebuilds get out of sync from the original ebuild) and time loss (people writing the same ebuild more than
    once).

    Michał Górny suggested that I should make an edit to the repositories.xml file in order to tackle the issue.

    This is my general idea:
    (I am using the github template as an example, but the idea should apply to
    all other templates. I got this file from https://github.com/gentoo/api-gentoo-org/blob/master/files/overlays/repositories.xml
    ).

    * GITHUB TEMPLATE
    <repo quality="experimental" status="unofficial">
    <name>XXXXX</name>
    <description lang="en">XXXXXX</description>
    <homepage>https://github.com/XXXX/xxxx</homepage>
    <owner type="person">
    <email>XXXXX</email>
    <name>XXXXX</name>
    </owner>
    <source type="git">https://github.com/XXXX/xxxx.git</source>
    <source type="git">git+ssh://git@github.com/XXXX/xxxx.git</source>
    <feed>https://github.com/XXXX/xxxx/commits/master.atom</feed>
    <dependencies>
    <name>overlayName</name>
    </dependencies>
    </repo>

    (the only thing I added is the <dependencies> item)
    The <dependencies> item would be a list of overlay dependencies (it could
    be empty). It would be represented as a list of repository names that the overlay depends on. Said dependencies could be stated in the master file
    (since this would "extend" its behavior)

    The algorithm would use a queue ("dependencies" queue) and a set ("overlays
    to be added" set)
    It starts by creating the "dependency" queue. After that it adds to the
    queue the overlay the user specifically asked for.

    The dependency algorithm would look like this:
    1. If the queue is empty the algorithm stops
    2. Checks the first overlay in the queue's dependencies list
    3. If the dependencies list is empty, it does nothing
    4. If it says that there is a dependency that the user has already enabled
    in their system, it does nothing
    5. If the dependency is already in the set of "overlays to be added", it
    does nothing*
    6. If not 2 or 3 or 4, it adds the dependency to the set of "overlays To be added" and adds said repository to the queue
    7. It "pops" the first item on the queue and repeats the algorithm

    *There reason why it is a set is because there is no need to check for
    circular dependencies in overlays.

    Once the algorithm is finished it would print out something like this

    foo overlay (the one the user wants to add) depends on bar overlay.
    Would you like to add bar as well? Y/N

    If yes:
    bar overlay depends on biz overlay.
    Would you like to add biz as well? Y/N

    And so on

    ------

    PROS: Fairly simple algorithm.
    CONS: Unwanted overlays with packages the user will never use.

    The main con is that even though the overlay is marked as "dependency", not *all* packages depend on the other overlays: Only a few.
    Having said that, this can be mitigated with only minimal manual
    intervention by the user.

    I would love to get feedback on this idea and what are some of its shortcomings/things that I missed/haven't considered yet.
    Thanks in advance and thank you for making gentoo so great.

    Have a good day

    - Tomas Fabrizio Orsi a.k.a Lima Limon

    <div dir="ltr"><div>Hello gentoo devs. The other day I made a feature suggestion to the eselect repository github page. (Here&#39;s the link: <a href="https://github.com/projg2/eselect-repository/issues/20">https://github.com/projg2/eselect-repository/
    issues/20</a>).</div><div>Michał Górny suggested that I should contact the gentoo-dev mailing list with my suggestion, so here it is: My suggestion is to make it possible for eselect repository to manage overlay dependencies.</div><br><div>As it stands,
    and as far as I&#39;m concerned, there is no &quot;proper&quot; way of having an ebuild dependency from another overlay. So overlay writers have to copy ebuilds from other overlays or rewrite them. This implies synchronization issues (where the &quot;
    copied&quot; ebuilds get out of sync from the original ebuild) and time loss (people writing the same ebuild more than once).</div><div><br></div><div> Michał Górny suggested that I should make an edit to the repositories.xml file in order to tackle
    the issue.<br></div><div><br></div><div>This is my general idea:</div>(I am using the github template as an example, but the idea should apply to all other templates. I got this file from <a href="https://github.com/gentoo/api-gentoo-org/blob/master/
    files/overlays/repositories.xml">https://github.com/gentoo/api-gentoo-org/blob/master/files/overlays/repositories.xml</a>).<br><br>  * GITHUB TEMPLATE<br>    &lt;repo quality=&quot;experimental&quot; status=&quot;unofficial&quot;&gt;<br>      &lt;
    name&gt;XXXXX&lt;/name&gt;<br>      &lt;description lang=&quot;en&quot;&gt;XXXXXX&lt;/description&gt;<br>      &lt;homepage&gt;<a href="https://github.com/XXXX/xxxx">https://github.com/XXXX/xxxx</a>&lt;/homepage&gt;<br>      &lt;owner type=&quot;
    person&quot;&gt;<br>        &lt;email&gt;XXXXX&lt;/email&gt;<br>        &lt;name&gt;XXXXX&lt;/name&gt;<br>      &lt;/owner&gt;<br>      &lt;source type=&quot;git&quot;&gt;<a href="https://github.com/XXXX/xxxx.git">https://github.com/XXXX/
    xxxx.git</a>&lt;/source&gt;<br>      &lt;source type=&quot;git&quot;&gt;git+ssh://<a href="http://git@github.com/XXXX/xxxx.git">git@github.com/XXXX/xxxx.git</a>&lt;/source&gt;<br>      &lt;feed&gt;<a href="https://github.com/XXXX/xxxx/commits/
    master.atom">https://github.com/XXXX/xxxx/commits/master.atom</a>&lt;/feed&gt;<br>      &lt;dependencies&gt;<br>           &lt;name&gt;overlayName&lt;/name&gt;<br>      &lt;/dependencies&gt;<br><div>    &lt;/repo&gt;</div><div><br></div>(
    the only thing I added is the &lt;dependencies&gt; item)<br>The &lt;dependencies&gt; item would be a list of overlay dependencies (it could be empty). It would be represented as a list of repository names that the overlay depends on. Said dependencies
    could be stated in the master file (since this would &quot;extend&quot; its behavior)<br><br>The algorithm would use a queue (&quot;dependencies&quot; queue) and a set (&quot;overlays to be added&quot; set)<br>It starts by creating the &quot;dependency&
    quot; queue. After that it adds to the queue the overlay the user specifically asked for.<br><br>The dependency algorithm would look like this:<br>1. If the queue is empty the algorithm stops<br>2. Checks the first overlay in the queue&#39;s dependencies
    list<br>3. If the dependencies list is empty, it does nothing<br>4. If it says that there is a dependency that the user has already enabled in their system, it does nothing<br>5. If the dependency is already in the set of &quot;overlays to be added&quot;,
    it does nothing*<br>6. If not 2 or 3 or 4, it adds the dependency to the set of &quot;overlays To be added&quot; and adds said repository to the queue<br>7. It &quot;pops&quot; the first item on the queue and repeats the algorithm<br><br>*There reason
    why it is a set is because there is no need to check for circular dependencies in overlays. <br><br>Once the algorithm is finished it would print out something like this<br><br>foo overlay (the one the user wants to add) depends on bar overlay.<br>Would
    you like to add bar as well? Y/N<br><br>If yes:<br>bar overlay depends on biz overlay.<br>Would you like to add biz as well? Y/N<br><br>And so on<br><br>------<br><br>PROS: Fairly simple algorithm. <br>CONS: Unwanted overlays with packages the user will
    never use.<br><br>The main con is that even though the overlay is marked as &quot;dependency&quot;, not *all* packages depend on the other overlays: Only a few.<br><div>Having said that, this can be mitigated with only minimal manual intervention by the
    user. <br></div><div><br></div><div>I would love to get feedback on this idea and what are some of its shortcomings/things that I missed/haven&#39;t considered yet.</div><div>Thanks in advance and thank you for making gentoo so great.</div><div><br></div>
    <div>Have a good day</div><div><br></div><div>- Tomas Fabrizio Orsi a.k.a Lima Limon<br></div><div><br></div></div>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From TOMAS FABRIZIO ORSI@21:1/5 to All on Tue Jun 20 16:50:02 2023

    Isn't that duplicating the information of metadata/layout.conf's
    'master' key-value pair [1]?


    Yes, I agree that it would be duplicating that information. As a matter of fact, Michał Górny pointed the same thing out.
    However, Michał also added, quote: "What's really lacking here is support
    for specifying dependencies via repositories.xml. Once such a thing is implemented, We can look into having eselect-repository handle that once
    it's specified." (Here's the link to the conversation: https://github.com/projg2/eselect-repository/issues/20#issuecomment-1579098528 )
    That's why I added the <dependencies> line in the repositories.xml template.

    Having said that, maybe the information present in the masters key could be used to add the overlay dependencies in the repositories present in the xml file as of today.

    Thank you for your reply,

    --
    Best regards,
    - Tomas Fabrizio Orsi


    El mar, 20 jun 2023 a las 10:44, Florian Schmaus (<flow@gentoo.org>)
    escribió:

    On 18.06.23 22:39, TOMAS FABRIZIO ORSI wrote:
    Hello gentoo devs. The other day I made a feature suggestion to the
    eselect repository github page. (Here's the link: https://github.com/projg2/eselect-repository/issues/20 <https://github.com/projg2/eselect-repository/issues/20>).
    Michał Górny suggested that I should contact the gentoo-dev mailing list with my suggestion, so here it is: My suggestion is to make it possible
    for eselect repository to manage overlay dependencies.

    As it stands, and as far as I'm concerned, there is no "proper" way of having an ebuild dependency from another overlay. So overlay writers
    have to copy ebuilds from other overlays or rewrite them. This implies synchronization issues (where the "copied" ebuilds get out of sync from
    the original ebuild) and time loss (people writing the same ebuild more than once).

    Michał Górny suggested that I should make an edit to the
    repositories.xml file in order to tackle the issue.

    This is my general idea:
    (I am using the github template as an example, but the idea should apply
    to all other templates. I got this file from

    https://github.com/gentoo/api-gentoo-org/blob/master/files/overlays/repositories.xml
    < https://github.com/gentoo/api-gentoo-org/blob/master/files/overlays/repositories.xml
    ).

    * GITHUB TEMPLATE
    <repo quality="experimental" status="unofficial">
    <name>XXXXX</name>
    <description lang="en">XXXXXX</description>
    <homepage>https://github.com/XXXX/xxxx <https://github.com/XXXX/xxxx></homepage>
    <owner type="person">
    <email>XXXXX</email>
    <name>XXXXX</name>
    </owner>
    <source type="git">https://github.com/XXXX/xxxx.git <https://github.com/XXXX/xxxx.git></source>
    <source type="git">git+ssh://git@github.com/XXXX/xxxx.git <http://git@github.com/XXXX/xxxx.git></source>
    <feed>https://github.com/XXXX/xxxx/commits/master.atom <https://github.com/XXXX/xxxx/commits/master.atom></feed>
    <dependencies>
    <name>overlayName</name>
    </dependencies>
    </repo>

    Isn't that duplicating the information of metadata/layout.conf's
    'master' key-value pair [1]?

    - Flow

    1: https://wiki.gentoo.org/wiki/Repository_format/metadata/layout.conf#masters


    <div dir="ltr"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Isn&#39;t that duplicating the information of metadata/layout.conf&#39;s <br>
    &#39;master&#39; key-value pair [1]?</div></blockquote><div><br></div><div>Yes, I agree that it would be duplicating that information. As a matter of fact, <span><span style="max-width:230px">Michał Górny pointed the same thing out. <br></span></span></
    <div><span><span style="max-width:230px"> However, </span></span><span><span style="max-width:230px">Michał also added, quote: </span></span>&quot;What&#39;s really lacking here is support for specifying dependencies via <code>repositories.xml</code>
    . Once such a thing is implemented, We can look into having eselect-repository handle that once it&#39;s specified.&quot; (Here&#39;s the link to the conversation: <a href="https://github.com/projg2/eselect-repository/issues/20#issuecomment-1579098528"
    target="_blank">https://github.com/projg2/eselect-repository/issues/20#issuecomment-1579098528</a>)</div><div>That&#39;s why I added the &lt;dependencies&gt; line in the repositories.xml template.</div><div><br></div><div>Having said that, maybe the
    information present in the masters key could be used to add the overlay dependencies in the repositories present in the xml file as of today.<br></div><div><br></div><div>Thank you for your reply, <br></div><div><br></div><div>--</div><div>Best regards,</
    <div>- Tomas Fabrizio Orsi<br></div><div><br></div><div><br></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">El mar, 20 jun 2023 a las 10:44, Florian Schmaus (&lt;<a href="mailto:flow@gentoo.org" target="_blank">flow@gentoo.org</a>&gt;
    ) escribió:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 18.06.23 22:39, TOMAS FABRIZIO ORSI wrote:<br>
    &gt; Hello gentoo devs. The other day I made a feature suggestion to the <br> &gt; eselect repository github page. (Here&#39;s the link: <br>
    &gt; <a href="https://github.com/projg2/eselect-repository/issues/20" rel="noreferrer" target="_blank">https://github.com/projg2/eselect-repository/issues/20</a> <br>
    &gt; &lt;<a href="https://github.com/projg2/eselect-repository/issues/20" rel="noreferrer" target="_blank">https://github.com/projg2/eselect-repository/issues/20</a>&gt;).<br>
    &gt; Michał Górny suggested that I should contact the gentoo-dev mailing list <br>
    &gt; with my suggestion, so here it is: My suggestion is to make it possible <br>
    &gt; for eselect repository to manage overlay dependencies.<br>
    &gt; <br>
    &gt; As it stands, and as far as I&#39;m concerned, there is no &quot;proper&quot; way of <br>
    &gt; having an ebuild dependency from another overlay. So overlay writers <br> &gt; have to copy ebuilds from other overlays or rewrite them. This implies <br>
    &gt; synchronization issues (where the &quot;copied&quot; ebuilds get out of sync from <br>
    &gt; the original ebuild) and time loss (people writing the same ebuild more <br>
    &gt; than once).<br>
    &gt; <br>
    &gt; Michał Górny suggested that I should make an edit to the <br>
    &gt; repositories.xml file in order to tackle the issue.<br>
    &gt; <br>
    &gt; This is my general idea:<br>
    &gt; (I am using the github template as an example, but the idea should apply <br>
    &gt; to all other templates. I got this file from <br>
    &gt; <a href="https://github.com/gentoo/api-gentoo-org/blob/master/files/overlays/repositories.xml" rel="noreferrer" target="_blank">https://github.com/gentoo/api-gentoo-org/blob/master/files/overlays/repositories.xml</a> &lt;<a href="https://github.com/
    gentoo/api-gentoo-org/blob/master/files/overlays/repositories.xml" rel="noreferrer" target="_blank">https://github.com/gentoo/api-gentoo-org/blob/master/files/overlays/repositories.xml</a>&gt;).<br>
    &gt; <br>
    &gt;    * GITHUB TEMPLATE<br>
    &gt;      &lt;repo quality=&quot;experimental&quot; status=&quot;unofficial&quot;&gt;<br>
    &gt;        &lt;name&gt;XXXXX&lt;/name&gt;<br>
    &gt;        &lt;description lang=&quot;en&quot;&gt;XXXXXX&lt;/description&gt;<br>
    &gt;        &lt;homepage&gt;<a href="https://github.com/XXXX/xxxx" rel="noreferrer" target="_blank">https://github.com/XXXX/xxxx</a> <br>
    &gt; &lt;<a href="https://github.com/XXXX/xxxx" rel="noreferrer" target="_blank">https://github.com/XXXX/xxxx</a>&gt;&lt;/homepage&gt;<br>
    &gt;        &lt;owner type=&quot;person&quot;&gt;<br>
    &gt;          &lt;email&gt;XXXXX&lt;/email&gt;<br>
    &gt;          &lt;name&gt;XXXXX&lt;/name&gt;<br>
    &gt;        &lt;/owner&gt;<br>
    &gt;        &lt;source type=&quot;git&quot;&gt;<a href="https://github.com/XXXX/xxxx.git" rel="noreferrer" target="_blank">https://github.com/XXXX/xxxx.git</a> <br>
    &gt; &lt;<a href="https://github.com/XXXX/xxxx.git" rel="noreferrer" target="_blank">https://github.com/XXXX/xxxx.git</a>&gt;&lt;/source&gt;<br>
    &gt;        &lt;source type=&quot;git&quot;&gt;git+ssh://<a href="http://git@github.com/XXXX/xxxx.git" rel="noreferrer" target="_blank">git@github.com/XXXX/xxxx.git</a> <br>
    &gt; &lt;<a href="http://git@github.com/XXXX/xxxx.git" rel="noreferrer" target="_blank">http://git@github.com/XXXX/xxxx.git</a>&gt;&lt;/source&gt;<br>
    &gt;        &lt;feed&gt;<a href="https://github.com/XXXX/xxxx/commits/master.atom" rel="noreferrer" target="_blank">https://github.com/XXXX/xxxx/commits/master.atom</a> <br>
    &gt; &lt;<a href="https://github.com/XXXX/xxxx/commits/master.atom" rel="noreferrer" target="_blank">https://github.com/XXXX/xxxx/commits/master.atom</a>&gt;&lt;/feed&gt;<br>
    &gt;        &lt;dependencies&gt;<br>
    &gt;            &lt;name&gt;overlayName&lt;/name&gt;<br>
    &gt;        &lt;/dependencies&gt;<br>
    &gt;      &lt;/repo&gt;<br>

    Isn&#39;t that duplicating the information of metadata/layout.conf&#39;s <br> &#39;master&#39; key-value pair [1]?<br>

    - Flow<br>

    1: <br>
    <a href="https://wiki.gentoo.org/wiki/Repository_format/metadata/layout.conf#masters" rel="noreferrer" target="_blank">https://wiki.gentoo.org/wiki/Repository_format/metadata/layout.conf#masters</a><br>
    </blockquote></div></div>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Andrew Ammerlaan@21:1/5 to Mike Gilbert on Tue Jun 20 20:10:02 2023
    On 20/06/2023 19:26, Mike Gilbert wrote:
    On Tue, Jun 20, 2023 at 1:08 PM Florian Schmaus <flow@gentoo.org> wrote:

    On 20.06.23 16:41, TOMAS FABRIZIO ORSI wrote:
    Isn't that duplicating the information of metadata/layout.conf's
    'master' key-value pair [1]?


    Yes, I agree that it would be duplicating that information. As a matter
    of fact, Michał Górny pointed the same thing out.
    However, Michał also added, quote: "What's really lacking here is
    support for specifying dependencies via |repositories.xml|

    Do we need to duplicate the information in repositories.xml, with all
    the drawbacks of duplication?

    Can't eselect repository add the new repository, then read the 'masters'
    value from layout.conf, and add the missing repositories recursively?

    That would be a significant change in behavior for eselect repository. Currently, it does not actually sync any repos; it just manages the
    config in /etc/portage/repos.conf.

    Or maybe we just output a warning after syncing if a repository listed
    in masters= is not enabled? Less automated, but simpler. I don't think
    this situation happens very often so this is probably good enough IMO.

    Best regards,
    Andrew

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mike Gilbert@21:1/5 to flow@gentoo.org on Tue Jun 20 19:30:01 2023
    On Tue, Jun 20, 2023 at 1:08 PM Florian Schmaus <flow@gentoo.org> wrote:

    On 20.06.23 16:41, TOMAS FABRIZIO ORSI wrote:
    Isn't that duplicating the information of metadata/layout.conf's
    'master' key-value pair [1]?


    Yes, I agree that it would be duplicating that information. As a matter
    of fact, Michał Górny pointed the same thing out.
    However, Michał also added, quote: "What's really lacking here is
    support for specifying dependencies via |repositories.xml|

    Do we need to duplicate the information in repositories.xml, with all
    the drawbacks of duplication?

    Can't eselect repository add the new repository, then read the 'masters' value from layout.conf, and add the missing repositories recursively?

    That would be a significant change in behavior for eselect repository. Currently, it does not actually sync any repos; it just manages the
    config in /etc/portage/repos.conf.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From TOMAS FABRIZIO ORSI@21:1/5 to All on Wed Jun 21 04:20:01 2023
    A warning could be a great way of making the user aware of this situation. Having said that, if eselect repository is able to check and warn the user
    of a not synced overlay(ies) dependency, then the hard bit is done (Right?). Being able to "sync it for them" should only be a tiny extra step. That
    step being: "Hey, there's a dependency that you are missing. Would you like
    to add it? (Yes/No)"

    Best regards,
    - Tomas Fabrizio Orsi


    El mar, 20 jun 2023 a las 15:07, Andrew Ammerlaan (< andrewammerlaan@gentoo.org>) escribió:

    On 20/06/2023 19:26, Mike Gilbert wrote:
    On Tue, Jun 20, 2023 at 1:08 PM Florian Schmaus <flow@gentoo.org> wrote:

    On 20.06.23 16:41, TOMAS FABRIZIO ORSI wrote:
    Isn't that duplicating the information of metadata/layout.conf's
    'master' key-value pair [1]?


    Yes, I agree that it would be duplicating that information. As a matter >>> of fact, Michał Górny pointed the same thing out.
    However, Michał also added, quote: "What's really lacking here is
    support for specifying dependencies via |repositories.xml|

    Do we need to duplicate the information in repositories.xml, with all
    the drawbacks of duplication?

    Can't eselect repository add the new repository, then read the 'masters' >> value from layout.conf, and add the missing repositories recursively?

    That would be a significant change in behavior for eselect repository. Currently, it does not actually sync any repos; it just manages the
    config in /etc/portage/repos.conf.

    Or maybe we just output a warning after syncing if a repository listed
    in masters= is not enabled? Less automated, but simpler. I don't think
    this situation happens very often so this is probably good enough IMO.

    Best regards,
    Andrew



    <div dir="ltr"><div dir="ltr"><div>A warning could be a great way of making the user aware of this situation. <br></div><div>Having said that, if eselect repository is able to check and warn the user of a not synced overlay(ies) dependency, then the hard
    bit is done (Right?).</div><div>Being able to &quot;sync it for them&quot; should only be a tiny extra step. That step being: &quot;Hey, there&#39;s a dependency that you are missing. Would you like to add it? (Yes/No)&quot;<br></div><div><br></div><div>
    Best regards,</div>- Tomas Fabrizio Orsi<br></div><div dir="ltr"><div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">El mar, 20 jun 2023 a las 15:07, Andrew Ammerlaan (&lt;<a href="mailto:andrewammerlaan@gentoo.org">
    andrewammerlaan@gentoo.org</a>&gt;) escribió:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 20/06/2023 19:26, Mike Gilbert wrote:<br>
    &gt; On Tue, Jun 20, 2023 at 1:08 PM Florian Schmaus &lt;<a href="mailto:flow@gentoo.org" target="_blank">flow@gentoo.org</a>&gt; wrote:<br>
    &gt;&gt;<br>
    &gt;&gt; On 20.06.23 16:41, TOMAS FABRIZIO ORSI wrote:<br>
    &gt;&gt;&gt;      Isn&#39;t that duplicating the information of metadata/layout.conf&#39;s<br>
    &gt;&gt;&gt;      &#39;master&#39; key-value pair [1]?<br>
    &gt;&gt;&gt;<br>
    &gt;&gt;&gt;<br>
    &gt;&gt;&gt; Yes, I agree that it would be duplicating that information. As a matter<br>
    &gt;&gt;&gt; of fact, Michał Górny pointed the same thing out.<br> &gt;&gt;&gt; However, Michał also added, quote: &quot;What&#39;s really lacking here is<br>
    &gt;&gt;&gt; support for specifying dependencies via |repositories.xml|<br> &gt;&gt;<br>
    &gt;&gt; Do we need to duplicate the information in repositories.xml, with all<br>
    &gt;&gt; the drawbacks of duplication?<br>
    &gt;&gt;<br>
    &gt;&gt; Can&#39;t eselect repository add the new repository, then read the &#39;masters&#39;<br>
    &gt;&gt; value from layout.conf, and add the missing repositories recursively?<br>
    &gt; <br>
    &gt; That would be a significant change in behavior for eselect repository.<br> &gt; Currently, it does not actually sync any repos; it just manages the<br> &gt; config in /etc/portage/repos.conf.<br>
    &gt; <br>
    Or maybe we just output a warning after syncing if a repository listed <br>
    in masters= is not enabled? Less automated, but simpler. I don&#39;t think <br> this situation happens very often so this is probably good enough IMO.<br>

    Best regards,<br>
    Andrew<br>

    </blockquote></div>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Andrew Ammerlaan@21:1/5 to TOMAS FABRIZIO ORSI on Wed Jun 21 09:20:01 2023
    On 21/06/2023 04:17, TOMAS FABRIZIO ORSI wrote:
    A warning could be a great way of making the user aware of this situation. Having said that, if eselect repository is able to check and warn the
    user of a not synced overlay(ies) dependency, then the hard bit is done

    What I meant is that emerge --sync/eix --sync does this check instead of eselect repository. To me this makes sense since we can only do this
    check *after* syncing. Plus the user can also make changes to repos.conf without using eselect repository, having the check done post-syncing
    covers these cases as well.

    You're probably right that once we have some message that says "Warning: {repo1} is missing, it is required by {repo2}" it should be trivial to
    call 'eselect repository enable {repo1}'. This however would require
    that profiles/repo_name is always equal to the name entry in
    repositories.xml, I'm not sure if this is currently always the case.

    Best regards,
    Andrew

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Andrew Ammerlaan@21:1/5 to TOMAS FABRIZIO ORSI on Wed Jun 21 16:00:02 2023
    On 21/06/2023 15:40, TOMAS FABRIZIO ORSI wrote:
    What I meant is that emerge --sync/eix --sync does this check
    instead of
    eselect repository. To me this makes sense since we can only do this
    check *after* syncing.

    That is a great point; I had not considered it.
    So, you are saying to have emerge --sync/eix --sync check the masters
    key and then warn the user of not synced up overlays, correct?

    Yes

    This however would require
    that profiles/repo_name is always equal to the name entry in
    repositories.xml, I'm not sure if this is currently always the case.

    I had not considered this possibility either.
    If that's the case, then I believe there are to possible behaviors:
    If the names do match, then emerge --sync/eix --sync could both:
         1. issue a warning of the missing overlay dependency
         2. run the command to add said overlay (with confirmation).
    On the other hand, if the names do not match, a missing dependency warning could be issued, skipping the second step.
    This sounds to me to be fairly reasonable behaviour.

    In the cases where the names do not match; what could be the best
    solution to "fix" this? Change repositories.xml on a case by case basis?
    Ask overlay owners to change their profiles/repo_name and
    profiles/masters key? Neither?

    I just checked the internal overlays team guide[1] and it does
    explicitly say that repo_name should match the repositories.xml <name>.
    So probably there is no problem. That being said it is possible for the
    owner to change repo_name and (accidentally) not update
    repositories.xml. These cases should be fixed but exactly how would have
    to be determined on a case by case basis.

    In any case, this is just something to keep in mind when writing this
    check. It is not fully guaranteed that eselect repository can find the repository that is requested in some master= entry.

    Best regards,
    Andrew

    [1]
    https://wiki.gentoo.org/wiki/Project:Overlays/Internal_Overlays_team_guide

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From TOMAS FABRIZIO ORSI@21:1/5 to All on Wed Jun 21 15:50:01 2023

    What I meant is that emerge --sync/eix --sync does this check instead of eselect repository. To me this makes sense since we can only do this
    check *after* syncing.

    That is a great point; I had not considered it.
    So, you are saying to have emerge --sync/eix --sync check the masters
    key and then warn the user of not synced up overlays, correct?

    This however would require
    that profiles/repo_name is always equal to the name entry in repositories.xml, I'm not sure if this is currently always the case.

    I had not considered this possibility either.
    If that's the case, then I believe there are to possible behaviors:
    If the names do match, then emerge --sync/eix --sync could both:
    1. issue a warning of the missing overlay dependency
    2. run the command to add said overlay (with confirmation).
    On the other hand, if the names do not match, a missing dependency warning could be issued, skipping the second step.
    This sounds to me to be fairly reasonable behaviour.

    In the cases where the names do not match; what could be the best
    solution to "fix" this? Change repositories.xml on a case by case basis?
    Ask overlay owners to change their profiles/repo_name and
    profiles/masters key? Neither?

    Best regards,
    - Tomas Fabrizio Orsi

    El mié, 21 jun 2023 a las 4:15, Andrew Ammerlaan (< andrewammerlaan@gentoo.org>) escribió:

    On 21/06/2023 04:17, TOMAS FABRIZIO ORSI wrote:
    A warning could be a great way of making the user aware of this
    situation.
    Having said that, if eselect repository is able to check and warn the
    user of a not synced overlay(ies) dependency, then the hard bit is done

    What I meant is that emerge --sync/eix --sync does this check instead of eselect repository. To me this makes sense since we can only do this
    check *after* syncing. Plus the user can also make changes to repos.conf without using eselect repository, having the check done post-syncing
    covers these cases as well.

    You're probably right that once we have some message that says "Warning: {repo1} is missing, it is required by {repo2}" it should be trivial to
    call 'eselect repository enable {repo1}'. This however would require
    that profiles/repo_name is always equal to the name entry in repositories.xml, I'm not sure if this is currently always the case.

    Best regards,
    Andrew




    <div dir="ltr"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">What I meant is that emerge --sync/eix --sync does this check instead of <br>
    eselect repository. To me this makes sense since we can only do this <br>
    check *after* syncing. </blockquote><div>That is a great point; I had not considered it. <br></div><div>So, you are saying to have emerge --sync/eix --sync check the masters <br></div><div>key and then warn the user of not synced up overlays, correct?</
    <div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">This however would require <br>
    that profiles/repo_name is always equal to the name entry in <br> repositories.xml, I&#39;m not sure if this is currently always the case.</blockquote><div>I had not considered this possibility either. <br></div><div>If that&#39;s the case, then I believe there are to possible behaviors:<br>If the names do match, then
    emerge --sync/eix --sync could both: <br>     1. issue a warning of the missing overlay dependency <br>     2. run the command to add said overlay (with confirmation).</div><div>On the other hand, if the names do not match, a missing dependency
    warning <br></div><div>could be issued, skipping the second step.</div><div>This sounds to me to be fairly reasonable behaviour.<br></div><div><br></div><div>In the cases where the names do not match; what could be the best <br></div><div>solution to &
    quot;fix&quot; this? Change repositories.xml on a case by case basis?<br></div><div>Ask overlay owners to change their profiles/repo_name and</div><div>profiles/masters key? Neither?<br><br></div><span class="gmail-im"><div>Best regards,</div>- Tomas
    Fabrizio Orsi</span></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">El mié, 21 jun 2023 a las 4:15, Andrew Ammerlaan (&lt;<a href="mailto:andrewammerlaan@gentoo.org">andrewammerlaan@gentoo.org</a>&gt;) escribió:<br></div><
    blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 21/06/2023 04:17, TOMAS FABRIZIO ORSI wrote:<br>
    &gt; A warning could be a great way of making the user aware of this situation.<br>
    &gt; Having said that, if eselect repository is able to check and warn the <br> &gt; user of a not synced overlay(ies) dependency, then the hard bit is done <br>

    What I meant is that emerge --sync/eix --sync does this check instead of <br> eselect repository. To me this makes sense since we can only do this <br>
    check *after* syncing. Plus the user can also make changes to repos.conf <br> without using eselect repository, having the check done post-syncing <br> covers these cases as well.<br>

    You&#39;re probably right that once we have some message that says &quot;Warning: <br>
    {repo1} is missing, it is required by {repo2}&quot; it should be trivial to <br>
    call &#39;eselect repository enable {repo1}&#39;. This however would require <br>
    that profiles/repo_name is always equal to the name entry in <br> repositories.xml, I&#39;m not sure if this is currently always the case.<br>

    Best regards,<br>
    Andrew<br>


    </blockquote></div>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Andrew Ammerlaan@21:1/5 to TOMAS FABRIZIO ORSI on Wed Jun 21 16:40:01 2023
    On 21/06/2023 16:12, TOMAS FABRIZIO ORSI wrote:
    In any case, this is just something to keep in mind when writing this
    check. It is not fully guaranteed that eselect repository can find the
    repository that is requested in some master= entry.

    Great point.
    Btw, in your opinion, do you think having this emerge --sync + eselect repository feature is doable?

    Sure, I think it could work.

    Best regards,
    Andrew

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From TOMAS FABRIZIO ORSI@21:1/5 to All on Wed Jun 21 16:50:01 2023

    Sure, I think it could work.

    Great to hear.
    In that case I could try to give it a try and make a pull request to the
    emerge --sync with a basic idea.
    Any tips?
    If anyone else is interested/free (I'm guessing the latter is unlikely
    haha.) I'd love to have a helping hand!

    Thank you for your kind responses,

    Best regards,
    - Tomas Fabrizio Orsi


    El mié, 21 jun 2023 a las 11:30, Andrew Ammerlaan (< andrewammerlaan@gentoo.org>) escribió:

    On 21/06/2023 16:12, TOMAS FABRIZIO ORSI wrote:
    In any case, this is just something to keep in mind when writing this
    check. It is not fully guaranteed that eselect repository can find
    the
    repository that is requested in some master= entry.

    Great point.
    Btw, in your opinion, do you think having this emerge --sync + eselect repository feature is doable?

    Sure, I think it could work.

    Best regards,
    Andrew




    <div dir="ltr"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Sure, I think it could work.</blockquote><div>Great to hear. <br></div><div>In that case I could try to give it a try
    and make a pull request to the emerge --sync with a basic idea. <br></div><div>Any tips?</div><div>If anyone else is interested/free (I&#39;m guessing the latter is unlikely haha.) I&#39;d love to have a helping hand!</div><div><br></div><div>Thank you
    for your kind responses,</div><div><br></div><div><span class="gmail-im"><span><span><div>Best regards,</div>- Tomas Fabrizio Orsi</span></span></span></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">El mié, 21
    jun 2023 a las 11:30, Andrew Ammerlaan (&lt;<a href="mailto:andrewammerlaan@gentoo.org">andrewammerlaan@gentoo.org</a>&gt;) escribió:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-
    left:1ex">On 21/06/2023 16:12, TOMAS FABRIZIO ORSI wrote:<br>
    &gt;     In any case, this is just something to keep in mind when writing this<br>
    &gt;     check. It is not fully guaranteed that eselect repository can find the<br>
    &gt;     repository that is requested in some master= entry.<br>
    &gt; <br>
    &gt; Great point.<br>
    &gt; Btw, in your opinion, do you think having this emerge --sync + eselect <br>
    &gt; repository feature is doable?<br>

    Sure, I think it could work.<br>

    Best regards,<br>
    Andrew<br>


    </blockquote></div>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mike Gilbert@21:1/5 to torsi@fi.uba.ar on Wed Jun 21 17:10:01 2023
    On Wed, Jun 21, 2023 at 10:43 AM TOMAS FABRIZIO ORSI <torsi@fi.uba.ar> wrote: >>
    Sure, I think it could work.

    Great to hear.
    In that case I could try to give it a try and make a pull request to the emerge --sync with a basic idea.
    Any tips?

    So emerge already emits a warning message when a repo is missing:

    https://gitweb.gentoo.org/proj/portage.git/tree/lib/portage/repository/config.py?h=portage-3.0.48.1#n1070

    That looks something like this:

    $ sudo emerge --sync
    Unavailable repository 'foo' referenced by masters entry in '/var/db/repos/gentoo/metadata/layout.conf'

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From TOMAS FABRIZIO ORSI@21:1/5 to That being on Wed Jun 21 16:20:01 2023

    I just checked the internal overlays team guide[1] and it does
    explicitly say that repo_name should match the repositories.xml <name>.

    Oh, great news then. Thanks for checking. Also thank you overlays team!

    That being said it is possible for the
    owner to change repo_name and (accidentally) not update
    repositories.xml. These cases should be fixed but exactly how would have
    to be determined on a case by case basis.

    That is true, however I think those are "edge" cases. Furthermore, how
    often do
    people change their overlay's name? I legitimately do not know.

    In any case, this is just something to keep in mind when writing this
    check. It is not fully guaranteed that eselect repository can find the repository that is requested in some master= entry.

    Great point.
    Btw, in your opinion, do you think having this emerge --sync + eselect repository feature is doable?

    Best regards,
    - Tomas Fabrizio Orsi


    El mié, 21 jun 2023 a las 10:58, Andrew Ammerlaan (< andrewammerlaan@gentoo.org>) escribió:

    On 21/06/2023 15:40, TOMAS FABRIZIO ORSI wrote:
    What I meant is that emerge --sync/eix --sync does this check
    instead of
    eselect repository. To me this makes sense since we can only do this
    check *after* syncing.

    That is a great point; I had not considered it.
    So, you are saying to have emerge --sync/eix --sync check the masters
    key and then warn the user of not synced up overlays, correct?

    Yes

    This however would require
    that profiles/repo_name is always equal to the name entry in
    repositories.xml, I'm not sure if this is currently always the case.

    I had not considered this possibility either.
    If that's the case, then I believe there are to possible behaviors:
    If the names do match, then emerge --sync/eix --sync could both:
    1. issue a warning of the missing overlay dependency
    2. run the command to add said overlay (with confirmation).
    On the other hand, if the names do not match, a missing dependency
    warning
    could be issued, skipping the second step.
    This sounds to me to be fairly reasonable behaviour.

    In the cases where the names do not match; what could be the best
    solution to "fix" this? Change repositories.xml on a case by case basis? Ask overlay owners to change their profiles/repo_name and
    profiles/masters key? Neither?

    I just checked the internal overlays team guide[1] and it does
    explicitly say that repo_name should match the repositories.xml <name>.
    So probably there is no problem. That being said it is possible for the
    owner to change repo_name and (accidentally) not update
    repositories.xml. These cases should be fixed but exactly how would have
    to be determined on a case by case basis.

    In any case, this is just something to keep in mind when writing this
    check. It is not fully guaranteed that eselect repository can find the repository that is requested in some master= entry.

    Best regards,
    Andrew

    [1] https://wiki.gentoo.org/wiki/Project:Overlays/Internal_Overlays_team_guide




    <div dir="ltr"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I just checked the internal overlays team guide[1] and it does <br>
    explicitly say that repo_name should match the repositories.xml &lt;name&gt;. </blockquote><div>Oh, great news then. Thanks for checking. Also thank you overlays team!</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;
    border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>That being said it is possible for the <br>
    owner to change repo_name and (accidentally) not update <br>
    repositories.xml. These cases should be fixed but exactly how would have <br> to be determined on a case by case basis. </div></blockquote><div>That is true, however I think those are &quot;edge&quot; cases. Furthermore, how often do</div><div>people change their overlay&#39;s name? I legitimately do not know. <br></div><div><br></
    <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>In any case, this is just something to keep in mind when writing this <br>
    check. It is not fully guaranteed that eselect repository can find the <br> repository that is requested in some master= entry.</div></blockquote><div>Great point. <br></div><div>Btw, in your opinion, do you think having this emerge --sync + eselect repository feature is doable?</div><div><br></div><div><span class="gmail-im"><
    span><div>Best regards,</div>- Tomas Fabrizio Orsi</span></span></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">El mié, 21 jun 2023 a las 10:58, Andrew Ammerlaan (&lt;<a href="mailto:andrewammerlaan@gentoo.org">
    andrewammerlaan@gentoo.org</a>&gt;) escribió:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 21/06/2023 15:40, TOMAS FABRIZIO ORSI wrote:<br>
    &gt;     What I meant is that emerge --sync/eix --sync does this check<br> &gt;     instead of<br>
    &gt;     eselect repository. To me this makes sense since we can only do this<br>
    &gt;     check *after* syncing. <br>
    &gt; <br>
    &gt; That is a great point; I had not considered it.<br>
    &gt; So, you are saying to have emerge --sync/eix --sync check the masters<br> &gt; key and then warn the user of not synced up overlays, correct?<br>

    Yes<br>

    &gt;     This however would require<br>
    &gt;     that profiles/repo_name is always equal to the name entry in<br> &gt;     repositories.xml, I&#39;m not sure if this is currently always the case.<br>
    &gt; <br>
    &gt; I had not considered this possibility either.<br>
    &gt; If that&#39;s the case, then I believe there are to possible behaviors:<br>
    &gt; If the names do match, then emerge --sync/eix --sync could both:<br> &gt;       1. issue a warning of the missing overlay dependency<br>
    &gt;       2. run the command to add said overlay (with confirmation).<br> &gt; On the other hand, if the names do not match, a missing dependency warning<br>
    &gt; could be issued, skipping the second step.<br>
    &gt; This sounds to me to be fairly reasonable behaviour.<br>
    &gt; <br>
    &gt; In the cases where the names do not match; what could be the best<br>
    &gt; solution to &quot;fix&quot; this? Change repositories.xml on a case by case basis?<br>
    &gt; Ask overlay owners to change their profiles/repo_name and<br>
    &gt; profiles/masters key? Neither?<br>

    I just checked the internal overlays team guide[1] and it does <br>
    explicitly say that repo_name should match the repositories.xml &lt;name&gt;. <br>
    So probably there is no problem. That being said it is possible for the <br> owner to change repo_name and (accidentally) not update <br>
    repositories.xml. These cases should be fixed but exactly how would have <br> to be determined on a case by case basis.<br>

    In any case, this is just something to keep in mind when writing this <br> check. It is not fully guaranteed that eselect repository can find the <br> repository that is requested in some master= entry.<br>

    Best regards,<br>
    Andrew<br>

    [1] <br>
    <a href="https://wiki.gentoo.org/wiki/Project:Overlays/Internal_Overlays_team_guide" rel="noreferrer" target="_blank">https://wiki.gentoo.org/wiki/Project:Overlays/Internal_Overlays_team_guide</a><br>


    </blockquote></div>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mike Gilbert@21:1/5 to flow@gentoo.org on Wed Jun 21 18:00:01 2023
    On Wed, Jun 21, 2023 at 11:41 AM Florian Schmaus <flow@gentoo.org> wrote:

    On 20.06.23 19:26, Mike Gilbert wrote:
    On Tue, Jun 20, 2023 at 1:08 PM Florian Schmaus <flow@gentoo.org> wrote:

    On 20.06.23 16:41, TOMAS FABRIZIO ORSI wrote:
    Isn't that duplicating the information of metadata/layout.conf's
    'master' key-value pair [1]?


    Yes, I agree that it would be duplicating that information. As a matter >>> of fact, Michał Górny pointed the same thing out.
    However, Michał also added, quote: "What's really lacking here is
    support for specifying dependencies via |repositories.xml|

    Do we need to duplicate the information in repositories.xml, with all
    the drawbacks of duplication?

    Can't eselect repository add the new repository, then read the 'masters' >> value from layout.conf, and add the missing repositories recursively?

    That would be a significant change in behavior for eselect repository.

    Right, but it seems to be a desirable behaviour. Cases where the user
    wants to add a repo but not immediately sync it are probably rare.

    Furthermore, it would avoid duplicating the information, which avoids
    the typical drawbacks of duplication (e.g., the two sets getting out of sync).

    I've looked at the eselect-repository code, and it seems not hard to
    change the behaviour of "eselect repository add" to add and sync a
    repository and then, recursively, add and sync further required
    repositories.

    I may give it a shot, but ideally I'd know if it has a chance to be
    accepted upstream first. Or maybe there is a good reason why eselect-repository behaves as it currently does that I am missing?

    I can't speak for "upstream", but here are my concerns:

    1. As a developer, I might just want to create the repos.conf config
    snippet and sync the repo manually.
    2. As a user, I might have any arbitrary reason for not wanting to
    sync immediately.
    3. eselect-repository does not currently depend on any particular
    package manager. It writes config files intended for Portage, but it
    does not actually invoke any Portage commands. That feels like a
    significant distinction to me.
    4. If you start invoking Portage commands, you then have to deal with
    the possibility of people using alternate package managers. pkgcore
    can also utilize Portage's repos.conf, and the user might prefer to
    use pmaint instead of emaint or emerge --sync.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From TOMAS FABRIZIO ORSI@21:1/5 to All on Wed Jun 21 17:40:01 2023

    $ sudo emerge --sync
    Unavailable repository 'foo' referenced by masters entry in '/var/db/repos/gentoo/metadata/layout.conf'

    Oh! I was not aware of this feature. I apologize.
    So, in theory, could '%s' be used to automatically enable the missing repository
    (if available in repositories.xml)?

    Thank you for you insight,

    Best regards,
    - Tomas Fabrizio Orsi

    El mié, 21 jun 2023 a las 12:07, Mike Gilbert (<floppym@gentoo.org>) escribió:

    On Wed, Jun 21, 2023 at 10:43 AM TOMAS FABRIZIO ORSI <torsi@fi.uba.ar> wrote:

    Sure, I think it could work.

    Great to hear.
    In that case I could try to give it a try and make a pull request to the
    emerge --sync with a basic idea.
    Any tips?

    So emerge already emits a warning message when a repo is missing:


    https://gitweb.gentoo.org/proj/portage.git/tree/lib/portage/repository/config.py?h=portage-3.0.48.1#n1070

    That looks something like this:

    $ sudo emerge --sync
    Unavailable repository 'foo' referenced by masters entry in '/var/db/repos/gentoo/metadata/layout.conf'



    <div dir="ltr"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">$ sudo emerge --sync<br>
    Unavailable repository &#39;foo&#39; referenced by masters entry in<br> &#39;/var/db/repos/gentoo/metadata/layout.conf&#39;</blockquote><div>Oh! I was not aware of this feature. I apologize. <br></div><div>So, in theory, could &#39;%s&#39; be used to automatically enable the missing repository</div><div>(if available in
    repositories.xml)?</div><div><br></div><div>Thank you for you insight,</div><div><br></div><div><span class="gmail-im"><span><span><span><div>Best regards,</div>- Tomas Fabrizio Orsi</span></span></span></span></div></div><br><div class="gmail_quote"><
    div dir="ltr" class="gmail_attr">El mié, 21 jun 2023 a las 12:07, Mike Gilbert (&lt;<a href="mailto:floppym@gentoo.org" target="_blank">floppym@gentoo.org</a>&gt;) escribió:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;
    border-left:1px solid rgb(204,204,204);padding-left:1ex">On Wed, Jun 21, 2023 at 10:43 AM TOMAS FABRIZIO ORSI &lt;<a href="mailto:torsi@fi.uba.ar" target="_blank">torsi@fi.uba.ar</a>&gt; wrote:<br>
    &gt;&gt;<br>
    &gt;&gt; Sure, I think it could work.<br>
    &gt;<br>
    &gt; Great to hear.<br>
    &gt; In that case I could try to give it a try and make a pull request to the emerge --sync with a basic idea.<br>
    &gt; Any tips?<br>

    So emerge already emits a warning message when a repo is missing:<br>

    <a href="https://gitweb.gentoo.org/proj/portage.git/tree/lib/portage/repository/config.py?h=portage-3.0.48.1#n1070" rel="noreferrer" target="_blank">https://gitweb.gentoo.org/proj/portage.git/tree/lib/portage/repository/config.py?h=portage-3.0.48.1#n1070<
    <br>

    That looks something like this:<br>

    $ sudo emerge --sync<br>
    Unavailable repository &#39;foo&#39; referenced by masters entry in<br> &#39;/var/db/repos/gentoo/metadata/layout.conf&#39;<br>

    </blockquote></div>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Florian Schmaus@21:1/5 to All on Wed Jun 21 17:50:01 2023
    T24gMjAuMDYuMjMgMTk6MjYsIE1pa2UgR2lsYmVydCB3cm90ZToNCj4gT24gVHVlLCBKdW4g MjAsIDIwMjMgYXQgMTowOOKAr1BNIEZsb3JpYW4gU2NobWF1cyA8Zmxvd0BnZW50b28ub3Jn PiB3cm90ZToNCj4+DQo+PiBPbiAyMC4wNi4yMyAxNjo0MSwgVE9NQVMgRkFCUklaSU8gT1JT SSB3cm90ZToNCj4+PiAgICAgIElzbid0IHRoYXQgZHVwbGljYXRpbmcgdGhlIGluZm9ybWF0 aW9uIG9mIG1ldGFkYXRhL2xheW91dC5jb25mJ3MNCj4+PiAgICAgICdtYXN0ZXInIGtleS12 YWx1ZSBwYWlyIFsxXT8NCj4+Pg0KPj4+DQo+Pj4gWWVzLCBJIGFncmVlIHRoYXQgaXQgd291 bGQgYmUgZHVwbGljYXRpbmcgdGhhdCBpbmZvcm1hdGlvbi4gQXMgYSBtYXR0ZXINCj4+PiBv ZiBmYWN0LCBNaWNoYcWCIEfDs3JueSBwb2ludGVkIHRoZSBzYW1lIHRoaW5nIG91dC4NCj4+ PiBIb3dldmVyLCBNaWNoYcWCIGFsc28gYWRkZWQsIHF1b3RlOiAiV2hhdCdzIHJlYWxseSBs YWNraW5nIGhlcmUgaXMNCj4+PiBzdXBwb3J0IGZvciBzcGVjaWZ5aW5nIGRlcGVuZGVuY2ll cyB2aWEgfHJlcG9zaXRvcmllcy54bWx8DQo+Pg0KPj4gRG8gd2UgbmVlZCB0byBkdXBsaWNh dGUgdGhlIGluZm9ybWF0aW9uIGluIHJlcG9zaXRvcmllcy54bWwsIHdpdGggYWxsDQo+PiB0 aGUgZHJhd2JhY2tzIG9mIGR1cGxpY2F0aW9uPw0KPj4NCj4+IENhbid0IGVzZWxlY3QgcmVw b3NpdG9yeSBhZGQgdGhlIG5ldyByZXBvc2l0b3J5LCB0aGVuIHJlYWQgdGhlICdtYXN0ZXJz Jw0KPj4gdmFsdWUgZnJvbSBsYXlvdXQuY29uZiwgYW5kIGFkZCB0aGUgbWlzc2luZyByZXBv c2l0b3JpZXMgcmVjdXJzaXZlbHk/DQo+IA0KPiBUaGF0IHdvdWxkIGJlIGEgc2lnbmlmaWNh bnQgY2hhbmdlIGluIGJlaGF2aW9yIGZvciBlc2VsZWN0IHJlcG9zaXRvcnkuDQoNClJpZ2h0 LCBidXQgaXQgc2VlbXMgdG8gYmUgYSBkZXNpcmFibGUgYmVoYXZpb3VyLiBDYXNlcyB3aGVy ZSB0aGUgdXNlciANCndhbnRzIHRvIGFkZCBhIHJlcG8gYnV0IG5vdCBpbW1lZGlhdGVseSBz eW5jIGl0IGFyZSBwcm9iYWJseSByYXJlLg0KDQpGdXJ0aGVybW9yZSwgaXQgd291bGQgYXZv aWQgZHVwbGljYXRpbmcgdGhlIGluZm9ybWF0aW9uLCB3aGljaCBhdm9pZHMgDQp0aGUgdHlw aWNhbCBkcmF3YmFja3Mgb2YgZHVwbGljYXRpb24gKGUuZy4sIHRoZSB0d28gc2V0cyBnZXR0 aW5nIG91dCBvZiANCnN5bmMpLg0KDQpJJ3ZlIGxvb2tlZCBhdCB0aGUgZXNlbGVjdC1yZXBv c2l0b3J5IGNvZGUsIGFuZCBpdCBzZWVtcyBub3QgaGFyZCB0byANCmNoYW5nZSB0aGUgYmVo YXZpb3VyIG9mICJlc2VsZWN0IHJlcG9zaXRvcnkgYWRkIiB0byBhZGQgYW5kIHN5bmMgYSAN CnJlcG9zaXRvcnkgYW5kIHRoZW4sIHJlY3Vyc2l2ZWx5LCBhZGQgYW5kIHN5bmMgZnVydGhl ciByZXF1aXJlZCANCnJlcG9zaXRvcmllcy4NCg0KSSBtYXkgZ2l2ZSBpdCBhIHNob3QsIGJ1 dCBpZGVhbGx5IEknZCBrbm93IGlmIGl0IGhhcyBhIGNoYW5jZSB0byBiZSANCmFjY2VwdGVk IHVwc3RyZWFtIGZpcnN0LiBPciBtYXliZSB0aGVyZSBpcyBhIGdvb2QgcmVhc29uIHdoeSAN CmVzZWxlY3QtcmVwb3NpdG9yeSBiZWhhdmVzIGFzIGl0IGN1cnJlbnRseSBkb2VzIHRoYXQg SSBhbSBtaXNzaW5nPw0KDQotIEZsb3cNCg0KDQo=

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From TOMAS FABRIZIO ORSI@21:1/5 to All on Wed Jun 21 18:50:01 2023

    1. As a developer, I might just want to create the repos.conf config
    snippet and sync the repo manually.
    2. As a user, I might have any arbitrary reason for not wanting to
    sync immediately.

    As a matter of fact, Michał Górny raised the same questions:
    "A bit of a problem is how to design UI in eselect-repository. I'm not 100% sure
    that having it automatically install dependent repositories without confirmation is a good idea"
    ( https://github.com/projg2/eselect-repository/issues/20#issuecomment-1579288719)

    Ideally, confirmation would be asked before proceeding to sync the other overlays.
    I agree that doing something without the user's knowledge is not ideal.

    3. eselect-repository does not currently depend on any particular
    package manager. It writes config files intended for Portage, but it
    does not actually invoke any Portage commands. That feels like a
    significant distinction to me.
    4. If you start invoking Portage commands, you then have to deal with
    the possibility of people using alternate package managers. pkgcore
    can also utilize Portage's repos.conf, and the user might prefer to
    use pmaint instead of emaint or emerge --sync.


    I had not considered that possibility either. In that case, could not the overlay
    dependency resolution be handled as a module?
    Said module could be a common interface for different package managers.
    Then, the execution of said module would be handled on a per package manager/sync program basis?

    Best regards,
    - Tomas Fabrizio Orsi

    El mié, 21 jun 2023 a las 12:57, Mike Gilbert (<floppym@gentoo.org>) escribió:

    On Wed, Jun 21, 2023 at 11:41 AM Florian Schmaus <flow@gentoo.org> wrote:

    On 20.06.23 19:26, Mike Gilbert wrote:
    On Tue, Jun 20, 2023 at 1:08 PM Florian Schmaus <flow@gentoo.org>
    wrote:

    On 20.06.23 16:41, TOMAS FABRIZIO ORSI wrote:
    Isn't that duplicating the information of metadata/layout.conf's >>> 'master' key-value pair [1]?


    Yes, I agree that it would be duplicating that information. As a
    matter
    of fact, Michał Górny pointed the same thing out.
    However, Michał also added, quote: "What's really lacking here is
    support for specifying dependencies via |repositories.xml|

    Do we need to duplicate the information in repositories.xml, with all
    the drawbacks of duplication?

    Can't eselect repository add the new repository, then read the
    'masters'
    value from layout.conf, and add the missing repositories recursively?

    That would be a significant change in behavior for eselect repository.

    Right, but it seems to be a desirable behaviour. Cases where the user
    wants to add a repo but not immediately sync it are probably rare.

    Furthermore, it would avoid duplicating the information, which avoids
    the typical drawbacks of duplication (e.g., the two sets getting out of sync).

    I've looked at the eselect-repository code, and it seems not hard to
    change the behaviour of "eselect repository add" to add and sync a repository and then, recursively, add and sync further required repositories.

    I may give it a shot, but ideally I'd know if it has a chance to be accepted upstream first. Or maybe there is a good reason why eselect-repository behaves as it currently does that I am missing?

    I can't speak for "upstream", but here are my concerns:

    1. As a developer, I might just want to create the repos.conf config
    snippet and sync the repo manually.
    2. As a user, I might have any arbitrary reason for not wanting to
    sync immediately.
    3. eselect-repository does not currently depend on any particular
    package manager. It writes config files intended for Portage, but it
    does not actually invoke any Portage commands. That feels like a
    significant distinction to me.
    4. If you start invoking Portage commands, you then have to deal with
    the possibility of people using alternate package managers. pkgcore
    can also utilize Portage's repos.conf, and the user might prefer to
    use pmaint instead of emaint or emerge --sync.



    <div dir="ltr"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">1. As a developer, I might just want to create the repos.conf config<br>
    snippet and sync the repo manually.<br>
    2. As a user, I might have any arbitrary reason for not wanting to<br>
    sync immediately.</blockquote><div>As a matter of fact, <span class="gmail-Truncate"><span style="max-width:230px" class="gmail-Truncate-text gmail-Truncate-text--expandable">Michał Górny </span></span>raised the same questions:<br>&quot;A bit of a
    problem is how to design UI in <code class="gmail-notranslate">eselect-repository</code>. I&#39;m not 100% sure <br></div><div>that having it automatically install dependent repositories without confirmation is a good idea&quot;</div><div>(<a href="https:
    //github.com/projg2/eselect-repository/issues/20#issuecomment-1579288719">https://github.com/projg2/eselect-repository/issues/20#issuecomment-1579288719</a>) <br></div><div>Ideally, confirmation would be asked before proceeding to sync the other overlays.
    </div><div>I agree that doing something without the user&#39;s knowledge is not ideal.</div><div><br></div><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">3. eselect-repository
    does not currently depend on any particular<br>
    package manager. It writes config files intended for Portage, but it<br>
    does not actually invoke any Portage commands. That feels like a<br> significant distinction to me.<br>
    4. If you start invoking Portage commands, you then have to deal with<br>
    the possibility of people using alternate package managers. pkgcore<br>
    can also utilize Portage&#39;s repos.conf, and the user might prefer to<br>
    use pmaint instead of emaint or emerge --sync.</blockquote><div class="gmail-yj6qo"></div><div class="gmail-adL"><br></div></div><div>I had not considered that possibility either. In that case, could not the overlay</div><div>dependency resolution be
    handled as a module? <br></div><div>Said module could be a common interface for different package managers. <br></div><div>Then, the execution of said module would be handled on a per package manager/sync program basis?</div><div><br></div><div>Best
    regards,</div><div>- Tomas Fabrizio Orsi</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">El mié, 21 jun 2023 a las 12:57, Mike Gilbert (&lt;<a href="mailto:floppym@gentoo.org" target="_blank">floppym@gentoo.org</a>&gt;) escribiÃ
    ³:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Wed, Jun 21, 2023 at 11:41 AM Florian Schmaus &lt;<a href="mailto:flow@gentoo.org" target="_blank">flow@gentoo.org</
    &gt; wrote:<br>
    &gt;<br>
    &gt; On 20.06.23 19:26, Mike Gilbert wrote:<br>
    &gt; &gt; On Tue, Jun 20, 2023 at 1:08 PM Florian Schmaus &lt;<a href="mailto:flow@gentoo.org" target="_blank">flow@gentoo.org</a>&gt; wrote:<br>
    &gt; &gt;&gt;<br>
    &gt; &gt;&gt; On 20.06.23 16:41, TOMAS FABRIZIO ORSI wrote:<br>
    &gt; &gt;&gt;&gt;      Isn&#39;t that duplicating the information of metadata/layout.conf&#39;s<br>
    &gt; &gt;&gt;&gt;      &#39;master&#39; key-value pair [1]?<br>
    &gt; &gt;&gt;&gt;<br>
    &gt; &gt;&gt;&gt;<br>
    &gt; &gt;&gt;&gt; Yes, I agree that it would be duplicating that information. As a matter<br>
    &gt; &gt;&gt;&gt; of fact, Michał Górny pointed the same thing out.<br>
    &gt; &gt;&gt;&gt; However, Michał also added, quote: &quot;What&#39;s really lacking here is<br>
    &gt; &gt;&gt;&gt; support for specifying dependencies via |repositories.xml|<br>
    &gt; &gt;&gt;<br>
    &gt; &gt;&gt; Do we need to duplicate the information in repositories.xml, with all<br>
    &gt; &gt;&gt; the drawbacks of duplication?<br>
    &gt; &gt;&gt;<br>
    &gt; &gt;&gt; Can&#39;t eselect repository add the new repository, then read the &#39;masters&#39;<br>
    &gt; &gt;&gt; value from layout.conf, and add the missing repositories recursively?<br>
    &gt; &gt;<br>
    &gt; &gt; That would be a significant change in behavior for eselect repository.<br>
    &gt;<br>
    &gt; Right, but it seems to be a desirable behaviour. Cases where the user<br> &gt; wants to add a repo but not immediately sync it are probably rare.<br> &gt;<br>
    &gt; Furthermore, it would avoid duplicating the information, which avoids<br> &gt; the typical drawbacks of duplication (e.g., the two sets getting out of<br>
    &gt; sync).<br>
    &gt;<br>
    &gt; I&#39;ve looked at the eselect-repository code, and it seems not hard to<br>
    &gt; change the behaviour of &quot;eselect repository add&quot; to add and sync a<br>
    &gt; repository and then, recursively, add and sync further required<br>
    &gt; repositories.<br>
    &gt;<br>
    &gt; I may give it a shot, but ideally I&#39;d know if it has a chance to be<br>
    &gt; accepted upstream first. Or maybe there is a good reason why<br>
    &gt; eselect-repository behaves as it currently does that I am missing?<br>

    I can&#39;t speak for &quot;upstream&quot;, but here are my concerns:<br>

    1. As a developer, I might just want to create the repos.conf config<br> snippet and sync the repo manually.<br>
    2. As a user, I might have any arbitrary reason for not wanting to<br>
    sync immediately.<br>
    3. eselect-repository does not currently depend on any particular<br>
    package manager. It writes config files intended for Portage, but it<br>
    does not actually invoke any Portage commands. That feels like a<br> significant distinction to me.<br>
    4. If you start invoking Portage commands, you then have to deal with<br>
    the possibility of people using alternate package managers. pkgcore<br>
    can also utilize Portage&#39;s repos.conf, and the user might prefer to<br>
    use pmaint instead of emaint or emerge --sync.<br>

    </blockquote></div>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mike Gilbert@21:1/5 to torsi@fi.uba.ar on Wed Jun 21 19:50:01 2023
    On Wed, Jun 21, 2023 at 12:47 PM TOMAS FABRIZIO ORSI <torsi@fi.uba.ar> wrote:
    I had not considered that possibility either. In that case, could not the overlay
    dependency resolution be handled as a module?
    Said module could be a common interface for different package managers.
    Then, the execution of said module would be handled on a per package manager/sync program basis?

    I'm not quite certain what you mean by "module" here, but that sounds
    like unnecessary extra abstraction.

    I think flow's idea to make the sync command configurable somehow
    would be sufficient, assuming there is demand for it.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Anna@21:1/5 to All on Wed Jun 21 20:00:01 2023
    I think flow's idea to make the sync command configurable somehow
    would be sufficient, assuming there is demand for it.

    eselect-repository already has a config file at
    /etc/eselect/repository.conf, we could just have a SYNC_COMMAND config
    option in there

    having eselect-repository auto-sync (and recursively so) sounds like a
    nice thing imo

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

    iQGTBAABCgB9FiEEOQZJRvkRmxqE3cOfwdTp1azoUpoFAmSTOn9fFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDM5 MDY0OTQ2RjkxMTlCMUE4NEREQzM5RkMxRDRFOUQ1QUNFODUyOUEACgkQwdTp1azo Uppf1wf+KCkswlS0ys+OJj2bxoKWjtfJxY0Q9Brq9aCMitwz6eYhxt89jRDo2fz0 NvFg2dHRQtiX/yz6Vrdmo1HfFYLAp7iniMbIQNsy/f0qXdGPzIx58LygUGh/4pTG BHkXNFTauDuC4lBg0vj6Z//YkDU8YLlHMIQNiH2MDbLuxJwUOkxHEqgOOXF+fSmG aHDeFGSQ3rhBi9at4cLkNmaUHUdmyM+GdZ4o7d/woOs9T80uY4qMaL136qoUEPxW pIxDN05ohPpBE/915MVSoP3BsWCj4fA1Q0lZm0JyfI3Aofa2/9VN865nqQpcrLNh G9WhVbAX4WCy6G2ge8wEo3z5RgyvBQ==
    =ecmF
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mike Gilbert@21:1/5 to flow@gentoo.org on Wed Jun 21 19:30:01 2023
    On Wed, Jun 21, 2023 at 12:49 PM Florian Schmaus <flow@gentoo.org> wrote:

    On 21/06/2023 17.56, Mike Gilbert wrote:
    On Wed, Jun 21, 2023 at 11:41 AM Florian Schmaus <flow@gentoo.org> wrote:

    On 20.06.23 19:26, Mike Gilbert wrote:
    On Tue, Jun 20, 2023 at 1:08 PM Florian Schmaus <flow@gentoo.org> wrote:

    On 20.06.23 16:41, TOMAS FABRIZIO ORSI wrote:
    Isn't that duplicating the information of metadata/layout.conf's >>>>> 'master' key-value pair [1]?


    Yes, I agree that it would be duplicating that information. As a matter >>>>> of fact, Michał Górny pointed the same thing out.
    However, Michał also added, quote: "What's really lacking here is >>>>> support for specifying dependencies via |repositories.xml|

    Do we need to duplicate the information in repositories.xml, with all >>>> the drawbacks of duplication?

    Can't eselect repository add the new repository, then read the 'masters' >>>> value from layout.conf, and add the missing repositories recursively? >>>
    That would be a significant change in behavior for eselect repository.

    Right, but it seems to be a desirable behaviour. Cases where the user
    wants to add a repo but not immediately sync it are probably rare.

    Furthermore, it would avoid duplicating the information, which avoids
    the typical drawbacks of duplication (e.g., the two sets getting out of
    sync).

    I've looked at the eselect-repository code, and it seems not hard to
    change the behaviour of "eselect repository add" to add and sync a
    repository and then, recursively, add and sync further required
    repositories.

    I may give it a shot, but ideally I'd know if it has a chance to be
    accepted upstream first. Or maybe there is a good reason why
    eselect-repository behaves as it currently does that I am missing?

    I can't speak for "upstream", but here are my concerns:

    1. As a developer, I might just want to create the repos.conf config snippet and sync the repo manually.
    2. As a user, I might have any arbitrary reason for not wanting to
    sync immediately.

    Would an opt-out switch be enough to alleviate those concerns of you?

    Yes.


    3. eselect-repository does not currently depend on any particular
    package manager. It writes config files intended for Portage, but it
    does not actually invoke any Portage commands. That feels like a significant distinction to me.
    4. If you start invoking Portage commands, you then have to deal with
    the possibility of people using alternate package managers. pkgcore
    can also utilize Portage's repos.conf, and the user might prefer to
    use pmaint instead of emaint or emerge --sync.

    Those two points seem to be based on the same fundamental concern.

    The only portage specific code would be the call to "emaint sync -r
    $repo" (remember that "emerge --sync" is just a wrapper for "emaint sync --auto"). I think it would be easy to add later 1. add support for
    different package managers (if the need arises), and 2. make the "sync command" user configurable.

    Sure, that seems sensible.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From TOMAS FABRIZIO ORSI@21:1/5 to All on Wed Jun 21 20:10:01 2023

    I think flow's idea to make the sync command configurable somehow
    would be sufficient, assuming there is demand for it.

    I agree.
    I'm glad Flow has their ideas straight.

    By the way Flow, could you share the links of the repo/PR so that we can
    follow the development along? I would love to see it! ^_^

    I'm not quite certain what you mean by "module" here, but that sounds
    like unnecessary extra abstraction.


    I think my line of thought was a bit overkill.
    Not to mention that I am not that well versed (if at all)
    with portage's implementation detail.

    PS: I forgot to mention this in the original email, but I did file a
    bug with this feature request. https://bugs.gentoo.org/907959


    El mié, 21 jun 2023 a las 14:46, Mike Gilbert (<floppym@gentoo.org>) escribió:

    On Wed, Jun 21, 2023 at 12:47 PM TOMAS FABRIZIO ORSI <torsi@fi.uba.ar> wrote:
    I had not considered that possibility either. In that case, could not
    the overlay
    dependency resolution be handled as a module?
    Said module could be a common interface for different package managers. Then, the execution of said module would be handled on a per package
    manager/sync program basis?

    I'm not quite certain what you mean by "module" here, but that sounds
    like unnecessary extra abstraction.

    I think flow's idea to make the sync command configurable somehow
    would be sufficient, assuming there is demand for it.



    <div dir="ltr"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I think flow&#39;s idea to make the sync command configurable somehow<br>
    would be sufficient, assuming there is demand for it.</blockquote><div class="gmail-adL">I agree. <br></div><div class="gmail-adL">I&#39;m glad Flow has their ideas straight. <br></div><div class="gmail-adL"><br></div><div class="gmail-adL">By the way
    Flow, could you share the links of the repo/PR so that we can <br></div><div class="gmail-adL">follow the development along? I would love to see it! ^_^<br></div><div class="gmail-adL"><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.
    8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="gmail-adL">I&#39;m not quite certain what you mean by &quot;module&quot; here, but that sounds<br>
    like unnecessary extra abstraction.</div></blockquote><div> </div><div class="gmail-adL">I think my line of thought was a bit overkill. <br></div><div class="gmail-adL">Not to mention that I am not that well versed (if at all)<br></div><div class="gmail-
    adL">with portage&#39;s implementation detail.</div><div class="gmail-adL"><br></div><div class="gmail-adL">PS: I forgot to mention this in the original email, but I did file a</div><div class="gmail-adL">bug with this feature request. <a href="https://
    bugs.gentoo.org/907959">https://bugs.gentoo.org/907959</a></div><div class="gmail-adL"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">El mié, 21 jun 2023 a las 14:46, Mike Gilbert (&lt;<a href="mailto:floppym@gentoo.org">
    floppym@gentoo.org</a>&gt;) escribió:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Wed, Jun 21, 2023 at 12:47 PM TOMAS FABRIZIO ORSI &lt;<a href="mailto:torsi@fi.
    uba.ar" target="_blank">torsi@fi.uba.ar</a>&gt; wrote:<br>
    &gt; I had not considered that possibility either. In that case, could not the overlay<br>
    &gt; dependency resolution be handled as a module?<br>
    &gt; Said module could be a common interface for different package managers.<br>
    &gt; Then, the execution of said module would be handled on a per package manager/sync program basis?<br>

    I&#39;m not quite certain what you mean by &quot;module&quot; here, but that sounds<br>
    like unnecessary extra abstraction.<br>

    I think flow&#39;s idea to make the sync command configurable somehow<br>
    would be sufficient, assuming there is demand for it.<br>

    </blockquote></div>

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

    [[PGP Signed Part:Undecided]]
    On 21/06/2023 17.56, Mike Gilbert wrote:
    On Wed, Jun 21, 2023 at 11:41 AM Florian Schmaus <flow@gentoo.org> wrote: >>>
    On 20.06.23 19:26, Mike Gilbert wrote:
    On Tue, Jun 20, 2023 at 1:08 PM Florian Schmaus <flow@gentoo.org> wrote: >>>>>
    On 20.06.23 16:41, TOMAS FABRIZIO ORSI wrote:
    Isn't that duplicating the information of metadata/layout.conf's >>>>>> 'master' key-value pair [1]?


    Yes, I agree that it would be duplicating that information. As a matter >>>>>> of fact, Michał Górny pointed the same thing out.
    However, Michał also added, quote: "What's really lacking here is >>>>>> support for specifying dependencies via |repositories.xml|

    Do we need to duplicate the information in repositories.xml, with all >>>>> the drawbacks of duplication?

    Can't eselect repository add the new repository, then read the 'masters' >>>>> value from layout.conf, and add the missing repositories recursively? >>>>
    That would be a significant change in behavior for eselect repository.

    Right, but it seems to be a desirable behaviour. Cases where the user
    wants to add a repo but not immediately sync it are probably rare.

    Furthermore, it would avoid duplicating the information, which avoids
    the typical drawbacks of duplication (e.g., the two sets getting out of
    sync).

    I've looked at the eselect-repository code, and it seems not hard to
    change the behaviour of "eselect repository add" to add and sync a
    repository and then, recursively, add and sync further required
    repositories.

    I may give it a shot, but ideally I'd know if it has a chance to be
    accepted upstream first. Or maybe there is a good reason why
    eselect-repository behaves as it currently does that I am missing?
    I can't speak for "upstream", but here are my concerns:
    1. As a developer, I might just want to create the repos.conf config
    snippet and sync the repo manually.
    2. As a user, I might have any arbitrary reason for not wanting to
    sync immediately.

    Would an opt-out switch be enough to alleviate those concerns of you?


    3. eselect-repository does not currently depend on any particular
    package manager. It writes config files intended for Portage, but it
    does not actually invoke any Portage commands. That feels like a
    significant distinction to me.
    4. If you start invoking Portage commands, you then have to deal with
    the possibility of people using alternate package managers. pkgcore
    can also utilize Portage's repos.conf, and the user might prefer to
    use pmaint instead of emaint or emerge --sync.

    Those two points seem to be based on the same fundamental concern.

    The only portage specific code would be the call to "emaint sync -r
    $repo" (remember that "emerge --sync" is just a wrapper for "emaint
    sync --auto"). I think it would be easy to add later 1. add support
    for different package managers (if the need arises), and 2. make the
    "sync command" user configurable.

    While looking at this, it might be worth evaluating 2 other things
    which users have mentioned during the migration away from layman:
    1. Adding a way to fully disable the cache fetching;
    2. Add a way to use the "real" upstream sources instead of our mirrored
    ones

    best,
    sam

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

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

    iOUEARYKAI0WIQQlpruI3Zt2TGtVQcJzhAn1IN+RkAUCZJNE518UgAAAAAAuAChp c3N1ZXItZnByQG5vdGF0aW9ucy5vcGVucGdwLmZpZnRoaG9yc2VtYW4ubmV0MjVB NkJCODhERDlCNzY0QzZCNTU0MUMyNzM4NDA5RjUyMERGOTE5MA8cc2FtQGdlbnRv by5vcmcACgkQc4QJ9SDfkZCH6QEAgsLT2+V5b6g1Ybut7wcOhmJRY2n9wynNgNz+ PEr50P8BAIVf3zrr5TqCqewApq/BeLnI6z4Ha64an2Q89/Zge7sA
    =+O0Z
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From TOMAS FABRIZIO ORSI@21:1/5 to All on Wed Jun 21 21:10:01 2023

    2. Add a way to use the "real" upstream sources instead of our mirrored
    ones


    Isn't this eselect repository's default behaviour? Or am I misunderstanding? When I run "eselect repository list" I get the source repositories, not the mirrored ones.
    Is it using the mirrored one behind the scenes?

    Best regards,
    - Tomas Fabrizio Orsi
    El mié, 21 jun 2023 a las 15:44, Sam James (<sam@gentoo.org>) escribió:


    Florian Schmaus <flow@gentoo.org> writes:

    [[PGP Signed Part:Undecided]]
    On 21/06/2023 17.56, Mike Gilbert wrote:
    On Wed, Jun 21, 2023 at 11:41 AM Florian Schmaus <flow@gentoo.org> wrote:

    On 20.06.23 19:26, Mike Gilbert wrote:
    On Tue, Jun 20, 2023 at 1:08 PM Florian Schmaus <flow@gentoo.org> wrote:

    On 20.06.23 16:41, TOMAS FABRIZIO ORSI wrote:
    Isn't that duplicating the information of
    metadata/layout.conf's
    'master' key-value pair [1]?


    Yes, I agree that it would be duplicating that information. As a matter
    of fact, Michał Górny pointed the same thing out.
    However, Michał also added, quote: "What's really lacking here is >>>>>> support for specifying dependencies via |repositories.xml|

    Do we need to duplicate the information in repositories.xml, with all >>>>> the drawbacks of duplication?

    Can't eselect repository add the new repository, then read the 'masters'
    value from layout.conf, and add the missing repositories recursively? >>>>
    That would be a significant change in behavior for eselect repository. >>>
    Right, but it seems to be a desirable behaviour. Cases where the user
    wants to add a repo but not immediately sync it are probably rare.

    Furthermore, it would avoid duplicating the information, which avoids
    the typical drawbacks of duplication (e.g., the two sets getting out of >>> sync).

    I've looked at the eselect-repository code, and it seems not hard to
    change the behaviour of "eselect repository add" to add and sync a
    repository and then, recursively, add and sync further required
    repositories.

    I may give it a shot, but ideally I'd know if it has a chance to be
    accepted upstream first. Or maybe there is a good reason why
    eselect-repository behaves as it currently does that I am missing?
    I can't speak for "upstream", but here are my concerns:
    1. As a developer, I might just want to create the repos.conf config
    snippet and sync the repo manually.
    2. As a user, I might have any arbitrary reason for not wanting to
    sync immediately.

    Would an opt-out switch be enough to alleviate those concerns of you?


    3. eselect-repository does not currently depend on any particular
    package manager. It writes config files intended for Portage, but it
    does not actually invoke any Portage commands. That feels like a
    significant distinction to me.
    4. If you start invoking Portage commands, you then have to deal with
    the possibility of people using alternate package managers. pkgcore
    can also utilize Portage's repos.conf, and the user might prefer to
    use pmaint instead of emaint or emerge --sync.

    Those two points seem to be based on the same fundamental concern.

    The only portage specific code would be the call to "emaint sync -r
    $repo" (remember that "emerge --sync" is just a wrapper for "emaint
    sync --auto"). I think it would be easy to add later 1. add support
    for different package managers (if the need arises), and 2. make the
    "sync command" user configurable.

    While looking at this, it might be worth evaluating 2 other things
    which users have mentioned during the migration away from layman:
    1. Adding a way to fully disable the cache fetching;
    2. Add a way to use the "real" upstream sources instead of our mirrored
    ones

    best,
    sam


    <div dir="ltr"><div dir="ltr"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">2. Add a way to use the &quot;real&quot; upstream sources instead of our mirrored<br>
    ones</blockquote><div> </div></div><div>Isn&#39;t this eselect repository&#39;s default behaviour? Or am I misunderstanding?</div><div>When I run &quot;eselect repository list&quot; I get the source repositories, not the mirrored ones.</div><div>Is it
    using the mirrored one behind the scenes?</div><div><br></div><div><span class="gmail-im"><div>Best regards,</div><div>- Tomas Fabrizio Orsi</div></span></div></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">El mié, 21 jun 2023 a las 15:
    44, Sam James (&lt;<a href="mailto:sam@gentoo.org" target="_blank">sam@gentoo.org</a>&gt;) escribió:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
    Florian Schmaus &lt;<a href="mailto:flow@gentoo.org" target="_blank">flow@gentoo.org</a>&gt; writes:<br>

    &gt; [[PGP Signed Part:Undecided]]<br>
    &gt; On 21/06/2023 17.56, Mike Gilbert wrote:<br>
    &gt;&gt; On Wed, Jun 21, 2023 at 11:41 AM Florian Schmaus &lt;<a href="mailto:flow@gentoo.org" target="_blank">flow@gentoo.org</a>&gt; wrote:<br>
    &gt;&gt;&gt;<br>
    &gt;&gt;&gt; On 20.06.23 19:26, Mike Gilbert wrote:<br>
    &gt;&gt;&gt;&gt; On Tue, Jun 20, 2023 at 1:08 PM Florian Schmaus &lt;<a href="mailto:flow@gentoo.org" target="_blank">flow@gentoo.org</a>&gt; wrote:<br>
    &gt;&gt;&gt;&gt;&gt;<br>
    &gt;&gt;&gt;&gt;&gt; On 20.06.23 16:41, TOMAS FABRIZIO ORSI wrote:<br> &gt;&gt;&gt;&gt;&gt;&gt;       Isn&#39;t that duplicating the information of metadata/layout.conf&#39;s<br>
    &gt;&gt;&gt;&gt;&gt;&gt;       &#39;master&#39; key-value pair [1]?<br> &gt;&gt;&gt;&gt;&gt;&gt;<br>
    &gt;&gt;&gt;&gt;&gt;&gt;<br>
    &gt;&gt;&gt;&gt;&gt;&gt; Yes, I agree that it would be duplicating that information. As a matter<br>
    &gt;&gt;&gt;&gt;&gt;&gt; of fact, Michał Górny pointed the same thing out.<br>
    &gt;&gt;&gt;&gt;&gt;&gt; However, Michał also added, quote: &quot;What&#39;s really lacking here is<br>
    &gt;&gt;&gt;&gt;&gt;&gt; support for specifying dependencies via |repositories.xml|<br>
    &gt;&gt;&gt;&gt;&gt;<br>
    &gt;&gt;&gt;&gt;&gt; Do we need to duplicate the information in repositories.xml, with all<br>
    &gt;&gt;&gt;&gt;&gt; the drawbacks of duplication?<br>
    &gt;&gt;&gt;&gt;&gt;<br>
    &gt;&gt;&gt;&gt;&gt; Can&#39;t eselect repository add the new repository, then read the &#39;masters&#39;<br>
    &gt;&gt;&gt;&gt;&gt; value from layout.conf, and add the missing repositories recursively?<br>
    &gt;&gt;&gt;&gt;<br>
    &gt;&gt;&gt;&gt; That would be a significant change in behavior for eselect repository.<br>
    &gt;&gt;&gt;<br>
    &gt;&gt;&gt; Right, but it seems to be a desirable behaviour. Cases where the user<br>
    &gt;&gt;&gt; wants to add a repo but not immediately sync it are probably rare.<br>
    &gt;&gt;&gt;<br>
    &gt;&gt;&gt; Furthermore, it would avoid duplicating the information, which avoids<br>
    &gt;&gt;&gt; the typical drawbacks of duplication (e.g., the two sets getting out of<br>
    &gt;&gt;&gt; sync).<br>
    &gt;&gt;&gt;<br>
    &gt;&gt;&gt; I&#39;ve looked at the eselect-repository code, and it seems not hard to<br>
    &gt;&gt;&gt; change the behaviour of &quot;eselect repository add&quot; to add and sync a<br>
    &gt;&gt;&gt; repository and then, recursively, add and sync further required<br>
    &gt;&gt;&gt; repositories.<br>
    &gt;&gt;&gt;<br>
    &gt;&gt;&gt; I may give it a shot, but ideally I&#39;d know if it has a chance to be<br>
    &gt;&gt;&gt; accepted upstream first. Or maybe there is a good reason why<br> &gt;&gt;&gt; eselect-repository behaves as it currently does that I am missing?<br>
    &gt;&gt; I can&#39;t speak for &quot;upstream&quot;, but here are my concerns:<br>
    &gt;&gt; 1. As a developer, I might just want to create the repos.conf config<br>
    &gt;&gt; snippet and sync the repo manually.<br>
    &gt;&gt; 2. As a user, I might have any arbitrary reason for not wanting to<br> &gt;&gt; sync immediately.<br>
    &gt;<br>
    &gt; Would an opt-out switch be enough to alleviate those concerns of you?<br> &gt;<br>
    &gt;<br>
    &gt;&gt; 3. eselect-repository does not currently depend on any particular<br> &gt;&gt; package manager. It writes config files intended for Portage, but it<br>
    &gt;&gt; does not actually invoke any Portage commands. That feels like a<br> &gt;&gt; significant distinction to me.<br>
    &gt;&gt; 4. If you start invoking Portage commands, you then have to deal with<br>
    &gt;&gt; the possibility of people using alternate package managers. pkgcore<br>
    &gt;&gt; can also utilize Portage&#39;s repos.conf, and the user might prefer to<br>
    &gt;&gt; use pmaint instead of emaint or emerge --sync.<br>
    &gt;<br>
    &gt; Those two points seem to be based on the same fundamental concern.<br> &gt;<br>
    &gt; The only portage specific code would be the call to &quot;emaint sync -r<br>
    &gt; $repo&quot; (remember that &quot;emerge --sync&quot; is just a wrapper for &quot;emaint<br>
    &gt; sync --auto&quot;). I think it would be easy to add later 1. add support<br>
    &gt; for different package managers (if the need arises), and 2. make the<br> &gt; &quot;sync command&quot; user configurable.<br>

    While looking at this, it might be worth evaluating 2 other things<br>
    which users have mentioned during the migration away from layman:<br>
    1. Adding a way to fully disable the cache fetching;<br>
    2. Add a way to use the &quot;real&quot; upstream sources instead of our mirrored<br>
    ones<br>

    best,<br>
    sam<br>
    </blockquote></div>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Sam James@21:1/5 to TOMAS FABRIZIO ORSI on Wed Jun 21 21:20:01 2023
    TOMAS FABRIZIO ORSI <torsi@fi.uba.ar> writes:

    2. Add a way to use the "real" upstream sources instead of our mirrored
    ones


    Isn't this eselect repository's default behaviour? Or am I misunderstanding? When I run "eselect repository list" I get the source repositories, not the mirrored ones.
    Is it using the mirrored one behind the scenes?

    (Please don't top-post.)

    No, it uses the mirrores ones with metadata.


    Best regards,
    - Tomas Fabrizio Orsi
    El mié, 21 jun 2023 a las 15:44, Sam James (<sam@gentoo.org>) escribió:

    Florian Schmaus <flow@gentoo.org> writes:

    [[PGP Signed Part:Undecided]]
    On 21/06/2023 17.56, Mike Gilbert wrote:
    On Wed, Jun 21, 2023 at 11:41 AM Florian Schmaus <flow@gentoo.org> wrote:

    On 20.06.23 19:26, Mike Gilbert wrote:
    On Tue, Jun 20, 2023 at 1:08 PM Florian Schmaus <flow@gentoo.org> wrote:

    On 20.06.23 16:41, TOMAS FABRIZIO ORSI wrote:
    Isn't that duplicating the information of metadata/layout.conf's
    'master' key-value pair [1]?


    Yes, I agree that it would be duplicating that information. As a matter
    of fact, Michał Górny pointed the same thing out.
    However, Michał also added, quote: "What's really lacking here is
    support for specifying dependencies via |repositories.xml|

    Do we need to duplicate the information in repositories.xml, with all
    the drawbacks of duplication?

    Can't eselect repository add the new repository, then read the 'masters'
    value from layout.conf, and add the missing repositories recursively?

    That would be a significant change in behavior for eselect repository.

    Right, but it seems to be a desirable behaviour. Cases where the user
    wants to add a repo but not immediately sync it are probably rare.

    Furthermore, it would avoid duplicating the information, which avoids
    the typical drawbacks of duplication (e.g., the two sets getting out of
    sync).

    I've looked at the eselect-repository code, and it seems not hard to
    change the behaviour of "eselect repository add" to add and sync a
    repository and then, recursively, add and sync further required
    repositories.

    I may give it a shot, but ideally I'd know if it has a chance to be
    accepted upstream first. Or maybe there is a good reason why
    eselect-repository behaves as it currently does that I am missing?
    I can't speak for "upstream", but here are my concerns:
    1. As a developer, I might just want to create the repos.conf config
    snippet and sync the repo manually.
    2. As a user, I might have any arbitrary reason for not wanting to
    sync immediately.

    Would an opt-out switch be enough to alleviate those concerns of you?


    3. eselect-repository does not currently depend on any particular
    package manager. It writes config files intended for Portage, but it
    does not actually invoke any Portage commands. That feels like a
    significant distinction to me.
    4. If you start invoking Portage commands, you then have to deal with
    the possibility of people using alternate package managers. pkgcore
    can also utilize Portage's repos.conf, and the user might prefer to
    use pmaint instead of emaint or emerge --sync.

    Those two points seem to be based on the same fundamental concern.

    The only portage specific code would be the call to "emaint sync -r
    $repo" (remember that "emerge --sync" is just a wrapper for "emaint
    sync --auto"). I think it would be easy to add later 1. add support
    for different package managers (if the need arises), and 2. make the
    "sync command" user configurable.

    While looking at this, it might be worth evaluating 2 other things
    which users have mentioned during the migration away from layman:
    1. Adding a way to fully disable the cache fetching;
    2. Add a way to use the "real" upstream sources instead of our mirrored
    ones

    best,
    sam


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

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

    iOUEARYKAI0WIQQlpruI3Zt2TGtVQcJzhAn1IN+RkAUCZJNMjF8UgAAAAAAuAChp c3N1ZXItZnByQG5vdGF0aW9ucy5vcGVucGdwLmZpZnRoaG9yc2VtYW4ubmV0MjVB NkJCODhERDlCNzY0QzZCNTU0MUMyNzM4NDA5RjUyMERGOTE5MA8cc2FtQGdlbnRv by5vcmcACgkQc4QJ9SDfkZA0bAD/Wp+VfkZMPnJFVoFmfWQJN51D6K50xZQlG3i6 UmtCWbYA/Rqh03ZTu5uwtWefxPKXdqdo3df5lqmr+7+9RJD8IT4D
    =zcbt
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From TOMAS FABRIZIO ORSI@21:1/5 to All on Wed Jul 12 20:10:02 2023
    Hello,

    Long time no see. Update on the feature request: Michał Górny rejected Florian's the pull request, raising concerns regarding the use of gentoo specific tooling;
    stating that eselect-repository should work (as I understood it) as a standalone program.

    Originally, Górny suggested updating the repositories.xml file by adding
    the masters entry.

    That's why I did some data processing of the overlays.
    (It turns out only a small set of overlays have additional dependencies
    besides gentoo).
    With this data now processed, adding the masters entry to the
    repositories.xml
    should be way easier.
    Here's the repo: https://github.com/lima-limon-inc/OverlayStats
    (it also contains information regarding package amounts by overlay,
    which I found it quite interesting)
    And here's a google sheet with the data loaded in: https://docs.google.com/spreadsheets/d/1Spti8KCFQbi0kszvgBnxMtAlUC3RU1HZU8MZHlYP5xQ/edit?usp=sharing

    Having said that, there's still the issue of data duplication that Florian raised.
    That I do not know how could be tackled.

    Best regards,
    - Tomas Fabrizio Orsi

    <div dir="ltr"><div>Hello,</div><div><br></div><div>Long time no see. Update on the feature request: Michał Górny rejected <br></div><div>Florian&#39;s the pull request, raising concerns regarding the use of gentoo specific tooling;</div><div>stating
    that eselect-repository should work (as I understood it) as a standalone program. <br></div><br><div>Originally, Górny suggested updating the repositories.xml file by adding the masters entry.</div><div><br></div><div>That&#39;s why I did some data
    processing of the overlays. </div><div>(It turns out only a small set of overlays have additional dependencies besides gentoo). </div><div>With this data now processed, adding the masters entry to the repositories.xml</div><div>should be way easier. <
    </div><div>Here&#39;s the repo: <a href="https://github.com/lima-limon-inc/OverlayStats">https://github.com/lima-limon-inc/OverlayStats</a></div><div>(it also contains information regarding package amounts by overlay, <br></div><div>which I found it
    quite interesting)</div><div>And here&#39;s a google sheet with the data loaded in: </div><div><a href="https://docs.google.com/spreadsheets/d/1Spti8KCFQbi0kszvgBnxMtAlUC3RU1HZU8MZHlYP5xQ/edit?usp=sharing">https://docs.google.com/spreadsheets/d/
    1Spti8KCFQbi0kszvgBnxMtAlUC3RU1HZU8MZHlYP5xQ/edit?usp=sharing</a></div><div><br></div><div>Having said that, there&#39;s still the issue of data duplication that Florian raised. <br></div><div>That I do not know how could be tackled.</div><div><br></div><
    <div><div>Best regards,</div><div>- Tomas Fabrizio Orsi</div></div></div><div></div></div>

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