svn commit: r333407 - head/share/mk
Bryan Drewery
bdrewery at FreeBSD.org
Fri May 25 21:10:27 UTC 2018
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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/svn-src-all/attachments/20180525/5d34db07/attachment.sig>
More information about the svn-src-all
mailing list