/lib symlinks problem?

Ruslan Ermilov ru at FreeBSD.org
Sun Aug 31 07:52:59 PDT 2003


On Sun, Aug 31, 2003 at 02:07:42PM +0200, Alexander Leidinger wrote:
> On Sat, 30 Aug 2003 21:56:53 +0300
> Ruslan Ermilov <ru at FreeBSD.org> wrote:
> 
> > > I think a workaround would be to use absolute symlinks (at least as an
> > > option).
> > > 
> > I might be missing an obvious, but I just don't see a reason
> > why we should use relative linking here: we should just link
> > to where we really install.  With the attached patch, I get:
> > 
> > $ make -n install -DNOMAN DESTDIR=/foo
> > install -C -o root -g wheel -m 444   libalias.a /foo/usr/lib
> > install -s -o root -g wheel -m 444     libalias.so.4 /foo/lib
> > ln -fs libalias.so.4 /foo/lib/libalias.so
> > ln -fs /foo/lib/libalias.so.4  /foo/usr/lib/libalias.so
> 
> Don't you have to remove the first ${DESTDIR} to make this work in the
> "put a harddisk into a running system and install a system via
> installworld  & distribute" case?
> 
Doh, you're of course right!  An updated patch is attached.

Now it looks like this:

install -C -o root -g wheel -m 444   libalias.a /foo/usr/lib
install -s -o root -g wheel -m 444     libalias.so.4 /foo/lib
ln -fs libalias.so.4 /foo/lib/libalias.so
ln -fs /lib/libalias.so.4  /foo/usr/lib/libalias.so

This is also consistent with how we handle SYMLINKS:

# make -f bsd.prog.mk BINDIR=/bin SYMLINKS='${BINDIR}/file1 ${BINDIR}/file2' install DESTDIR=/foo
/foo/bin/file2 -> /bin/file1
# ls -l /foo/bin
total 0
lrwxr-xr-x  1 root  wheel  10 Aug 31 17:44 file2 -> /bin/file1


Cheers,
-- 
Ruslan Ermilov		Sysadmin and DBA,
ru at sunbay.com		Sunbay Software Ltd,
ru at FreeBSD.org		FreeBSD committer
-------------- next part --------------
Index: bsd.lib.mk
===================================================================
RCS file: /home/ncvs/src/share/mk/bsd.lib.mk,v
retrieving revision 1.150
diff -u -r1.150 bsd.lib.mk
--- bsd.lib.mk	17 Aug 2003 23:56:29 -0000	1.150
+++ bsd.lib.mk	31 Aug 2003 14:46:32 -0000
@@ -207,9 +207,8 @@
 	    ${SHLIB_NAME} ${DESTDIR}${SHLIBDIR}
 .if defined(SHLIB_LINK)
 	ln -fs ${SHLIB_NAME} ${DESTDIR}${SHLIBDIR}/${SHLIB_LINK}
-.if (${LIBDIR} != ${SHLIBDIR})
-	ln -fs ${LIBDIR:C|/[^/]+|/..|g:S|^/||}${SHLIBDIR}/${SHLIB_NAME} \
-	    ${DESTDIR}${LIBDIR}/${SHLIB_LINK}
+.if ${LIBDIR} != ${SHLIBDIR}
+	ln -fs ${SHLIBDIR}/${SHLIB_NAME} ${DESTDIR}${LIBDIR}/${SHLIB_LINK}
 .endif
 .endif
 .endif
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20030831/72912086/attachment.bin


More information about the freebsd-current mailing list