File compiz.spec of Package compiz
#
# spec file for package compiz
#
# Copyright (c) 2021 SUSE LLC
# Copyright (c) 2010 Dominique Leuenberger, Amsterdam, Netherlands.
#
# 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/
#
%define sover 0
%define _version 0.9.14.2
Name: compiz
Version: 0.9.14.2
Release: 0
Summary: OpenGL window and compositing manager
License: GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT
Group: System/GUI/Other
URL: https://launchpad.net/compiz
Source: https://launchpad.net/compiz/%{_version}/%{version}/+download/%{name}-%{version}.tar.xz
Source1: %{name}-decorator.sh
Source2: baselibs.conf
Source99: compiz-rpmlintrc
# PATCH-FEATURE-OPENSUSE compiz-suse-defaults.patch sor.alexei@meowr.ru -- Compiz default settings for openSUSE.
Patch0: %{name}-suse-defaults.patch
# PATCH-FIX-OPENSUSE compiz-no-gnome-terminal-key.patch sor.alexei@meowr.ru -- Remove gnomecompat terminal keybinding (removed from GNOME).
Patch1: %{name}-no-gnome-terminal-key.patch
# PATCH-FIX-UPSTREAM compiz-fix-special-chars.patch herbert@13thfloor.at -- Fix a crash when special characters are displayed with the cairo decorator.
Patch2: %{name}-fix-special-chars.patch
# PATCH-FIX-OPENSUSE compiz-gwd-fix-tooltips.patch sor.alexei@meowr.ru -- Fix button tooltips appearance in gtk-window-decorator.
Patch3: %{name}-gwd-fix-tooltips.patch
# PATCH-FIX-UPSTREAM compiz-gwd-fix-maximised-topedge-clicks.patch oreaus@gmail.com -- Fix right click near top edge of maximized windows.
Patch4: %{name}-gwd-fix-maximised-topedge-clicks.patch
BuildRequires: boost-devel
BuildRequires: cmake >= 3.17
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: gettext
BuildRequires: gobject-introspection-devel
BuildRequires: hicolor-icon-theme
BuildRequires: intltool
BuildRequires: lcov
BuildRequires: libjpeg-devel
BuildRequires: libtool
BuildRequires: metacity-devel >= 3.22
BuildRequires: pkgconfig
BuildRequires: python3-Cython
BuildRequires: python3-devel
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(gio-2.0)
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(glibmm-2.4)
BuildRequires: pkgconfig(gnome-keybindings)
BuildRequires: pkgconfig(gtk+-3.0)
BuildRequires: pkgconfig(ice)
BuildRequires: pkgconfig(libnotify)
BuildRequires: pkgconfig(libpng)
BuildRequires: pkgconfig(librsvg-2.0)
BuildRequires: pkgconfig(libstartup-notification-1.0)
BuildRequires: pkgconfig(libwnck-3.0)
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(libxslt)
BuildRequires: pkgconfig(pangocairo)
BuildRequires: pkgconfig(protobuf)
BuildRequires: pkgconfig(python3)
BuildRequires: pkgconfig(sm)
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(x11-xcb)
BuildRequires: pkgconfig(xcomposite)
BuildRequires: pkgconfig(xdamage)
BuildRequires: pkgconfig(xext)
BuildRequires: pkgconfig(xi)
BuildRequires: pkgconfig(xinerama)
BuildRequires: pkgconfig(xrandr)
BuildRequires: pkgconfig(xrender)
Requires: %{name}-decorator = 0.9
Requires: %{name}-plugins = %{version}
Requires: lib%{name}config
Recommends: %{name}-plugins-main = %{version}
Obsoletes: %{name}-kde4 < %{version}
Obsoletes: %{name}-branding-openSUSE < %{version}
Obsoletes: %{name}-branding-upstream < %{version}
Obsoletes: %{name}-branding-SLE < %{version}
Obsoletes: compicc < 0.9
Provides: windowmanager
%glib2_gsettings_schema_requires
%ifarch %arm aarch64
BuildRequires: pkgconfig(egl)
BuildRequires: pkgconfig(glesv2)
%else
BuildRequires: pkgconfig(gl)
BuildRequires: pkgconfig(glu)
%endif
%description
Compiz is an OpenGL compositing manager that uses
GLX_EXT_texture_from_drawable for binding redirected top-level
windows to texture objects. It has a flexible plug-in system and it
is designed to run well on most graphics hardware.
%lang_package
%package gnome
Summary: OpenGL window and compositing manager configuration utilities
Group: System/GUI/Other
Requires: %{name} = %{version}
Requires: %{name}-plugins = %{version}
Recommends: %{name}-plugins-main = %{version}
Suggests: ccsm >= 0.9
Suggests: ubuntu-mate-wallpapers
Provides: lib%{name}config-backend = 0.9
Provides: %{name}-decorator = 0.9
%glib2_gsettings_schema_requires
%description gnome
This package contains MATE/GNOME based configuration utilities for
the Compiz compositing manager.
%package plugins
Summary: OpenGL window and compositing manager default plugins
Group: System/GUI/Other
Requires: %{name} = %{version}
%description plugins
This package contains the default Compiz compositing manager
plugins.
%package plugins-extra
Summary: OpenGL window and compositing manager extra plugins
Group: System/GUI/Other
Requires: %{name} = %{version}
Requires: %{name}-plugins = %{version}
Provides: %{name}-plugins-main = %{version}
Obsoletes: %{name}-plugins-main < %{version}
Obsoletes: %{name}-plugins-main-lang < %{version}
Obsoletes: %{name}-plugins-main-devel < %{version}
Obsoletes: %{name}-plugins-experimental < %{version}
Obsoletes: %{name}-plugins-experimental-lang < %{version}
Obsoletes: %{name}-plugins-experimental-devel < %{version}
Obsoletes: %{name}-plugins-extra-lang < %{version}
Obsoletes: %{name}-plugins-extra-devel < %{version}
Obsoletes: %{name}-plugins-unsupported < %{version}
Obsoletes: %{name}-plugins-unsupported-lang < %{version}
Obsoletes: %{name}-plugins-unsupported-devel < %{version}
%description plugins-extra
This package contains the non-default Compiz compositing manager
plugins.
%package devel
Summary: Development files for Compiz
Group: Development/Languages/C and C++
Requires: %{name} = %{version}
Requires: %{name}-gnome
Requires: %{name}-plugins = %{version}
Requires: cmake
Requires: intltool
Requires: lib%{name}config = %{version}
Requires: pkgconfig
Requires: pkgconfig(gio-2.0)
Requires: pkgconfig(glib-2.0)
Requires: pkgconfig(glibmm-2.4)
Requires: pkgconfig(gtk+-3.0)
Requires: pkgconfig(ice)
Requires: pkgconfig(libpng)
Requires: pkgconfig(libstartup-notification-1.0) >= 0.7
Requires: pkgconfig(libxml-2.0)
Requires: pkgconfig(libxslt)
Requires: pkgconfig(sm)
Requires: pkgconfig(x11)
Requires: pkgconfig(x11-xcb)
Requires: pkgconfig(xcomposite)
Requires: pkgconfig(xdamage)
Requires: pkgconfig(xinerama)
Requires: pkgconfig(xrandr)
Requires: pkgconfig(xrender) >= 0.9.3
Obsoletes: lib%{name}config-devel < %{version}
Provides: lib%{name}config-devel = %{version}
Provides: libdecoration-devel = %{version}
%ifarch %arm aarch64
Requires: pkgconfig(egl)
Requires: pkgconfig(glesv2)
%else
Requires: pkgconfig(gl)
Requires: pkgconfig(glu)
%endif
%description devel
Compiz is an OpenGL compositing manager that uses
GLX_EXT_texture_from_drawable for binding redirected top-level
windows to texture objects. It has a flexible plug-in system and it
is designed to run well on most graphics hardware.
%package -n libdecoration%{sover}
Summary: Compiz window decoration library
Group: System/Libraries
%description -n libdecoration%{sover}
The window decoration library is responsible for drawing the
window borders and title bar of windows managed by Compiz. It is
used by window decorators like gtk-window-decorator.
%package -n lib%{name}config
Summary: CompizConfig plugin required for CCSM
Group: System/Libraries
Requires: %{name} >= %{version}
Recommends: lib%{name}config-backend >= 0.9
Obsoletes: lib%{name}config-backend < 0.9
%description -n lib%{name}config
CompizConfig plugin required for compizconfig-settings-manager.
%package -n %{name}config-settings-manager
Summary: Settings Manager for Compiz (CCSM)
Group: System/X11/Utilities
Requires: python3-ccm = %{version}
Provides: ccsm = 0.9
BuildArch: noarch
%description -n %{name}config-settings-manager
Compiz Config and Settings tool (CCSM).
%lang_package -n %{name}config-settings-manager
%package -n %{name}config-settings-manager-common
Summary: Settings Manager for Compiz -- Common files
Group: System/X11/Utilities
BuildArch: noarch
%description -n %{name}config-settings-manager-common
Common files for the Compiz Config and Settings tool (CCSM).
%package -n python3-%{name}config
Summary: Python bindings for libraries for compizconfig-settings
Group: Development/Languages/Python
Requires: %{name} = %{version}
Requires: python3
Obsoletes: python-%{name}config < 0.9.13.1+bzr20190103
Obsoletes: python2-%{name}config < 0.9.13.1+bzr20190103
%description -n python3-%{name}config
Python bindings for libraries/plugins for compizconfig-settings.
%package -n python3-ccm
Summary: CompizConfig Manager Backend
Group: Development/Languages/Python
Requires: %{name} = %{version}
Requires: %{name}config-settings-manager-common = %{version}
Requires: python3
Requires: python3-%{name}config = %{version}
Requires: python3-cairo
Requires: python3-gobject
Requires: python3-gobject-cairo
Requires: python3-xml
Obsoletes: python-ccm < 0.9.13.1+bzr20190103
Obsoletes: python2-ccm < 0.9.13.1+bzr20190103
BuildArch: noarch
%if 0%{?sle_version} >= 120200
Requires: python3-gobject-Gdk
%endif
%description -n python3-ccm
The backend to Compiz Config Manager.
%prep
%autosetup -p1
cp -a %{SOURCE1} %{name}-decorator
sed -i '/find_program/s|cython3|cython-%{py3_ver}|' \
compizconfig/compizconfig-python/CMakeLists.txt
%build
%cmake \
-DBUILD_SHARED_LIBS=OFF \
-DCOMPIZ_BUILD_WITH_RPATH=OFF \
-DCMAKE_SKIP_INSTALL_RPATH=ON \
-DCOMPIZ_PACKAGING_ENABLED=ON \
-DCOMPIZ_WERROR=OFF \
-DCMAKE_INSTALL_FULL_LIBDIR=%{_libdir} \
-DCMAKE_INSTALL_FULL_INCLUDEDIR=%{_includedir} \
-DCMAKE_INSTALL_FULL_DATAROOTDIR=%{_datadir} \
%ifarch %arm aarch64
-DBUILD_GLES=ON \
%endif
-DCOMPIZ_DISABLE_PLUGIN_DBUS=ON
%cmake_build
%install
%cmake_install
install -Dpm 0755 %{name}-decorator %{buildroot}%{_bindir}/%{name}-decorator
# cmake modules are installed into a wrong directory.
mkdir -p %{buildroot}%{_datadir}/cmake/
mv -f %{buildroot}%{_datadir}/cmake-*/ %{buildroot}%{_datadir}/cmake/Modules/
for de in mate gnome; do
mkdir -p %{buildroot}%{_datadir}/$de-control-center/keybindings/
install -pm 0644 */gtk/gnome/*.xml %{buildroot}%{_datadir}/$de-control-center/keybindings/
install -Dpm 0644 %{buildroot}%{_datadir}/applications/%{name}.desktop \
%{buildroot}%{_datadir}/$de/wm-properties/%{name}.desktop
done
mkdir -p %{buildroot}%{_datadir}/GConf/gsettings/
install -pm 0644 postinst/convert-files/*.convert %{buildroot}%{_datadir}/GConf/gsettings/
rm -rf %{buildroot}%{_datadir}/gconf/schemas/
%fdupes %{buildroot}%{_datadir}/
%find_lang %{name}
%find_lang ccsm
%ldconfig_scriptlets
%post -n libdecoration%{sover} -p /sbin/ldconfig
%postun -n libdecoration%{sover} -p /sbin/ldconfig
%post -n lib%{name}config -p /sbin/ldconfig
%postun -n lib%{name}config -p /sbin/ldconfig
%files
%license COPYING*
%doc AUTHORS NEWS README
%{_bindir}/%{name}
%{_bindir}/%{name}-decorator
%{_datadir}/applications/%{name}.desktop
%dir %{_libdir}/%{name}/
%{_libdir}/lib%{name}_core.so.*
%dir %{_datadir}/%{name}/
%{_datadir}/%{name}/core.xml
%{_datadir}/%{name}/icon.png
%{_datadir}/%{name}/xslt
%files lang -f %{name}.lang
%files gnome
%{_bindir}/gtk-window-decorator
%{_libdir}/%{name}config/backends/libgsettings.so
%{_libdir}/lib%{name}config_gsettings_backend.so
%dir %{_datadir}/*-control-center/
%dir %{_datadir}/*-control-center/keybindings/
%{_datadir}/*-control-center/keybindings/*
%dir %{_datadir}/mate/
%dir %{_datadir}/gnome/
%dir %{_datadir}/*/wm-properties/
%{_datadir}/*/wm-properties/%{name}.desktop
%{_datadir}/glib-2.0/schemas/*.xml
%{_datadir}/GConf/gsettings/*.convert
%files plugins
%{_libdir}/%{name}/*animation.*
%{_datadir}/%{name}/*animation.*
%{_libdir}/%{name}/*colorfilter.*
%{_datadir}/%{name}/*colorfilter.*
%{_datadir}/%{name}/colorfilter/
%{_libdir}/%{name}/*commands.*
%{_datadir}/%{name}/*commands.*
%{_libdir}/%{name}/*%{name}toolbox.*
%{_datadir}/%{name}/*%{name}toolbox.*
%{_libdir}/%{name}/*composite.*
%{_datadir}/%{name}/*composite.*
%{_libdir}/%{name}/*copytex.*
%{_datadir}/%{name}/*copytex.*
%{_libdir}/%{name}/*decor.*
%{_datadir}/%{name}/*decor.*
%{_libdir}/%{name}/*expo.*
%{_datadir}/%{name}/*expo.*
%{_libdir}/%{name}/*ezoom.*
%{_datadir}/%{name}/*ezoom.*
%{_libdir}/%{name}/*fade.*
%{_datadir}/%{name}/*fade.*
%{_libdir}/%{name}/*gnomecompat.*
%{_datadir}/%{name}/*gnomecompat.*
%{_libdir}/%{name}/*grid.*
%{_datadir}/%{name}/*grid.*
%{_libdir}/%{name}/*imgpng.*
%{_datadir}/%{name}/*imgpng.*
%{_libdir}/%{name}/*matecompat.*
%{_datadir}/%{name}/*matecompat.*
%{_libdir}/%{name}/*mousepoll.*
%{_datadir}/%{name}/*mousepoll.*
%{_libdir}/%{name}/*move.*
%{_datadir}/%{name}/*move.*
%{_libdir}/%{name}/*opengl.*
%{_datadir}/%{name}/*opengl.*
%{_libdir}/%{name}/*place.*
%{_datadir}/%{name}/*place.*
%{_libdir}/%{name}/*regex.*
%{_datadir}/%{name}/*regex.*
%{_libdir}/%{name}/*resize.*
%{_datadir}/%{name}/*resize.*
%{_libdir}/%{name}/*scale.*
%{_datadir}/%{name}/*scale.*
%{_datadir}/%{name}/scale
%{_libdir}/%{name}/*session.*
%{_datadir}/%{name}/*session.*
%{_libdir}/%{name}/*snap.*
%{_datadir}/%{name}/*snap.*
%{_libdir}/%{name}/*switcher.*
%{_datadir}/%{name}/*switcher.*
%{_libdir}/%{name}/*vpswitch.*
%{_datadir}/%{name}/*vpswitch.*
%{_libdir}/%{name}/*wall.*
%{_datadir}/%{name}/*wall.*
%{_libdir}/%{name}/*workarounds.*
%{_datadir}/%{name}/*workarounds.*
%files plugins-extra
%{_libdir}/%{name}/*addhelper.*
%{_datadir}/%{name}/*addhelper.*
%{_libdir}/%{name}/*annotate.*
%{_datadir}/%{name}/*annotate.*
%{_libdir}/%{name}/*animationaddon.*
%{_datadir}/%{name}/*animationaddon.*
%{_libdir}/%{name}/*animationjc.*
%{_datadir}/%{name}/*animationjc.*
%{_libdir}/%{name}/*animationplus.*
%{_datadir}/%{name}/*animationplus.*
%{_libdir}/%{name}/*animationsim.*
%{_datadir}/%{name}/*animationsim.*
%{_libdir}/%{name}/*clone.*
%{_datadir}/%{name}/*clone.*
%{_libdir}/%{name}/*crashhandler.*
%{_datadir}/%{name}/*crashhandler.*
%{_libdir}/%{name}/*cube.*
%{_datadir}/%{name}/*cube.*
%{_datadir}/%{name}/cube/
%{_libdir}/%{name}/*cubeaddon.*
%{_datadir}/%{name}/*cubeaddon.*
%{_datadir}/%{name}/cubeaddon/
%{_libdir}/%{name}/*extrawm.*
%{_datadir}/%{name}/*extrawm.*
%{_libdir}/%{name}/*fadedesktop.*
%{_datadir}/%{name}/*fadedesktop.*
%{_libdir}/%{name}/*firepaint.*
%{_datadir}/%{name}/*firepaint.*
%{_libdir}/%{name}/*imgjpeg.*
%{_datadir}/%{name}/*imgjpeg.*
%{_libdir}/%{name}/*imgsvg.*
%{_datadir}/%{name}/*imgsvg.*
%{_libdir}/%{name}/*inotify.*
%{_datadir}/%{name}/*inotify.*
%{_libdir}/%{name}/*mag.*
%{_datadir}/%{name}/*mag.*
%{_datadir}/%{name}/mag/
%{_libdir}/%{name}/*maximumize.*
%{_datadir}/%{name}/*maximumize.*
%{_libdir}/%{name}/*neg.*
%{_datadir}/%{name}/*neg.*
%{_libdir}/%{name}/*notification.*
%{_datadir}/%{name}/*notification.*
%{_datadir}/%{name}/notification
%{_libdir}/%{name}/*obs.*
%{_datadir}/%{name}/*obs.*
%{_libdir}/%{name}/*opacify.*
%{_datadir}/%{name}/*opacify.*
%{_libdir}/%{name}/*put.*
%{_datadir}/%{name}/*put.*
%{_libdir}/%{name}/*resizeinfo.*
%{_datadir}/%{name}/*resizeinfo.*
%{_libdir}/%{name}/*ring.*
%{_datadir}/%{name}/*ring.*
%{_libdir}/%{name}/*rotate.*
%{_datadir}/%{name}/*rotate.*
%{_libdir}/%{name}/*scaleaddon.*
%{_datadir}/%{name}/*scaleaddon.*
%{_libdir}/%{name}/*scalefilter.*
%{_datadir}/%{name}/*scalefilter.*
%{_libdir}/%{name}/*screenshot.*
%{_datadir}/%{name}/*screenshot.*
%{_libdir}/%{name}/*shelf.*
%{_datadir}/%{name}/*shelf.*
%{_libdir}/%{name}/*shift.*
%{_datadir}/%{name}/*shift.*
%{_libdir}/%{name}/*showdesktop.*
%{_datadir}/%{name}/*showdesktop.*
%{_libdir}/%{name}/*showmouse.*
%{_datadir}/%{name}/*showmouse.*
%{_datadir}/%{name}/showmouse/
%{_libdir}/%{name}/*showrepaint.*
%{_datadir}/%{name}/*showrepaint.*
%{_libdir}/%{name}/*splash.*
%{_datadir}/%{name}/*splash.*
%{_datadir}/%{name}/splash/
%{_libdir}/%{name}/*text.*
%{_datadir}/%{name}/*text.*
%{_libdir}/%{name}/*titleinfo.*
%{_datadir}/%{name}/*titleinfo.*
%{_libdir}/%{name}/*trailfocus.*
%{_datadir}/%{name}/*trailfocus.*
%{_libdir}/%{name}/*wallpaper.*
%{_datadir}/%{name}/*wallpaper.*
%{_libdir}/%{name}/*water.*
%{_datadir}/%{name}/*water.*
%{_libdir}/%{name}/*winrules.*
%{_datadir}/%{name}/*winrules.*
%{_libdir}/%{name}/*wizard.*
%{_datadir}/%{name}/*wizard.*
%{_libdir}/%{name}/*wobbly.*
%{_datadir}/%{name}/*wobbly.*
%{_libdir}/%{name}/*workspacenames.*
%{_datadir}/%{name}/*workspacenames.*
%ifnarch %arm aarch64
%{_libdir}/%{name}/*bench.*
%{_datadir}/%{name}/*bench.*
%{_libdir}/%{name}/*blur.*
%{_datadir}/%{name}/*blur.*
%{_libdir}/%{name}/*freewins.*
%{_datadir}/%{name}/*freewins.*
%{_libdir}/%{name}/*gears.*
%{_datadir}/%{name}/*gears.*
%{_libdir}/%{name}/*td.*
%{_datadir}/%{name}/*td.*
%{_libdir}/%{name}/*thumbnail.*
%{_datadir}/%{name}/*thumbnail.*
%{_libdir}/%{name}/*widget.*
%{_datadir}/%{name}/*widget.*
%endif
%files devel
%{_includedir}/%{name}/
%{_includedir}/%{name}config/
%{_libdir}/lib%{name}_core.so
%{_libdir}/libdecoration.so
%{_libdir}/lib%{name}config.so
%{_libdir}/pkgconfig/*.pc
%{_datadir}/%{name}/cmake/
%{_datadir}/cmake/Modules/*.cmake
%files -n libdecoration%{sover}
%{_libdir}/libdecoration.so.%{sover}*
%files -n lib%{name}config
%dir %{_sysconfdir}/%{name}config/
%config %{_sysconfdir}/%{name}config/*
%{_libdir}/lib%{name}config.so.%{sover}*
%{_libdir}/%{name}config/
%exclude %{_libdir}/%{name}config/backends/libgsettings.so
%{_libdir}/%{name}/*ccp*
%{_datadir}/%{name}/*ccp.*
%files -n %{name}config-settings-manager
%{_bindir}/ccsm
%{_datadir}/applications/ccsm.desktop
%{_datadir}/icons/hicolor/*/apps/ccsm.*
%files -n %{name}config-settings-manager-lang -f ccsm.lang
%files -n %{name}config-settings-manager-common
%{_datadir}/ccsm/
%files -n python3-%{name}config
%{python3_sitearch}/%{name}config*
%files -n python3-ccm
%{python3_sitelib}/ccm/
%{python3_sitelib}/ccsm*
%changelog