FreeBSD Bugzilla – Attachment 115397 Details for
Bug 157168
[bsd.port.mk] New hook: CONF_FILES automatically handles configuration files
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
file.diff
file.diff (text/plain), 4.85 KB, created by
Chris Rees
on 2011-05-18 21:20:12 UTC
(
hide
)
Description:
file.diff
Filename:
MIME Type:
Creator:
Chris Rees
Created:
2011-05-18 21:20:12 UTC
Size:
4.85 KB
patch
obsolete
>Index: bsd.port.mk >=================================================================== >RCS file: /exports/cvsroot-freebsd/ports/Mk/bsd.port.mk,v >retrieving revision 1.682 >diff -u -r1.682 bsd.port.mk >--- bsd.port.mk 6 May 2011 06:20:12 -0000 1.682 >+++ bsd.port.mk 18 May 2011 20:08:55 -0000 >@@ -631,6 +631,8 @@ > # INSTALL_DATA - A command to install sharable data. > # INSTALL_MAN - A command to install manpages. May or not compress, > # depending on the value of MANCOMPRESSED (see below). >+# INSTALL_CONF - A command to install configuration files. Not normally called >+# by ports directly, use CONF_FILES (see below). > # > # Boolean to control whether manpages are installed. > # >@@ -971,6 +973,18 @@ > # MTREE_FILE - The name of the mtree file. > # Default: ${PORTSDIR}/Templates/BSD.local.dist or > # /etc/mtree/BSD.usr.dist if ${PREFIX} == "/usr". >+# CONF_FILES - A list of "absolute_path/src_file:relative_path/[dest_file]" >+# tuples of configuration files this package should install >+# as sample files (extension .pkgconf). "absolute_path" is >+# usually ${WRKSRC}/path_to_conf_file, and "src_file" can be >+# a filename or sh glob. If "dest_file" is omitted, the >+# trailing slash is non-optional, and the filename is taken from >+# "src_file". If a glob is used in "src_file" then "dest_file" >+# should be omitted. The sample files are copied to conf files >+# if there is no existing conf file, and unchanged conf files >+# are removed on deinstall. >+# CONF_DIRS - Directories to be created to put config files in and >+# added to the packing list > # PLIST_DIRS - Directories to be added to packing list > # PLIST_DIRSTRY - Directories to be added to packing list and try to remove them. > # PLIST_FILES - Files and symbolic links to be added to packing list >@@ -2419,12 +2433,20 @@ > _BINOWNGRP= -o ${BINOWN} -g ${BINGRP} > _SHROWNGRP= -o ${SHAREOWN} -g ${SHAREGRP} > _MANOWNGRP= -o ${MANOWN} -g ${MANGRP} >+_CONFOWNGRP= -o ${CONFOWN} -g ${CONFGRP} > .else > _BINOWNGRP= > _SHROWNGRP= > _MANOWNGRP= >+_CONFOWNGRP= > .endif > >+# CONF* macros are only defined in recent versions; these >+# lines can be removed once 8.2-RELEASE is no longer supported. >+CONFOWN?= root >+CONFGRP?= wheel >+CONFMODE?= 644 >+ > # A few aliases for *-install targets > INSTALL_PROGRAM= \ > ${INSTALL} ${COPY} ${STRIP} ${_BINOWNGRP} -m ${BINMODE} >@@ -2438,6 +2460,8 @@ > ${INSTALL} ${COPY} ${_SHROWNGRP} -m ${SHAREMODE} > INSTALL_MAN= \ > ${INSTALL} ${COPY} ${_MANOWNGRP} -m ${MANMODE} >+INSTALL_CONF= \ >+ ${INSTALL} ${COPY} ${_CONFOWNGRP} -m ${CONFMODE} > > INSTALL_MACROS= BSD_INSTALL_PROGRAM="${INSTALL_PROGRAM}" \ > BSD_INSTALL_LIB="${INSTALL_LIB}" \ >@@ -4468,10 +4492,10 @@ > pre-install-script generate-plist check-already-installed > _INSTALL_SUSEQ= check-umask install-mtree pre-su-install \ > pre-su-install-script create-users-groups do-install \ >- install-desktop-entries install-license install-rc-script \ >- post-install post-install-script add-plist-info \ >- add-plist-docs add-plist-examples add-plist-data \ >- add-plist-post fix-plist-sequence compress-man \ >+ install-desktop-entries install-license install-conf-files \ >+ install-rc-script post-install post-install-script \ >+ add-plist-info add-plist-docs add-plist-examples \ >+ add-plist-data add-plist-post fix-plist-sequence compress-man \ > install-ldconfig-file fake-pkg security-check > _PACKAGE_DEP= install > _PACKAGE_SEQ= package-message pre-package pre-package-script \ >@@ -5973,6 +5997,46 @@ > .endif > .endif > >+.if !target(install-conf-files) >+install-conf-files: >+. if defined(CONF_FILES) >+ @${ECHO_MSG} "===> Installing configuration file(s)" >+ @${ECHO_CMD} "@cwd ${PREFIX}" >> ${TMPPLIST} >+. if defined(CONF_DIRS) >+. for dir in ${CONF_DIRS} >+ @${MKDIR} ${dir} >+. endfor >+. endif >+. for confs in ${CONF_FILES} >+ CONF_FILES_SRC=$$(${ECHO_CMD} \ >+ "${confs}" | ${SED} -E -e 's,([^: ]*).*,\1,') ; \ >+ CONF_FILES_DEST=$$(${ECHO_CMD} \ >+ "${confs}" | ${SED} -E -e 's,([^: ]*):([^: ]*),\2,') ; \ >+ for src in $${CONF_FILES_SRC} ; \ >+ do \ >+ [ -z $${CONF_FILES_DEST##*/} ] \ >+ && dest=$${CONF_FILES_DEST}$${src##*/} \ >+ || dest=$${CONF_FILES_DEST} ; \ >+ ${INSTALL_DATA} $${src} ${PREFIX}/$${dest}.pkgconf ; \ >+ [ ! -f ${PREFIX}/$${dest} ] \ >+ && ${INSTALL_CONF} ${PREFIX}/$${dest}.pkgconf \ >+ ${PREFIX}/$${dest} ; \ >+ ${ECHO_CMD} "@unexec cmp -s %D/$${dest}.pkgconf %D/$${dest} \ >+ && ${RM} -f %D/$${dest}" >> ${TMPPLIST} ; \ >+ ${ECHO_CMD} "$${dest}.pkgconf" >> ${TMPPLIST} ; \ >+ ${ECHO_CMD} "@exec [ ! -f %D/$${dest} ] \ >+ && ${INSTALL_CONF} %D/%F %B/$${dest}" >> ${TMPPLIST} ; \ >+ done >+. endfor >+. if defined(CONF_DIRS_ >+. for dir in ${CONF_DIRS} >+ @${ECHO_CMD} "@unexec rmdir %D/${dir} 2>/dev/null || true" \ >+ >> ${TMPPLIST} >+. endfor >+. endif >+. endif >+.endif >+ > .if !target(install-rc-script) > install-rc-script: > .if defined(USE_RCORDER) || defined(USE_RC_SUBR) && ${USE_RC_SUBR:U} != "YES"
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 157168
: 115397 |
115398
|
115399