Index: Mk/bsd.port.mk =================================================================== --- Mk/bsd.port.mk +++ Mk/bsd.port.mk @@ -2219,6 +2219,7 @@ _PKGMESSAGES+= ${PKGMESSAGE} TMPPLIST?= ${WRKDIR}/.PLIST.mktmp +_PLIST?= ${WRKDIR}/.PLIST .if defined(PKG_NOCOMPRESS) PKG_SUFX?= .tar @@ -2608,20 +2609,34 @@ 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 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} @@ -3402,10 +3417,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} @@ -3413,20 +3424,37 @@ ${PKGLATESTFILE}: ${PKGFILE} ${PKGLATESTREPOSITORY} ${INSTALL} -l rs ${PKGFILE} ${PKGLATESTFILE} + +.for p in ${_PKGS} + +.endfor . endif .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} \ + || ${CP} -f ${${p}_WRKDIR_PKGFILE} ${${p}_PKGFILE} + +_EXTRA_PACKAGE_TARGET_DEP+= ${${p}_PKGFILE} +.endfor .if !target(do-package) PKG_CREATE_ARGS= -r ${STAGEDIR} @@ -3652,7 +3680,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 @@ -3978,7 +4006,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 @@ -4278,7 +4306,8 @@ PKG_NOTES_ENV+= dp_PKG_NOTE_${note}=${PKG_NOTE_${note}:Q} .endfor -create-manifest: +.for p in ${_PKGS} +create-manifest.${p}: @${SETENV} \ dp_SCRIPTSDIR='${SCRIPTSDIR}' \ dp_ACTUAL_PACKAGE_DEPENDS='${ACTUAL-PACKAGE-DEPENDS}' \ @@ -4292,9 +4321,9 @@ dp_LICENSE='${LICENSE:u:S/$/,/}' \ dp_LICENSE_COMB='${LICENSE_COMB}' \ dp_MAINTAINER='${MAINTAINER}' \ - dp_METADIR='${METADIR}' \ + dp_METADIR='${METADIR}.${p}' \ dp_NO_ARCH='${NO_ARCH}' \ - dp_PKGBASE='${PKGBASE}' \ + dp_PKGBASE='${p}' \ dp_PKGDEINSTALL='${PKGDEINSTALL}' \ dp_PKGINSTALL='${PKGINSTALL}' \ dp_PKGMESSAGES='${_PKGMESSAGES}' \ @@ -4316,6 +4345,7 @@ dp_WWW='${WWW}' \ ${PKG_NOTES_ENV} \ ${SH} ${SCRIPTSDIR}/create-manifest.sh +.endfor # Print out package names. @@ -4703,6 +4733,9 @@ STAGE_ARGS= -i ${STAGEDIR} .if !defined(NO_PKG_REGISTER) +.for p in ${_PKGS} +fake-pkg: create-manifest.${p} +.endfor fake-pkg: .if defined(INSTALLS_DEPENDS) @${ECHO_MSG} "===> Registering installation for ${PKGNAME} as automatic" @@ -5292,7 +5325,6 @@ _INSTALL_DEP= stage _INSTALL_SEQ= 100:install-message \ 200:check-already-installed \ - 300:create-manifest _INSTALL_SUSEQ= 400:fake-pkg 500:security-check _PACKAGE_DEP= stage 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= +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+= 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-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