gui-wm/miracle-wm: add 0.9.0

Signed-off-by: Takuya Wakazono <pastalian46@gmail.com>
This commit is contained in:
Takuya Wakazono
2026-04-12 02:21:18 +09:00
parent 3ed3f4e3d1
commit d75aad7c78
5 changed files with 185 additions and 0 deletions

View File

@@ -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

View File

@@ -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 <http://www.gnu.org/licenses/>.
#define MIRACLE_WM_SHELL_APPLICATION_SPAWNER_H
#include <miral/application.h>
+#include <miral/window_specification.h>
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 <http://www.gnu.org/licenses/>.
#include "container.h"
#include "container_effect.h"
#include "synchronized_recursive.h"
+#include <mir/events/input_event.h>
#include <optional>
namespace miracle
--- a/src/container_effect.h
+++ b/src/container_effect.h
@@ -17,6 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifndef MIRACLE_CONTAINER_EFFECT_H
#define MIRACLE_CONTAINER_EFFECT_H
+#include <glm/glm.hpp>
#include <glm/fwd.hpp>
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 <http://www.gnu.org/licenses/>.
#include "compositor_state.h"
#include "container_listener.h"
#include "window_controller.h"
+#include <mir/scene/session.h>
#include <mir/scene/surface.h>
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 <http://www.gnu.org/licenses/>.
#include "container_listener.h"
#include "direction.h"
#include "window_controller.h"
+#include <mir/scene/session.h>
#include <mir/scene/surface.h>
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 <http://www.gnu.org/licenses/>.
**/
+#include <cstdint>
+
namespace miracle
{
typedef uint32_t PluginHandle;

View File

@@ -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()

View File

@@ -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)

View File

@@ -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
}