View Raw Ebuild
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{10..14} )
UVER=+25.10.20250930
UREV=0ubuntu3
inherit gnome2 cmake python-single-r1 ubuntu-versionator
DESCRIPTION="Compiz Fusion OpenGL window and compositing manager patched for the Unity7 user interface"
HOMEPAGE="https://launchpad.net/compiz"
SRC_URI="${UURL}-${UREV}.tar.xz"
LICENSE="GPL-2 LGPL-2.1 MIT"
SLOT="0/$(usub)"
KEYWORDS="~amd64"
IUSE="gles2 mate"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
RESTRICT="test"
COMMON_DEPEND="
>=dev-cpp/glibmm-2.64.2:2
>=dev-libs/glib-2.39.4:2
dev-libs/libxslt
>=dev-libs/protobuf-3.12.4:=
gnome-base/gsettings-desktop-schemas
>=gnome-base/librsvg-2.14.4
>=media-libs/libjpeg-turbo-1.1.90
>=media-libs/libpng-1.6.2:0=
virtual/glu
>=x11-libs/cairo-1.14.0
>=x11-libs/gtk+-3.9.10:3[introspection]
>=x11-libs/libICE-1.0.1
>=x11-libs/libnotify-0.7.0
>=x11-libs/libSM-1.0.1
>=x11-libs/libwnck-2.91.6:3
x11-libs/libX11
>=x11-libs/libXcomposite-0.4.5
>=x11-libs/libXcursor-1.1.2
>=x11-libs/libXdamage-1.1
>=x11-libs/libXext-1.3.0
>=x11-libs/libXfixes-4.0.1
>=x11-libs/libXi-1.2.99.4
x11-libs/libXinerama
>=x11-libs/libXrandr-1.1.0.2
>=x11-libs/libXrender-0.9.1
>=x11-libs/pango-1.14.0[introspection]
>=x11-libs/startup-notification-0.7
>=x11-wm/metacity-3.22.0
${PYTHON_DEPS}
$(python_gen_cond_dep '>=dev-libs/libxml2-2.7.4:2[${PYTHON_USEDEP}]')
"
RDEPEND="${COMMON_DEPEND}
>=app-accessibility/at-spi2-core-2.46.0:2
>=dev-libs/libsigc++-2.2.0:2
gnome-base/dconf
>=gnome-base/gnome-settings-daemon-3.4.2
media-libs/libglvnd
>=sys-apps/dbus-1.9.14
>=sys-devel/gcc-5.2
>=sys-libs/glibc-2.33
>=x11-libs/gdk-pixbuf-2.22.0:2[introspection]
mate? ( mate-base/mate-settings-daemon )
$(python_gen_cond_dep 'dev-python/pygobject:3[${PYTHON_USEDEP}]')
"
DEPEND="${COMMON_DEPEND}
dev-libs/dbus-glib
dev-perl/XML-Parser
media-libs/mesa[gles2(+)?,opengl]
>=x11-base/xorg-proto-1.4.8
>=x11-base/xorg-server-0.7.0
!gles2? ( media-libs/glewmx:0= )
$(python_gen_cond_dep '
dev-libs/boost:=[python,${PYTHON_USEDEP}]
dev-python/cython[${PYTHON_USEDEP}]
dev-python/setuptools[${PYTHON_USEDEP}]
')
"
BDEPEND="
dev-util/intltool
dev-build/libtool
virtual/pkgconfig
"
PDEPEND="unity-base/unity[gles2=]"
S="${S}${UVER}"
MAKEOPTS="${MAKEOPTS} -j1"
src_prepare() {
# Fix desktop freeze for Chromium, Chrome and Kodi when returning from fullscreen video when using proprietary gfx drivers #
# Related to Composite plugin - Unredirect Match, see https://askubuntu.com/questions/577459
sed -i \
-e 's:!(class=chromium-browser):!(class=chromium-browser) \& !(class=Chromium-browser-chromium) \& !(class=Google-chrome) \& !(class=Kodi):' \
plugins/composite/composite.xml.in || die
# Fix Expo y-offset and y-bottom-offset #
echo -e \
"\n[org.compiz.expo]\ny-offset = 35\ny-bottom-offset = 5" \
>> debian/compiz-gnome.gsettings-override || die
# Disable recompiling GSettings schemas inside sandbox #
sed -i \
-e "/# Recompile GSettings Schemas/,+6 d" \
cmake/CompizGSettings.cmake || die
grep -Fq " endif (GSETTINGS_GLOBAL_INSTALL_DIR_SET)" \
cmake/CompizGSettings.cmake || die
# Disable updating icon cache inside sandbox #
sed -i \
-e "/# Update icon cache/,+11 d" \
compizconfig/ccsm/setup.py || die
grep -Fq " length = 0" \
compizconfig/ccsm/setup.py || die
python_fix_shebang compizconfig/ccsm
# Patchset already applied #
> debian/patches/series
ubuntu-versionator_src_prepare
}
src_configure() {
local mycmakeargs=(
-DBUILD_GLES=$(usex gles2 ON OFF)
-DBUILD_XORG_GTEST=OFF
-DCMAKE_INSTALL_LOCALSTATEDIR="${EPREFIX}/var"
-DCMAKE_INSTALL_LIBDIR="$(get_libdir)"
-DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr"
-DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
-DCOMPIZ_BUILD_TESTING=OFF
-DCOMPIZ_BUILD_WITH_RPATH=OFF
-DCOMPIZ_DISABLE_GS_SCHEMAS_INSTALL=OFF
-DCOMPIZ_PACKAGING_ENABLED=ON
-DCOMPIZ_WERROR=OFF
-Wno-dev
)
CMAKE_BUILD_TYPE="RelWithDebInfo" cmake_src_configure
}
src_install() {
cmake_src_install
python_optimize
local CMAKE_DIR=$(cmake --system-information | grep "^CMAKE_ROOT " | cut -d '"' -f 2)
insinto "${CMAKE_DIR}"/Modules
doins cmake/FindCompiz.cmake
doins cmake/FindOpenGLES2.cmake
doins compizconfig/libcompizconfig/cmake/FindCompizConfig.cmake
insinto /usr/share/glib-2.0/schemas
newins debian/compiz-gnome.gsettings-override 10_compiz-ubuntu.gschema.override
insinto /usr/lib/compiz/migration
doins postinst/convert-files/*.convert
doman debian/{ccsm,compiz,gtk-window-decorator}.1
dosym -r /usr/share/gnome-control-center/keybindings/50-compiz-navigation.xml \
/usr/share/unity-control-center/keybindings/50-compiz-navigation.xml
dosym -r /usr/share/gnome-control-center/keybindings/50-compiz-windows.xml \
/usr/share/unity-control-center/keybindings/50-compiz-windows.xml
use mate && dosym -r /usr/share/applications/compiz.desktop \
/usr/share/mate/wm-properties/compiz.desktop
}