Page MenuHomeFreeBSD

D16457.1777962509.diff
No OneTemporary

Size
22 KB
Referenced Files
None
Subscribers
None

D16457.1777962509.diff

Index: Mk/Scripts/functions.sh
===================================================================
--- Mk/Scripts/functions.sh
+++ Mk/Scripts/functions.sh
@@ -53,9 +53,11 @@
fi
# Strip (owner,group,perm) from keywords
+ # Also strip subpackage marker.
line="$(printf %s "$line" \
| sed -Ee 's/^@\([^)]*\)[[:space:]]+//' \
- -e 's/^(@[[:alpha:]]+)\([^)]*\)[[:space:]]+/\1 /')"
+ -e 's/^(@[[:alpha:]]+)\([^)]*\)[[:space:]]+/\1 /' \
+ -e 's/^@@[[:alnum:]]+@@//')"
case $line in
@dir*|'@unexec rmdir'*|'@unexec /bin/rmdir'*)
line="$(printf %s "$line" \
Index: Mk/bsd.port.mk
===================================================================
--- Mk/bsd.port.mk
+++ Mk/bsd.port.mk
@@ -527,7 +527,7 @@
# - Similiar to INSTALL_PROGRAM and INSTALL_DATA commands but
# working on whole trees of directories, takes 3 arguments,
# last one is find(1) arguments and optional.
-# Example use:
+# Example use:
# cd ${WRKSRC}/doc && ${COPYTREE_SHARE} . ${DOCSDIR} "! -name *\.bak"
#
# Installs all directories and files from ${WRKSRC}/doc
@@ -2219,6 +2219,7 @@
_PKGMESSAGES+= ${PKGMESSAGE}
TMPPLIST?= ${WRKDIR}/.PLIST.mktmp
+_PLIST?= ${WRKDIR}/.PLIST
.if defined(PKG_NOCOMPRESS)
PKG_SUFX?= .tar
@@ -2608,20 +2609,61 @@
PKGREPOSITORYSUBDIR?= All
PKGREPOSITORY?= ${PACKAGES}/${PKGREPOSITORYSUBDIR}
-.if exists(${PACKAGES})
-PACKAGES:= ${PACKAGES:S/:/\:/g}
-_HAVE_PACKAGES= yes
-PKGFILE?= ${PKGREPOSITORY}/${PKGNAME}${PKG_SUFX}
-.else
-PKGFILE?= ${.CURDIR}/${PKGNAME}${PKG_SUFX}
-.endif
-WRKDIR_PKGFILE= ${WRKDIR}/pkg/${PKGNAME}${PKG_SUFX}
# The "latest version" link -- ${PKGNAME} minus everthing after the last '-'
PKGLATESTREPOSITORY?= ${PACKAGES}/Latest
PKGBASE?= ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}
PKGLATESTFILE= ${PKGLATESTREPOSITORY}/${PKGBASE}${PKG_SUFX}
+_PKGS= ${PKGBASE}
+.for p in ${SUBPACKAGES}
+_PKGS+= ${PKGBASE}-${p}
+.endfor
+
+.if !empty(SUBPACKAGES) && !defined(_DID_SUBPACKAGES_HELPERS)
+_DID_SUBPACKAGES_HELPERS= yes
+_SUBPACKAGE_HELPERS_FILE= DESCR PKGINSTALL PKGDEINSTALL PKGMESSAGE \
+ PKGPREINSTALL PKGPOSTINSTALL PKGPREDEINSTALL PKGPOSTDEINSTALL \
+ PKGPREUPGRADE PKGPOSTUPGRADE PKGUPGRADE
+
+. for v in ${_SUBPACKAGE_HELPERS_FILE}
+${v}.${PKGBASE}= ${$v}
+. endfor
+COMMENT.${PKGBASE}= ${COMMENT}
+
+. for p in ${SUBPACKAGES}
+# These overwrite the current value
+. for v in ${_SUBPACKAGE_HELPERS_FILE}
+${v}.${PKGBASE}-${p}?= ${$v}.$p
+. endfor
+_PKGMESSAGES.${p}= ${PKGMESSAGE}.${p}
+# XXX: for testing, and maybe kept afterwards
+. if !exists(${DESCR.${PKGBASE}-${p}})
+DESCR.${PKGBASE}-${p}= ${DESCR}
+. endif
+# XXX: Thoughts?
+COMMENT.${PKGBASE}-${p}?= ${COMMENT} (subpkg: ${p})
+. endfor
+.endif
+
+
+.if exists(${PACKAGES})
+-PACKAGES:= ${PACKAGES:S/:/\:/g}
+_HAVE_PACKAGES= yes
+_PKGDIR= ${PKGREPOSITORY}
+.else
+_PKGDIR= ${.CURDIR}
+.endif
+. for p in ${_PKGS}
+${p}_PKGFILE= ${_PKGDIR}/${p}-${PKGVERSION}${PKG_SUFX}
+# FIXME: This should go away at one point
+PKGFILE?= ${${p}_PKGFILE}
+. endfor
+_EXTRA_PACKAGE_TARGET_DEP+= ${_PKGDIR}
+.for p in ${_PKGS}
+${p}_WRKDIR_PKGFILE= ${WRKDIR}/pkg/${p}-${PKGVERSION}${PKG_SUFX}
+.endfor
+
CONFIGURE_SCRIPT?= configure
CONFIGURE_CMD?= ./${CONFIGURE_SCRIPT}
CONFIGURE_TARGET?= ${HOSTARCH}-portbld-${OPSYS:tl}${OSREL}
@@ -3333,7 +3375,7 @@
.if !target(check-install-conflicts)
check-install-conflicts:
-.if ( defined(CONFLICTS) || defined(CONFLICTS_INSTALL) || ( defined(CONFLICTS_BUILD) && defined(DEFER_CONFLICTS_CHECK) ) ) && !defined(DISABLE_CONFLICTS)
+.if ( defined(CONFLICTS) || defined(CONFLICTS_INSTALL) || ( defined(CONFLICTS_BUILD) && defined(DEFER_CONFLICTS_CHECK) ) ) && !defined(DISABLE_CONFLICTS)
.if defined(DEFER_CONFLICTS_CHECK)
@conflicts_with=$$( \
{ ${PKG_QUERY} -g "%n-%v %p %o" ${CONFLICTS:C/.+/'&'/} ${CONFLICTS_BUILD:C/.+/'&'/} ${CONFLICTS_INSTALL:C/.+/'&'/} 2>/dev/null || : ; } \
@@ -3402,10 +3444,6 @@
_EXTRA_PACKAGE_TARGET_DEP+= ${PKGFILE}
_PORTS_DIRECTORIES+= ${PKGREPOSITORY}
-${PKGFILE}: ${WRKDIR_PKGFILE} ${PKGREPOSITORY}
- @${LN} -f ${WRKDIR_PKGFILE} ${PKGFILE} 2>/dev/null \
- || ${CP} -f ${WRKDIR_PKGFILE} ${PKGFILE}
-
. if ${PKGORIGIN} == "ports-mgmt/pkg" || ${PKGORIGIN} == "ports-mgmt/pkg-devel"
_EXTRA_PACKAGE_TARGET_DEP+= ${PKGLATESTREPOSITORY}
_PORTS_DIRECTORIES+= ${PKGLATESTREPOSITORY}
@@ -3417,16 +3455,29 @@
.endif
-# from here this will become a loop for subpackages
-${WRKDIR_PKGFILE}: ${TMPPLIST} create-manifest ${WRKDIR}/pkg
- @if ! ${SETENV} ${PKG_ENV} FORCE_POST="${_FORCE_POST_PATTERNS}" ${PKG_CREATE} ${PKG_CREATE_ARGS} -m ${METADIR} -p ${TMPPLIST} -f ${PKG_SUFX:S/.//} -o ${WRKDIR}/pkg ${PKGNAME}; then \
+.for p in ${_PKGS}
+${_PLIST}.${p}: ${TMPPLIST}
+ @if [ "${PKGBASE}" = "${.TARGET:T:S/.PLIST.//}" ]; then \
+ ${GREP} -Fv -e"@comment " -e"@@" ${TMPPLIST} > ${.TARGET} ; \
+ else \
+ ${SED} -n "s/@@${.TARGET:T:S/.PLIST.${PKGBASE}-//}@@//p" ${TMPPLIST} > ${.TARGET} ; \
+ fi
+
+${${p}_WRKDIR_PKGFILE}: ${_PLIST}.${p} create-manifest.${p} ${WRKDIR}/pkg
+ @echo "===> Building ${p}-${PKGVERSION}"
+ @if ! ${SETENV} ${PKG_ENV} FORCE_POST="${_FORCE_POST_PATTERNS}" ${PKG_CREATE} ${PKG_CREATE_ARGS} -m ${METADIR}.${p} -p ${_PLIST}.${p} -f ${PKG_SUFX:S/.//} -o ${WRKDIR}/pkg ${PKGNAME}; then \
cd ${.CURDIR} && eval ${MAKE} delete-package >/dev/null; \
exit 1; \
fi
- #
-# Temporary will be later dynamically added per subpackages
-_EXTRA_PACKAGE_TARGET_DEP+= ${WRKDIR_PKGFILE}
-# This will be the end of the loop
+
+_EXTRA_PACKAGE_TARGET_DEP+= ${${p}_WRKDIR_PKGFILE}
+
+${${p}_PKGFILE}: ${${p}_WRKDIR_PKGFILE}
+ @${LN} -f ${${p}_WRKDIR_PKGFILE} ${${p}_PKGFILE} 2>/dev/null \
+ || ${CP} -f ${${p}_WRKDIR_PKGFILE} ${${p}_PKGFILE}
+
+_EXTRA_PACKAGE_TARGET_DEP+= ${${p}_PKGFILE}
+.endfor
.if !target(do-package)
PKG_CREATE_ARGS= -r ${STAGEDIR}
@@ -3438,14 +3489,18 @@
.if !target(delete-package)
delete-package:
- @${ECHO_MSG} "===> Deleting package for ${PKGNAME}"
+. for p in ${_PKGS}
+ @${ECHO_MSG} "===> Deleting package for ${p}"
# When staging, the package may only be in the workdir if not root
- @${RM} ${PKGFILE} ${WRKDIR_PKGFILE} 2>/dev/null || :
+ @${RM} ${${p}_PKGFILE} ${${p}_WRKDIR_PKGFILE} 2>/dev/null || :
+. endfor
.endif
.if !target(delete-package-list)
delete-package-list:
- @${ECHO_CMD} "[ -f ${PKGFILE} ] && (${ECHO_CMD} deleting ${PKGFILE}; ${RM} ${PKGFILE})"
+. for p in ${_PKGS}
+ @${ECHO_CMD} "[ -f ${${p}_PKGFILE} ] && (${ECHO_CMD} deleting ${${p}_PKGFILE}; ${RM} ${${p}_PKGFILE})"
+. endfor
.endif
# Used by scripts and users to install a package from local repository.
@@ -3457,13 +3512,16 @@
.if defined(INSTALLS_DEPENDS)
_INSTALL_PKG_ARGS+= -A
.endif
-install-package:
- @if [ -f "${WRKDIR}/pkg/${PKGNAME}${PKG_SUFX}" ]; then \
- _pkgfile="${WRKDIR_PKGFILE}"; \
+.for p in ${_PKGS}
+install-package: install-package.${p}
+install-package.${p}:
+ @if [ -f "${${p}_WRKDIR_PKGFILE}" ]; then \
+ _pkgfile="${${p}_WRKDIR_PKGFILE}"; \
else \
- _pkgfile="${PKGFILE}"; \
+ _pkgfile="${${p}_PKGFILE}"; \
fi; \
${PKG_ADD} ${_INSTALL_PKG_ARGS} $${_pkgfile}
+.endfor
.endif
@@ -3652,7 +3710,7 @@
test-message:
@${ECHO_MSG} "===> Testing for ${PKGNAME}"
package-message:
- @${ECHO_MSG} "===> Building package for ${PKGNAME}"
+ @${ECHO_MSG} "===> Building packages for ${PKGNAME}"
# Empty pre-* and post-* targets
@@ -3723,14 +3781,16 @@
${SU_CMD} "${MAKE} ${.TARGET}"
@${ECHO_MSG} "===> Returning to user credentials"
.else
- @${ECHO_MSG} "===> Deinstalling for ${PKGBASE}"
- @if ${PKG_INFO} -e ${PKGBASE}; then \
- p=`${PKG_INFO} -q -O ${PKGBASE}`; \
+.for _p in ${_PKGS}
+ @${ECHO_MSG} "===> Deinstalling for ${_p}"
+ @if ${PKG_INFO} -e ${_p}; then \
+ p=`${PKG_INFO} -q -O ${_p}`; \
${ECHO_MSG} "===> Deinstalling $${p}"; \
- ${PKG_DELETE} -f ${PKGBASE} ; \
+ ${PKG_DELETE} -f ${_p} ; \
else \
- ${ECHO_MSG} "===> ${PKGBASE} not installed, skipping"; \
+ ${ECHO_MSG} "===> ${_p} not installed, skipping"; \
fi
+.endfor
@${RM} ${INSTALL_COOKIE} ${PACKAGE_COOKIE}
.endif
.endif
@@ -3978,7 +4038,7 @@
repackage: pre-repackage package
pre-repackage:
- @${RM} ${PACKAGE_COOKIE}
+ @${RM} ${PACKAGE_COOKIE} ${TMPPLIST}*
.endif
# Build a package but don't check the cookie for installation, also don't
@@ -3996,10 +4056,14 @@
depends: pkg-depends extract-depends patch-depends lib-depends fetch-depends build-depends run-depends
.for deptype in PKG EXTRACT PATCH FETCH BUILD LIB RUN TEST
+${deptype}_DEPENDS_ALL= ${${deptype}_DEPENDS}
+.for p in ${SUBPACKAGES}
+${deptype}_DEPENDS_ALL+= ${${deptype}_DEPENDS_${p}}
+.endfor
${deptype:tl}-depends:
-.if defined(${deptype}_DEPENDS) && !defined(NO_DEPENDS)
+.if !empty(${deptype}_DEPENDS_ALL) && !defined(NO_DEPENDS)
@${SETENV} \
- dp_RAWDEPENDS="${${deptype}_DEPENDS}" \
+ dp_RAWDEPENDS="${${deptype}_DEPENDS_ALL}" \
dp_DEPTYPE="${deptype}_DEPENDS" \
dp_DEPENDS_TARGET="${DEPENDS_TARGET}" \
dp_DEPENDS_PRECLEAN="${DEPENDS_PRECLEAN}" \
@@ -4027,7 +4091,7 @@
# Dependency lists: both build and runtime, recursive. Print out directory names.
-_UNIFIED_DEPENDS=${PKG_DEPENDS} ${EXTRACT_DEPENDS} ${PATCH_DEPENDS} ${FETCH_DEPENDS} ${BUILD_DEPENDS} ${LIB_DEPENDS} ${RUN_DEPENDS} ${TEST_DEPENDS}
+_UNIFIED_DEPENDS=${PKG_DEPENDS_ALL} ${EXTRACT_DEPENDS_ALL} ${PATCH_DEPENDS_ALL} ${FETCH_DEPENDS_ALL} ${BUILD_DEPENDS_ALL} ${LIB_DEPENDS_ALL} ${RUN_DEPENDS_ALL} ${TEST_DEPENDS_ALL}
_DEPEND_SPECIALS= ${_UNIFIED_DEPENDS:M*\:*\:*:C,^[^:]*:([^:]*):.*$,\1,}
.for d in ${_UNIFIED_DEPENDS:M*\:/*}
@@ -4077,10 +4141,10 @@
ALL-DEPENDS-LIST= ${DEPENDS-LIST} -r ${_UNIFIED_DEPENDS:Q}
ALL-DEPENDS-FLAVORS-LIST= ${DEPENDS-LIST} -f -r ${_UNIFIED_DEPENDS:Q}
MISSING-DEPENDS-LIST= ${DEPENDS-LIST} -m ${_UNIFIED_DEPENDS:Q}
-BUILD-DEPENDS-LIST= ${DEPENDS-LIST} "${PKG_DEPENDS} ${EXTRACT_DEPENDS} ${PATCH_DEPENDS} ${FETCH_DEPENDS} ${BUILD_DEPENDS} ${LIB_DEPENDS}"
-RUN-DEPENDS-LIST= ${DEPENDS-LIST} "${LIB_DEPENDS} ${RUN_DEPENDS}"
-TEST-DEPENDS-LIST= ${DEPENDS-LIST} ${TEST_DEPENDS:Q}
-CLEAN-DEPENDS-LIST= ${DEPENDS-LIST} -wr ${_UNIFIED_DEPENDS:Q}
+BUILD-DEPENDS-LIST= ${DEPENDS-LIST_ALL} "${PKG_DEPENDS_ALL} ${EXTRACT_DEPENDS_ALL} ${PATCH_DEPENDS_ALL} ${FETCH_DEPENDS_ALL} ${BUILD_DEPENDS_ALL} ${LIB_DEPENDS_ALL}"
+RUN-DEPENDS-LIST= ${DEPENDS-LIST_ALL} "${LIB_DEPENDS_ALL} ${RUN_DEPENDS_ALL}"
+TEST-DEPENDS-LIST= ${DEPENDS-LIST} ${TEST_DEPENDS_ALL:Q}
+CLEAN-DEPENDS-LIST= ${DEPENDS-LIST} -wr ${_UNIFIED_DEPENDS:Q}
CLEAN-DEPENDS-LIMITED-LIST= ${DEPENDS-LIST} -w ${_UNIFIED_DEPENDS:Q}
.if !target(clean-depends)
@@ -4168,7 +4232,7 @@
@${ECHO_MSG} "===> Fetching all required distfiles for ${PKGNAME} and dependencies"
.for deptype in PKG EXTRACT PATCH FETCH BUILD RUN
.if defined(${deptype}_DEPENDS)
- @targ=fetch; deps="${${deptype}_DEPENDS}"; ${FETCH_LIST}
+ @targ=fetch; deps="${${deptype}_DEPENDS_ALL}"; ${FETCH_LIST}
.endif
.endfor
.endif
@@ -4180,7 +4244,7 @@
.if !defined(NO_DEPENDS)
.for deptype in PKG EXTRACT PATCH FETCH BUILD RUN
.if defined(${deptype}_DEPENDS)
- @targ=fetch-list; deps="${${deptype}_DEPENDS}"; ${FETCH_LIST}
+ @targ=fetch-list; deps="${${deptype}_DEPENDS_ALL}"; ${FETCH_LIST}
.endif
.endfor
.endif
@@ -4219,7 +4283,7 @@
@${PACKAGE-DEPENDS-LIST}
.endif
-_LIB_RUN_DEPENDS= ${LIB_DEPENDS} ${RUN_DEPENDS}
+_LIB_RUN_DEPENDS= ${LIB_DEPENDS_ALL} ${RUN_DEPENDS_ALL}
PACKAGE-DEPENDS-LIST?= \
if [ "${CHILD_DEPENDS}" ]; then \
installed=$$(${PKG_INFO} -qO ${PKGORIGIN} 2>/dev/null || \
@@ -4273,49 +4337,63 @@
done ; \
${SETENV} PKG_BIN="${PKG_BIN}" ${SH} ${SCRIPTSDIR}/actual-package-depends.sh $${depfiles} ${RUN_DEPENDS:C/(.*)\:.*/"\1"/}
+ACTUAL-PACKAGE-DEPENDS.${PKGBASE}= ${ACTUAL-PACKAGE-DEPENDS}
+
+.for p in ${SUBPACKAGES}
+ACTUAL-PACKAGE-DEPENDS.${PKGBASE}-${p}?= \
+ depfiles="" ; \
+ for lib in ${LIB_DEPENDS_${p}:C/\:.*//}; do \
+ depfiles="$$depfiles `${SETENV} LIB_DIRS="${LIB_DIRS}" LOCALBASE="${LOCALBASE}" ${SH} ${SCRIPTSDIR}/find-lib.sh $${lib}`" ; \
+ done ; \
+ ${SETENV} PKG_BIN="${PKG_BIN}" ${SH} ${SCRIPTSDIR}/actual-package-depends.sh $${depfiles} ${RUN_DEPENDS_${p}:C/(.*)\:.*/"\1"/}
+.endfor
+
PKG_NOTES_ENV?=
.for note in ${PKG_NOTES}
PKG_NOTES_ENV+= dp_PKG_NOTE_${note}=${PKG_NOTE_${note}:Q}
.endfor
-create-manifest:
+.for p in ${_PKGS}
+create-manifest: create-manifest.${p}
+create-manifest.${p}:
@${SETENV} \
- dp_SCRIPTSDIR='${SCRIPTSDIR}' \
- dp_ACTUAL_PACKAGE_DEPENDS='${ACTUAL-PACKAGE-DEPENDS}' \
- dp_CATEGORIES='${CATEGORIES:u:S/$/,/}' \
- dp_COMMENT=${COMMENT:Q} \
- dp_COMPLETE_OPTIONS_LIST='${COMPLETE_OPTIONS_LIST}' \
- dp_DEPRECATED=${DEPRECATED:Q} \
- dp_DESCR='${DESCR}' \
- dp_EXPIRATION_DATE='${EXPIRATION_DATE}' \
- dp_GROUPS='${GROUPS:u:S/$/,/}' \
- dp_LICENSE='${LICENSE:u:S/$/,/}' \
- dp_LICENSE_COMB='${LICENSE_COMB}' \
- dp_MAINTAINER='${MAINTAINER}' \
- dp_METADIR='${METADIR}' \
- dp_NO_ARCH='${NO_ARCH}' \
- dp_PKGBASE='${PKGBASE}' \
- dp_PKGDEINSTALL='${PKGDEINSTALL}' \
- dp_PKGINSTALL='${PKGINSTALL}' \
- dp_PKGMESSAGES='${_PKGMESSAGES}' \
- dp_PKGORIGIN='${PKGORIGIN}' \
- dp_PKGPOSTDEINSTALL='${PKGPOSTDEINSTALL}' \
- dp_PKGPOSTINSTALL='${PKGPOSTINSTALL}' \
- dp_PKGPOSTUPGRADE='${PKGPOSTUPGRADE}' \
- dp_PKGPREDEINSTALL='${PKGPREDEINSTALL}' \
- dp_PKGPREINSTALL='${PKGPREINSTALL}' \
- dp_PKGPREUPGRADE='${PKGPREUPGRADE}' \
- dp_PKGUPGRADE='${PKGUPGRADE}' \
- dp_PKGVERSION='${PKGVERSION}' \
- dp_PKG_BIN='${PKG_BIN}' \
- dp_PKG_IGNORE_DEPENDS='${PKG_IGNORE_DEPENDS}' \
- dp_PKG_NOTES='${PKG_NOTES}' \
- dp_PORT_OPTIONS='${PORT_OPTIONS}' \
- dp_PREFIX='${PREFIX}' \
- dp_USERS='${USERS:u:S/$/,/}' \
- dp_WWW='${WWW}' \
- ${PKG_NOTES_ENV} \
+ dp_SCRIPTSDIR='${SCRIPTSDIR}' \
+ dp_ACTUAL_PACKAGE_DEPENDS='${ACTUAL-PACKAGE-DEPENDS.${p}}' \
+ dp_CATEGORIES='${CATEGORIES:u:S/$/,/}' \
+ dp_COMMENT=${COMMENT.${p}:Q} \
+ dp_COMPLETE_OPTIONS_LIST='${COMPLETE_OPTIONS_LIST}' \
+ dp_DEPRECATED=${DEPRECATED:Q} \
+ dp_DESCR='${DESCR.${p}}' \
+ dp_EXPIRATION_DATE='${EXPIRATION_DATE}' \
+ dp_GROUPS='${GROUPS:u:S/$/,/}' \
+ dp_LICENSE='${LICENSE:u:S/$/,/}' \
+ dp_LICENSE_COMB='${LICENSE_COMB}' \
+ dp_MAINTAINER='${MAINTAINER}' \
+ dp_METADIR='${METADIR}.${p}' \
+ dp_NO_ARCH='${NO_ARCH}' \
+ dp_PKGBASE='${p}' \
+ dp_PKGDEINSTALL='${PKGDEINSTALL.${p}}' \
+ dp_PKGINSTALL='${PKGINSTALL.${p}}' \
+ dp_PKGMESSAGES='${_PKGMESSAGES.${p}}' \
+ dp_PKGORIGIN='${PKGORIGIN}' \
+ dp_PKGPOSTDEINSTALL='${PKGPOSTDEINSTALL.${p}}' \
+ dp_PKGPOSTINSTALL='${PKGPOSTINSTALL.${p}}' \
+ dp_PKGPOSTUPGRADE='${PKGPOSTUPGRADE.${p}}' \
+ dp_PKGPREDEINSTALL='${PKGPREDEINSTALL.${p}}' \
+ dp_PKGPREINSTALL='${PKGPREINSTALL.${p}}' \
+ dp_PKGPREUPGRADE='${PKGPREUPGRADE.${p}}' \
+ dp_PKGUPGRADE='${PKGUPGRADE.${p}}' \
+ dp_PKGVERSION='${PKGVERSION}' \
+ dp_PKG_BIN='${PKG_BIN}' \
+ dp_PKG_IGNORE_DEPENDS='${PKG_IGNORE_DEPENDS}' \
+ dp_PKG_NOTES='${PKG_NOTES}' \
+ dp_PORT_OPTIONS='${PORT_OPTIONS}' \
+ dp_PREFIX='${PREFIX}' \
+ dp_USERS='${USERS:u:S/$/,/}' \
+ dp_WWW='${WWW}' \
+ ${PKG_NOTES_ENV} \
${SH} ${SCRIPTSDIR}/create-manifest.sh
+.endfor
# Print out package names.
@@ -4326,6 +4404,12 @@
actual-package-depends:
@${ACTUAL-PACKAGE-DEPENDS}
+.for p in ${SUBPACKAGES}
+actual-package-depends.${PKGBASE}-${p}:
+ @${ACTUAL-PACKAGE-DEPENDS.${PKGBASE}-${p}}
+.endfor
+
+
# Build packages for port and dependencies
package-recursive: package
@@ -4365,12 +4449,12 @@
# first to avoid gratuitous breakage.
. if !target(describe)
-_EXTRACT_DEPENDS=${EXTRACT_DEPENDS:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,}
-_PATCH_DEPENDS=${PATCH_DEPENDS:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,}
-_FETCH_DEPENDS=${FETCH_DEPENDS:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,}
-_LIB_DEPENDS=${LIB_DEPENDS:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,}
-_BUILD_DEPENDS=${BUILD_DEPENDS:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,} ${_LIB_DEPENDS}
-_RUN_DEPENDS=${RUN_DEPENDS:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,} ${_LIB_DEPENDS}
+_EXTRACT_DEPENDS=${EXTRACT_DEPENDS_ALL:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,}
+_PATCH_DEPENDS=${PATCH_DEPENDS_ALL:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,}
+_FETCH_DEPENDS=${FETCH_DEPENDS_ALL:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,}
+_LIB_DEPENDS=${LIB_DEPENDS_ALL:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,}
+_BUILD_DEPENDS=${BUILD_DEPENDS_ALL:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,} ${_LIB_DEPENDS}
+_RUN_DEPENDS=${RUN_DEPENDS_ALL:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,} ${_LIB_DEPENDS}
. if exists(${DESCR})
_DESCR=${DESCR}
. else
@@ -4703,20 +4787,20 @@
STAGE_ARGS= -i ${STAGEDIR}
.if !defined(NO_PKG_REGISTER)
-fake-pkg:
+. for p in ${_PKGS}
+fake-pkg: fake-pkg.${p}
+fake-pkg.${p}:
.if defined(INSTALLS_DEPENDS)
@${ECHO_MSG} "===> Registering installation for ${PKGNAME} as automatic"
+ @${SETENV} ${PKG_ENV} FORCE_POST="${_FORCE_POST_PATTERNS}" ${PKG_REGISTER} -d ${STAGE_ARGS} -m ${METADIR}.${p} -f ${_PLIST}.${p}
.else
@${ECHO_MSG} "===> Registering installation for ${PKGNAME}"
+ @${SETENV} ${PKG_ENV} FORCE_POST="${_FORCE_POST_PATTERNS}" ${PKG_REGISTER} ${STAGE_ARGS} -m ${METADIR}.${p} -f ${_PLIST}.${p}
.endif
-.if defined(INSTALLS_DEPENDS)
- @${SETENV} ${PKG_ENV} FORCE_POST="${_FORCE_POST_PATTERNS}" ${PKG_REGISTER} -d ${STAGE_ARGS} -m ${METADIR} -f ${TMPPLIST}
-.else
- @${SETENV} ${PKG_ENV} FORCE_POST="${_FORCE_POST_PATTERNS}" ${PKG_REGISTER} ${STAGE_ARGS} -m ${METADIR} -f ${TMPPLIST}
-.endif
- @${RM} -r ${METADIR}
-.endif
+ @${RM} -r ${METADIR.${p}}
+.endfor
.endif
+.endif # !target(fake-pkg)
# Depend is generally meaningless for arbitrary ports, but if someone wants
# one they can override this. This is just to catch people who've gotten into
Index: lang/perl5-devel/Makefile
===================================================================
--- lang/perl5-devel/Makefile
+++ lang/perl5-devel/Makefile
@@ -27,6 +27,8 @@
#DEPRECATED= Support end three years after .0 release, please upgrade to a more recent version of Perl
#EXPIRATION_DATE=<Release date of .0 + 3 years>
+SUBPACKAGES= gdbm
+
TEST_TARGET= test_harness
TEST_ENV= ${MAKE_ENV} TEST_JOBS=${MAKE_JOBS_NUMBER} \
LD_LIBRARY_PATH=${WRKSRC}
@@ -37,7 +39,7 @@
GH_PROJECT= perl5
GH_TAGNAME= v5.29.1-29-g3d50648cc4
-OPTIONS_DEFINE= DEBUG GDBM PERL_64BITINT MULTIPLICITY SITECUSTOMIZE \
+OPTIONS_DEFINE= DEBUG PERL_64BITINT MULTIPLICITY SITECUSTOMIZE \
THREADS PERL_MALLOC DTRACE DOT_INC
OPTIONS_DEFAULT= PERL_64BITINT THREADS MULTIPLICITY DTRACE
@@ -51,7 +53,6 @@
.endfor
EXCLUSIVE_DESC= Exclusive OPTIONS
-GDBM_DESC= GDBM_File extension
PERL_MALLOC_DESC= Use Perl malloc
PERL_64BITINT_DESC= Use 64 bit integers (on i386)
THREADS_DESC= Build threaded perl
@@ -64,9 +65,6 @@
DEBUG_CONFIGURE_OFF= -Doptimize="${CFLAGS}"
DTRACE_CONFIGURE_ON= -Dusedtrace
DTRACE_CONFIGURE_OFF= -Uusedtrace
-GDBM_CONFIGURE_ON= -Di_gdbm
-GDBM_CONFIGURE_OFF= -Ui_gdbm
-GDBM_LIB_DEPENDS= libgdbm.so:databases/gdbm
PERL_64BITINT_CONFIGURE_ON= -Duse64bitint
MULTIPLICITY_CONFIGURE_ON= -Dusemultiplicity=y
MULTIPLICITY_CONFIGURE_OFF= -Dusemultiplicity=n
@@ -126,6 +124,9 @@
-Alddlflags='-L${WRKSRC} -L${PREFIX}/${_ARCH_LIB}/CORE -lperl' \
-Dshrpldflags='$$(LDDLFLAGS:N-L${WRKSRC}:N-L${PREFIX}/${_ARCH_LIB}/CORE:N-lperl) -Wl,-soname,$$(LIBPERL)'
+CONFIGURE_ARGS+= -Di_gdbm
+LIB_DEPENDS_gdbm= libgdbm.so:databases/gdbm
+
# Give a hint of where libperl.so can be found.
USE_LDCONFIG= ${PREFIX}/${_ARCH_LIB}/CORE
Index: lang/perl5-devel/pkg-descr.gdbm
===================================================================
--- /dev/null
+++ lang/perl5-devel/pkg-descr.gdbm
@@ -0,0 +1,6 @@
+GDBM_File is a perl module which allows Perl programs to make use of the
+facilities provided by the GNU gdbm library. If you intend to use this
+module you should really have a copy of the gdbm manualpage at hand.
+
+Most of the libgdbm.a functions are available through the GDBM_File
+interface.
Index: lang/perl5-devel/pkg-plist
===================================================================
--- lang/perl5-devel/pkg-plist
+++ lang/perl5-devel/pkg-plist
@@ -833,7 +833,7 @@
%%ARCH_LIB%%/File/Spec/VMS.pm
%%ARCH_LIB%%/File/Spec/Win32.pm
%%ARCH_LIB%%/Filter/Util/Call.pm
-%%GDBM%%%%ARCH_LIB%%/GDBM_File.pm
+@@gdbm@@%%ARCH_LIB%%/GDBM_File.pm
%%ARCH_LIB%%/Hash/Util.pm
%%ARCH_LIB%%/Hash/Util/FieldHash.pm
%%ARCH_LIB%%/I18N/Langinfo.pm
@@ -905,7 +905,7 @@
%%ARCH_LIB%%/auto/File/DosGlob/DosGlob.so
%%ARCH_LIB%%/auto/File/Glob/Glob.so
%%ARCH_LIB%%/auto/Filter/Util/Call/Call.so
-%%GDBM%%%%ARCH_LIB%%/auto/GDBM_File/GDBM_File.so
+@@gdbm@@%%ARCH_LIB%%/auto/GDBM_File/GDBM_File.so
%%ARCH_LIB%%/auto/Hash/Util/FieldHash/FieldHash.so
%%ARCH_LIB%%/auto/Hash/Util/Util.so
%%ARCH_LIB%%/auto/I18N/Langinfo/Langinfo.so
@@ -1366,7 +1366,7 @@
%%MAN3%%/Filter::Simple.3.gz
%%MAN3%%/Filter::Util::Call.3.gz
%%MAN3%%/FindBin.3.gz
-%%GDBM%%%%MAN3%%/GDBM_File.3.gz
+@@gdbm@@%%MAN3%%/GDBM_File.3.gz
%%MAN3%%/Getopt::Long.3.gz
%%MAN3%%/Getopt::Std.3.gz
%%MAN3%%/HTTP::Tiny.3.gz

File Metadata

Mime Type
text/plain
Expires
Tue, May 5, 6:28 AM (9 h, 44 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28559770
Default Alt Text
D16457.1777962509.diff (22 KB)

Event Timeline