#
# Conditional build:
%bcond_with android # Android platform support (TODO)
#
Summary: Mir display server and libraries
Summary(pl.UTF-8): Serwer wyświetlania Mir oraz biblioteki
Name: mir
Version: 1.0.0
Release: 0.1
License: LGPL v3 (libraries), GPL v3 (server and examples)
Group: Libraries
#Source0Download: https://github.com/MirServer/mir/releases
Source0: https://github.com/MirServer/mir/releases/download/v%{version}/%{name}-%{version}.tar.xz
# Source0-md5: 7199654f2bed5e29da92a65400dea78d
Patch0: %{name}-protobuf.patch
Patch1: %{name}-gflags.patch
Patch2: %{name}-dirs.patch
Patch3: %{name}-atomic.patch
Patch4: %{name}-c++.patch
URL: https://mir-server.io/
BuildRequires: EGL-devel
BuildRequires: GLM
BuildRequires: Mesa-libgbm-devel >= 11.0
BuildRequires: OpenGLESv2-devel
BuildRequires: boost-devel >= 1.48.0
BuildRequires: capnproto-c++-devel
BuildRequires: cmake >= 3.5
BuildRequires: doxygen >= 1.8.0
BuildRequires: gflags-devel
BuildRequires: glib2-devel >= 2.0
BuildRequires: glog-devel
BuildRequires: gmock-devel >= 1.7.0-2
BuildRequires: gtest-devel >= 1.7.0-2
BuildRequires: libdrm-devel >= 2.4.84
BuildRequires: libepoxy-devel
BuildRequires: libinput-devel >= 1.2
# -std=c++14
BuildRequires: libstdc++-devel >= 6:4.9
BuildRequires: libuuid-devel
BuildRequires: libxcb-devel
BuildRequires: lttng-ust-devel
BuildRequires: pkgconfig
BuildRequires: protobuf-devel >= 2.4.1
BuildRequires: python >= 3
BuildRequires: sed >= 4.0
BuildRequires: tar >= 1:1.22
BuildRequires: udev-devel
BuildRequires: umockdev-devel >= 0.6
# wayland-client, wayland-server
BuildRequires: wayland-devel
BuildRequires: xorg-lib-libXcursor-devel
BuildRequires: xorg-lib-libxkbcommon-devel
BuildRequires: xz
Requires: Mesa-libgbm >= 11.0
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
# __once_call, __once_called non-function symbols from libstdc++
%define skip_post_check_so libmirclient.so.* libmirclient-debug-extension.so.* libmirprotobuf.* libmirserver.*
%description
Mir is a next generation display server targeted as a replacement for
the X Window server system to unlock next-generation user experiences
for devices ranging from Linux desktop to mobile devices powered by
Ubuntu. The primary purpose of Mir is to enable the development of the
next generation Unity ().
%description -l pl.UTF-8
Mir to serwer wyświetlania nowej generacji, tworzony jako zamiennik
systemu serwera X Window, aby pozwolić użytkownikom na doznania nowej
generacji na urządzeniach od biurkowego komputera z Linuksem do
urządzeń przenośnych z działającym Ubuntu. Głównym celem Mira jest
umożliwienie rozwoju interfejsu Unity nowej generacji
().
%package devel
Summary: Header files for Mir libraries
Summary(pl.UTF-8): Pliki nagłówkowe bibliotek Mir
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
Requires: protobuf-devel >= 2.4.1
%description devel
Header files for Mir libraries.
%description devel -l pl.UTF-8
Pliki nagłówkowe bibliotek Mir.
%package test-devel
Summary: Development package for Mir tests
Summary(pl.UTF-8): Pakiet programistyczny dla testów Mira
Group: Development/Libraries
Requires: %{name}-devel = %{version}-%{release}
%description test-devel
Development package for Mir tests.
%description test-devel -l pl.UTF-8
Pakiet programistyczny dla testów Mira.
%package apidocs
Summary: Mir API documentation
Summary(pl.UTF-8): Dokumentacja API Mira
Group: Documentation
%description apidocs
API documentation for Mir.
%description apidocs -l pl.UTF-8
Dokumentacja API Mira.
%prep
%setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%{__sed} -i -e 's/-Werror //' CMakeLists.txt
%build
install -d build
cd build
# override unsuccessful "detection" by "rpm -q libgtest-dev"
export GTEST_VERSION="$(gtest-config --version)"
%cmake .. \
-DBUILD_DOXYGEN=ON \
-DMIR_PLATFORM="mesa-kms;mesa-x11;eglstream-kms%{?with_android:;android}" \
-DMIR_USE_PRECOMPILED_HEADERS=OFF
%{__make}
%install
rm -rf $RPM_BUILD_ROOT
%{__make} -C build -j1 install \
DESTDIR=$RPM_BUILD_ROOT
# tests
%{__rm} $RPM_BUILD_ROOT%{_bindir}/mir-smoke-test-runner
%{__rm} $RPM_BUILD_ROOT%{_bindir}/mir_performance_tests
%{__rm} $RPM_BUILD_ROOT%{_bindir}/mir_stress
%clean
rm -rf $RPM_BUILD_ROOT
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%defattr(644,root,root,755)
%doc README.md
%attr(755,root,root) %{_bindir}/mir_demo_*
%attr(755,root,root) %{_bindir}/miral-app
%attr(755,root,root) %{_bindir}/miral-desktop
%attr(755,root,root) %{_bindir}/miral-kiosk
%attr(755,root,root) %{_bindir}/miral-run
%attr(755,root,root) %{_bindir}/miral-screencast
%attr(755,root,root) %{_bindir}/miral-shell
%attr(755,root,root) %{_bindir}/miral-xrun
%attr(755,root,root) %{_bindir}/mirbacklight
%attr(755,root,root) %{_bindir}/mirin
%attr(755,root,root) %{_bindir}/mirout
%attr(755,root,root) %{_bindir}/mirrun
%attr(756,root,root) %{_bindir}/mirscreencast
%attr(755,root,root) %{_libdir}/libmiral.so.3
%attr(755,root,root) %{_libdir}/libmirclient.so.9
%attr(755,root,root) %{_libdir}/libmirclient-debug-extension.so.1
%attr(755,root,root) %{_libdir}/libmircommon.so.7
%attr(755,root,root) %{_libdir}/libmircookie.so.2
%attr(755,root,root) %{_libdir}/libmircore.so.1
%attr(755,root,root) %{_libdir}/libmirplatform.so.16
%attr(755,root,root) %{_libdir}/libmirprotobuf.so.3
%attr(755,root,root) %{_libdir}/libmirserver.so.47
%attr(755,root,root) %{_libdir}/libmir_demo_server_loadable.so
%dir %{_libdir}/mir
%dir %{_libdir}/mir/client-platform
%attr(755,root,root) %{_libdir}/mir/client-platform/eglstream.so.5
%attr(755,root,root) %{_libdir}/mir/client-platform/mesa.so.5
%dir %{_libdir}/mir/server-platform
%attr(755,root,root) %{_libdir}/mir/server-platform/graphics-eglstream-kms.so.15
%attr(755,root,root) %{_libdir}/mir/server-platform/graphics-mesa-kms.so.15
%attr(755,root,root) %{_libdir}/mir/server-platform/input-evdev.so.7
%attr(755,root,root) %{_libdir}/mir/server-platform/server-mesa-x11.so.15
%dir %{_libdir}/mir/tools
%attr(755,root,root) %{_libdir}/mir/tools/libmirclientlttng.so
%attr(755,root,root) %{_libdir}/mir/tools/libmirserverlttng.so
%{_desktopdir}/miral-shell.desktop
%{_iconsdir}/hicolor/scalable/apps/ubuntu-logo.svg
%files devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libmiral.so
%attr(755,root,root) %{_libdir}/libmirclient.so
%attr(755,root,root) %{_libdir}/libmirclient-debug-extension.so
%attr(755,root,root) %{_libdir}/libmircommon.so
%attr(755,root,root) %{_libdir}/libmircookie.so
%attr(755,root,root) %{_libdir}/libmircore.so
%attr(755,root,root) %{_libdir}/libmirplatform.so
%attr(755,root,root) %{_libdir}/libmirprotobuf.so
%attr(755,root,root) %{_libdir}/libmirserver.so
%{_includedir}/miral
%{_includedir}/mirclient
%{_includedir}/mircommon
%{_includedir}/mircookie
%{_includedir}/mircore
%{_includedir}/mirplatform
%{_includedir}/mirplatforms
%{_includedir}/mirrenderer
%{_includedir}/mirserver
%{_pkgconfigdir}/mir-client-platform-mesa.pc
%{_pkgconfigdir}/mir-renderer-gl-dev.pc
%{_pkgconfigdir}/miral.pc
%{_pkgconfigdir}/mirclient.pc
%{_pkgconfigdir}/mirclient-debug-extension.pc
%{_pkgconfigdir}/mirclientcpp.pc
%{_pkgconfigdir}/mircookie.pc
%{_pkgconfigdir}/mircore.pc
%{_pkgconfigdir}/mirplatform.pc
%{_pkgconfigdir}/mirrenderer.pc
%{_pkgconfigdir}/mirserver.pc
%files test-devel
%defattr(644,root,root,755)
%{_libdir}/libmir-test-assist.a
%{_includedir}/mirtest
%{py3_sitedir}/mir_perf_framework
%{py3_sitedir}/mir_perf_framework-%{version}-py*.egg-info
%{_pkgconfigdir}/mirtest.pc
%{_datadir}/mir-perf-framework
%files apidocs
%defattr(644,root,root,755)
%{_docdir}/mir-doc