Re: [Update] wayland/scenefx 0.5

Volker Schlecht <[email protected]>
Newsgroups gmane.os.openbsd.ports
Message-ID <[email protected]>
On 7/11/26 8:00 AM, [email protected] wrote:
[...]
> scenefx-0.5(wayland/scenefx):
> Missing: lcms2.3 from lcms2-2.18pl20260420 (/usr/local/lib/libscenefx-0.5.so.0.0)
> WANTLIB += lcms2

Oh crap. Thanks for pointing it out - fix attached.


> *** Error 1 in target 'port-lib-depends-check' (ignored)
> /usr/local/lib/libscenefx-0.5.so.0.0 --> /usr/ports/pobj/scenefx-0.5/fake-amd64/usr/local/lib/libscenefx-0.5.so.0.0
> No dynamic export changes

> Just lcms2 WANTLIB and bumping SHARED_LIBS for scenefx maybe? I would
> err on the side of caution. 
There's really no point in bumping libscenefx-0.5.so because as of yet only
libscenefx-0.4.so exists. If the need should arise, we *could* handle scenefx
like wlroots and keep multiple versions in ports.

But as long as wayland/mango is the only consumer that's a useless exercise :-)
scenefx-0.5.diff (text/x-patch, 7.6 KB)
Index: Makefile
===================================================================
RCS file: /cvs/ports/wayland/scenefx/Makefile,v
retrieving revision 1.2
diff -u -p -r1.2 Makefile
--- Makefile	13 Jun 2026 13:41:30 -0000	1.2
+++ Makefile	11 Jul 2026 09:48:59 -0000
@@ -1,29 +1,30 @@
 COMMENT =		drop-in replacement for the wlroots scene API
 
-V =			0.4.1
-SCENEFX_LIBV =		0.4
-REVISION =		0
+V =			0.5
+SCENEFX_LIBV =		0.5
 
 DIST_TUPLE=		github wlrfx scenefx ${V} .
 
 CATEGORIES =		wayland
 
-SHARED_LIBS +=		scenefx-${SCENEFX_LIBV} 0.0 # 0.4
+SHARED_LIBS +=		scenefx-${SCENEFX_LIBV} 0.0 # 0.5
 
 # MIT
 PERMIT_PACKAGE =	Yes
 
+WANTLIB += EGL GLESv2 drm gbm m lcms2 pixman-1 wayland-server
+
 COMPILER =		base-clang ports-gcc
 
 MODULES =		devel/meson wayland/wlroots
 
+MODWLROOTS_VERSION =	0.20
+
 BUILD_DEPENDS =		wayland/wayland-protocols
 
 LIB_DEPENDS =		wayland/wayland
 
 SUBST_VARS +=		SCENEFX_LIBV
-
-WANTLIB += EGL GLESv2 drm gbm m pixman-1 wayland-server
 
 .include <bsd.port.mk>
 
Index: distinfo
===================================================================
RCS file: /cvs/ports/wayland/scenefx/distinfo,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 distinfo
--- distinfo	6 Apr 2026 19:17:09 -0000	1.1.1.1
+++ distinfo	11 Jul 2026 09:48:59 -0000
@@ -1,2 +1,2 @@
-SHA256 (wlrfx-scenefx-0.4.1.tar.gz) = +iP2/1CRaNSl6wxafvO4zz054/uhgyDCglbmyRyF2f8=
-SIZE (wlrfx-scenefx-0.4.1.tar.gz) = 92158
+SHA256 (wlrfx-scenefx-0.5.tar.gz) = D6jsyg4xD4E+/QUmJMXtfZFT1qD96tXMlX00wH+ahsY=
+SIZE (wlrfx-scenefx-0.5.tar.gz) = 109708
Index: patches/patch-include_scenefx_types_fx_clipped_region_h
===================================================================
RCS file: patches/patch-include_scenefx_types_fx_clipped_region_h
diff -N patches/patch-include_scenefx_types_fx_clipped_region_h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ patches/patch-include_scenefx_types_fx_clipped_region_h	11 Jul 2026 09:48:59 -0000
@@ -0,0 +1,58 @@
+Index: include/scenefx/types/fx/clipped_region.h
+--- include/scenefx/types/fx/clipped_region.h.orig
++++ include/scenefx/types/fx/clipped_region.h
+@@ -15,7 +15,7 @@ struct fx_corner_radii {
+ 
+ #define CORNER_RADIUS_MAX (UINT16_MAX)
+ 
+-static __always_inline uint16_t corner_radius_clamp(int radius) {
++static inline uint16_t corner_radius_clamp(int radius) {
+ 	if (radius <= 0) {
+ 		return 0;
+ 	}
+@@ -27,7 +27,7 @@ static __always_inline uint16_t corner_radius_clamp(in
+ 	return radius;
+ }
+ 
+-static __always_inline struct fx_corner_radii corner_radii_new(int top_left, int top_right, int bottom_right, int bottom_left) {
++static inline struct fx_corner_radii corner_radii_new(int top_left, int top_right, int bottom_right, int bottom_left) {
+ 	return (struct fx_corner_radii) {
+ 		corner_radius_clamp(top_left),
+ 		corner_radius_clamp(top_right),
+@@ -36,15 +36,15 @@ static __always_inline struct fx_corner_radii corner_r
+ 	};
+ }
+ 
+-static __always_inline struct fx_corner_radii corner_radii_all(int radius) {
++static inline struct fx_corner_radii corner_radii_all(int radius) {
+ 	return corner_radii_new(radius, radius, radius, radius);
+ }
+ 
+-static __always_inline struct fx_corner_radii corner_radii_none(void) {
++static inline struct fx_corner_radii corner_radii_none(void) {
+ 	return corner_radii_all(0);
+ }
+ 
+-#define corner_radii_func(name, tl, tr, br, bl) static __always_inline struct fx_corner_radii corner_radii_##name(int radius) { return corner_radii_new(tl, tr, br, bl); }
++#define corner_radii_func(name, tl, tr, br, bl) static inline struct fx_corner_radii corner_radii_##name(int radius) { return corner_radii_new(tl, tr, br, bl); }
+ 
+ corner_radii_func(top, radius, radius, 0, 0);
+ corner_radii_func(bottom, 0, 0, radius, radius);
+@@ -63,7 +63,7 @@ bool fx_corner_radii_eq(struct fx_corner_radii lhs, st
+  *
+  * This can be compared to an `AND` operation
+  */
+-static __always_inline struct fx_corner_radii fx_corner_radii_filter(struct fx_corner_radii input, struct fx_corner_radii filter) {
++static inline struct fx_corner_radii fx_corner_radii_filter(struct fx_corner_radii input, struct fx_corner_radii filter) {
+ 	return corner_radii_new(
+ 		input.top_left && filter.top_left ? input.top_left : 0,
+ 		input.top_right && filter.top_right ? input.top_right : 0,
+@@ -77,7 +77,7 @@ static __always_inline struct fx_corner_radii fx_corne
+  *
+  * This can be compared to an `OR` operation
+  */
+-static __always_inline struct fx_corner_radii fx_corner_radii_pick(struct fx_corner_radii lhs, struct fx_corner_radii rhs) {
++static inline struct fx_corner_radii fx_corner_radii_pick(struct fx_corner_radii lhs, struct fx_corner_radii rhs) {
+ 	return corner_radii_new(
+ 		lhs.top_left ? lhs.top_left : rhs.top_left,
+ 		lhs.top_right ? lhs.top_right : rhs.top_right,
Index: patches/patch-include_types_fx_clipped_region_h
===================================================================
RCS file: patches/patch-include_types_fx_clipped_region_h
diff -N patches/patch-include_types_fx_clipped_region_h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ patches/patch-include_types_fx_clipped_region_h	11 Jul 2026 09:48:59 -0000
@@ -0,0 +1,12 @@
+Index: include/types/fx/clipped_region.h
+--- include/types/fx/clipped_region.h.orig
++++ include/types/fx/clipped_region.h
+@@ -20,7 +20,7 @@ struct clipped_fregion {
+     struct fx_corner_fradii corners;
+ };
+ 
+-static __always_inline bool clipped_fregion_is_valid(const struct clipped_fregion *fregion) {
++static inline bool clipped_fregion_is_valid(const struct clipped_fregion *fregion) {
+ 	return !fx_corner_fradii_is_empty(&fregion->corners) && !wlr_box_empty(&fregion->area);
+ };
+ 
Index: patches/patch-meson_build
===================================================================
RCS file: /cvs/ports/wayland/scenefx/patches/patch-meson_build,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 patch-meson_build
--- patches/patch-meson_build	6 Apr 2026 19:17:09 -0000	1.1.1.1
+++ patches/patch-meson_build	11 Jul 2026 09:48:59 -0000
@@ -3,7 +3,7 @@ No librt on OpenBSD
 Index: meson.build
 --- meson.build.orig
 +++ meson.build
-@@ -110,7 +110,6 @@ pixman = dependency('pixman-1',
+@@ -128,7 +128,6 @@ pixman = dependency('pixman-1',
  	default_options: ['werror=false'],
  )
  math = cc.find_library('m')
@@ -11,11 +11,11 @@ Index: meson.build
  
  scenefx_files = []
  scenefx_deps = [
-@@ -120,7 +119,6 @@ scenefx_deps = [
+@@ -138,7 +137,6 @@ scenefx_deps = [
  	xkbcommon,
  	pixman,
  	math,
 -	rt,
  ]
  
- subdir('protocol')
+ # Tracy
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/wayland/scenefx/pkg/PLIST,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 PLIST
--- pkg/PLIST	6 Apr 2026 19:17:09 -0000	1.1.1.1
+++ pkg/PLIST	11 Jul 2026 09:48:59 -0000
@@ -2,14 +2,14 @@ include/scenefx-${SCENEFX_LIBV}/
 include/scenefx-${SCENEFX_LIBV}/scenefx/
 include/scenefx-${SCENEFX_LIBV}/scenefx/render/
 include/scenefx-${SCENEFX_LIBV}/scenefx/render/fx_renderer/
-include/scenefx-${SCENEFX_LIBV}/scenefx/render/fx_renderer/fx_effect_framebuffers.h
+include/scenefx-${SCENEFX_LIBV}/scenefx/render/fx_renderer/fx_offscreen_buffers.h
 include/scenefx-${SCENEFX_LIBV}/scenefx/render/fx_renderer/fx_renderer.h
 include/scenefx-${SCENEFX_LIBV}/scenefx/render/pass.h
 include/scenefx-${SCENEFX_LIBV}/scenefx/types/
 include/scenefx-${SCENEFX_LIBV}/scenefx/types/fx/
 include/scenefx-${SCENEFX_LIBV}/scenefx/types/fx/blur_data.h
 include/scenefx-${SCENEFX_LIBV}/scenefx/types/fx/clipped_region.h
-include/scenefx-${SCENEFX_LIBV}/scenefx/types/fx/corner_location.h
+include/scenefx-${SCENEFX_LIBV}/scenefx/types/linked_node.h
 include/scenefx-${SCENEFX_LIBV}/scenefx/types/wlr_scene.h
 @lib lib/libscenefx-${SCENEFX_LIBV}.so.${LIBscenefx-${SCENEFX_LIBV}_VERSION}
 lib/pkgconfig/scenefx-${SCENEFX_LIBV}.pc
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.