x11-wm/phoc: bundle wlroots 0.12.0-1-gb2fd6d8d a la x11-wm/gamescope

Buggy with wlroots >= 0.13 and breaks with >= 0.15. Alpine, Fedora, Debian
use system wlroots-0.12 but in ports/ it'd cause package conflicts.

Inspired by:	NixPkgs
This commit is contained in:
Jan Beich 2021-09-06 02:52:41 +00:00
parent e3e44b1a47
commit 4ea852fab0
4 changed files with 52 additions and 82 deletions

View file

@ -1,17 +1,9 @@
PORTNAME= phoc PORTNAME= phoc
DISTVERSIONPREFIX= v DISTVERSIONPREFIX= v
DISTVERSION= 0.8.0 DISTVERSION= 0.8.0
PORTREVISION= 1
CATEGORIES= x11-wm CATEGORIES= x11-wm
PATCH_SITES= ${GL_SITE}/${GL_ACCOUNT}/${GL_PROJECT}/-/commit/
PATCHFILES+= 4912c5a9454b.patch:-p1 # https://gitlab.gnome.org/World/Phosh/phoc/-/merge_requests/241
PATCHFILES+= 00e5da6dd7a2.patch:-p1 # https://gitlab.gnome.org/World/Phosh/phoc/-/merge_requests/241
PATCHFILES+= b278fd6b4f57.patch:-p1 # https://gitlab.gnome.org/World/Phosh/phoc/-/merge_requests/241
PATCHFILES+= 3f418c11d813.patch:-p1 # https://gitlab.gnome.org/World/Phosh/phoc/-/merge_requests/241
PATCHFILES+= 4a688ffec053.patch:-p1 # https://gitlab.gnome.org/World/Phosh/phoc/-/merge_requests/241
PATCHFILES+= 8010e3d9ca00.patch:-p1 # https://gitlab.gnome.org/World/Phosh/phoc/-/merge_requests/241
PATCHFILES+= 8ec2886673d3.patch:-p1 # https://gitlab.gnome.org/World/Phosh/phoc/-/merge_requests/241
MAINTAINER= jbeich@FreeBSD.org MAINTAINER= jbeich@FreeBSD.org
COMMENT= Phone compositor COMMENT= Phone compositor
@ -19,7 +11,7 @@ LICENSE= GPLv3+
LICENSE_FILE= ${WRKSRC}/COPYING LICENSE_FILE= ${WRKSRC}/COPYING
BUILD_DEPENDS= evdev-proto>0:devel/evdev-proto \ BUILD_DEPENDS= evdev-proto>0:devel/evdev-proto \
wlroots>=0.14.0:x11-toolkits/wlroots wlroots>=0.12.0<0.13.0:x11-toolkits/wlroots
LIB_DEPENDS= libwayland-server.so:graphics/wayland \ LIB_DEPENDS= libwayland-server.so:graphics/wayland \
libwlroots.so:x11-toolkits/wlroots \ libwlroots.so:x11-toolkits/wlroots \
libinput.so:x11/libinput \ libinput.so:x11/libinput \
@ -39,13 +31,18 @@ CFLAGS+= -Wno-error=format-nonliteral # clang
PLIST_FILES= bin/${PORTNAME} PLIST_FILES= bin/${PORTNAME}
GLIB_SCHEMAS= sm.puri.phoc.gschema.xml GLIB_SCHEMAS= sm.puri.phoc.gschema.xml
post-extract: # https://gitlab.gnome.org/World/Phosh/phoc/-/merge_requests/241
# Avoid confusing Meson instead of forcing -Dembed-wlroots=disabled BUILD_DEPENDS:= ${BUILD_DEPENDS:N*wlroots*}
@${RMDIR} ${WRKSRC}/subprojects/wlroots LIB_DEPENDS:= ${LIB_DEPENDS:N*wlroots*} \
.if defined(PATCHFILES) && ${PATCHFILES:M4912c5a9454b*} libudev.so:devel/libudev-devd \
# Pretend to be a regular file for vendor patch to apply as is libdrm.so:graphics/libdrm \
@${ECHO_CMD} "Subproject commit 3d227f140e3c4af42d759477fc38e82a4c3dc4ef" \ libseat.so:sysutils/seatd \
>${WRKSRC}/subprojects/wlroots libxcb-errors.so:x11/xcb-util-errors \
.endif libxcb-icccm.so:x11/xcb-util-wm
RUN_DEPENDS+= xwayland-devel>0:x11-servers/xwayland-devel
USE_XORG+= x11
USE_GL+= gbm egl
GL_TUPLE+= https://source.puri.sm:Librem5:wlroots:b2fd6d8dd88d67ee48be67f5be4ee614a5826b13:wlroots/subprojects/wlroots
PLIST_FILES+= "@comment libdata/pkgconfig/wlroots.pc"
.include <bsd.port.mk> .include <bsd.port.mk>

View file

@ -1,17 +1,5 @@
TIMESTAMP = 1625875601 TIMESTAMP = 1625875601
SHA256 (World/Phosh-phoc-527689df1300277af2cdfc872474c8322e38f690_GL0.tar.gz) = 3403ef0eb064013ec5e2b6df966bf461649d16aab2f8d8df8c632cec81dffb53 SHA256 (World/Phosh-phoc-527689df1300277af2cdfc872474c8322e38f690_GL0.tar.gz) = 3403ef0eb064013ec5e2b6df966bf461649d16aab2f8d8df8c632cec81dffb53
SIZE (World/Phosh-phoc-527689df1300277af2cdfc872474c8322e38f690_GL0.tar.gz) = 144698 SIZE (World/Phosh-phoc-527689df1300277af2cdfc872474c8322e38f690_GL0.tar.gz) = 144698
SHA256 (4912c5a9454b.patch) = dc833187095b92132df7cdef804e3aa5521cad360b43fc4370bd6b72e708c84f SHA256 (Librem5-wlroots-b2fd6d8dd88d67ee48be67f5be4ee614a5826b13_GL0.tar.gz) = ed0a9dd277d0943c46d9aca7e2ed88bae3315044bcc5ad76c7565e45dadafea8
SIZE (4912c5a9454b.patch) = 23928 SIZE (Librem5-wlroots-b2fd6d8dd88d67ee48be67f5be4ee614a5826b13_GL0.tar.gz) = 477031
SHA256 (00e5da6dd7a2.patch) = 123d7e9d13c178ef98fbeea55fedd1204061185fe3ea740333dc51ba6439fdbb
SIZE (00e5da6dd7a2.patch) = 5575
SHA256 (b278fd6b4f57.patch) = 851dcb0fa5a9cc537bdb71dc6ca30e19228580094ebbaf88c735af69a94640fa
SIZE (b278fd6b4f57.patch) = 4110
SHA256 (3f418c11d813.patch) = 45ca59ff8bcc4316286c814b6264d202866b561bbc431514537d9d86b51396de
SIZE (3f418c11d813.patch) = 3930
SHA256 (4a688ffec053.patch) = 5c1ba160d978e2b2a6543db22b83ae9f54308684ed2475afaa1d01e2442cff32
SIZE (4a688ffec053.patch) = 3583
SHA256 (8010e3d9ca00.patch) = f485ed1d76c932d262752fd9d1b6bc242fa03c39b312b72cddfb8b8ef84d4ed2
SIZE (8010e3d9ca00.patch) = 1378
SHA256 (8ec2886673d3.patch) = 1524f637af620b62d6eecb043703ff0ab6615b1fecb2563880f179e6dae28c53
SIZE (8ec2886673d3.patch) = 2753

View file

@ -0,0 +1,35 @@
wlroots 0.12.0 is out-of-date and has no other consumers. Keep it
private to phoc package for now.
--- subprojects/wlroots/include/meson.build.orig 2021-08-20 08:28:34 UTC
+++ subprojects/wlroots/include/meson.build
@@ -8,7 +8,9 @@ if conf_data.get('WLR_HAS_XWAYLAND', 0) != 1
exclude_files += 'xwayland.h'
endif
+if not meson.is_subproject()
install_subdir('wlr',
install_dir: get_option('includedir'),
exclude_files: exclude_files,
)
+endif
--- subprojects/wlroots/include/wlr/meson.build.orig 2021-08-20 08:28:34 UTC
+++ subprojects/wlroots/include/wlr/meson.build
@@ -16,4 +16,6 @@ ver_h = configure_file(
configuration: version_data,
)
+if not meson.is_subproject()
install_headers(conf_h, ver_h, subdir: 'wlr')
+endif
--- subprojects/wlroots/meson.build.orig 2021-08-20 08:28:34 UTC
+++ subprojects/wlroots/meson.build
@@ -161,7 +161,7 @@ lib_wlr = library(
soversion: soversion,
dependencies: wlr_deps,
include_directories: [wlr_inc, proto_inc],
- install: true,
+ install: not meson.is_subproject(),
link_args : symbols_flag,
link_depends: symbols_file,
)

View file

@ -1,50 +0,0 @@
../src/desktop.c:17:10: fatal error: 'wlr/types/wlr_gtk_primary_selection.h' file not found
#include <wlr/types/wlr_gtk_primary_selection.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../tests/test-xdg-shell.c:7:
In file included from ../tests/testlib.h:6:
In file included from ../src/server.h:14:
../src/desktop.h:11:10: fatal error: 'wlr/types/wlr_gtk_primary_selection.h' file not found
#include <wlr/types/wlr_gtk_primary_selection.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--- src/desktop.c.orig 2021-07-10 00:06:41 UTC
+++ src/desktop.c
@@ -14,7 +14,7 @@
#include <wlr/types/wlr_data_control_v1.h>
#include <wlr/types/wlr_export_dmabuf_v1.h>
#include <wlr/types/wlr_gamma_control_v1.h>
-#include <wlr/types/wlr_gtk_primary_selection.h>
+#include <wlr/types/wlr_primary_selection_v1.h>
#include <wlr/types/wlr_idle.h>
#include <wlr/types/wlr_input_inhibitor.h>
#include <wlr/types/wlr_layer_shell_v1.h>
@@ -600,7 +600,7 @@ phoc_desktop_constructed (GObject *object)
WLR_SERVER_DECORATION_MANAGER_MODE_CLIENT);
self->idle = wlr_idle_create(server->wl_display);
self->primary_selection_device_manager =
- wlr_gtk_primary_selection_device_manager_create(server->wl_display);
+ wlr_primary_selection_v1_device_manager_create(server->wl_display);
self->input_inhibit =
wlr_input_inhibit_manager_create(server->wl_display);
self->input_inhibit_activate.notify = input_inhibit_activate;
--- src/desktop.h.orig 2021-07-10 00:06:41 UTC
+++ src/desktop.h
@@ -8,7 +8,7 @@
#include <wlr/types/wlr_compositor.h>
#include <wlr/types/wlr_foreign_toplevel_management_v1.h>
#include <wlr/types/wlr_gamma_control_v1.h>
-#include <wlr/types/wlr_gtk_primary_selection.h>
+#include <wlr/types/wlr_primary_selection.h>
#include <wlr/types/wlr_idle.h>
#include <wlr/types/wlr_input_inhibitor.h>
#include <wlr/types/wlr_input_method_v2.h>
@@ -68,7 +68,7 @@ struct _PhocDesktop {
struct wlr_export_dmabuf_manager_v1 *export_dmabuf_manager_v1;
struct wlr_server_decoration_manager *server_decoration_manager;
struct wlr_xdg_decoration_manager_v1 *xdg_decoration_manager;
- struct wlr_gtk_primary_selection_device_manager *primary_selection_device_manager;
+ struct wlr_primary_selection_v1_device_manager *primary_selection_device_manager;
struct wlr_idle *idle;
struct wlr_input_inhibit_manager *input_inhibit;
struct wlr_layer_shell_v1 *layer_shell;