Subject: Re: packages, rpaths, compat, oh my!
To: Richard M Kreuter <kreuter@progn.net>
From: Frederick Bruckman <fredb@immanent.net>
List: netbsd-help
Date: 09/18/2004 22:39:27
In article <87k6ur2mwu.fsf@daystrom.localdomain>,
	kreuter@progn.net (Richard M Kreuter) writes:
> Lubomir Sedlacik <salo@Xtrmntr.org> writes:
> 
>> the easiest solution i can think of is to add /usr/pkg/emul/netbsd16 to
>> your /etc/ld.so.conf on 2.0_BETA hosts.
> 
> This breaks 2.0 binaries (at least some):
> 
> <after editing ld.so.conf>
> $ ldd /usr/bin/vi
> /usr/bin/vi:
>          -lcurses.6 => /usr/lib/libcurses.so.6
>          -lc.12 => /emul/netbsd16/usr/lib/libc.so.12
> $ vi
> vi: Undefined PLT symbol "__unsetenv13" (symnum = 165)

The natural thing to do, is firstly, to build all the packages on the
NetBSD 1.6 host(s).  Secondly, on the NetBSD 2.0 hosts, copy the short
list of changed major symlinks directly into "/usr/lib".  The list:


    libcrypto.so.1
    libcurses.so.5
    libdes.so.6
    libform.so.3
    libgssapi.so.4
    libhdb.so.8
    libkadm5clnt.so.7
    libkadm5srv.so.8
    libkafs.so.5
    libkrb.so.5
    libkrb5.so.18
    libmenu.so.4
    libobjc.so.1
    libssl.so.2
    libstdc++.so.4
    libtelnet.so.4
    libutil.so.6


That's all!

You probably don't even need all of those libraries.  The only ones
that third-party applications typically use are "libcrypto", "libssl",
"libcurses", "libstdc++"", and "libutil".

Now, if you must build on the NetBSD 2.0 hosts, it's not enough to
arrange to use the old libraries -- you must use the old interfaces
as well.  There are a couple of ways to do that: "chroot" plus
"pkgtools/libkver" seems to be popular.  You could also install
1.6.x to a spare partition, and boot from that just for the builds.


Frederick