Hello,

Sometimes it is necessary for a single package to pull from multiple
remote repositories. One case are broken packages like glibc (where
two repositories have to be merged for build-time), another are git
submodules (which don't cooperate well with bare checkouts).

Thus, I'm wondering about adding support for such a feature to
git-2.eclass. However, I don't have any concept for it yet so I'd
appreciate your ideas. What needs to be thought up is not only how to
do it but also what to do, exactly.

The simpler case would be only to provide support for fetching from
multiple repositories in git-2, and use it for submodules internally.
This would already fix glibc-9999 & smart-live-rebuild cooperation but
the glibc ebuild would still need to do a little hackery to checkout
the second repository.

The more complete case would be to completely support multiple
repostories but it would require a larger eclass rewrite, to support
hacking more of its variables.

Another question is how to implement it API-wide. The main problem here
is that we already use multiple values for EGIT_REPO_URI to support
fallback URIs, and I'd prefer supporting that for the additional repos
as well.


1/ Mike suggested something like:

EGIT_REPO_URI=( "repo1 fallback1" "repo2 fallback2" )

but IMO it hurts readability and makes the behavior a little surprising
(not that the fallback syntax isn't surprising already).


2/ Exherbo way would be doing something like:

EGIT_SECONDARY_REPOS='foo'
EGIT_foo_REPO_URI=...

but that would be real PITA for smart-live-rebuild, and I really hate
dynamically named variables.


3/ I'm wondering about something in-between those two, supposedly:

EGIT_SECONDARY_REPO_URIS=( "repo2 fallback2" ... )

Still painful for s-l-r but could be implemented without
eclass-specific hacks as array support. Of course, if we support this
not only for fetching but for checkouts as well, it's likely to get
unreadable as well...

What are your ideas?

-- 
Best regards,
Michał Górny

Attachment: signature.asc
Description: PGP signature

Reply via email to