If git-r3 fetches a git-repo via https, it should also use https for the corresponding submodules. Otherwise fetching those submodules will fail behind a firewall that doesn't allow git-traffic. Reproducible: Always Steps to Reproduce: 1. Close firewall-ports used by git protocol 2. Try to emerge e.g. https://github.com/zetok/zetok-overlay/blob/master/dev-libs/wlc/wlc-9999.ebuild Actual Results: >>> Emerging (1 of 1) dev-libs/wlc-9999::local >>> Unpacking source... Initialized empty Git repository in /usr/portage/distfiles/git3-src/Cloudef_wlc.git/ * Fetching https://github.com/Cloudef/wlc.git ... git fetch https://github.com/Cloudef/wlc.git +HEAD:refs/git-r3/HEAD remote: Counting objects: 5937, done. remote: Total 5937 (delta 0), reused 0 (delta 0), pack-reused 5937 Receiving objects: 100% (5937/5937), 1.12 MiB | 1007.00 KiB/s, done. Resolving deltas: 100% (4327/4327), done. From https://github.com/Cloudef/wlc * [new ref] -> refs/git-r3/HEAD git symbolic-ref refs/git-r3/dev-libs/wlc/0/__main__ refs/heads/master Initialized empty Git repository in /usr/portage/distfiles/git3-src/Cloudef_chck.git/ * Fetching git://github.com/Cloudef/chck.git ... git fetch git://github.com/Cloudef/chck.git --prune +refs/heads/*:refs/heads/* +refs/tags/*:refs/tags/* +refs/notes/*:refs/notes/* +HEAD:refs/git-r3/HEAD fatal: unable to connect to github.com: github.com[0: 192.30.252.131]: errno=Connection timed out * ERROR: dev-libs/wlc-9999::local failed (unpack phase): * Unable to fetch from any of EGIT_REPO_URI * * Call stack: * ebuild.sh, line 133: Called src_unpack * environment, line 3335: Called git-r3_src_unpack * environment, line 2444: Called git-r3_src_fetch * environment, line 2438: Called git-r3_fetch * environment, line 2376: Called git-r3_fetch 'git://github.com/Cloudef/chck.git' 'bd9e54ec54a11a7ee11947836a85d8c67ddf4801' 'dev-libs/wlc/0/lib/chck' * environment, line 2360: Called die * The specific snippet of code: * [[ -n ${success} ]] || die "Unable to fetch from any of EGIT_REPO_URI"; I'd appreciate if somebody can point me to a workaround.
Well, it's not our fault and we can't really fix it properly. Mostly because there's no guarantee that there is any predictable transformation for different protocol URIs, and I don't really want to hardcode special handling for github and other services that provide multiple protocols. The correct way of solving this is through relative submodule URIs. Sadly, this is something upstream needs to do. Let's explain this shortly given your example. The upstream repository is: https://github.com/Cloudef/wlc.git and relies on: https://github.com/Cloudef/chck.git So the submodule URI should be: uri = ../chck.git If you'd like, I can submit a pull request upstream with a proper explanation. Should I do that or do you prefer handling it yourself?
Thank you, I'll handle it myself.
(In reply to Michał Górny from comment #1) So I tried to handle this myself, but there are objections upstream I can't address. So if you'd like please take a look at https://github.com/Cloudef/wlc/pull/98