installworld broken - osreldate.h: permission denied
Jilles Tjoelker
jilles at stack.nl
Mon Sep 30 17:03:01 UTC 2013
On Sun, Sep 29, 2013 at 10:13:29AM +0200, Joel Dahl wrote:
> On Sat, Sep 28, 2013 at 11:19:51AM -0600, Ian Lepore wrote:
> > On Sat, 2013-09-28 at 15:09 +0200, Joel Dahl wrote:
> > > Fresh HEAD. installworld from read-only /usr/obj and /usr/src:
> > > /usr/src/include/iconv.h osreldate.h /usr/include
> > > install: osreldate.h: Permission denied
> > > *** Error code 71
> > > Stop.
> > > make[4]: stopped in /usr/src/include
> > > *** Error code 1
> > > Everything was working fine 2 weeks ago, so it's a recent breakage.
> > Okay, I just accidentally created conditions for this error on my
> > system... I checked in a change to newvers.sh while a buildworld was
> > running, which led to a situation where newvers.sh was newer than
> > osreldate.h at the end of the buildworld. Then an installworld tried to
> > regenerate osreldate.h due to its dependency on newvers.sh, which would
> > fail if the obj was readonly at that point.
> > I think we could see if something similar applies for you if you use
> > this command:
> > make -dm installworld SUBDIR_OVERRIDE=include
> I tried this with a fresh HEAD but the error message is still the same.
> /usr/src and /usr/obj are NFS mounted, FYI.
I had the same problem as Joel. It has nothing to do with timestamps,
but with the default -maproot -2:-2. The include/mk-osreldate.sh script
creates osreldate.h from mktemp(1), so with mode 600. The squashed root
(nobody) is then not allowed to read it.
The below patch should fix it.
Index: include/mk-osreldate.sh
===================================================================
--- include/mk-osreldate.sh (revision 255946)
+++ include/mk-osreldate.sh (working copy)
@@ -48,4 +48,5 @@
#define __FreeBSD_version $RELDATE
#endif
EOF
+chmod 644 $tmpfile
mv $tmpfile osreldate.h
--
Jilles Tjoelker
More information about the freebsd-current
mailing list