Subject: Re: OS X pkgsrc fun
To: Dan Winship <danw@NetBSD.org>
From: Johnny C. Lam <jlam@netbsd.org>
List: tech-pkg
Date: 09/15/2003 01:15:54
On Sat, Sep 06, 2003 at 04:52:06PM +0000, Dan Winship wrote:
[snip]
> 
>       * _USE_RPATH=no: There are about a zillion places that need to be
>         checking _USE_RPATH that aren't. Fixing all of them would be a
>         lot of work, especially in packages like freetype2 that actually
>         patch RPATH_FLAG into files. Since Darwin is the only
>         _USE_RPATH=no platform, it would be a lot simpler to just kludge
>         around the problem by setting  _OPSYS_RPATH_NAME to "-L" on
>         Darwin and killing off _USE_RPATH. ?

We should be able to work around this.  Both buildlink2 and buildlink3
(hereafter "bl2" and "bl3") can strip -Wl,-R* or -R* from files before
they're installed, and we just need to identify which files those are.
By default, we do this on files matching *-config, *Conf.sh, and *.pc.

>       * pthread.buildlink2.mk: "-lpthread" on Darwin is a no-op, and
>         while there is a libpthread.dylib, there's no
>         "libpthread.0.1.dylib" or whatever, so fake-la messes up when
>         trying to buildlink it. (PR 20516). I'm attaching a suggested
>         patch for this.

I believe I've fixed this in bl3.  When we eventually switch bl2
packages to use bl3, this problem should just go away, along with all
other cases where a package installs a .la file for a library that is
also in one of the system library paths.

[snip]
>       * bsd.buildlink2.mk: Darwin's gcc has a bug in it that makes
>         symlinked header files on UFS not work quite right. I filed a
>         bug on opendarwin.org, maybe Apple will fix it for Panther.
>         Anyway, if we're not buildlinking /usr/include/pthread.h any
>         more, then in most cases we should be able to get away with
>         using "ln" rather than "ln -s" to populate the buildlink include
>         dirs. If not, or as a fallback, we'll have to cp them. Blah.
>         Either way, I'm not sure what the clean way to hack up
>         bsd.buildlink2.mk to do that on just Darwin is. (Maybe a
>         Darwin-only post-buildlink rule?)

I just read your bug report there (for anyone else who's curious, it's
bug #851 on opendarwin.org).  I'll try to implement the ln/cp idea in
a way that lets us isolate its use.

	Cheers,

	-- Johnny Lam <jlam@netbsd.org>