Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 10 Nov 2019 15:37:37 +0000 (UTC)
From:      Jan Beich <jbeich@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r517213 - in head/x11-wm: . chamfer chamfer/files
Message-ID:  <201911101537.xAAFbb6O080027@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jbeich
Date: Sun Nov 10 15:37:37 2019
New Revision: 517213
URL: https://svnweb.freebsd.org/changeset/ports/517213

Log:
  x11-wm/chamfer: add new port
  
  Chamferwm is a dynamic tiling window manager with a built-in Vulkan
  based compositor. Besides aiming to be a fully featured and highly
  configurable window manager, significant effort is put to provide a
  complete control over the appearance of the desktop. With its shader
  based customization system, Chamferwm enables rendering of arbitrary
  window decorations, borders and effects, maximizing the potential for
  visual personalization.
  
  Window manager:
  - Dynamic horizontal and vertical tiling with gaps and stacking
  - Specify container size restrictions, overlap when necessary
  - Resize and translate individual containers in their place while
    keeping the surrounding layout
  - Floating containers and automatic dialog, dock, widget etc. handling
  - Yank and paste containers to move them within the tree hierarchy
    along with typical move operations
  - Configuration with python, scriptable behaviour with client and
    container specific callbacks
  - Fully keyboard controllable
  
  Compositor:
  - Vulkan renderer
  - Arbitrary window decorations and borders with user supplied shaders
  - Per-client materials
  - Optional, alternatively use any other external compositor
  
  https://jaelpark.github.io/chamferwm-docs/

Added:
  head/x11-wm/chamfer/
  head/x11-wm/chamfer/Makefile   (contents, props changed)
  head/x11-wm/chamfer/distinfo   (contents, props changed)
  head/x11-wm/chamfer/files/
  head/x11-wm/chamfer/files/patch-main.cpp   (contents, props changed)
  head/x11-wm/chamfer/pkg-descr   (contents, props changed)
  head/x11-wm/chamfer/pkg-plist   (contents, props changed)
Modified:
  head/x11-wm/Makefile   (contents, props changed)

Modified: head/x11-wm/Makefile
==============================================================================
--- head/x11-wm/Makefile	Sun Nov 10 15:36:04 2019	(r517212)
+++ head/x11-wm/Makefile	Sun Nov 10 15:37:37 2019	(r517213)
@@ -17,6 +17,7 @@
     SUBDIR += bspwm
     SUBDIR += cage
     SUBDIR += ccsm
+    SUBDIR += chamfer
     SUBDIR += clementine-wm
     SUBDIR += compiz
     SUBDIR += compiz-fusion

Added: head/x11-wm/chamfer/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11-wm/chamfer/Makefile	Sun Nov 10 15:37:37 2019	(r517213)
@@ -0,0 +1,55 @@
+# $FreeBSD$
+
+PORTNAME=	chamfer
+DISTVERSION=	s20191106
+CATEGORIES=	x11-wm
+
+MAINTAINER=	jbeich@FreeBSD.org
+COMMENT=	Tiling X11 window manager with Vulkan compositor
+
+LICENSE=	BSD3CLAUSE
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	${LOCALBASE}/include/vulkan/vulkan.h:devel/vulkan-headers \
+		glslc:graphics/shaderc \
+		glm>0:math/glm
+LIB_DEPENDS=	libboost_filesystem.so:devel/boost-libs \
+		${PY_BOOST} \
+		libvulkan.so:graphics/vulkan-loader \
+		libxcb-cursor.so:x11/xcb-util-cursor \
+		libxcb-keysyms.so:x11/xcb-util-keysyms \
+		libxcb-icccm.so:x11/xcb-util-wm
+RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}psutil>0:sysutils/py-psutil@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}xlib>0:x11-toolkits/py-xlib@${PY_FLAVOR}
+
+USES=		compiler:c++17-lang meson localbase pkgconfig python:3.3+ xorg
+USE_GITHUB=	yes
+USE_XORG=	xcb
+GH_ACCOUNT=	jaelpark
+GH_PROJECT=	${PORTNAME}wm
+GH_TAGNAME=	176bb1d
+CXXFLAGS+=	-Wno-narrowing
+
+post-patch:
+	@${REINPLACE_CMD} -e 's,/usr,${PREFIX},' \
+		${WRKSRC}/src/config.cpp ${WRKSRC}/src/main.cpp
+# XXX import('python').find_installation().dependency()
+# XXX https://github.com/mesonbuild/meson/issues/4788
+	@${REINPLACE_CMD} -e '/boost/!s/python3/python-${PYTHON_VER}/' \
+		-e '/boost/s/python3/python${PYTHON_SUFFIX}/' \
+		${WRKSRC}/meson.build
+
+do-install:
+	${INSTALL_PROGRAM} ${INSTALL_WRKSRC}/${PORTNAME} \
+		${STAGEDIR}${PREFIX}/bin
+	${MKDIR} ${STAGEDIR}${DATADIR}/shaders
+	${INSTALL_DATA} ${INSTALL_WRKSRC}/*.spv \
+		${STAGEDIR}${DATADIR}/shaders
+	${MKDIR} ${STAGEDIR}${DATADIR}/config
+	${INSTALL_DATA} ${WRKSRC}/config/config.py \
+		${STAGEDIR}${DATADIR}/config/config.py.sample
+	${MKDIR} ${STAGEDIR}${PREFIX}/share/xsessions/
+	${INSTALL_DATA} ${WRKSRC}/share/${PORTNAME}.desktop \
+		${STAGEDIR}${PREFIX}/share/xsessions/
+
+.include <bsd.port.mk>

Added: head/x11-wm/chamfer/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11-wm/chamfer/distinfo	Sun Nov 10 15:37:37 2019	(r517213)
@@ -0,0 +1,3 @@
+TIMESTAMP = 1573053413
+SHA256 (jaelpark-chamferwm-s20191106-176bb1d_GH0.tar.gz) = 9821401d30cfb7c3babdd63322d37318314a430f8dfba82b067559597146102e
+SIZE (jaelpark-chamferwm-s20191106-176bb1d_GH0.tar.gz) = 119191

Added: head/x11-wm/chamfer/files/patch-main.cpp
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11-wm/chamfer/files/patch-main.cpp	Sun Nov 10 15:37:37 2019	(r517213)
@@ -0,0 +1,13 @@
+- Add default shader path
+
+--- src/main.cpp.orig	2019-08-02 19:10:02 UTC
++++ src/main.cpp
+@@ -806,7 +806,7 @@ int main(sint argc, const char **pargv){	
+ 	args::ValueFlag<uint> deviceIndexOpt(group_comp,"id","GPU to use by its index. By default the first device in the list of enumerated GPUs will be used.",{"device-index"});
+ 	args::Flag debugLayersOpt(group_comp,"debugLayers","Enable Vulkan debug layers.",{"debug-layers",'l'},false);
+ 	args::Flag noScissoringOpt(group_comp,"noScissoring","Disable scissoring optimization.",{"no-scissoring"},false);
+-	args::ValueFlagList<std::string> shaderPaths(group_comp,"path","Shader lookup path. SPIR-V shader objects are identified by an '.spv' extension. Multiple paths may be specified.",{"shader-path"});
++	args::ValueFlagList<std::string> shaderPaths(group_comp,"path","Shader lookup path. SPIR-V shader objects are identified by an '.spv' extension. Multiple paths may be specified.",{"shader-path"},{"/usr/share/chamfer/shaders"});
+ 
+ 	try{
+ 		parser.ParseCLI(argc,pargv);

Added: head/x11-wm/chamfer/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11-wm/chamfer/pkg-descr	Sun Nov 10 15:37:37 2019	(r517213)
@@ -0,0 +1,27 @@
+Chamferwm is a dynamic tiling window manager with a built-in Vulkan
+based compositor. Besides aiming to be a fully featured and highly
+configurable window manager, significant effort is put to provide a
+complete control over the appearance of the desktop. With its shader
+based customization system, Chamferwm enables rendering of arbitrary
+window decorations, borders and effects, maximizing the potential for
+visual personalization.
+
+Window manager:
+- Dynamic horizontal and vertical tiling with gaps and stacking
+- Specify container size restrictions, overlap when necessary
+- Resize and translate individual containers in their place while
+  keeping the surrounding layout
+- Floating containers and automatic dialog, dock, widget etc. handling
+- Yank and paste containers to move them within the tree hierarchy
+  along with typical move operations
+- Configuration with python, scriptable behaviour with client and
+  container specific callbacks
+- Fully keyboard controllable
+
+Compositor:
+- Vulkan renderer
+- Arbitrary window decorations and borders with user supplied shaders
+- Per-client materials
+- Optional, alternatively use any other external compositor
+
+WWW: https://jaelpark.github.io/chamferwm-docs/

Added: head/x11-wm/chamfer/pkg-plist
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11-wm/chamfer/pkg-plist	Sun Nov 10 15:37:37 2019	(r517213)
@@ -0,0 +1,10 @@
+bin/chamfer
+@sample %%DATADIR%%/config/config.py.sample
+%%DATADIR%%/shaders/default_fragment.spv
+%%DATADIR%%/shaders/default_geometry.spv
+%%DATADIR%%/shaders/default_vertex.spv
+%%DATADIR%%/shaders/frame_fragment.spv
+%%DATADIR%%/shaders/frame_geometry.spv
+%%DATADIR%%/shaders/frame_vertex.spv
+%%DATADIR%%/shaders/solid_fragment.spv
+share/xsessions/chamfer.desktop



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201911101537.xAAFbb6O080027>