Re: chmod of /usr/obj/usr.sbin/unbound/util

2017-02-26 Thread Jan Stary
> Before I commit that, I would appreciate if Jan or jmc could confirm
> that it actually works for their 'make build' setup, too.

Yes it does, thanks.

Jan



Re: chmod of /usr/obj/usr.sbin/unbound/util

2017-02-26 Thread Theo Buehler
On Sun, Feb 26, 2017 at 10:05:48PM -0800, Sean Kamath wrote:
> would “$(INSTALL) -d -m 775 util” be a less evil hack?

Nope. In principle, the umask is settable by WOBJUMASK in mk.conf, and
adjusting the mode passed to -m in a shell script in a generated
Makefile is disgusting. Especially when we can just let 'mkdir -p' do
this for us for free.

(Actually, it's not quite as disgusting as what you find when you grep
for umask in unbound/install-sh...)



Re: chmod of /usr/obj/usr.sbin/unbound/util

2017-02-26 Thread Sean Kamath
would “$(INSTALL) -d -m 775 util” be a less evil hack?

> On Feb 26, 2017, at 7:51 AM, Theo Buehler  wrote:
>
> 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  wobj2560 Feb 26 14:19 /usr/obj/usr.sbin
 drwxrwx---  3 build  wobj4096 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  wobj6016 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?
>>
>> Aaarrg... 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.in17 Feb 2017 18:53:31 -  1.20
>>> +++ usr.sbin/unbound/Makefile.in26 Feb 2017 15:04:38 -
>>> @@ -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



Re: chmod of /usr/obj/usr.sbin/unbound/util

2017-02-26 Thread Theo Buehler
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  wobj2560 Feb 26 14:19 /usr/obj/usr.sbin
> > > drwxrwx---  3 build  wobj4096 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  wobj6016 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?
> 
> Aaarrg... 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.in17 Feb 2017 18:53:31 -  1.20
> > +++ usr.sbin/unbound/Makefile.in26 Feb 2017 15:04:38 -
> > @@ -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



Re: chmod of /usr/obj/usr.sbin/unbound/util

2017-02-26 Thread Antoine Jacoutot
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  wobj2560 Feb 26 14:19 /usr/obj/usr.sbin
> > drwxrwx---  3 build  wobj4096 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  wobj6016 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?

Aaarrg... 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!

> This is what seems to be the least evil hack:

If that actually improves things, OK aja.
That bug makes me sad...

> 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 -  1.20
> +++ usr.sbin/unbound/Makefile.in  26 Feb 2017 15:04:38 -
> @@ -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



Re: chmod of /usr/obj/usr.sbin/unbound/util

2017-02-26 Thread Theo Buehler
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  wobj2560 Feb 26 14:19 /usr/obj/usr.sbin
> drwxrwx---  3 build  wobj4096 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  wobj6016 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?

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.

This is what seems to be the least evil hack:

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.in17 Feb 2017 18:53:31 -  1.20
+++ usr.sbin/unbound/Makefile.in26 Feb 2017 15:04:38 -
@@ -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:



chmod of /usr/obj/usr.sbin/unbound/util

2017-02-26 Thread Jan Stary
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  wobj2560 Feb 26 14:19 /usr/obj/usr.sbin
drwxrwx---  3 build  wobj4096 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  wobj6016 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?

Jan