Fri Jul 24 06:54:37 2009 UTC ()
Compute +SIZE_ALL as documented in pkg_info(1). Addresses PR 41767.


(joerg)
diff -r1.31 -r1.32 pkgsrc/mk/flavor/pkg/metadata.mk

cvs diff -r1.31 -r1.32 pkgsrc/mk/flavor/pkg/Attic/metadata.mk (switch to unified diff)

--- pkgsrc/mk/flavor/pkg/Attic/metadata.mk 2009/05/02 16:14:37 1.31
+++ pkgsrc/mk/flavor/pkg/Attic/metadata.mk 2009/07/24 06:54:37 1.32
@@ -1,407 +1,410 @@ @@ -1,407 +1,410 @@
1# $NetBSD: metadata.mk,v 1.31 2009/05/02 16:14:37 reed Exp $ 1# $NetBSD: metadata.mk,v 1.32 2009/07/24 06:54:37 joerg Exp $
2 2
3###################################################################### 3######################################################################
4### The targets below are all PRIVATE. 4### The targets below are all PRIVATE.
5###################################################################### 5######################################################################
6 6
7###################################################################### 7######################################################################
8### 8###
9### Temporary package meta-data directory. The contents of this directory 9### Temporary package meta-data directory. The contents of this directory
10### are copied directly into the real package meta-data directory. 10### are copied directly into the real package meta-data directory.
11### 11###
12PKG_DB_TMPDIR= ${WRKDIR}/.pkgdb 12PKG_DB_TMPDIR= ${WRKDIR}/.pkgdb
13 13
14unprivileged-install-hook: ${PKG_DB_TMPDIR} 14unprivileged-install-hook: ${PKG_DB_TMPDIR}
15${PKG_DB_TMPDIR}: 15${PKG_DB_TMPDIR}:
16 ${RUN}${MKDIR} ${.TARGET} 16 ${RUN}${MKDIR} ${.TARGET}
17 17
18###################################################################### 18######################################################################
19### 19###
20### +BUILD_INFO - Package build environment and settings information 20### +BUILD_INFO - Package build environment and settings information
21### 21###
22_BUILD_INFO_FILE= ${PKG_DB_TMPDIR}/+BUILD_INFO 22_BUILD_INFO_FILE= ${PKG_DB_TMPDIR}/+BUILD_INFO
23_BUILD_DATE_cmd= ${DATE} "+%Y-%m-%d %H:%M:%S %z" 23_BUILD_DATE_cmd= ${DATE} "+%Y-%m-%d %H:%M:%S %z"
24_BUILD_HOST_cmd= ${UNAME} -a 24_BUILD_HOST_cmd= ${UNAME} -a
25_METADATA_TARGETS+= ${_BUILD_INFO_FILE} 25_METADATA_TARGETS+= ${_BUILD_INFO_FILE}
26 26
27${_BUILD_INFO_FILE}: plist 27${_BUILD_INFO_FILE}: plist
28 ${RUN}${MKDIR} ${.TARGET:H} 28 ${RUN}${MKDIR} ${.TARGET:H}
29 ${RUN}${RM} -f ${.TARGET}.tmp 29 ${RUN}${RM} -f ${.TARGET}.tmp
30 ${RUN} (${_BUILD_DEFS:NPATH:@v@${ECHO} ${v}=${${v}:Q} ;@}) \ 30 ${RUN} (${_BUILD_DEFS:NPATH:@v@${ECHO} ${v}=${${v}:Q} ;@}) \
31 > ${.TARGET}.tmp 31 > ${.TARGET}.tmp
32.if !empty(USE_LANGUAGES) 32.if !empty(USE_LANGUAGES)
33 ${RUN}${ECHO} "CC_VERSION=${CC_VERSION}" >> ${.TARGET}.tmp 33 ${RUN}${ECHO} "CC_VERSION=${CC_VERSION}" >> ${.TARGET}.tmp
34.endif 34.endif
35.if !empty(USE_TOOLS:Mperl\:run) 35.if !empty(USE_TOOLS:Mperl\:run)
36 ${RUN}${ECHO} "PERL=`${PERL5} --version 2>/dev/null | ${GREP} 'This is perl'`" >> ${.TARGET}.tmp 36 ${RUN}${ECHO} "PERL=`${PERL5} --version 2>/dev/null | ${GREP} 'This is perl'`" >> ${.TARGET}.tmp
37.endif 37.endif
38.if !empty(USE_TOOLS:Mgmake) 38.if !empty(USE_TOOLS:Mgmake)
39 ${RUN}${ECHO} "GMAKE=`${GMAKE} --version | ${GREP} Make`" >> ${.TARGET}.tmp 39 ${RUN}${ECHO} "GMAKE=`${GMAKE} --version | ${GREP} Make`" >> ${.TARGET}.tmp
40.endif 40.endif
41 ${RUN}${ECHO} "PKGTOOLS_VERSION=${PKGTOOLS_VERSION}" >> ${.TARGET}.tmp 41 ${RUN}${ECHO} "PKGTOOLS_VERSION=${PKGTOOLS_VERSION}" >> ${.TARGET}.tmp
42.if defined(HOMEPAGE) 42.if defined(HOMEPAGE)
43 ${RUN}${ECHO} "HOMEPAGE=${HOMEPAGE}" >> ${.TARGET}.tmp 43 ${RUN}${ECHO} "HOMEPAGE=${HOMEPAGE}" >> ${.TARGET}.tmp
44.endif 44.endif
45 ${RUN}${ECHO} "CATEGORIES=${CATEGORIES}" >> ${.TARGET}.tmp 45 ${RUN}${ECHO} "CATEGORIES=${CATEGORIES}" >> ${.TARGET}.tmp
46 ${RUN}${ECHO} "MAINTAINER=${MAINTAINER}" >> ${.TARGET}.tmp 46 ${RUN}${ECHO} "MAINTAINER=${MAINTAINER}" >> ${.TARGET}.tmp
47.if defined(OWNER) 47.if defined(OWNER)
48 ${RUN}${ECHO} "OWNER=${OWNER}" >> ${.TARGET}.tmp 48 ${RUN}${ECHO} "OWNER=${OWNER}" >> ${.TARGET}.tmp
49.endif  49.endif
50.if defined(PREV_PKGPATH) 50.if defined(PREV_PKGPATH)
51 ${RUN}${ECHO} "PREV_PKGPATH=${PREV_PKGPATH}" >> ${.TARGET}.tmp 51 ${RUN}${ECHO} "PREV_PKGPATH=${PREV_PKGPATH}" >> ${.TARGET}.tmp
52.endif 52.endif
53.if defined(SUPERSEDES) 53.if defined(SUPERSEDES)
54 ${RUN}${ECHO} "SUPERSEDES=${SUPERSEDES}" >> ${.TARGET}.tmp 54 ${RUN}${ECHO} "SUPERSEDES=${SUPERSEDES}" >> ${.TARGET}.tmp
55.endif 55.endif
56 ${RUN}${ECHO} "BUILD_DATE=${_BUILD_DATE_cmd:sh}" >> ${.TARGET}.tmp 56 ${RUN}${ECHO} "BUILD_DATE=${_BUILD_DATE_cmd:sh}" >> ${.TARGET}.tmp
57 ${RUN}${ECHO} "BUILD_HOST=${_BUILD_HOST_cmd:sh}" >> ${.TARGET}.tmp 57 ${RUN}${ECHO} "BUILD_HOST=${_BUILD_HOST_cmd:sh}" >> ${.TARGET}.tmp
58.if !empty(CHECK_SHLIBS_SUPPORTED:M[yY][eE][sS]) 58.if !empty(CHECK_SHLIBS_SUPPORTED:M[yY][eE][sS])
59 ${RUN} \ 59 ${RUN} \
60 case ${LDD:Q}"" in \ 60 case ${LDD:Q}"" in \
61 "") ldd=`${TYPE} ldd 2>/dev/null | ${AWK} '{ print $$NF }'` ;; \ 61 "") ldd=`${TYPE} ldd 2>/dev/null | ${AWK} '{ print $$NF }'` ;; \
62 *) ldd=${LDD:Q} ;; \ 62 *) ldd=${LDD:Q} ;; \
63 esac; \ 63 esac; \
64 bins=`${AWK} '/(^|\/)(bin|sbin|libexec)\// { print "${DESTDIR}${PREFIX}/" $$0 } END { exit 0 }' ${_PLIST_NOKEYWORDS}`; \ 64 bins=`${AWK} '/(^|\/)(bin|sbin|libexec)\// { print "${DESTDIR}${PREFIX}/" $$0 } END { exit 0 }' ${_PLIST_NOKEYWORDS}`; \
65 case ${OBJECT_FMT:Q}"" in \ 65 case ${OBJECT_FMT:Q}"" in \
66 ELF) \ 66 ELF) \
67 libs=`${AWK} '/(^|\/)lib\/lib.*\.so\.[0-9]+$$/ { print "${DESTDIR}${PREFIX}/" $$0 } END { exit 0 }' ${_PLIST_NOKEYWORDS}`; \ 67 libs=`${AWK} '/(^|\/)lib\/lib.*\.so\.[0-9]+$$/ { print "${DESTDIR}${PREFIX}/" $$0 } END { exit 0 }' ${_PLIST_NOKEYWORDS}`; \
68 if ${TEST} -n "$$bins" -o -n "$$libs"; then \ 68 if ${TEST} -n "$$bins" -o -n "$$libs"; then \
69 requires=`($$ldd $$bins $$libs 2>/dev/null || ${TRUE}) | ${AWK} '$$2 == "=>" && $$3 ~ "/" { print $$3 }' | ${SORT} -u`; \ 69 requires=`($$ldd $$bins $$libs 2>/dev/null || ${TRUE}) | ${AWK} '$$2 == "=>" && $$3 ~ "/" { print $$3 }' | ${SORT} -u`; \
70 fi; \ 70 fi; \
71 linklibs=`${AWK} '/.*\.so\.[0-9\.]+$$/ { print "${DESTDIR}${PREFIX}/" $$0 }' ${_PLIST_NOKEYWORDS}`; \ 71 linklibs=`${AWK} '/.*\.so\.[0-9\.]+$$/ { print "${DESTDIR}${PREFIX}/" $$0 }' ${_PLIST_NOKEYWORDS}`; \
72 for i in $$linklibs; do \ 72 for i in $$linklibs; do \
73 if ${TEST} -r $$i -a ! -x $$i -a ! -h $$i; then \ 73 if ${TEST} -r $$i -a ! -x $$i -a ! -h $$i; then \
74 ${TEST} ${PKG_DEVELOPER:Uno:Q}"" = "no" || \ 74 ${TEST} ${PKG_DEVELOPER:Uno:Q}"" = "no" || \
75 ${ECHO} "$$i: installed without execute permission; fixing (should use [BSD_]INSTALL_LIB)"; \ 75 ${ECHO} "$$i: installed without execute permission; fixing (should use [BSD_]INSTALL_LIB)"; \
76 ${CHMOD} +x $$i; \ 76 ${CHMOD} +x $$i; \
77 fi; \ 77 fi; \
78 done; \ 78 done; \
79 ;; \ 79 ;; \
80 Mach-O) \ 80 Mach-O) \
81 libs=`${AWK} '/(^|\/)lib\/lib.*\.dylib/ { print "${DESTDIR}${PREFIX}/" $$0 } END { exit 0 }' ${_PLIST_NOKEYWORDS}`; \ 81 libs=`${AWK} '/(^|\/)lib\/lib.*\.dylib/ { print "${DESTDIR}${PREFIX}/" $$0 } END { exit 0 }' ${_PLIST_NOKEYWORDS}`; \
82 if ${TEST} "$$bins" != "" -o "$$libs" != ""; then \ 82 if ${TEST} "$$bins" != "" -o "$$libs" != ""; then \
83 requires=`($$ldd $$bins $$libs 2>/dev/null || ${TRUE}) | ${AWK} '/compatibility version/ { print $$1 }' | ${SORT} -u`; \ 83 requires=`($$ldd $$bins $$libs 2>/dev/null || ${TRUE}) | ${AWK} '/compatibility version/ { print $$1 }' | ${SORT} -u`; \
84 fi; \ 84 fi; \
85 ;; \ 85 ;; \
86 esac; \ 86 esac; \
87 for i in "" $$libs; do \ 87 for i in "" $$libs; do \
88 ${TEST} "$$i" != "" || continue; \ 88 ${TEST} "$$i" != "" || continue; \
89 ${ECHO} "PROVIDES=$${i}"; \ 89 ${ECHO} "PROVIDES=$${i}"; \
90 done | ${SED} -e 's,^PROVIDES=${DESTDIR},PROVIDES=,' \ 90 done | ${SED} -e 's,^PROVIDES=${DESTDIR},PROVIDES=,' \
91 >> ${.TARGET}.tmp; \ 91 >> ${.TARGET}.tmp; \
92 for req in "" $$requires; do \ 92 for req in "" $$requires; do \
93 ${TEST} "$$req" != "" || continue; \ 93 ${TEST} "$$req" != "" || continue; \
94 ${ECHO} "REQUIRES=$$req" >> ${.TARGET}.tmp; \ 94 ${ECHO} "REQUIRES=$$req" >> ${.TARGET}.tmp; \
95 done 95 done
96.endif 96.endif
97 ${RUN} \ 97 ${RUN} \
98 rm -f ${.TARGET}; \ 98 rm -f ${.TARGET}; \
99 sort ${.TARGET}.tmp > ${.TARGET}; \ 99 sort ${.TARGET}.tmp > ${.TARGET}; \
100 rm -f ${.TARGET}.tmp 100 rm -f ${.TARGET}.tmp
101 101
102###################################################################### 102######################################################################
103### 103###
104### +BUILD_VERSION - Package build files versioning information 104### +BUILD_VERSION - Package build files versioning information
105### 105###
106### We extract the ident strings from all of the important pkgsrc files 106### We extract the ident strings from all of the important pkgsrc files
107### involved in building the package, i.e. Makefile and patches. 107### involved in building the package, i.e. Makefile and patches.
108### 108###
109_BUILD_VERSION_FILE= ${PKG_DB_TMPDIR}/+BUILD_VERSION 109_BUILD_VERSION_FILE= ${PKG_DB_TMPDIR}/+BUILD_VERSION
110_METADATA_TARGETS+= ${_BUILD_VERSION_FILE} 110_METADATA_TARGETS+= ${_BUILD_VERSION_FILE}
111 111
112${_BUILD_VERSION_FILE}: 112${_BUILD_VERSION_FILE}:
113 ${RUN}${MKDIR} ${.TARGET:H} 113 ${RUN}${MKDIR} ${.TARGET:H}
114 ${RUN}${RM} -f ${.TARGET}.tmp 114 ${RUN}${RM} -f ${.TARGET}.tmp
115 ${RUN} \ 115 ${RUN} \
116 exec 1>>${.TARGET}.tmp; \ 116 exec 1>>${.TARGET}.tmp; \
117 for f in ${.CURDIR}/Makefile ${FILESDIR}/* ${PKGDIR}/*; do \ 117 for f in ${.CURDIR}/Makefile ${FILESDIR}/* ${PKGDIR}/*; do \
118 ${TEST} ! -f "$$f" || ${ECHO} "$$f"; \ 118 ${TEST} ! -f "$$f" || ${ECHO} "$$f"; \
119 done 119 done
120 ${RUN} \ 120 ${RUN} \
121 exec 1>>${.TARGET}.tmp; \ 121 exec 1>>${.TARGET}.tmp; \
122 ${TEST} -f ${DISTINFO_FILE:Q} || exit 0; \ 122 ${TEST} -f ${DISTINFO_FILE:Q} || exit 0; \
123 ${CAT} ${DISTINFO_FILE} | \ 123 ${CAT} ${DISTINFO_FILE} | \
124 ${AWK} 'NF == 4 && $$3 == "=" { gsub("[()]", "", $$2); print $$2 }' | \ 124 ${AWK} 'NF == 4 && $$3 == "=" { gsub("[()]", "", $$2); print $$2 }' | \
125 while read file; do \ 125 while read file; do \
126 ${TEST} ! -f "${PATCHDIR}/$$file" || \ 126 ${TEST} ! -f "${PATCHDIR}/$$file" || \
127 ${ECHO} "${PATCHDIR}/$$file"; \ 127 ${ECHO} "${PATCHDIR}/$$file"; \
128 done 128 done
129 ${RUN} \ 129 ${RUN} \
130 exec 1>>${.TARGET}.tmp; \ 130 exec 1>>${.TARGET}.tmp; \
131 ${TEST} -d ${PATCHDIR} || exit 0; \ 131 ${TEST} -d ${PATCHDIR} || exit 0; \
132 cd ${PATCHDIR}; for f in *; do \ 132 cd ${PATCHDIR}; for f in *; do \
133 case "$$f" in \ 133 case "$$f" in \
134 "*"|*.orig|*.rej|*~) ;; \ 134 "*"|*.orig|*.rej|*~) ;; \
135 patch-*) ${ECHO} "${PATCHDIR}/$$f" ;; \ 135 patch-*) ${ECHO} "${PATCHDIR}/$$f" ;; \
136 esac; \ 136 esac; \
137 done 137 done
138 ${RUN} \ 138 ${RUN} \
139 ${CAT} ${.TARGET}.tmp | \ 139 ${CAT} ${.TARGET}.tmp | \
140 while read file; do \ 140 while read file; do \
141 ${GREP} '\$$NetBSD' $$file 2>/dev/null | \ 141 ${GREP} '\$$NetBSD' $$file 2>/dev/null | \
142 ${SED} -e "s|^|$$file:|"; \ 142 ${SED} -e "s|^|$$file:|"; \
143 done | \ 143 done | \
144 ${AWK} '{ sub("^${PKGSRCDIR}/", ""); \ 144 ${AWK} '{ sub("^${PKGSRCDIR}/", ""); \
145 sub(":.*[$$]NetBSD", ": $$NetBSD"); \ 145 sub(":.*[$$]NetBSD", ": $$NetBSD"); \
146 sub("[$$][^$$]*$$", "$$"); \ 146 sub("[$$][^$$]*$$", "$$"); \
147 print; }' | \ 147 print; }' | \
148 ${SORT} -u > ${.TARGET} && ${RM} -f ${.TARGET}.tmp 148 ${SORT} -u > ${.TARGET} && ${RM} -f ${.TARGET}.tmp
149 149
150###################################################################### 150######################################################################
151### 151###
152### +COMMENT - Package comment file 152### +COMMENT - Package comment file
153### 153###
154### This file contains the one-line description of the package. 154### This file contains the one-line description of the package.
155### 155###
156_COMMENT_FILE= ${PKG_DB_TMPDIR}/+COMMENT 156_COMMENT_FILE= ${PKG_DB_TMPDIR}/+COMMENT
157_METADATA_TARGETS+= ${_COMMENT_FILE} 157_METADATA_TARGETS+= ${_COMMENT_FILE}
158 158
159${_COMMENT_FILE}: 159${_COMMENT_FILE}:
160 ${RUN}${MKDIR} ${.TARGET:H} 160 ${RUN}${MKDIR} ${.TARGET:H}
161 ${RUN}${ECHO} ${COMMENT:Q} > ${.TARGET} 161 ${RUN}${ECHO} ${COMMENT:Q} > ${.TARGET}
162 162
163###################################################################### 163######################################################################
164### 164###
165### +DESC - Package description file 165### +DESC - Package description file
166### 166###
167### This file contains the paragraph description of the package. 167### This file contains the paragraph description of the package.
168### 168###
169_DESCR_FILE= ${PKG_DB_TMPDIR}/+DESC 169_DESCR_FILE= ${PKG_DB_TMPDIR}/+DESC
170_METADATA_TARGETS+= ${_DESCR_FILE} 170_METADATA_TARGETS+= ${_DESCR_FILE}
171 171
172${_DESCR_FILE}: ${DESCR_SRC} 172${_DESCR_FILE}: ${DESCR_SRC}
173 ${RUN}${MKDIR} ${.TARGET:H} 173 ${RUN}${MKDIR} ${.TARGET:H}
174 ${RUN}${RM} -f ${.TARGET} 174 ${RUN}${RM} -f ${.TARGET}
175 ${RUN}${CAT} ${.ALLSRC} > ${.TARGET} 175 ${RUN}${CAT} ${.ALLSRC} > ${.TARGET}
176.if defined(HOMEPAGE) 176.if defined(HOMEPAGE)
177 ${RUN}${ECHO} >> ${.TARGET} 177 ${RUN}${ECHO} >> ${.TARGET}
178 ${RUN}${ECHO} "Homepage:" >> ${.TARGET} 178 ${RUN}${ECHO} "Homepage:" >> ${.TARGET}
179 ${RUN}${ECHO} ""${HOMEPAGE:Q} >> ${.TARGET} 179 ${RUN}${ECHO} ""${HOMEPAGE:Q} >> ${.TARGET}
180.endif 180.endif
181 181
182###################################################################### 182######################################################################
183### 183###
184### +DISPLAY - Package message file 184### +DISPLAY - Package message file
185### 185###
186### This file contains important messages which apply to this package, 186### This file contains important messages which apply to this package,
187### and are shown during installation. 187### and are shown during installation.
188### 188###
189.if !defined(MESSAGE_SRC) 189.if !defined(MESSAGE_SRC)
190. if exists(${PKGDIR}/MESSAGE) 190. if exists(${PKGDIR}/MESSAGE)
191MESSAGE_SRC= ${PKGDIR}/MESSAGE 191MESSAGE_SRC= ${PKGDIR}/MESSAGE
192. else 192. else
193. if exists(${PKGDIR}/MESSAGE.common) 193. if exists(${PKGDIR}/MESSAGE.common)
194MESSAGE_SRC= ${PKGDIR}/MESSAGE.common 194MESSAGE_SRC= ${PKGDIR}/MESSAGE.common
195. endif 195. endif
196. if exists(${PKGDIR}/MESSAGE.${OPSYS}) 196. if exists(${PKGDIR}/MESSAGE.${OPSYS})
197MESSAGE_SRC+= ${PKGDIR}/MESSAGE.${OPSYS} 197MESSAGE_SRC+= ${PKGDIR}/MESSAGE.${OPSYS}
198. endif 198. endif
199. if exists(${PKGDIR}/MESSAGE.${MACHINE_ARCH:C/i[3-6]86/i386/g}) 199. if exists(${PKGDIR}/MESSAGE.${MACHINE_ARCH:C/i[3-6]86/i386/g})
200MESSAGE_SRC+= ${PKGDIR}/MESSAGE.${MACHINE_ARCH:C/i[3-6]86/i386/g} 200MESSAGE_SRC+= ${PKGDIR}/MESSAGE.${MACHINE_ARCH:C/i[3-6]86/i386/g}
201. endif 201. endif
202. if exists(${PKGDIR}/MESSAGE.${OPSYS}-${MACHINE_ARCH:C/i[3-6]86/i386/g}) 202. if exists(${PKGDIR}/MESSAGE.${OPSYS}-${MACHINE_ARCH:C/i[3-6]86/i386/g})
203MESSAGE_SRC+= ${PKGDIR}/MESSAGE.${OPSYS}-${MACHINE_ARCH:C/i[3-6]86/i386/g} 203MESSAGE_SRC+= ${PKGDIR}/MESSAGE.${OPSYS}-${MACHINE_ARCH:C/i[3-6]86/i386/g}
204. endif 204. endif
205. endif 205. endif
206.endif 206.endif
207 207
208.if defined(MESSAGE_SRC) 208.if defined(MESSAGE_SRC)
209_MESSAGE_FILE= ${PKG_DB_TMPDIR}/+DISPLAY 209_MESSAGE_FILE= ${PKG_DB_TMPDIR}/+DISPLAY
210_METADATA_TARGETS+= ${_MESSAGE_FILE} 210_METADATA_TARGETS+= ${_MESSAGE_FILE}
211 211
212# Set MESSAGE_SUBST to substitute "${variable}" to "value" in MESSAGE 212# Set MESSAGE_SUBST to substitute "${variable}" to "value" in MESSAGE
213MESSAGE_SUBST+= PKGNAME=${PKGNAME} \ 213MESSAGE_SUBST+= PKGNAME=${PKGNAME} \
214 PKGBASE=${PKGBASE} \ 214 PKGBASE=${PKGBASE} \
215 PREFIX=${PREFIX} \ 215 PREFIX=${PREFIX} \
216 LOCALBASE=${LOCALBASE} \ 216 LOCALBASE=${LOCALBASE} \
217 X11PREFIX=${X11PREFIX} \ 217 X11PREFIX=${X11PREFIX} \
218 X11BASE=${X11BASE} \ 218 X11BASE=${X11BASE} \
219 PKG_SYSCONFDIR=${PKG_SYSCONFDIR} \ 219 PKG_SYSCONFDIR=${PKG_SYSCONFDIR} \
220 ROOT_GROUP=${ROOT_GROUP} \ 220 ROOT_GROUP=${ROOT_GROUP} \
221 ROOT_USER=${ROOT_USER} 221 ROOT_USER=${ROOT_USER}
222 222
223_MESSAGE_SUBST_SED= ${MESSAGE_SUBST:S/=/}!/:S/$/!g/:S/^/ -e s!\\\${/} 223_MESSAGE_SUBST_SED= ${MESSAGE_SUBST:S/=/}!/:S/$/!g/:S/^/ -e s!\\\${/}
224 224
225${_MESSAGE_FILE}: ${MESSAGE_SRC} 225${_MESSAGE_FILE}: ${MESSAGE_SRC}
226 ${RUN}${MKDIR} ${.TARGET:H} 226 ${RUN}${MKDIR} ${.TARGET:H}
227 ${RUN}${CAT} ${.ALLSRC} | \ 227 ${RUN}${CAT} ${.ALLSRC} | \
228 ${SED} ${_MESSAGE_SUBST_SED} > ${.TARGET} 228 ${SED} ${_MESSAGE_SUBST_SED} > ${.TARGET}
229 229
230# Display MESSAGE file and optionally mail the contents to 230# Display MESSAGE file and optionally mail the contents to
231# PKGSRC_MESSAGE_RECIPIENTS. 231# PKGSRC_MESSAGE_RECIPIENTS.
232# 232#
233.PHONY: install-display-message 233.PHONY: install-display-message
234_flavor-register: install-display-message 234_flavor-register: install-display-message
235install-display-message: ${_MESSAGE_FILE} 235install-display-message: ${_MESSAGE_FILE}
236 @${STEP_MSG} "Please note the following:" 236 @${STEP_MSG} "Please note the following:"
237 @${ECHO_MSG} "" 237 @${ECHO_MSG} ""
238 @${CAT} ${_MESSAGE_FILE} 238 @${CAT} ${_MESSAGE_FILE}
239 @${ECHO_MSG} "" 239 @${ECHO_MSG} ""
240. if !empty(PKGSRC_MESSAGE_RECIPIENTS) 240. if !empty(PKGSRC_MESSAGE_RECIPIENTS)
241 ${RUN} \ 241 ${RUN} \
242 (${ECHO} "The ${PKGNAME} package was installed on `${HOSTNAME_CMD}` at `date`"; \ 242 (${ECHO} "The ${PKGNAME} package was installed on `${HOSTNAME_CMD}` at `date`"; \
243 ${ECHO} ""; \ 243 ${ECHO} ""; \
244 ${ECHO} "Please note the following:"; \ 244 ${ECHO} "Please note the following:"; \
245 ${ECHO} ""; \ 245 ${ECHO} ""; \
246 ${CAT} ${_MESSAGE_FILE}; \ 246 ${CAT} ${_MESSAGE_FILE}; \
247 ${ECHO} "") | \ 247 ${ECHO} "") | \
248 ${MAIL_CMD} -s"Package ${PKGNAME} installed on `${HOSTNAME_CMD}`" ${PKGSRC_MESSAGE_RECIPIENTS} 248 ${MAIL_CMD} -s"Package ${PKGNAME} installed on `${HOSTNAME_CMD}`" ${PKGSRC_MESSAGE_RECIPIENTS}
249. endif 249. endif
250.endif # MESSAGE_SRC 250.endif # MESSAGE_SRC
251 251
252###################################################################### 252######################################################################
253### 253###
254### +PRESERVE - Package preserve file 254### +PRESERVE - Package preserve file
255### 255###
256### The existence of this file prevents pkg_delete from removing this 256### The existence of this file prevents pkg_delete from removing this
257### package unless one "force-deletes" the package. 257### package unless one "force-deletes" the package.
258### 258###
259.if defined(PKG_PRESERVE) 259.if defined(PKG_PRESERVE)
260_PRESERVE_FILE= ${PKG_DB_TMPDIR}/+PRESERVE 260_PRESERVE_FILE= ${PKG_DB_TMPDIR}/+PRESERVE
261_METADATA_TARGETS+= ${_PRESERVE_FILE} 261_METADATA_TARGETS+= ${_PRESERVE_FILE}
262 262
263${_PRESERVE_FILE}: 263${_PRESERVE_FILE}:
264 ${RUN}${MKDIR} ${.TARGET:H} 264 ${RUN}${MKDIR} ${.TARGET:H}
265 ${RUN}${DATE} > ${.TARGET} 265 ${RUN}${DATE} > ${.TARGET}
266.endif 266.endif
267 267
268###################################################################### 268######################################################################
269### 269###
270### +SIZE_ALL - Package size-of-dependencies file 
271### 
272### This is the total size of the dependencies that this package was 
273### built against. 
274### 
275_SIZE_ALL_FILE= ${PKG_DB_TMPDIR}/+SIZE_ALL 
276_METADATA_TARGETS+= ${_SIZE_ALL_FILE} 
277 
278${_SIZE_ALL_FILE}: ${_RDEPENDS_FILE} 
279 ${RUN}${MKDIR} ${.TARGET:H} 
280 ${RUN} \ 
281 ${_FULL_DEPENDS_CMD} | ${SORT} -u | \ 
282 ${XARGS} -n 256 ${PKG_INFO} -qs | \ 
283 ${AWK} 'BEGIN { s = 0 } /^[0-9]+$$/ { s += $$1 } END { print s }' \ 
284 > ${.TARGET} 
285 
286###################################################################### 
287### 
288### +SIZE_PKG - Package size file 270### +SIZE_PKG - Package size file
289### 271###
290### This is the total size of the files contained in the package. 272### This is the total size of the files contained in the package.
291### 273###
292_SIZE_PKG_FILE= ${PKG_DB_TMPDIR}/+SIZE_PKG 274_SIZE_PKG_FILE= ${PKG_DB_TMPDIR}/+SIZE_PKG
293_METADATA_TARGETS+= ${_SIZE_PKG_FILE} 275_METADATA_TARGETS+= ${_SIZE_PKG_FILE}
294 276
295${_SIZE_PKG_FILE}: plist 277${_SIZE_PKG_FILE}: plist
296 ${RUN}${MKDIR} ${.TARGET:H} 278 ${RUN}${MKDIR} ${.TARGET:H}
297 ${RUN} \ 279 ${RUN} \
298 ${CAT} ${PLIST} | \ 280 ${CAT} ${PLIST} | \
299 ${AWK} 'BEGIN { base = "${PREFIX}/" } \ 281 ${AWK} 'BEGIN { base = "${PREFIX}/" } \
300 /^@cwd/ { base = $$2 "/" } \ 282 /^@cwd/ { base = $$2 "/" } \
301 /^@/ { next } \ 283 /^@/ { next } \
302 { print base $$0 }' | \ 284 { print base $$0 }' | \
303 ${SORT} -u | \ 285 ${SORT} -u | \
304 ${SED} -e "s,^/,${DESTDIR}/," -e "s/'/'\\\\''/g" -e "s/.*/'&'/" | \ 286 ${SED} -e "s,^/,${DESTDIR}/," -e "s/'/'\\\\''/g" -e "s/.*/'&'/" | \
305 ${XARGS} -n 256 ${LS} -ld 2>/dev/null | \ 287 ${XARGS} -n 256 ${LS} -ld 2>/dev/null | \
306 ${AWK} 'BEGIN { s = 0 } { s += $$5 } END { print s }' \ 288 ${AWK} 'BEGIN { s = 0 } { s += $$5 } END { print s }' \
307 > ${.TARGET} 289 > ${.TARGET}
308 290
309###################################################################### 291######################################################################
310### 292###
 293### +SIZE_ALL - Package size-of-dependencies file
 294###
 295### This is the total size of the dependencies that this package was
 296### built against and the package itself.
 297###
 298_SIZE_ALL_FILE= ${PKG_DB_TMPDIR}/+SIZE_ALL
 299_METADATA_TARGETS+= ${_SIZE_ALL_FILE}
 300
 301${_SIZE_ALL_FILE}: ${_RDEPENDS_FILE} ${_SIZE_PKG_FILE}
 302 ${RUN}${MKDIR} ${.TARGET:H}
 303 ${RUN} \
 304 { \
 305 ${CAT} ${_SIZE_PKG_FILE} && \
 306 ${_FULL_DEPENDS_CMD} | ${SORT} -u | \
 307 ${XARGS} -n 256 ${PKG_INFO} -qs; \
 308 } | \
 309 ${AWK} 'BEGIN { s = 0 } /^[0-9]+$$/ { s += $$1 } END { print s }' \
 310 > ${.TARGET}
 311
 312######################################################################
 313###
311### +CONTENTS - Package manifest file 314### +CONTENTS - Package manifest file
312### 315###
313### This file contains the list of files and checksums, along with 316### This file contains the list of files and checksums, along with
314### any special "@" commands, e.g. @dirrm. 317### any special "@" commands, e.g. @dirrm.
315### 318###
316_CONTENTS_FILE= ${PKG_DB_TMPDIR}/+CONTENTS 319_CONTENTS_FILE= ${PKG_DB_TMPDIR}/+CONTENTS
317_METADATA_TARGETS+= ${_CONTENTS_FILE} 320_METADATA_TARGETS+= ${_CONTENTS_FILE}
318 321
319_DEPENDS_PLIST= ${WRKDIR}/.PLIST_deps 322_DEPENDS_PLIST= ${WRKDIR}/.PLIST_deps
320 323
321${_DEPENDS_PLIST}: ${PLIST} 324${_DEPENDS_PLIST}: ${PLIST}
322 ${RUN} { \ 325 ${RUN} { \
323 ${ECHO} "@name ${PKGNAME}"; \ 326 ${ECHO} "@name ${PKGNAME}"; \
324 ${AWK} '$$1 == "full" { printf "@blddep %s\n@pkgdep %s\n", $$3, $$2; }' < ${_RDEPENDS_FILE}; \ 327 ${AWK} '$$1 == "full" { printf "@blddep %s\n@pkgdep %s\n", $$3, $$2; }' < ${_RDEPENDS_FILE}; \
325 ${AWK} '$$1 == "bootstrap" || $$1 == "build" { printf "@blddep %s\n", $$3; }' < ${_RDEPENDS_FILE}; \ 328 ${AWK} '$$1 == "bootstrap" || $$1 == "build" { printf "@blddep %s\n", $$3; }' < ${_RDEPENDS_FILE}; \
326 ${CAT} ${PLIST}; } > ${.TARGET} 329 ${CAT} ${PLIST}; } > ${.TARGET}
327 330
328_PKG_CREATE_ARGS+= -l -U 331_PKG_CREATE_ARGS+= -l -U
329_PKG_CREATE_ARGS+= -B ${_BUILD_INFO_FILE} 332_PKG_CREATE_ARGS+= -B ${_BUILD_INFO_FILE}
330_PKG_CREATE_ARGS+= -b ${_BUILD_VERSION_FILE} 333_PKG_CREATE_ARGS+= -b ${_BUILD_VERSION_FILE}
331_PKG_CREATE_ARGS+= -c ${_COMMENT_FILE} 334_PKG_CREATE_ARGS+= -c ${_COMMENT_FILE}
332_PKG_CREATE_ARGS+= ${_MESSAGE_FILE:D -D ${_MESSAGE_FILE}} 335_PKG_CREATE_ARGS+= ${_MESSAGE_FILE:D -D ${_MESSAGE_FILE}}
333_PKG_CREATE_ARGS+= -d ${_DESCR_FILE} 336_PKG_CREATE_ARGS+= -d ${_DESCR_FILE}
334_PKG_CREATE_ARGS+= -f ${_DEPENDS_PLIST} 337_PKG_CREATE_ARGS+= -f ${_DEPENDS_PLIST}
335_PKG_CREATE_ARGS+= ${PKG_PRESERVE:D -n ${_PRESERVE_FILE}} 338_PKG_CREATE_ARGS+= ${PKG_PRESERVE:D -n ${_PRESERVE_FILE}}
336_PKG_CREATE_ARGS+= -S ${_SIZE_ALL_FILE} 339_PKG_CREATE_ARGS+= -S ${_SIZE_ALL_FILE}
337_PKG_CREATE_ARGS+= -s ${_SIZE_PKG_FILE} 340_PKG_CREATE_ARGS+= -s ${_SIZE_PKG_FILE}
338_PKG_CREATE_ARGS+= ${CONFLICTS:D -C ${CONFLICTS:Q}} 341_PKG_CREATE_ARGS+= ${CONFLICTS:D -C ${CONFLICTS:Q}}
339_PKG_CREATE_ARGS+= ${INSTALL_FILE:D ${_INSTALL_ARG_cmd:sh}} 342_PKG_CREATE_ARGS+= ${INSTALL_FILE:D ${_INSTALL_ARG_cmd:sh}}
340_PKG_CREATE_ARGS+= ${DEINSTALL_FILE:D ${_DEINSTALL_ARG_cmd:sh}} 343_PKG_CREATE_ARGS+= ${DEINSTALL_FILE:D ${_DEINSTALL_ARG_cmd:sh}}
341 344
342_PKG_ARGS_INSTALL+= ${_PKG_CREATE_ARGS} 345_PKG_ARGS_INSTALL+= ${_PKG_CREATE_ARGS}
343.if ${_USE_DESTDIR} == "no" 346.if ${_USE_DESTDIR} == "no"
344_PKG_ARGS_INSTALL+= -p ${PREFIX} 347_PKG_ARGS_INSTALL+= -p ${PREFIX}
345.else 348.else
346_PKG_ARGS_INSTALL+= -I ${PREFIX} -p ${DESTDIR}${PREFIX} 349_PKG_ARGS_INSTALL+= -I ${PREFIX} -p ${DESTDIR}${PREFIX}
347.endif 350.endif
348 351
349_DEINSTALL_ARG_cmd= if ${TEST} -f ${DEINSTALL_FILE}; then \ 352_DEINSTALL_ARG_cmd= if ${TEST} -f ${DEINSTALL_FILE}; then \
350 ${ECHO} "-k "${DEINSTALL_FILE:Q}; \ 353 ${ECHO} "-k "${DEINSTALL_FILE:Q}; \
351 else \ 354 else \
352 ${ECHO}; \ 355 ${ECHO}; \
353 fi 356 fi
354_INSTALL_ARG_cmd= if ${TEST} -f ${INSTALL_FILE}; then \ 357_INSTALL_ARG_cmd= if ${TEST} -f ${INSTALL_FILE}; then \
355 ${ECHO} "-i "${INSTALL_FILE:Q}; \ 358 ${ECHO} "-i "${INSTALL_FILE:Q}; \
356 else \ 359 else \
357 ${ECHO}; \ 360 ${ECHO}; \
358 fi 361 fi
359 362
360_CONTENTS_TARGETS+= ${_BUILD_INFO_FILE} 363_CONTENTS_TARGETS+= ${_BUILD_INFO_FILE}
361_CONTENTS_TARGETS+= ${_BUILD_VERSION_FILE} 364_CONTENTS_TARGETS+= ${_BUILD_VERSION_FILE}
362_CONTENTS_TARGETS+= ${_COMMENT_FILE} 365_CONTENTS_TARGETS+= ${_COMMENT_FILE}
363_CONTENTS_TARGETS+= ${_DEPENDS_FILE} 366_CONTENTS_TARGETS+= ${_DEPENDS_FILE}
364_CONTENTS_TARGETS+= ${_DESCR_FILE} 367_CONTENTS_TARGETS+= ${_DESCR_FILE}
365_CONTENTS_TARGETS+= ${_MESSAGE_FILE} 368_CONTENTS_TARGETS+= ${_MESSAGE_FILE}
366_CONTENTS_TARGETS+= ${_DEPENDS_PLIST} 369_CONTENTS_TARGETS+= ${_DEPENDS_PLIST}
367_CONTENTS_TARGETS+= plist 370_CONTENTS_TARGETS+= plist
368_CONTENTS_TARGETS+= ${_PRESERVE_FILE} 371_CONTENTS_TARGETS+= ${_PRESERVE_FILE}
369_CONTENTS_TARGETS+= ${_SIZE_ALL_FILE} 372_CONTENTS_TARGETS+= ${_SIZE_ALL_FILE}
370_CONTENTS_TARGETS+= ${_SIZE_PKG_FILE} 373_CONTENTS_TARGETS+= ${_SIZE_PKG_FILE}
371 374
372${_CONTENTS_FILE}: ${_CONTENTS_TARGETS} 375${_CONTENTS_FILE}: ${_CONTENTS_TARGETS}
373 ${RUN}${MKDIR} ${.TARGET:H} 376 ${RUN}${MKDIR} ${.TARGET:H}
374 ${RUN}${PKG_CREATE} ${_PKG_ARGS_INSTALL} -O ${PKGFILE:T} > ${.TARGET} 377 ${RUN}${PKG_CREATE} ${_PKG_ARGS_INSTALL} -O ${PKGFILE:T} > ${.TARGET}
375 378
376###################################################################### 379######################################################################
377### _flavor-generate-metadata (PRIVATE) 380### _flavor-generate-metadata (PRIVATE)
378###################################################################### 381######################################################################
379### _flavor-generate-metadata is a convenience target for generating 382### _flavor-generate-metadata is a convenience target for generating
380### all of the pkgsrc binary package meta-data files. It populates 383### all of the pkgsrc binary package meta-data files. It populates
381### ${PKG_DB_TMPDIR} with the following files: 384### ${PKG_DB_TMPDIR} with the following files:
382### 385###
383### +BUILD_INFO 386### +BUILD_INFO
384### +BUILD_VERSION 387### +BUILD_VERSION
385### +COMMENT 388### +COMMENT
386### +CONTENTS 389### +CONTENTS
387### +DESC 390### +DESC
388### +DISPLAY 391### +DISPLAY
389### +PRESERVE 392### +PRESERVE
390### +SIZE_ALL 393### +SIZE_ALL
391### +SIZE_PKG 394### +SIZE_PKG
392### 395###
393### See the targets above for descriptions of each of those files. 396### See the targets above for descriptions of each of those files.
394### 397###
395.PHONY: _flavor-generate-metadata 398.PHONY: _flavor-generate-metadata
396_flavor-generate-metadata: ${_METADATA_TARGETS} 399_flavor-generate-metadata: ${_METADATA_TARGETS}
397 400
398###################################################################### 401######################################################################
399### _flavor-clean-metadata (PRIVATE) 402### _flavor-clean-metadata (PRIVATE)
400###################################################################### 403######################################################################
401### _flavor-clean-metadata is a convenience target for removing the 404### _flavor-clean-metadata is a convenience target for removing the
402### package meta-data files. This is essentially the reverse action 405### package meta-data files. This is essentially the reverse action
403### of _flavor-generate-metadata. 406### of _flavor-generate-metadata.
404### 407###
405.PHONY: _flavor-clean-metadata 408.PHONY: _flavor-clean-metadata
406_flavor-clean-metadata: 409_flavor-clean-metadata:
407 ${RUN}${RM} -f ${_METADATA_TARGETS} 410 ${RUN}${RM} -f ${_METADATA_TARGETS}