diff options
author | bapt <bapt@FreeBSD.org> | 2013-06-14 20:47:19 +0800 |
---|---|---|
committer | bapt <bapt@FreeBSD.org> | 2013-06-14 20:47:19 +0800 |
commit | 7f8901ff0415e77a5f517a22b436a62e19c5537b (patch) | |
tree | bf212593157006a670a5741b54859c4570fa4533 | |
parent | d54f8f4e4164d6e01c15f7631dc4543fad19f329 (diff) | |
download | freebsd-ports-gnome-7f8901ff0415e77a5f517a22b436a62e19c5537b.tar.gz freebsd-ports-gnome-7f8901ff0415e77a5f517a22b436a62e19c5537b.tar.zst freebsd-ports-gnome-7f8901ff0415e77a5f517a22b436a62e19c5537b.zip |
Add a USES display to replace USE_DISPLAY.
as USE_DISPLAY it will handle the dependencies needed for a display. But it will also start and stop the Xfvb process during the requested phase the display it needed.
it takes 'install' as an implicit argument, but may also accept 'build'
-rw-r--r-- | CHANGES | 13 | ||||
-rw-r--r-- | Mk/Uses/display.mk | 42 |
2 files changed, 55 insertions, 0 deletions
@@ -10,6 +10,19 @@ in the release notes and/or placed into UPDATING. All ports committers are allowed to commit to this file. +20130614: +AUTHOR: bapt@FreeBSD.org + + * New 'display' USES macro to handle building ports that may require a + a display to build. + + USES= display[:install] will start Xvfb and set the DISPLAY environment + variable before the installation phase and stop it at the end. (install is + the implicit value) + + USES= display:build will start Xvfb and set the DISPLAY environment variable + before the build phase and stop it at the end. + 20130607: AUTHOR: bdrewery@FreeBSD.org diff --git a/Mk/Uses/display.mk b/Mk/Uses/display.mk new file mode 100644 index 000000000000..d6f531b3fbad --- /dev/null +++ b/Mk/Uses/display.mk @@ -0,0 +1,42 @@ +# $FreeBSD$ +# +# MAINTAINER: x11@FreeBSD.org +# +# Feature: display +# Usage: USES=display or USES=display:ARGS +# Valid ARGS: install (default, implicit), build +# +# Except the target where the DISPLAY is needed +# + +.if !defined(_INCLUDE_USES_DISPLAY_MK) +_INCLUDE_USES_DISPLAY_MK= yes + +display_ARGS?= install +.if ${display_ARGS} != build && ${display_ARGS} != install +IGNORE= USES=display can only take 'build', 'install' and none +.endif + +.if !defined(DISPLAY) +BUILD_DEPENDS+= Xvfb:${PORTSDIR}/x11-servers/xorg-vfbserver \ + ${LOCALBASE}/lib/X11/fonts/misc/8x13O.pcf.gz:${X_FONTS_MISC_PORT} \ + ${LOCALBASE}/lib/X11/fonts/misc/fonts.alias:${X_FONTS_ALIAS_PORT} \ + ${LOCALBASE}/share/X11/xkb/rules/base:${PORTSDIR}/x11/xkeyboard-config \ + xkbcomp:${PORTSDIR}/x11/xkbcomp + +XVFBPORT!= port=0; while test -S /tmp/.X11-unix/X$${port} ; do port=$$(( port + 1 )) ; done ; ${ECHO_CMD} $$port +XVFBPIDFILE= /tmp/.xvfb-${XVFBPORT}.pid +MAKE_ENV+= DISPLAY=":${XVFBPORT}" + +pre-${display_ARGS}: start-display + +post-${display_ARGS}: stop-display + +start-display: + daemon -p ${XVFBPIDFILE} Xvfb :${XVFBPORT} + +stop-display: + pkill -15 ${XVFBPIDFILE} + +.endif +.endif |