diff options
author | danfe <danfe@FreeBSD.org> | 2009-09-11 20:03:26 +0800 |
---|---|---|
committer | danfe <danfe@FreeBSD.org> | 2009-09-11 20:03:26 +0800 |
commit | ee14b87c2f9e410f16e66cd893f9ca15610ef5b5 (patch) | |
tree | c91cbb8e437ffea59d5fb33395ecfd9fd6acadac /x11-wm/wmii | |
parent | 9a1b9e64dcc390eb3622ce76d4da0235fcc61e81 (diff) | |
download | freebsd-ports-gnome-ee14b87c2f9e410f16e66cd893f9ca15610ef5b5.tar.gz freebsd-ports-gnome-ee14b87c2f9e410f16e66cd893f9ca15610ef5b5.tar.zst freebsd-ports-gnome-ee14b87c2f9e410f16e66cd893f9ca15610ef5b5.zip |
Try to further improve user experience with WMII:
- Since default layout boxes actually just look ugly, but are still useful,
rework previous solution: instead of omitting them completely, draw them
in a slim fashion. Also, give option a better name (SLIM_LAYOUT_BOX)
- Apparently, Xmb* -> Xutf8* conversion was only safe thing to do with UTF-8
locales; those who use traditional (8-bit) locales and experience problems
with fonts should try rebuilding the port with UTF8_TEXT option unset
- Since our `devel/9base' port installs rc(1) but not read(1), it is of
little use as rdep anyway (`devel/plan9port' installs more complete set
of things, but is unfortunately broken on 8.0+)
- While here, pacify portlint(1) and remove _XOPEN_SOURCE definition to
prevent some warnings
Diffstat (limited to 'x11-wm/wmii')
-rw-r--r-- | x11-wm/wmii/Makefile | 28 | ||||
-rw-r--r-- | x11-wm/wmii/files/extra-patch-slim-layout-boxes | 24 | ||||
-rw-r--r-- | x11-wm/wmii/files/patch-no-utf8 | 91 |
3 files changed, 133 insertions, 10 deletions
diff --git a/x11-wm/wmii/Makefile b/x11-wm/wmii/Makefile index f90ec79840ef..d08b1574f653 100644 --- a/x11-wm/wmii/Makefile +++ b/x11-wm/wmii/Makefile @@ -7,7 +7,7 @@ PORTNAME= wmii DISTVERSION= 3.6 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= x11-wm MASTER_SITES= http://dl.suckless.org/wmii/ @@ -15,28 +15,39 @@ MAINTAINER= danfe@FreeBSD.org COMMENT= A dynamic, minimalist window manager for X11 LIB_DEPENDS= ixp.1:${PORTSDIR}/devel/libixp -RUN_DEPENDS= dmenu:${PORTSDIR}/x11/dmenu \ - ${LOCALBASE}/9/bin/rc:${PORTSDIR}/devel/9base +RUN_DEPENDS= dmenu:${PORTSDIR}/x11/dmenu -CONFLICTS= wmii-s* +CONFLICTS= wmii-s[0-9]* -USE_ICONV= yes USE_XORG= x11 xextproto xt xext MAKE_ARGS= PREFIX="${PREFIX}" INCLUDE="${LOCALBASE}/include" \ INCX11="-I${LOCALBASE}/include" LIBX11="-L${LOCALBASE}/lib" \ CC="${CC} -c" LD="${CC}" LIBIXP="-lixp" STATIC="" \ - LIBICONV="-liconv" MAN="${MANPREFIX}/man" + MAN="${MANPREFIX}/man" MAN1= wmii.1 wmiiloop.1 wmiir.1 -OPTIONS= LAYOUT_BOXES "Show layout boxes (some people hate them)" on +OPTIONS= SLIM_LAYOUT_BOX "Build with slim layout boxes" off \ + UTF8_TEXT "Work with UTF-8 instead of user locale" on .include <bsd.port.options.mk> +.if defined(WITH_UTF8_TEXT) +USE_ICONV= yes +MAKE_ARGS+= LIBICONV="-liconv" +.else +MAKE_ARGS+= -DNO_UTF8 +.endif + +.if defined(WITH_SLIM_LAYOUT_BOX) +EXTRA_PATCHES+= ${FILESDIR}/extra-patch-slim-layout-boxes +.endif + post-patch: .SILENT ${REINPLACE_CMD} -e 's|-lfmt -lutf|$${LIBX11} & -lX11|' \ ${WRKSRC}/cmd/Makefile + ${REINPLACE_CMD} -e '/_XOPEN_SOURCE/d' ${WRKSRC}/cmd/wmii/dat.h # Strip debug build options ${REINPLACE_CMD} -E 's| -g( -O0)?||' ${WRKSRC}/config.mk ${REINPLACE_CMD} -e 's|CFLAGS += -DIXPlint|& -DIXP_NEEDAPI=89|' \ @@ -44,8 +55,5 @@ post-patch: .SILENT # Make actual compile/link commands appear in the build log ${REINPLACE_CMD} -e 's|^COMPILE=|& noisycc=yes| ; \ s|^LINK=|& noisycc=yes|' ${WRKSRC}/mk/hdr.mk -.if defined(WITHOUT_LAYOUT_BOXES) - ${REINPLACE_CMD} -e '102,104d' ${WRKSRC}/cmd/wmii/column.c -.endif .include <bsd.port.mk> diff --git a/x11-wm/wmii/files/extra-patch-slim-layout-boxes b/x11-wm/wmii/files/extra-patch-slim-layout-boxes new file mode 100644 index 000000000000..d404a93dc36e --- /dev/null +++ b/x11-wm/wmii/files/extra-patch-slim-layout-boxes @@ -0,0 +1,24 @@ +--- cmd/wmii/column.c.orig ++++ cmd/wmii/column.c +@@ -89,16 +89,12 @@ + + static void + drawimg(Image *img, ulong cbg, ulong cborder) { +- Point pt[6]; ++ Point pt[4]; + +- pt[0] = Pt(0, 0); +- pt[1] = Pt(Dx(img->r)/2 - 1, Dx(img->r)/2 - 1); +- +- pt[2] = Pt(pt[1].x, Dy(img->r)); +- pt[3] = Pt(Dx(img->r)/2, pt[2].y); +- +- pt[4] = Pt(pt[3].x, Dx(img->r)/2 - 1); +- pt[5] = Pt(Dx(img->r) - 1, 0); ++ pt[0] = Pt(Dx(img->r)/2 - 1, 0); ++ pt[1] = Pt(pt[0].x, Dy(img->r)); ++ pt[2] = Pt(Dx(img->r)/2, pt[1].y); ++ pt[3] = Pt(pt[2].x, pt[0].y); + + fillpoly(img, pt, nelem(pt), cbg); + drawpoly(img, pt, nelem(pt), CapNotLast, 1, cborder); diff --git a/x11-wm/wmii/files/patch-no-utf8 b/x11-wm/wmii/files/patch-no-utf8 new file mode 100644 index 000000000000..77b57af98e7b --- /dev/null +++ b/x11-wm/wmii/files/patch-no-utf8 @@ -0,0 +1,91 @@ +--- cmd/wmii/Makefile.orig ++++ cmd/wmii/Makefile +@@ -8,8 +8,16 @@ + HFILES= dat.h fns.h x11.h + + LIB = ${LIBIXP} +-LDFLAGS += -lm ${LIBX11} -lXext ${LIBICONV} -lregexp9 -lbio -lfmt -lutf +-CFLAGS += ${INCX11} ${INCICONV} -DVERSION=\"${VERSION}\" ++LDFLAGS += -lm ${LIBX11} -lXext -lregexp9 -lbio -lfmt -lutf ++CFLAGS += ${INCX11} -DVERSION=\"${VERSION}\" ++ ++.ifdef NO_UTF8 ++CFLAGS += -DNO_UTF8 ++.else ++LDFLAGS += ${LIBICONV} ++CFLAGS += ${INCICONV} ++.endif ++ + OBJ = area \ + bar \ + client \ +--- cmd/wmii/utf.c.orig ++++ cmd/wmii/utf.c +@@ -1,12 +1,17 @@ + /* Public Domain --Kris Maglione */ + #include "dat.h" + #include <errno.h> ++#ifndef NO_UTF8 + #include <iconv.h> ++#endif + #include <string.h> + #include "fns.h" + + char* + toutf8n(char *str, size_t nstr) { ++#ifdef NO_UTF8 ++ return strndup(str, nstr); ++#else + static iconv_t cd; + char *buf, *pos; + size_t nbuf, bsize; +@@ -30,6 +35,7 @@ + break; + *pos = '\0'; + return buf; ++#endif + } + + char* +--- cmd/wmii/x11.c.orig ++++ cmd/wmii/x11.c +@@ -18,6 +18,12 @@ + static MapEnt *wbucket[137]; + static MapEnt *abucket[137]; + ++#ifdef NO_UTF8 ++#define XTEXT(func) Xmb##func ++#else ++#define XTEXT(func) Xutf8##func ++#endif ++ + XRectangle + XRect(Rectangle r) { + XRectangle xr; +@@ -444,7 +450,7 @@ + + setgccol(dst, col); + if(font->set) +- Xutf8DrawString(display, dst->image, ++ XTEXT(DrawString)(display, dst->image, + font->set, dst->gc, + x, y, + buf, len); +@@ -552,7 +558,7 @@ + XRectangle r; + + if(font->set) { +- Xutf8TextExtents(font->set, text, len, &r, nil); ++ XTEXT(TextExtents)(font->set, text, len, &r, nil); + return r.width; + } + return XTextWidth(font->xfont, text, len); +@@ -638,7 +644,7 @@ + + XGetTextProperty(display, w->w, &prop, xatom(name)); + if(prop.nitems > 0) { +- if(Xutf8TextPropertyToTextList(display, &prop, &list, &n) == Success) ++ if(XTEXT(TextPropertyToTextList)(display, &prop, &list, &n) == Success) + *ret = list; + XFree(prop.value); + } |