Subject: xpkgwedge proposal
To: None <tech-pkg@netbsd.org>
From: Johnny C. Lam <lamj@stat.cmu.edu>
List: tech-pkg
Date: 10/14/2000 23:50:47
Hi,

	Now that the pkgsrc freeze is over, I'd like to propose some
changes to xpkgwedge.  I suspect this is a widely used packages, so
I'm soliciting feedback on my proposed changes.

	For the past several weeks, I've using a local xpkgwedge
package with the changes listed below.  I've rebuilt all of my pkgsrc
with and without the new xpkgwedge installed, so the changes are
stable and they work.

	* In xpkgwedge.def, redefine ImakeCmd to

		imake -I$(PREFIX)/lib/X11/config

	  to pick up X11 config files in $(PREFIX)/lib/X11/config before
	  the ones in the standard X11 tree.

	* Install a program called "pkgxmkmf" that's a slightly modified
	  xmkmf: it checks in ${PREFIX}/lib/X11/config before the standard
	  X11 config directory.

	* Create the host.def file in ${PREFIX}/lib/X11/config instead of
	  modifying the one in ${X11BASE}/lib/X11/config.

The benefits of this are:

	1) xpkgwedge can now install into ${PREFIX} instead of always into
	   ${X11BASE}.  This keeps the X11 tree "pure".

	2) Packages that install config files (lesstif, xview-config) can
	   now do so in $(PREFIX) and the right thing will happen,
	   regardless of whether xpkgwedge is installed or not.

	3) People only have to use 'pkgxmkmf' instead of 'xmkmf', and
	   (hopefully) no other changes, if they want to use the config
	   files in xpkgwedge'd packages.

	4) This doesn't affect people who want to run xmkmf and not include
	   all the xpkgwedge stuff, even if it's installed.

I've placed my modified xpkgwedge (bumped version to 0.5) at

	http://www.stat.cmu.edu/~lamj/xpkgwedge.tgz

so please download it and take a look.  To complete the changes to use
the new xpkgwedge, you'll need the following modification to
bsd.pkg.mk.  Again, I'd like to reiterate that this doesn't affect
users who *don't* want to use xpkgwedge.

Please let me know what you think.

	Thanks,

     -- Johnny C. Lam <lamj@stat.cmu.edu>
        Department of Statistics, Carnegie Mellon University
        http://www.stat.cmu.edu/~lamj/

Index: bsd.pkg.mk
===================================================================
RCS file: /cvsroot/pkgsrc/mk/bsd.pkg.mk,v
retrieving revision 1.585
diff -u -r1.585 bsd.pkg.mk
--- bsd.pkg.mk	2000/10/13 23:18:00	1.585
+++ bsd.pkg.mk	2000/10/15 03:29:55
@@ -89,11 +89,18 @@
 SCRIPTS_ENV+=		CLASSPATH=${CLASSPATH} JAVA_HOME=${JAVA_HOME}
 .endif
 
-# set X11PREFIX to reflect installed dir of X11 packages
-.if exists(${X11BASE}/lib/X11/config/xpkgwedge.def)
+# Set X11PREFIX to reflect the install directory of X11 packages.
+#
+# The check for the existence of ${X11BASE}/lib/X11/config/xpkgwedge.def
+# is to catch users of xpkgwedge<0.5.
+#
+.if exists(${LOCALBASE}/lib/X11/config/xpkgwedge.def) || \
+    exists(${X11BASE}/lib/X11/config/xpkgwedge.def)
 X11PREFIX=		${LOCALBASE}
+XMKMF?=			pkgxmkmf -a
 .else
 X11PREFIX=		${X11BASE}
+XMKMF?=			xmkmf -a
 .endif
 
 .if defined(USE_MOTIF12)
@@ -117,6 +124,14 @@
 .endif  # USE_MOTIF
 
 .if defined(USE_IMAKE) || defined(USE_MOTIF) || defined(USE_X11BASE)
+.if exists(${LOCALBASE}/lib/X11/config/xpkgwedge.def) || \
+    exists(${X11BASE}/lib/X11/config/xpkgwedge.def)
+# XXX: actually, here we would need something like
+# BUILD_DEPENDS+=xpkgwedge>=0.5:../../pkgtools/xpkgwedge
+.if make(install-run-depends)
+DEPENDS+=		xpkgwedge>=0.5:../../pkgtools/xpkgwedge
+.endif
+.endif
 PREFIX=			${X11PREFIX}
 .elif defined(USE_CROSSBASE)
 PREFIX=			${CROSSBASE}
@@ -246,7 +261,6 @@
 
 # Miscellaneous overridable commands:
 SHCOMMENT?=		${ECHO_MSG} >/dev/null '***'
-XMKMF?=			xmkmf -a
 .if exists(/sbin/md5)
 MD5?=			/sbin/md5
 .elif exists(/bin/md5)