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

Bug 608904

Summary: app-portage/portage-utils: support portdbapi.auxdbmodule
Product: Portage Development Reporter: Kent Fredric (IRC: kent\n) (RETIRED) <kentnl>
Component: Third-Party ToolsAssignee: Fabian Groffen <grobian>
Status: RESOLVED OBSOLETE    
Severity: enhancement CC: barzog
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2017-02-10 22:58:38 UTC
There's an infrequently used trick with portage where you can get it to defer all its metadata caching to an SQLite database, which tends to be more efficient for queries once generated.

  $ cat /etc/portage/modules 
  portdbapi.auxdbmodule = cache.sqlite.database

https://wiki.gentoo.org/wiki//etc/portage/modules

However, qcache is not apparently aware of this feature and is confused by it

  qcache -a
  cache: /var/cache/edb/dep//usr/portage is empty!
  cache: /var/cache/edb/dep//var/lib/layman/palemoon is empty!
  cache: /var/cache/edb/dep//var/lib/layman/andy is empty!
  cache: /var/cache/edb/dep//var/lib/layman/steam-overlay is empty!
  cache: /var/cache/edb/dep//var/lib/layman/x11 is empty!
  cache: /var/cache/edb/dep//var/lib/layman/virtualization is empty!
  cache: /var/cache/edb/dep//var/lib/layman/tox-overlay is empty!
  cache: /var/cache/edb/dep//var/lib/layman/rafaelmartins is empty!
  cache: /var/cache/edb/dep//var/lib/layman/qt is empty!
  cache: /var/cache/edb/dep//usr/local/perl-overlay is empty!
  cache: /var/cache/edb/dep//var/lib/layman/mozilla is empty!
  cache: /var/cache/edb/dep//var/lib/layman/luman is empty!
  cache: /var/cache/edb/dep//var/lib/layman/kde is empty!
  cache: /var/cache/edb/dep//var/lib/layman/java is empty!
  cache: /var/cache/edb/dep//var/lib/layman/dotnet is empty!
  cache: /var/cache/edb/dep//var/lib/layman/bumblebee is empty!
  cache: /var/cache/edb/dep//usr/local/portage is empty!
  cache: /var/cache/edb/dep//usr/local/gentoo-lted is empty!

And that becomes more obvious why its confused:

  find /var/cache/edb/dep/usr/
  /var/cache/edb/dep/usr/
  /var/cache/edb/dep/usr/portage
  /var/cache/edb/dep/usr/portage/.ebuild.x
  /var/cache/edb/dep/usr/local
  /var/cache/edb/dep/usr/local/gentoo-history-20150809
  /var/cache/edb/dep/usr/local/portage
  /var/cache/edb/dep/usr/local/portage/.ebuild.x
  /var/cache/edb/dep/usr/local/gentoo-lted.sqlite
  /var/cache/edb/dep/usr/local/perl-overlay
  /var/cache/edb/dep/usr/local/perl-overlay/.ebuild.x
  /var/cache/edb/dep/usr/local/gentoo
  /var/cache/edb/dep/usr/local/gentoo.sqlite
  /var/cache/edb/dep/usr/local/perl-overlay.sqlite
  /var/cache/edb/dep/usr/local/gentoo-history-20150809.sqlite
  /var/cache/edb/dep/usr/local/portage.sqlite
  /var/cache/edb/dep/usr/local/gentoo-lted
  /var/cache/edb/dep/usr/local/gentoo-lted/.ebuild.x
  /var/cache/edb/dep/usr/portage.sqlite
Comment 1 SpanKY gentoo-dev 2017-02-11 05:19:35 UTC
the only portdbapi.auxdbmodule interface supported is the default -- flat_hash.  if you pick any other, things will fail in the same way.

all of the portage-utils tools that utilize the cache files will fail as well.

will have to clean up some of the cache handling to make this work.
Comment 2 Fabian Groffen gentoo-dev 2019-06-06 07:38:57 UTC
this bug is obsolete with 0.80 and later because qcache has been removed, as well as q's own flat-caches (so it can't get confused anymore by cache files it doesn't understand)