On Sun, Feb 26, 2017 at 04:37:57PM +0100, Antoine Jacoutot wrote:
> On Sun, Feb 26, 2017 at 04:30:38PM +0100, Theo Buehler wrote:
> > On Sun, Feb 26, 2017 at 02:33:14PM +0100, Jan Stary wrote:
> > > Cleaning up /usr/obj/ before a kernel build
> > > as a regular user who's in the wobj group,
> > > I get the following
> > > 
> > >   rm: /usr/obj/usr.sbin/unbound/util/configparser.h: Permission denied
> > >   rm: /usr/obj/usr.sbin/unbound/util/configparser.c: Permission denied
> > >   rm: /usr/obj/usr.sbin/unbound/util/configlexer.c: Permission denied
> > >   rm: /usr/obj/usr.sbin/unbound/util: Directory not empty
> > >   rm: /usr/obj/usr.sbin/unbound: Directory not empty
> > >   rm: /usr/obj/usr.sbin: Directory not empty
> > > 
> > > 
> > > $ find /usr/obj/ | xargs ls -ld
> > > drwxrwx---  3 build  wobj     512 Feb 26 14:19 /usr/obj/
> > > drwxrwx---  3 build  wobj    2560 Feb 26 14:19 /usr/obj/usr.sbin
> > > drwxrwx---  3 build  wobj    4096 Feb 26 14:19 /usr/obj/usr.sbin/unbound
> > > drwxr-xr-x  2 build  wobj     512 Feb 23 20:43 
> > > /usr/obj/usr.sbin/unbound/util
> > > -rw-rw----  1 build  wobj  166639 Feb 23 20:43 
> > > /usr/obj/usr.sbin/unbound/util/configlexer.c
> > > -rw-rw----  1 build  wobj  122438 Feb 23 20:43 
> > > /usr/obj/usr.sbin/unbound/util/configparser.c
> > > -rw-rw----  1 build  wobj    6016 Feb 23 20:43 
> > > /usr/obj/usr.sbin/unbound/util/configparser.h
> > > 
> > > Everything is 770 build:wobj, except the single directory
> > > /usr/obj/usr.sbin/unbound/util which is 755 build:wobj.
> > > 
> > > This is on four different -current machines.
> > > Is this intended?
> 
> Aaarrghhhh... no not this again!
> ;-)
> 
> > Of course it is not intended. It was discussed during the last hackathon
> > and aja hunted the problem down to a quirk of install -d. We tried a fix
> > in Makefile.bsd-wrapper, but it turned out to be racy, so I had to back
> > it out: it could write to the src/ tree in some circumstances.
> 
> It's the kind of stupid oddities that make you loose half a day and make you
> feel even more stupid than you are... best memory of Australia!

same here :)

> > This is what seems to be the least evil hack:
> 
> If that actually improves things, OK aja.
> That bug makes me sad...

Indeed...

Before I commit that, I would appreciate if Jan or jmc could confirm
that it actually works for their 'make build' setup, too.

This thing had way too many failed attempts already.

> 
> > Index: usr.sbin/unbound/Makefile.in
> > ===================================================================
> > RCS file: /var/cvs/src/usr.sbin/unbound/Makefile.in,v
> > retrieving revision 1.20
> > diff -u -p -r1.20 Makefile.in
> > --- usr.sbin/unbound/Makefile.in    17 Feb 2017 18:53:31 -0000      1.20
> > +++ usr.sbin/unbound/Makefile.in    26 Feb 2017 15:04:38 -0000
> > @@ -408,7 +408,7 @@ _unbound.la:    libunbound_wrap.lo libunbou
> >  
> >  util/config_file.c:        util/configparser.h
> >  util/configlexer.c:  $(srcdir)/util/configlexer.lex util/configparser.h
> > -   @-if test ! -d util; then $(INSTALL) -d util; fi
> > +   @-if test ! -d util; then mkdir -p util; fi
> >     if test "$(LEX)" != ":"; then \
> >             echo "#include \"config.h\"" > $@ ;\
> >             echo "#include \"util/configyyrename.h\"" >> $@ ;\
> > @@ -416,7 +416,7 @@ util/configlexer.c:  $(srcdir)/util/conf
> >     fi
> >  
> >  util/configparser.c util/configparser.h:  $(srcdir)/util/configparser.y
> > -   @-if test ! -d util; then $(INSTALL) -d util; fi
> > +   @-if test ! -d util; then mkdir -p util; fi
> >     $(YACC) -d -o util/configparser.c $(srcdir)/util/configparser.y
> >  
> >  clean:
> > 
> 
> -- 
> Antoine

Reply via email to