Gentoo Logo
Gentoo Spaceship




Note: Due to technical difficulties, the Archives are currently not up to date. GMANE provides an alternative service for most mailing lists.
c.f. bug 424647
List Archive: gentoo-portage-dev
Navigation:
Lists: gentoo-portage-dev: < Prev By Thread Next > < Prev By Date Next >
Headers:
To: gentoo-portage-dev@g.o
From: Brian Dolbec <brian.dolbec@...>
Subject: Re: [API] First steps for creating an API for portage
Date: Fri, 18 Jun 2010 01:27:57 -0700
On Fri, 2010-06-18 at 08:35 +0200, Fabian Groffen wrote:
> On 18-06-2010 02:08:04 +0200, René 'Necoro' Neumann wrote:
> > In parallel (or thereafter), we build the C-bindings. The API for these
> > bindings probably look different -- but I guess they should be
> > implemented in terms of the library created above.
> > 
> > By example:
> > 
> > - Operation: get the list of categories
> > - Python-API: portage.api.categories() : Category list
> > - Implementation: def categories(): return ....
> > - C-API: category * categories()
> > - C-Implementation: some wrapper around portage.api.categories
> 
> If you want to deliver a C implementation, I'd wonder why you wouldn't
> just make a full C implementation and create Python wrappers for them
> instead of the other way around.  Might accidentially speed up Portage,
> and make tools like portage-utils happy.
> 
> 

Unless I'm way off the mark, your suggesting to re-code portage into "C"
then create a python interface to it.  Others have started such a
project, but none have completed aside from paludis (C++).

What we are trying to do is make a higher level interface API that will
do several low level portage operations/calls to produce data for API
consumers like the gui frontends to portage.  To do that in "C" would
require several data conversions from python data types to CTYPES and
back.  Then convert the final results back to python for python consumer
APPS.  I do not see how that would speed up portage as emerge and normal
portage operations will not have anything to do with this API aside from
the consumer apps calls to this api that will in turn run some emerge
operations or do data gathering via portage function calls.

Currently there are 3 gui's that are python based (porthole, portato and
kportagetray), 3 that are in other languages (Himerge in Haskel, Kuroo
in C++, packagekit in C).  These last 3 can make use of a "C" interface
to this new API instead of trying to decode the metadata cache directly,
etc..

If there are other apps that would like to get info from portage via
this API, that is fine with me.  I have intentions of making the "C"
interface available to all apps that desire to.  If there is data that
they want to get from portage via the API, then they should send their
wish list in and we'll do our best to get it in there for them.

Currently the API will be based on the packagekit portage backend code
that was produced last summer and other code from porthole, portato,
kportagetray.  We are also going to put together a layman API for
consumer apps (guis frontends) to use to operate layman without the need
to run it in and parse terminal output.  It too will hopefully be
available via a "C" interface for non-python apps.
-- 
Brian Dolbec <brian.dolbec@...>
Attachment:
signature.asc (This is a digitally signed message part)
Replies:
Re: [API] First steps for creating an API for portage
-- Fabian Groffen
References:
[API] First steps for creating an API for portage
-- René 'Necoro' Neumann
Re: [API] First steps for creating an API for portage
-- Fabian Groffen
Navigation:
Lists: gentoo-portage-dev: < Prev By Thread Next > < Prev By Date Next >
Previous by thread:
Re: [API] First steps for creating an API for portage
Next by thread:
Re: [API] First steps for creating an API for portage
Previous by date:
Re: [API] First steps for creating an API for portage
Next by date:
Re: [API] First steps for creating an API for portage


Updated Jun 13, 2012

Summary: Archive of the gentoo-portage-dev mailing list.

Donate to support our development efforts.

Copyright 2001-2013 Gentoo Foundation, Inc. Questions, Comments? Contact us.