Re: chmod of /usr/obj/usr.sbin/unbound/util
> 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
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
would “$(INSTALL) -d -m 775 util” be a less evil hack? > On Feb 26, 2017, at 7:51 AM, Theo Buehlerwrote: > > 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
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
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
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
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