Subject: Re: outdated dependencies getting installed
To: Hernani Marques Madeira <hernani@vecirex.net>
From: Jeremy C. Reed <reed@reedmedia.net>
List: tech-pkg
Date: 01/05/2006 10:17:17
On Thu, 5 Jan 2006, Hernani Marques Madeira wrote:

> Given you want to install a package A.
>
> This package depends on another one (a library) b.
>
> Using BUILDLINK_DEPENDS you can make sure that A only gets installed if
> b is of a certain version.
>
> But, before the check of b's version is done it gets installed -- even if
> the version is wrong (e.g. too old).

How did this happen to you?

> Having a lot of such dependencies can be unpleasant, as you'll have to install
> them again -- in the right version -- for your package A to get installed.
>
> Now, of course, if you have a consistent pkgsrc tree this shouldn't happen,
> but assume you haven't.
>
> Is this simply by design or am I missing a point?

Do you have a specific example of how this happened?

Anyways, this has happened to me many times. I often reuse binary packages 
(dependencies) when building from pkgsrc. When one binary package is 
installed it may have a dependency that is older version than is expected 
of the package to be built. So later on, it still attempts to build the 
package and has error because older version was (just previously) 
installed. (See my real example below.)

In the middle of December, I started thinking about the following:

I'd like to extend pkg_add so dependencies can be added via a command-line 
argument.

This would support standard wildcards.

For example:

pkg_add -d "kdelibs>=3.5.0" libkipi-0.1.1.tbz

Then if the libkipi-0.1.1.tbz package only depends on kdelibs>=3.4.0nb1,
it will also depend on kdelibs>=3.5.0.

The reason I want this is so pkg_add will fail when I install packages if 
I don't have good enough dependencies.

Or maybe I could use pkg_info (against the binary package) instead to 
check first.

Here's the situation:

I have my own MY_BIN_INSTALL setting which I have used for several months. 
It installs a pre-made binary package if it exists in PACKAGES directory 
for the dependencies.

I use it to build graphics/gwenview which needs libkipi and I have a 
package ready to use. So it installs it which pulls in a kdelibs. But then 
gwenview really needs a newer kdelibs, so it gets built but now can't 
install because older was previously installed.

(Maybe this could be discussed on tech-pkg list instead, since this is not 
specific to "wip". I have carbon-copied tech-pkg.)

  Jeremy C. Reed

  	  	 	 Media Relations and Publishing Services
 	  	 	 http://www.reedmedia.net/