commit:     9417726544cf261fefdbb5911c66064b67c7a543
Author:     Alfred Wingate <parona <AT> protonmail <DOT> com>
AuthorDate: Thu Aug  3 16:36:58 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Aug  7 02:53:42 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=94177265

gui-wm/hyprland: add 0.28.0

Bug: https://bugs.gentoo.org/911597
Signed-off-by: Alfred Wingate <parona <AT> protonmail.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 gui-wm/hyprland/Manifest                           |   1 +
 .../hyprland-0.28.0-no-wlroots-automagic.patch     |  14 +++
 gui-wm/hyprland/hyprland-0.28.0.ebuild             | 123 +++++++++++++++++++++
 3 files changed, 138 insertions(+)

diff --git a/gui-wm/hyprland/Manifest b/gui-wm/hyprland/Manifest
index 4b23ba20d529..5570145a5c32 100644
--- a/gui-wm/hyprland/Manifest
+++ b/gui-wm/hyprland/Manifest
@@ -1,2 +1,3 @@
 DIST hyprland-0.26.0.gh.tar.gz 1523005 BLAKE2B 
e54ebb73850f63427ff9347c7ad0cb2ffda3350baf3c4221de51b1094678f3ffdac67669f49bfe3ba416b627673f5ca8491d06e16791764ef1c39f5964f2b570
 SHA512 
b43639a8e0fdd60165b6caa51c9411bc6f97260690c5ee3d15126ef091ccf93955fdda904a226b4aeb4367785ecaba426882a2e9b726c2b79c81a2ede0f9e36a
 DIST hyprland-0.27.2.gh.tar.gz 4992717 BLAKE2B 
6725ee593edb4f7d127eb95ed567bc7344edc066a9ce818ba99bd15eb718ce1d8de86a63da5684521ccbe3ba918a3f385c3a3e662314704e60e855101d391d05
 SHA512 
92e8ca21eba52ff423654cd345d37125656c32e1262e4e76d8841ee4ba698788d46d70a5876fc9aca42440efa5dd4122f46c84365da53810284a666f5d13ce7e
+DIST hyprland-0.28.0.gh.tar.gz 14060441 BLAKE2B 
25059b74b67df222867e84f5f1d44219302e7e454ec68110b70d6e915e95913bfdc8c6112bc8725e9be61f10a44603a96ba70980a9835d4b7757363825b93326
 SHA512 
c0802f2b061d5c9265c7767fae6ddaf00c1bbf6dc620f75593ba1538f94105a9ebe1517b7be444a1e70b81fd3a4205afd8154ba9ad02b3d610b00a9440ee6a63

diff --git a/gui-wm/hyprland/files/hyprland-0.28.0-no-wlroots-automagic.patch 
b/gui-wm/hyprland/files/hyprland-0.28.0-no-wlroots-automagic.patch
new file mode 100644
index 000000000000..96b12fe497eb
--- /dev/null
+++ b/gui-wm/hyprland/files/hyprland-0.28.0-no-wlroots-automagic.patch
@@ -0,0 +1,14 @@
+# Disable automagic, otherwise wlroots will enable features if dependencies 
are present.
+diff --git a/meson.build b/meson.build
+index 6a94dee6..9608717d 100644
+--- a/meson.build
++++ b/meson.build
+@@ -39,7 +39,7 @@ add_project_arguments(
+   ],
+   language: 'cpp')
+ 
+-wlroots = subproject('wlroots', default_options: ['examples=false'])
++wlroots = subproject('wlroots', default_options: 
['backends=drm,libinput,x11','examples=false','renderers=gles2','xcb-errors=disabled'])
+ have_xwlr = wlroots.get_variable('features').get('xwayland')
+ xcb_dep = dependency('xcb', required: get_option('xwayland'))
+ 

diff --git a/gui-wm/hyprland/hyprland-0.28.0.ebuild 
b/gui-wm/hyprland/hyprland-0.28.0.ebuild
new file mode 100644
index 000000000000..5023065717c7
--- /dev/null
+++ b/gui-wm/hyprland/hyprland-0.28.0.ebuild
@@ -0,0 +1,123 @@
+# Copyright 2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit meson toolchain-funcs
+
+DESCRIPTION="A dynamic tiling Wayland compositor that doesn't sacrifice on its 
looks"
+HOMEPAGE="https://github.com/hyprwm/Hyprland";
+
+SRC_URI="https://github.com/hyprwm/${PN^}/releases/download/v${PV}/source-v${PV}.tar.gz
 -> ${P}.gh.tar.gz"
+S="${WORKDIR}/${PN}-source"
+
+KEYWORDS="~amd64"
+LICENSE="BSD"
+SLOT="0"
+IUSE="X legacy-renderer systemd video_cards_nvidia"
+
+# bundled wlroots has the following dependency string according to included 
headers.
+# wlroots[drm,gles2-renderer,libinput,x11-backend?,X?]
+# lets enable x11-backend by default
+WLROOTS_RDEPEND="
+       >=dev-libs/libinput-1.14.0:=
+       dev-libs/libliftoff
+       >=dev-libs/wayland-1.22
+       media-libs/libdisplay-info
+       media-libs/libglvnd
+       media-libs/mesa[egl(+),gles2]
+       sys-apps/hwdata:=
+       sys-auth/seatd:=
+       >=x11-libs/libdrm-2.4.114
+       x11-libs/libxkbcommon
+       >=x11-libs/pixman-0.42.0
+       virtual/libudev:=
+       X? (
+               x11-base/xwayland
+               x11-libs/libxcb:0=
+               x11-libs/xcb-util-renderutil
+               x11-libs/xcb-util-wm
+       )
+"
+WLROOTS_DEPEND="
+       >=dev-libs/wayland-protocols-1.32
+"
+WLROOTS_BDEPEND="
+       dev-util/glslang
+       dev-util/wayland-scanner
+"
+
+RDEPEND="
+       ${WLROOTS_RDEPEND}
+       dev-libs/glib:2
+       dev-libs/libinput
+       dev-libs/wayland
+       media-libs/libglvnd
+       x11-libs/cairo
+       x11-libs/libdrm
+       x11-libs/libxkbcommon
+       x11-libs/pango
+       x11-libs/pixman
+       X? (
+               x11-libs/libxcb:0=
+       )
+"
+DEPEND="
+       ${RDEPEND}
+       ${WLROOTS_DEPEND}
+       dev-libs/hyprland-protocols
+       >=dev-libs/wayland-protocols-1.25
+"
+BDEPEND="
+       ${WLROOTS_BDEPEND}
+       app-misc/jq
+       dev-util/cmake
+       dev-util/wayland-scanner
+       dev-vcs/git
+       virtual/pkgconfig
+"
+
+pkg_setup() {
+       [[ ${MERGE_TYPE} == binary ]] && return
+
+       if tc-is-gcc; then
+               STDLIBVER=$(echo '#include <string>' | $(tc-getCXX) -x c++ -dM 
-E - | \
+                                       grep GLIBCXX_RELEASE | sed 
's/.*\([1-9][0-9]\)/\1/')
+
+               if ! [[ ${STDLIBVER} -ge 12 ]]; then
+                       die "Hyprland requires >=sys-devel/gcc-12.1.0 to build"
+               fi
+       elif [[ $(clang-major-version) -lt 16 ]]; then
+               die "Hyprland requires >=sys-devel/clang-16.0.3 to build";
+       fi
+}
+
+src_prepare() {
+       if use video_cards_nvidia; then
+               cd "${S}/subprojects/wlroots" || die
+               eapply "${S}/nix/patches/wlroots-nvidia.patch"
+               # https://bugs.gentoo.org/911597
+               # https://github.com/hyprwm/Hyprland/pull/2874
+               # 
https://github.com/hyprwm/Hyprland/blob/main/nix/wlroots.nix#L54
+               sed -i -e 's/glFlush();/glFinish();/' render/gles2/renderer.c 
|| die
+               cd "${S}" || die
+       fi
+
+       eapply "${FILESDIR}/hyprland-0.28.0-no-wlroots-automagic.patch"
+
+       default
+}
+
+src_configure() {
+       local emesonargs=(
+               $(meson_feature legacy-renderer legacy_renderer)
+               $(meson_feature X xwayland)
+               $(meson_feature systemd)
+       )
+
+       meson_src_configure
+}
+
+src_install() {
+       meson_src_install --skip-subprojects wlroots
+}

Reply via email to