[gentoo-portage-dev] Portage persistence structures :: information about ports tree

2008-06-09 Thread João Macaíba
Hi.

I'm reading portage docs and sources at /usr/lib/portage trying to
understand how portage persists information on 'available ports'.

So, I'm reading /usr/lib/portage/bin/emerge:

--- snip ---

portdb = trees[porttree].dbapi

--- snip ---

Where 'trees' is a parameter to 'search's object construction. 


But who really uses 'search class' is 'action_search' as we can see
below:

--- snip ---

def action_search(settings, trees, myopts, myfiles, spinner):
[...]
searchinstance = search(settings, trees,
spinner, --searchdesc in myopts,
--quiet not in myopts, --usepkg in myopts,
--usepkgonly in myopts)
[...]


--- snip ---

Later in 'emerge' file we have 

--- snip ---
action_search(settings, trees[settings[ROOT]],
--- snip ---

... and so on ...

I'm trying to track the calls, instantiations, etc to figure out how
portage persists ports info.

May someone give me some help on this ? How does portage do the
searchs ? Walk into the ports tree and build some structure or store
this info on some embedded database like berkeley db or sqlite ?

Thanks in advance.

-- 
João Macaíba [EMAIL PROTECTED]

-- 
gentoo-portage-dev@lists.gentoo.org mailing list



Re: [gentoo-portage-dev] Portage persistence structures :: information about ports tree

2008-06-09 Thread João Macaíba

On Tue, 2008-06-10 at 01:07 +0200, Marius Mauch wrote:
 On Mon, 09 Jun 2008 17:36:14 -0300
 João Macaíba [EMAIL PROTECTED] wrote:
 
  May someone give me some help on this ? How does portage do the
  searchs ? Walk into the ports tree and build some structure or store
  this info on some embedded database like berkeley db or sqlite ?
 
 You're probably looking for the portdbapi class defined in
 pym/portage.py (or pym/portage/dbapi/porttree.py in 2.2), in particular
 the cp_all(), cpv_all(), cp_list() and aux_get() methods.
 
 Marius

Thanks very much, Marius, for you help/time ! :)

I'll take a look at them.

Best regards.
-- 
João Macaíba [EMAIL PROTECTED]

-- 
gentoo-portage-dev@lists.gentoo.org mailing list



Re: [gentoo-portage-dev] Portage persistence structures :: information about ports tree

2008-06-09 Thread Zac Medico
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

João Macaíba wrote:
 May someone give me some help on this ? How does portage do the
 searchs ? Walk into the ports tree and build some structure or store
 this info on some embedded database like berkeley db or sqlite ?

If you want to use sqlite, you might find this useful:

http://gentoo-wiki.com/TIP_speed_up_portage_with_sqlite

Zac
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.9 (GNU/Linux)

iEYEARECAAYFAkhN2tgACgkQ/ejvha5XGaMxqACgqCDf40D3UHrvrTsyGACfIPJ8
HgUAoKKeHLASAaO6KrJXW8jpCg/0dWin
=r1mc
-END PGP SIGNATURE-
-- 
gentoo-portage-dev@lists.gentoo.org mailing list



Re: [gentoo-portage-dev] Portage persistence structures :: information about ports tree

2008-06-09 Thread Brian

On Mon, 2008-06-09 at 20:51 -0300, João Macaíba wrote:
 On Tue, 2008-06-10 at 01:07 +0200, Marius Mauch wrote:
  On Mon, 09 Jun 2008 17:36:14 -0300
  João Macaíba [EMAIL PROTECTED] wrote:
  
   May someone give me some help on this ? How does portage do the
   searchs ? Walk into the ports tree and build some structure or store
   this info on some embedded database like berkeley db or sqlite ?
  
  You're probably looking for the portdbapi class defined in
  pym/portage.py (or pym/portage/dbapi/porttree.py in 2.2), in particular
  the cp_all(), cpv_all(), cp_list() and aux_get() methods.
  
  Marius
 

I think for searching you may find the xmatch function to be a very
versatile and useful tool.  I think it is one of the more used functions
that porthole uses from portage.


 Thanks very much, Marius, for you help/time ! :)
 
 I'll take a look at them.
 
 Best regards.
 -- 
 João Macaíba [EMAIL PROTECTED]
 
-- 
Brian [EMAIL PROTECTED]

-- 
gentoo-portage-dev@lists.gentoo.org mailing list