diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
commit | 4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch) | |
tree | ba5f07bf3f9d22d82e54a462313f5d244036c768 /x11-wm/compiz |
reinit the tree, so we can have metadata
Diffstat (limited to 'x11-wm/compiz')
-rw-r--r-- | x11-wm/compiz/Manifest | 9 | ||||
-rw-r--r-- | x11-wm/compiz/compiz-0.8.8-r3.ebuild | 158 | ||||
-rw-r--r-- | x11-wm/compiz/files/compiz-gcc-4.7.patch | 38 | ||||
-rw-r--r-- | x11-wm/compiz/files/compiz-manager | 384 | ||||
-rw-r--r-- | x11-wm/compiz/files/compiz-no-gconf.patch | 20 | ||||
-rw-r--r-- | x11-wm/compiz/files/compiz.desktop | 11 | ||||
-rw-r--r-- | x11-wm/compiz/metadata.xml | 18 |
7 files changed, 638 insertions, 0 deletions
diff --git a/x11-wm/compiz/Manifest b/x11-wm/compiz/Manifest new file mode 100644 index 000000000000..74158e9e8504 --- /dev/null +++ b/x11-wm/compiz/Manifest @@ -0,0 +1,9 @@ +AUX compiz-gcc-4.7.patch 999 SHA256 0824c0d32d32dfc8c57fa1afbfc81060e64bdcc4ec016f3ccb751a1956f6325a SHA512 e08563d928578ad74faa29168b3c3442cc0ab4e908ff4f430a7e23bcb2057e3da10f9742e8abbdaad9df6f56a039134e8a32f73ae214e240065d6d4ddd3a92bf WHIRLPOOL b79f08787a9f7d3dc46dc1f2c6645f40965c750122027e39679d783afb0c23bd300ee731bfb45858d6392c69a21b61eb326eb29315e0e4ac0d2655edb7d69f18 +AUX compiz-manager 9835 SHA256 e387ff9f01b84c572f31643316ed2ce2eacd11a92488e745ebcfd659945c6f1d SHA512 5cf4c1023754128c456d48db257a308461de0cbd9ebd427a4c281ada0b77659013723362959ae39fa31f24de36929fdfe6ea96d9788cba568f35d2dc86bc263a WHIRLPOOL 0afb3b62a0e29b9608d2eaf640f7704ffa91a3ea7ea7fc0d7cba5761a04c4a1928007e285344e401030230de506b92cbbbdbe4436eda4ebd44848ebfcad95c97 +AUX compiz-no-gconf.patch 630 SHA256 87467fbe5d4e0d0bb8952f2d5b74d21046d92d49772543aeda137266e055aa67 SHA512 3c3789852db56be06d553dcdddb68c94e68b9290c74e5a9e642f266d1688c18eb4ce01b6835f267c84d3a213ec61266159d5891b10d80cb79e17bc9683163bf9 WHIRLPOOL 7341780992eed62a36bfa8be0e8f22c4f54ecda555f8af87ea76f585f4fcbcb76f31bb79269a01ff5c5eabe7d6796a233d7efa8baf35720a09085f53af3b1da6 +AUX compiz.desktop 258 SHA256 6b3e76f62623ef4d533d25fb714467157827a4ba051d41e1730848266c573f8b SHA512 ab9084fe8d44a9a053e84483774d9db2b1b8def4fbb16ca9c74af18271ec0f7d3d7dbe607fa7e0687bbe6f6d9ef8ee17701e1a88c15adea822f45450f4ebb291 WHIRLPOOL b11117ece42467e06313a73f666c1e1ea2877313d5df1c9f3735a386da453f9d10bc83d4832ea491ac099aa94b1d757d2e8d1a733b9e22df56ce63c8cc48f02e +DIST compiz-0.8.8.tar.bz2 1123892 SHA256 3ba555b0d6d536850a227d37d6ebc5cd5b15ee5bad83d7956529a27b870977e3 SHA512 6e3bad018835fdbc1b0e5ecb51a46a77a6531d46d77ee3ae4169273632ea9a6839c78300b18e2198c41698517efa65ded75387785b0c5bbbb6da41498451b644 WHIRLPOOL fa1d9b5e443d45a4615201a85a74dd025066620339ebac58b4fd5c71c19db731009c013ceee93f0345b46c413211424bc4c813d48e07d6cea874024a2b562ba2 +EBUILD compiz-0.8.8-r3.ebuild 3466 SHA256 80183a82fdb4215e0d7f19aece728747a7c5e68bdc20470d1f1f79068009b9bb SHA512 6565dc9124563e8dfde7dac09dacfb2d017d937e3aed5982222f4195871984b4b1f3ea089f220dde73355cafe397ff25abba11233b02247cd2714bb423a9f850 WHIRLPOOL 4385c20518591a15a907604615b61ce0c53778c2b6e94374d77c62b39184635a83c2a7340443dc3fa7bbe148580317b32997a4556364d0980a141005acad644a +MISC ChangeLog 2861 SHA256 e1dc2ea491aa3c874b666466a851f0c3063db334a0ede0b19a17ae909c710129 SHA512 c4b3fc0b7d164531e77185d567482be2ce67283a0eb32ea115de90839e61a106995d3465516bfb568da90dce1a4ad216a24c05ce1a34e2287970898b6ba54017 WHIRLPOOL ebfec3bf08463ea4a14616564a5f4a1984524661cd5dbb05e652a10fd69ee3d7a7f0f24ecb0dbbe4c1b64d83ec69395394818be6047797471820d513c73dbfee +MISC ChangeLog-2015 15630 SHA256 b298afe2fd4fc44994d5d9bec51162be9b44076842508c8efbd98a8fb300deec SHA512 699981cfe9a9e459d64a8be26e6454c0405cec6f2031c62a717dbbb3ace6fd6e78090f3c5b74ef8ae8f4c0a0962e47e7292a591315d5acbf379cbcbad397f66b WHIRLPOOL 20107127f819ab3825900813fb482d38b4c204d222743cdfa65bd272d122e6cdaccd2b97a29433ca5f2239b507ba23473ebe0f6b5a7e1284a6febbbd40cf95e2 +MISC metadata.xml 630 SHA256 9e017cbbeb254fc5371ccca48b40051b3e267815fb005ca2d70767a58939b59a SHA512 6640ccef9ce07714d737e9dc682177c34e36927082c3a5fb1af1c115c2b173bc914a650f122a5845179b2f927d0b03538c0a3481790a9ea97966f9973309308f WHIRLPOOL ca87b894200015a3b4c73b6d75925225c5d5c33a18910d69fae2c92c12417e72aedba6eaddaf1aab7ffc6b45b74d3be19f9cbce98a22d8fe3d2ea774a0f5893a diff --git a/x11-wm/compiz/compiz-0.8.8-r3.ebuild b/x11-wm/compiz/compiz-0.8.8-r3.ebuild new file mode 100644 index 000000000000..36d5c22ae14c --- /dev/null +++ b/x11-wm/compiz/compiz-0.8.8-r3.ebuild @@ -0,0 +1,158 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 + +inherit autotools eutils gnome2-utils + +DESCRIPTION="OpenGL window and compositing manager" +HOMEPAGE="http://www.compiz.org/" +SRC_URI="http://releases.compiz.org/${PV}/${P}.tar.bz2" + +LICENSE="GPL-2 LGPL-2.1 MIT" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~ppc64 ~x86" +IUSE="+cairo dbus fuse gnome gconf gtk +svg" + +COMMONDEPEND=" + >=dev-libs/glib-2 + dev-libs/libxml2 + dev-libs/libxslt + media-libs/libpng:0= + >=media-libs/mesa-6.5.1-r1 + >=x11-base/xorg-server-1.1.1-r1 + >=x11-libs/libX11-1.4 + x11-libs/libxcb + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXinerama + x11-libs/libXrandr + x11-libs/libICE + x11-libs/libSM + >=x11-libs/libXrender-0.8.4 + >=x11-libs/startup-notification-0.7 + virtual/glu + cairo? ( + x11-libs/cairo[X] + ) + dbus? ( + >=sys-apps/dbus-1.0 + dev-libs/dbus-glib + ) + fuse? ( sys-fs/fuse ) + gnome? ( + >=gnome-base/gnome-control-center-2.16.1:2 + gnome-base/gnome-desktop:2 + gconf? ( gnome-base/gconf:2 ) + ) + gtk? ( + >=x11-libs/gtk+-2.8.0:2 + >=x11-libs/libwnck-2.18.3:1 + x11-libs/pango + ) + svg? ( + >=gnome-base/librsvg-2.14.0:2 + >=x11-libs/cairo-1.0 + ) +" + +DEPEND="${COMMONDEPEND} + virtual/pkgconfig + x11-proto/damageproto + x11-proto/xineramaproto +" + +RDEPEND="${COMMONDEPEND} + x11-apps/mesa-progs + x11-apps/xdpyinfo + x11-apps/xset + x11-apps/xvinfo +" + +DOCS=( AUTHORS ChangeLog NEWS README TODO ) + +src_prepare() { + echo gtk/gnome/compiz-wm.desktop.in >> po/POTFILES.skip + echo metadata/core.xml.in >> po/POTFILES.skip + + # Patch for compatibility with gcc 4.7 + epatch "${FILESDIR}"/${PN}-gcc-4.7.patch + + if ! use gnome || ! use gconf; then + epatch "${FILESDIR}"/${PN}-no-gconf.patch + fi + eautoreconf +} + +src_configure() { + local myconf + + # We make gconf optional by itself, but only if gnome is also + # enabled, otherwise we simply disable it. + if use gnome; then + myconf="${myconf} $(use_enable gconf)" + else + myconf="${myconf} --disable-gconf" + fi + + econf \ + --enable-fast-install \ + --disable-static \ + --disable-gnome-keybindings \ + --with-default-plugins \ + $(use_enable svg librsvg) \ + $(use_enable cairo annotate) \ + $(use_enable dbus) \ + $(use_enable dbus dbus-glib) \ + $(use_enable fuse) \ + $(use_enable gnome) \ + $(use_enable gnome metacity) \ + $(use_enable gtk) \ + --disable-kde4 \ + --disable-kde \ + ${myconf} +} + +src_install() { + default + prune_libtool_files --all + + # Install compiz-manager + dobin "${FILESDIR}"/compiz-manager + + # Add the full-path to lspci + sed -i "s#lspci#/usr/sbin/lspci#" "${D}/usr/bin/compiz-manager" || die + + # Fix the hardcoded lib paths + sed -i "s#/lib/#/$(get_libdir)/#g" "${D}/usr/bin/compiz-manager" || die + + # Create gentoo's config file + dodir /etc/xdg/compiz + + cat <<- EOF > "${D}/etc/xdg/compiz/compiz-manager" + COMPIZ_BIN_PATH="/usr/bin/" + PLUGIN_PATH="/usr/$(get_libdir)/compiz/" + LIBGL_NVIDIA="/usr/$(get_libdir)/opengl/xorg-x11/lib/libGL.so.1.2" + LIBGL_FGLRX="/usr/$(get_libdir)/opengl/xorg-x11/lib/libGL.so.1.2" + KWIN="$(type -p kwin)" + METACITY="$(type -p metacity)" + SKIP_CHECKS="yes" + EOF + + domenu "${FILESDIR}"/compiz.desktop +} + +pkg_preinst() { + use gnome && use gconf && gnome2_gconf_savelist +} + +pkg_postinst() { + use gnome && use gconf && gnome2_gconf_install + + ewarn "If you update to x11-wm/metacity-2.24 after you install ${P}," + ewarn "gtk-window-decorator will crash until you reinstall ${PN} again." +} + +pkg_prerm() { + use gnome && gnome2_gconf_uninstall +} diff --git a/x11-wm/compiz/files/compiz-gcc-4.7.patch b/x11-wm/compiz/files/compiz-gcc-4.7.patch new file mode 100644 index 000000000000..28315baec5b8 --- /dev/null +++ b/x11-wm/compiz/files/compiz-gcc-4.7.patch @@ -0,0 +1,38 @@ +--- kde/window-decorator-kde4/window.cpp 2010-05-21 11:18:14.000000000 +0000 ++++ kde/window-decorator-kde4/window.cpp 2012-09-12 18:05:00.000000000 +0000 +@@ -59,6 +59,9 @@ + + #include "paintredirector.h" + ++// header for gcc-4.7 compatibility ++#include "unistd.h" ++ + KWD::Window::Window (WId parentId, + WId clientId, + WId frame, +--- configure.ac.orig 2012-09-12 23:39:54.093812000 +0400 ++++ configure.ac 2012-09-12 23:40:37.253686000 +0400 +@@ -72,11 +72,6 @@ + *) CFLAGS="$CFLAGS -Wnested-externs" ;; + esac + +- case " $CFLAGS " in +- *[[\ \ ]]-D_FORTIFY_SOURCE=2[[\ \ ]]*) ;; +- *) CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2" ;; +- esac +- + if test "x$enable_ansi" = "xyes"; then + case " $CFLAGS " in + *[[\ \ ]]-ansi[[\ \ ]]*) ;; +@@ -95,11 +90,6 @@ + *[[\ \ ]]-Wall[[\ \ ]]*) ;; + *) CXXFLAGS="$CXXFLAGS -Wall" ;; + esac +- +- case " $CXXFLAGS " in +- *[[\ \ ]]-D_FORTIFY_SOURCE=2[[\ \ ]]*) ;; +- *) CXXFLAGS="$CXXFLAGS -D_FORTIFY_SOURCE=2" ;; +- esac + fi + + AC_C_BIGENDIAN diff --git a/x11-wm/compiz/files/compiz-manager b/x11-wm/compiz/files/compiz-manager new file mode 100644 index 000000000000..74d45da2590e --- /dev/null +++ b/x11-wm/compiz/files/compiz-manager @@ -0,0 +1,384 @@ +#!/bin/sh +# Compiz Manager wrapper script +# +# Copyright (c) 2007 Kristian Lyngstøl <kristian@bohemians.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# +# +# Contributions by: Treviño (3v1n0) <trevi55@gmail.com>, Ubuntu Packages +# +# Much of this code is based on Beryl code, also licensed under the GPL. +# This script will detect what options we need to pass to compiz to get it +# started, and start a default plugin and possibly window decorator. +# + + +COMPIZ_BIN_PATH="/usr/bin/" # For window decorators and compiz +PLUGIN_PATH="/usr/lib/compiz/" +GLXINFO="/usr/bin/glxinfo" +KWIN="/usr/bin/kwin" +METACITY="/usr/bin/metacity" +COMPIZ_NAME="compiz" # Final name for compiz (compiz.real) + +# For Xgl LD_PRELOAD +LIBGL_NVIDIA="/usr/lib/nvidia/libGL.so.1.2.xlibmesa" +LIBGL_FGLRX="/usr/lib/fglrx/libGL.so.1.2.xlibmesa" + +# Minimum amount of memory (in kilo bytes) that nVidia cards need +# to be allowed to start +# Set to 262144 to require 256MB +NVIDIA_MEMORY="65536" # 64MB +NVIDIA_SETTINGS="nvidia-settings" # Assume it's in the path by default + +# For detecting what driver is in use, the + is for one or more /'s +XORG_DRIVER_PATH="/usr/lib/xorg/modules/drivers/+" + +FALLBACKWM="${METACITY}" +FALLBACKWM_OPTIONS="--replace $@" + +# Driver whitelist +WHITELIST="nvidia intel ati radeon i810" + +# blacklist based on the pci ids +# See http://wiki.compiz-fusion.org/Hardware/Blacklist for details +T=" 1002:5954 1002:5854 1002:5955" # ati rs480 +T="$T 1002:4153" # ATI Rv350 +T="$T 8086:2982 8086:2992 8086:29a2 8086:2a02 8086:2a12" # intel 965 +BLACKLIST_PCIIDS="$T" +unset T + +COMPIZ_OPTIONS="--ignore-desktop-hints --replace" +COMPIZ_PLUGINS="" +ENV="" + +# Use emerald by default if it exist +USE_EMERALD="yes" + +# No indirect by default +INDIRECT="no" + +# Default X.org log if xset q doesn't reveal it +XORG_DEFAULT_LOG="/var/log/Xorg.0.log" + +# Set to yes to enable verbose +VERBOSE="yes" + +# Echos the arguments if verbose +verbose() +{ + if [ "x$VERBOSE" = "xyes" ]; then + printf "$*" + fi +} + +# abort script and run fallback windowmanager +abort_with_fallback_wm() +{ + if [ "x$SKIP_CHECKS" = "xyes" ]; then + verbose "SKIP_CHECKS is yes, so continuing despite problems.\n" + return 0; + fi + + verbose "aborting and using fallback: $FALLBACKWM \n" + + if [ -x $FALLBACKWM ]; then + exec $FALLBACKWM $FALLBACKWM_OPTIONS + else + printf "no $FALLBACKWM found, exiting\n" + exit 1 + fi +} + +# Check for non power of two texture support +check_npot_texture() +{ + verbose "Checking for non power of two support: " + if glxinfo 2> /dev/null | egrep -q '(GL_ARB_texture_non_power_of_two|GL_NV_texture_rectangle|GL_EXT_texture_rectangle|GL_ARB_texture_rectangle)' ; then + verbose "present. \n"; + return 0; + else + verbose "Not present. \n" + return 1; + fi + +} + +# Check for presence of FBConfig +check_fbconfig() +{ + verbose "Checking for FBConfig: " + if [ "$INDIRECT" = "yes" ]; then + $GLXINFO -i | grep -q GLX.*fbconfig + FB=$? + else + $GLXINFO | grep -q GLX.*fbconfig + FB=$? + fi + + if [ $FB = "0" ]; then + unset FB + verbose "present. \n" + return 0; + else + unset FB + verbose "not present. \n" + return 1; + fi +} + + +# Check for TFP +check_tfp() +{ + verbose "Checking for texture_from_pixmap: " + if [ $($GLXINFO 2>/dev/null | grep GLX_EXT_texture_from_pixmap -c) -gt 2 ] ; then + verbose "present. \n" + return 0; + else + verbose "not present. \n" + if [ "$INDIRECT" = "yes" ]; then + unset LIBGL_ALWAYS_INDIRECT + INDIRECT="no" + return 1; + else + verbose "Trying again with indirect rendering:\n"; + INDIRECT="yes" + export LIBGL_ALWAYS_INDIRECT=1 + check_tfp; + return $? + fi + fi +} + +# Check wether the composite extension is present +check_composite() +{ + verbose "Checking for Composite extension: " + if xdpyinfo -queryExtensions | grep -q Composite ; then + verbose "present. \n"; + return 0; + else + verbose "not present. \n"; + return 1; + fi +} + +# Detects if Xgl is running +check_xgl() +{ + verbose "Checking for Xgl: " + if xvinfo | grep -q Xgl ; then + verbose "present. \n" + return 0; + else + verbose "not present. \n" + return 1; + fi +} + +# Check if the nVidia card has enough video ram to make sense +check_nvidia_memory() +{ + MEM=$(${NVIDIA_SETTINGS} -q VideoRam | egrep Attribute\ \'VideoRam\'\ .*: | cut -d: -f3 | sed 's/[^0-9]//g') + if [ $MEM -lt $NVIDIA_MEMORY ]; then + verbose "Less than ${NVIDIA_MEMORY}kb of memory and nVidia"; + return 1; + fi + return 0; +} + +# Check for existence if NV-GLX +check_nvidia() +{ + if [ ! -z $NVIDIA_INTERNAL_TEST ]; then + return $NVIDIA_INTERNAL_TEST; + fi + verbose "Checking for nVidia: " + if xdpyinfo | grep -q NV-GLX ; then + verbose "present. \n" + NVIDIA_INTERNAL_TEST=0 + return 0; + else + verbose "not present. \n" + NVIDIA_INTERNAL_TEST=1 + return 1; + fi +} + +# Check if the max texture size is large enough compared to the resolution +check_texture_size() +{ + TEXTURE_LIMIT=$(glxinfo -l | grep -m1 GL_MAX_TEXTURE_SIZE | sed 's/.*=[^0-9]//g') + RESOLUTION=$(xdpyinfo | grep -i dimensions: | sed 's/[^0-9]*pixels.*(.*).*//' | sed 's/[^0-9x]*//') + VRES=$(echo $RESOLUTION | sed 's/.*x//') + HRES=$(echo $RESOLUTION | sed 's/x.*//') + verbose "Comparing resolution ($RESOLUTION) to maximum 3D texture size ($TEXTURE_LIMIT): "; + if [ $VRES -gt $TEXTURE_LIMIT ] || [ $HRES -gt $TEXTURE_LIMIT ]; then + verbose "Failed.\n" + return 1; + fi + verbose "Passed.\n" + return 0 +} + +# check driver whitelist +running_under_whitelisted_driver() +{ + LOG=$(xset q|grep "Log file"|awk '{print $3}') + if [ "$LOG" = "" ]; then + verbose "xset q doesn't reveal the location of the log file. Using fallback $XORG_DEFAULT_LOG \n" + LOG=$XORG_DEFAULT_LOG; + fi + if [ -z "$LOG" ];then + verbose "AIEEEEH, no Log file found \n" + verbose "$(xset q) \n" + return 0 + fi + for DRV in ${WHITELIST}; do + if egrep -q "Loading ${XORG_DRIVER_PATH}${DRV}_drv\.so" $LOG && + ! egrep -q "Unloading ${XORG_DRIVER_PATH}${DRV}_drv\.so" $LOG; + then + return 0 + fi + done + verbose "No whitelisted driver found\n" + return 1 +} + +# check pciid blacklist +have_blacklisted_pciid() +{ + OUTPUT=$(lspci -n) + for ID in ${BLACKLIST_PCIIDS}; do + if echo "$OUTPUT" | egrep -q "$ID"; then + verbose "Blacklisted PCIID '$ID' found \n" + return 0 + fi + done + OUTPUT=$(lspci -vn | grep -i VGA) + verbose "Detected PCI ID for VGA: $OUTPUT\n" + return 1 +} + +build_env() +{ + if check_nvidia; then + ENV="__GL_YIELD=NOTHING " + fi + if [ "$INDIRECT" = "yes" ]; then + ENV="$ENV LIBGL_ALWAYS_INDIRECT=1 " + fi + if check_xgl; then + if [ -f ${LIBGL_NVIDIA} ]; then + ENV="$ENV LD_PRELOAD=${LIBGL_NVIDIA}" + verbose "Enabling Xgl with nVidia drivers...\n" + fi + if [ -f ${LIBGL_FGLRX} ]; then + ENV="$ENV LD_PRELOAD=${LIBGL_FGLRX}" + verbose "Enabling Xgl with fglrx ATi drivers...\n" + fi + fi + + ENV="$ENV FROM_WRAPPER=yes" + + if [ -n "$ENV" ]; then + export $ENV + fi +} + +build_args() +{ + if [ $INDIRECT = "yes" ]; then + COMPIZ_OPTIONS="$COMPIZ_OPTIONS --indirect-rendering " + fi + if check_nvidia; then + COMPIZ_OPTIONS="$COMPIZ_OPTIONS --loose-binding" + fi +} + +#################### +# Execution begins here. + +# Read configuration from XDG paths +if [ -z "$XDG_CONFIG_DIRS" ]; then + test -f /etc/xdg/compiz/compiz-manager && . /etc/xdg/compiz/compiz-manager +else + test -f $XDG_CONFIG_DIRS/compiz/compiz-manager && . $XDG_CONFIG_DIRS/compiz/compiz-manager +fi + +if [ -z "$XDG_CONFIG_HOME" ]; then + test -f $HOME/.config/compiz/compiz-manager && . $HOME/.config/compiz/compiz-manager +else + test -f $XDG_CONFIG_HOME/compiz/compiz-manager && . $XDG_CONFIG_HOME/compiz/compiz-manager +fi + +# Don't use compiz when running the failsafe session +if [ "x$GNOME_DESKTOP_SESSION_ID" = "xFailsafe" ]; then + abort_with_fallback_wm +fi + +if [ "x$LIBGL_ALWAYS_INDIRECT" = "x1" ]; then + INDIRECT="yes"; +fi + +# if we run under Xgl, we can skip some tests here +if ! check_xgl; then + # if vesa or vga are in use, do not even try glxinfo (LP#119341) + if ! running_under_whitelisted_driver || have_blacklisted_pciid; then + abort_with_fallback_wm + fi + # check if we have the required bits to run compiz and if not, + # fallback + if ! check_tfp || ! check_npot_texture || ! check_composite || ! check_texture_size; then + abort_with_fallback_wm + fi + + if check_nvidia && ! check_nvidia_memory; then + abort_with_fallback_wm + fi + + if ! check_fbconfig; then + abort_with_fallback_wm + fi +fi + +# load the ccp plugin if present and fallback to plain gconf if not +if [ -f ${PLUGIN_PATH}libccp.so ]; then + COMPIZ_PLUGINS="$COMPIZ_PLUGINS ccp" +elif [ -f ${PLUGIN_PATH}libgconf.so ]; then + COMPIZ_PLUGINS="$COMPIZ_PLUGINS glib gconf" +fi + +# get environment +build_env +build_args + +# start the gtk-window-decorator if present +if [ -x ${COMPIZ_BIN_PATH}emerald ] && [ "$USE_EMERALD" = "yes" ]; then + verbose "Starting emerald\n" + ${COMPIZ_BIN_PATH}emerald --replace & +elif [ -x ${COMPIZ_BIN_PATH}gtk-window-decorator ] && [ -n "$GNOME_DESKTOP_SESSION_ID" ]; then + verbose "Starting gtk-window-decorator\n" + ${COMPIZ_BIN_PATH}gtk-window-decorator --replace & +elif [ -x ${COMPIZ_BIN_PATH}kde-window-decorator ] && [ -n "$KDE_FULL_SESSION" ]; then + verbose "Starting kde-window-decorator\n" + ${COMPIZ_BIN_PATH}kde-window-decorator --replace & + FALLBACKWM="${KWIN}" +fi + +${COMPIZ_BIN_PATH}${COMPIZ_NAME} $COMPIZ_OPTIONS "$@" $COMPIZ_PLUGINS || exec $FALLBACKWM $FALLBACKWM_OPTIONS + diff --git a/x11-wm/compiz/files/compiz-no-gconf.patch b/x11-wm/compiz/files/compiz-no-gconf.patch new file mode 100644 index 000000000000..d43e84de6815 --- /dev/null +++ b/x11-wm/compiz/files/compiz-no-gconf.patch @@ -0,0 +1,20 @@ + configure.ac | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 7b09153..9c22ea0 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -192,10 +192,10 @@ if test "x$use_gconf" = "xyes"; then + if test x"$GCONFTOOL" = xno; then + AC_MSG_ERROR([gconftool-2 executable not found in your path - should be installed with GConf]) + fi ++else ++ AM_CONDITIONAL(GCONF_SCHEMAS_INSTALL, test "x$use_gconf" = "xyes") + fi + +-AM_GCONF_SOURCE_2 +- + AM_CONDITIONAL(USE_GCONF, test "x$use_gconf" = "xyes") + if test "$use_gconf" = yes; then + AC_DEFINE(USE_GCONF, 1, [Build gconf plugin]) diff --git a/x11-wm/compiz/files/compiz.desktop b/x11-wm/compiz/files/compiz.desktop new file mode 100644 index 000000000000..22cf642b2360 --- /dev/null +++ b/x11-wm/compiz/files/compiz.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Type=Application +Name=Compiz +Name[en_GB]=Compiz +Exec=compiz ccp +NoDisplay=true +# name we put on the WM spec check window +X-GNOME-WMName=Compiz +X-GNOME-Autostart-Phase=WindowManager +X-GNOME-Provides=windowmanager +X-GNOME-Autostart-Notify=true diff --git a/x11-wm/compiz/metadata.xml b/x11-wm/compiz/metadata.xml new file mode 100644 index 000000000000..3c7523d47903 --- /dev/null +++ b/x11-wm/compiz/metadata.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <!-- maintainer-needed --> + <use> + <flag name="fuse"> + Enables support for the filesystem in userspace plugin through <pkg>sys-fs/fuse</pkg>. + </flag> + <flag name="gconf"> + Enable the GConf-based configuration backend; it is not required + to work with GNOME, and might actually be faster if it's not + used. + </flag> + </use> + <longdescription> + compiz is a compositing window manager that uses 3D graphics acceleration via OpenGL. + </longdescription> +</pkgmetadata> |