mutter/mutter.spec
Dominique Leuenberger d43ef8abb1 Accepting request 586033 from GNOME:Next
- Obsolete libmutter-1-0 by libmutter-2-0: Needed in order to make
  upgrades work reliably. As libmutter is so closely tied to mutter
  itself, we should probably consider in the future to fold it back
  into the main package.

OBS-URL: https://build.opensuse.org/request/show/586033
OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/mutter?expand=0&rev=281
2018-03-12 17:33:48 +00:00

234 lines
8.8 KiB
RPMSpec

#
# spec file for package mutter
#
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# 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 http://bugs.opensuse.org/
#
%define mutter_major 2
%define mutter_minor 0
Name: mutter
Version: 3.27.92
Release: 0
Summary: Window and compositing manager based on Clutter
License: GPL-2.0-or-later
Group: System/GUI/GNOME
URL: https://www.gnome.org
Source0: http://download.gnome.org/sources/mutter/3.27/%{name}-%{version}.tar.xz
# PATCH-FIX-UPSTREAM mutter-fix-startup.patch bgo#768531 zaitor@opensuse.org -- Fix slow startup notification on wayland
Patch0: mutter-fix-startup.patch
# PATCH-FEATURE-UPSTREAM mutter-iconcache-Support-RGB16_565-format-for-16-bit-color-.patch FATE#323412 bgo#781704 bsc#1024748 vliaskovitis@suse.com -- iconcache: Support RGB16_565 format for 16-bit sessions
Patch1: mutter-iconcache-Support-RGB16_565-format-for-16-bit-color-.patch
# SLE-only patches start at 1000
# PATCH-FEATURE-SLE mutter-SLE-bell.patch FATE#316042 bnc#889218 idonmez@suse.com -- make audible bell work out of the box.
Patch1000: mutter-SLE-bell.patch
# PATCH-FIX-SLE mutter-SLE-relax-some-constraints-on-CSD-windows.patch bnc#883491 cxiong@suse.com -- Relax some constraints on window positioning for CSD windows s.t. they can be placed at the very top of the monitor.
Patch1001: mutter-SLE-relax-some-constraints-on-CSD-windows.patch
# PATCH-FIX-UPSTREAM mutter-SLE-bsc984738-grab-display.patch bsc#984738 bgo#769387 hpj@suse.com -- Revert a upstream commit to avoid X11 race condition that results in wrong dialog sizes.
Patch1002: mutter-SLE-bsc984738-grab-display.patch
# Not available in openSUSE yet
# BuildRequires: pkgconfig(libpipewire-0.1)
BuildRequires: Mesa-libGLESv3-devel
BuildRequires: fdupes
BuildRequires: intltool
BuildRequires: pkgconfig
BuildRequires: zenity
BuildRequires: pkgconfig(cairo) >= 1.10.0
BuildRequires: pkgconfig(egl)
BuildRequires: pkgconfig(gbm) >= 17.1
BuildRequires: pkgconfig(gio-unix-2.0) >= 2.53.2
BuildRequires: pkgconfig(glesv2)
BuildRequires: pkgconfig(gnome-desktop-3.0)
BuildRequires: pkgconfig(gobject-introspection-1.0) >= 0.9.5
BuildRequires: pkgconfig(gsettings-desktop-schemas) >= 3.19.3
BuildRequires: pkgconfig(gtk+-3.0) >= 3.19.7
BuildRequires: pkgconfig(gudev-1.0) >= 232
BuildRequires: pkgconfig(json-glib-1.0)
BuildRequires: pkgconfig(libcanberra-gtk3)
BuildRequires: pkgconfig(libdrm) >= 2.4.83
BuildRequires: pkgconfig(libinput)
BuildRequires: pkgconfig(libstartup-notification-1.0)
BuildRequires: pkgconfig(libsystemd)
BuildRequires: pkgconfig(libudev) >= 136
BuildRequires: pkgconfig(libwacom)
BuildRequires: pkgconfig(pango) >= 1.2.0
BuildRequires: pkgconfig(sm)
BuildRequires: pkgconfig(upower-glib) >= 0.99.0
BuildRequires: pkgconfig(wayland-protocols) >= 1.10
BuildRequires: pkgconfig(wayland-server) >= 1.13.0
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(x11-xcb)
BuildRequires: pkgconfig(xcb-randr)
BuildRequires: pkgconfig(xcomposite) >= 0.2
BuildRequires: pkgconfig(xcursor)
BuildRequires: pkgconfig(xdamage)
BuildRequires: pkgconfig(xext)
BuildRequires: pkgconfig(xfixes)
BuildRequires: pkgconfig(xi)
BuildRequires: pkgconfig(xinerama)
BuildRequires: pkgconfig(xkbcommon) >= 0.4.3
BuildRequires: pkgconfig(xkbcommon-x11)
BuildRequires: pkgconfig(xkbfile)
BuildRequires: pkgconfig(xkeyboard-config)
BuildRequires: pkgconfig(xrandr) >= 1.5.0
BuildRequires: pkgconfig(xrender)
BuildRequires: pkgconfig(xtst)
Requires: zenity
Recommends: %{name}-lang
Provides: windowmanager
# Obsolete the now private typelib.
Obsoletes: typelib-1_0-Meta-3_0
%if !0%{?is_opensuse}
BuildRequires: translation-update-upstream
%endif
%description
Mutter is a window and compositing manager based on Clutter, forked
from Metacity.
%package -n libmutter-%{mutter_major}-%{mutter_minor}
Summary: Window and compositing manager based on Clutter
# we need the gsettings schema; hopefully, they'll stay backwards compatible
# (since we can't require = version, to not break SLPP)
Group: System/Libraries
Requires: %{name}-data >= %{version}
# We need to obsolete the old mutter libs, as otherwise upgrading is impossible
# This makes me believe we should probably fold libmutter into the main package
# with the next update (3.30)
Obsoletes: libmutter0
Obsoletes: libmutter-1-0
%description -n libmutter-%{mutter_major}-%{mutter_minor}
Mutter is a window and compositing manager based on Clutter, forked
from Metacity.
This package contains a library for shared features.
%package data
Summary: Data files for mutter, a window and compositing manager based on Clutter
Group: System/GUI/GNOME
Requires: %{name} = %{version}
%description data
Mutter is a window and compositing manager based on Clutter, forked
from Metacity.
This package contains data files needed by mutter and its library.
%package devel
Summary: Development files for mutter, a window and compositing manager
Group: Development/Libraries/GNOME
Requires: %{name} = %{version}
Requires: libmutter-%{mutter_major}-%{mutter_minor} = %{version}
%description devel
This subpackage contains libraries and header files for developing
applications that want to make use of the mutter library.
%lang_package
%prep
%setup -q
%patch0 -p1
%patch1 -p1
# SLE-only patches and translations.
%if !0%{?is_opensuse}
translation-update-upstream
%patch1000 -p1
%patch1001 -p1
%patch1002 -p1
%endif
%build
# FIXME add --enable-remote-desktop when libpipewire-0.1 is available
%configure \
--enable-wayland \
--enable-native-backend \
--disable-static \
--enable-egl-device \
--enable-compile-warnings=maximum \
%{nil}
%make_build
%install
%make_install
find %{buildroot}%{_libdir} -type f -name '*.la' -delete -print
%find_lang %{name} %{?no_lang_C}
%fdupes %{buildroot}%{_prefix}
%post -n libmutter-%{mutter_major}-%{mutter_minor} -p /sbin/ldconfig
%postun -n libmutter-%{mutter_major}-%{mutter_minor} -p /sbin/ldconfig
%files
%license COPYING
%doc NEWS
%{_mandir}/man1/mutter.1%{?ext_man}
%{_bindir}/mutter
%{_libexecdir}/mutter-restart-helper
%{_datadir}/applications/mutter.desktop
# These so files are not split out since they are private to mutter
%{_libdir}/mutter/libmutter-clutter-%{mutter_major}.so
%{_libdir}/mutter/libmutter-cogl-pango-%{mutter_major}.so
%{_libdir}/mutter/libmutter-cogl-path-%{mutter_major}.so
%{_libdir}/mutter/libmutter-cogl-%{mutter_major}.so
%{_libdir}/mutter/plugins/default.so
# These typelibs are not split out since they are private to mutter
%{_libdir}/mutter/Cally-%{mutter_major}.typelib
%{_libdir}/mutter/Clutter-%{mutter_major}.typelib
%{_libdir}/mutter/ClutterX11-%{mutter_major}.typelib
%{_libdir}/mutter/Cogl-%{mutter_major}.typelib
%{_libdir}/mutter/CoglPango-%{mutter_major}.typelib
%{_libdir}/mutter/Meta-%{mutter_major}.typelib
%files -n libmutter-%{mutter_major}-%{mutter_minor}
%{_libdir}/libmutter-%{mutter_major}.so.*
%dir %{_libdir}/mutter/
# users of libmutter need this directory
%dir %{_libdir}/mutter/plugins/
%files data
# Do not depend on g-c-c just for a directory
%dir %{_datadir}/gnome-control-center
%dir %{_datadir}/gnome-control-center/keybindings
%{_datadir}/gnome-control-center/keybindings/50-mutter-windows.xml
%{_datadir}/gnome-control-center/keybindings/50-mutter-navigation.xml
%{_datadir}/gnome-control-center/keybindings/50-mutter-system.xml
%{_datadir}/gnome-control-center/keybindings/50-mutter-wayland.xml
%{_datadir}/GConf/gsettings/mutter-schemas.convert
%{_datadir}/glib-2.0/schemas/org.gnome.mutter.gschema.xml
%{_datadir}/glib-2.0/schemas/org.gnome.mutter.wayland.gschema.xml
%files lang -f %{name}.lang
%files devel
%{_includedir}/mutter/
%{_libdir}/libmutter-%{mutter_major}.so
%{_libdir}/mutter/Meta-%{mutter_major}.gir
%{_libdir}/mutter/Cally-%{mutter_major}.gir
%{_libdir}/mutter/Clutter-%{mutter_major}.gir
%{_libdir}/mutter/ClutterX11-%{mutter_major}.gir
%{_libdir}/mutter/Cogl-%{mutter_major}.gir
%{_libdir}/mutter/CoglPango-%{mutter_major}.gir
%{_libdir}/pkgconfig/libmutter-%{mutter_major}.pc
%{_libdir}/pkgconfig/mutter-clutter-%{mutter_major}.pc
%{_libdir}/pkgconfig/mutter-clutter-x11-%{mutter_major}.pc
%{_libdir}/pkgconfig/mutter-cogl-%{mutter_major}.pc
%{_libdir}/pkgconfig/mutter-cogl-pango-%{mutter_major}.pc
%{_libdir}/pkgconfig/mutter-cogl-path-%{mutter_major}.pc
%changelog