misc/170723: [patch] x11-wm/dwm: add optional Xft support

Vitaly Magerya vmagerya at gmail.com
Sat Aug 18 01:10:07 UTC 2012


>Number:         170723
>Category:       misc
>Synopsis:       [patch] x11-wm/dwm: add optional Xft support
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sat Aug 18 01:10:06 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Vitaly Magerya
>Release:        FreeBSD 9.1-BETA1 amd64
>Organization:
>Environment:
>Description:
I've noticed that x11/dmenu has an option to enable the Xft patch
(which is awesome), but x11-wm/dwm does not. This is regrettable
as these two programs are designed to be used together. For this
reason I'm attaching a patch to enable Xft support (see [1]) for
dwm too (it's disabled by default to match the dmenu defaults).

Additionally, this patch changes OPTIONS to the new options
framework.

[1] http://dwm.suckless.org/patches/xft
>How-To-Repeat:

>Fix:


Patch attached with submission follows:

diff -ruN dwm.orig/Makefile dwm/Makefile
--- dwm.orig/Makefile	2012-02-14 20:20:52.000000000 +0000
+++ dwm/Makefile	2012-08-18 00:45:15.000000000 +0000
@@ -10,6 +10,7 @@
 CATEGORIES=	x11-wm
 MASTER_SITES=	http://dl.suckless.org/${PORTNAME}/ \
 		http://schot.a-eskwadraat.nl/files/
+PATCH_SITES=	http://dwm.suckless.org/patches/
 
 MAINTAINER=	schot at a-eskwadraat.nl
 COMMENT=	A dynamic, small, fast and simple window manager
@@ -17,7 +18,8 @@
 LICENSE=	MIT
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
-OPTIONS=	XINERAMA	"Enable Xinerama support" On
+OPTIONS_DEFINE=	XINERAMA XFT
+OPTIONS_DEFAULT=XINERAMA
 
 USE_XORG=	x11
 
@@ -27,10 +29,15 @@
 
 .include <bsd.port.options.mk>
 
-.if defined(WITH_XINERAMA)
+.if ${PORT_OPTIONS:MXINERAMA}
 USE_XORG+=	xinerama
 .endif
 
+.if defined(WITH_XFT)
+USE_XORG+=      xft
+PATCHFILES+=    ${PORTNAME}-${PORTVERSION}-xft.diff
+.endif
+
 pre-everything::
 	@${ECHO_MSG} "You can build dwm with your own config.h using the DWM_CONF knob:"
 	@${ECHO_MSG} "make DWM_CONF=/path/to/dwm/config.h install clean"
@@ -47,10 +54,14 @@
 	         -e "s,%%PREFIX%%,${PREFIX},g" \
 	         -e "s,%%LOCALBASE%%,${LOCALBASE},g" \
 	         -e "s,%%MANPREFIX%%,${MANPREFIX},g"
-.if defined(WITHOUT_XINERAMA)
+.if empty(PORT_OPTIONS:MXINERAMA)
 	@${REINPLACE_CMD} -e 's,$${XINERAMALIBS},,g' \
 	         -e 's,$${XINERAMAFLAGS},,g' ${WRKSRC}/config.mk
 .endif
+.if empty(PORT_OPTIONS:MXFT)
+	@${REINPLACE_CMD} -e 's,$${XFTLIBS},,g' \
+	         -e 's,$${XFTINCS},,g' ${WRKSRC}/config.mk
+.endif
 
 post-install:
 .if !defined(NOPORTDOCS)
diff -ruN dwm.orig/distinfo dwm/distinfo
--- dwm.orig/distinfo	2012-02-14 20:20:52.000000000 +0000
+++ dwm/distinfo	2012-08-18 00:46:02.000000000 +0000
@@ -1,2 +1,4 @@
 SHA256 (dwm-6.0.tar.gz) = b2b9483de69259eeea56844899bb2385158d3e79a42d82b10c142099fc8eeb56
 SIZE (dwm-6.0.tar.gz) = 20810
+SHA256 (dwm-6.0-xft.diff) = badd329b1ec8d2d1b99816d3ca4eafa9fe784a93cfac29b96abca3821b441a4d
+SIZE (dwm-6.0-xft.diff) = 6731
diff -ruN dwm.orig/files/patch-config.mk dwm/files/patch-config.mk
--- dwm.orig/files/patch-config.mk	2011-09-01 18:52:52.000000000 +0000
+++ dwm/files/patch-config.mk	2012-08-18 00:38:49.000000000 +0000
@@ -1,6 +1,6 @@
---- config.mk.orig	2011-07-10 22:24:25.000000000 +0200
-+++ config.mk	2011-09-01 14:00:05.000000000 +0200
-@@ -4,11 +4,11 @@
+--- config.mk.orig	2011-12-19 15:02:46.000000000 +0000
++++ config.mk	2012-08-18 00:38:31.000000000 +0000
+@@ -4,30 +4,34 @@
  # Customize below to fit your system
  
  # paths
@@ -16,8 +16,17 @@
  
  # Xinerama
  XINERAMALIBS = -L${X11LIB} -lXinerama
-@@ -19,15 +19,15 @@
- LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 ${XINERAMALIBS}
+ XINERAMAFLAGS = -DXINERAMA
+ 
++# Xft
++XFTINCS = -I${X11INC}/freetype2
++XFTLIBS = -L${X11LIB} -lXft
++
+ # includes and libs
+-INCS = -I. -I/usr/include -I${X11INC}
+-LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 ${XINERAMALIBS}
++INCS = -I. -I/usr/include -I${X11INC} ${XFTINCS}
++LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 ${XINERAMALIBS} ${XFTLIBS}
  
  # flags
 -CPPFLAGS = -DVERSION=\"${VERSION}\" ${XINERAMAFLAGS}


>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list