svn commit: r314464 - head/usr.sbin/yppush
Ngie Cooper
yaneurabeya at gmail.com
Wed Mar 1 22:41:24 UTC 2017
On Wed, Mar 1, 2017 at 9:08 AM, Rodney W. Grimes
<freebsd-rwg at pdx.rh.cn85.dnsmgr.net> wrote:
...
> At one point in history I can promise you that ALL symlinks in the release
> where shortest possible relative path. So any absolute links that entered
> the system got created by developers who where not aware that they should
> always use a relative link for anything landing in DESTDIR. This creates
> breakge on so many levels we should make a rapid correction to this
> regression.
This is why things are that way currently:
$ git blame usr.bin/chpass/Makefile| grep ypchfn
780ae7713f72b (gjb 2016-01-28 01:15:57 +0000 29) SYMLINKS+=
${BINDIR}/chpass ${BINDIR}/ypchfn
aca2488187113 (wosch 1997-09-13 12:21:25 +0000 35) MLINKS+= chpass.1
ypchpass.1 chpass.1 ypchfn.1 chpass.1 ypchsh.1
5294f47313a2d (gjb 2016-01-28 02:56:30 +0000 39) .for i in chpass
chfn chsh ypchpass ypchfn ypchsh
$ git log 780ae7713f72b^..780ae7713f72b
commit 780ae7713f72b471859c0997295ac0c59695c7b4
Author: gjb <gjb at FreeBSD.org>
Date: Thu Jan 28 01:15:57 2016 +0000
Ensure mtree(8) recognizes chpass(1) is schg.
Convert hard links to symbolic links, and remove the
'beforeinstall' and 'afterinstall' chflags(8) execution.
Sponsored by: The FreeBSD Foundation
Notes:
svn path=/projects/release-pkg/; revision=294966
BINDIR evaluates to /usr/sbin/, so /usr/sbin/chpass is symlinked to
/usr/sbin/ypchfn . But, there's no reason why the symlink needs to be
hardcoded, or even a symlink at all. Hardlinks would achieve the same
thing here IMHO, but gjb changed it in r294966 to be symlinks.
The point that might be missed is that changing it from absolute paths
to relative paths or otherwise, might break other workflows.. I could
just as easily mount /lib, /usr/lib, /usr/sbin, etc as nullfs
mountpoints and have a working system on a system root where MACHINE
!= TARGET, but this is all orthogonal to my changing
`${.CURDIR}/../../contrib` (e.g. `foo/usr.sbin/yppush/../../contrib`),
etc to ${SRCTOP}/contrib` (e.g. `foo/contrib`).
Thanks,
-Ngie
More information about the svn-src-all
mailing list