Hi, with added repos.conf support (IMHO around version 2.2.x), portage is able to fetch a repository from git. According to # equery depgraph sys-apps/portage * dependency graph for sys-apps/portage-2.2.1 `-- sys-apps/portage-2.2.1 amd64 `-- dev-lang/python-3.3.2-r2 (=dev-lang/python-3*) ~amd64 `-- dev-lang/python-2.6.8-r3 (dev-lang/python) amd64 [threads] `-- virtual/pypy-2.0 (virtual/pypy) ~amd64 [bzip2] `-- dev-lang/python-2.7.5-r2 (dev-lang/python) ~amd64 `-- dev-lang/python-3.2.5-r2 (dev-lang/python) ~amd64 `-- sys-devel/make-3.82-r4 (>=sys-devel/make-3.82) amd64 `-- sys-apps/sed-4.2.2 (>=sys-apps/sed-4.0.5) ~amd64 `-- sys-devel/patch-2.7.1-r2 (sys-devel/patch) ~amd64 `-- app-text/xmlto-0.0.25 (app-text/xmlto) ~amd64 `-- app-text/docbook-xml-dtd-4.4-r2 (~app-text/docbook-xml-dtd-4.4) amd64 `-- dev-python/epydoc-3.0.1-r2 (>=dev-python/epydoc-2.0) amd64 `-- net-misc/rsync-3.0.9-r3 (>=net-misc/rsync-2.6.4) ~amd64 `-- sys-apps/coreutils-8.21 (>=sys-apps/coreutils-6.4) ~amd64 `-- app-shells/bash-4.2_p45 (>=app-shells/bash-4.2_p37) ~amd64 [readline] `-- app-shells/bash-4.1_p11 (<app-shells/bash-4.2_p37) ~amd64 `-- app-admin/eselect-1.3.8 (>=app-admin/eselect-1.2) ~amd64 `-- dev-python/python-mhash-1.4-r1 (dev-python/python-mhash) ~amd64 `-- sys-freebsd/freebsd-bin-9.2_rc3 (sys-freebsd/freebsd-bin) [missing keyword] `-- sys-apps/sandbox-2.6-r1 (>=sys-apps/sandbox-2.2) ~amd64 `-- app-misc/pax-utils-0.7 (>=app-misc/pax-utils-0.1.17) ~amd64 `-- dev-python/pyxattr-0.5.2 (dev-python/pyxattr) amd64 `-- sys-libs/libselinux-2.1.13-r4 (>=sys-libs/libselinux-2.0.94) M[package.mask] [python] [ sys-apps/portage-2.2.1 stats: packages (23), max depth (1) ] * dependency graph for sys-apps/portage-2.2.6 `-- sys-apps/portage-2.2.6 ~amd64 `-- dev-lang/python-3.3.2-r2 (=dev-lang/python-3*) ~amd64 `-- dev-lang/python-2.6.8-r3 (dev-lang/python) amd64 [threads] `-- virtual/pypy-2.0 (virtual/pypy) ~amd64 [bzip2] `-- dev-lang/python-2.7.5-r2 (dev-lang/python) ~amd64 `-- dev-lang/python-3.2.5-r2 (dev-lang/python) ~amd64 `-- sys-devel/make-3.82-r4 (>=sys-devel/make-3.82) amd64 `-- sys-apps/sed-4.2.2 (>=sys-apps/sed-4.0.5) ~amd64 `-- sys-devel/patch-2.7.1-r2 (sys-devel/patch) ~amd64 `-- app-text/xmlto-0.0.25 (app-text/xmlto) ~amd64 `-- app-text/docbook-xml-dtd-4.4-r2 (~app-text/docbook-xml-dtd-4.4) amd64 `-- dev-python/epydoc-3.0.1-r2 (>=dev-python/epydoc-2.0) amd64 `-- net-misc/rsync-3.0.9-r3 (>=net-misc/rsync-2.6.4) ~amd64 `-- sys-apps/coreutils-8.21 (>=sys-apps/coreutils-6.4) ~amd64 `-- app-shells/bash-4.2_p45 (>=app-shells/bash-4.2_p37) ~amd64 [readline] `-- app-shells/bash-4.1_p11 (<app-shells/bash-4.2_p37) ~amd64 `-- app-admin/eselect-1.3.8 (>=app-admin/eselect-1.2) ~amd64 `-- dev-python/python-mhash-1.4-r1 (dev-python/python-mhash) ~amd64 `-- sys-freebsd/freebsd-bin-9.2_rc3 (sys-freebsd/freebsd-bin) [missing keyword] `-- sys-apps/sandbox-2.6-r1 (>=sys-apps/sandbox-2.2) ~amd64 `-- app-misc/pax-utils-0.7 (>=app-misc/pax-utils-0.1.17) ~amd64 `-- dev-python/pyxattr-0.5.2 (dev-python/pyxattr) amd64 `-- sys-libs/libselinux-2.1.13-r4 (>=sys-libs/libselinux-2.0.94) M[package.mask] [python] [ sys-apps/portage-2.2.6 stats: packages (23), max depth (1) ] ...a runtime dependency for dev-vcs/git is missing (sys-apps/portage-9999 has a dev-vcs/git runtime dependency). Also, I guess the same applies to ssh and cvs, because with added support for git repositories, same support was added for ssh and cvs. But I am not sure if we want to pull in these dependencies on all systems... maybe we need a useflag? Reproducible: Always
What happens if you try to sync a git repo without git installed? As long as it gives you a useful error message along the lines of "install git if you want to sync a git repo", we're not going to do anything here. See also the fourth paragraph of: http://devmanual.gentoo.org/general-concepts/use-flags/
Well, the error message says everything you need to know: >>> Synchronization of repository '<reponame>' located in '<location>'... !!! Command not found: git !!! Type "emerge dev-vcs/git" to enable git support. But I am not sure if I understand the paragraph from the dev manual: First, I mentioned a USE flag because I am not sure if we want portage to pull in every supported VCS on every system. That was an idea to solve the problem (see also http://www.gentoo.org/proj/en/glep/glep-0062.html, but this seems to be just a draft) ;) Second, there are many ebuilds in tree which rdepend on net-misc/curl or net-misc/wget for example but only call "/usr/bin/{curl,wget}" (the same portage is doing with git): - app-portage/pfl - app-emulation/vagrant - app-vim/webapi - sci-libs/libqalculate - net-misc/dropbox - net-mail/automx So could you please explain why portage is different and shouldn't rdepend on dev-vcs/git?
Portage may not be any different from those packages. However, that doesn't mean those other packages are doing the "right thing". The issue is debatable. Our docs currently say not to do it, but that has never stopped anyone. ^_^
(In reply to Thomas D. from comment #2) > > Second, there are many ebuilds in tree which rdepend on net-misc/curl or > net-misc/wget for example but only call "/usr/bin/{curl,wget}" (the same > portage is doing with git): > [...] > So could you please explain why portage is different and shouldn't rdepend > on dev-vcs/git? You definitely want an unconditional rdepend if your package would be unusable without that dependency. If it's partially usable and degrades gracefully then I don't know if there's some policy for this. Since portage is one of gentoo's core packages its dependencies should be kept minimal. Hence, no rdepend on git.