File mir.spec of Package mir
#
# spec file for package mir
#
# Copyright (c) 2023 SUSE LLC
#
# 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/
#
%ifnarch ppc64
# Enable LTO on non-ppc64 (c.f. rhbz#1515934)
%bcond_without lto
%endif
# Disable ctest run by default
# They take a long time and are generally broken in the build environment
%bcond_with run_tests
Name: mir
Version: 2.16.3
Release: 0
Summary: Next generation display server
# mircommon is LGPL-2.1-only/LGPL-3.0-only, everything else is GPL-2.0-only/GPL-3.0-only
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/
Source0: https://github.com/MirServer/%{name}/releases/download/v%{version}/%{name}-%{version}.tar.xz
#Patch: xkb.patch
# For validating the desktop file for mir-demos
BuildRequires: desktop-file-utils
BuildRequires: libxslt-tools
BuildRequires: boost-devel
BuildRequires: libboost_container-devel
BuildRequires: libboost_filesystem-devel
BuildRequires: libboost_system-devel
BuildRequires: libboost_program_options-devel
BuildRequires: libboost_iostreams-devel
BuildRequires: libboost_locale-devel
BuildRequires: libboost_regex-devel
BuildRequires: libboost_thread-devel
BuildRequires: cmake
BuildRequires: doxygen
BuildRequires: gcc-c++
BuildRequires: gcovr
BuildRequires: gflags-devel
BuildRequires: git-core
BuildRequires: glm-devel
BuildRequires: glog-devel
# For detecting the font for CMake
#BuildRequires: gnu-free-sans-fonts
BuildRequires: graphviz
BuildRequires: lcov
# For some reason, this doesn't get pulled in automatically into the buildroot
#BuildRequires: libatomic
BuildRequires: lttng-ust-devel
# pkgconfig(egl) is now from glvnd, so we need to manually pull this in for the Mesa specific bits...
#BuildRequires: mesa-libEGL-devel
BuildRequires: python3
BuildRequires: python3-Pillow
BuildRequires: systemtap-sdt-devel
# Everything detected via pkgconfig
BuildRequires: pkgconfig(egl)
BuildRequires: pkgconfig(epoxy)
BuildRequires: pkgconfig(freetype2)
BuildRequires: pkgconfig(gbm) >= 9.0.0
BuildRequires: pkgconfig(gio-2.0)
BuildRequires: pkgconfig(gio-unix-2.0)
BuildRequires: pkgconfig(glesv2)
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(gmock) >= 1.8.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(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(xcb-composite)
BuildRequires: pkgconfig(xcb-render)
BuildRequires: pkgconfig(xcb-xfixes)
BuildRequires: pkgconfig(xcursor)
BuildRequires: pkgconfig(xkbcommon)
BuildRequires: pkgconfig(xkbcommon-x11)
BuildRequires: pkgconfig(yaml-cpp)
%undefine __cmake_in_source_build
# Add architectures as verified to work
%ifarch %{ix86} x86_64 %{arm} aarch64
BuildRequires: valgrind
%endif
%description
Mir is a display server running on linux systems,
with a focus on efficiency, robust operation,
and a well-defined driver model.
%package devel
Summary: Development files for Mir
License: (GPL-2.0-only OR GPL-3.0-only) AND (LGPL-2.1-only OR LGPL-3.0-only)
Requires: %{name}-common-libs = %{version}
Requires: %{name}-lomiri-libs = %{version}
Requires: %{name}-server-libs = %{version}
Requires: %{name}-test-libs-static = %{version}
%description devel
This package provides the development files to create
applications that can run on Mir.
%package common-libs
Summary: Common libraries for Mir
License: LGPL-2.1-only OR LGPL-3.0-only
# Ensure older mirclient doesn't mix in
Conflicts: %{name}-client-libs < 2.6.0
# mirclient is gone...
Obsoletes: %{name}-client-libs < 2.6.0
# debug extension for mirclient is gone...
Obsoletes: %{name}-client-libs-debugext < 1.6.0
# mir utils are gone...
Obsoletes: %{name}-utils < 2.0.0
%description common-libs
This package provides the libraries common to be used
by Mir clients or Mir servers.
%package lomiri-libs
Summary: Lomiri compatibility libraries for Mir
License: GPL-2.0-only OR GPL-3.0-only
Requires: %{name}-common-libs = %{version}
Requires: %{name}-server-libs = %{version}
%description lomiri-libs
This package provides the libraries for Lomiri to use Mir
as a Wayland compositor.
%package server-libs
Summary: Server libraries for Mir
License: GPL-2.0-only OR GPL-3.0-only
Requires: %{name}-common-libs = %{version}
%description server-libs
This package provides the libraries for applications
that use the Mir server.
%package test-tools
Summary: Testing tools for Mir
License: GPL-2.0-only OR GPL-3.0-only
Requires: %{name}-server-libs = %{version}
Requires: wlcs
Recommends: %{name}-demos
Recommends: glmark2
Recommends: xorg-x11-server-Xwayland
# Ensure mir-perf-framework is not installed
Conflicts: python3-mir-perf-framework < 2.6.0
# mir-perf-framework is no more...
Obsoletes: python3-mir-perf-framework < 2.6.0
%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: %{name}-server-libs = %{version}
# For some of the demos
Requires: gnu-free-sans-fonts
Requires: hicolor-icon-theme
Recommends: xorg-x11-server-Xwayland
%description demos
This package provides applications for demonstrating
the capabilities of the Mir display server.
%package doc
Summary: Documentation for developing Mir based applications
License: (GPL-2.0-only OR GPL-3.0-only) AND (LGPL-2.1-only OR LGPL-3.0-only)
BuildArch: noarch
%description doc
This package provides documentation for developing Mir based
applications.
%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 -p1
# Drop -Werror
sed -e "s/-Werror//g" -i CMakeLists.txt
sed '235 apkg_check_modules(XKBCOMMON REQUIRED IMPORTED_TARGET libxkbcommon)' CMakeLists.txt
%build
%cmake
%cmake_build
%install
%cmake_install
desktop-file-validate %{buildroot}%{_datadir}/applications/miral-shell.desktop
%files devel
%license COPYING.*
%{_bindir}/mir_wayland_generator
%{_libdir}/libmir*.so
%{_libdir}/pkgconfig/mir*.pc
%{_includedir}/mir*
%files common-libs
%license COPYING.LGPL*
%doc README.md
%{_libdir}/libmircore.so.*
%{_libdir}/libmircommon.so.*
%{_libdir}/libmircookie.so.*
%{_libdir}/libmirplatform.so.*
%dir %{_libdir}/mir
%files lomiri-libs
%license COPYING.GPL*
%doc README.md
%{_libdir}/libmiroil.so.*
%files server-libs
%license COPYING.GPL*
%doc README.md
%{_libdir}/libmiral.so.*
%{_libdir}/libmirserver.so.*
%{_libdir}/libmirwayland.so.*
%dir %{_libdir}/mir/server-platform
%{_libdir}/mir/server-platform/graphics-eglstream-kms.so.*
%{_libdir}/mir/server-platform/graphics-gbm-kms.so.*
%{_libdir}/mir/server-platform/graphics-wayland.so.*
%{_libdir}/mir/server-platform/input-evdev.so.*
%{_libdir}/mir/server-platform/server-x11.so.*
%files test-tools
%license COPYING.GPL*
%{_bindir}/mir-*test*
%{_bindir}/mir_*test*
%dir %{_libdir}/mir/tools
%{_libdir}/mir/tools/libmirserverlttng.so
%dir %{_libdir}/mir
%{_libdir}/mir/miral_wlcs_integration.so
%dir %{_libdir}/mir/server-platform
%{_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
%{_bindir}/mir_demo_*
%{_bindir}/miral-*
%{_bindir}/mir-shell
%{_datadir}/applications/miral-shell.desktop
%{_datadir}/wayland-sessions/mir-shell.desktop
%{_datadir}/icons/hicolor/scalable/apps/ubuntu-logo.svg
%files doc
%license COPYING.*
%doc README.md
%{_datadir}/doc/mir-doc/html
%changelog