Re: Quick Extensions Question - Mailing list pgsql-hackers

From Robert Haas
Subject Re: Quick Extensions Question
Date
Msg-id AANLkTik6v=209OGHP4_E1O8GXn-4roT_K78_1cXDy9oz@mail.gmail.com
Whole thread Raw
In response to Re: Quick Extensions Question  ("David E. Wheeler" <david@kineticode.com>)
Responses Re: Quick Extensions Question
List pgsql-hackers
On Thu, Mar 3, 2011 at 12:56 PM, David E. Wheeler <david@kineticode.com> wrote:
> More simply, I think there are two kinds of dependencies:
>
> * Other extensions
> * Core features
>
> Notwithstanding that PLs might be extensions, now or in the future, the necessity to require other stuff from core,
likelibxml support or SSL, together with your example, leads me to think that we ought to think about having two ways
ofspecifying dependencies: requires and core_requires. The latter might look something like: 
>
>    core_requires = plpgsql libxml

Not a bad thought, but you might also need to require at least a
certain version of libxml.  RPMs have a whole grammar for dependencies
of this sort, and it is both complicated and very useful.  You can say
things like:

Requires: package
Requires: package >= minversion
Requires: package <= maxversion
Requires: package = exactversion

The usefulness of the first two should be obvious, but the third and
fourth are needed as well.  For example, the kernel header version
must exactly match the kernel version.  I don't know 100% for certain
that we're going to need those cases here as well, but I wouldn't bet
against it.

An RPM can also provide a certain capability:

Provides: WonderfulGoodStuff

And some other RPM can then depend on that capability.

I think it's important that we don't get too confident that we've
solved this problem in its full generality.  I very much doubt that
that's the case.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


pgsql-hackers by date:

Previous
From: Simon Riggs
Date:
Subject: Re: Sync Rep v19
Next
From: Robert Haas
Date:
Subject: Re: Sync Rep v19