mutter/mutter.spec

246 lines
8.0 KiB
RPMSpec
Raw Normal View History

#
# spec file for package mutter
#
# Copyright (c) 2016 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/
#
%if 0%{?suse_version} == 1315
%bcond_with wayland
%else
%bcond_without wayland
%endif
%global __provides_exclude_from ^%{_libdir}/mutter/.*.typelib$
Name: mutter
Version: 3.22.0
Release: 0
Summary: Window and compositing manager based on Clutter
License: GPL-2.0+
Group: System/GUI/GNOME
Url: http://www.gnome.org
Source: http://download.gnome.org/sources/mutter/3.22/%{name}-%{version}.tar.xz
Accepting request 422494 from home:zhangxiaofei:branches:GNOME:Factory SLE sync - Add mutter-bsc984738-grab-display.patch (bsc#984738, bgo#769387). - Drop mutter-grab-display.patch, it has been fixed by upstream differently. - Update to GNOME 3.20 Fate#318572 - Remove upstream patches: mutter-bnc879109-no-monitors-crash.patch - Refresh mutter-grab-display.patch, mutter-bell.patch, relax-some-constraints-on-CSD-windows-in-sle-classic.patch - Update mutter-bell.patch so it works on all cases (bnc#889218) - Add relax-some-constraints-on-CSD-windows-in-sle-classic.patch: CSD (Client Side Decoration) windows have invisible box wrapping around them, which leads to some positioning issues as in this bug report. Relax some constraints on window positioning for CSD windows s.t. they can be placed at the very top of the monitor. This fix works nicely for "sle-classic" as there is no top bar any more, and is NOT applied in other GNOME sessions for reasons stated in bgo#719772 (bnc#883491). - Add mutter-bnc879109-no-monitors-crash.patch: Fixes a crash in Mutter when there are no usable monitors, such as when a laptop is booted with the lid closed while on a docking station, with the intent of plugging an external monitor later (bnc#879109). - Added support for gnome-patch-translation (2 strings). - Update mutter-grab-display.patch to fix (bnc#873763) OBS-URL: https://build.opensuse.org/request/show/422494 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/mutter?expand=0&rev=203
2016-08-26 14:00:22 +02:00
# PATCH-FEATURE-SLE mutter-bell.patch FATE#316042 bnc#889218 idonmez@suse.com -- make audible bell work out of the box.
Patch1: mutter-bell.patch
# PATCH-FIX-SLE relax-some-constraints-on-CSD-windows-in-sle-classic.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.
Patch2: relax-some-constraints-on-CSD-windows-in-sle-classic.patch
# PATCH-FIX-UPSTREAM mutter-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.
Patch3: mutter-bsc984738-grab-display.patch
# PATCH-FIX-UPSTREAM mutter-screeenshot-coords.patch bgo#771502 dimstar@opensuse.org -- Yet another fix for area-screenshots
Patch4: mutter-screeenshot-coords.patch
BuildRequires: fdupes
BuildRequires: gobject-introspection-devel >= 0.9.5
BuildRequires: libSM-devel
BuildRequires: libX11-devel
BuildRequires: libXinerama-devel
%if !0%{?is_opensuse}
BuildRequires: translation-update-upstream
%endif
BuildRequires: update-desktop-files
BuildRequires: zenity
BuildRequires: pkgconfig(cairo) >= 1.10.0
BuildRequires: pkgconfig(gio-unix-2.0) >= 2.25.10
BuildRequires: pkgconfig(gnome-desktop-3.0)
BuildRequires: pkgconfig(gsettings-desktop-schemas) >= 3.19.3
BuildRequires: pkgconfig(gtk+-3.0) >= 3.19.7
BuildRequires: pkgconfig(json-glib-1.0)
BuildRequires: pkgconfig(libcanberra-gtk3)
BuildRequires: pkgconfig(libstartup-notification-1.0)
BuildRequires: pkgconfig(pango) >= 1.2.0
BuildRequires: pkgconfig(upower-glib) >= 0.99.0
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(xkbcommon) >= 0.4.3
BuildRequires: pkgconfig(xkbcommon-x11)
BuildRequires: pkgconfig(xkbfile)
BuildRequires: pkgconfig(xkeyboard-config)
BuildRequires: pkgconfig(xrandr) >= 1.5.0
BuildRequires: pkgconfig(xrender)
%if %{with wayland}
BuildRequires: pkgconfig(gbm) >= 10.3
BuildRequires: pkgconfig(gudev-1.0)
BuildRequires: pkgconfig(libdrm)
BuildRequires: pkgconfig(libinput)
BuildRequires: pkgconfig(libsystemd)
BuildRequires: pkgconfig(wayland-protocols) >= 1.7
BuildRequires: pkgconfig(wayland-server) >= 1.4.93
%endif
Requires: zenity
Recommends: %{name}-lang
Provides: windowmanager
# Obsolete the now private typelib.
Obsoletes: typelib-1_0-Meta-3_0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
Mutter is a window and compositing manager based on Clutter, forked
from Metacity.
%package -n libmutter0
Summary: Window and compositing manager based on Clutter -- Library
Group: System/Libraries
# we need the gsettings schema; hopefully, they'll stay backwards compatible
# (since we can't require = version, to not break SLPP)
Requires: %{name}-data >= %{version}
%description -n libmutter0
Mutter is a window and compositing manager based on Clutter, forked
from Metacity.
This package contains a library for shared features.
%package data
Summary: Window and compositing manager based on Clutter -- Data Files
Group: System/GUI/GNOME
Requires: %{name} = %{version}
%glib2_gsettings_schema_requires
%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: Include Files and Libraries mandatory for Development
Group: Development/Libraries/GNOME
Requires: %{name} = %{version}
Requires: libmutter0 = %{version}
%description devel
This package contains all necessary include files and libraries needed
to develop applications that require these.
%lang_package
%prep
%setup -q
%if !0%{?is_opensuse}
translation-update-upstream
Accepting request 422494 from home:zhangxiaofei:branches:GNOME:Factory SLE sync - Add mutter-bsc984738-grab-display.patch (bsc#984738, bgo#769387). - Drop mutter-grab-display.patch, it has been fixed by upstream differently. - Update to GNOME 3.20 Fate#318572 - Remove upstream patches: mutter-bnc879109-no-monitors-crash.patch - Refresh mutter-grab-display.patch, mutter-bell.patch, relax-some-constraints-on-CSD-windows-in-sle-classic.patch - Update mutter-bell.patch so it works on all cases (bnc#889218) - Add relax-some-constraints-on-CSD-windows-in-sle-classic.patch: CSD (Client Side Decoration) windows have invisible box wrapping around them, which leads to some positioning issues as in this bug report. Relax some constraints on window positioning for CSD windows s.t. they can be placed at the very top of the monitor. This fix works nicely for "sle-classic" as there is no top bar any more, and is NOT applied in other GNOME sessions for reasons stated in bgo#719772 (bnc#883491). - Add mutter-bnc879109-no-monitors-crash.patch: Fixes a crash in Mutter when there are no usable monitors, such as when a laptop is booted with the lid closed while on a docking station, with the intent of plugging an external monitor later (bnc#879109). - Added support for gnome-patch-translation (2 strings). - Update mutter-grab-display.patch to fix (bnc#873763) OBS-URL: https://build.opensuse.org/request/show/422494 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/mutter?expand=0&rev=203
2016-08-26 14:00:22 +02:00
%patch1 -p1
%patch2 -p1
%patch3 -p1
%endif
%patch4 -p1
%build
%configure \
%if %{with wayland}
--enable-wayland \
--enable-native-backend \
%else
--disable-wayland \
--disable-native-backend \
%endif
--disable-static \
--enable-compile-warnings=maximum
make %{?_smp_mflags}
%install
%make_install
find %{buildroot}%{_libdir} -type f -name '*.la' -delete -print
%suse_update_desktop_file %{name}
%find_lang %{name} %{?no_lang_C}
%fdupes %{buildroot}
%post
%desktop_database_post
%postun
%desktop_database_postun
%post -n libmutter0 -p /sbin/ldconfig
%postun -n libmutter0 -p /sbin/ldconfig
%post data
%glib2_gsettings_schema_post
%postun data
%glib2_gsettings_schema_postun
%files
%defattr (-, root, root)
%doc COPYING NEWS
%doc %{_mandir}/man1/mutter.1%{?ext_man}
%{_bindir}/mutter
# These so files are not split out since they are private to mutter
%{_libdir}/mutter/libmutter-clutter-1.0.so
%{_libdir}/mutter/libmutter-cogl-pango.so
%{_libdir}/mutter/libmutter-cogl-path.so
%{_libdir}/mutter/libmutter-cogl.so
%{_libdir}/mutter/plugins/default.so
#
%{_libexecdir}/mutter-restart-helper
%{_datadir}/applications/mutter.desktop
# These typelibs are not split out since they are private to mutter
%{_libdir}/mutter/Cally-1.0.typelib
%{_libdir}/mutter/Clutter-1.0.typelib
%{_libdir}/mutter/ClutterX11-1.0.typelib
%{_libdir}/mutter/Cogl-1.0.typelib
#{_libdir}/mutter/Cogl-2.0.typelib
%{_libdir}/mutter/CoglPango-1.0.typelib
#{_libdir}/mutter/CoglPango-2.0.typelib
%{_libdir}/mutter/Meta-3.0.typelib
#
%files -n libmutter0
%defattr(-,root,root)
%{_libdir}/libmutter.so.*
%dir %{_libdir}/mutter/
# users of libmutter need this directory
%dir %{_libdir}/mutter/plugins/
%files data
%defattr(-,root,root)
# 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}/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
%defattr(-,root,root)
%{_includedir}/mutter/
%{_libdir}/libmutter.so
%{_libdir}/mutter/Meta-3.0.gir
%{_libdir}/mutter/Cally-1.0.gir
%{_libdir}/mutter/Clutter-1.0.gir
%{_libdir}/mutter/ClutterX11-1.0.gir
%{_libdir}/mutter/Cogl-1.0.gir
#{_libdir}/mutter/Cogl-2.0.gir
%{_libdir}/mutter/CoglPango-1.0.gir
#{_libdir}/mutter/CoglPango-2.0.gir
%{_libdir}/pkgconfig/libmutter.pc
%{_libdir}/pkgconfig/mutter-clutter-1.0.pc
%{_libdir}/pkgconfig/mutter-clutter-x11-1.0.pc
%{_libdir}/pkgconfig/mutter-cogl-1.0.pc
%{_libdir}/pkgconfig/mutter-cogl-pango-1.0.pc
%{_libdir}/pkgconfig/mutter-cogl-path-1.0.pc
%changelog