Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 485778 - sys-apps/portage: vcs dependencies for fetching repositories
Summary: sys-apps/portage: vcs dependencies for fetching repositories
Status: RESOLVED WONTFIX
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Dependencies (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 240187
  Show dependency tree
 
Reported: 2013-09-23 20:02 UTC by Thomas Deutschmann (RETIRED)
Modified: 2013-12-05 19:34 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Thomas Deutschmann (RETIRED) gentoo-dev 2013-09-23 20:02:15 UTC
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
Comment 1 Sebastian Luther (few) 2013-11-29 20:53:08 UTC
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/
Comment 2 Thomas Deutschmann (RETIRED) gentoo-dev 2013-12-01 20:30:07 UTC
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?
Comment 3 Mike Gilbert gentoo-dev 2013-12-01 20:50:05 UTC
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. ^_^
Comment 4 Sebastian Luther (few) 2013-12-02 06:17:22 UTC
(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.