public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Anthony G. Basile" <blueness@gentoo.org>
To: gentoo-dev@lists.gentoo.org
Subject: Re: [gentoo-dev] RFC: GLEP 64: Export Package Manager Cached Information. (Was: RFC: GLEP 64: Standardize contents of VDB and establish and API for exporting this information.)
Date: Sat, 06 Sep 2014 12:07:10 -0400	[thread overview]
Message-ID: <540B312E.2030407@gentoo.org> (raw)
In-Reply-To: <20140906150423.1a547253@googlemail.com>

On 09/06/14 10:04, Ciaran McCreesh wrote:
> On Sat, 06 Sep 2014 09:51:58 -0400
> "Anthony G. Basile" <blueness@gentoo.org> wrote:
>>> Paludis doesn't do this (and historically, Portage didn't either).
>>> We store USE etc. This is useful because it allows us to detect when
>>> people have been mucking around with DEPEND and the like.
>> This was a suggestion from mgorny and I trust his opinion on the
>> matter.  It does make sense to have metadata catche which is
>> conditionally evaluated be exported.
> Well what are you planning to use it for? Are you really suggesting
> that people are going to implement EAPI-aware, compliant dependency
> parsers that can't figure out conditionals?

No, but the resolution of the conditionals may change over time and it 
would be nice to have the information as it was at the time of the 
build.  However, this point is minor.  I'm certain something can be 
worked out among the PMS people as to what is best here.  After all, the 
request did come from the portage camp.

>
>> 1) This cannot be utterly arbitrary because there are utilities and
>> portions of portages code which does make use of precisely this
>> information.
> What Portage does internally is up to Portage. What we don't want is to
> encourage external utilities that are utterly inflexible and that make
> strange assumptions.

Neither do we want to hamper what developers might want to do.  The 
authors of sys-apps/elfix, app-portage/gentoolkit, 
app-portage/portage-utils, app-portage/eix are not "utterly inflexible" 
utilities makeing "strange assumptions".  They are useful utilities as 
anyone following this thread would agree.  Their assumption would go 
from being non-standard to standard with the acceptance of this GLEP.  
They would then operate with both portage and paludis.

>
>> 2) With the exception of some embedded systems where everything is
>> statically linked, all modern systems have dynamic linking.  And all
>> dynamic linking has information in its objects which associates the
>> executables with the library they link against.  This is the
>> essential information to be stored.
> Which isn't what you're asking for... You're asking for it in a
> particular format.

I will incorporate better language which goes to the heart of what's 
needed and makes the ELF quantities an example rather than the demanded 
format.  In other words, I will remove the ELF bias.  Since dynamic 
linking information is generated at build time, is expensive to 
regenerate and is useful to other utilities, it falls under the scope of 
the GLEP.  Of course we wish to extend this to any executable format.  
We focus on ELF because of its familiarity, but not at the exclusion of 
others.

>
>> 6) Without a standard here, we have utilites which make use of this
>> cached information in the tree which only work with portage but not
>> paludis.  This problem can be solved by removing those utilities,
>> which is undesireable, by standardizing what needs to be exported
>> from the PM, or by living with the status quo which is having useful
>> packages in the tree which don't work with paludis.
> The solution is to replace those utilities with something that works in
> proper generality.

You can do this, but it would be terribly inefficient to regenerate 
expensive information already generated by PM.  For example, `equery` 
from gentoolkit allows the user to gather all sorts of information about 
installed packages, eg. "What package does this file belongs to?"  A 
very natural question.  Without this information cached in portage's 
VDB, how would equery do this?  It would  have to rebuild package by 
package until it finds one that gives the file we're looking for?!  This 
is absurd.  Rather gentoolkit opens up /var/db/pkg and read the 
information out of there.

For gentoolkit to work "in proper generality" we would need PM's to 
export this information by some common API, so there is a generality.  
That's what GLEP 64 is about.  You point argues in favor of the GLEP.


>
>>> You've also not discussed how this interacts with Portage's
>>> package.provided misfeature.
>>>
>>> Finally, you don't have any way of using this information, since you
>>> don't have a way of knowing what packages are installed.
>> I don't understand your reasoning behind these points, can you please
>> explain.
> Well you can't ask for information about packages unless you know
> what's installed, and you haven't asked for a general API for that.

Ah, okay.  That should be added explicitly since its only implied right 
now.  Thanks.

>
> And when you do ask, is a package that's "provided" installed, and if
> so, what's its metadata?
>

When the package is installed, that data should have been cached.

-- 
Anthony G. Basile, Ph.D.
Gentoo Linux Developer [Hardened]
E-Mail    : blueness@gentoo.org
GnuPG FP  : 1FED FAD9 D82C 52A5 3BAB  DC79 9384 FA6E F52D 4BBA
GnuPG ID  : F52D4BBA



  reply	other threads:[~2014-09-06 16:04 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-30 20:02 [gentoo-dev] RFC: GLEP 64: Standardize contents of VDB and establish and API for exporting this information Anthony G. Basile
2014-08-30 21:05 ` Ulrich Mueller
2014-08-30 23:55   ` Anthony G. Basile
2014-08-31  7:26 ` Michał Górny
2014-08-31 12:38   ` Anthony G. Basile
2014-08-31 12:43     ` Ciaran McCreesh
2014-08-31 14:56       ` Anthony G. Basile
2014-08-31 15:02         ` Brian Dolbec
2014-08-31 15:07           ` Ciaran McCreesh
2014-08-31 15:02         ` Ciaran McCreesh
2014-08-31 15:08           ` Anthony G. Basile
2014-08-31 15:13             ` Ciaran McCreesh
2014-08-31 15:24               ` Anthony G. Basile
2014-08-31 15:53             ` Rich Freeman
2014-08-31 16:28               ` Anthony G. Basile
2014-08-31 16:30                 ` Ciaran McCreesh
2014-08-31 17:06                   ` Anthony G. Basile
2014-08-31 12:26 ` Ciaran McCreesh
2014-08-31 12:43   ` Anthony G. Basile
2014-08-31 12:46     ` Ciaran McCreesh
2014-08-31 15:06       ` Anthony G. Basile
2014-08-31 15:11         ` Ciaran McCreesh
2014-09-01  6:24 ` Fabian Groffen
2014-09-01 10:31   ` Anthony G. Basile
2014-09-06 13:03     ` [gentoo-dev] RFC: GLEP 64: Export Package Manager Cached Information. (Was: RFC: GLEP 64: Standardize contents of VDB and establish and API for exporting this information.) Anthony G. Basile
2014-09-06 13:10       ` Ciaran McCreesh
2014-09-06 13:51         ` Anthony G. Basile
2014-09-06 13:58           ` hasufell
2014-09-06 14:04           ` Ciaran McCreesh
2014-09-06 16:07             ` Anthony G. Basile [this message]
2014-09-06 16:12               ` hasufell
2014-09-06 16:18                 ` Anthony G. Basile
2014-09-06 16:22                   ` hasufell
2014-09-08  2:36                     ` Patrick Lauer
2014-09-08 10:53                       ` Anthony G. Basile
2014-09-08 14:14                         ` hasufell
2014-09-08 14:13                       ` hasufell
2014-09-08 14:59                         ` Patrick Lauer
2014-09-08 17:49                           ` hasufell
2014-09-06 16:18               ` Ciaran McCreesh
2014-09-06 17:00                 ` Anthony G. Basile
2014-09-06 17:09                   ` Ciaran McCreesh
2014-09-06 18:10                     ` Anthony G. Basile
2014-09-06 18:15                       ` Ciaran McCreesh
2014-09-06 18:22                         ` Anthony G. Basile

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=540B312E.2030407@gentoo.org \
    --to=blueness@gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox