public inbox for gentoo-soc@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-soc] Multiple Repository Support in Portage - Report
@ 2010-07-27 15:56 Otávio Pontes
  2010-07-28  1:49 ` Brian Harring
  0 siblings, 1 reply; 4+ messages in thread
From: Otávio Pontes @ 2010-07-27 15:56 UTC (permalink / raw
  To: gentoo-soc

[-- Attachment #1: Type: text/plain, Size: 1208 bytes --]

Hi,
I have been some time without reporting my work at this mailing list and i
will send my report for the last weeks.
When i sent my last e-mail I was working on emerging a package from one
specific repository using emerge package::repository syntax. It is now
working. It's possible to use the ::repository syntax in emerge command
line, ebuild dependencies and when masking/unmasking/setting use flags in
/etc/portage/package.*.
I also implemented support for syncing portage tree for several version
control systems (git, svn, darcs, hg, bzr, ) and changed emerge --sync to
sync all repositories in repos.conf with SYNC variable set. Its possible to
sync just one repository using emerge --sync repo_name. It's possible to
select which vcs will be used in SYNC variable, using the protocol in uri.
If you want to download from a git repo using http you can use: SYNC=git+
http://servername/repo.git.
After that i wrote a test in pym/portage/tests to use some provided ebuilds
to check if emerge is selecting the correct repository when using
::repository syntax. I am working now in improving this tests and writing
tests for package.* files and syncing.

That's all,
Otávio Pontes

[-- Attachment #2: Type: text/html, Size: 1333 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [gentoo-soc] Multiple Repository Support in Portage - Report
  2010-07-27 15:56 [gentoo-soc] Multiple Repository Support in Portage - Report Otávio Pontes
@ 2010-07-28  1:49 ` Brian Harring
  2010-07-29 19:26   ` Otávio Pontes
  0 siblings, 1 reply; 4+ messages in thread
From: Brian Harring @ 2010-07-28  1:49 UTC (permalink / raw
  To: Otttvio Pontes; +Cc: gentoo-soc

[-- Attachment #1: Type: text/plain, Size: 1768 bytes --]

On Tue, Jul 27, 2010 at 12:56:44PM -0300, Otttvio Pontes wrote:
>    Hi,
> 
>    I have been some time without reporting my work at this mailing list
>    and i will send my report for the last weeks.
> 
>    When i sent my last e-mail I was working on emerging a package from one
>    specific repository using emerge package::repository syntax. It is now
>    working. It's possible to use the ::repository syntax in emerge command
>    line, ebuild dependencies and when masking/unmasking/setting use flags
>    in /etc/portage/package.*.

Just verifying- if you have repository configuration equivalent to the 
following

overlay stacking:
	master: /usr/portage: repo id gentoo
		has dev-util/diffball-1.0
        slave:  /usr/local/overlay1: repo id local1
		has dev-util/diffball-1.0
		has dev-util/bsdiff-1.1
	slave:  /usr/local/overlay2: repo id local2
		has dev-util/bsdiff-1.1

generated from a make.conf being
PORTDIR=/usr/portage
PORTDIR_OVERLAY="/usr/local/overlay1 /usr/local/overlay2"

For such a setup, =dev-util/diffball-1.0 is only visible from the 
local1 repo- specifically, emerge =dev-util/diffball-1.0::gentoo will 
not find the package, emerge =dev-util/diffball-1.0::local1 however 
will.

Further, =dev-util/bsdiff-1.1::local2 will match, but 
dev-util/bsdiff-1.1::local1 will not.

The reason I ask is that an overlay literally stacks repositories, 
slaves shadowing the master.  If you do an emerge 
=dev-util/diffball-1.0 for the configuration above, you get local1's 
ebuild, not gentoo's.  Repository atom's should not be able to bypass 
this- namely it violates the very nature of repository stacking.

So... what's the status of multirepo support's repository atom's for 
this case?
~brian

[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [gentoo-soc] Multiple Repository Support in Portage - Report
  2010-07-28  1:49 ` Brian Harring
@ 2010-07-29 19:26   ` Otávio Pontes
  2010-07-30  4:03     ` Brian Harring
  0 siblings, 1 reply; 4+ messages in thread
From: Otávio Pontes @ 2010-07-29 19:26 UTC (permalink / raw
  To: Brian Harring; +Cc: gentoo-soc

[-- Attachment #1: Type: text/plain, Size: 3044 bytes --]

On Tue, Jul 27, 2010 at 22:49, Brian Harring <ferringb@gmail.com> wrote:

> On Tue, Jul 27, 2010 at 12:56:44PM -0300, Otttvio Pontes wrote:
> >    Hi,
> >
> >    I have been some time without reporting my work at this mailing list
> >    and i will send my report for the last weeks.
> >
> >    When i sent my last e-mail I was working on emerging a package from
> one
> >    specific repository using emerge package::repository syntax. It is now
> >    working. It's possible to use the ::repository syntax in emerge
> command
> >    line, ebuild dependencies and when masking/unmasking/setting use flags
> >    in /etc/portage/package.*.
>
> Just verifying- if you have repository configuration equivalent to the
> following
>
> overlay stacking:
>        master: /usr/portage: repo id gentoo
>                has dev-util/diffball-1.0
>        slave:  /usr/local/overlay1: repo id local1
>                has dev-util/diffball-1.0
>                has dev-util/bsdiff-1.1
>        slave:  /usr/local/overlay2: repo id local2
>                has dev-util/bsdiff-1.1
>
> generated from a make.conf being
> PORTDIR=/usr/portage
> PORTDIR_OVERLAY="/usr/local/overlay1 /usr/local/overlay2"
>
> For such a setup, =dev-util/diffball-1.0 is only visible from the
> local1 repo- specifically, emerge =dev-util/diffball-1.0::gentoo will
> not find the package, emerge =dev-util/diffball-1.0::local1 however
> will.
>

Actually multirepo-portage is working different. If you try to
emerge =dev-util/diffball-1.0, it will use the ebuild from local1.
emerge =dev-util/diffball-1.0::local1 will do the same. But if you run
emerge =dev-util/diffball-1.0::gentoo, it will use the ebuild from gentoo
repository.


>
> Further, =dev-util/bsdiff-1.1::local2 will match, but
> dev-util/bsdiff-1.1::local1 will not.
>

The same happens here. emerge dev-util/bsdiff-1.1::local1 will match and
will get the ebuild from local1.


>
> The reason I ask is that an overlay literally stacks repositories,
> slaves shadowing the master.  If you do an emerge
> =dev-util/diffball-1.0 for the configuration above, you get local1's
> ebuild, not gentoo's.  Repository atom's should not be able to bypass
> this- namely it violates the very nature of repository stacking.
>
>
I see no reason to avoid this. Imagine if I use an overlay with some kde
ebuilds. But, for some reason, i want to install kcalc from portage, and not
from this overlay.
Portage has this versions of kcalc: 4.4.2 and 4.4.3.
And this overlay has the version: 4.4.3.

If i try to emerge kcalc::gentoo in multirepo-portage it will install the
kcalc-4.4.3, which is the newer version in portage.
I don't think it's a good idea to install kcalc-4.4.2, because version 4.4.3
is in an overlay too.

And what about keywords/masks? Using your example, if a user adds in
package.mask:
dev-util/diffball::local1
I will mask all diffball ebuilds for local1. So emerge =diffball-1.0::gentoo
is suppose to fail too?


> So... what's the status of multirepo support's repository atom's for
> this case?
> ~brian
>

[-- Attachment #2: Type: text/html, Size: 4117 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [gentoo-soc] Multiple Repository Support in Portage - Report
  2010-07-29 19:26   ` Otávio Pontes
@ 2010-07-30  4:03     ` Brian Harring
  0 siblings, 0 replies; 4+ messages in thread
From: Brian Harring @ 2010-07-30  4:03 UTC (permalink / raw
  To: Otttvio Pontes; +Cc: gentoo-soc

[-- Attachment #1: Type: text/plain, Size: 1786 bytes --]

On Thu, Jul 29, 2010 at 04:26:10PM -0300, Otttvio Pontes wrote:
>    On Tue, Jul 27, 2010 at 22:49, Brian Harring <[1]ferringb@gmail.com>
>    wrote:
>      The reason I ask is that an overlay literally stacks repositories,
>      slaves shadowing the master.  If you do an emerge
>      =dev-util/diffball-1.0 for the configuration above, you get local1's
>      ebuild, not gentoo's.  Repository atom's should not be able to
>      bypass
>      this- namely it violates the very nature of repository stacking.
> 
>    I see no reason to avoid this. Imagine if I use an overlay with some
>    kde ebuilds. But, for some reason, i want to install kcalc from
>    portage, and not from this overlay.
>    Portage has this versions of kcalc: 4.4.2 and 4.4.3.
>    And this overlay has the version: 4.4.3.
>    If i try to emerge kcalc::gentoo in multirepo-portage it will install
>    the kcalc-4.4.3, which is the newer version in portage.
>    I don't think it's a good idea to install kcalc-4.4.2, because version
>    4.4.3 is in an overlay too.

Bluntly, if you don't want overlay stacking semantics, do not 
configure it as an overlay then- configure the 'overlay' as a 
standalone repository and specify preferred ordering.

Literally, you're trying to make overlays standalone via this logic.  
You're trying to make overlays not *be* overlays.

The problem here is that PORTDIR_OVERLAY has historically forced 
overlay stacking- you can't just change the semantics of those rules 
and suddenly label them all as standalone, or create a quasi 
overlay/standalone repo.

The purpose of multi-repos at it's core is to add in standalone 
repositories- if people want those semantics for a repo, they 
configure the repo as a standalone.

~brian

[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2010-07-30  4:06 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-07-27 15:56 [gentoo-soc] Multiple Repository Support in Portage - Report Otávio Pontes
2010-07-28  1:49 ` Brian Harring
2010-07-29 19:26   ` Otávio Pontes
2010-07-30  4:03     ` Brian Harring

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox