commit 228a215a12fd81db48ca63ad1a6e9ded2d2dab339db14ffdb13d3b60ba88cc67 Author: Shawn Dunn Date: Wed Dec 25 18:45:35 2024 +0000 - Added Requires: for libmirserver, without them, you end up with a non-functional Mir after install. OBS-URL: https://build.opensuse.org/package/show/X11:Wayland/mir?expand=0&rev=12 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/0001-Fix-include-paths.patch b/0001-Fix-include-paths.patch new file mode 100644 index 0000000..dd685b0 --- /dev/null +++ b/0001-Fix-include-paths.patch @@ -0,0 +1,20 @@ +From 5e3fcc09ed57313292ca76fd8d88196940d0c261 Mon Sep 17 00:00:00 2001 +From: "Shawn W. Dunn" +Date: Tue, 29 Oct 2024 17:57:08 -0700 +Subject: [PATCH] Fix include paths + +--- + tests/include/mir/test/doubles/mock_libinput.h | 2 +- +diff --git a/tests/include/mir/test/doubles/mock_libinput.h b/tests/include/mir/test/doubles/mock_libinput.h +index 4487f8290d..b59a4386d6 100644 +--- a/tests/include/mir/test/doubles/mock_libinput.h ++++ b/tests/include/mir/test/doubles/mock_libinput.h +@@ -21,7 +21,7 @@ + + #include + #include +-#include ++#include + + namespace mir + { diff --git a/mir-2.18.2.tar.xz b/mir-2.18.2.tar.xz new file mode 100644 index 0000000..45df34b --- /dev/null +++ b/mir-2.18.2.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e03d6c88eeabe177528e69719331529ed25f10266fe8a80d829071ab755b9ef7 +size 6126184 diff --git a/mir-2.19.0.tar.xz b/mir-2.19.0.tar.xz new file mode 100644 index 0000000..b4a8dec --- /dev/null +++ b/mir-2.19.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e7f93798e1263a811dd23b5b7b3fc4626afc64f06074550897718dc5ad8f7d03 +size 6142024 diff --git a/mir-2.19.2.tar.xz b/mir-2.19.2.tar.xz new file mode 100644 index 0000000..50e358f --- /dev/null +++ b/mir-2.19.2.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d080ed68040a12a31480f08760c2e15678cb2f1d95006c6281644ea36a5a8324 +size 6141808 diff --git a/mir.changes b/mir.changes new file mode 100644 index 0000000..20a7c24 --- /dev/null +++ b/mir.changes @@ -0,0 +1,72 @@ +------------------------------------------------------------------- +Wed Dec 25 18:44:49 UTC 2024 - Shawn Dunn + +- Added Requires: for libmirserver, without them, you end up with + a non-functional Mir after install. + +------------------------------------------------------------------- +Thu Dec 19 21:38:02 UTC 2024 - Shawn Dunn + +- Created libmirserverplatform22 and libmirevdev10 subpackages to + align with shlib packaging policy, and clear conflicts with + libmirserver61 + +------------------------------------------------------------------- +Wed Dec 4 21:14:47 UTC 2024 - Shawn Dunn + +- Update to 2.19.2: + * Fix: mirserver ABI should have been bumped to 62 in 2.19.0 + * v2.19.1 was burned/skipped + +------------------------------------------------------------------- +Mon Dec 2 22:13:35 UTC 2024 - Richard Rahl + +- update to 2.19.0: + * mirplatform ABI bumped to 30 + * mirserver ABI bumped to 61 + * [x11-kiosk] defer fullscreening of applications until they are placed once + * [x11-kiosk] Ensure windows are placed and repainted on X11 "CONFIGURE" + * [x11-kiosk] change enable-x11 default to true + * Initial atomic-kms platform + * [Wayland] Add support for xdg_activation_v1 + * Do not default window size (especially to weird values) + * DesktopFileManager::resolve_app_id no longer returns an app id with a + .desktop file suffix + * [Configuration] Split options into global and per-module configuration + * Ensure we always send an initial output enter + * Fix stuck-frame-after-mode-switch bug + * Fix rendering of resized XWayland applications with client side decorations + * Aspect ratios shouldn't contain zero + * Use PkgConfig to find development headers + * Fix the inotify event handling in + ReloadingYamlFileDisplayConfig::auto_reload() + * The miral::ConfigFile "Watcher" can be destroyed before the main loop + * [xwayland] Don't allow clients to place X11 windows + * Surfaces track scale changes on outputs they appear on + * New attached windows need to be placed +- switch to new upstream url +- use only the default Pillow package as BR, not all versions +- adapt 0001-Fix-include-paths.patch + +------------------------------------------------------------------- +Thu Oct 31 17:03:03 UTC 2024 - Shawn Dunn + +- Refactor packaging to conform with openSUSE shared library + packaging practices +- Move some stuff around, so we don't have 30 subpackages + +------------------------------------------------------------------- +Thu Oct 31 10:33:45 UTC 2024 - Jan Engelhardt + +- Update descriptions + +------------------------------------------------------------------- +Tue Oct 29 22:06:28 UTC 2024 - Shawn Dunn + +- Added: + * 0001-Fix-include-paths.patch + +------------------------------------------------------------------- +Tue Oct 29 15:00:18 UTC 2024 - Shawn Dunn + +- Initial commit diff --git a/mir.spec b/mir.spec new file mode 100644 index 0000000..05fdc3b --- /dev/null +++ b/mir.spec @@ -0,0 +1,345 @@ +# +# spec file for package mir +# +# Copyright (c) 2024 SUSE LLC +# Copyright (c) Shawn W Dunn +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +# Disable lto +%global _lto_cflags %{nil} + +# Disable ctest run +# The take a long time and are generally broken in the build environment +%bcond_with run_tests + +# Set globals for easier future maintenance +%global commonlibsover 11 +%global mircoresover 2 +%global mirplatformsover 30 +%global lomirisover 5 +%global miralsover 7 +%global mirserversover 62 +%global mirwaylandsover 5 +%global mirserverplatformsover 22 +%global mirevdevsover 10 + +Name: mir +Version: 2.19.2 +Release: 0 +Summary: Libraries for building Wayland shells +License: (GPL-2.0-only OR GPL-3.0-only) AND (LGPL-2.1-only OR LGPL-3.0-only) +URL: https://mir-server.io +Source: https://github.com/canonical/%{name}/releases/download/v%{version}/%{name}-%{version}.tar.xz +# PATCH-FIX-UPSTREAM 0001-Fix-include-paths.patch +Patch0: 0001-Fix-include-paths.patch +BuildRequires: boost-devel +BuildRequires: cmake +BuildRequires: desktop-file-utils +BuildRequires: doxygen +BuildRequires: gcc-c++ +BuildRequires: gcovr +BuildRequires: git-core +BuildRequires: gnu-free-fonts +BuildRequires: graphviz +BuildRequires: lcov +BuildRequires: libatomic1 +BuildRequires: libboost_filesystem-devel +BuildRequires: libboost_iostreams-devel +BuildRequires: libboost_program_options-devel +BuildRequires: libboost_system-devel +BuildRequires: libxslt-tools +BuildRequires: python3 +BuildRequires: python3-Pillow +BuildRequires: systemtap-sdt-devel +BuildRequires: valgrind + +BuildRequires: cmake(GTest) >= 1.8.0 +BuildRequires: cmake(glm) +BuildRequires: cmake(glog) +BuildRequires: cmake(yaml-cpp) + +BuildRequires: pkgconfig(egl) +BuildRequires: pkgconfig(epoxy) +BuildRequires: pkgconfig(freetype2) +BuildRequires: pkgconfig(gbm) >= 9.0.0 +BuildRequires: pkgconfig(gflags) +BuildRequires: pkgconfig(glesv2) +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(gtest) >= 1.8.0 +BuildRequires: pkgconfig(libdrm) +BuildRequires: pkgconfig(libevdev) +BuildRequires: pkgconfig(libinput) +BuildRequires: pkgconfig(libudev) +BuildRequires: pkgconfig(libxml++-2.6) +BuildRequires: pkgconfig(lttng-ust) +BuildRequires: pkgconfig(nettle) +BuildRequires: pkgconfig(umockdev-1.0) >= 0.6 +BuildRequires: pkgconfig(uuid) +BuildRequires: pkgconfig(wayland-client) +BuildRequires: pkgconfig(wayland-eglstream) +BuildRequires: pkgconfig(wayland-server) +BuildRequires: pkgconfig(wlcs) +BuildRequires: pkgconfig(xcb) +BuildRequires: pkgconfig(xcursor) +BuildRequires: pkgconfig(xkbcommon) +BuildRequires: pkgconfig(xkbcommon-x11) + +%description +A set of libraries for building Wayland based shells. + +%package devel +Summary: Development files for Mir +Requires: %{name}-test-libs-static = %{version} +Requires: libmircommon%{commonlibsover} = %{version} +Requires: libmiroil%{lomirisover} = %{version} +Requires: libmirserver%{mirserversover} = %{version} +Requires: libmirserverplatform%{mirserverplatformsover} = %{version} +Requires: libmirevdev%{mirevdevsover} = %{version} + +%description devel +This package provides the development files to create compositors built on Mir + +%package private-devel +Summary: Development files for Mir exposing private internals +Requires: %{name}-devel = %{version} + +%description private-devel +This package provides extra development files to create compositors built on +Mir that need acces to private internal interfaces + +%package -n libmircommon%{commonlibsover} +Summary: Mir server library +License: LGPL-2.1-only OR LGPL-3.0-only + +%description -n libmircommon%{commonlibsover} +Component library of the Mir compositing stack + +%package -n libmircore%{mircoresover} +Summary: Mir core library +License: LGPL-2.1-only OR LGPL-3.0-only + +%description -n libmircore%{mircoresover} +Component library of the Mir compositing stack + +%package -n libmirplatform%{mirplatformsover} +Summary: Mir platform library +License: LGPL-2.1-only OR LGPL-3.0-only + +%description -n libmirplatform%{mirplatformsover} +Component library of the Mir compositing stack + +%package -n libmiroil%{lomirisover} +Summary: Lomiri compatibility libraries for Mir +License: LGPL-2.1-only OR LGPL-3.0-only + +%description -n libmiroil%{lomirisover} +This package provides the libraries for Lomiri to use Mir as a Wayland compositor + +%package -n libmiral%{miralsover} +Summary: Mir Abstraction Layer library +License: LGPL-2.1-only OR LGPL-3.0-only + +%description -n libmiral%{miralsover} +Component library of the Mir compositing stack + +%package -n libmirserver%{mirserversover} +Summary: Mir server library +License: GPL-2.0-only OR GPL-3.0-only +Requires: libmirevdev%{mirevdevsover} = %{version} +Requires: libmirserverplatform%{mirserverplatformsover} = %{version} +Conflicts: libmirserver61 <= %{version} +Obsoletes: libmirserver61 <= %{version} + +%description -n libmirserver%{mirserversover} +Component library of the Mir compositing stack + +%package -n libmirwayland%{mirwaylandsover} +Summary: Mir Wayland library +License: LGPL-2.1-only OR LGPL-3.0-only + +%description -n libmirwayland%{mirwaylandsover} +Component library of the Mir compositing stack + +%package -n libmirserverplatform%{mirserverplatformsover} +Summary: Mir Server Platform Library +License: LGPL-2.1-only OR LGPL-3.0-only +Conflicts: libmirserver61 <= %{version} +Obsoletes: libmirserver61 <= %{version} + +%description -n libmirserverplatform%{mirserverplatformsover} +Component library of the Mir server platform + +%package -n libmirevdev%{mirevdevsover} +Summary: Evdev support for Mir +License: LGPL-2.1-only OR LGPL-3.0-only +Conflicts: libmirserver61 <= %{version} +Obsoletes: libmirserver61 <= %{version} + +%description -n libmirevdev%{mirevdevsover} +evdev support library for the Mir server platform + +%package test-tools +Summary: Testing tools for Mir +License: GPL-2.0-only OR GPL-3.0-only +Requires: libmirserver%{mirserversover} = %{version} +Requires: wlcs +Recommends: %{name}-demos +Recommends: glmark2 +Recommends: xwayland + +%description test-tools +This package provides tools for testing Mir + +%package demos +Summary: Demonstration applications using Mir +License: GPL-2.0-only OR GPL-3.0-only +Requires: gnu-free-fonts +Requires: hicolor-icon-theme +Requires: inotify-tools +Requires: libmirserver%{mirserversover} = %{version} +Requires: xkeyboard-config +Requires: xwayland + +%description demos +This package provides applications for demonstrating the capabilities of the +Mir display server + +%package test-libs-static +Summary: Testing framework library for Mir +License: GPL-2.0-only OR GPL-3.0-only +Requires: %{name}-devel = %{version} + +%description test-libs-static +This package provides the static library for building Mir unit and integration +tests + +%prep +%autosetup -S git_am + +# Drop -Werror +sed -e "s/-Werror//g" -i CMakeLists.txt + +%build +%cmake -DMIR_USE_PRECOMPILED_HEADERS=OFF \ + -DCMAKE_INSTALL_LIBEXECDIR="usr/libexec/mir" \ + -DMIR_PLATFORM="gbm-kms;x11;wayland;eglstream-kms" + +%cmake_build + +%install +%cmake_install + +%check +%if %{with run_tests} +( %ctest ) || : +%endif + +desktop-file-validate %{buildroot}%{_datadir}/applications/miral-shell.desktop + +%ldconfig_scriptlets -n libmircommon%{commonlibsover} +%ldconfig_scriptlets -n libmircore%{mircoresover} +%ldconfig_scriptlets -n libmirplatform%{mirplatformsover} +%ldconfig_scriptlets -n libmiroil%{lomirisover} +%ldconfig_scriptlets -n libmiral%{miralsover} +%ldconfig_scriptlets -n libmirserver%{mirserversover} +%ldconfig_scriptlets -n libmirwayland%{mirwaylandsover} +%ldconfig_scriptlets -n libmirserverplatform%{mirserverplatformsover} +%ldconfig_scriptlets -n libmirevdev%{mirevdevsover} + +%files devel +%license COPYING.* +%{_bindir}/mir_wayland_generator +%{_libdir}/libmir*.so +%{_libdir}/pkgconfig/mir*.pc +%exclude %{_libdir}/pkgconfig/mir*internal.pc +%{_includedir}/mir*/ +%exclude %{_includedir}/mir*internal/ + +%files private-devel +%license COPYING.* +%{_libdir}/pkgconfig/mir*internal.pc +%{_includedir}/mir*internal/ + +%files -n libmircommon%{commonlibsover} +%license COPYING.LGPL* +%doc README.md +%dir %{_libdir}/mir +%{_libdir}/libmircommon.so.%{commonlibsover} +%{_libdir}/mir/miral*.so + +%files -n libmircore%{mircoresover} +%{_libdir}/libmircore.so.%{mircoresover} + +%files -n libmirplatform%{mirplatformsover} +%{_libdir}/libmirplatform.so.%{mirplatformsover} + +%files -n libmiroil%{lomirisover} +%{_libdir}/libmiroil.so.%{lomirisover} + +%files -n libmiral%{miralsover} +%{_libdir}/libmiral.so.%{miralsover} + +%files -n libmirserver%{mirserversover} +%license COPYING.GPL* +%doc README.md +%{_libdir}/libmirserver.so.%{mirserversover} + +%files -n libmirwayland%{mirwaylandsover} +%{_libdir}/libmirwayland.so.%{mirwaylandsover} + +%files -n libmirserverplatform%{mirserverplatformsover} +%license COPYING.GPL* +%doc README.md +%dir %{_libdir}/mir/server-platform +%{_libdir}/mir/server-platform/graphics-eglstream-kms.so.%{mirserverplatformsover} +%{_libdir}/mir/server-platform/graphics-gbm-kms.so.%{mirserverplatformsover} +%{_libdir}/mir/server-platform/graphics-wayland.so.%{mirserverplatformsover} +%{_libdir}/mir/server-platform/renderer-egl-generic.so.%{mirserverplatformsover} +%{_libdir}/mir/server-platform/server-virtual.so.%{mirserverplatformsover} +%{_libdir}/mir/server-platform/server-x11.so.%{mirserverplatformsover} + +%files -n libmirevdev%{mirevdevsover} +%license COPYING.GPL* +%doc README.md +%{_libdir}/mir/server-platform/input-evdev.so.%{mirevdevsover} + +%files test-tools +%license COPYING.GPL* +%dir %{_libdir}/mir +%dir %{_libdir}/mir/tools +%dir %{_libdir}/mir/server-platform +%{_bindir}/mir-*test* +%{_bindir}/mir_*test* +%{_libdir}/mir/tools/libmirserverlttng.so +%{_libdir}/mir/server-platform/graphics-dummy.so +%{_libdir}/mir/server-platform/input-stub.so + +%files test-libs-static +%license COPYING.GPL* +%{_libdir}/libmir-test-assist.a + +%files demos +%license COPYING.GPL* +%doc README.md +%dir %{_datadir}/icons/hicolor +%dir %{_datadir}/icons/hicolor/scalable +%dir %{_datadir}/icons/hicolor/scalable/apps +%{_bindir}/mir_demo_* +%{_bindir}/mir-x11-kiosk* +%{_bindir}/miral-* +%{_datadir}/applications/miral-shell.desktop +%{_datadir}/icons/hicolor/scalable/apps/spiral-logo.svg + +%changelog