On 5/9/2018 6:44 AM, Brad Davis wrote: > Author: brd > Date: Wed May 9 13:44:54 2018 > New Revision: 333407 > URL: https://svnweb.freebsd.org/changeset/base/333407 > > Log: > Enable directory creation with FILESDIR. > > This is part of packaging base work. > > Reviewed by: will > Approved by: bapt (mentor), allanjude (mentor) > Differential Revision: https://reviews.freebsd.org/D15130 >
Please update share/mk/bsd.README too. I know I haven't been very responsive but it's partly because I'm still fundamentally against this feature. It's adding a mechanism to replace mtree without considering the whole picture and only binding it to FILES rather than a bsd.dirs.mk; It doesn't actually satisfy replacing mtree files since it only works if there is a FILESGROUP used (FILES must be non-empty). So what's the point? My major concern is added confusion. The creation of directories for installing is a pain point at work for developers but I don't think this is enough. I liked the idea of `install "-D"` but I know it's not efficient and had some implementation issues. More below... > Modified: > head/share/mk/bsd.files.mk > head/share/mk/bsd.own.mk > > Modified: head/share/mk/bsd.files.mk > ============================================================================== > --- head/share/mk/bsd.files.mk Wed May 9 12:25:23 2018 > (r333406) > +++ head/share/mk/bsd.files.mk Wed May 9 13:44:54 2018 > (r333407) > @@ -67,7 +67,7 @@ STAGE_AS_${file:T}= ${${group}NAME_${file:T}} > STAGE_DIR.${file:T}= ${STAGE_OBJTOP}${${group}DIR_${file:T}} > stage_as.${file:T}: ${file} > > -installfiles-${group}: _${group}INS_${file:T} > +installfiles-${group}: installdirs-${group} _${group}INS_${file:T} > _${group}INS_${file:T}: ${file} > ${INSTALL} ${${group}TAG_ARGS} -o ${${group}OWN_${.ALLSRC:T}} \ > -g ${${group}GRP_${.ALLSRC:T}} -m ${${group}MODE_${.ALLSRC:T}} \ > @@ -77,10 +77,24 @@ _${group}INS_${file:T}: ${file} > _${group}FILES+= ${file} > .endif > .endfor > + > + > +installdirs-${group}: > + @echo installing dirs ${group}DIR ${${group}DIR} > +.for dir in ${${group}DIR} > +.if defined(NO_ROOT) > + ${INSTALL} ${${group}TAG_ARGS} -d ${DESTDIR}${dir} > +.else > + ${INSTALL} ${${group}TAG_ARGS} -d -o ${DIROWN} -g ${DIRGRP} \ > + -m ${DIRMODE} ${DESTDIR}${dir} I missed this before but the OWN/GRP/MODE usage needs to be per group just like the FILES group ones are above; it needs to be able to modify the permissions per group rather than only using the globals. > +.endif > +.endfor > + > + > .if !empty(_${group}FILES) > stage_files.${group}: ${_${group}FILES} > > -installfiles-${group}: _${group}INS > +installfiles-${group}: installdirs-${group} _${group}INS > _${group}INS: ${_${group}FILES} > .if defined(${group}NAME) > ${INSTALL} ${${group}TAG_ARGS} -o ${${group}OWN} -g ${${group}GRP} \ > > Modified: head/share/mk/bsd.own.mk > ============================================================================== > --- head/share/mk/bsd.own.mk Wed May 9 12:25:23 2018 (r333406) > +++ head/share/mk/bsd.own.mk Wed May 9 13:44:54 2018 (r333407) > @@ -75,6 +75,13 @@ > # CONFMODE Configuration file mode. [644] > # > # > +# DIROWN Directory owner. [root] > +# > +# DIRGRP Directory group. [wheel] > +# > +# DIRMODE Directory mode. [755] > +# > +# > # DOCDIR Base path for system documentation (e.g. PSD, USD, > # handbook, FAQ etc.). [${SHAREDIR}/doc] > # > @@ -185,6 +192,10 @@ MANDIR?= ${SHAREDIR}/man/man > MANOWN?= ${SHAREOWN} > MANGRP?= ${SHAREGRP} > MANMODE?= ${NOBINMODE} > + > +DIROWN?= root > +DIRGRP?= wheel > +DIRMODE?= 755 > > DOCDIR?= ${SHAREDIR}/doc > DOCOWN?= ${SHAREOWN} > -- Regards, Bryan Drewery
signature.asc
Description: OpenPGP digital signature