Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Apr 1995 08:54:05 -0400
From:      Travis L Priest <T.L.Priest@LaRC.NASA.GOV>
To:        asami@cs.berkeley.edu
Cc:        ports@FreeBSD.org
Subject:   Re: Ports hackers wanted! (fwd)
Message-ID:  <199504191254.IAA12736@licorice.larc.nasa.gov>
In-Reply-To: <199504191150.EAA09504@silvia.HIP.Berkeley.EDU>
References:  <199504181945.UAA16150@nietzsche> <199504191150.EAA09504@silvia.HIP.Berkeley.EDU>

next in thread | previous in thread | raw e-mail | index | archive | help
Wed, Satoshi Asami <asami@cs.berkeley.edu> wrote:
>  * In light of this, I would like to see our X-packages go into a seperate
>  * /usr/local/X11 tree. I don't want to reinstall all X-packages when
>  * I upgrade my /usr/X11R6 tree, everytime a new XFree86.
> 
> I'd love to see this too, but how is it going to work?  Binaries are
> okay, but what's going to happen if your port has a library that it
> wants to install?  Or a header file?

Let's take xpm for example.  On my FreeBSD system, I've built it into
/usr/local/xpm-3.4c (with bin, lib, and man subdirs) and linked it
into /usr/local/{bin,lib,man}.  Now I want to build fvwm-1.24r, which
uses the xpm libraries (among others).  In the Imakefile, I made the
following changes:

CDEBUGFLAGS = -L/usr/local/lib

(and this stuff in configure.h)

#define FVWMDIR     "/usr/local/fvwm-1.24r/bin"
#define FVWM_ICONDIR   "/usr/local/fvwm-1.24r/bitmaps"
#define FVWMRC         "/usr/local/fvwm-1.24r/lib/system.fvwmrc"
#define COMPILER CC=gcc -I/usr/local/include

That's it.  The build goes cleanly and installs just like xpm.  If I
have other things installed, like libtiff and libjpeg, a
-L/usr/local/lib and -I/usr/local/include takes care of those, too.

Some Imakefiles aren't quite as nice as fvwm's, and I have to do
something like the following (which works about 70% of the time):

LOCALROOT = /usr/local/pkg-rev
BINDIR = $(LOCALROOT)/bin
MANPATH = $(LOCALROOT)/man
XAPPLOADDIR= ($LOCALROOT)/lib/app-defaults
MKDIRHIER = $(PROJECTROOT)/bin/mkdirhier

[content deleted for brevity]
> 
> Adding a "required" environment variable to the user's space is a
> bad idea, IMHO.  XAPPLRESDIR should be left to the user in case she
> wants to put her own stuff in a different place.

We leave XENVIRONMENT to the user for this purpose, and set
XAPPLERESDIR system wide to point to /usr/local/lib/app-defaults for
local app-defaults files.  We're about to leap from R5 to R6 on our
systems, and I'm willing to bet all of our X clients (lots) will
continue to work until we can rebuild them (may have to link
/usr/local/X11R5 -> /usr/local/X11R6 so that libs can be found).

Think of FreeBSD and /usr/X11R6 as a 'vendor supplied OS,' and the
ports as 'gifts' that someone can install locally.  If you upgrade the
OS from SNAP to SNAP, the 'gifts' still work barring incompatible
library changes.

Travis



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199504191254.IAA12736>