Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F105982170
D16457.id.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
33 KB
Referenced Files
None
Subscribers
None
D16457.id.diff
View Options
Index: Mk/Scripts/do-depends.sh
===================================================================
--- Mk/Scripts/do-depends.sh
+++ Mk/Scripts/do-depends.sh
@@ -141,6 +141,11 @@
export FLAVOR="${origin##*@}"
origin=${origin%@*}
;;
+ *~*/*) ;; # Ignore ~ in the path which would not be a subpackage
+ *~*)
+ subpkg=${origin##*~}
+ origin=${origin%~*}
+ ;;
esac
depends_args="${dp_DEPENDS_ARGS}"
Index: Mk/Scripts/functions.sh
===================================================================
--- Mk/Scripts/functions.sh
+++ Mk/Scripts/functions.sh
@@ -7,7 +7,8 @@
# Strip (owner,group,perm) from keywords
_strip_perms() {
sed -Ee 's/^@\([^)]*\)[[:space:]]+//' \
- -e 's/^(@[[:alpha:]]+)\([^)]*\)[[:space:]]+/\1 /'
+ -e 's/^(@[[:alpha:]]+)\([^)]*\)[[:space:]]+/\1 /' \
+ -e 's/^@@[[:alnum:]]+@@//'
}
# Expand TMPPLIST to absolute paths, splitting files and dirs into separate
Index: Mk/Uses/python.mk
===================================================================
--- Mk/Uses/python.mk
+++ Mk/Uses/python.mk
@@ -94,6 +94,11 @@
# noflavors - Disable automatic creation of flavors if they would
# otherwise be created and they are not wanted.
#
+# nometapkg - Disable automatic generic meta package generation.
+# This is used when flavors are enabled to generate a
+# py-foo meta package that always installs the default
+# version.
+#
# allflavors - Generate flavors for all possible versions and not
# simply the default ones. Only to be used for py-*
# ports that are part of the Python distribution, but
@@ -257,8 +262,8 @@
# List all valid USE_PYTHON features here
_VALID_PYTHON_FEATURES= allflavors autoplist concurrent cython cython_run \
- distutils flavors noegginfo noflavors optsuffix \
- py3kplist pythonprefix
+ distutils flavors noegginfo noflavors nometapkg \
+ optsuffix py3kplist pythonprefix
_INVALID_PYTHON_FEATURES=
.for var in ${USE_PYTHON}
. if empty(_VALID_PYTHON_FEATURES:M${var})
@@ -516,6 +521,22 @@
RUN_DEPENDS+= cython-${PYTHON_VER}:lang/cython@${PY_FLAVOR}
.endif
+# So:
+# - we are doing flavors
+# - we want the metapkg
+# - we are doing the default flavor
+# - our PKGNAMEPREFIX matches PYTHON_PKGNAMEPREFIX
+.if defined(_PYTHON_FEATURE_FLAVORS) && \
+ !defined(_PYTHON_FEATURE_NOMETAPKG) && \
+ ${FLAVOR} == ${FLAVORS:[1]} && \
+ !empty(PKGNAMEPREFIX:M${PYTHON_PKGNAMEPREFIX}*)
+SUBPACKAGES+= py_meta
+_PKGS.py_meta= ${PKGBASE:S/${PYTHON_PKGNAMEPREFIX}/py-/}
+DESCR.py_meta= ${DESCR}
+SELF_DEPENDS.py_meta= main
+COMMENT.py_meta= ${COMMENT} (default version)
+.endif
+
.if defined(_PYTHON_FEATURE_CONCURRENT)
.if !defined(_PYTHON_FEATURE_FLAVORS) && (${_PYTHON_VERSION_MINIMUM:M3*} || ${_PYTHON_VERSION_MAXIMUM:M2*})
DEV_WARNING+= "USE_PYTHON=concurrent when only one of Python 2 or 3 is supported AND not using flavors does not make any sense"
Index: Mk/bsd.options.mk
===================================================================
--- Mk/bsd.options.mk
+++ Mk/bsd.options.mk
@@ -457,6 +457,20 @@
_OPTIONS_${target}?=
.endfor
+# Handle subpackages before the rest to be able to handle options helpers with
+# subpackages.
+.for opt in ${_REALLY_ALL_POSSIBLE_OPTIONS}
+. if ${PORT_OPTIONS:M${opt}}
+. if defined(${opt}_SUBPACKAGES)
+SUBPACKAGES+= ${${opt}_SUBPACKAGES}
+. endif
+. else
+. if defined(${opt}_SUBPACKAGES_OFF)
+SUBPACKAGES+= ${${opt}_SUBPACKAGES_OFF}
+. endif
+. endif
+.endfor
+
.for opt in ${_REALLY_ALL_POSSIBLE_OPTIONS}
# PLIST_SUB
PLIST_SUB?=
@@ -542,6 +556,11 @@
. if defined(${opt}_${deptype}_DEPENDS)
${deptype}_DEPENDS+= ${${opt}_${deptype}_DEPENDS}
. endif
+. for p in ${SUBPACKAGES}
+. if defined(${opt}_${deptype}_DEPENDS.${p})
+${deptype}_DEPENDS.${p}+= ${${opt}_${deptype}_DEPENDS.${p}}
+. endif
+. endfor
. endfor
. for target in ${_OPTIONS_TARGETS}
_target= ${target:C/:.*//}
@@ -613,6 +632,11 @@
. if defined(${opt}_${deptype}_DEPENDS_OFF)
${deptype}_DEPENDS+= ${${opt}_${deptype}_DEPENDS_OFF}
. endif
+. for p in ${SUBPACKAGES}
+. if defined(${opt}_${deptype}_DEPENDS_OFF.${p})
+${deptype}_DEPENDS.${p}+= ${${opt}_${deptype}_DEPENDS_OFF.${p}}
+. endif
+. endfor
. endfor
. for target in ${_OPTIONS_TARGETS}
_target= ${target:C/:.*//}
Index: Mk/bsd.port.mk
===================================================================
--- Mk/bsd.port.mk
+++ Mk/bsd.port.mk
@@ -2223,6 +2223,7 @@
_PKGMESSAGES+= ${PKGMESSAGE}
TMPPLIST?= ${WRKDIR}/.PLIST.mktmp
+_PLIST?= ${WRKDIR}/.PLIST
.if defined(PKG_NOCOMPRESS)
PKG_SUFX?= .tar
@@ -2610,20 +2611,77 @@
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}
+PORTS_FEATURES+= SUBPACKAGES
+.if defined(SUBPACKAGES)
+. if ${SUBPACKAGES:Mmain}
+DEV_ERROR+= "SUBPACKAGES cannot contain 'main', it is a reserved value"
+. endif
+. for f in ${SUBPACKAGES}
+. if ${f:C/[[:lower:][:digit:]_]//g}
+_BAD_SUBPACKAGE_NAMES+= ${f}
+. endif
+. endfor
+. if !empty(_BAD_SUBPACKAGE_NAMES)
+DEV_ERROR+= "SUBPACKAGES contains subpackages that are not all [a-z0-9_]: ${_BAD_SUBPACKAGE_NAMES}"
+. endif
+.endif
+.for p in ${SUBPACKAGES}
+# If a FRAMEWORK generated package needs to override its subpackage package
+# name, it can do so with this mechanism.
+.if !defined(_PKGS.${p})
+_PKGS.${p}= ${PKGBASE}-${p}
+.endif
+_PKGS+= ${_PKGS.${p}}
+_P.${_PKGS.${p}}= .${p}
+.endfor
+
+.if !defined(_DID_SUBPACKAGES_HELPERS)
+_DID_SUBPACKAGES_HELPERS= yes
+_SUBPACKAGE_HELPERS_FILE= DESCR PKGINSTALL PKGDEINSTALL PKGMESSAGE \
+ PKGPREINSTALL PKGPOSTINSTALL PKGPREDEINSTALL PKGPOSTDEINSTALL \
+ PKGPREUPGRADE PKGPOSTUPGRADE PKGUPGRADE
+
+. for p in ${SUBPACKAGES}
+# These overwrite the current value
+. for v in ${_SUBPACKAGE_HELPERS_FILE}
+${v}.${p}?= ${$v}.$p
+. endfor
+_PKGMESSAGES.${p}= ${PKGMESSAGE}.${p}
+# XXX: for testing, and maybe kept afterwards
+. if !exists(${DESCR.${p}})
+DESCR.${p}= ${DESCR}
+DEV_WARNING+= "DESCR.${p} needs to point to an existing file."
+. endif
+# XXX: Thoughts?
+COMMENT.${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}
+PKGNAME${_P.${p}}= ${p}-${PKGVERSION}
+PKGNAMES+= ${PKGNAME${_P.${p}}}
+PKGFILE${_P.${p}}= ${_PKGDIR}/${PKGNAME${_P.${p}}}${PKG_SUFX}
+. endfor
+_EXTRA_PACKAGE_TARGET_DEP+= ${_PKGDIR}
+.for p in ${_PKGS}
+WRKDIR_PKGFILE${_P.${p}}= ${WRKDIR}/pkg/${PKGNAME${_P.${p}}}${PKG_SUFX}
+.endfor
+
CONFIGURE_SCRIPT?= configure
CONFIGURE_CMD?= ./${CONFIGURE_SCRIPT}
CONFIGURE_TARGET?= ${HOSTARCH}-portbld-${OPSYS:tl}${OSREL}
@@ -3400,10 +3458,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}
@@ -3415,16 +3469,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}" = "${p}" ]; then \
+ ${SED} "/^@comment /d; /@@/d" ${TMPPLIST} > ${.TARGET} ; \
+ else \
+ ${SED} -n "s/@@${p:S/${PKGBASE}-//}@@//p" ${TMPPLIST} > ${.TARGET} ; \
+ fi
+
+${WRKDIR_PKGFILE${_P.${p}}}: ${_PLIST}.${p} create-manifest.${p} ${WRKDIR}/pkg
+ @echo "===> Building ${PKGNAME${_P.${p}}}"
+ @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+= ${WRKDIR_PKGFILE${_P.${p}}}
+
+${PKGFILE${_P.${p}}}: ${WRKDIR_PKGFILE${_P.${p}}}
+ @${LN} -f ${WRKDIR_PKGFILE${_P.${p}}} ${PKGFILE${_P.${p}}} 2>/dev/null \
+ || ${CP} -f ${WRKDIR_PKGFILE${_P.${p}}} ${PKGFILE${_P.${p}}}
+
+_EXTRA_PACKAGE_TARGET_DEP+= ${PKGFILE${_P.${p}}}
+.endfor
.if !target(do-package)
PKG_CREATE_ARGS= -r ${STAGEDIR}
@@ -3436,14 +3503,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} ${PKGFILE${_P.${p}}} ${WRKDIR_PKGFILE${_P.${p}}} 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 ${PKGFILE${_P.${p}}} ] && (${ECHO_CMD} deleting ${PKGFILE${_P.${p}}}; ${RM} ${PKGFILE${_P.${p}}})"
+. endfor
.endif
# Used by scripts and users to install a package from local repository.
@@ -3455,13 +3526,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 "${WRKDIR_PKGFILE${_P.${p}}}" ]; then \
+ _pkgfile="${WRKDIR_PKGFILE${_P.${p}}}"; \
else \
- _pkgfile="${PKGFILE}"; \
+ _pkgfile="${PKGFILE${_P.${p}}}"; \
fi; \
${PKG_ADD} ${_INSTALL_PKG_ARGS} $${_pkgfile}
+.endfor
.endif
@@ -3650,7 +3724,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
@@ -3721,14 +3795,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
@@ -3964,7 +4040,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
@@ -3982,10 +4058,13 @@
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
+.for p in ${_PKGS}
+${deptype}_DEPENDS_ALL+= ${${deptype}_DEPENDS${_P.${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}" \
@@ -4014,7 +4093,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*\:/*}
@@ -4066,10 +4145,10 @@
ALL-DEPENDS-FLAVORS-LIST= ${DEPENDS-LIST} -f -r ${_UNIFIED_DEPENDS:Q}
DEINSTALL-DEPENDS-FLAVORS-LIST= ${DEPENDS-LIST} -f -r ${_UNIFIED_DEPENDS:N${PKG_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)
@@ -4157,7 +4236,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
@@ -4169,7 +4248,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
@@ -4208,7 +4287,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 || \
@@ -4255,56 +4334,71 @@
fi; \
done
-ACTUAL-PACKAGE-DEPENDS?= \
+# FIXME: SELF_DEPENDS can only be used to depend on sub packages whose package
+# name has not been overrided by the framework, otherwise the assumption made
+# bellow that the package name is "PKGBASE-$$self" is broken.
+.for p in ${_PKGS}
+ACTUAL-PACKAGE-DEPENDS${_P.${p}}?= \
depfiles="" ; \
- for lib in ${LIB_DEPENDS:C/\:.*//}; do \
+ for lib in ${LIB_DEPENDS${_P.${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:C/(.*)\:.*/"\1"/}
+ for self in ${SELF_DEPENDS${_P.${p}}}; do \
+ if [ "$$self" = "main" ]; then \
+ printf "\"%s\": {origin: \"%s\", version: \"%s\"}\n" ${PKGBASE} ${PKGORIGIN} ${PKGVERSION}; \
+ else \
+ printf "\"%s-%s\": {origin: \"%s\", version: \"%s\"}\n" ${PKGBASE} $$self ${PKGORIGIN} ${PKGVERSION}; \
+ fi ; \
+ done ; \
+ ${SETENV} PKG_BIN="${PKG_BIN}" ${SH} ${SCRIPTSDIR}/actual-package-depends.sh $${depfiles} ${RUN_DEPENDS${_P.${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.${p}}}' \
+ dp_CATEGORIES='${CATEGORIES:u:S/$/,/}' \
+ dp_COMMENT=${COMMENT${_P.${p}}:Q} \
+ dp_COMPLETE_OPTIONS_LIST='${COMPLETE_OPTIONS_LIST}' \
+ dp_DEPRECATED=${DEPRECATED:Q} \
+ dp_DESCR='${DESCR${_P.${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.${p}}}' \
+ dp_PKGINSTALL='${PKGINSTALL${_P.${p}}}' \
+ dp_PKGMESSAGES='${_PKGMESSAGES${_P.${p}}}' \
+ dp_PKGORIGIN='${PKGORIGIN}' \
+ dp_PKGPOSTDEINSTALL='${PKGPOSTDEINSTALL${_P.${p}}}' \
+ dp_PKGPOSTINSTALL='${PKGPOSTINSTALL${_P.${p}}}' \
+ dp_PKGPOSTUPGRADE='${PKGPOSTUPGRADE${_P.${p}}}' \
+ dp_PKGPREDEINSTALL='${PKGPREDEINSTALL${_P.${p}}}' \
+ dp_PKGPREINSTALL='${PKGPREINSTALL${_P.${p}}}' \
+ dp_PKGPREUPGRADE='${PKGPREUPGRADE${_P.${p}}}' \
+ dp_PKGUPGRADE='${PKGUPGRADE${_P.${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.
@@ -4312,8 +4406,11 @@
package-depends:
@${PACKAGE-DEPENDS-LIST} | ${AWK} '{print $$1":"$$3}'
-actual-package-depends:
- @${ACTUAL-PACKAGE-DEPENDS}
+.for p in ${_PKGS}
+actual-package-depends${_P.${p}}:
+ @${ACTUAL-PACKAGE-DEPENDS${_P.${p}}}
+.endfor
+
# Build packages for port and dependencies
@@ -4360,12 +4457,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
@@ -4498,6 +4595,11 @@
@for file in ${PLIST_FILES}; do \
${ECHO_CMD} $${file} | ${SED} ${PLIST_SUB:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} >> ${TMPPLIST}; \
done
+.for p in ${_PKGS:[2..-1]}
+ @for file in ${PLIST_FILES${_P.${p}}}; do \
+ ${ECHO_CMD} $${file} | ${SED} ${PLIST_SUB:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} -e 's/^/@@${_P.${p}:S/^.//}@@/' >> ${TMPPLIST}; \
+ done
+.endfor
.if !empty(PLIST)
.for f in ${PLIST}
@if [ -f "${f}" ]; then \
@@ -4510,6 +4612,11 @@
@${ECHO_CMD} ${dir} | ${SED} ${PLIST_SUB:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} -e 's,^,@dir ,' >> ${TMPPLIST}
.endfor
+.for p in ${_PKGS:[2..-1]}
+.for dir in ${PLIST_DIRS${_P.${p}}}
+ @${ECHO_CMD} ${dir} | ${SED} ${PLIST_SUB:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} -e 's,^,@@${_P.${p}:S/^.//}@@@dir ,' >> ${TMPPLIST}
+.endfor
+.endfor
.endif
${TMPPLIST}:
@@ -4663,20 +4770,20 @@
pretty-flavors-package-names: .PHONY
.if empty(FLAVORS)
- @${ECHO_CMD} "no flavor: ${PKGNAME}"
+ @${ECHO_CMD} "no flavor: ${_PKGS}"
.else
.for f in ${FLAVORS}
@${ECHO_CMD} -n "${f}: "
- @cd ${.CURDIR} && ${SETENV} FLAVOR=${f} ${MAKE} -B -V PKGNAME
+ @cd ${.CURDIR} && ${SETENV} -i FLAVOR=${f} ${MAKE} -B -V _PKGS
.endfor
.endif
flavors-package-names: .PHONY
.if empty(FLAVORS)
- @${ECHO_CMD} "${PKGNAME}"
+ @${ECHO_CMD} "${_PKGS}"
.else
.for f in ${FLAVORS}
- @cd ${.CURDIR} && ${SETENV} FLAVOR=${f} ${MAKE} -B -V PKGNAME
+ @cd ${.CURDIR} && ${SETENV} -i FLAVOR=${f} ${MAKE} -B -V _PKGS | ${XARGS} -n 1
.endfor
.endif
@@ -4685,17 +4792,20 @@
STAGE_ARGS= -i ${STAGEDIR}
.if !defined(NO_PKG_REGISTER)
-fake-pkg:
+. for p in ${_PKGS}
+fake-pkg: fake-pkg.${p}
+fake-pkg.${p}: ${_PLIST}.${p} ${METADIR}.${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} -f ${TMPPLIST}
+ @${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} -f ${TMPPLIST}
-.endif
- @${RM} -r ${METADIR}
+ @${SETENV} ${PKG_ENV} FORCE_POST="${_FORCE_POST_PATTERNS}" ${PKG_REGISTER} ${STAGE_ARGS} -m ${METADIR}.${p} -f ${_PLIST}.${p}
.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: devel/git/Makefile
===================================================================
--- devel/git/Makefile
+++ devel/git/Makefile
@@ -17,6 +17,11 @@
LICENSE= GPLv2
LICENSE_FILE= ${WRKSRC}/COPYING
+SELF_DEPENDS.perl= main
+SELF_DEPENDS.gitweb= perl
+SELF_DEPENDS.send-email= perl
+SELF_DEPENDS.subversion= perl
+
USES= autoreconf gmake iconv shebangfix ssl tar:xz
CONFLICTS_INSTALL?= git-gui-[0-9]* git-lite-[0-9]*
@@ -59,6 +64,10 @@
SUBTREE SVN
OPTIONS_SUB= yes
+.if defined(PACKAGE_BUILDING)
+OPTIONS_DEFAULT+= SVN
+.endif
+
CONTRIB_DESC= Install contributed scripts
CURL_DESC= Install curl support (provides HTTPS transport)
CVS_DESC= Enable CVS support
@@ -74,12 +83,14 @@
PERL_USES= perl5
PERL_CONFIGURE_WITH= perl=${PERL}
-PERL_BUILD_DEPENDS= p5-Error>=0:lang/p5-Error
-PERL_RUN_DEPENDS= p5-Error>=0:lang/p5-Error
+PERL_BUILD_DEPENDS.perl= p5-Error>=0:lang/p5-Error
+PERL_RUN_DEPENDS.perl= p5-Error>=0:lang/p5-Error
PERL_MAKE_ARGS_OFF= NO_PERL=1
+PERL_SUBPACKAGES= perl
GITWEB_IMPLIES= PERL
-GITWEB_RUN_DEPENDS= p5-CGI>=0:www/p5-CGI
+GITWEB_RUN_DEPENDS.gitweb= p5-CGI>=0:www/p5-CGI
+GITWEB_SUBPACKAGES= gitweb
PCRE_LIB_DEPENDS= libpcre.so:devel/pcre
PCRE_CONFIGURE_WITH= libpcre1
@@ -88,8 +99,9 @@
PCRE2_CONFIGURE_WITH= libpcre
SEND_EMAIL_IMPLIES= PERL
-SEND_EMAIL_RUN_DEPENDS= p5-Authen-SASL>=0:security/p5-Authen-SASL \
+SEND_EMAIL_RUN_DEPENDS.send-email= p5-Authen-SASL>=0:security/p5-Authen-SASL \
p5-IO-Socket-SSL>=0:security/p5-IO-Socket-SSL
+SEND_EMAIL_SUBPACKAGES= send_email
ICONV_MAKE_ARGS_OFF= NO_ICONV=1
@@ -110,8 +122,10 @@
# to have git use devel/subversion18 it will be brought in through
# devel/p5-subversion if you set WITH_SUBVERSION_VER=18. Otherwise
# devel/subversion will be brought in.
-SVN_RUN_DEPENDS= p5-Term-ReadKey>=0:devel/p5-Term-ReadKey \
+SVN_IMPLIES= PERL
+SVN_RUN_DEPENDS.subversion= p5-Term-ReadKey>=0:devel/p5-Term-ReadKey \
p5-subversion>=0:devel/p5-subversion
+SVN_SUBPACKAGES= subversion
SUBTREE_BUILD_DEPENDS= asciidoctor:textproc/rubygem-asciidoctor\
xmlto:textproc/xmlto
Index: devel/git/pkg-descr.subversion
===================================================================
--- /dev/null
+++ devel/git/pkg-descr.subversion
@@ -0,0 +1,3 @@
+Git bindings to interact with a subversion repository.
+
+WWW: http://git-scm.org/
Index: devel/git/pkg-plist
===================================================================
--- devel/git/pkg-plist
+++ devel/git/pkg-plist
@@ -16,16 +16,16 @@
%%PERL%%%%SITE_PERL%%/Git/LoadCPAN/Error.pm
%%PERL%%%%SITE_PERL%%/Git/LoadCPAN/Mail/Address.pm
%%PERL%%%%SITE_PERL%%/Git/Packet.pm
-%%PERL%%%%SITE_PERL%%/Git/SVN.pm
-%%PERL%%%%SITE_PERL%%/Git/SVN/Editor.pm
-%%PERL%%%%SITE_PERL%%/Git/SVN/Fetcher.pm
-%%PERL%%%%SITE_PERL%%/Git/SVN/GlobSpec.pm
-%%PERL%%%%SITE_PERL%%/Git/SVN/Log.pm
-%%PERL%%%%SITE_PERL%%/Git/SVN/Memoize/YAML.pm
-%%PERL%%%%SITE_PERL%%/Git/SVN/Migration.pm
-%%PERL%%%%SITE_PERL%%/Git/SVN/Prompt.pm
-%%PERL%%%%SITE_PERL%%/Git/SVN/Ra.pm
-%%PERL%%%%SITE_PERL%%/Git/SVN/Utils.pm
+%%SVN%%@@subversion@@%%SITE_PERL%%/Git/SVN.pm
+%%SVN%%@@subversion@@%%SITE_PERL%%/Git/SVN/Editor.pm
+%%SVN%%@@subversion@@%%SITE_PERL%%/Git/SVN/Fetcher.pm
+%%SVN%%@@subversion@@%%SITE_PERL%%/Git/SVN/GlobSpec.pm
+%%SVN%%@@subversion@@%%SITE_PERL%%/Git/SVN/Log.pm
+%%SVN%%@@subversion@@%%SITE_PERL%%/Git/SVN/Memoize/YAML.pm
+%%SVN%%@@subversion@@%%SITE_PERL%%/Git/SVN/Migration.pm
+%%SVN%%@@subversion@@%%SITE_PERL%%/Git/SVN/Prompt.pm
+%%SVN%%@@subversion@@%%SITE_PERL%%/Git/SVN/Ra.pm
+%%SVN%%@@subversion@@%%SITE_PERL%%/Git/SVN/Utils.pm
libexec/git-core/git
libexec/git-core/git-add
libexec/git-core/git-add--interactive
@@ -160,7 +160,7 @@
libexec/git-core/git-rev-parse
libexec/git-core/git-revert
libexec/git-core/git-rm
-%%SEND_EMAIL%%libexec/git-core/git-send-email
+%%SEND_EMAIL%%@@send_email@@libexec/git-core/git-send-email
libexec/git-core/git-send-pack
libexec/git-core/git-sh-i18n
libexec/git-core/git-sh-i18n--envsubst
@@ -179,7 +179,7 @@
libexec/git-core/git-submodule
libexec/git-core/git-submodule--helper
%%SUBTREE%%libexec/git-core/git-subtree
-%%SVN%%libexec/git-core/git-svn
+%%SVN%%@@subversion@@libexec/git-core/git-svn
libexec/git-core/git-switch
libexec/git-core/git-symbolic-ref
libexec/git-core/git-tag
@@ -342,7 +342,7 @@
man/man1/git-rev-parse.1.gz
man/man1/git-revert.1.gz
man/man1/git-rm.1.gz
-%%SEND_EMAIL%%man/man1/git-send-email.1.gz
+%%SEND_EMAIL%%@@send_email@@man/man1/git-send-email.1.gz
man/man1/git-send-pack.1.gz
man/man1/git-sh-i18n--envsubst.1.gz
man/man1/git-sh-i18n.1.gz
@@ -360,7 +360,7 @@
man/man1/git-stripspace.1.gz
man/man1/git-submodule.1.gz
%%SUBTREE%%man/man1/git-subtree.1.gz
-%%SVN%%man/man1/git-svn.1.gz
+%%SVN%%@@subversion@@man/man1/git-svn.1.gz
man/man1/git-switch.1.gz
man/man1/git-symbolic-ref.1.gz
man/man1/git-tag.1.gz
@@ -1021,8 +1021,8 @@
%%HTMLDOCS%%%%DOCSDIR%%/git-revert.txt
%%HTMLDOCS%%%%DOCSDIR%%/git-rm.html
%%HTMLDOCS%%%%DOCSDIR%%/git-rm.txt
-%%SEND_EMAIL%%%%HTMLDOCS%%%%DOCSDIR%%/git-send-email.html
-%%SEND_EMAIL%%%%HTMLDOCS%%%%DOCSDIR%%/git-send-email.txt
+%%SEND_EMAIL%%@@send_email@@%%HTMLDOCS%%%%DOCSDIR%%/git-send-email.html
+%%SEND_EMAIL%%@@send_email@@%%HTMLDOCS%%%%DOCSDIR%%/git-send-email.txt
%%HTMLDOCS%%%%DOCSDIR%%/git-send-pack.html
%%HTMLDOCS%%%%DOCSDIR%%/git-send-pack.txt
%%HTMLDOCS%%%%DOCSDIR%%/git-sh-i18n--envsubst.html
@@ -1192,12 +1192,12 @@
%%HTMLDOCS%%%%DOCSDIR%%/user-manual.txt
share/emacs/site-lisp/git/git-blame.el
share/emacs/site-lisp/git/git.el
-%%GITWEB%%@sample %%ETCDIR%%/gitweb.conf.sample
-%%GITWEB%%%%EXAMPLESDIR%%/gitweb/gitweb.cgi
-%%GITWEB%%%%EXAMPLESDIR%%/gitweb/static/git-favicon.png
-%%GITWEB%%%%EXAMPLESDIR%%/gitweb/static/git-logo.png
-%%GITWEB%%%%EXAMPLESDIR%%/gitweb/static/gitweb.css
-%%GITWEB%%%%EXAMPLESDIR%%/gitweb/static/gitweb.js
+%%GITWEB%%@@gitweb@@@sample %%ETCDIR%%/gitweb.conf.sample
+%%GITWEB%%@@gitweb@@%%EXAMPLESDIR%%/gitweb/gitweb.cgi
+%%GITWEB%%@@gitweb@@%%EXAMPLESDIR%%/gitweb/static/git-favicon.png
+%%GITWEB%%@@gitweb@@%%EXAMPLESDIR%%/gitweb/static/git-logo.png
+%%GITWEB%%@@gitweb@@%%EXAMPLESDIR%%/gitweb/static/gitweb.css
+%%GITWEB%%@@gitweb@@%%EXAMPLESDIR%%/gitweb/static/gitweb.js
%%CONTRIB%%share/git-core/contrib/README
%%CONTRIB%%share/git-core/contrib/buildsystems/Generators.pm
%%CONTRIB%%share/git-core/contrib/buildsystems/Generators/QMake.pm
Index: lang/perl5-devel/Makefile
===================================================================
--- lang/perl5-devel/Makefile
+++ lang/perl5-devel/Makefile
@@ -16,6 +16,7 @@
MAINTAINER= mat@FreeBSD.org
COMMENT= Practical Extraction and Report Language
+COMMENT.gdbm= GNU Data Base Manager (gdbm) interface
LICENSE= ART10 GPLv1+
LICENSE_COMB= dual
@@ -26,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>
+SELF_DEPENDS.gdbm= main
+
# XXX releases are .tar.xz, add: tar:xz
USES= cpe
@@ -77,6 +80,9 @@
CONFIGURE_ARGS+= -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)'
+# Give a hint of where libperl.so can be found.
+USE_LDCONFIG= ${PREFIX}/${_ARCH_LIB}/CORE
+
# XXX Remove
CONFIGURE_ARGS+= -Dusedevel \
-Uversiononly
@@ -182,7 +188,8 @@
DTRACE_CONFIGURE_OFF= -Uusedtrace
GDBM_CONFIGURE_ON= -Di_gdbm
GDBM_CONFIGURE_OFF= -Ui_gdbm
-GDBM_LIB_DEPENDS= libgdbm.so:databases/gdbm
+GDBM_LIB_DEPENDS.gdbm= libgdbm.so:databases/gdbm
+GDBM_SUBPACKAGES= gdbm
MULTIPLICITY_CONFIGURE_ON= -Dusemultiplicity=y
MULTIPLICITY_CONFIGURE_OFF= -Dusemultiplicity=n
PERL_64BITINT_CONFIGURE_ON= -Duse64bitint
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
@@ -786,7 +786,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%%@@gdbm@@%%ARCH_LIB%%/GDBM_File.pm
%%ARCH_LIB%%/Hash/Util.pm
%%ARCH_LIB%%/Hash/Util/FieldHash.pm
%%ARCH_LIB%%/I18N/Langinfo.pm
@@ -855,7 +855,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%%@@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
@@ -1317,7 +1317,7 @@
%%MAN3%%/Filter::Simple.3.gz
%%MAN3%%/Filter::Util::Call.3.gz
%%MAN3%%/FindBin.3.gz
-%%GDBM%%%%MAN3%%/GDBM_File.3.gz
+%%GDBM%%@@gdbm@@%%MAN3%%/GDBM_File.3.gz
%%MAN3%%/Getopt::Long.3.gz
%%MAN3%%/Getopt::Std.3.gz
%%MAN3%%/HTTP::Tiny.3.gz
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Dec 24, 11:12 AM (5 h, 41 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
15587874
Default Alt Text
D16457.id.diff (33 KB)
Attached To
Mode
D16457: Subpackages. (deal with it.)
Attached
Detach File
Event Timeline
Log In to Comment