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
openSUSE Build Service is sponsored by