Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 02 Jan 2013 13:04:52 +0100
From:      Stefan Esser <se@freebsd.org>
To:        freebsd-current@freebsd.org, nwhitehorn@freebsd.org
Subject:   installworld failure due to cross-device links
Message-ID:  <50E42264.4010609@freebsd.org>

next in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
I'd be interested in the general policy on LINKS vs. SYMLINKS
between directories that might end up on different file systems.

There seems to be an assumption that system directories in /usr
(e.g. /usr/bin, /usr/sbin, /usr/libexec) are on the same file
system, but I do not think that this assumption is documented.

I'm using a ZFS only installation of -CURRENT and have separate file
systems for several of the directories in / and /usr, that usually
share a file system (e.g. /bin, /sbin, but also /usr/bin/, /usr/sbin
and /usr/libexec are independent file systems).

An older case is the link from /usr/bin/chgrp to /usr/sbin/chown
(see usr.sbin/chown/Makefile), which is easily fixed by using a
SMYLINK instead of a LINK.

And now there is usr.sbin/bsdinstall/partedit/Makefile, which as of
r244859 creates a link from /usr/libexec/bsdinstall to /usr/sbin/sade.

This breaks with /usr/bin and /usr/sbin on different file systems,
while it should not according to the commit message:

----------------------------------------------------------------------
r244859 | nwhitehorn | 2012-12-30 15:35:00 +0100 (Sun, 30 Dec 2012) | 7
lines

Replace sade the extracted piece of sysinstall with sade the extracted
piece of bsdinstall (although this time with a symlink instead of
duplicated source code).

Discussed on:   freebsd-geom
MFC after:      3 months
----------------------------------------------------------------------

The SYMLINK mentioned in the commit message is a LINK to a different
directory, which might be on a different file system, actually.

This should be fixed by the attached patch, to remove the implied
assumption and to make the Makefile match the commit message.

Regards, STefan

[-- Attachment #2 --]
Index: Makefile
===================================================================
--- Makefile	(revision 244957)
+++ Makefile	(working copy)
@@ -2,7 +2,8 @@
 
 BINDIR= /usr/libexec/bsdinstall
 PROG=	partedit
-LINKS= ${BINDIR}/partedit ${BINDIR}/autopart ${BINDIR}/partedit /usr/sbin/sade
+LINKS= ${BINDIR}/partedit ${BINDIR}/autopart ${BINDIR}/partedit
+SYMLINKS= /usr/sbin/sade
 LDADD=	-lgeom -lncursesw -lutil -ldialog -lm
 
 PARTEDIT_ARCH= ${MACHINE}

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