diff --git a/x11-wm/hyprland/Makefile b/x11-wm/hyprland/Makefile index 7998197655b5..50994a12ee87 100644 --- a/x11-wm/hyprland/Makefile +++ b/x11-wm/hyprland/Makefile @@ -1,111 +1,110 @@ PORTNAME= hyprland DISTVERSIONPREFIX= v -DISTVERSION= 0.41.2 -PORTREVISION= 1 +DISTVERSION= 0.42.0 CATEGORIES= x11-wm wayland MAINTAINER= jbeich@FreeBSD.org COMMENT= Dynamic tiling Wayland compositor that doesn't sacrifice on its looks #' WWW= https://hyprland.org/ LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= evdev-proto>0:devel/evdev-proto \ hyprwayland-scanner>=0.3.10:devel/hyprwayland-scanner \ wayland-protocols>=1.35:graphics/wayland-protocols LIB_DEPENDS= libhyprlang.so:devel/hyprlang \ libhyprutils.so:devel/hyprutils \ libtomlplusplus.so:devel/tomlplusplus \ libdrm.so:graphics/libdrm \ libwayland-server.so:graphics/wayland \ libuuid.so:misc/e2fsprogs-libuuid \ - libwlroots-${PORTNAME}.so:x11-toolkits/wlroots-${PORTNAME} \ + libaquamarine.so:x11-toolkits/aquamarine \ libhyprcursor.so:x11/hyprcursor \ libinput.so:x11/libinput \ libxkbcommon.so:x11/libxkbcommon USES= cmake:indirect compiler:c++11-lib gl gnome meson pkgconfig xorg USE_GITHUB= yes -USE_GL= egl opengl +USE_GL= egl gbm opengl USE_GNOME= cairo pango -USE_XORG= pixman +USE_XORG= pixman xcursor GH_ACCOUNT= hyprwm GH_PROJECT= Hyprland GH_TUPLE= hyprwm:hyprland-protocols:v0.2-5-ge06482e:hyprland_protocols/subprojects/hyprland-protocols \ canihavesomecoffee:udis86:1.7.2-186-g5336633:udis86/subprojects/udis86 MESON_ARGS= -Dsystemd=disabled # Generated by "make update-hash" for commit_pins in hyprpm.toml -GH_HASH= 918d8340afd652b011b937d29d5eea0be08467f5 +GH_HASH= 9a09eac79b85c846e3a865a9078a3f8ff65a9259 # XXX Drop after FreeBSD 14.0 EOL around 2024-10-01 .if exists(/usr/lib/libc++.so) && !exists(/usr/include/c++/v1/__format/write_escaped.h) CXXFLAGS+= -fexperimental-library .endif # XXX Drop after FreeBSD 13.4 EOL around 2026-01-31 # 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= X11 OPTIONS_DEFAULT=X11 X11_USE= XORG=xcb X11_LIB_DEPENDS= libxcb-errors.so:x11/xcb-util-errors \ libxcb-icccm.so:x11/xcb-util-wm X11_MESON_ENABLED= xwayland post-patch: # Extract (snapshot) version from the port instead of meson.build @${REINPLACE_CMD} -i .nogit \ -e "/version.*jq/s/run_command.*/'${DISTVERSIONFULL}',/" \ ${WRKSRC}/meson.build @${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&,' \ ${WRKSRC}/hyprctl/main.cpp \ ${WRKSRC}/src/Compositor.cpp # Respect PREFIX for wallpapers @${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' \ ${WRKSRC}/src/desktop/Window.cpp \ ${WRKSRC}/src/plugins/HookSystem.cpp .ifdef GH_TUPLE post-configure: @${REINPLACE_CMD} 's/meson install/& \ --skip-subprojects/' ${BUILD_WRKSRC}/build.ninja .endif 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 .include # XXX Work around !target(makesum) makesum: update-hash diff --git a/x11-wm/hyprland/distinfo b/x11-wm/hyprland/distinfo index 5d7171de50cd..c92f7eddc2d2 100644 --- a/x11-wm/hyprland/distinfo +++ b/x11-wm/hyprland/distinfo @@ -1,7 +1,7 @@ -TIMESTAMP = 1719317162 -SHA256 (hyprwm-Hyprland-v0.41.2_GH0.tar.gz) = bba2cf0ec1451eb86761e88cbc3d00e9acbfa1ea732d6ed103a2186400e93dc9 -SIZE (hyprwm-Hyprland-v0.41.2_GH0.tar.gz) = 48025946 +TIMESTAMP = 1723058230 +SHA256 (hyprwm-Hyprland-v0.42.0_GH0.tar.gz) = 70f67725c7a1745d0287a954790f323e75519a1a188a3bf4b21fd968be3f5e4a +SIZE (hyprwm-Hyprland-v0.42.0_GH0.tar.gz) = 48049320 SHA256 (hyprwm-hyprland-protocols-v0.2-5-ge06482e_GH0.tar.gz) = 05055f71e1f08496320bab54daa190f2fafec1a0e019af244edf1d37cdbf9b8a SIZE (hyprwm-hyprland-protocols-v0.2-5-ge06482e_GH0.tar.gz) = 7424 SHA256 (canihavesomecoffee-udis86-1.7.2-186-g5336633_GH0.tar.gz) = 69aff959179ff6247b375b92e797221dbd8e078eabbf1366280b0532617e7fb8 SIZE (canihavesomecoffee-udis86-1.7.2-186-g5336633_GH0.tar.gz) = 116938 diff --git a/x11-wm/hyprland/files/patch-hyprpm b/x11-wm/hyprland/files/patch-hyprpm new file mode 100644 index 000000000000..308729eb409b --- /dev/null +++ b/x11-wm/hyprland/files/patch-hyprpm @@ -0,0 +1,14 @@ +Avoid hyprpm rebuilding Hyprland outside of ports + +--- hyprpm/src/core/PluginManager.cpp.orig 2024-04-14 18:48:28 UTC ++++ hyprpm/src/core/PluginManager.cpp +@@ -316,9 +316,6 @@ eHeadersErrors CPluginManager::headersValid() { + eHeadersErrors CPluginManager::headersValid() { + const auto HLVER = getHyprlandVersion(); + +- if (!std::filesystem::exists(DataState::getHeadersPath() + "/share/pkgconfig/hyprland.pc")) +- return HEADERS_MISSING; +- + // find headers commit + std::string cmd = std::format("PKG_CONFIG_PATH=\"{}/share/pkgconfig\" pkgconf --cflags --keep-system-cflags hyprland", DataState::getHeadersPath()); + auto headers = execAndGet(cmd.c_str()); diff --git a/x11-wm/hyprland/files/patch-system-wlroots b/x11-wm/hyprland/files/patch-system-wlroots deleted file mode 100644 index 9c0643e27f17..000000000000 --- a/x11-wm/hyprland/files/patch-system-wlroots +++ /dev/null @@ -1,46 +0,0 @@ -Allow system wlroots to reduce maintenance (wlroots has tons of options) - ---- meson.build.orig 2024-04-14 18:48:28 UTC -+++ meson.build -@@ -33,8 +33,8 @@ endif - add_project_arguments('-DHAS_EXECINFO', language: 'cpp') - endif - --wlroots = subproject('wlroots-hyprland', default_options: ['examples=false', 'renderers=gles2']) --have_xwlr = wlroots.get_variable('features').get('xwayland') -+wlroots = dependency('wlroots-hyprland', default_options: ['examples=false', 'renderers=gles2']) -+have_xwlr = wlroots.get_variable(pkgconfig: 'have_xwayland', internal: 'have_xwayland') == 'true' - xcb_dep = dependency('xcb', required: get_option('xwayland')) - - cmake = import('cmake') -@@ -89,5 +89,6 @@ import('pkgconfig').generate( - url: 'https://github.com/hyprwm/Hyprland', - description: 'Hyprland header files', - install_dir: pkg_install_dir, -- subdirs: ['', 'hyprland/protocols', 'hyprland/wlroots'], -+ subdirs: ['', 'hyprland/protocols'], -+ requires_private: wlroots, - ) ---- src/meson.build.orig 2024-04-14 18:48:28 UTC -+++ src/meson.build -@@ -9,7 +9,7 @@ executable('Hyprland', src, - server_protos, - dependency('wayland-server'), - dependency('wayland-client'), -- wlroots.get_variable('wlroots'), -+ wlroots, - dependency('cairo'), - dependency('hyprcursor'), - dependency('hyprlang', version: '>= 0.3.2'), ---- hyprpm/src/core/PluginManager.cpp.orig 2024-04-14 18:48:28 UTC -+++ hyprpm/src/core/PluginManager.cpp -@@ -316,9 +316,6 @@ eHeadersErrors CPluginManager::headersValid() { - eHeadersErrors CPluginManager::headersValid() { - const auto HLVER = getHyprlandVersion(); - -- if (!std::filesystem::exists(DataState::getHeadersPath() + "/share/pkgconfig/hyprland.pc")) -- return HEADERS_MISSING; -- - // find headers commit - std::string cmd = std::format("PKG_CONFIG_PATH=\"{}/share/pkgconfig\" pkgconf --cflags --keep-system-cflags hyprland", DataState::getHeadersPath()); - auto headers = execAndGet(cmd.c_str()); diff --git a/x11-wm/hyprland/pkg-plist b/x11-wm/hyprland/pkg-plist index c9917f96dde3..70f5c4aecaba 100644 --- a/x11-wm/hyprland/pkg-plist +++ b/x11-wm/hyprland/pkg-plist @@ -1,18 +1,18 @@ bin/Hyprland bin/hyprctl bin/hyprpm share/bash-completion/completions/hyprctl share/bash-completion/completions/hyprpm share/fish/vendor_completions.d/hyprctl.fish share/fish/vendor_completions.d/hyprpm.fish -%%DATADIR%%/hyprland.conf -%%DATADIR%%/wall0.png -%%DATADIR%%/wall1.png -%%DATADIR%%/wall2.png +share/hypr/hyprland.conf +share/hypr/wall0.png +share/hypr/wall1.png +share/hypr/wall2.png share/man/man1/Hyprland.1.gz share/man/man1/hyprctl.1.gz share/pkgconfig/hyprland.pc share/wayland-sessions/hyprland.desktop share/xdg-desktop-portal/hyprland-portals.conf share/zsh/site-functions/_hyprctl share/zsh/site-functions/_hyprpm