pkgsrc-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[pkgsrc/trunk]: pkgsrc/mk/bulk Changes for separation of BULKFILESDIR and PKG...
details: https://anonhg.NetBSD.org/pkgsrc/rev/666da2736517
branches: trunk
changeset: 503248:666da2736517
user: rillig <rillig%pkgsrc.org@localhost>
date: Wed Nov 16 22:58:59 2005 +0000
description:
Changes for separation of BULKFILESDIR and PKGSRCDIR.
- Added a bunch of internal variables that determine the correct places
for the build log files of the current package.
- Added section headings.
- Moved a sanity check out of the configuration section to not confuse
the reader.
- mk/bulk/print{depends,index} are called with two arguments, which allows
separation of BULKFILESDIR and PKGSRCDIR.
- Replaced uses of BUILDLOG, BROKENFILE and BROKENWRKLOG with their
internal counterparts, which use ${BULKFILESDIR} instead of ${PKGSRCDIR}.
diffstat:
mk/bulk/bsd.bulk-pkg.mk | 79 ++++++++++++++++++++++++++++++++----------------
1 files changed, 53 insertions(+), 26 deletions(-)
diffs (191 lines):
diff -r 27a90d5d9d60 -r 666da2736517 mk/bulk/bsd.bulk-pkg.mk
--- a/mk/bulk/bsd.bulk-pkg.mk Wed Nov 16 22:57:43 2005 +0000
+++ b/mk/bulk/bsd.bulk-pkg.mk Wed Nov 16 22:58:59 2005 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: bsd.bulk-pkg.mk,v 1.98 2005/11/12 16:44:20 kristerw Exp $
+# $NetBSD: bsd.bulk-pkg.mk,v 1.99 2005/11/16 22:58:59 rillig Exp $
#
# Copyright (c) 1999, 2000 Hubert Feyrer <hubertf%NetBSD.org@localhost>
@@ -93,9 +93,6 @@
# This file is human-created to force a package to show up as broken
# (it is never cleaned by the bulk build, and contains the broken reason)
FORCEBROKENFILE?= .forcebroken
-.if exists(${PKGDIR}/${FORCEBROKENFILE})
-PKG_FAIL_REASON+= "${PKGNAME} is marked as broken by the bulk build administrator: `cat ${PKGDIR}/${FORCEBROKENFILE}`"
-.endif
# This file is where the log of the build goes
BUILDLOG?= .make${BULK_ID}
@@ -173,6 +170,34 @@
# literally. So, turn it into foo\/bar\.baz\+\+
_ESCPKGPATH= ${PKGPATH:C@\/@\\/@g:C@\+@\\+@g:C@\.@\\.@g:Q}
+# The directory where package-specific log files are saved.
+_BULK_PKGLOGDIR= ${BULKFILESDIR}/${PKGPATH}
+
+# Package-specific log files.
+_BROKENFILE= ${_BULK_PKGLOGDIR}/${BROKENFILE}
+_BROKENWRKLOG= ${_BULK_PKGLOGDIR}/${BROKENWRKLOG}
+_BUILDLOG= ${_BULK_PKGLOGDIR}/${BUILDLOG}
+_FORCEBROKENFILE= ${_BULK_PKGLOGDIR}/${FORCEBROKENFILE}
+
+# Only create directories if ${PKGSRCDIR} != ${BULKFILESDIR}
+.if ${PKGSRCDIR} != ${BULKFILESDIR}
+_BULK_MKDIR= ${MKDIR}
+.else
+_BULK_MKDIR= ${DO_NADA}
+.endif
+
+#
+# Sanity checks
+#
+
+.if exists(${_FORCEBROKENFILE:Q})
+PKG_FAIL_REASON+= "${PKGNAME} is marked as broken by the bulk build administrator: `cat ${_FORCEBROKENFILE:Q:Q}`"
+.endif
+
+#
+# Make targets
+#
+
# build the cache files used as part of a full bulk build
# Note: we have to install the BULK_PREREQ packages _before_
# extracting the depends tree because some packages like
@@ -188,10 +213,10 @@
@${ECHO} "This file is unused for a full pkgsrc bulk build" >> ${BULK_DBFILE}
@${ECHO} "It is only used for a SPECIFIC_PKGS bulk build" >> ${BULK_DBFILE}
@${BULK_MSG} "Building complete pkgsrc dependency tree (this may take a while)."
- cd ${PKGSRCDIR} && ${SETENV} BMAKE=${MAKE} ${SH} mk/bulk/printdepends ${BROKENFILE} > ${DEPENDSTREEFILE}
+ cd ${PKGSRCDIR} && ${SETENV} BMAKE=${MAKE} ${SH} mk/bulk/printdepends ${BROKENFILE:Q} ${BULKFILESDIR:Q} > ${DEPENDSTREEFILE:Q}
@${BULK_MSG} "Generating package name <=> package directory cross reference file"
@${BULK_MSG_CONT} "(this may take a while)."
- cd ${PKGSRCDIR} && ${SETENV} BMAKE=${MAKE} ${SH} mk/bulk/printindex ${BROKENFILE} > ${INDEXFILE}
+ cd ${PKGSRCDIR} && ${SETENV} BMAKE=${MAKE} ${SH} mk/bulk/printindex ${BROKENFILE:Q} ${BULKFILESDIR:Q} > ${INDEXFILE:Q}
.else
@${BULK_MSG} "Extracting database for SPECIFIC_PKGS subset of pkgsrc"
@${BULK_MSG_CONT} "along with their dependencies"
@@ -277,9 +302,10 @@
# rebuild binpkg if any of the pkg files is newer than the binary archive
# set DO to ":" to not actually do anything (debugging, ...)
bulk-package:
- @if [ -f ${BROKENFILE} ]; then \
+ @${_BULK_MKDIR} ${_BULK_PKGLOGDIR:Q}
+ @if [ -f ${_BROKENFILE:Q} ]; then \
${BULK_MSG} "*** Package ${PKGNAME} seems broken and needs attention:" ; \
- ${LS} -la ${BROKENFILE}; \
+ ${LS} -la ${_BROKENFILE:Q}; \
exit 1; \
fi
@( \
@@ -292,7 +318,7 @@
${ECHO_MSG} '### Current pkg count: ' `${LS} -l ${PKG_DBDIR} | ${GREP} '^d' | ${WC} -l` installed packages: `${LS} ${PKG_DBDIR} | ${GREP} -v pkgdb.byfile.db`; \
${ECHO_MSG} '###' ; \
fi \
- ) 2>&1 | ${TEE} -a ${BUILDLOG}
+ ) 2>&1 | ${TEE} -a ${_BUILDLOG:Q}
@uptodate=`${MAKE} ${MAKEFLAGS} bulk-check-uptodate REF=${PKGFILE}` ; \
if ${PKG_INFO} -qe ${PKGWILDCARD:Q} ; then \
installed=1; \
@@ -305,7 +331,7 @@
else \
${BULK_MSG} "Nothing to be done." ; \
fi \
- ) 2>&1 | ${TEE} -a ${BUILDLOG}; \
+ ) 2>&1 | ${TEE} -a ${_BUILDLOG:Q}; \
else \
( if [ $$installed = 1 ]; then \
${BULK_MSG} "Removing outdated (installed) package ${PKGNAME} first." ; \
@@ -394,20 +420,20 @@
fi ;\
${ECHO_MSG} ${MAKE} package '(${PKGNAME})' 2>&1 ; \
${DO} ( ${MAKE} package 2>&1 ); \
- ) 2>&1 | ${TEE} -a ${BUILDLOG} ; \
+ ) 2>&1 | ${TEE} -a ${_BUILDLOG:Q} ; \
if [ -f ${PKGFILE} ]; then \
- ${RM} ${BUILDLOG} ; \
+ ${RM} ${_BUILDLOG:Q} ; \
else \
- ${MV} ${BUILDLOG} ${BROKENFILE} ;\
+ ${MV} ${_BUILDLOG:Q} ${_BROKENFILE:Q} ;\
if [ -f "${WRKLOG}" ]; then \
(${ECHO_MSG} "<pre>"; \
${ECHO_MSG} ""; \
${TO_HTML} ${WRKLOG}; \
${ECHO_MSG} "</pre>"; \
- ) >> ${BROKENWRKLOG}; \
+ ) >> ${_BROKENWRKLOG:Q}; \
fi; \
( \
- if [ -f "${BROKENWRKLOG}" ]; then \
+ if [ -f "${_BROKENWRKLOG:Q}" ]; then \
${ECHO_MSG} "</pre>"; \
${ECHO_MSG} "<p>"; \
${ECHO_MSG} "Please view the <a href=\"../../${PKGPATH}/${BROKENWRKLOG}\">work log for ${PKGNAME}</a>"; \
@@ -416,7 +442,7 @@
${ECHO_MSG} ""; \
fi ; \
${BULK_MSG} "${PKGNAME} was marked as broken:" ; \
- ${LS} -la ${BROKENFILE} ; \
+ ${LS} -la ${_BROKENFILE:Q} ; \
${ECHO_MSG} ${MAKE} deinstall ; \
${DO} ${MAKE} deinstall ; \
nbrokenby=0;\
@@ -425,7 +451,8 @@
tmp=`${SED} -n -e "/^${_ESCPKGPATH} / s;^[^:]*:[ ]*;;p" ${SUPPORTSFILE}` ; \
if test -n "$$tmp" ; then \
for pkgdir in $$tmp ; do \
- pkg_brokenfile=${PKGSRCDIR:Q}"/$$pkgdir/"${BROKENFILE:Q}; \
+ pkg_brokendir=${BULKFILESDIR:Q}/"$$pkgdir"; \
+ pkg_brokenfile="$$pkg_brokendir"/${BROKENFILE:Q}; \
pkgname=`${AWK} '$$1 == "'"$$pkgdir"'" { print $$2; }' ${INDEXFILE}`; \
case $$pkgname in \
"") pkgname="unknown"; \
@@ -448,22 +475,23 @@
pkgerr="1"; \
fi; \
fi; \
+ ${_BULK_MKDIR} "$${pkg_brokendir}"; \
{ ${BULK_MSG} "$$pkgname ($$pkgdir) is broken because it depends upon ${PKGNAME} (${PKGPATH}) which is broken."; \
${ECHO} "Please view the <a href=\"../../${PKGPATH}/${BROKENFILE}\">build log for ${PKGNAME}</a>.<br />"; \
- } >> ${PKGSRCDIR}/$$pkgdir/${BROKENFILE}; \
+ } >> "$${pkg_brokenfile}"; \
nbrokenby=`expr $$nbrokenby + 1`;\
- if ${GREP} -q " $$pkgdir/${BROKENFILE}" ${PKGSRCDIR}/${BROKENFILE} ; then :; else \
- ${ECHO} " $$pkgerr $$pkgdir/${BROKENFILE} 0 " >> ${PKGSRCDIR}/${BROKENFILE} ;\
+ if ${GREP} -q " $$pkgdir/${BROKENFILE}" ${BULKFILESDIR:Q}/${BROKENFILE:Q} ; then :; else \
+ ${ECHO} " $$pkgerr $$pkgdir/${BROKENFILE} 0 " >> ${BULKFILESDIR:Q}/${BROKENFILE:Q} ;\
fi ;\
done ;\
fi ;\
fi ;\
- nerrors=`${GREP} -c '^\*\*\* Error code' ${BROKENFILE} || true`; \
+ nerrors=`${GREP} -c '^\*\*\* Error code' ${_BROKENFILE:Q} || true`; \
if [ -f ${_INTERACTIVE_COOKIE} ]; then \
nerrors="0"; \
fi; \
- ${ECHO_MSG} " $$nerrors ${PKGPATH}/${BROKENFILE} $$nbrokenby " >> ${PKGSRCDIR}/${BROKENFILE} \
- ) 2>&1 | ${TEE} -a ${BROKENFILE}; \
+ ${ECHO_MSG} " $$nerrors ${PKGPATH}/${BROKENFILE} $$nbrokenby " >> ${BULKFILESDIR}/${BROKENFILE} \
+ ) 2>&1 | ${TEE} -a ${_BROKENFILE:Q}; \
fi ; \
case ${_PRESERVE_WRKDIR} in \
yes|YES) ;; \
@@ -471,10 +499,10 @@
esac; \
fi
@if [ ! -f ${PKGFILE} ]; then \
- ${BULK_MSG} "Build for ${PKGNAME} was not successful, aborting." | ${TEE} -a ${BROKENFILE} ; \
+ ${BULK_MSG} "Build for ${PKGNAME} was not successful, aborting." | ${TEE} -a ${_BROKENFILE:Q} ; \
false; \
else \
- ${RM} -f ${BUILDLOG} ;\
+ ${RM} -f ${_BUILDLOG:Q} ;\
fi
# Install pkg - if possible from binary pkg (i.e. available & up-to-date)
@@ -492,4 +520,3 @@
${ECHO_MSG} ${MAKE} bulk-package PRECLEAN=no; \
${DO} ${MAKE} bulk-package PRECLEAN=no; \
fi
-
Home |
Main Index |
Thread Index |
Old Index