Overly restrictive checks in the make process

Bill Moran wmoran at collaborativefusion.com
Fri Jul 20 16:22:12 UTC 2007


In response to Garrett Cooper <youshi10 at u.washington.edu>:

> Bill Moran wrote:
> > [root at server /usr/ports/databases/postgresql82-server]# make fetch-recursive
> > ===> Fetching all distfiles for postgresql-server-8.2.4_1 and dependencies
> > ===>  postgresql-server-8.2.4_1 cannot install: the port wants postgresql82-client but you have postgresql81-client installed.
> > *** Error code 1
> >
> > Why?  Is there a legitimate reason why the fetch process refuses to
> > download this?  I know I've got an older version installed, but why
> > is it preventing me from downloading a newer one?  Seems like the
> > IGNORE= check is either being checked too aggressively or that the
> > logic is less sophisticated than it should be.
> >
> > Does anyone know of a reason why this couldn't be changed to allow
> > fetching of conflicting ports distfiles?
> 
> Sounds like a +CONFLICTS type of issue (the MySQL client and server 
> files for instance install some libs in the same spot, so they conflict 
> IIRC).

Actually, it's IGNORE, as I stated earlier:
.if defined(WANT_PGSQL_VER) && defined(_PGSQL_VER) && ${WANT_PGSQL_VER} != ${_PGSQL_VER}
IGNORE=         cannot install: the port wants postgresql${WANT_PGSQL_VER}-client but you have postgresql${_PGSQL_VER}-client installed
.endif

and the same behaviour is used all through the ports collection ...
php4/php5 is another example.

But that's nit-picky details.  My question is _why_ is that check run
for fetch?  I can see no reason why it's taboo to fetch multiple port
versions, and in the case of an upgrade where time is short, having
the package fetched prior to the outage window can be a huge time-
saver.

-- 
Bill Moran
Collaborative Fusion Inc.
http://people.collaborativefusion.com/~wmoran/

wmoran at collaborativefusion.com
Phone: 412-422-3463x4023


More information about the freebsd-ports mailing list