Skip to content

Commit

Permalink
x11-toolkits/wlroots: fork 0.16 into a pinned port
Browse files Browse the repository at this point in the history
Some consumers are ready for 0.17 API but many are not. For smooth
transition use non-default PREFIX, so both can be installed together.
  • Loading branch information
jbeich committed Nov 21, 2023
1 parent 31c7d46 commit 1648060
Show file tree
Hide file tree
Showing 6 changed files with 224 additions and 0 deletions.
1 change: 1 addition & 0 deletions x11-toolkits/Makefile
Expand Up @@ -230,6 +230,7 @@
SUBDIR += wlroots
SUBDIR += wlroots-devel
SUBDIR += wlroots015
SUBDIR += wlroots016
SUBDIR += wmapp
SUBDIR += wxgtk30
SUBDIR += wxgtk32
Expand Down
75 changes: 75 additions & 0 deletions x11-toolkits/wlroots016/Makefile
@@ -0,0 +1,75 @@
PORTNAME= wlroots
DISTVERSION= 0.16.2
CATEGORIES= x11-toolkits
PKGNAMESUFFIX= 016

PATCH_SITES+= https://github.com/swaywm/${GL_PROJECT}/commit/:github
PATCHFILES+= fc0854d5f256.patch:-p1:github # https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/2064
PATCHFILES+= 29cb694655db.patch:-p1:github # https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/2064
PATCH_SITES+= ${GL_SITE}/${GL_ACCOUNT}/${GL_PROJECT}/-/commit/
PATCHFILES+= f3ba14e49133.patch:-p1 # https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3850

MAINTAINER= jbeich@FreeBSD.org
COMMENT= Modular Wayland compositor library (deprecated 0.16.* series)
WWW= https://gitlab.freedesktop.org/wlroots/wlroots

LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE

BUILD_DEPENDS= wayland-protocols>=1.27: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
MESON_ARGS= -Dexamples=false -Dbackends=${BACKENDS:ts,} -Drenderers=${RENDERERS:ts,}

.ifdef PKGNAMESUFFIX
PORTSCOUT= limit:^0\.16\.
PREFIX= ${LOCALBASE}/${PKGBASE} # avoid conflict with the default
MESON_ARGS+= -Ddatadir="${LOCALBASE}/share"
.endif

OPTIONS_DEFINE= DRM OPENGL VULKAN X11
OPTIONS_DEFAULT=DRM OPENGL VULKAN X11
OPTIONS_SUB= yes

DRM_DESC= KMS console support
DRM_BUILD_DEPENDS= hwdata>0:misc/hwdata
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 <bsd.port.mk>
9 changes: 9 additions & 0 deletions x11-toolkits/wlroots016/distinfo
@@ -0,0 +1,9 @@
TIMESTAMP = 1676068199
SHA256 (wlroots-0.16.2.tar.bz2) = afea2cc740344c4e86749cf4908e07692e183cb14a3db854d24dec454c664b88
SIZE (wlroots-0.16.2.tar.bz2) = 437628
SHA256 (fc0854d5f256.patch) = ceaa947fd7f64b773c61d7a5a4bdcfe85a083a686d4356ff58d3666aa182e2a9
SIZE (fc0854d5f256.patch) = 6013
SHA256 (29cb694655db.patch) = ef36e6b7a0bea0b82469c395feac303f50bf940ae651d91370ef052f5d97938c
SIZE (29cb694655db.patch) = 4233
SHA256 (f3ba14e49133.patch) = fb61329725f9482eae15100ae46c59159f39abc3324937e92fdf5065155944a9
SIZE (f3ba14e49133.patch) = 1976
8 changes: 8 additions & 0 deletions x11-toolkits/wlroots016/override.mk
@@ -0,0 +1,8 @@
WLR_SUFFIX= 016

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"
28 changes: 28 additions & 0 deletions x11-toolkits/wlroots016/pkg-descr
@@ -0,0 +1,28 @@
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.
103 changes: 103 additions & 0 deletions x11-toolkits/wlroots016/pkg-plist
@@ -0,0 +1,103 @@
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_damage_ring.h
include/wlr/types/wlr_data_control_v1.h
include/wlr/types/wlr_data_device.h
include/wlr/types/wlr_drm.h
%%DRM%%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_idle_notify_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_single_pixel_buffer_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
%%X11%%include/wlr/xwayland/server.h
%%X11%%include/wlr/xwayland/xwayland.h
lib/libwlroots.so
lib/libwlroots.so.11
libdata/pkgconfig/wlroots.pc

0 comments on commit 1648060

Please sign in to comment.