Subject: Wildcard DEPENDS and CONFLICTS in pkgsrc
To: None <tech-pkg@netbsd.org>
From: Alistair Crooks <azcb0@amdahl.com>
List: tech-pkg
Date: 08/25/1998 09:47:20
As some of you will have seen from the commit message, I have today
enabled wildcard matching (csh(1)-style, so that alternates are
available) in pkgsrc.  As of just now, however, no package Makefiles
have yet been changed to take advantage of this.  I plan to do this
over the next few days.  I don't expect there to be any problems, but
if you see anything amiss in the way of CONFLICTS or DEPENDS entries,
please send-pr it in the usual way.

A by-product of this is that all CONFLICTS will be matched at once,
rather than singly as before, so that all conflicting packages will be
displayed.

As an example, say a package Makefile looked like this:

> # $NetBSD: Makefile,v 1.17 1998/08/20 22:16:38 tron Exp $
> 
> DISTNAME=       ssam-1.9
> CATEGORIES=     editors
> MASTER_SITES=   http://www.westley.demon.co.uk/src/
> 
> MAINTAINER=     agc@netbsd.org
> HOMEPAGE=       http://www.westley.demon.co.uk/software.html
> 
> DEPENDS+=       libutf-2.10:../../misc/libutf
> DEPENDS+=       tcl-*:../../lang/tcl80
> DEPENDS+=       xless-1.[678]:../../x11/lesstif
> DEPENDS+=       {lesstif-0.85.?,lesstif-0.86}:../../x11/lesstif
> DEPENDS+=       {jdk-1.1.5b1,kaffe-1.0.b1}:../../lang/kaffe
> 
> CONFLICTS=      gtk+-1.0.[04] tcl-* libutf-2.1? {lesstif-0.85.?,lesstif-0.86}
> 
> GNU_CONFIGURE=  yes
> ALL_TARGET=     tst
> 
> .include "../../mk/bsd.pkg.mk"

It would produce output like this:

root@rumpy:/usr/pkgsrc/x11/tst(327)# make clean && make install
===>  Cleaning for ssam-1.9
>> Checksum OK for ssam-1.9.tar.gz.
===>  Extracting for ssam-1.9
===>  ssam-1.9 depends on installed package: libutf-2.10 - libutf-2.10  found
===>  ssam-1.9 depends on installed package: tcl-* - tcl-8.0 tcl-8.0p2  found
===>  ssam-1.9 depends on installed package: xless-1.[678] - xless-1.7  found
===>  ssam-1.9 depends on installed package: {lesstif-0.85.?,lesstif-0.86} - lesstif-0.85.3  found
===>  ssam-1.9 depends on installed package: {jdk-1.1.5b1,kaffe-1.0.b1} - kaffe-1.0.b1  found
===>  Patching for ssam-1.9
===>  Configuring for ssam-1.9
...
===>  Installing for ssam-1.9
===>  ssam-1.9 conflicts with installed package(s): tcl-8.0 tcl-8.0p2 libutf-2.10  lesstif-0.85.3  found.
      They install the same files into the same place.
      Please remove tcl-8.0 tcl-8.0p2 libutf-2.10  lesstif-0.85.3  first with pkg_delete(1).
*** Error code 1

Stop.
*** Error code 1

Stop.

As usual, CONFLICTS only works when FORCE_PKG_REGISTER is NOT set.

Alistair