Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 539706

Summary: sys-apps/portage-2.2.16 without dev-vcs/git with sync-type=git in repos.conf - Traceback (most recent call last): AttributeError: 'function' object has no attribute 'ERROR'
Product: Portage Development Reporter: PV <grnv27>
Component: Core - DependenciesAssignee: Portage team <dev-portage>
Status: RESOLVED FIXED    
Severity: normal Keywords: InVCS, REGRESSION
Priority: Normal    
Version: unspecified   
Hardware: AMD64   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 484436    

Description PV 2015-02-11 04:16:29 UTC
Portage without merged dev-vcs/git can't sync overlays with "sync-type=git"

In my environment dev-vcs/git depends on layman, when I remove layman and do --depclean, it removes dev-vcs/git also.

Layman removed because of trying to move at new repos.conf settings, without layman.

Steps to reproduce:
1. Make sure dev-vcs/git is not merged 
3. Add overlay to /etc/portage/repos.conf/, for example:

cat /etc/portage/repos.conf/mozilla.conf

[mozilla]
location = /usr/overlays/mozilla
sync-type = git
sync-uri = git://git.overlays.gentoo.org/proj/mozilla.git
auto-sync = yes

4. emaint sync -r mozila error:

>>> Syncing repository 'mozilla' into '/usr/overlays/mozilla'...
Traceback (most recent call last):
  File "/usr/lib/python-exec/python3.3/emaint", line 36, in <module>
    emaint_main(sys.argv[1:])
  File "/usr/lib64/python3.3/site-packages/portage/emaint/main.py", line 242, in emaint_main
    taskmaster.run_tasks(tasks, func, status, options=task_opts)
  File "/usr/lib64/python3.3/site-packages/portage/emaint/main.py", line 139, in run_tasks
    result = getattr(inst, func)(**kwargs)
  File "/usr/lib64/python3.3/site-packages/portage/emaint/modules/sync/sync.py", line 94, in auto_sync
    emaint_opts=options)
  File "/usr/lib64/python3.3/site-packages/portage/emaint/modules/sync/sync.py", line 219, in _sync
    returncode, message = sync_manager.sync(self.emerge_config, repo)
  File "/usr/lib64/python3.3/site-packages/portage/sync/controller.py", line 148, in sync
    taskmaster.run_tasks(tasks, func, status, options=task_opts)
  File "/usr/lib64/python3.3/site-packages/portage/sync/controller.py", line 65, in run_tasks
    result = getattr(inst, func)(**kwargs)
  File "/usr/lib64/python3.3/site-packages/portage/sync/syncbase.py", line 119, in sync
    if not self._has_bin:
  File "/usr/lib64/python3.3/site-packages/portage/sync/syncbase.py", line 56, in _has_bin
    level=self.logger.ERROR, noiselevel=-1)
AttributeError: 'function' object has no attribute 'ERROR'


Expected result:

Informative message about missing dev-vcs/git
Comment 1 Jeroen Roovers (RETIRED) gentoo-dev 2015-02-11 08:05:35 UTC
You mean to use a feature of package A at run-time, you would need to re-emerge package A with a new USE flag just to have it pull in package B, which helps implement that feature?

I guess there could be an easy to understand error message there, perhaps even one explaining the required package B.
Comment 2 Brian Dolbec (RETIRED) gentoo-dev 2015-02-13 17:59:23 UTC
This is fixed in git commit: 
https://github.com/gentoo/portage/commit/9046d7d5b557cb94bcd6a3b4df0c6f4245f9ffa4
Comment 3 Brian Dolbec (RETIRED) gentoo-dev 2015-03-04 21:22:24 UTC
Released in portage-2.2.18