diff --git a/gui-wm/miracle-wm/Manifest b/gui-wm/miracle-wm/Manifest index 5e3959eecb..2397f31bf1 100644 --- a/gui-wm/miracle-wm/Manifest +++ b/gui-wm/miracle-wm/Manifest @@ -1,2 +1,3 @@ DIST miracle-wm-0.8.2.tar.gz 1188240 BLAKE2B 1aa8b45040f0e32fba94f3c2c692f3b812828eebd46bc0945077d7656e08d2990804cc42adb741d8a3f1a39bbd4f3dc32b7c8b5e2722ca08a6571fcebb62e5bb SHA512 2bbfcc8a1595013f396ef6aa2c57175efd455cc7c3633dfac86125eec38bbb6ea26e71e8050529e3b45c07545ff3e947fe24dd55dd2502d4ae07aa267144c4e0 DIST miracle-wm-0.8.3.tar.gz 1186888 BLAKE2B c4c693356c2792a0a2b03a65f9b99a2655112d54d36f47c06b5fbae96a4469c597f441ce32e1e989a75ac8fcaa5b8b4ff4b6246d172d0cc8b33dcaf0a2ee0979 SHA512 c9341976811a391340804ed536711160da798d1a25be737846f766495c8bc36ee942fcb117f3ae41fe18e102b7777beac3e4395e02a82d7754ba5f59a0a7eb66 +DIST miracle-wm-0.9.0.tar.gz 2655079 BLAKE2B c7f98a3179090b87e694a6fc7310093820ec926211a3e0d790b5b872b10f25bec5bcb25992928e0ff8179a725088267ba8dc9c5f7a35c65c7f2ed4e8c95185b4 SHA512 866d8947f45a1c8fae0964a9d1f70af5a3e6c359ca2f1a7b2005d340ffbff43361ca39da30a9ddcd47f637f37fc203372b7097a6a279e982eb119b8870199fef diff --git a/gui-wm/miracle-wm/files/miracle-wm-0.9.0-add-missing-headers.patch b/gui-wm/miracle-wm/files/miracle-wm-0.9.0-add-missing-headers.patch new file mode 100644 index 0000000000..76b9197e4c --- /dev/null +++ b/gui-wm/miracle-wm/files/miracle-wm-0.9.0-add-missing-headers.patch @@ -0,0 +1,64 @@ +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 + { +diff --git a/src/window_container.h b/src/window_container.h +index e73c08f..88277bd 100644 +--- a/src/window_container.h ++++ b/src/window_container.h +@@ -21,6 +21,7 @@ along with this program. If not, see . + #include "container.h" + #include "container_effect.h" + #include "synchronized_recursive.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,7 +15,9 @@ 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; diff --git a/gui-wm/miracle-wm/files/miracle-wm-0.9.0-conditional-tests.patch b/gui-wm/miracle-wm/files/miracle-wm-0.9.0-conditional-tests.patch new file mode 100644 index 0000000000..f0e0386850 --- /dev/null +++ b/gui-wm/miracle-wm/files/miracle-wm-0.9.0-conditional-tests.patch @@ -0,0 +1,26 @@ +Build tests only when requested. +--- a/miracle-wm-c/CMakeLists.txt ++++ b/miracle-wm-c/CMakeLists.txt +@@ -5,7 +5,9 @@ pkg_check_modules(MIRAL miral REQUIRED) + pkg_check_modules(YAML REQUIRED IMPORTED_TARGET yaml-cpp) + pkg_check_modules(XKBCOMMON REQUIRED xkbcommon) + pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0) ++if(ENABLE_TESTS) + find_package(GTest REQUIRED) ++endif() + + add_library(miracle-wm-c + SHARED +@@ -62,6 +64,7 @@ install( + ) + + # Tests ++if(ENABLE_TESTS) + add_executable(test_miracle_wm_c_api + tests/test_config_c.cpp + tests/test_config_cpp.cpp +@@ -86,3 +89,4 @@ target_link_libraries(test_miracle_wm_c_api + ) + + add_test(NAME test_miracle_wm_c_api COMMAND test_miracle_wm_c_api) ++endif() diff --git a/gui-wm/miracle-wm/files/miracle-wm-0.9.0-disable-mirtest.patch b/gui-wm/miracle-wm/files/miracle-wm-0.9.0-disable-mirtest.patch new file mode 100644 index 0000000000..3ada8f352c --- /dev/null +++ b/gui-wm/miracle-wm/files/miracle-wm-0.9.0-disable-mirtest.patch @@ -0,0 +1,11 @@ +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) diff --git a/gui-wm/miracle-wm/miracle-wm-0.9.0.ebuild b/gui-wm/miracle-wm/miracle-wm-0.9.0.ebuild new file mode 100644 index 0000000000..62f7fbff05 --- /dev/null +++ b/gui-wm/miracle-wm/miracle-wm-0.9.0.ebuild @@ -0,0 +1,83 @@ +# 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" +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 +" +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.9.0-conditional-tests.patch" + "${FILESDIR}/${PN}-0.9.0-disable-mirtest.patch" + "${FILESDIR}/${PN}-0.7.0-no-automagic.patch" + "${FILESDIR}/${PN}-0.9.0-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 + ) + cmake_src_configure +} + +src_test() { + "${BUILD_DIR}/tests/miracle-wm-tests" || die + "${BUILD_DIR}/miracle-wm-c/test_miracle_wm_c_api" || die +}