[Midnightbsd-cvs] mports: mports/Mk: Add support for USE_MPORT_TOOLS.
ctriv at midnightbsd.org
ctriv at midnightbsd.org
Sat Jan 5 17:22:50 EST 2008
Log Message:
-----------
Add support for USE_MPORT_TOOLS.
Modified Files:
--------------
mports/Mk:
bsd.commands.mk (r1.1 -> r1.2)
bsd.mport.mk (r1.79 -> r1.80)
-------------- next part --------------
Index: bsd.mport.mk
===================================================================
RCS file: /home/cvs/mports/Mk/bsd.mport.mk,v
retrieving revision 1.79
retrieving revision 1.80
diff -L Mk/bsd.mport.mk -L Mk/bsd.mport.mk -u -r1.79 -r1.80
--- Mk/bsd.mport.mk
+++ Mk/bsd.mport.mk
@@ -543,6 +543,12 @@
# Default: ${MASTERDIR}
#
#
+# The following change globals behavoirs for the mports system.
+#
+# USE_MPORT_TOOLS - If set, the mport system will use libmport to make and
+# install mport archives. The mport binary system will also
+# be used as the package database.
+#
# MPORT_MAINTAINER_MODE - If set, the mports system will perform checks to see if several
# steps are successfully completed.
#
@@ -2150,6 +2156,36 @@
PORTDIRNAME?= ${_PORTDIRNAME}
PKGORIGIN?= ${PKGCATEGORY}/${PORTDIRNAME}
+.if defined(USE_MPORT_TOOLS)
+
+MPORT_CREATE?= /usr/libexec/mport.create
+MPORT_DELETE?= /usr/libexec/mport.delete
+MPORT_INSTALL?= /usr/libexec/mport.install
+
+.if defined(DESTDIR)
+MPORT_INSTALL:= ${CHROOT} ${DESTDIR} ${MPORT_INSTALL}
+MPORT_DELETE:= ${CHROOT} ${DESTDIR} ${MPORT_DELETE}
+.endif
+
+.if !defined(MPORT_CREATE_ARGS)
+MPORT_CREATE_ARGS= -n ${PKGSUBNAME} -v ${PKGVERSION} -o ${PKGFILE} \
+ -s ${FAKE_DESTDIR} -p ${TMPPLIST} -P ${PREFIX} \
+ -O ${PKGORIGIN} -c "${COMMENT:Q}" -l en \
+ -D "`cd ${.CURDIR} && ${MAKE} package-depends | ${GREP} -v -E ${PKG_IGNORE_DEPENDS} | ${SORT} -u`" \
+ $$_LATE_MPORT_CREATE_ARGS
+
+.if !defined(NO_MTREE)
+MPORT_CREATE_ARGS+= -M ${MTREE_FILE}
+.endif
+.if defined(CONFLICTS) && !defined(DISABLE_CONFLICTS)
+MPORT_CREATE_ARGS+= -C "${CONFLICTS}"
+.endif
+.endif
+
+PKG_SUFX?= .mport
+
+.else # old pkg_* tools
+
.if !defined(DESTDIR)
PKG_CMD?= /usr/sbin/pkg_create
PKG_ADD?= /usr/sbin/pkg_add
@@ -2188,6 +2224,8 @@
# where pkg_add records its dirty deeds.
PKG_DBDIR?= /var/db/pkg
+.endif # defined(USE_MPORT_TOOLS)
+
MOTIFLIB?= -L${X11BASE}/lib -lXm -lXp
ALL_TARGET?= all
@@ -3585,6 +3623,31 @@
# Package
#
.if !target(do-package)
+.if defined(USE_MPORT_TOOLS)
+do-package: ${TMPPLIST}
+ @if ! ${MKDIR} -p ${PKGREPOSITORY}; then \
+ ${ECHO_MSG} "=> Can't create directory ${PKGREPOSITORY}."; \
+ exit 1; \
+ fi;
+ @__softMAKEFLAGS='${__softMAKEFLAGS:S/'/'\''/g}'; \
+ _LATE_MPORT_CREATE_ARGS=""; \
+ if [ -f ${PKGINSTALL} ]; then \
+ _LATE_MPORT_CREATE_ARGS="$${_LATE_MPORT_CREATE_ARGS} -i ${PKGINSTALL}"; \
+ fi; \
+ if [ -f ${PKGDEINSTALL} ]; then \
+ _LATE_MPORT_CREATE_ARGS="$${_LATE_MPORT_CREATE_ARGS} -j ${PKGDEINSTALL}"; \
+ fi; \
+ if [ -f ${PKGMESSAGE} ]; then \
+ _LATE_MPORT_CREATE_ARGS="$${_LATE_MPORT_CREATE_ARGS} -m ${PKGMESSAGE}"; \
+ fi; \
+ if ${MPORT_CREATE} ${MPORT_CREATE_ARGS} ; then \
+ ${ECHO_MSG} "Created ${PKGFILE}"; \
+ cd ${.CURDIR} && eval ${MAKE} $${__softMAKEFLAGS} package-links; \
+ else \
+ cd ${.CURDIR} && eval ${MAKE} $${__softMAKEFLAGS} delete-package; \
+ exit 1; \
+ fi
+.else
do-package: ${TMPPLIST}
@if ! ${MKDIR} -p ${PKGREPOSITORY}; then \
${ECHO_MSG} "=> Can't create directory ${PKGREPOSITORY}."; \
@@ -3612,13 +3675,7 @@
exit 1; \
fi
.endif
-
-
-test-mport:
- /usr/libexec/mport.create -o ${PKGFILE:S/tbz$/mport/} -c "${COMMENT:Q}" -s ${FAKE_DESTDIR} \
- -d ${DESCR} -p ${TMPPLIST} -P ${PREFIX} -M ${MTREE_FILE} -O ${PKGORIGIN} -C "${CONFLICTS}" \
- -D "`cd ${.CURDIR} && ${MAKE} package-depends | ${GREP} -v -E ${PKG_IGNORE_DEPENDS} | ${SORT} -u`" \
- -v ${PKGVERSION} -n ${PKGSUBNAME} -l en
+.endif
# Some support rules for do-package
@@ -3681,6 +3738,14 @@
# This is the "real" install. Really. Not kidding.
#
.if !target(install-package)
+.if defined(USE_MPORT_TOOLS)
+install-package:
+. if defined(DESTDIR)
+ @${CP} ${PKGFILE} ${DISTDIR}${PKGFILE}
+. endif
+# $MPORT_INSTALL calls chroot it DESTDIR is set
+ @${MPORT_INSTALL} ${PKGFILE}
+.else
install-package:
. if defined(DESTDIR)
@${CP} ${PKGFILE} ${DISTDIR}${PKGFILE}
@@ -3688,6 +3753,7 @@
# $PKG_ADD calls chroot if DESTDIR is set.
@${SETENV} PKG_PATH=${PKGREPOSITORY} ${PKG_ADD} ${PKGNAME}
.endif
+.endif
#
@@ -4117,6 +4183,21 @@
# Special target to remove installation
.if !target(deinstall)
+.if defined(USE_MPORT_TOOLS)
+deinstall:
+.if !defined(DESTDIR)
+ @${ECHO_MSG} "===> Deinstalling for ${PKGORIGIN}"
+.else
+ @${ECHO_MSG} "===> Deinstalling for ${PKGORIGIN} from ${DESTDIR}"
+.endif
+.if ${UID} != 0 && !defined(INSTALL_AS_USER)
+ @${ECHO_MSG} "===> Running ${SUDO} ${MPORT_DELETE} -o ${PKGORIGIN}
+ @${SUDO} ${MPORT_DELETE} -o ${PKGORIGIN}
+.else
+ @${MPORT_DELETE} -o ${PKGORIGIN}
+.endif
+ @${RM} -f ${INSTALL_COOKIE}
+.else
deinstall:
.if ${UID} != 0 && !defined(INSTALL_AS_USER)
@${ECHO_MSG} "===> Switching to root credentials for '${.TARGET}' target"
@@ -4154,8 +4235,9 @@
fi; \
fi
@${RM} -f ${INSTALL_COOKIE}
-.endif
-.endif
+.endif
+.endif # USE_MPORT_TOOLS
+.endif # !target(deinstall)
# Deinstall-all
#
@@ -4974,6 +5056,20 @@
@${PACKAGE-DEPENDS-LIST}
.endif
+.if defined(USE_MPORT_TOOLS)
+# the mport binary tools only store the the first tier of the depenancy
+# tree in a mports archive.
+PACKAGE-DEPENDS-LIST?= \
+ for dir in $$(${ECHO_CMD} "${LIB_DEPENDS} ${RUN_DEPENDS}" | ${SED} -e 'y/ /\n/' | ${CUT} -f 2 -d ':') $$(${ECHO_CMD} ${DEPENDS} | ${SED} -e 'y/ /\n/' | ${CUT} -f 1 -d ':'); do \
+ dir=`${REALPATH} $$dir`; \
+ if [ -d $$dir ]; then \
+ meta=`cd $$dir && ${MAKE} -V PKGNAME -V PKGORIGIN | ${PASTE} - -'`; \
+ ${ECHO_CMD} "$$dir $$meta" | ${AWK} '{print $$2 " " $$1 " " $$3}'; \
+ else \
+ ${ECHO_MSG} "\"$$dir\" non-existent -- dependency list incomplete" >&2; \
+ fi; \
+ done
+.else
PACKAGE-DEPENDS-LIST?= \
if [ "${CHILD_DEPENDS}" ]; then \
installed=$$(${PKG_INFO} -qO ${PKGORIGIN} 2>/dev/null || \
@@ -5007,9 +5103,7 @@
${ECHO_MSG} "${PKGNAME}: \"$$dir\" non-existent -- dependency list incomplete" >&2; \
fi; \
done
-
-# Print out package names.
-
+.endif
package-depends:
@${PACKAGE-DEPENDS-LIST} | ${AWK} '{print $$1":"$$3}'
Index: bsd.commands.mk
===================================================================
RCS file: /home/cvs/mports/Mk/bsd.commands.mk,v
retrieving revision 1.1
retrieving revision 1.2
diff -L Mk/bsd.commands.mk -L Mk/bsd.commands.mk -u -r1.1 -r1.2
--- Mk/bsd.commands.mk
+++ Mk/bsd.commands.mk
@@ -68,6 +68,7 @@
SORT?= /usr/bin/sort
STRIP_CMD?= /usr/bin/strip
SU_CMD?= /usr/bin/su root -c
+SUDO?= /usr/bin/sudo
SYSCTL?= /sbin/sysctl
TAIL?= /usr/bin/tail
TEST?= test # Shell builtin
More information about the Midnightbsd-cvs
mailing list