diff --git a/x11-wm/picom/Makefile b/x11-wm/picom/Makefile index 7fb80301e60f..ddea986b420c 100644 --- a/x11-wm/picom/Makefile +++ b/x11-wm/picom/Makefile @@ -1,77 +1,78 @@ PORTNAME= picom DISTVERSIONPREFIX= v DISTVERSION= 12.1 +PORTREVISION= 1 CATEGORIES= x11-wm MAINTAINER= yukiteruamano@volfread.xyz COMMENT= Lightweight X11 compositor WWW= https://github.com/yshui/picom LICENSE= MIT MPL20 LICENSE_COMB= multi LICENSE_FILE_MIT= ${WRKSRC}/LICENSES/MIT BUILD_DEPENDS= ${LOCALBASE}/include/uthash.h:devel/uthash LIB_DEPENDS= libev.so:devel/libev \ libxcb-image.so:x11/xcb-util-image \ libxcb-render-util.so:x11/xcb-util-renderutil \ libxcb-util.so:x11/xcb-util RUN_DEPENDS= xprop:x11/xprop \ xwininfo:x11/xwininfo USES= compiler:c11 desktop-file-utils localbase meson pkgconfig xorg USE_GITHUB= yes GH_ACCOUNT= yshui GH_PROJECT= picom USE_XORG= pixman x11 xcb xext MESON_ARGS= -Dcompton=false -Dunittest=true TEST_TARGET= test PLIST_FILES= bin/${PORTNAME} \ bin/${PORTNAME}-inspect \ bin/${PORTNAME}-trans \ "@sample etc/xdg/${PORTNAME}.conf.sample" \ etc/xdg/autostart/${PORTNAME}.desktop \ libdata/pkgconfig/${PORTNAME}-api.pc \ share/applications/${PORTNAME}.desktop OPTIONS_DEFINE= CONFIG DBUS DOCS DRM OPENGL PCRE OPTIONS_DEFAULT= CONFIG DBUS OPENGL PCRE CONFIG_DESC= Configuration file parsing support DRM_DESC= DRM VSync fallback (deprecated) CONFIG_LIB_DEPENDS= libconfig.so:devel/libconfig DBUS_LIB_DEPENDS= libdbus-1.so:devel/dbus DBUS_MESON_TRUE= dbus DOCS_BUILD_DEPENDS= a2x:textproc/asciidoc \ asciidoctor:textproc/rubygem-asciidoctor DOCS_MESON_TRUE= with_docs DOCS_PLIST_FILES= share/man/man1/${PORTNAME}-inspect.1.gz \ share/man/man1/${PORTNAME}-trans.1.gz \ share/man/man1/${PORTNAME}.1.gz DRM_LIB_DEPENDS= libdrm.so:graphics/libdrm DRM_MESON_TRUE= vsync_drm OPENGL_LIB_DEPENDS= libepoxy.so:graphics/libepoxy OPENGL_MESON_TRUE= opengl PCRE_LIB_DEPENDS= libpcre2-8.so:devel/pcre2 PCRE_MESON_TRUE= regex post-patch: @${REINPLACE_CMD} -e 's,/etc,${PREFIX}&,' \ ${WRKSRC}/man/${PORTNAME}.1.adoc \ ${WRKSRC}/src/config.c post-install: ${MKDIR} ${STAGEDIR}${PREFIX}/etc/xdg ${INSTALL_DATA} ${WRKSRC}/${PORTNAME}.sample.conf \ ${STAGEDIR}${PREFIX}/etc/xdg/${PORTNAME}.conf.sample .include diff --git a/x11-wm/picom/files/patch-src_transition_script.h b/x11-wm/picom/files/patch-src_transition_script.h new file mode 100644 index 000000000000..0c74aa74a935 --- /dev/null +++ b/x11-wm/picom/files/patch-src_transition_script.h @@ -0,0 +1,12 @@ +# Official fixes for 32-bit compilation +--- src/transition/script.h.orig 2024-09-28 23:22:13 UTC ++++ src/transition/script.h +@@ -45,8 +45,6 @@ typedef struct config_setting_t config_setting_t; + SCRIPT_EVAL_OK, + }; + typedef struct config_setting_t config_setting_t; +-static_assert(alignof(double) > alignof(unsigned), "double/unsigned has unexpected " +- "alignment"); + + #define SCRIPT_CTX_PLACEHOLDER_BASE (0x40000000) + diff --git a/x11-wm/picom/files/patch-src_vblank.c b/x11-wm/picom/files/patch-src_vblank.c new file mode 100644 index 000000000000..b6f42d3023ef --- /dev/null +++ b/x11-wm/picom/files/patch-src_vblank.c @@ -0,0 +1,12 @@ +# Official fixes for 32-bit compilation +--- src/vblank.c.orig 2024-09-28 23:22:13 UTC ++++ src/vblank.c +@@ -409,7 +409,7 @@ static void handle_present_complete_notify(struct pres + + struct timespec now; + clock_gettime(CLOCK_MONOTONIC, &now); +- auto now_us = (unsigned long)(now.tv_sec * 1000000L + now.tv_nsec / 1000); ++ auto now_us = (uint64_t)now.tv_sec * 1000000UL + (uint64_t)now.tv_nsec / 1000; + + // X sometimes sends duplicate/bogus MSC events, when screen has just been turned + // off. Don't use the msc value in these events. We treat this as not receiving a diff --git a/x11-wm/picom/files/patch-src_wm_wm.h b/x11-wm/picom/files/patch-src_wm_wm.h new file mode 100644 index 000000000000..7e84979d2cb8 --- /dev/null +++ b/x11-wm/picom/files/patch-src_wm_wm.h @@ -0,0 +1,12 @@ +# Official fixes for 32-bit compilation +--- src/wm/wm.h.orig 2024-09-28 23:22:13 UTC ++++ src/wm/wm.h +@@ -63,7 +63,7 @@ typedef struct wm_treeid { + typedef struct wm_treeid { + /// The generation of the window ID. This is used to detect if the window ID is + /// reused. Inherited from the wm_tree at cr +- uint64_t gen; ++ alignas(8) uint64_t gen; + /// The X window ID. + xcb_window_t x; +