From dbb9e30b490e3eba0d14ef2b94dcab7b204d340f Mon Sep 17 00:00:00 2001 From: Viorel Munteanu Date: Sat, 1 Aug 2026 15:53:08 +0300 Subject: [PATCH] gui-apps/wf-shell: add 0.11.0_pre20260801 wf-shell has been updated to use gtk 4 and has a lot of improvements. There is no upstream wf-shell release 0.11 to correspond with wayfire 0.11. Create a snapsot release. Signed-off-by: Viorel Munteanu --- gui-apps/wf-shell/Manifest | 3 + .../wf-shell-0.11-add-missing-include.patch | 20 ++++ gui-apps/wf-shell/metadata.xml | 5 + .../wf-shell-0.11.0_pre20260801.ebuild | 110 ++++++++++++++++++ 4 files changed, 138 insertions(+) create mode 100644 gui-apps/wf-shell/files/wf-shell-0.11-add-missing-include.patch create mode 100644 gui-apps/wf-shell/wf-shell-0.11.0_pre20260801.ebuild diff --git a/gui-apps/wf-shell/Manifest b/gui-apps/wf-shell/Manifest index 6edd3d3f571d7..aa86ea6d3faca 100644 --- a/gui-apps/wf-shell/Manifest +++ b/gui-apps/wf-shell/Manifest @@ -1 +1,4 @@ DIST wf-shell-0.10.0.tar.xz 9167372 BLAKE2B 47297fc78906cfad9a07394cda67cabb3f9c773bd2544dd5d9deb991e4d8cc4e939aec1796ea2851dabf8111818cb61b954b39fd2116494904dc082586b99096 SHA512 beaf41010262e36f663e5ac53d173853b7d90e6958b4e5ac5b98d8a626ed15b0c5c1b9cc0e9b6d98073e9cfb8abfa1cdbfcb0a1d5b778090f7d1be4d13ef7820 +DIST wf-shell-0.11.0_pre20260801.tar.gz 39163264 BLAKE2B a71b35ab6a7c7996f52c1ebbe9d3d3b8af40f57c7c699eed1b70e02e503f33415844c84a7cbfd4ea8bebaa0758d70d2761a7e443e76bc402956eee631d19b2e7 SHA512 b7cd45bd84e43bc8bbf51dddc7e46724614cd48eab89aa2fd3ec290a7146d0ffd821f94faed7c007721d97b97e0809f367ceec7c92f46a36c077d2f209ecd598 +DIST wf-shell-gnome-volume-control.tar.gz 46452 BLAKE2B 0ebd7971eb4cb8cceb559cc7db4c1df395d489ee80360bcda8e63c42a76f74efd4c5493fe5c5a540e76b6a7f081696bc1b7f5f8d968ceaa2c6323a822f5ed5ae SHA512 ef6a103ddca784db35648acd11a423a9d65173c597c6463a572834827c9812bb1be5c8113d93a28ea99ca017dd1655b8eaf417a30b6b9085677baf373395aac1 +DIST wf-shell-wf-json-0.11.0_pre20260801.tar.gz 4921 BLAKE2B 243ff2eceddd223d40c45d05eefc34082456f23de0b9844a4340df433211ba55e03c5c519801b42070f8c2084fa52767b27ec4760fa48efdb5e8e970fda385fd SHA512 a81123b42a8bb34663344f2b40cb7f341a51592a49613cb35a1741b232f8a8b9bb35b90e9ae0fe3e3820ee387c2fbfeffad45fd7474cebc9efb11136a0e8fed9 diff --git a/gui-apps/wf-shell/files/wf-shell-0.11-add-missing-include.patch b/gui-apps/wf-shell/files/wf-shell-0.11-add-missing-include.patch new file mode 100644 index 0000000000000..1f2ef10d8b630 --- /dev/null +++ b/gui-apps/wf-shell/files/wf-shell-0.11-add-missing-include.patch @@ -0,0 +1,20 @@ +When compiling with gcc-17: + +In file included from ../wf-shell-77038bdf8a05005ff510e7e1ba3ac2054cc304ce/src/dock/toplevel.cpp:2: +../wf-shell-77038bdf8a05005ff510e7e1ba3ac2054cc304ce/src/dock/toplevel-icon.hpp:11:21: error: ‘std::string’ has not been declared + 11 | void set_app_id(std::string app_id); + | ^~~ +../wf-shell-77038bdf8a05005ff510e7e1ba3ac2054cc304ce/src/dock/toplevel-icon.hpp:1:1: note: ‘std::string’ is defined in header ‘’; this is probably fixable by adding ‘#include ’ + +++ |+#include + 1 | #pragma once + +--- a/src/dock/toplevel-icon.hpp ++++ b/src/dock/toplevel-icon.hpp +@@ -1,6 +1,7 @@ + #pragma once + + #include ++#include + #include + + class WfToplevelIcon diff --git a/gui-apps/wf-shell/metadata.xml b/gui-apps/wf-shell/metadata.xml index a94610d7cfac6..1fc81baf688fc 100644 --- a/gui-apps/wf-shell/metadata.xml +++ b/gui-apps/wf-shell/metadata.xml @@ -5,6 +5,11 @@ ceamac@gentoo.org Viorel Munteanu + + Build monitor brightness widget + Build pipewire mixer widget + Build pulseaudio volume widget + Basic desktop environment for use with wayfire which showcases all its plugins and desktop diff --git a/gui-apps/wf-shell/wf-shell-0.11.0_pre20260801.ebuild b/gui-apps/wf-shell/wf-shell-0.11.0_pre20260801.ebuild new file mode 100644 index 0000000000000..c3aee05f08edd --- /dev/null +++ b/gui-apps/wf-shell/wf-shell-0.11.0_pre20260801.ebuild @@ -0,0 +1,110 @@ +# Copyright 2019-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit meson xdg + +DESCRIPTION="Compiz like 3D wayland compositor" +HOMEPAGE="https://github.com/WayfireWM/wf-shell" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/WayfireWM/wf-shell.git" + SLOT="0/0.12" +else + COMMIT=77038bdf8a05005ff510e7e1ba3ac2054cc304ce + WF_JSON_COMMIT=70039e13cdeaebd8ec498ed30bf5ab91c2e313ec + GVC_COMMIT=5f9768a2eac29c1ed56f1fbb449a77a3523683b6 + + SRC_URI=" + https://github.com/WayfireWM/wf-shell/archive/${COMMIT}.tar.gz -> ${P}.tar.gz + https://github.com/WayfireWM/wf-json/archive/${WF_JSON_COMMIT}.tar.gz -> ${PN}-wf-json-${PV}.tar.gz + pulseaudio? ( + https://github.com/GNOME/libgnome-volume-control/archive/${GVC_COMMIT}.tar.gz -> ${PN}-gnome-volume-control.tar.gz + ) + " + S="${WORKDIR}"/${PN}-${COMMIT} + KEYWORDS="~amd64 ~arm64" + SLOT="0/$(ver_cut 1-2)" +fi + +LICENSE="MIT" +IUSE="ddcutil pipewire +pulseaudio" + +# no tests +RESTRICT="test" + +DEPEND=" + dev-cpp/cairomm:1.16 + dev-cpp/glibmm:2.68 + dev-cpp/gtkmm:4.0 + dev-libs/glib:2 + >=dev-libs/gobject-introspection-1.82.0-r2 + dev-libs/libsigc++:3 + dev-libs/libdbusmenu[gtk3] + >=gui-libs/gtk4-layer-shell-1.3.0[introspection] + dev-libs/openssl:= + dev-libs/wayland + dev-libs/yyjson + gui-libs/gtk:4[wayland] + >=gui-libs/wf-config-0.7.0:= + gui-wm/wayfire + media-libs/libepoxy + media-libs/mesa[opengl] + sys-libs/pam + x11-libs/libdrm + x11-libs/libxkbcommon + ddcutil? ( + app-misc/ddcutil:= + ) + pipewire? ( + media-video/pipewire:= + media-video/wireplumber:= + ) + pulseaudio? ( + media-libs/alsa-lib + media-libs/libpulse + ) +" +RDEPEND="${DEPEND} + gui-apps/wayland-logout +" +BDEPEND=" + dev-libs/wayland-protocols + dev-util/wayland-scanner + virtual/pkgconfig +" + +PATCHES=( + "${FILESDIR}"/${PN}-0.11-add-missing-include.patch +) + +src_prepare() { + default + + if [[ $PV != *9999* ]]; then + # wf-json is bundled as a subproject + # no need to unbundle it, it's a static library containing a wrapper to yyjson + rmdir subprojects/wf-json || die + mv "${WORKDIR}"/wf-json-${WF_JSON_COMMIT} subprojects/wf-json || die + + if use pulseaudio; then + # bundled subproject for the volume widget + # static, written to be used as a subproject + rmdir subprojects/gvc || die + mv "${WORKDIR}"/libgnome-volume-control-${GVC_COMMIT} subprojects/gvc || die + fi + fi +} + +src_configure () { + local emesonargs=( + "$(meson_feature pipewire wp-mixer-widget)" + "$(meson_feature pulseaudio volume-widget)" + "$(meson_feature ddcutil)" + -Dwayland-logout=false + -Dweather=false + ) + meson_src_configure +}