From 69cc2cb827707d29ec901ff33aa4b16a00167ba2 Mon Sep 17 00:00:00 2001 From: Jan Beich Date: Sat, 5 Feb 2022 21:14:24 +0000 Subject: x11-wm/sway-devel: add new port Mainly useful for testing bleeding edge wlroots co-installed under non-default PREFIX due to many API-breaking changes. --- x11-toolkits/Makefile | 1 + x11-toolkits/wlroots-devel/Makefile | 74 +++++++++++++++++++++++++ x11-toolkits/wlroots-devel/distinfo | 9 ++++ x11-toolkits/wlroots-devel/override.mk | 8 +++ x11-toolkits/wlroots-devel/pkg-descr | 30 +++++++++++ x11-toolkits/wlroots-devel/pkg-plist | 98 ++++++++++++++++++++++++++++++++++ x11-wm/Makefile | 1 + x11-wm/sway-devel/Makefile | 68 +++++++++++++++++++++++ x11-wm/sway-devel/distinfo | 7 +++ x11-wm/sway-devel/pkg-descr | 5 ++ x11-wm/sway-devel/pkg-message | 9 ++++ x11-wm/sway-devel/pkg-plist | 32 +++++++++++ x11-wm/sway/Makefile | 2 + 13 files changed, 344 insertions(+) create mode 100644 x11-toolkits/wlroots-devel/Makefile create mode 100644 x11-toolkits/wlroots-devel/distinfo create mode 100644 x11-toolkits/wlroots-devel/override.mk create mode 100644 x11-toolkits/wlroots-devel/pkg-descr create mode 100644 x11-toolkits/wlroots-devel/pkg-plist create mode 100644 x11-wm/sway-devel/Makefile create mode 100644 x11-wm/sway-devel/distinfo create mode 100644 x11-wm/sway-devel/pkg-descr create mode 100644 x11-wm/sway-devel/pkg-message create mode 100644 x11-wm/sway-devel/pkg-plist diff --git a/x11-toolkits/Makefile b/x11-toolkits/Makefile index c4570c6a235b..2648e3424696 100644 --- a/x11-toolkits/Makefile +++ b/x11-toolkits/Makefile @@ -216,6 +216,7 @@ SUBDIR += vte SUBDIR += vte3 SUBDIR += wlroots + SUBDIR += wlroots-devel SUBDIR += wmapp SUBDIR += wxgtk28 SUBDIR += wxgtk28-common diff --git a/x11-toolkits/wlroots-devel/Makefile b/x11-toolkits/wlroots-devel/Makefile new file mode 100644 index 000000000000..9ca152dbf067 --- /dev/null +++ b/x11-toolkits/wlroots-devel/Makefile @@ -0,0 +1,74 @@ +PORTNAME= wlroots +DISTVERSION= 0.15.0-291 +DISTVERSIONSUFFIX= -g${GL_COMMIT:C/(.{12}).*/\1/} +CATEGORIES= x11-toolkits +PKGNAMESUFFIX= -devel + +PATCH_SITES+= https://github.com/swaywm/${GL_PROJECT}/commit/:github +PATCHFILES+= 7c0e2a271a4c.patch:-p1:github # https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/2064 +PATCHFILES+= cd9c857901a4.patch:-p1:github # https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/2064 +PATCH_SITES+= ${GL_SITE}/${GL_ACCOUNT}/${GL_PROJECT}/-/commit/ +PATCHFILES+= 347b32642fb6.patch:-p1 # https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3318 + +MAINTAINER= jbeich@FreeBSD.org +COMMENT= Modular Wayland compositor library (development snapshot) + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS= wayland-protocols>=1.25:graphics/wayland-protocols +LIB_DEPENDS= libudev.so:devel/libudev-devd \ + libdrm.so:graphics/libdrm \ + libwayland-server.so:graphics/wayland \ + libseat.so:sysutils/seatd \ + libxkbcommon.so:x11/libxkbcommon + +USES= compiler:c11 gl meson pkgconfig xorg +USE_GITLAB= yes +USE_GL= gbm +USE_XORG= pixman +USE_LDCONFIG= yes +GL_SITE= https://gitlab.freedesktop.org +GL_COMMIT= c20468cfa292e99357fd504fc5b5884f6078ca96 +MESON_ARGS= -Dexamples=false -Dbackends=${BACKENDS:ts,} -Drenderers=${RENDERERS:ts,} + +.ifdef PKGNAMESUFFIX +PORTSCOUT= ignore:1 +PREFIX= ${LOCALBASE}/${PKGBASE} # avoid conflict with the default +.endif + +OPTIONS_DEFINE= DRM OPENGL VULKAN X11 +OPTIONS_DEFAULT=DRM OPENGL VULKAN X11 +OPTIONS_SUB= yes + +DRM_DESC= KMS console support +DRM_LIB_DEPENDS= libinput.so:x11/libinput +DRM_VARS= BACKENDS+="drm libinput" + +OPENGL_RUN_DEPENDS= mesa-dri>0:graphics/mesa-dri +OPENGL_USE= GL=egl,glesv2 +OPENGL_VARS= RENDERERS+=gles2 + +VULKAN_DESC= Vulkan renderer +VULKAN_BUILD_DEPENDS= glslangValidator:graphics/glslang \ + vulkan-headers>0:graphics/vulkan-headers +VULKAN_LIB_DEPENDS= libvulkan.so:graphics/vulkan-loader +VULKAN_RUN_DEPENDS= mesa-dri>0:graphics/mesa-dri +VULKAN_VARS= RENDERERS+=vulkan + +X11_LIB_DEPENDS= libxcb-errors.so:x11/xcb-util-errors \ + libxcb-render-util.so:x11/xcb-util-renderutil \ + libxcb-icccm.so:x11/xcb-util-wm +X11_BUILD_DEPENDS= evdev-proto>0:devel/evdev-proto \ + xwayland-devel>0:x11-servers/xwayland-devel +X11_RUN_DEPENDS= xwayland-devel>0:x11-servers/xwayland-devel +X11_USE= XORG=xcb +X11_MESON_ENABLED= xwayland +X11_VARS= BACKENDS+=x11 + +post-patch: +# Extract (snapshot) version from the port instead of meson.build + @${REINPLACE_CMD} "/STR/s/meson.project_version()/'${DISTVERSIONFULL}'/" \ + ${WRKSRC}/include/wlr/meson.build + +.include diff --git a/x11-toolkits/wlroots-devel/distinfo b/x11-toolkits/wlroots-devel/distinfo new file mode 100644 index 000000000000..ddba2e8c492b --- /dev/null +++ b/x11-toolkits/wlroots-devel/distinfo @@ -0,0 +1,9 @@ +TIMESTAMP = 1656048042 +SHA256 (wlroots-wlroots-c20468cfa292e99357fd504fc5b5884f6078ca96_GL0.tar.gz) = 2e5a2fcce9ec0884c9a2a77e6e606b1e2de70f11ab17e05d8900ef1886621ad9 +SIZE (wlroots-wlroots-c20468cfa292e99357fd504fc5b5884f6078ca96_GL0.tar.gz) = 575367 +SHA256 (7c0e2a271a4c.patch) = 2b92d3dde7640061ed85ab1690031f7627bebc2366e8c4da217017188ba7195e +SIZE (7c0e2a271a4c.patch) = 5729 +SHA256 (cd9c857901a4.patch) = a5b14368851f51c9a5e5effdc8421a2c64386c02f47630e5ab049b7a82197ffb +SIZE (cd9c857901a4.patch) = 4231 +SHA256 (347b32642fb6.patch) = 56804ce34cd02cb3b2b11a0dbf27c2820c2c0d112f351cdaed5d160e0536d418 +SIZE (347b32642fb6.patch) = 3810 diff --git a/x11-toolkits/wlroots-devel/override.mk b/x11-toolkits/wlroots-devel/override.mk new file mode 100644 index 000000000000..45bd059006f2 --- /dev/null +++ b/x11-toolkits/wlroots-devel/override.mk @@ -0,0 +1,8 @@ +WLR_SUFFIX= -devel + +BUILD_DEPENDS:= ${BUILD_DEPENDS:S/wlroots/&${WLR_SUFFIX}/g} +LIB_DEPENDS:= ${LIB_DEPENDS:S/wlroots$/&${WLR_SUFFIX}/} + +USES+= localbase # -isystem +CONFIGURE_ENV+= PKG_CONFIG_PATH="${LOCALBASE}/wlroots${WLR_SUFFIX}/libdata/pkgconfig" +MAKE_ENV+= PKG_CONFIG_PATH="${LOCALBASE}/wlroots${WLR_SUFFIX}/libdata/pkgconfig" diff --git a/x11-toolkits/wlroots-devel/pkg-descr b/x11-toolkits/wlroots-devel/pkg-descr new file mode 100644 index 000000000000..79be101fb60b --- /dev/null +++ b/x11-toolkits/wlroots-devel/pkg-descr @@ -0,0 +1,30 @@ +Pluggable, composable, unopinionated modules for building a Wayland +compositor; or about 60,000 lines of code you were going to write anyway. + +- wlroots provides backends that abstract the underlying display and input + hardware, including KMS/DRM, libinput, Wayland, X11, and headless backends, + plus any custom backends you choose to write, which can all be created or + destroyed at runtime and used in concert with each other. +- wlroots provides unopinionated, mostly standalone implementations of many + Wayland interfaces, both from wayland.xml and various protocol extensions. + We also promote the standardization of portable extensions across + many compositors. +- wlroots provides several powerful, standalone, and optional tools that + implement components common to many compositors, such as the arrangement of + outputs in physical space. +- wlroots provides an Xwayland abstraction that allows you to have excellent + Xwayland support without worrying about writing your own X11 window manager + on top of writing your compositor. +- wlroots provides a renderer abstraction that simple compositors can use to + avoid writing GL code directly, but which steps out of the way when your + needs demand custom rendering code. + +wlroots implements a huge variety of Wayland compositor features and implements +them *right*, so you can focus on the features that make your compositor +unique. By using wlroots, you get high performance, excellent hardware +compatibility, broad support for many wayland interfaces, and comfortable +development tools - or any subset of these features you like, because all of +them work independently of one another and freely compose with anything you want +to implement yourself. + +WWW: https://gitlab.freedesktop.org/wlroots/wlroots diff --git a/x11-toolkits/wlroots-devel/pkg-plist b/x11-toolkits/wlroots-devel/pkg-plist new file mode 100644 index 000000000000..f9950f6c2832 --- /dev/null +++ b/x11-toolkits/wlroots-devel/pkg-plist @@ -0,0 +1,98 @@ +include/wlr/backend.h +%%DRM%%include/wlr/backend/drm.h +include/wlr/backend/headless.h +include/wlr/backend/interface.h +%%DRM%%include/wlr/backend/libinput.h +include/wlr/backend/multi.h +include/wlr/backend/session.h +include/wlr/backend/wayland.h +%%X11%%include/wlr/backend/x11.h +include/wlr/config.h +include/wlr/interfaces/wlr_buffer.h +include/wlr/interfaces/wlr_keyboard.h +include/wlr/interfaces/wlr_output.h +include/wlr/interfaces/wlr_pointer.h +include/wlr/interfaces/wlr_switch.h +include/wlr/interfaces/wlr_tablet_pad.h +include/wlr/interfaces/wlr_tablet_tool.h +include/wlr/interfaces/wlr_touch.h +include/wlr/render/allocator.h +include/wlr/render/dmabuf.h +include/wlr/render/drm_format_set.h +%%OPENGL%%include/wlr/render/egl.h +%%OPENGL%%include/wlr/render/gles2.h +include/wlr/render/interface.h +include/wlr/render/pixman.h +%%VULKAN%%include/wlr/render/vulkan.h +include/wlr/render/wlr_renderer.h +include/wlr/render/wlr_texture.h +include/wlr/types/wlr_buffer.h +include/wlr/types/wlr_compositor.h +include/wlr/types/wlr_cursor.h +include/wlr/types/wlr_data_control_v1.h +include/wlr/types/wlr_data_device.h +include/wlr/types/wlr_drm.h +include/wlr/types/wlr_drm_lease_v1.h +include/wlr/types/wlr_export_dmabuf_v1.h +include/wlr/types/wlr_foreign_toplevel_management_v1.h +include/wlr/types/wlr_fullscreen_shell_v1.h +include/wlr/types/wlr_gamma_control_v1.h +include/wlr/types/wlr_idle.h +include/wlr/types/wlr_idle_inhibit_v1.h +include/wlr/types/wlr_input_device.h +include/wlr/types/wlr_input_inhibitor.h +include/wlr/types/wlr_input_method_v2.h +include/wlr/types/wlr_keyboard.h +include/wlr/types/wlr_keyboard_group.h +include/wlr/types/wlr_keyboard_shortcuts_inhibit_v1.h +include/wlr/types/wlr_layer_shell_v1.h +include/wlr/types/wlr_linux_dmabuf_v1.h +include/wlr/types/wlr_matrix.h +include/wlr/types/wlr_output.h +include/wlr/types/wlr_output_damage.h +include/wlr/types/wlr_output_layout.h +include/wlr/types/wlr_output_management_v1.h +include/wlr/types/wlr_output_power_management_v1.h +include/wlr/types/wlr_pointer.h +include/wlr/types/wlr_pointer_constraints_v1.h +include/wlr/types/wlr_pointer_gestures_v1.h +include/wlr/types/wlr_presentation_time.h +include/wlr/types/wlr_primary_selection.h +include/wlr/types/wlr_primary_selection_v1.h +include/wlr/types/wlr_region.h +include/wlr/types/wlr_relative_pointer_v1.h +include/wlr/types/wlr_scene.h +include/wlr/types/wlr_screencopy_v1.h +include/wlr/types/wlr_seat.h +include/wlr/types/wlr_server_decoration.h +include/wlr/types/wlr_session_lock_v1.h +include/wlr/types/wlr_subcompositor.h +include/wlr/types/wlr_surface.h +include/wlr/types/wlr_switch.h +include/wlr/types/wlr_tablet_pad.h +include/wlr/types/wlr_tablet_tool.h +include/wlr/types/wlr_tablet_v2.h +include/wlr/types/wlr_text_input_v3.h +include/wlr/types/wlr_touch.h +include/wlr/types/wlr_viewporter.h +include/wlr/types/wlr_virtual_keyboard_v1.h +include/wlr/types/wlr_virtual_pointer_v1.h +include/wlr/types/wlr_xcursor_manager.h +include/wlr/types/wlr_xdg_activation_v1.h +include/wlr/types/wlr_xdg_decoration_v1.h +include/wlr/types/wlr_xdg_foreign_registry.h +include/wlr/types/wlr_xdg_foreign_v1.h +include/wlr/types/wlr_xdg_foreign_v2.h +include/wlr/types/wlr_xdg_output_v1.h +include/wlr/types/wlr_xdg_shell.h +include/wlr/util/addon.h +include/wlr/util/box.h +include/wlr/util/edges.h +include/wlr/util/log.h +include/wlr/util/region.h +include/wlr/version.h +include/wlr/xcursor.h +%%X11%%include/wlr/xwayland.h +lib/libwlroots.so +lib/libwlroots.so.11 +libdata/pkgconfig/wlroots.pc diff --git a/x11-wm/Makefile b/x11-wm/Makefile index 5aaccc312fd6..8acbb5c0fcef 100644 --- a/x11-wm/Makefile +++ b/x11-wm/Makefile @@ -100,6 +100,7 @@ SUBDIR += stumpwm SUBDIR += subtle SUBDIR += sway + SUBDIR += sway-devel SUBDIR += tinywm SUBDIR += transset SUBDIR += treewm diff --git a/x11-wm/sway-devel/Makefile b/x11-wm/sway-devel/Makefile new file mode 100644 index 000000000000..2c7f399a957b --- /dev/null +++ b/x11-wm/sway-devel/Makefile @@ -0,0 +1,68 @@ +PORTNAME= sway +DISTVERSION= 1.7-103 +DISTVERSIONSUFFIX= -g445bc2a94 +CATEGORIES= x11-wm +PKGNAMESUFFIX= -devel + +PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/ +PATCHFILES+= cd9d1038a822.patch:-p1 # https://github.com/swaywm/sway/pull/5090 +PATCHFILES+= f98ca3ab7ca1.patch:-p1 # https://github.com/swaywm/sway/pull/5090 + +MAINTAINER= jbeich@FreeBSD.org +COMMENT= i3-compatible Wayland compositor (development snapshot) + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS= evdev-proto>0:devel/evdev-proto \ + wayland-protocols>=1.24:graphics/wayland-protocols \ + wlroots>=0.15.0.289<0.17.0:x11-toolkits/wlroots +LIB_DEPENDS= libjson-c.so:devel/json-c \ + libevdev.so:devel/libevdev \ + libudev.so:devel/libudev-devd \ + libpcre2-8.so:devel/pcre2 \ + libwayland-egl.so:graphics/wayland \ + libwlroots.so:x11-toolkits/wlroots \ + libinput.so:x11/libinput \ + libxkbcommon.so:x11/libxkbcommon +RUN_DEPENDS= swaybg:x11/swaybg + +CONFLICTS_INSTALL= ${PORTNAME} + +USES= compiler:c11 gl gnome meson pkgconfig xorg +USE_GITHUB= yes +USE_GL= glesv2 +USE_GNOME= cairo pango +USE_XORG= pixman +GH_ACCOUNT= swaywm +MESON_ARGS= -Dsd-bus-provider=basu + +OPTIONS_DEFINE= BASU MANPAGES PIXBUF X11 +OPTIONS_DEFAULT=BASU MANPAGES PIXBUF X11 +OPTIONS_SUB= yes + +BASU_DESC= Tray in swaybar via basu +BASU_LIB_DEPENDS= libbasu.so:devel/basu +BASU_MESON_ENABLED= tray + +MANPAGES_BUILD_DEPENDS= scdoc>=1.9.2:textproc/scdoc +MANPAGES_MESON_ENABLED= man-pages + +PIXBUF_USE= GNOME=gdkpixbuf2 +PIXBUF_MESON_ENABLED= gdk-pixbuf + +X11_USE= XORG=xcb +X11_LIB_DEPENDS= libxcb-icccm.so:x11/xcb-util-wm +X11_MESON_ENABLED= xwayland + +post-patch: +# Let @sample handle default files under etc/ + @${REINPLACE_CMD} -e '/config\.in/{ N; s/@BASENAME@/&.sample/; }' \ + ${WRKSRC}/meson.build +# Extract (snapshot) version from the port instead of meson.build + @${REINPLACE_CMD} -i .nogit -e 's/git.found()/false/' \ + -e '/project_version/s/@0@/${DISTVERSIONFULL}/' \ + ${WRKSRC}/meson.build + +.include "${.CURDIR:H:H}/x11-toolkits/wlroots-devel/override.mk" +.include diff --git a/x11-wm/sway-devel/distinfo b/x11-wm/sway-devel/distinfo new file mode 100644 index 000000000000..6945415f7b1e --- /dev/null +++ b/x11-wm/sway-devel/distinfo @@ -0,0 +1,7 @@ +TIMESTAMP = 1656010070 +SHA256 (swaywm-sway-1.7-103-g445bc2a94_GH0.tar.gz) = 038d602b93536cf904bca8ca35072eaa0e83ec678cad9d07238ca7fcd0e9a601 +SIZE (swaywm-sway-1.7-103-g445bc2a94_GH0.tar.gz) = 5573327 +SHA256 (cd9d1038a822.patch) = 266891cbe27a67f81740879dbe39819e3bf0f17b681bdc93087ae05987c2f88d +SIZE (cd9d1038a822.patch) = 8968 +SHA256 (f98ca3ab7ca1.patch) = b3a427b6edbf1c89bbf5fdeb5e3fc4c6708478e6d2031fcead87d29bf5c409fa +SIZE (f98ca3ab7ca1.patch) = 2673 diff --git a/x11-wm/sway-devel/pkg-descr b/x11-wm/sway-devel/pkg-descr new file mode 100644 index 000000000000..1a91fb7204b3 --- /dev/null +++ b/x11-wm/sway-devel/pkg-descr @@ -0,0 +1,5 @@ +Sway is a tiling Wayland compositor and a drop-in replacement for the +i3 window manager for X11. It works with your existing i3 configuration +and supports most of i3's features, plus a few extras. + +WWW: https://swaywm.org/ diff --git a/x11-wm/sway-devel/pkg-message b/x11-wm/sway-devel/pkg-message new file mode 100644 index 000000000000..9017b1d5a888 --- /dev/null +++ b/x11-wm/sway-devel/pkg-message @@ -0,0 +1,9 @@ +[ +{ type: install + message: <