aboutsummaryrefslogtreecommitdiff
path: root/x11-wm/hyprland/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'x11-wm/hyprland/Makefile')
-rw-r--r--x11-wm/hyprland/Makefile85
1 files changed, 36 insertions, 49 deletions
diff --git a/x11-wm/hyprland/Makefile b/x11-wm/hyprland/Makefile
index 6e020ec322bd..18218c2e08be 100644
--- a/x11-wm/hyprland/Makefile
+++ b/x11-wm/hyprland/Makefile
@@ -1,12 +1,18 @@
PORTNAME= hyprland
DISTVERSIONPREFIX= v
-DISTVERSION= 0.48.1
-PORTREVISION= 2
+DISTVERSION= 0.50.1
CATEGORIES= x11-wm wayland
+MASTER_SITES= https://github.com/hyprwm/Hyprland/releases/download/${DISTVERSIONFULL}/
+DISTNAME= source-${DISTVERSIONFULL}
+DIST_SUBDIR= ${PORTNAME}
-MAINTAINER= jbeich@FreeBSD.org
+PATCH_SITES= https://github.com/hyprwm/Hyprland/commit/
+PATCHFILES+= ecc04e8ba7469fb01c5a066bf1c48d5cd58d1a18.patch:-p1 # avoid app hang
+PATCHFILES+= 66a6ef3859255f2a21c1e902a4b5f56562e87041.patch:-p1 # see #10437
+
+MAINTAINER= tagattie@FreeBSD.org
COMMENT= Dynamic tiling Wayland compositor that doesn't sacrifice on its looks #'
-WWW= https://hyprland.org/
+WWW= https://hypr.land/
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
@@ -14,7 +20,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= evdev-proto>0:devel/evdev-proto \
glaze>0:devel/glaze \
hyprwayland-scanner>=0.3.10:devel/hyprwayland-scanner \
- wayland-protocols>=1.41:graphics/wayland-protocols
+ wayland-protocols>=1.43:graphics/wayland-protocols
LIB_DEPENDS= libhyprlang.so:devel/hyprlang \
libhyprutils.so:devel/hyprutils \
libinotify.so:devel/libinotify \
@@ -23,81 +29,65 @@ LIB_DEPENDS= libhyprlang.so:devel/hyprlang \
libhyprgraphics.so:graphics/hyprgraphics \
libdrm.so:graphics/libdrm \
libwayland-server.so:graphics/wayland \
- libuuid.so:misc/e2fsprogs-libuuid \
+ libuuid.so:misc/libuuid \
libaquamarine.so:x11-toolkits/aquamarine \
libhyprcursor.so:x11/hyprcursor \
libinput.so:x11/libinput \
libxkbcommon.so:x11/libxkbcommon
-USES= cmake compiler:c++11-lib gl gnome pkgconfig xorg
-USE_GITHUB= yes
+USES= cmake compiler:c++23-lang gl gnome pkgconfig xorg
+
USE_GL= egl gbm opengl
-USE_GNOME= cairo pango
+USE_GNOME= cairo glib20 pango
USE_XORG= pixman xcursor
-GH_ACCOUNT= hyprwm
-GH_PROJECT= Hyprland
-GH_TUPLE= hyprwm:hyprland-protocols:v0.6.2:hyprland_protocols/subprojects/hyprland-protocols \
- canihavesomecoffee:udis86:1.7.2-186-g5336633:udis86/subprojects/udis86
-CMAKE_OFF= CMAKE_CXX_SCAN_FOR_MODULES # avoid devel/llvm*
+
CMAKE_ON= NO_SYSTEMD
+CMAKE_OFF= CMAKE_CXX_SCAN_FOR_MODULES # avoid devel/llvm*
+
LDFLAGS+= -Wl,--as-needed # GL, pango deps
-# Generated by "make update-hash" for commit_pins in hyprpm.toml
-GH_HASH= 29e2e59fdbab8ed2cc23a20e3c6043d5decb5cdc
+WRKSRC= ${WRKDIR}/${PORTNAME}-source
-# XXX Drop after FreeBSD 13.4 EOL around 2026-01-31
+# XXX Drop after FreeBSD 13.5 EOL around 2026-04-30
# https://cgit.freebsd.org/src/commit/?id=af93fea71038
.if !exists(/usr/include/sys/timerfd.h)
LIB_DEPENDS+= libepoll-shim.so:devel/libepoll-shim
.endif
-OPTIONS_DEFINE= QT6 X11
-OPTIONS_DEFAULT=QT6 X11
+OPTIONS_DEFINE= QT6 X11
+OPTIONS_DEFAULT= QT6 X11
QT6_RUN_DEPENDS= hyprland-dialog:x11/hyprland-qtutils
-X11_USE= XORG=xcb
X11_LIB_DEPENDS= libxcb-errors.so:x11/xcb-util-errors \
libxcb-icccm.so:x11/xcb-util-wm
+X11_USE= XORG=xcb
X11_CMAKE_BOOL_OFF= NO_XWAYLAND
+.include <bsd.port.options.mk>
+
+# XXX Delete after 14.2-RELEASE EoL (2025-09-30)
+# #embed directive in C23 standard requires llvm 19 or later
+.if ${OPSYS} == FreeBSD && (${OSVERSION} >= 1400000 && ${OSVERSION} < 1402501)
+USES+= llvm:min=19
+.endif
+
post-patch:
-# Extract (snapshot) version from the port instead of CMakeLists.txt
- @${REINPLACE_CMD} -i .nogit \
- -e '/^HASH/s/=.*/=${GH_HASH}/' \
- -e '/^BRANCH/s/=.*/=main/' \
- -e '/^MESSAGE/s/=.*/="?"/' \
- -e "/^DATE/s/=.*/=\"$$(date -ur $$(${AWK} \
- '/TIMESTAMP/ { print $$3 }' ${DISTINFO_FILE}))\"/" \
- -e '/^DIRTY/s/=.*/=portbld/' \
- -e '/^TAG/s/=.*/=${DISTVERSIONFULL}/' \
- -e '/^COMMITS/s/=.*/="?"/' \
- ${WRKSRC}/scripts/generateVersion.sh
# Respect consolekit2 as XDG_RUNTIME_DIR fallback
- @${REINPLACE_CMD} 's,/run/user,/var&,' \
+ @${REINPLACE_CMD} 's|/run/user|/var&|' \
${WRKSRC}/hyprctl/main.cpp \
${WRKSRC}/src/Compositor.cpp
# Respect PREFIX for wallpapers
- @${REINPLACE_CMD} 's,/usr/share,${DATADIR:H},' \
+ @${REINPLACE_CMD} 's|/usr/share|${DATADIR:H}|' \
${WRKSRC}/src/render/OpenGL.cpp
# XXX Replace linprocfs(4) with sysctl(3)
- @${REINPLACE_CMD} -e 's,/proc,${LINUXBASE}&,g' \
+ @${REINPLACE_CMD} -e 's|/proc|${LINUXBASE}&|g' \
${WRKSRC}/src/desktop/Window.cpp \
${WRKSRC}/src/plugins/HookSystem.cpp
post-install:
-# Plugin API installs all headers (no private vs. public)
- @(cd ${STAGEDIR}${PREFIX} && ${FIND} include/${PORTNAME} ! -type d) >>${TMPPLIST}
-
-update-hash:
-# https://docs.github.com/en/rest/commits/commits#get-a-commit
-# Pretend to be curl(1) for pretty-printed JSON to help parse with sed(1)
- @${REINPLACE_CMD} -i '' -e "/^GH_HASH=/s/=.*/= $$(\
- ${SETENV} HTTP_USER_AGENT=curl ${FETCH_CMD} -qo- \
- https://api.github.com/repos/${GH_ACCOUNT}/${GH_PROJECT}/commits/${GH_TAGNAME} | \
- ${SED} -n '/sha/ { s/.*\"\([0-9a-f]\{40\}\).*/\1/p; q; }' \
- )/" \
- ${.CURDIR}/Makefile
+ @${RM} ${STAGEDIR}${PREFIX}/bin/hyprland
+ @${RLN} ${STAGEDIR}${PREFIX}/bin/Hyprland ${STAGEDIR}${PREFIX}/bin/hyprland
.include <bsd.port.mk>
@@ -106,6 +96,3 @@ update-hash:
llvm_ARGS= build
.include "${USESDIR}/llvm.mk"
.endif
-
-# XXX Work around !target(makesum)
-makesum: update-hash