Merge lp:~amaranth/compiz/no_wrapper into lp:~compiz/compiz/ubuntu

Proposed by Travis Watkins
Status: Merged
Merged at revision: not available
Proposed branch: lp:~amaranth/compiz/no_wrapper
Merge into: lp:~compiz/compiz/ubuntu
Diff against target: 1462 lines (+482/-715)
23 files modified
debian/changelog (+32/-0)
debian/compiz-core.install (+1/-2)
debian/compiz-core.links (+0/-1)
debian/compiz-core.manpages (+0/-1)
debian/compiz-manager (+0/-457)
debian/compiz-manager.defaults (+0/-7)
debian/compiz-wrapper.install (+0/-1)
debian/compiz.1 (+52/-20)
debian/compiz.real.1 (+0/-64)
debian/control (+3/-20)
debian/patches/010-disable-child-window-clipping.patch (+8/-8)
debian/patches/013-add-cursor-theme-support.patch (+16/-16)
debian/patches/015_draw_dock_shadows_on_desktop.patch (+6/-4)
debian/patches/016_call_glxwaitx_before_drawing.patch (+5/-3)
debian/patches/017_always_unredirect_screensaver_on_nvidia.patch (+5/-5)
debian/patches/020_fix_focus.patch (+81/-81)
debian/patches/037_fullscreen_stacking_fixes.patch (+4/-4)
debian/patches/049-damage-report-non-empty.patch (+8/-8)
debian/patches/050_stacking.patch (+4/-4)
debian/patches/060_move_checks_to_compiz.patch (+252/-0)
debian/patches/099-autogen.patch (+4/-4)
debian/patches/series (+1/-0)
debian/rules (+0/-5)
To merge this branch: bzr merge lp:~amaranth/compiz/no_wrapper
Reviewer Review Type Date Requested Status
Michael Vogt Needs Information
Review via email: mp+15108@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Travis Watkins (amaranth) wrote :

Replaces the compiz shell script with code in the actual compiz binary to handle feature checking. This reduces duplication of features compiz already checks for and should provide a faster login since it does not load a shell script and a bunch of command line utilities.

lp:~amaranth/compiz/no_wrapper updated
318. By Travis Watkins

fix memleak and xfwm4 checking

Revision history for this message
Michael Vogt (mvo) wrote :

Thanks a lot for working on this. It looks great, the only issue I can see is that compiz-wrapper is used by KDE. So we need to communicate with them that it will go away.

review: Needs Information

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'debian/changelog'
2--- debian/changelog 2009-10-29 09:43:03 +0000
3+++ debian/changelog 2009-11-23 15:56:08 +0000
4@@ -1,3 +1,35 @@
5+compiz (1:0.8.4-0ubuntu4) lucid; urgency=low
6+
7+ * debian/patches/060_move_checks_to_compiz.patch:
8+ - add all relevant checks from compiz-manager to compiz itself
9+ Compiz already checks for almost everything it needs so there is no
10+ need to check twice.
11+ * debian/rules:
12+ * debian/compiz-core.install:
13+ * debian/compiz-core.manpages:
14+ - install compiz as compiz, not compiz.real
15+ * debian/compiz-manager:
16+ * debian/compiz-manager.defaults:
17+ * debian/compiz-wrapper.install:
18+ * debian/compiz-core.links:
19+ debian/compiz.real.1:
20+ - no longer needed, deleted
21+ * debian/control:
22+ - remove compiz-wrapper package
23+ * debian/patches/010-disable-child-window-clipping.patch:
24+ * debian/patches/013-add-cursor-theme-support.patch:
25+ * debian/patches/015_draw_dock_shadows_on_desktop.patch:
26+ * debian/patches/016_call_glxwaitx_before_drawing.patch:
27+ * debian/patches/017_always_unredirect_screensaver_on_nvidia.patch:
28+ * debian/patches/020_fix_focus.patch:
29+ * debian/patches/037_fullscreen_stacking_fixes.patch:
30+ * debian/patches/049-damage-report-non-empty.patch:
31+ * debian/patches/050_stacking.patch:
32+ * debian/patches/099-autogen.patch:
33+ - refreshed
34+
35+ -- Travis Watkins <amaranth@ubuntu.com> Sun, 01 Nov 2009 11:33:21 -0600
36+
37 compiz (1:0.8.4-0ubuntu3) karmic-proposed; urgency=low
38
39 * debian/patches/030_from_git_crash_fix_multiscreen.patch:
40
41=== modified file 'debian/compiz-core.install'
42--- debian/compiz-core.install 2009-03-06 09:24:34 +0000
43+++ debian/compiz-core.install 2009-11-23 15:56:08 +0000
44@@ -1,7 +1,6 @@
45 usr/bin/compiz-decorator
46-usr/bin/compiz.real
47+usr/bin/compiz
48 usr/share/compiz/*.png
49 usr/share/compiz/core.xml
50 usr/share/locale
51 usr/share/apport
52-etc/xdg/compiz
53
54=== removed file 'debian/compiz-core.links'
55--- debian/compiz-core.links 2008-06-03 12:36:51 +0000
56+++ debian/compiz-core.links 1970-01-01 00:00:00 +0000
57@@ -1,1 +0,0 @@
58-usr/bin/compiz usr/bin/compiz-manager
59
60=== modified file 'debian/compiz-core.manpages'
61--- debian/compiz-core.manpages 2007-06-12 08:21:49 +0000
62+++ debian/compiz-core.manpages 2009-11-23 15:56:08 +0000
63@@ -1,2 +1,1 @@
64-debian/compiz.real.1
65 debian/compiz.1
66
67=== removed file 'debian/compiz-manager'
68--- debian/compiz-manager 2009-09-25 21:47:27 +0000
69+++ debian/compiz-manager 1970-01-01 00:00:00 +0000
70@@ -1,457 +0,0 @@
71-#!/bin/sh
72-# Compiz Manager wrapper script
73-#
74-# Copyright (c) 2007 Kristian Lyngstøl <kristian@bohemians.org>
75-#
76-# This program is free software; you can redistribute it and/or modify
77-# it under the terms of the GNU General Public License as published by
78-# the Free Software Foundation; either version 2 of the License, or
79-# (at your option) any later version.
80-#
81-# This program is distributed in the hope that it will be useful,
82-# but WITHOUT ANY WARRANTY; without even the implied warranty of
83-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
84-# GNU General Public License for more details.
85-#
86-#
87-# You should have received a copy of the GNU General Public License
88-# along with this program; if not, write to the Free Software
89-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
90-#
91-#
92-# Contributions by: Treviño (3v1n0) <trevi55@gmail.com>, Ubuntu Packages
93-#
94-# Much of this code is based on Beryl code, also licensed under the GPL.
95-# This script will detect what options we need to pass to compiz to get it
96-# started, and start a default plugin and possibly window decorator.
97-#
98-
99-
100-COMPIZ_BIN_PATH="/usr/local/bin/" # For window decorators and compiz
101-PLUGIN_PATH="/usr/local/lib/compiz/"
102-GLXINFO="/usr/bin/glxinfo"
103-KWIN="/usr/bin/kwin"
104-METACITY="/usr/bin/metacity"
105-XFWM="/usr/bin/xfwm"
106-COMPIZ_NAME="compiz" # Final name for compiz (compiz.real)
107-
108-# For Xgl LD_PRELOAD
109-LIBGL_NVIDIA="/usr/lib/nvidia/libGL.so.1.2.xlibmesa"
110-LIBGL_FGLRX="/usr/lib/fglrx/libGL.so.1.2.xlibmesa"
111-
112-# Minimum amount of memory (in kilo bytes) that nVidia cards need
113-# to be allowed to start
114-# Set to 262144 to require 256MB
115-NVIDIA_MEMORY="65536" # 64MB
116-NVIDIA_SETTINGS="nvidia-settings" # Assume it's in the path by default
117-
118-# For detecting what driver is in use, the + is for one or more /'s
119-XORG_DRIVER_PATH="/usr/lib/xorg/modules/drivers/+"
120-FALLBACKWM="xterm"
121-if [ x"$KDE_FULL_SESSION" = x"true" ]; then
122- FALLBACKWM="${KWIN}";
123-elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then
124- FALLBACKWM="${METACITY}"
125-elif xprop -root _DT_SAVE_MODE | grep ' = \"xfce4\"$' >/dev/null 2>&1; then
126- FALLBACKWM="${XFWM}"
127-fi
128-
129-FALLBACKWM_OPTIONS="--replace $@"
130-
131-# Driver whitelist
132-WHITELIST="nvidia intel ati radeon radeonhd i810 fglrx"
133-
134-# blacklist based on the pci ids
135-# See http://wiki.compiz-fusion.org/Hardware/Blacklist for details
136-#T=" 1002:5954 1002:5854 1002:5955" # ati rs480
137-#T="$T 1002:4153" # ATI Rv350
138-#T="$T 8086:2982 8086:2992 8086:29a2 8086:2a02 8086:2a12" # intel 965
139-#T="$T 8086:2a02 " # Intel GM965
140-T="$T 8086:3577 8086:2562 " # Intel 830MG, 845G (LP: #259385)
141-BLACKLIST_PCIIDS="$T"
142-unset T
143-
144-COMPIZ_OPTIONS="--ignore-desktop-hints --replace"
145-COMPIZ_PLUGINS="move resize place decoration animation"
146-
147-# Use emerald by default if it exist
148-USE_EMERALD="yes"
149-
150-# No indirect by default
151-INDIRECT="no"
152-
153-# Default X.org log if xset q doesn't reveal it
154-XORG_DEFAULT_LOG="/var/log/Xorg.0.log"
155-
156-# Set to yes to enable verbose
157-VERBOSE="yes"
158-
159-# Echos the arguments if verbose
160-verbose()
161-{
162- if [ "x$VERBOSE" = "xyes" ]; then
163- printf "$*"
164- fi
165-}
166-
167-# abort script and run fallback windowmanager
168-abort_with_fallback_wm()
169-{
170- if [ "x$SKIP_CHECKS" = "xyes" ]; then
171- verbose "SKIP_CHECKS is yes, so continuing despite problems.\n"
172- return 0;
173- fi
174-
175- if [ "x$CM_DRY" = "xyes" ]; then
176- verbose "Dry run failed: Problems detected with 3D support.'n"
177- exit 1;
178- fi
179-
180- verbose "aborting and using fallback: $FALLBACKWM \n"
181-
182- if [ -x $FALLBACKWM ]; then
183- exec $FALLBACKWM $FALLBACKWM_OPTIONS
184- else
185- printf "no $FALLBACKWM found, exiting\n"
186- exit 1
187- fi
188-}
189-
190-# Check if we run with the Software Rasterizer, this happens e.g.
191-# when a second screen session is opened via f-u-a on intel
192-check_software_rasterizer()
193-{
194- verbose "Checking for Software Rasterizer: "
195- if glxinfo 2> /dev/null | egrep -q '^OpenGL renderer string: Software Rasterizer' ; then
196- verbose "present. \n";
197- return 0;
198- else
199- verbose "Not present. \n"
200- return 1;
201- fi
202-
203-}
204-
205-# Check for non power of two texture support
206-check_npot_texture()
207-{
208- verbose "Checking for non power of two support: "
209- 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
210- verbose "present. \n";
211- return 0;
212- else
213- verbose "Not present. \n"
214- return 1;
215- fi
216-
217-}
218-
219-# Check for presence of FBConfig
220-check_fbconfig()
221-{
222- verbose "Checking for FBConfig: "
223- if [ "$INDIRECT" = "yes" ]; then
224- $GLXINFO -i | grep -q GLX.*fbconfig
225- FB=$?
226- else
227- $GLXINFO | grep -q GLX.*fbconfig
228- FB=$?
229- fi
230-
231- if [ $FB = "0" ]; then
232- unset FB
233- verbose "present. \n"
234- return 0;
235- else
236- unset FB
237- verbose "not present. \n"
238- return 1;
239- fi
240-}
241-
242-
243-# Check for TFP
244-check_tfp()
245-{
246- verbose "Checking for texture_from_pixmap: "
247- if [ $($GLXINFO 2>/dev/null | grep -c GLX_EXT_texture_from_pixmap) -gt 2 ] ; then
248- verbose "present. \n"
249- return 0;
250- else
251- verbose "not present. \n"
252- if [ "$INDIRECT" = "yes" ]; then
253- unset LIBGL_ALWAYS_INDIRECT
254- INDIRECT="no"
255- return 1;
256- else
257- verbose "Trying again with indirect rendering:\n";
258- INDIRECT="yes"
259- export LIBGL_ALWAYS_INDIRECT=1
260- check_tfp;
261- return $?
262- fi
263- fi
264-}
265-
266-# Check wether the composite extension is present
267-check_composite()
268-{
269- verbose "Checking for Composite extension: "
270- if xdpyinfo -queryExtensions | grep -q Composite ; then
271- verbose "present. \n";
272- return 0;
273- else
274- verbose "not present. \n";
275- return 1;
276- fi
277-}
278-
279-# Detects if Xgl is running
280-check_xgl()
281-{
282- verbose "Checking for Xgl: "
283- if xvinfo | grep -q Xgl ; then
284- verbose "present. \n"
285- return 0;
286- else
287- verbose "not present. \n"
288- return 1;
289- fi
290-}
291-
292-# Check if the nVidia card has enough video ram to make sense
293-check_nvidia_memory()
294-{
295- if [ ! -x "$NVIDIA_SETTINGS" ]; then
296- return 0
297- fi
298-
299- MEM=$(${NVIDIA_SETTINGS} -q VideoRam | egrep Attribute\ \'VideoRam\'\ .*: | cut -d: -f3 | sed 's/[^0-9]//g')
300- if [ $MEM -lt $NVIDIA_MEMORY ]; then
301- verbose "Less than ${NVIDIA_MEMORY}kb of memory and nVidia";
302- return 1;
303- fi
304- return 0;
305-}
306-
307-# Check for existence if NV-GLX
308-check_nvidia()
309-{
310- if [ ! -z $NVIDIA_INTERNAL_TEST ]; then
311- return $NVIDIA_INTERNAL_TEST;
312- fi
313- verbose "Checking for nVidia: "
314- if xdpyinfo | grep -q NV-GLX ; then
315- verbose "present. \n"
316- NVIDIA_INTERNAL_TEST=0
317- return 0;
318- else
319- verbose "not present. \n"
320- NVIDIA_INTERNAL_TEST=1
321- return 1;
322- fi
323-}
324-
325-# Check if the max texture size is large enough compared to the resolution
326-check_texture_size()
327-{
328- # Check how many screens we've got and iterate over them
329- N=$(xdpyinfo | grep -i "number of screens" | sed 's/.*[^0-9]//g')
330- for i in $(seq 1 $N); do
331- verbose "Checking screen $i"
332- TEXTURE_LIMIT=$(glxinfo -l | grep GL_MAX_TEXTURE_SIZE | sed -n "$i s/^.*=[^0-9]//g p")
333- RESOLUTION=$(xdpyinfo | grep -i dimensions: | sed -n -e "$i s/^ *dimensions: *\([0-9]*x[0-9]*\) pixels.*/\1/ p")
334- VRES=$(echo $RESOLUTION | sed 's/.*x//')
335- HRES=$(echo $RESOLUTION | sed 's/x.*//')
336- verbose "Comparing resolution ($RESOLUTION) to maximum 3D texture size ($TEXTURE_LIMIT): ";
337- if [ $VRES -gt $TEXTURE_LIMIT ] || [ $HRES -gt $TEXTURE_LIMIT ]; then
338- verbose "Failed.\n"
339- return 1;
340- fi
341- verbose "Passed.\n"
342- done
343- return 0
344-}
345-
346-# check driver whitelist
347-running_under_whitelisted_driver()
348-{
349- LOG=$(xset q|grep "Log file"|awk '{print $3}')
350- if [ "$LOG" = "" ]; then
351- XORG_CURRENT_LOG="/var/log/Xorg.$(echo $DISPLAY | cut -d : -f2 | sed "s/\..*//g").log"
352- if [ -f $XORG_CURRENT_LOG ]; then
353- verbose "xset q doesn't reveal the location of the log file. Using fallback $XORG_CURRENT_LOG \n"
354- LOG=$XORG_CURRENT_LOG;
355- else
356- verbose "xset q doesn't reveal the location of the log file. Using fallback $XORG_DEFAULT_LOG \n"
357- LOG=$XORG_DEFAULT_LOG;
358- fi
359- fi
360- if [ -z "$LOG" ];then
361- verbose "AIEEEEH, no Log file found \n"
362- verbose "$(xset q) \n"
363- return 0
364- fi
365- for DRV in ${WHITELIST}; do
366- if egrep -q "Loading ${XORG_DRIVER_PATH}${DRV}_drv\.so" $LOG &&
367- ! egrep -q "Unloading ${XORG_DRIVER_PATH}${DRV}_drv\.so" $LOG;
368- then
369- return 0
370- fi
371- done
372- verbose "No whitelisted driver found\n"
373- return 1
374-}
375-
376-# check pciid blacklist
377-have_blacklisted_pciid()
378-{
379- OUTPUT=$(lspci -n)
380- for ID in ${BLACKLIST_PCIIDS}; do
381- if echo "$OUTPUT" | egrep -q "$ID"; then
382- verbose "Blacklisted PCIID '$ID' found \n"
383- return 0
384- fi
385- done
386- OUTPUT=$(lspci -vn | grep -i VGA)
387- verbose "Detected PCI ID for VGA: $OUTPUT\n"
388- return 1
389-}
390-
391-build_env()
392-{
393- if check_nvidia; then
394- export __GL_YIELD=NOTHING
395- fi
396- if [ "$INDIRECT" = "yes" ]; then
397- export LIBGL_ALWAYS_INDIRECT=1
398- fi
399- if check_xgl; then
400- if [ -f ${LIBGL_NVIDIA} ]; then
401- export LD_PRELOAD="${LD_PRELOAD:+${LD_PRELOAD} }${LIBGL_NVIDIA}"
402- verbose "Enabling Xgl with nVidia drivers...\n"
403- fi
404- if [ -f ${LIBGL_FGLRX} ]; then
405- export LD_PRELOAD="${LD_PRELOAD:+${LD_PRELOAD} }${LIBGL_FGLRX}"
406- verbose "Enabling Xgl with fglrx ATi drivers...\n"
407- fi
408- fi
409-
410- export FROM_WRAPPER=yes
411-}
412-
413-build_args()
414-{
415- if [ "x$INDIRECT" = "xyes" ]; then
416- COMPIZ_OPTIONS="$COMPIZ_OPTIONS --indirect-rendering "
417- fi
418- if [ ! -z "$DESKTOP_AUTOSTART_ID" ]; then
419- COMPIZ_OPTIONS="$COMPIZ_OPTIONS --sm-client-id $DESKTOP_AUTOSTART_ID"
420- fi
421- if check_nvidia; then
422- if [ "x$INDIRECT" != "xyes" ]; then
423- COMPIZ_OPTIONS="$COMPIZ_OPTIONS --loose-binding"
424- fi
425- fi
426-}
427-
428-####################
429-# Execution begins here.
430-
431-# Read configuration from XDG paths
432-if [ -z "$XDG_CONFIG_DIRS" ]; then
433- test -f /etc/xdg/compiz/compiz-manager && . /etc/xdg/compiz/compiz-manager
434- for f in /etc/xdg/compiz/compiz-manager.d/*; do
435- test -e $f && . $f
436- done
437-else
438- OLD_IFS=$IFS
439- IFS=:
440- for CONFIG_DIR in $XDG_CONFIG_DIRS
441- do
442- test -f $CONFIG_DIR/compiz/compiz-manager && . $CONFIG_DIR/compiz/compiz-manager
443- for f in $CONFIG_DIRS/compiz/compiz-manager.d/*; do
444- test -e $f && . $f
445- done
446- done
447- IFS=$OLD_IFS
448- unset OLD_IFS
449-fi
450-
451-if [ -z "$XDG_CONFIG_HOME" ]; then
452- test -f $HOME/.config/compiz/compiz-manager && . $HOME/.config/compiz/compiz-manager
453-else
454- test -f $XDG_CONFIG_HOME/compiz/compiz-manager && . $XDG_CONFIG_HOME/compiz/compiz-manager
455-fi
456-
457-# Don't use compiz when running the failsafe session
458-if [ "x$GNOME_DESKTOP_SESSION_ID" = "xFailsafe" ]; then
459- abort_with_fallback_wm
460-fi
461-
462-if [ "x$LIBGL_ALWAYS_INDIRECT" = "x1" ]; then
463- INDIRECT="yes";
464-fi
465-
466-# if we run under Xgl, we can skip some tests here
467-if ! check_xgl; then
468- # if vesa or vga are in use, do not even try glxinfo (LP#119341)
469- if ! running_under_whitelisted_driver || have_blacklisted_pciid; then
470- abort_with_fallback_wm
471- fi
472- # check if we have the required bits to run compiz and if not,
473- # fallback
474- if ! check_tfp || ! check_npot_texture || ! check_composite || ! check_texture_size; then
475- abort_with_fallback_wm
476- fi
477-
478- # check if we run with software rasterizer and if so, bail out
479- if check_software_rasterizer; then
480- verbose "Software rasterizer detected, aborting"
481- abort_with_fallback_wm
482- fi
483-
484- if check_nvidia && ! check_nvidia_memory; then
485- abort_with_fallback_wm
486- fi
487-
488- if ! check_fbconfig; then
489- abort_with_fallback_wm
490- fi
491-fi
492-
493-# load the ccp plugin if present and fallback to plain gconf if not
494-if [ -f ${PLUGIN_PATH}libccp.so ]; then
495- COMPIZ_PLUGINS="$COMPIZ_PLUGINS ccp"
496-elif [ -f ${PLUGIN_PATH}libgconf.so ]; then
497- COMPIZ_PLUGINS="$COMPIZ_PLUGINS glib gconf"
498-fi
499-
500-# enable gnomecompat if we run under gnome
501-if [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ] && [ ! -e ~/.compiz-gnomecompat ]; then
502- verbose "running under gnome seesion, checking for gnomecompat\n"
503- if ! gconftool -g /apps/compiz/general/allscreens/options/active_plugins|grep -q gnomecompat; then
504- verbose "adding missing gnomecompat\n"
505- V=$(gconftool -g /apps/compiz/general/allscreens/options/active_plugins|sed s/mousepoll,/mousepoll,gnomecompat,/)
506- if ! echo $V|grep -q gnomecompat; then
507- verbose "can not add gnomecompat, reseting\n"
508- gconftool --unset /apps/compiz/general/allscreens/options/active_plugins
509- else
510- gconftool -s /apps/compiz/general/allscreens/options/active_plugins --type list --list-type=string $V
511- fi
512- touch ~/.compiz-gnomecompat
513- fi
514-fi
515-
516-# get environment
517-build_env
518-build_args
519-
520-if [ "x$CM_DRY" = "xyes" ]; then
521- verbose "Dry run finished: everything should work with regards to Compiz and 3D.\n"
522- verbose "Execute: ${COMPIZ_BIN_PATH}${COMPIZ_NAME} $COMPIZ_OPTIONS "$@" $COMPIZ_PLUGINS \n"
523- exit 0;
524-fi
525-
526-${COMPIZ_BIN_PATH}${COMPIZ_NAME} $COMPIZ_OPTIONS "$@" $COMPIZ_PLUGINS || exec $FALLBACKWM $FALLBACKWM_OPTIONS
527-
528
529=== removed file 'debian/compiz-manager.defaults'
530--- debian/compiz-manager.defaults 2007-10-02 10:08:25 +0000
531+++ debian/compiz-manager.defaults 1970-01-01 00:00:00 +0000
532@@ -1,7 +0,0 @@
533-# Ubuntu specifc compiz-manager configuration file
534-# goes into /etc/xdg/compiz/compiz-manager
535-# works with git://anongit.compiz-fusion.org/fusion/misc/compiz-manager
536-COMPIZ_BIN_PATH="/usr/bin/"
537-PLUGIN_PATH="/usr/lib/compiz/"
538-COMPIZ_NAME="compiz.real"
539-
540
541=== removed file 'debian/compiz-wrapper.install'
542--- debian/compiz-wrapper.install 2008-08-08 08:10:58 +0000
543+++ debian/compiz-wrapper.install 1970-01-01 00:00:00 +0000
544@@ -1,1 +0,0 @@
545-usr/bin/compiz
546
547=== modified file 'debian/compiz.1'
548--- debian/compiz.1 2007-06-12 08:21:49 +0000
549+++ debian/compiz.1 2009-11-23 15:56:08 +0000
550@@ -8,25 +8,57 @@
551 .RI [ options ]
552 .RI [ plugins ]
553 .SH DESCRIPTION
554-\fBcompiz\fR is a wrapper around the real \fBcompiz.real\fR binary that
555-automatically sets up everything needed to properly run compiz on a Debian
556-system.
557-
558-In order to use the X server's accelerated indirect rendering (AIGLX)
559-capabilities, the wrapper will call \fBcompiz.real\fR with the necessary
560-command-line arguments.
561-
562-If the package \fBcompiz-gtk\fR is installed, the wrapper will automatically
563-start the \fBgtk-window-decorator\fR.
564-
565-The wrapper will also check if the \fBcompiz-plugins\fR package has been
566-installed and load the \fBgconf\fR plugin which will in turn load the standard
567-set of plugins.
568+.B compiz
569+is a compositing window-manager using OpenGL for rendering.
570+
571+.SH OPTIONS
572+.TP
573+.B \-\-help
574+Show summary of options.
575+.TP
576+.B \-v, \-\-version
577+Show version of program.
578+.TP
579+.BI "\-\-display " DISPLAY
580+Manage the display called
581+.I DISPLAY
582+instead of the name obtained from the
583+.I $DISPLAY
584+environment variable.
585+.TP
586+.BI "\-\-refresh\-rate " RATE
587+Set the default refresh rate.
588+.TP
589+.BI \-\-fast\-filter
590+Use a fast texture filter.
591+.TP
592+.BI \-\-indirect\-rendering
593+Force an indirect rendering context. Use this when running compiz on AIGLX.
594+.TP
595+.BI \-\-strict\-binding
596+Enable strict binding of textures. Use this when running compiz on AIGLX.
597+.TP
598+.BI \-\-use\-cow
599+Make use of the composite overlay window.
600+.TP
601+.BI \-\-replace
602+Replace any existing window managers on the given X display.
603+.TP
604+.BI \-\-sm\-disable
605+Disable the session management.
606+.TP
607+.BI "\-\-sm\-client\-id " ID
608+Use the given
609+.I ID
610+as the client ID for session management.
611+.TP
612+.BI "\-\-bg\-image " IMAGE
613+Use
614+.I IMAGE
615+as background image.
616
617 .SH AUTHOR
618-The compiz wrapper was written by Thierry Reding <thierry@gilfi.de> for the
619-Debian project (but may be used by others).
620-
621-.SH "SEE ALSO"
622-.BR compiz.real(1)
623-
624+compiz was written by David Reveman <davidr@novell.com> and others.
625+.PP
626+This manual page was written by Thierry Reding <thierry@gilfi.de>,
627+for the Debian project (but may be used by others).
628
629=== removed file 'debian/compiz.real.1'
630--- debian/compiz.real.1 2007-06-12 08:21:49 +0000
631+++ debian/compiz.real.1 1970-01-01 00:00:00 +0000
632@@ -1,64 +0,0 @@
633-.TH COMPIZ 1 "September 29, 2006"
634-
635-.SH NAME
636-compiz.real \- OpenGL window and compositing manager
637-
638-.SH SYNOPSIS
639-.B compiz.real
640-.RI [ options ]
641-.RI [ plugins ]
642-.SH DESCRIPTION
643-.B compiz
644-is a compositing window-manager using OpenGL for rendering.
645-
646-.SH OPTIONS
647-.TP
648-.B \-\-help
649-Show summary of options.
650-.TP
651-.B \-v, \-\-version
652-Show version of program.
653-.TP
654-.BI "\-\-display " DISPLAY
655-Manage the display called
656-.I DISPLAY
657-instead of the name obtained from the
658-.I $DISPLAY
659-environment variable.
660-.TP
661-.BI "\-\-refresh\-rate " RATE
662-Set the default refresh rate.
663-.TP
664-.BI \-\-fast\-filter
665-Use a fast texture filter.
666-.TP
667-.BI \-\-indirect\-rendering
668-Force an indirect rendering context. Use this when running compiz on AIGLX.
669-.TP
670-.BI \-\-strict\-binding
671-Enable strict binding of textures. Use this when running compiz on AIGLX.
672-.TP
673-.BI \-\-use\-cow
674-Make use of the composite overlay window.
675-.TP
676-.BI \-\-replace
677-Replace any existing window managers on the given X display.
678-.TP
679-.BI \-\-sm\-disable
680-Disable the session management.
681-.TP
682-.BI "\-\-sm\-client\-id " ID
683-Use the given
684-.I ID
685-as the client ID for session management.
686-.TP
687-.BI "\-\-bg\-image " IMAGE
688-Use
689-.I IMAGE
690-as background image.
691-
692-.SH AUTHOR
693-compiz was written by David Reveman <davidr@novell.com> and others.
694-.PP
695-This manual page was written by Thierry Reding <thierry@gilfi.de>,
696-for the Debian project (but may be used by others).
697
698=== modified file 'debian/control'
699--- debian/control 2009-09-27 00:58:35 +0000
700+++ debian/control 2009-11-23 15:56:08 +0000
701@@ -46,13 +46,15 @@
702
703 Package: compiz-core
704 Architecture: any
705-Depends: ${shlibs:Depends}, ${misc:Depends}, compiz-wrapper (= ${binary:Version})
706+Depends: ${shlibs:Depends}, ${misc:Depends}
707 Recommends: compiz-plugins (= ${binary:Version})
708 Suggests: nvidia-glx (>= 1.0.9625-1)
709 Breaks: libcompizconfig0 (<< 0.8.3),
710 compiz-fusion-plugins-main (<< 0.8.3),
711 compiz-fusion-plugins-extra (<< 0.8.3)
712 Provides: compiz-core-abiversion-${coreabiversion}
713+Conflicts: compiz-wrapper (<< 0.8.4-0ubuntu4)
714+Replaces: compiz-wrapper (<< 0.8.4-0ubuntu4)
715 Description: OpenGL window and compositing manager
716 Compiz brings to life a variety of visual effects that make the Linux desktop
717 easier to use, more powerful and intuitive, and more accessible for users
718@@ -65,25 +67,6 @@
719 to create composite images. Compiz achieves its stunning effects by doing
720 both of these functions.
721
722-Package: compiz-wrapper
723-Architecture: any
724-Replaces: compiz-core (<< 1:0.7.7+git20080630-0ubuntu3)
725-Depends: ${shlibs:Depends}, ${misc:Depends}, mesa-utils
726-Description: OpenGL window and compositing manager, wrapper script
727- Compiz brings to life a variety of visual effects that make the Linux desktop
728- easier to use, more powerful and intuitive, and more accessible for users
729- with special needs.
730- .
731- Compiz combines together a window manager and a composite manager using
732- OpenGL for rendering. A "window manager" allows the manipulation of the
733- multiple applications and dialog windows that are presented on the screen. A
734- "composite manager" allows windows and other graphics to be combined together
735- to create composite images. Compiz achieves its stunning effects by doing
736- both of these functions.
737- .
738- This package contains the wrapper script for testing if Compiz should be
739- started. It is used by Compiz and KWin.
740-
741 Package: compiz-dev
742 Architecture: any
743 Depends: ${shlibs:Depends}, ${misc:Depends},
744
745=== modified file 'debian/patches/010-disable-child-window-clipping.patch'
746--- debian/patches/010-disable-child-window-clipping.patch 2009-07-20 03:56:18 +0000
747+++ debian/patches/010-disable-child-window-clipping.patch 2009-11-23 15:56:08 +0000
748@@ -1,8 +1,8 @@
749-Index: compiz-0.8.2/src/display.c
750+Index: compiz-0.8.4/src/display.c
751 ===================================================================
752---- compiz-0.8.2.orig/src/display.c 2009-02-15 20:10:23.000000000 +1100
753-+++ compiz-0.8.2/src/display.c 2009-07-20 13:18:17.000000000 +1000
754-@@ -2138,6 +2138,23 @@
755+--- compiz-0.8.4.orig/src/display.c 2009-11-01 11:14:10.317274954 -0600
756++++ compiz-0.8.4/src/display.c 2009-11-01 11:14:13.267249390 -0600
757+@@ -2194,6 +2194,23 @@
758 lastScreen = ScreenCount (dpy) - 1;
759 }
760
761@@ -26,11 +26,11 @@
762 for (i = firstScreen; i <= lastScreen; i++)
763 {
764 Window newWmSnOwner = None, newCmSnOwner = None;
765-Index: compiz-0.8.2/include/compiz-core.h
766+Index: compiz-0.8.4/include/compiz-core.h
767 ===================================================================
768---- compiz-0.8.2.orig/include/compiz-core.h 2009-02-15 20:10:23.000000000 +1100
769-+++ compiz-0.8.2/include/compiz-core.h 2009-07-20 13:18:17.000000000 +1000
770-@@ -1024,6 +1024,8 @@
771+--- compiz-0.8.4.orig/include/compiz-core.h 2009-11-01 11:14:10.317274954 -0600
772++++ compiz-0.8.4/include/compiz-core.h 2009-11-01 11:14:13.267249390 -0600
773+@@ -1027,6 +1027,8 @@
774
775 GLenum textureFilter;
776
777
778=== modified file 'debian/patches/013-add-cursor-theme-support.patch'
779--- debian/patches/013-add-cursor-theme-support.patch 2009-07-20 03:56:18 +0000
780+++ debian/patches/013-add-cursor-theme-support.patch 2009-11-23 15:56:08 +0000
781@@ -1,7 +1,7 @@
782-Index: compiz-0.8.2/configure.ac
783+Index: compiz-0.8.4/configure.ac
784 ===================================================================
785---- compiz-0.8.2.orig/configure.ac 2009-03-01 23:10:46.000000000 +1100
786-+++ compiz-0.8.2/configure.ac 2009-07-20 13:18:22.000000000 +1000
787+--- compiz-0.8.4.orig/configure.ac 2009-11-01 11:14:09.517249667 -0600
788++++ compiz-0.8.4/configure.ac 2009-11-01 11:14:28.704773780 -0600
789 @@ -123,6 +123,7 @@
790 xdamage \
791 xrandr \
792@@ -10,10 +10,10 @@
793 ice \
794 sm \
795 libxml-2.0 \
796-Index: compiz-0.8.2/gtk/window-decorator/gtk-window-decorator.c
797+Index: compiz-0.8.4/gtk/window-decorator/gtk-window-decorator.c
798 ===================================================================
799---- compiz-0.8.2.orig/gtk/window-decorator/gtk-window-decorator.c 2009-03-01 23:07:14.000000000 +1100
800-+++ compiz-0.8.2/gtk/window-decorator/gtk-window-decorator.c 2009-07-20 13:18:22.000000000 +1000
801+--- compiz-0.8.4.orig/gtk/window-decorator/gtk-window-decorator.c 2009-11-01 11:14:09.517249667 -0600
802++++ compiz-0.8.4/gtk/window-decorator/gtk-window-decorator.c 2009-11-01 11:14:28.704773780 -0600
803 @@ -30,6 +30,7 @@
804 #include <X11/cursorfont.h>
805 #include <X11/extensions/Xrender.h>
806@@ -130,10 +130,10 @@
807 #elif USE_DBUS_GLIB
808 DBusConnection *connection;
809 DBusMessage *reply;
810-Index: compiz-0.8.2/metadata/core.xml.in
811+Index: compiz-0.8.4/metadata/core.xml.in
812 ===================================================================
813---- compiz-0.8.2.orig/metadata/core.xml.in 2009-03-01 23:17:25.000000000 +1100
814-+++ compiz-0.8.2/metadata/core.xml.in 2009-07-20 13:18:22.000000000 +1000
815+--- compiz-0.8.4.orig/metadata/core.xml.in 2009-11-01 11:14:09.487250184 -0600
816++++ compiz-0.8.4/metadata/core.xml.in 2009-11-01 11:14:28.704773780 -0600
817 @@ -35,6 +35,18 @@
818 <min>0</min>
819 <max>10000</max>
820@@ -153,10 +153,10 @@
821 <option name="ping_delay" type="int">
822 <_short>Ping Delay</_short>
823 <_long>Interval between ping messages</_long>
824-Index: compiz-0.8.2/src/display.c
825+Index: compiz-0.8.4/src/display.c
826 ===================================================================
827---- compiz-0.8.2.orig/src/display.c 2009-07-20 13:18:17.000000000 +1000
828-+++ compiz-0.8.2/src/display.c 2009-07-20 13:18:22.000000000 +1000
829+--- compiz-0.8.4.orig/src/display.c 2009-11-01 11:14:13.267249390 -0600
830++++ compiz-0.8.4/src/display.c 2009-11-01 11:14:28.704773780 -0600
831 @@ -41,6 +41,8 @@
832 #include <X11/extensions/Xcomposite.h>
833 #include <X11/extensions/Xrandr.h>
834@@ -231,11 +231,11 @@
835 default:
836 if (compSetDisplayOption (display, o, value))
837 return TRUE;
838-Index: compiz-0.8.2/include/compiz-core.h
839+Index: compiz-0.8.4/include/compiz-core.h
840 ===================================================================
841---- compiz-0.8.2.orig/include/compiz-core.h 2009-07-20 13:18:17.000000000 +1000
842-+++ compiz-0.8.2/include/compiz-core.h 2009-07-20 13:18:22.000000000 +1000
843-@@ -772,7 +772,10 @@
844+--- compiz-0.8.4.orig/include/compiz-core.h 2009-11-01 11:14:13.267249390 -0600
845++++ compiz-0.8.4/include/compiz-core.h 2009-11-01 11:14:28.704773780 -0600
846+@@ -775,7 +775,10 @@
847 #define COMP_DISPLAY_OPTION_IGNORE_HINTS_WHEN_MAXIMIZED 31
848 #define COMP_DISPLAY_OPTION_PING_DELAY 32
849 #define COMP_DISPLAY_OPTION_EDGE_DELAY 33
850
851=== modified file 'debian/patches/015_draw_dock_shadows_on_desktop.patch'
852--- debian/patches/015_draw_dock_shadows_on_desktop.patch 2009-09-27 06:06:57 +0000
853+++ debian/patches/015_draw_dock_shadows_on_desktop.patch 2009-11-23 15:56:08 +0000
854@@ -1,6 +1,8 @@
855---- compiz-0.8.2/plugins/decoration.c 2009-02-15 03:10:23.000000000 -0600
856-+++ compiz-0.8.2.new/plugins/decoration.c 2009-08-22 08:17:23.939586726 -0500
857-@@ -188,6 +188,11 @@
858+Index: compiz-0.8.4/plugins/decoration.c
859+===================================================================
860+--- compiz-0.8.4.orig/plugins/decoration.c 2009-11-01 11:14:07.334767959 -0600
861++++ compiz-0.8.4/plugins/decoration.c 2009-11-01 11:14:43.594773485 -0600
862+@@ -190,6 +190,11 @@
863 status = (*w->screen->drawWindow) (w, transform, attrib, region, mask);
864 WRAP (ds, w->screen, drawWindow, decorDrawWindow);
865
866@@ -12,7 +14,7 @@
867 if (mask & PAINT_WINDOW_TRANSFORMED_MASK)
868 region = &infiniteRegion;
869
870-@@ -224,6 +229,65 @@
871+@@ -226,6 +231,65 @@
872 attrib, mask);
873 }
874
875
876=== modified file 'debian/patches/016_call_glxwaitx_before_drawing.patch'
877--- debian/patches/016_call_glxwaitx_before_drawing.patch 2009-09-25 10:43:06 +0000
878+++ debian/patches/016_call_glxwaitx_before_drawing.patch 2009-11-23 15:56:08 +0000
879@@ -1,6 +1,8 @@
880---- compiz-0.8.3/src/display.c 2009-09-25 05:15:32.584699137 -0500
881-+++ compiz-0.8.3.new/src/display.c 2009-09-25 05:16:15.596738659 -0500
882-@@ -1493,6 +1493,8 @@
883+Index: compiz-0.8.4/src/display.c
884+===================================================================
885+--- compiz-0.8.4.orig/src/display.c 2009-11-01 11:14:28.704773780 -0600
886++++ compiz-0.8.4/src/display.c 2009-11-01 11:14:49.864774846 -0600
887+@@ -1537,6 +1537,8 @@
888 timeDiff = 0;
889
890 makeScreenCurrent (s);
891
892=== modified file 'debian/patches/017_always_unredirect_screensaver_on_nvidia.patch'
893--- debian/patches/017_always_unredirect_screensaver_on_nvidia.patch 2009-09-25 21:47:27 +0000
894+++ debian/patches/017_always_unredirect_screensaver_on_nvidia.patch 2009-11-23 15:56:08 +0000
895@@ -1,6 +1,7 @@
896-diff -ur compiz-0.8.3+git20090917/src/paint.c compiz-0.8.3+git20090917.new/src/paint.c
897---- compiz-0.8.3+git20090917/src/paint.c 2009-08-24 04:41:08.000000000 -0500
898-+++ compiz-0.8.3+git20090917.new/src/paint.c 2009-09-25 15:16:02.071834076 -0500
899+Index: compiz-0.8.4/src/paint.c
900+===================================================================
901+--- compiz-0.8.4.orig/src/paint.c 2009-11-01 11:14:06.064770650 -0600
902++++ compiz-0.8.4/src/paint.c 2009-11-01 11:14:56.244749394 -0600
903 @@ -262,6 +262,7 @@
904 CompTransform vTransform;
905 int offX, offY;
906@@ -9,7 +10,7 @@
907
908 if (!tmpRegion)
909 {
910-@@ -341,9 +342,15 @@
911+@@ -341,8 +342,14 @@
912 XSubtractRegion (tmpRegion, w->region, tmpRegion);
913
914 /* unredirect top most fullscreen windows. */
915@@ -25,4 +26,3 @@
916 {
917 if (XEqualRegion (w->region, &screen->region) &&
918 !REGION_NOT_EMPTY (tmpRegion))
919- {
920
921=== modified file 'debian/patches/020_fix_focus.patch'
922--- debian/patches/020_fix_focus.patch 2009-10-20 10:34:10 +0000
923+++ debian/patches/020_fix_focus.patch 2009-11-23 15:56:08 +0000
924@@ -1,81 +1,81 @@
925-diff --git a/include/compiz-core.h b/include/compiz-core.h
926-index 9f51e40..5f89ddb 100644
927---- a/include/compiz-core.h
928-+++ b/include/compiz-core.h
929-@@ -142,6 +142,7 @@ typedef struct _CompWalker CompWalker;
930- #define CompWindowStateBelowMask (1 << 10)
931- #define CompWindowStateDemandsAttentionMask (1 << 11)
932- #define CompWindowStateDisplayModalMask (1 << 12)
933-+#define CompWindowStateUnmanagingMask (1 << 13)
934-
935- #define MAXIMIZE_STATE (CompWindowStateMaximizedHorzMask | \
936- CompWindowStateMaximizedVertMask)
937-diff --git a/src/event.c b/src/event.c
938-index aa6f5df..0ab554f 100644
939---- a/src/event.c
940-+++ b/src/event.c
941-@@ -1366,13 +1366,14 @@ handleEvent (CompDisplay *d,
942- }
943- else /* X -> Withdrawn */
944- {
945-+ unsigned int newState = w->state;
946-+
947- /* Iconic -> Withdrawn */
948- if (w->state & CompWindowStateHiddenMask)
949- {
950- w->minimized = FALSE;
951-
952-- changeWindowState (w,
953-- w->state & ~CompWindowStateHiddenMask);
954-+ newState &= ~CompWindowStateHiddenMask;
955-
956- updateClientListForScreen (w->screen);
957- }
958-@@ -1380,6 +1381,12 @@ handleEvent (CompDisplay *d,
959- if (!w->attrib.override_redirect)
960- setWmState (d, WithdrawnState, w->id);
961-
962-+ if (w->managed)
963-+ newState |= CompWindowStateUnmanagingMask;
964-+
965-+ changeWindowState (w, newState);
966-+
967-+ w->managed = FALSE;
968- w->placed = FALSE;
969- }
970-
971-diff --git a/src/window.c b/src/window.c
972-index dc28ae1..a8870db 100644
973---- a/src/window.c
974-+++ b/src/window.c
975-@@ -2554,7 +2554,7 @@ unmapWindow (CompWindow *w)
976- if (w->unmapRefCnt > 0)
977- return;
978-
979-- if (w->managed && !w->placed) /* only for managed and closed windows */
980-+ if (w->state & CompWindowStateUnmanagingMask)
981- {
982- XWindowChanges xwc;
983- unsigned int xwcm;
984-@@ -2573,7 +2573,7 @@ unmapWindow (CompWindow *w)
985- if (xwcm)
986- configureXWindow (w, xwcm, &xwc);
987-
988-- w->managed = FALSE;
989-+ changeWindowState (w, w->state & ~CompWindowStateUnmanagingMask);
990- }
991-
992- if (w->struts)
993-@@ -2948,6 +2948,12 @@ focusWindow (CompWindow *w)
994- if (!w->managed)
995- return FALSE;
996-
997-+ if (w->destroyed)
998-+ return FALSE;
999-+
1000-+ if (w->state & CompWindowStateUnmanagingMask)
1001-+ return FALSE;
1002-+
1003- if (!onCurrentDesktop (w))
1004- return FALSE;
1005-
1006\ No newline at end of file
1007+Index: compiz-0.8.4/include/compiz-core.h
1008+===================================================================
1009+--- compiz-0.8.4.orig/include/compiz-core.h 2009-11-01 11:14:28.704773780 -0600
1010++++ compiz-0.8.4/include/compiz-core.h 2009-11-01 11:15:04.254773783 -0600
1011+@@ -142,6 +142,7 @@
1012+ #define CompWindowStateBelowMask (1 << 10)
1013+ #define CompWindowStateDemandsAttentionMask (1 << 11)
1014+ #define CompWindowStateDisplayModalMask (1 << 12)
1015++#define CompWindowStateUnmanagingMask (1 << 13)
1016+
1017+ #define MAXIMIZE_STATE (CompWindowStateMaximizedHorzMask | \
1018+ CompWindowStateMaximizedVertMask)
1019+Index: compiz-0.8.4/src/event.c
1020+===================================================================
1021+--- compiz-0.8.4.orig/src/event.c 2009-11-01 11:14:04.764750121 -0600
1022++++ compiz-0.8.4/src/event.c 2009-11-01 11:15:04.254773783 -0600
1023+@@ -1366,13 +1366,14 @@
1024+ }
1025+ else /* X -> Withdrawn */
1026+ {
1027++ unsigned int newState = w->state;
1028++
1029+ /* Iconic -> Withdrawn */
1030+ if (w->state & CompWindowStateHiddenMask)
1031+ {
1032+ w->minimized = FALSE;
1033+
1034+- changeWindowState (w,
1035+- w->state & ~CompWindowStateHiddenMask);
1036++ newState &= ~CompWindowStateHiddenMask;
1037+
1038+ updateClientListForScreen (w->screen);
1039+ }
1040+@@ -1380,6 +1381,12 @@
1041+ if (!w->attrib.override_redirect)
1042+ setWmState (d, WithdrawnState, w->id);
1043+
1044++ if (w->managed)
1045++ newState |= CompWindowStateUnmanagingMask;
1046++
1047++ changeWindowState (w, newState);
1048++
1049++ w->managed = FALSE;
1050+ w->placed = FALSE;
1051+ }
1052+
1053+Index: compiz-0.8.4/src/window.c
1054+===================================================================
1055+--- compiz-0.8.4.orig/src/window.c 2009-11-01 11:14:04.774749786 -0600
1056++++ compiz-0.8.4/src/window.c 2009-11-01 11:15:04.264770655 -0600
1057+@@ -2554,7 +2554,7 @@
1058+ if (w->unmapRefCnt > 0)
1059+ return;
1060+
1061+- if (w->managed && !w->placed) /* only for managed and closed windows */
1062++ if (w->state & CompWindowStateUnmanagingMask)
1063+ {
1064+ XWindowChanges xwc;
1065+ unsigned int xwcm;
1066+@@ -2573,7 +2573,7 @@
1067+ if (xwcm)
1068+ configureXWindow (w, xwcm, &xwc);
1069+
1070+- w->managed = FALSE;
1071++ changeWindowState (w, w->state & ~CompWindowStateUnmanagingMask);
1072+ }
1073+
1074+ if (w->struts)
1075+@@ -2948,6 +2948,12 @@
1076+ if (!w->managed)
1077+ return FALSE;
1078+
1079++ if (w->destroyed)
1080++ return FALSE;
1081++
1082++ if (w->state & CompWindowStateUnmanagingMask)
1083++ return FALSE;
1084++
1085+ if (!onCurrentDesktop (w))
1086+ return FALSE;
1087+
1088
1089=== modified file 'debian/patches/037_fullscreen_stacking_fixes.patch'
1090--- debian/patches/037_fullscreen_stacking_fixes.patch 2009-02-10 10:10:24 +0000
1091+++ debian/patches/037_fullscreen_stacking_fixes.patch 2009-11-23 15:56:08 +0000
1092@@ -1,8 +1,8 @@
1093-Index: compiz-0.7.9+git20090210/plugins/move.c
1094+Index: compiz-0.8.4/plugins/move.c
1095 ===================================================================
1096---- compiz-0.7.9+git20090210.orig/plugins/move.c 2009-02-09 15:48:57.000000000 +0100
1097-+++ compiz-0.7.9+git20090210/plugins/move.c 2009-02-10 10:46:04.000000000 +0100
1098-@@ -123,6 +123,11 @@
1099+--- compiz-0.8.4.orig/plugins/move.c 2009-11-01 11:14:02.664749070 -0600
1100++++ compiz-0.8.4/plugins/move.c 2009-11-01 11:15:16.144776559 -0600
1101+@@ -124,6 +124,11 @@
1102 xid = getIntOptionNamed (option, nOption, "window", 0);
1103
1104 w = findWindowAtDisplay (d, xid);
1105
1106=== modified file 'debian/patches/049-damage-report-non-empty.patch'
1107--- debian/patches/049-damage-report-non-empty.patch 2009-07-20 03:56:18 +0000
1108+++ debian/patches/049-damage-report-non-empty.patch 2009-11-23 15:56:08 +0000
1109@@ -1,8 +1,8 @@
1110-Index: compiz-0.8.2/src/event.c
1111+Index: compiz-0.8.4/src/event.c
1112 ===================================================================
1113---- compiz-0.8.2.orig/src/event.c 2009-02-15 20:10:23.000000000 +1100
1114-+++ compiz-0.8.2/src/event.c 2009-07-20 13:19:52.000000000 +1000
1115-@@ -2293,32 +2293,50 @@
1116+--- compiz-0.8.4.orig/src/event.c 2009-11-01 11:15:04.254773783 -0600
1117++++ compiz-0.8.4/src/event.c 2009-11-01 11:15:20.277268053 -0600
1118+@@ -2299,32 +2299,50 @@
1119
1120 if (w)
1121 {
1122@@ -66,11 +66,11 @@
1123 }
1124 }
1125 else if (d->shapeExtension &&
1126-Index: compiz-0.8.2/src/window.c
1127+Index: compiz-0.8.4/src/window.c
1128 ===================================================================
1129---- compiz-0.8.2.orig/src/window.c 2009-03-01 23:07:15.000000000 +1100
1130-+++ compiz-0.8.2/src/window.c 2009-07-20 13:19:52.000000000 +1000
1131-@@ -2204,7 +2204,7 @@
1132+--- compiz-0.8.4.orig/src/window.c 2009-11-01 11:15:04.264770655 -0600
1133++++ compiz-0.8.4/src/window.c 2009-11-01 11:15:20.277268053 -0600
1134+@@ -2202,7 +2202,7 @@
1135 XUnionRegion (&rect, w->region, w->region);
1136
1137 w->damage = XDamageCreate (d->display, id,
1138
1139=== modified file 'debian/patches/050_stacking.patch'
1140--- debian/patches/050_stacking.patch 2009-04-06 12:29:08 +0000
1141+++ debian/patches/050_stacking.patch 2009-11-23 15:56:08 +0000
1142@@ -1,8 +1,8 @@
1143-Index: compiz-0.8.2/src/event.c
1144+Index: compiz-0.8.4/src/event.c
1145 ===================================================================
1146---- compiz-0.8.2.orig/src/event.c 2009-04-06 14:06:44.000000000 +0200
1147-+++ compiz-0.8.2/src/event.c 2009-04-06 14:10:24.000000000 +0200
1148-@@ -2072,7 +2072,7 @@
1149+--- compiz-0.8.4.orig/src/event.c 2009-11-01 11:15:20.277268053 -0600
1150++++ compiz-0.8.4/src/event.c 2009-11-01 11:15:28.207250353 -0600
1151+@@ -2078,7 +2078,7 @@
1152 focus = allowWindowFocus (w, NO_FOCUS_MASK,
1153 w->screen->x, w->screen->y, 0);
1154
1155
1156=== added file 'debian/patches/060_move_checks_to_compiz.patch'
1157--- debian/patches/060_move_checks_to_compiz.patch 1970-01-01 00:00:00 +0000
1158+++ debian/patches/060_move_checks_to_compiz.patch 2009-11-23 15:56:08 +0000
1159@@ -0,0 +1,252 @@
1160+Index: compiz-0.8.4/src/main.c
1161+===================================================================
1162+--- compiz-0.8.4.orig/src/main.c 2009-11-03 07:39:05.837283646 -0600
1163++++ compiz-0.8.4/src/main.c 2009-11-03 07:39:20.767284176 -0600
1164+@@ -74,6 +74,13 @@
1165+
1166+ CompMetadata coreMetadata;
1167+
1168++char *blacklist[] = {
1169++ "8086:3577", /* Intel 830MG, 845G (LP: #259385) */
1170++ "8086:2562",
1171++
1172++ NULL
1173++};
1174++
1175+ static void
1176+ usage (void)
1177+ {
1178+@@ -157,6 +164,28 @@
1179+ return "Unknown";
1180+ }
1181+
1182++void
1183++launchFallbackWM (void)
1184++{
1185++ char *fallback = NULL;
1186++
1187++ if (getenv ("KDE_FULL_SESSION") != NULL)
1188++ fallback = "kwin";
1189++ else if (getenv ("GNOME_DESKTOP_SESSION_ID") != NULL)
1190++ fallback = "metacity";
1191++ else if (access ("/usr/bin/xfwm4", F_OK) == 0)
1192++ fallback = "xfwm4";
1193++
1194++ printf ("\nLaunching fallback window manager\n");
1195++ if (fallback != NULL)
1196++ execlp (fallback, fallback, "--replace", (char *)NULL);
1197++ else
1198++ execlp ("xterm", "xterm", (char *)NULL);
1199++
1200++ /* we should never get here but if we do just exit */
1201++ exit (EXIT_FAILURE);
1202++}
1203++
1204+ static void
1205+ signalHandler (int sig)
1206+ {
1207+@@ -166,6 +195,9 @@
1208+ case SIGCHLD:
1209+ waitpid (-1, &status, WNOHANG | WUNTRACED);
1210+ break;
1211++ case SIGSEGV:
1212++ launchFallbackWM ();
1213++ break;
1214+ case SIGHUP:
1215+ restartSignal = TRUE;
1216+ break;
1217+@@ -259,15 +291,35 @@
1218+ Bool disableSm = FALSE;
1219+ char *clientId = NULL;
1220+ char *refreshRateArg = NULL;
1221++ char *command;
1222+
1223+ programName = argv[0];
1224+ programArgc = argc;
1225+ programArgv = argv;
1226+
1227++ if (getenv ("GNOME_DESKTOP_SESSION_ID") != NULL &&
1228++ strcmp (getenv ("GNOME_DESKTOP_SESSION_ID"), "Failsafe") == 0)
1229++ {
1230++ printf ("Detected GNOME failsafe session.\n");
1231++ launchFallbackWM ();
1232++ }
1233++
1234++ for (i = 0; blacklist[i] != NULL; i++)
1235++ {
1236++ asprintf (&command, "lspci -n | grep -q %s", blacklist[i]);
1237++ if (system(command) == 0)
1238++ {
1239++ printf ("Blacklisted PCI ID %s detected\n", blacklist[i]);
1240++ launchFallbackWM ();
1241++ }
1242++ free (command);
1243++ }
1244++
1245+ signal (SIGHUP, signalHandler);
1246+ signal (SIGCHLD, signalHandler);
1247+ signal (SIGINT, signalHandler);
1248+ signal (SIGTERM, signalHandler);
1249++ signal (SIGSEGV, signalHandler);
1250+
1251+ emptyRegion.rects = &emptyRegion.extents;
1252+ emptyRegion.numRects = 0;
1253+@@ -286,6 +337,13 @@
1254+
1255+ memset (&ctx, 0, sizeof (ctx));
1256+
1257++ /* if no options are passed run with defaults */
1258++ if (argc == 1)
1259++ {
1260++ useDesktopHints = FALSE;
1261++ replaceCurrentWm = TRUE;
1262++ }
1263++
1264+ for (i = 1; i < argc; i++)
1265+ {
1266+ if (!strcmp (argv[i], "--help"))
1267+@@ -388,6 +446,16 @@
1268+ }
1269+ }
1270+
1271++ /* add in default plugins if none are given */
1272++ if (nPlugin == 0)
1273++ {
1274++ plugin[nPlugin++] = "ccp";
1275++ plugin[nPlugin++] = "move";
1276++ plugin[nPlugin++] = "resize";
1277++ plugin[nPlugin++] = "place";
1278++ plugin[nPlugin++] = "decoration";
1279++ }
1280++
1281+ if (refreshRateArg)
1282+ {
1283+ ctx.refreshRateData = malloc (strlen (refreshRateArg) + 256);
1284+@@ -462,7 +530,7 @@
1285+ initSession (clientId);
1286+
1287+ if (!addDisplay (displayName))
1288+- return 1;
1289++ launchFallbackWM ();
1290+
1291+ eventLoop ();
1292+
1293+Index: compiz-0.8.4/src/screen.c
1294+===================================================================
1295+--- compiz-0.8.4.orig/src/screen.c 2009-11-03 07:39:05.847296790 -0600
1296++++ compiz-0.8.4/src/screen.c 2009-11-03 07:39:20.767284176 -0600
1297+@@ -1722,7 +1722,7 @@
1298+ Window *children;
1299+ unsigned int nchildren;
1300+ int defaultDepth, nvisinfo, nElements, value, i;
1301+- const char *glxExtensions, *glExtensions;
1302++ const char *glxExtensions, *glExtensions, *glRenderer;
1303+ XSetWindowAttributes attrib;
1304+ GLfloat globalAmbient[] = { 0.1f, 0.1f, 0.1f, 0.1f };
1305+ GLfloat ambientLight[] = { 0.0f, 0.0f, 0.0f, 0.0f };
1306+@@ -1989,6 +1989,34 @@
1307+ glxExtensions = glXQueryExtensionsString (dpy, screenNum);
1308+ if (!strstr (glxExtensions, "GLX_EXT_texture_from_pixmap"))
1309+ {
1310++ /* try again with indirect rendering */
1311++ if (!indirectRendering)
1312++ {
1313++ char **copy;
1314++
1315++ copy = (char **)malloc ((programArgc + 2) * sizeof (char *));
1316++ for (i = 0; i < programArgc; i++)
1317++ {
1318++ copy[i] = strdup (programArgv[i]);
1319++ }
1320++ copy[i++] = "--indirect-rendering";
1321++ copy[i] = NULL;
1322++ execvp (programName, copy);
1323++
1324++ /* if we made it here execvp failed */
1325++ for (i = 0; copy[i] != NULL; i++)
1326++ {
1327++ free (copy[i]);
1328++ }
1329++ free (copy);
1330++
1331++ compLogMessage ("core", CompLogLevelFatal,
1332++ "Failed to launch with --indirect-rendering");
1333++ XFree (visinfo);
1334++
1335++ return FALSE;
1336++ }
1337++
1338+ compLogMessage ("core", CompLogLevelFatal,
1339+ "GLX_EXT_texture_from_pixmap is missing");
1340+ XFree (visinfo);
1341+@@ -2074,6 +2102,16 @@
1342+ return FALSE;
1343+ }
1344+
1345++ glRenderer = (const char *) glGetString (GL_RENDERER);
1346++ if (glRenderer != NULL &&
1347++ (strcmp (glRenderer, "Software Rasterizer") == 0 ||
1348++ strcmp (glRenderer, "Mesa X11") == 0))
1349++ {
1350++ compLogMessage ("core", CompLogLevelFatal,
1351++ "Software rendering detected.");
1352++ return FALSE;
1353++ }
1354++
1355+ s->textureNonPowerOfTwo = 0;
1356+ if (strstr (glExtensions, "GL_ARB_texture_non_power_of_two"))
1357+ s->textureNonPowerOfTwo = 1;
1358+Index: compiz-0.8.4/src/texture.c
1359+===================================================================
1360+--- compiz-0.8.4.orig/src/texture.c 2009-11-03 07:39:05.857274944 -0600
1361++++ compiz-0.8.4/src/texture.c 2009-11-03 07:39:53.717381188 -0600
1362+@@ -33,6 +33,8 @@
1363+
1364+ #include <compiz-core.h>
1365+
1366++void launchFallbackWM (void);
1367++
1368+ static CompMatrix _identity_matrix = {
1369+ 1.0f, 0.0f,
1370+ 0.0f, 1.0f,
1371+@@ -244,13 +246,21 @@
1372+ CompFBConfig *config = &screen->glxPixmapFBConfigs[depth];
1373+ int attribs[7], i = 0;
1374+
1375++ if (width > screen->maxTextureSize || height > screen->maxTextureSize)
1376++ {
1377++ compLogMessage ("core", CompLogLevelWarn,
1378++ "Exceeded max texture size");
1379++
1380++ launchFallbackWM ();
1381++ }
1382++
1383+ if (!config->fbConfig)
1384+ {
1385+ compLogMessage ("core", CompLogLevelWarn,
1386+ "No GLXFBConfig for depth %d",
1387+ depth);
1388+
1389+- return FALSE;
1390++ launchFallbackWM ();
1391+ }
1392+
1393+ attribs[i++] = GLX_TEXTURE_FORMAT_EXT;
1394+@@ -295,7 +305,7 @@
1395+ compLogMessage ("core", CompLogLevelWarn,
1396+ "glXCreatePixmap failed");
1397+
1398+- return FALSE;
1399++ launchFallbackWM ();
1400+ }
1401+
1402+ if (!target)
1403+@@ -345,7 +355,7 @@
1404+ (*screen->destroyPixmap) (screen->display->display, texture->pixmap);
1405+ texture->pixmap = None;
1406+
1407+- return FALSE;
1408++ launchFallbackWM ();
1409+ }
1410+
1411+ if (!texture->name)
1412
1413=== modified file 'debian/patches/099-autogen.patch'
1414--- debian/patches/099-autogen.patch 2009-07-20 03:56:18 +0000
1415+++ debian/patches/099-autogen.patch 2009-11-23 15:56:08 +0000
1416@@ -1,8 +1,8 @@
1417-Index: compiz-0.8.2/configure
1418+Index: compiz-0.8.4/configure
1419 ===================================================================
1420---- compiz-0.8.2.orig/configure 2009-03-01 23:15:41.000000000 +1100
1421-+++ compiz-0.8.2/configure 2009-07-20 13:19:56.000000000 +1000
1422-@@ -24121,6 +24121,7 @@
1423+--- compiz-0.8.4.orig/configure 2009-11-01 11:14:00.257251193 -0600
1424++++ compiz-0.8.4/configure 2009-11-01 11:15:36.224776324 -0600
1425+@@ -17023,6 +17023,7 @@
1426 xdamage \
1427 xrandr \
1428 xinerama \
1429
1430=== modified file 'debian/patches/series'
1431--- debian/patches/series 2009-10-29 09:43:03 +0000
1432+++ debian/patches/series 2009-11-23 15:56:08 +0000
1433@@ -15,4 +15,5 @@
1434 049-damage-report-non-empty.patch
1435 #090_profiling
1436 050_stacking.patch
1437+060_move_checks_to_compiz.patch
1438 099-autogen.patch
1439
1440=== modified file 'debian/rules'
1441--- debian/rules 2009-09-30 14:31:06 +0000
1442+++ debian/rules 2009-11-23 15:56:08 +0000
1443@@ -48,7 +48,6 @@
1444 --disable-kde \
1445 --disable-kconfig \
1446 --enable-librsvg \
1447- --enable-gconf-dump \
1448 --with-default-plugins="$(PLUGINS)"
1449
1450 build: patch build-stamp
1451@@ -88,11 +87,7 @@
1452
1453 cd obj-$(DEB_BUILD_GNU_TYPE) && $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install
1454
1455- mv $(CURDIR)/debian/tmp/usr/bin/compiz $(CURDIR)/debian/tmp/usr/bin/compiz.real
1456- $(INSTALL) --mode 0755 debian/compiz-manager $(CURDIR)/debian/tmp/usr/bin/compiz
1457 $(INSTALL) --mode 0755 debian/compiz-decorator $(CURDIR)/debian/tmp/usr/bin/
1458- mkdir -p $(CURDIR)/debian/tmp/etc/xdg/compiz
1459- $(INSTALL) --mode 0644 debian/compiz-manager.defaults $(CURDIR)/debian/tmp/etc/xdg/compiz/compiz-manager
1460
1461 # apport hook
1462 mkdir -p $(CURDIR)/debian/tmp/usr/share/apport/package-hooks

Subscribers

People subscribed via source and target branches

to all changes: