diff --git a/gui-wm/miracle-wm/Manifest b/gui-wm/miracle-wm/Manifest index 790ade9c09..b2cc8222df 100644 --- a/gui-wm/miracle-wm/Manifest +++ b/gui-wm/miracle-wm/Manifest @@ -1 +1,2 @@ +DIST miracle-wm-0.10.1.tar.gz 2750063 BLAKE2B c4c36d1ab97307eff5688cca02157c99b87e358764e142334e50be1b128749f7b1f0b9cb1de3a573ac09be785cfe039c4ac91c26a454da1296c0037d0b867f49 SHA512 cff2f1ac2fd6bcfa132f20812c176873093ed63b0780b164262c019c58386cf302eb3ec62f2e6a3eca4b4885b55d566027b86ec97a975db364867cd2ab34e8b0 DIST miracle-wm-0.9.1.tar.gz 2658768 BLAKE2B e334e7c3a9e66c75f056e081040d7c20763a59d6cd93799224a2dc43b2d2079c2d0769c4d2ea14ac2ee92df19e8bff58178b3176b31607648d3a085dc1ee006f SHA512 49ce5955627dc072bc6e671170fc0bd32bc8e6fa48e84c75e04c3c47985ec8f6d3fa5a4a7c0f8abd29f364db6ed68bf2034097b91e3c16332d5ebde69629bdac diff --git a/gui-wm/miracle-wm/files/miracle-wm-0.10.1-add-missing-headers.patch b/gui-wm/miracle-wm/files/miracle-wm-0.10.1-add-missing-headers.patch new file mode 100644 index 0000000000..9b58bdfdc8 --- /dev/null +++ b/gui-wm/miracle-wm/files/miracle-wm-0.10.1-add-missing-headers.patch @@ -0,0 +1,82 @@ +Add missing headers for no PCH build. +--- a/src/shell_application_spawner.h ++++ b/src/shell_application_spawner.h +@@ -19,6 +19,7 @@ along with this program. If not, see . + #define MIRACLE_WM_SHELL_APPLICATION_SPAWNER_H + + #include ++#include + + namespace miracle + { +--- a/src/window_container.h ++++ b/src/window_container.h +@@ -20,6 +20,7 @@ along with this program. If not, see . + + #include "container.h" + #include "container_effect.h" ++#include + #include + + namespace miracle +--- a/src/container_effect.h ++++ b/src/container_effect.h +@@ -17,6 +17,7 @@ along with this program. If not, see . + + #ifndef MIRACLE_CONTAINER_EFFECT_H + #define MIRACLE_CONTAINER_EFFECT_H ++#include + #include + + namespace miracle +--- a/src/plugin_managed_container.cpp ++++ b/src/plugin_managed_container.cpp +@@ -21,6 +21,7 @@ along with this program. If not, see . + #include "compositor_state.h" + #include "container_listener.h" + #include "window_controller.h" ++#include + #include + + using namespace miracle; +--- a/src/freestyle_window_container.cpp ++++ b/src/freestyle_window_container.cpp +@@ -23,6 +23,7 @@ along with this program. If not, see . + #include "container_listener.h" + #include "direction.h" + #include "window_controller.h" ++#include + #include + + using namespace miracle; +--- a/src/plugin_handle.h ++++ b/src/plugin_handle.h +@@ -15,6 +15,8 @@ You should have received a copy of the GNU General Public License + along with this program. If not, see . + **/ + ++#include ++ + namespace miracle + { + typedef uint32_t PluginHandle; +--- a/src/parent_background_internal_client.cpp ++++ b/src/parent_background_internal_client.cpp +@@ -28,6 +28,7 @@ along with this program. If not, see . + #include + #include + #include ++#include + #include + #include + #include +--- a/src/move_service.h ++++ b/src/move_service.h +@@ -19,6 +19,7 @@ along with this program. If not, see . + #define MIRACLE_WM_MOVE_SERVICE_H + + #include ++#include + #include + + namespace miracle diff --git a/gui-wm/miracle-wm/files/miracle-wm-0.10.1-disable-mirtest.patch b/gui-wm/miracle-wm/files/miracle-wm-0.10.1-disable-mirtest.patch new file mode 100644 index 0000000000..25e0c5afd7 --- /dev/null +++ b/gui-wm/miracle-wm/files/miracle-wm-0.10.1-disable-mirtest.patch @@ -0,0 +1,19 @@ +mirtest is not packaged and only used for end to end tests. +--- a/tests/CMakeLists.txt ++++ b/tests/CMakeLists.txt +@@ -10,7 +10,6 @@ include_directories( + find_package(PkgConfig) + pkg_check_modules(MIRAL miral REQUIRED) + pkg_check_modules(MIRSERVER mirserver REQUIRED) +-pkg_check_modules(MIRTEST mirtest REQUIRED) + pkg_check_modules(YAML REQUIRED IMPORTED_TARGET yaml-cpp) + find_package(GTest REQUIRED) + find_package(nlohmann_json 3.2.0 REQUIRED) +@@ -50,7 +50,6 @@ set(SOURCES + test_workspace_manager.cpp + test_compositor_state.cpp + test_plugin_helpers.cpp +- test_display_config.cpp + stub_configuration.h + stub_surface.h + stub_window_controller.h diff --git a/gui-wm/miracle-wm/files/miracle-wm-0.10.1-no-automagic.patch b/gui-wm/miracle-wm/files/miracle-wm-0.10.1-no-automagic.patch new file mode 100644 index 0000000000..3d5540511e --- /dev/null +++ b/gui-wm/miracle-wm/files/miracle-wm-0.10.1-no-automagic.patch @@ -0,0 +1,18 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -14,7 +14,6 @@ if(CMAKE_GENERATOR STREQUAL "") + endif() + + # Enable ccache if available +-find_program(CCACHE_PROGRAM ccache) + if(CCACHE_PROGRAM) + message(STATUS "Using ccache: ${CCACHE_PROGRAM}") + set(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE_PROGRAM}) +@@ -22,7 +21,6 @@ if(CCACHE_PROGRAM) + endif() + + # Enable mold if available +-find_program(MOLD_LINKER mold) + if(MOLD_LINKER) + message(STATUS "Using mold linker: ${MOLD_LINKER}") + add_link_options(-fuse-ld=mold) diff --git a/gui-wm/miracle-wm/metadata.xml b/gui-wm/miracle-wm/metadata.xml index 08413345f7..ffeb69e29d 100644 --- a/gui-wm/miracle-wm/metadata.xml +++ b/gui-wm/miracle-wm/metadata.xml @@ -8,4 +8,7 @@ miracle-wm-org/miracle-wm + + Build internal gtk4 tools + diff --git a/gui-wm/miracle-wm/miracle-wm-0.10.1.ebuild b/gui-wm/miracle-wm/miracle-wm-0.10.1.ebuild new file mode 100644 index 0000000000..063ffd7d11 --- /dev/null +++ b/gui-wm/miracle-wm/miracle-wm-0.10.1.ebuild @@ -0,0 +1,89 @@ +# Copyright 2024-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) + +inherit cmake python-single-r1 + +DESCRIPTION="Tiling Wayland compositor based on Mir" +HOMEPAGE="https://github.com/miracle-wm-org/miracle-wm" +SRC_URI="https://github.com/miracle-wm-org/miracle-wm/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-3+ MIT" +SLOT="0" +KEYWORDS="~amd64" +IUSE="systemd test +tools" +REQUIRED_USE="systemd? ( ${PYTHON_REQUIRED_USE} )" +RESTRICT="!test? ( test )" + +COMMON_DEPEND=" + dev-cpp/yaml-cpp:= + dev-cpp/nlohmann_json + dev-libs/glib:2 + dev-libs/json-c:= + dev-libs/libevdev + dev-libs/libpcre2:= + dev-libs/wayland + >=gui-libs/mir-2.18:= + media-libs/libglvnd + x11-base/xwayland + x11-libs/libxkbcommon + tools? ( + gui-libs/gtk:4 + gui-libs/gtk4-layer-shell + x11-libs/cairo + ) +" +RDEPEND=" + ${COMMON_DEPEND} + systemd? ( + ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-python/dbus-next[${PYTHON_USEDEP}] + dev-python/tenacity[${PYTHON_USEDEP}] + ') + ) +" +DEPEND=" + ${COMMON_DEPEND} + media-libs/glm +" +BDEPEND=" + virtual/pkgconfig + test? ( dev-cpp/gtest ) +" + +PATCHES=( + "${FILESDIR}/${PN}-0.10.1-disable-mirtest.patch" + "${FILESDIR}/${PN}-0.10.1-no-automagic.patch" + "${FILESDIR}/${PN}-0.10.1-add-missing-headers.patch" +) + +pkg_setup() { + use systemd && python-single-r1_pkg_setup +} + +src_prepare() { + cmake_src_prepare + use test || cmake_comment_add_subdirectory tests/ + use systemd && python_fix_shebang session/usr/bin/libexec/miracle-wm-wait-sni-ready +} + +src_configure() { + local mycmakeargs=( + -DSYSTEMD_INTEGRATION=$(usex systemd) + -DENABLE_TESTS=$(usex test) + # depends on wasmedge, which is not available as a package + -DFEATURE_PLUGIN_SYSTEM=OFF + -DBUILD_ERROR_REPORTER=$(usex tools) + -DBUILD_DEBUG_OVERLAY=$(usex tools) + ) + cmake_src_configure +} + +src_test() { + "${BUILD_DIR}/tests/miracle-wm-tests" || die + "${BUILD_DIR}/miracle-wm-c/test_miracle_wm_c_api" || die +}