svn commit: r337857 - in head: bin/csh bin/sh etc

Samy Mahmoudi samy.mahmoudi at gmail.com
Thu Aug 16 00:25:01 UTC 2018


 Two days ago, I changed my beadm-compatible layout to have /root on a
dedicated filesystem, separated from /. Then I upgraded to current and
noticed two ln output errors.

After some time cruising the FreeBSD source tree, I came to the conclusion
that .cshrc and .profile were installed to the /root filesystem and that
the two subsequent hardlinks failed because the respective targets .cshrc
and .profile were (in my case) on a different filesystem, namely /.

Is there any historical reason for hardlinking instead of softlinking ?
Anyway, I will definitely keep an eye on your better approach.

Le jeu. 16 août 2018 à 01:22, Brad Davis <brd at freebsd.org> a écrit :

> On Wed, Aug 15, 2018, at 11:34 AM, Rodney W. Grimes wrote:
> > > > > Author: brd
> > > > > Date: Wed Aug 15 16:22:12 2018
> > > > > New Revision: 337857
> > > > > URL: https://svnweb.freebsd.org/changeset/base/337857
> > > > >
> > > > > Log:
> > > > >   Fix build after r337849
> > > > >
> > > > >   This moves the symlink creation to after where the files are
> installed.
> > > > >
> > > > >   This also inverts the shell change so that it only happens if
> MK_TCSH is on.
> > > > >
> > > > >   Approved by:  will (mentor)
> > > > >   Differential Revision:        https://reviews.freebsd.org/D16725
> > > > >
> > > > > Modified:
> > > > >   head/bin/csh/Makefile
> > > > >   head/bin/sh/Makefile
> > > > >   head/etc/master.passwd
> > > > >
> > > > > Modified: head/bin/csh/Makefile
> > > > >
> ==============================================================================
> > > > > --- head/bin/csh/Makefile       Wed Aug 15 16:16:59 2018
> (r337856)
> > > > > +++ head/bin/csh/Makefile       Wed Aug 15 16:22:12 2018
> (r337857)
> > > > > @@ -49,8 +49,7 @@ MLINKS= csh.1 tcsh.1
> > > > >
> > > > >  LIBADD=        termcapw crypt
> > > > >
> > > > > -LINKS= ${BINDIR}/csh ${BINDIR}/tcsh \
> > > > > -       /root/.cshrc /.cshrc
> > > > > +LINKS= ${BINDIR}/csh ${BINDIR}/tcsh
> > > > >
> > > > >  CLEANFILES= ${GENHDRS} gethost csh.1
> > > > >
> > > > > @@ -158,7 +157,7 @@ beforeinstall:
> > > > >         rm -f ${DESTDIR}/.cshrc
> > > > >
> > > > >  afterinstallconfig:
> > > > > -       sed -i "" -e 's;/bin/csh;/bin/sh;'
> ${DESTDIR}/etc/master.passwd
> > > > > +       sed -i "" -e 's;/bin/sh;/bin/csh;'
> ${DESTDIR}/etc/master.passwd
> > > > >         pwd_mkdb -i -p -d ${DESTDIR}/etc
> ${DESTDIR}/etc/master.passwd
> > > > >
> > > > >  .include <bsd.prog.mk>
> > > > >
> > > > > Modified: head/bin/sh/Makefile
> > > > >
> ==============================================================================
> > > > > --- head/bin/sh/Makefile        Wed Aug 15 16:16:59 2018
> (r337856)
> > > > > +++ head/bin/sh/Makefile        Wed Aug 15 16:22:12 2018
> (r337857)
> > > > > @@ -37,7 +37,6 @@ WFORMAT=0
> > > > >
> > > > >  CLEANFILES+= mknodes mksyntax
> > > > >  CLEANFILES+= ${GENSRCS} ${GENHDRS}
> > > > > -LINKS= /root/.profile /.profile
> > > > >
> > > > >  build-tools: mknodes mksyntax
> > > > >
> > > > > @@ -66,5 +65,8 @@ SUBDIR.${MK_TESTS}+= tests
> > > > >
> > > > >  beforeinstall:
> > > > >         rm -f ${DESTDIR}/.profile
> > > >
> > > > Still unconditionally removing /.profile, but only replacing it
> > > > when installconfig: is run.
> > >
> > > Yes, working on a separate review for this..
> > >
> > > > > +
> > > > > +afterinstallconfig:
> > > > > +       ${INSTALL_LINK} ${TAG_ARGS} ${DESTDIR}/root/.profile
> ${DESTDIR}/.profile
> > > > >
> > > > >  .include <bsd.prog.mk>
> > > > >
> > > > > Modified: head/etc/master.passwd
> > > > >
> ==============================================================================
> > > > > --- head/etc/master.passwd      Wed Aug 15 16:16:59 2018
> (r337856)
> > > > > +++ head/etc/master.passwd      Wed Aug 15 16:22:12 2018
> (r337857)
> > > > > @@ -1,6 +1,6 @@
> > > > >  # $FreeBSD$
> > > > >  #
> > > > > -root::0:0::0:0:Charlie &:/root:/bin/csh
> > > > > +root::0:0::0:0:Charlie &:/root:/bin/sh
> > > >
> > > > I strongly object to this change to master.passwd, and feel it should
> > > > be worked around if in anyway possible.  I have pointed out in the
> > > > review ways to not have to make this change.
> > >
> > > I opened up the following which addresses some of your feedback:
> > > https://reviews.freebsd.org/D16728
> >
> > Bleh, can we revert all of this, and take a second look with many more
> > eyes on this.  master.passwd coming from libc makes my head hurt!
> >
> > Also this is now a patch on a patch on a patch, time to end the dive
> > down the rabbit hole!
>
> Yes, I did a partial revert of the problematic spots in r337882.
>
> I will redo with a better approach tomorrow.
>
> Sorry for the trouble and your .cshrc getting clobbered.
>
>
> Regards,
> Brad Davis
> _______________________________________________
> svn-src-head at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/svn-src-head
> To unsubscribe, send any mail to "svn-src-head-unsubscribe at freebsd.org"
>


More information about the svn-src-all mailing list