mergemaster failing with read-only /usr/src

John Baldwin jhb at freebsd.org
Mon May 4 15:45:09 UTC 2015


On Sunday, May 03, 2015 12:11:03 PM Garrett Cooper wrote:
> On May 3, 2015, at 8:55, Wolfgang Zenker <wolfgang at lyxys.ka.sub.org> wrote:
> 
> > * Jilles Tjoelker <jilles at stack.nl> [150503 14:53]:
> >> On Sun, May 03, 2015 at 02:03:49PM +0200, Wolfgang Zenker wrote:
> >>> I'm trying to update this system:
> >>> FreeBSD pomona 11.0-CURRENT FreeBSD 11.0-CURRENT #0: Mon Apr 13 03:48:04 CEST 2015     wolfgang at pomona:/usr/obj/usr/src/sys/UBQTERL mips
> > 
> >>> Source for that was probably from about April 11th. I sucessfully built
> >>> world and kernel, ran mergemaster -p and make installworld on rev 282299
> >>> but then mergemaster fails with:
> > 
> >>> # mergemaster -iFU
> > 
> >>> *** Creating the temporary root environment in /var/tmp/temproot
> >>> *** /var/tmp/temproot ready for use
> >>> *** Creating and populating directory structure in /var/tmp/temproot
> > 
> >>> /bin/sh: cannot create routing_test.tmp: Read-only file system
> > 
> >>>  *** FATAL ERROR: Cannot 'cd' to /usr/src and install files to
> >>>      the temproot environment
> > 
> >>> Filesystems are mounted like this:
> >>> # mount
> >>> /dev/da0s2a on / (ufs, local, noatime)
> >>> devfs on /dev (devfs, local, multilabel)
> >>> /dev/da0s1 on /boot (msdosfs, local)
> >>> vulcan.lyx:/usr/src11 on /usr/src (nfs, read-only)
> >>> vulcan.lyx:/var/obj/11/mips64 on /usr/obj (nfs)
> > 
> >>> This used to work before. Any ideas, any further info I could provide?
> > 
> >> This broke after a test was added for etc/rc.d/. Without special code,
> >> this causes these tests to be built and installed as part of
> >> mergemaster/etcmerge, like other parts of etc.
> > 
> >> As a workaround you can do:
> >>  echo make -C etc obj all | make buildenv
> >> on the build machine after make buildworld. Then mergemaster will work,
> >> even with a read-only /usr/obj.
> > 
> > Well, I do build on that machine directly, and /usr/obj is mounted r/w,
> > only /usr/src is a read-only mount. Trying the workaround on the machine
> > istself does not help, unfortunately: while the "make buildenv" does
> > work without a problem, mergemaster still fails in the same way.
> 
> I was going to move it to etc/tests soon since it wasn’t really testing /etc/rc.d/, but it makes more sense (with the issue above), just to create .../tests/etc, and move things there. I wish etc/ wasn’t such a special butterfly...

/etc is quite special as it isn't installed during installworld, only for
distribution.  The tests should probably be part of installworld, so please
move it.

-- 
John Baldwin


More information about the freebsd-current mailing list