Enerccio / ewlc

Wayland compositor library - extended
MIT License
20 stars 3 forks source link

make submodule URI relative #45

Open WLCIssuesBot opened 7 years ago

WLCIssuesBot commented 7 years ago

Issue by hashashini Tuesday Dec 22, 2015 at 20:06 GMT Originally opened as https://github.com/Cloudef/wlc/pull/98


As protocol URI transformation is not predictable across different platforms like github, a relative URI should be preferred. Thus e.g. package managers can easily check out submodules via the same protocol that is used for checking out the main repo. (solves https://bugs.gentoo.org/show_bug.cgi?id=568156)


hashashini included the following code: https://github.com/Cloudef/wlc/pull/98/commits

WLCIssuesBot commented 7 years ago

Comment by Earnestly Tuesday Dec 22, 2015 at 20:44 GMT


This smells like a package manager/package build system problem; with something like PKGBUILDs this is easily handled with:

# It is merely coincidence that the submodule is from the same
# github user, but this could be from anywhere.
source=('git+https://github.com/Cloudef/wlc'
        'git+https://github.com/Cloudef/chck')

# And in the prepare/post-build function:
prepare() {
    cd wlc
    git submodule init
    git config submodule.lib/chck.url "$srcdir"/chck
    git submodule update lib/chck
}

I'm not sure how it works in Gentoo but usually packages have a policy of "do not download during the build" and "do not build during the install".

WLCIssuesBot commented 7 years ago

Comment by Cloudef Tuesday Dec 22, 2015 at 20:50 GMT


This breaks git submodules completely when ../chck.git is not available. Effectively breaking in-source builds which are useful for development.

WLCIssuesBot commented 7 years ago

Comment by mgorny Thursday Dec 24, 2015 at 08:20 GMT


@Cloudef, I don't understand the problem you are referring to. This affects only the clone URI, and is relatively to the remote URI. So if you git clone git@github.com:... the original repository, the submodule will also be fetched from github via SSH.

WLCIssuesBot commented 7 years ago

Comment by Cloudef Monday Jan 04, 2016 at 07:34 GMT


All right, I did not know relative urls are relative to the actual remote. This makes sense then. I'll test this later.

WLCIssuesBot commented 7 years ago

Comment by Cloudef Monday Jan 04, 2016 at 14:32 GMT


This actually breaks your fork, since it tries to clone chck from your github git path, but does not exist there. I think it's better to use git config to specify the submodule url manually for the specific cases.

WLCIssuesBot commented 7 years ago

Comment by mgorny Monday Jan 04, 2016 at 19:26 GMT


I'd dare say fork is a specific case, while just cloning the upstream repo is a generic case which should be accounted for. IOW, person doing git clone https://github.com/Cloudef/wlc would expect submodules to work out of the box, independently of firewalls.