| View previous topic :: View next topic |
| Author |
Message |
flazz Guru


Joined: 22 Nov 2003 Posts: 496 Location: Florida
|
Posted: Sat Oct 27, 2007 5:10 am Post subject: slow terminal redraw when Composite is enabled |
|
|
When I have composite enabled in my xorg.conf redrawing (resizing, restoring, switching vitrual desktops, ...) terminals (xfce's and urxvt specifically) is very slow.
When turned off, redrawing is normal.
is there a solution to this? |
|
| Back to top |
|
 |
pussi l33t

Joined: 08 May 2004 Posts: 727 Location: Finland
|
Posted: Sat Oct 27, 2007 7:09 am Post subject: |
|
|
this is caused by some security fix in xorg 7.3
afaik only way to fix this atm is downgrading to xorg 7.2 |
|
| Back to top |
|
 |
flazz Guru


Joined: 22 Nov 2003 Posts: 496 Location: Florida
|
Posted: Sat Oct 27, 2007 8:18 pm Post subject: |
|
|
i'm running 7.2, i tried upgrading to 7.3 and it was still there, also in 7.3 my mouse didn't work
so i guess we just wait?? |
|
| Back to top |
|
 |
rburcham Apprentice

Joined: 20 Mar 2003 Posts: 247
|
Posted: Sat Oct 27, 2007 8:44 pm Post subject: |
|
|
I am getting this in KDE using both emerald and kde-window-decorator, specifically in konsole. The window behavior (drag resize shade) work well enough, but text out within the console is VERY slow. For instance, with a screen full of text, the shade and unshade effect occur on the konsole window quickly, but following the unshade the text within the konsole redraws very very slow. If I have an emerge going on in a konsole, the text scrolling/refresh/updates are super slow. During this time the X process has the cpu pegged.
xterm does not exhibit any of this behavior.
I have seen this with 7.2 and 7.3
*EDIT*
I unmasked xorg-server-1.4-r2 and tried it too. Bottom line there doesn't seem to be any combination of xorg that allows compiz to run without pegging the cpu almost immediately. Kind of a bummer, I have to fusion-icon back to kwin to get my machine back. Never had any difficulty with beryl, but my suspicion is this has more to do with recent X changes than the compositing wm. Here's my setup:
| Code: | # emerge xorg-x11 xorg-server compiz-fusion nvidia-drivers -vp
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild N ] app-doc/xorg-docs-1.4-r1 USE="-debug -doc" 8,106 kB
[ebuild R ] x11-base/xorg-server-1.4-r2 USE="dri hal ipv6 nptl sdl xorg -3dfx -debug -dmx -kdrive -minimal -xprint" INPUT_DEVICES="evdev keyboard mouse -acecad -aiptek -calcomp -citron -digitaledge -dmc -dynapro -elo2300 -elographics -fpit -hyperpen -jamstudio -joystick -magellan -microtouch -mutouch -palmax -penmount -spaceorb -summa -synaptics -tek4957 -ur98 -vmmouse -void -wacom" VIDEO_CARDS="nv nvidia vesa -amd -apm -ark -chips -cirrus -cyrix -dummy -epson -fbdev -glint -i128 -i740 -i810 (-impact) -imstt -mach64 -mga -neomagic (-newport) -nsc -r128 -radeon -rendition -s3 -s3virge -savage -siliconmotion -sis -sisusb (-sunbw2) (-suncg14) (-suncg3) (-suncg6) (-sunffb) (-sunleo) (-suntcx) -tdfx -tga -trident -tseng -v4l -vermilion -vga -via -vmware -voodoo -xgi" 0 kB
[ebuild R ] x11-wm/compiz-fusion-0.6.0 USE="gnome kde -unsupported%" 0 kB [0=>1]
[ebuild R ] x11-drivers/nvidia-drivers-100.14.19 USE="gtk -acpi (-multilib)" 0 kB
[ebuild R ] x11-base/xorg-x11-7.2 0 kB
Total: 5 packages (1 new, 4 reinstalls), Size of downloads: 8,106 kB
Portage tree and overlays:
[0] /usr/portage
[1] /usr/portage/local/layman/xeffects |
|
|
| Back to top |
|
 |
pussi l33t

Joined: 08 May 2004 Posts: 727 Location: Finland
|
Posted: Sun Oct 28, 2007 1:26 am Post subject: |
|
|
| flazz wrote: | i'm running 7.2, i tried upgrading to 7.3 and it was still there, also in 7.3 my mouse didn't work
so i guess we just wait?? | ok, then this is some different issue |
|
| Back to top |
|
 |
unK l33t


Joined: 06 Feb 2007 Posts: 769
|
Posted: Sun Oct 28, 2007 7:31 pm Post subject: |
|
|
| pussi wrote: | | flazz wrote: | i'm running 7.2, i tried upgrading to 7.3 and it was still there, also in 7.3 my mouse didn't work
so i guess we just wait?? | ok, then this is some different issue |
It could be, but look at this thread. If you are using xorg-server-1.3.0.0-r1 or higher, you have to downgrade to 1.3.0.0 to get it to work as fast as before. |
|
| Back to top |
|
 |
rburcham Apprentice

Joined: 20 Mar 2003 Posts: 247
|
Posted: Mon Oct 29, 2007 7:28 pm Post subject: |
|
|
flazz - your mouse didn't work because whenever you do a full rev upgrade/downgrade of X, you have to rebuild all the drivers too:
| Code: | | # emerge xf86-input-mouse -v |
I can confirm that rolling back to x11-base/xorg-server-1.2.0-r3 resolved my horrendous slowdown & high CPU problems. Thanks unK. |
|
| Back to top |
|
 |
flazz Guru


Joined: 22 Nov 2003 Posts: 496 Location: Florida
|
Posted: Tue Oct 30, 2007 3:12 am Post subject: |
|
|
confirmed: rolling back to xorg-server 1.3.0.0 fixes the problem
btw this worked on one computer, but on another no composite seems to be loading at all. |
|
| Back to top |
|
 |
cDub n00b


Joined: 31 Dec 2007 Posts: 1
|
Posted: Mon Dec 31, 2007 4:32 am Post subject: |
|
|
I know this thread is a bit old now, but I'm having the same problem that flazz was -- konsole has a very slow redraw, as do windows that are resized using the normal resize method while Compiz Fusion is running. I've tried downgrading to xorg-server 1.3.0.0 and even 1.2.0-r3, but to no avail. My performance isn't otherwise too bad, but I'd like to get this fixed if I can.
Thanks.
EDIT: Oh yeah, I guess I should have said this... I'm using NVIDIA drivers (on a 7800 GS AGP).
Last edited by cDub on Wed Jan 02, 2008 8:44 pm; edited 1 time in total |
|
| Back to top |
|
 |
natesully n00b

Joined: 23 Feb 2006 Posts: 49
|
Posted: Wed Jan 02, 2008 5:53 am Post subject: |
|
|
| I just fixed this on my new intel video card by setting "AccelMethod" to "XAA". It's EXA by default, which can't scroll for some reason. Doing this also fixed some little decoration glitches. |
|
| Back to top |
|
 |
Bevan n00b

Joined: 26 May 2006 Posts: 37
|
Posted: Wed Jan 30, 2008 12:52 am Post subject: |
|
|
Hi!
I would like to know if there is any change in newer Xorg versions or if there is a possible workaround. xorg-server-1.3.0.0 is not in portage anymore, so I'm currently running version 1.3.0.0-r4. With this version I have very slow redrawing of some windows (like gnome-terminal).
I've got a nVidia GeForce 7600GT and I'm currently using nvidia-drivers version 169.09.
Is there any way to solve this problem? Is it maybe fixed in new xorg-server-1.4 versions?
Greets,
Michael |
|
| Back to top |
|
 |
Ionflux n00b

Joined: 28 Sep 2003 Posts: 29
|
Posted: Thu Feb 07, 2008 2:24 am Post subject: |
|
|
This problem seems to have been around for a while. Now it's resurfaced again since the 1.3.0.0 ebuild has been taken out of portage.
Anyway, you can still get the ebuild from the Google cache. Then
1) Copy the ebuild source to your local portage overlay (to x11-base/xorg-server/xorg-server.1.3.0.0.ebuild). (Don't copy it to the system portage tree, it will get deleted on the next sync.)
2) Run ebuild xorg-server.1.3.0.0.ebuild manifest.
3) Copy the patches (from the portage tree) to the files directory.
4) Mask >x11-base/xorg-server-1.3.0.0.
5) Re-emerge xorg-server.
6) Enjoy fast terminals again.
There is also this bug report which suggests turning off the composite extension as a "fix". But of course that's not a fix, it is turning off a nice feature.
Edit: Now that I think of it, it may be sufficient to just copy the xorg-server-1.3.0.0-r4.ebuild and edit out the patch responsible for the problem. I'll check on that if I find the time. _________________ "The Multiverse doesn't make sense, and it ain't supposed to." |
|
| Back to top |
|
 |
semdornus n00b

Joined: 13 Sep 2007 Posts: 58 Location: Tokyo
|
Posted: Thu Feb 07, 2008 2:53 am Post subject: |
|
|
| For those with an nvidia card nvidia-settings -a InitialPixmapPlacement=2 seems to help as well. |
|
| Back to top |
|
 |
fikiz Apprentice

Joined: 07 Mar 2005 Posts: 282 Location: Italy
|
Posted: Sat Feb 09, 2008 8:44 am Post subject: |
|
|
^ ^ ^ ^
no effect for me of this command with my nvidia card.
I don't know how to check if composite is enabled and how to disable it. somebody could help me?
thanks |
|
| Back to top |
|
 |
jerre n00b

Joined: 31 Mar 2005 Posts: 2
|
Posted: Sun Feb 17, 2008 4:14 pm Post subject: |
|
|
| the InitialPixmapPlacement=2 works here |
|
| Back to top |
|
 |
Bevan n00b

Joined: 26 May 2006 Posts: 37
|
Posted: Sun Feb 17, 2008 11:29 pm Post subject: |
|
|
InitialPixmapPlacement=2 works for me, too. But it is not a perfect fix. I can maximize the terminal very fast now but it takes several seconds until the title bar is displayed correctly. I think this is the same amount of time, that the whole terminal needed before to redraw.
What exactly does "InitialPixmapPlacement=2"?
Edit: When not using Emerlad but GTK Window Decorator instead, there are no problems anymore. The title bar is refreshed instantly. When using Emerald, the title bar needs some seconds to refresh. This can be seen on any windows, not only terminals. Also I get some artifacts.
With InitialPixmapPlacement=1, terminals redraw very slowly again, but title bars of other windows refresh instantly.
Very strange behaviour...  |
|
| Back to top |
|
 |
unK l33t


Joined: 06 Feb 2007 Posts: 769
|
Posted: Mon Feb 18, 2008 5:31 pm Post subject: |
|
|
If you wanna have terminals with true transparecy working as fast as before, just edit ebuild for xorg-server-1.3* and delete applying "use-composite-for-unequal-depths.patch", then reemerge xorg-server and it'll be ok. _________________ ncmpcpp - featureful ncurses based MPD client inspired by ncmpc |
|
| Back to top |
|
 |
dnadesign Apprentice


Joined: 23 Dec 2006 Posts: 172 Location: Poland
|
Posted: Wed Mar 05, 2008 3:25 pm Post subject: |
|
|
Does anyone know if this issue has been addressed in v. 1.4.0.x? _________________ MacBook Pro 5.1
Intel C2D 2.53 GHz, 4GB RAM DDR3, GF 9400M and 9600M GT 512MB |
|
| Back to top |
|
 |
arli n00b

Joined: 15 Dec 2006 Posts: 10 Location: china
|
Posted: Sat Mar 08, 2008 3:19 pm Post subject: Re: slow terminal redraw when Composite is enabled |
|
|
| flazz wrote: | When I have composite enabled in my xorg.conf redrawing (resizing, restoring, switching vitrual desktops, ...) terminals (xfce's and urxvt specifically) is very slow.
When turned off, redrawing is normal.
is there a solution to this? |
me too
^-- just make a flag for thread to remember 
Last edited by arli on Wed Mar 12, 2008 10:19 pm; edited 1 time in total |
|
| Back to top |
|
 |
dnadesign Apprentice


Joined: 23 Dec 2006 Posts: 172 Location: Poland
|
Posted: Mon Mar 10, 2008 10:05 am Post subject: |
|
|
I have verified that on 1.4.x version of xorg-server the problem exists. Possibly the patch, that you guys mentioned earlier is already in the mainstream codebase. So for now the only possible solution is to remain on 1.3.0.x with the patch deleted. _________________ MacBook Pro 5.1
Intel C2D 2.53 GHz, 4GB RAM DDR3, GF 9400M and 9600M GT 512MB |
|
| Back to top |
|
 |
unK l33t


Joined: 06 Feb 2007 Posts: 769
|
Posted: Mon Mar 10, 2008 8:22 pm Post subject: |
|
|
| dnadesign wrote: | | I have verified that on 1.4.x version of xorg-server the problem exists. Possibly the patch, that you guys mentioned earlier is already in the mainstream codebase. So for now the only possible solution is to remain on 1.3.0.x with the patch deleted. |
Or you can use this patch: xorg-server-1.4-revert-slow-composite-redrawing-fix.patch
It reverts bugfix which made redrawing slow. I just compiled xorg-server-1.4.0.90-r3 with this and it works smooth as before.
Note: This patch reverts security bugfix, so use it at your own risk. _________________ ncmpcpp - featureful ncurses based MPD client inspired by ncmpc |
|
| Back to top |
|
 |
arli n00b

Joined: 15 Dec 2006 Posts: 10 Location: china
|
Posted: Wed Mar 12, 2008 10:17 pm Post subject: |
|
|
in x11-base/xorg-server 1.3.0.0-r5
problem too...
Last edited by arli on Sun May 04, 2008 9:34 pm; edited 1 time in total |
|
| Back to top |
|
 |
OnoSendai n00b


Joined: 14 Aug 2004 Posts: 55 Location: Berlin
|
Posted: Thu Mar 13, 2008 2:16 pm Post subject: |
|
|
| natesully wrote: | | I just fixed this on my new intel video card by setting "AccelMethod" to "XAA". It's EXA by default, which can't scroll for some reason. Doing this also fixed some little decoration glitches. |
Wow!
Thanks alot!
I'm running x11-base/xorg-server-1.4.0.90-r3 and x11-base/xorg-x11-7.3 on my Laptop (Intel 965 / X3100)
Adding
| Code: | | Option "AccelMethod" "XAA" |
to the Device section fixes the scrolling and slow resize issue for me. _________________ Wintermute was a simple cube of white light, that very simplicity suggesting extreme complexity. |
|
| Back to top |
|
 |
colchaodemola n00b

Joined: 06 Jan 2007 Posts: 29
|
Posted: Fri Mar 21, 2008 11:49 pm Post subject: |
|
|
| fikiz wrote: | ^ ^ ^ ^
no effect for me of this command with my nvidia card.
I don't know how to check if composite is enabled and how to disable it. somebody could help me?
thanks |
This fixes terminal slowness, but all other windows got slow :/
| unK wrote: | | dnadesign wrote: | | I have verified that on 1.4.x version of xorg-server the problem exists. Possibly the patch, that you guys mentioned earlier is already in the mainstream codebase. So for now the only possible solution is to remain on 1.3.0.x with the patch deleted. |
Or you can use this patch: xorg-server-1.4-revert-slow-composite-redrawing-fix.patch
It reverts bugfix which made redrawing slow. I just compiled xorg-server-1.4.0.90-r3 with this and it works smooth as before.
Note: This patch reverts security bugfix, so use it at your own risk. |
URL 404 error. Any other url ?
Any more news ? |
|
| Back to top |
|
 |
count_zero Guru


Joined: 17 May 2004 Posts: 460 Location: Little Rock, Arkansas, USA
|
Posted: Sat Mar 22, 2008 2:22 pm Post subject: |
|
|
Here's an ebuild that reverses the "use-composite-for-unequal-depths.patch" patch that has been causing these slowdowns with xorg-server-1.4.0.90-r3. It utilizes the patch already in the /usr/portage/x11-base/xorg-server/files/ directory, so just copy this files directory to your overlay and use this modified ebuild. It built cleanly for me, and the slowdowns are also resolved. I'm not sure the overall effect that reversing this patch will have, however, so use at your own risk.
xorg-server-1.4.0.90-r3 with "use-composite-for-unequal-depths.patch" reversed:
| Code: |
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/x11-base/xorg-server/xorg-server-1.4.0.90-r3.ebuild,v 1.2 2008/03/10 17:39:30 zlin Exp $
# Must be before x-modular eclass is inherited
#SNAPSHOT="yes"
inherit x-modular multilib
OPENGL_DIR="xorg-x11"
MESA_PN="Mesa"
MESA_PV="7.0.2"
MESA_P="${MESA_PN}-${MESA_PV}"
MESA_SRC_P="${MESA_PN}Lib-${MESA_PV}"
SRC_URI="${SRC_URI}
mirror://sourceforge/mesa3d/${MESA_SRC_P}.tar.bz2
http://xorg.freedesktop.org/releases/individual/xserver/${P}.tar.bz2"
DESCRIPTION="X.Org X servers"
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd"
IUSE_INPUT_DEVICES="
input_devices_acecad
input_devices_aiptek
input_devices_calcomp
input_devices_citron
input_devices_digitaledge
input_devices_dmc
input_devices_dynapro
input_devices_elo2300
input_devices_elographics
input_devices_evdev
input_devices_fpit
input_devices_hyperpen
input_devices_jamstudio
input_devices_joystick
input_devices_keyboard
input_devices_magellan
input_devices_microtouch
input_devices_mouse
input_devices_mutouch
input_devices_palmax
input_devices_penmount
input_devices_spaceorb
input_devices_summa
input_devices_tek4957
input_devices_ur98
input_devices_vmmouse
input_devices_void
input_devices_synaptics
input_devices_wacom"
IUSE_VIDEO_CARDS="
video_cards_amd
video_cards_apm
video_cards_ark
video_cards_chips
video_cards_cirrus
video_cards_cyrix
video_cards_dummy
video_cards_epson
video_cards_fbdev
video_cards_glint
video_cards_i128
video_cards_i740
video_cards_i810
video_cards_impact
video_cards_imstt
video_cards_mach64
video_cards_mga
video_cards_neomagic
video_cards_newport
video_cards_nsc
video_cards_nv
video_cards_r128
video_cards_radeon
video_cards_rendition
video_cards_s3
video_cards_s3virge
video_cards_savage
video_cards_siliconmotion
video_cards_sis
video_cards_sisusb
video_cards_sunbw2
video_cards_suncg14
video_cards_suncg3
video_cards_suncg6
video_cards_sunffb
video_cards_sunleo
video_cards_suntcx
video_cards_tdfx
video_cards_tga
video_cards_trident
video_cards_tseng
video_cards_v4l
video_cards_vermilion
video_cards_vesa
video_cards_vga
video_cards_via
video_cards_vmware
video_cards_voodoo
video_cards_xgi
video_cards_fglrx
video_cards_nvidia"
IUSE_SERVERS="dmx kdrive xorg"
IUSE="${IUSE_VIDEO_CARDS}
${IUSE_INPUT_DEVICES}
${IUSE_SERVERS}
3dfx
dri hal ipv6 minimal nptl sdl xprint"
RDEPEND="hal? ( sys-apps/hal )
>=x11-libs/libXfont-1.3.1
>=x11-libs/xtrans-1.0.4
>=x11-libs/libXau-1.0.3
>=x11-libs/libXext-1.0.2
>=x11-libs/libX11-1.1.3
>=x11-libs/libxkbfile-1.0.4
>=x11-libs/libXdmcp-1.0.2
>=x11-libs/libXmu-1.0.3
>=x11-libs/libXrender-0.9.4
>=x11-libs/libXi-1.1.3
>=x11-libs/pixman-0.9.5
media-libs/freetype
>=media-libs/mesa-7.0.1
media-fonts/font-adobe-75dpi
media-fonts/font-misc-misc
media-fonts/font-cursor-misc
>=x11-misc/xbitmaps-1.0.1
>=x11-misc/xkeyboard-config-0.9
>=x11-apps/iceauth-1.0.2
>=x11-apps/rgb-1.0.1
>=x11-apps/xauth-1.0.2
>=x11-apps/xinit-1.0.5
app-admin/eselect-opengl
>=x11-libs/libXaw-1.0.4
>=x11-libs/libXpm-3.5.7
>=x11-libs/libXxf86misc-1.0.1
>=x11-libs/libXxf86vm-1.0.1
dmx? ( >=x11-libs/libdmx-1.0.2
>=x11-libs/libXfixes-4.0.3 )
!minimal? ( >=x11-libs/libXtst-1.0.3
>=x11-libs/libXres-1.0.3 )
>=x11-libs/libxkbui-1.0.2
>=x11-libs/liblbxutil-1.0.1
kdrive? ( sdl? ( media-libs/libsdl ) )"
# Xres is dmx-dependent, xkbui is xorgcfg-dependent
# Xaw is dmx- and xorgcfg-dependent
# Xpm is dmx- and xorgcfg-dependent, pulls in Xt
# Xxf86misc and Xxf86vm are xorgcfg-dependent
# liblbxutil is lbx- dependent
DEPEND="${RDEPEND}
!net-dialup/dtrace
>=x11-proto/randrproto-1.2.1
>=x11-proto/renderproto-0.9.3
>=x11-proto/fixesproto-4
>=x11-proto/damageproto-1.1
>=x11-proto/xextproto-7.0.2
>=x11-proto/xproto-7.0.10
>=x11-proto/xf86dgaproto-2.0.3
>=x11-proto/xf86miscproto-0.9.2
>=x11-proto/xf86rushproto-1.1.2
>=x11-proto/xf86vidmodeproto-2.2.2
>=x11-proto/xf86bigfontproto-1.1.2
>=x11-proto/compositeproto-0.4
>=x11-proto/recordproto-1.13.2
>=x11-proto/resourceproto-1.0.2
>=x11-proto/videoproto-2.2.2
>=x11-proto/scrnsaverproto-1.1.0
>=x11-proto/evieext-1.0.2
>=x11-proto/trapproto-3.4.3
>=x11-proto/xineramaproto-1.1-r1
>=x11-proto/fontsproto-2.0.2
>=x11-proto/kbproto-1.0.3
>=x11-proto/inputproto-1.4.2.1
>=x11-proto/bigreqsproto-1.0.2
>=x11-proto/xcmiscproto-1.1.2
>=x11-proto/glproto-1.4.8
dmx? ( >=x11-proto/dmxproto-2.2.2 )
dri? ( >=x11-proto/xf86driproto-2.0.3
>=x11-libs/libdrm-2.3 )
xprint? ( >=x11-proto/printproto-1.0.3
>=x11-apps/mkfontdir-1.0.3
>=x11-apps/mkfontscale-1.0.3
>=x11-apps/xplsprinters-1.0.1 )"
# Drivers
PDEPEND="
xorg? (
input_devices_acecad? ( >=x11-drivers/xf86-input-acecad-1.1.0 )
input_devices_aiptek? ( >=x11-drivers/xf86-input-aiptek-1.0.1 )
input_devices_calcomp? ( >=x11-drivers/xf86-input-calcomp-1.1.1 )
input_devices_citron? ( >=x11-drivers/xf86-input-citron-2.2.1 )
input_devices_digitaledge? ( >=x11-drivers/xf86-input-digitaledge-1.1.0 )
input_devices_dmc? ( >=x11-drivers/xf86-input-dmc-1.1.0 )
input_devices_dynapro? ( >=x11-drivers/xf86-input-dynapro-1.1.1 )
input_devices_elo2300? ( >=x11-drivers/xf86-input-elo2300-1.1.1 )
input_devices_elographics? ( >=x11-drivers/xf86-input-elographics-1.1.0 )
input_devices_evdev? ( >=x11-drivers/xf86-input-evdev-1.1.1 )
input_devices_fpit? ( >=x11-drivers/xf86-input-fpit-1.1.0 )
input_devices_hyperpen? ( >=x11-drivers/xf86-input-hyperpen-1.1.0 )
input_devices_jamstudio? ( >=x11-drivers/xf86-input-jamstudio-1.1.0 )
input_devices_joystick? ( >=x11-drivers/xf86-input-joystick-1.1.0 )
input_devices_keyboard? ( >=x11-drivers/xf86-input-keyboard-1.2.0 )
input_devices_magellan? ( >=x11-drivers/xf86-input-magellan-1.1.1 )
input_devices_microtouch? ( >=x11-drivers/xf86-input-microtouch-1.1.1 )
input_devices_mouse? ( >=x11-drivers/xf86-input-mouse-1.1.0 )
input_devices_mutouch? ( >=x11-drivers/xf86-input-mutouch-1.1.0 )
input_devices_palmax? ( >=x11-drivers/xf86-input-palmax-1.1.0 )
input_devices_penmount? ( >=x11-drivers/xf86-input-penmount-1.2.1 )
input_devices_spaceorb? ( >=x11-drivers/xf86-input-spaceorb-1.1.1 )
input_devices_summa? ( >=x11-drivers/xf86-input-summa-1.1.0 )
input_devices_tek4957? ( >=x11-drivers/xf86-input-tek4957-1.1.0 )
input_devices_ur98? ( >=x11-drivers/xf86-input-ur98-1.1.0 )
input_devices_vmmouse? ( >=x11-drivers/xf86-input-vmmouse-12.4.2 )
input_devices_void? ( >=x11-drivers/xf86-input-void-1.1.0 )
input_devices_synaptics? ( x11-drivers/synaptics )
input_devices_wacom? ( x11-drivers/linuxwacom )
video_cards_amd? ( >=x11-drivers/xf86-video-amd-2.7.7.0 )
video_cards_apm? ( >=x11-drivers/xf86-video-apm-1.1.1 )
video_cards_ark? ( >=x11-drivers/xf86-video-ark-0.6.0 )
video_cards_chips? ( >=x11-drivers/xf86-video-chips-1.1.1 )
video_cards_cirrus? ( >=x11-drivers/xf86-video-cirrus-1.1.0 )
video_cards_cyrix? ( >=x11-drivers/xf86-video-cyrix-1.1.0 )
video_cards_dummy? ( >=x11-drivers/xf86-video-dummy-0.2.0 )
video_cards_fbdev? ( >=x11-drivers/xf86-video-fbdev-0.2.0 )
video_cards_glint? ( >=x11-drivers/xf86-video-glint-1.1.1 )
video_cards_i128? ( >=x11-drivers/xf86-video-i128-1.2.0 )
video_cards_i740? ( >=x11-drivers/xf86-video-i740-1.1.0 )
video_cards_i810? ( >=x11-drivers/xf86-video-i810-1.6.0 )
video_cards_impact? ( >=x11-drivers/xf86-video-impact-0.2.0 )
video_cards_imstt? ( >=x11-drivers/xf86-video-imstt-1.1.0 )
video_cards_mach64? ( >=x11-drivers/xf86-video-ati-6.6.0 )
video_cards_mga? ( >=x11-drivers/xf86-video-mga-1.4.1 )
video_cards_neomagic? ( >=x11-drivers/xf86-video-neomagic-1.1.1 )
video_cards_newport? ( >=x11-drivers/xf86-video-newport-0.2.0 )
video_cards_nsc? ( >=x11-drivers/xf86-video-nsc-2.8.1 )
video_cards_nv? ( >=x11-drivers/xf86-video-nv-1.1.1 )
video_cards_r128? ( >=x11-drivers/xf86-video-ati-6.6.0 )
video_cards_radeon? ( >=x11-drivers/xf86-video-ati-6.6.0 )
video_cards_rendition? ( >=x11-drivers/xf86-video-rendition-4.1.0 )
video_cards_s3? ( >=x11-drivers/xf86-video-s3-0.4.1 )
video_cards_s3virge? ( >=x11-drivers/xf86-video-s3virge-1.9.1 )
video_cards_savage? ( >=x11-drivers/xf86-video-savage-2.1.1 )
video_cards_siliconmotion? ( >=x11-drivers/xf86-video-siliconmotion-1.4.1 )
video_cards_sis? ( >=x11-drivers/xf86-video-sis-0.9.1 )
video_cards_sisusb? ( >=x11-drivers/xf86-video-sisusb-0.8.1 )
video_cards_sunbw2? ( >=x11-drivers/xf86-video-sunbw2-1.1.0 )
video_cards_suncg14? ( >=x11-drivers/xf86-video-suncg14-1.1.0 )
video_cards_suncg3? ( >=x11-drivers/xf86-video-suncg3-1.1.0 )
video_cards_suncg6? ( >=x11-drivers/xf86-video-suncg6-1.1.0 )
video_cards_sunffb? ( >=x11-drivers/xf86-video-sunffb-1.1.0 )
video_cards_sunleo? ( >=x11-drivers/xf86-video-sunleo-1.1.0 )
video_cards_suntcx? ( >=x11-drivers/xf86-video-suntcx-1.1.0 )
video_cards_tdfx? ( >=x11-drivers/xf86-video-tdfx-1.2.1 )
video_cards_tga? ( >=x11-drivers/xf86-video-tga-1.1.0 )
video_cards_trident? ( >=x11-drivers/xf86-video-trident-1.2.1 )
video_cards_tseng? ( >=x11-drivers/xf86-video-tseng-1.1.0 )
video_cards_v4l? ( >=x11-drivers/xf86-video-v4l-0.1.1 )
video_cards_vermilion? ( >=x11-drivers/xf86-video-vermilion-1.0.0 )
video_cards_vesa? ( >=x11-drivers/xf86-video-vesa-1.1.0 )
video_cards_vga? ( >=x11-drivers/xf86-video-vga-4.1.0 )
video_cards_via? ( >=x11-drivers/xf86-video-via-0.2.1 )
video_cards_vmware? ( >=x11-drivers/xf86-video-vmware-10.13.0 )
video_cards_voodoo? ( >=x11-drivers/xf86-video-voodoo-1.1.0 )
video_cards_xgi? ( >=x11-drivers/xf86-video-xgi-1.5.0 )
video_cards_tdfx? ( 3dfx? ( >=media-libs/glide-v3-3.10 ) )
video_cards_fglrx? ( >=x11-drivers/ati-drivers-8.433 )
video_cards_nvidia? ( >=x11-drivers/nvidia-drivers-71.86.01 )
)"
LICENSE="${LICENSE} MIT"
PATCHES="
${FILESDIR}/1.4-ia64.patch
${FILESDIR}/1.3.0.0-use-proc-instead-of-sys.patch
${FILESDIR}/1.4-fpic-libxf86config.patch
${FILESDIR}/1.4-document-new-font-catalogs.patch
${FILESDIR}/1.4-fix-dmx-build.patch
${FILESDIR}/1.4-fix-dmx-link.patch
${FILESDIR}/1.4-fix-xephyr-link.patch
${FILESDIR}/1.4-fix-xprint-build.patch
${FILESDIR}/1.4-fix-xprint-link.patch
${FILESDIR}/1.4-fix-kdrive-automake.patch
${FILESDIR}/1.4-dont-hang-openoffice.patch
${FILESDIR}/${PV}-clean-generated-files.patch
${FILESDIR}/1.4-0001-Fix-for-CVE-2007-5760-XFree86-Misc-extension-out-o.patch
${FILESDIR}/1.4-0002-Fix-for-CVE-2007-6428-TOG-cup-extension-memory-cor.patch
${FILESDIR}/1.4-0003-Fix-for-CVE-2007-6427-Xinput-extension-memory-corr.patch
${FILESDIR}/1.4-0004-Fix-for-CVE-2007-6429-MIT-SHM-and-EVI-extensions-i.patch
${FILESDIR}/1.4-0005-Fix-for-CVE-2008-0006-PCF-Font-parser-buffer-overf.patch
${FILESDIR}/1.4-0006-Fix-for-CVE-2007-5958-File-existence-disclosure.patch
${FILESDIR}/1.4-0007-CVE-2007-6429-Don-t-spuriously-reject-8bpp-shm-pix.patch
${FILESDIR}/1.4-0008-CVE-2007-6429-Always-test-for-size-offset-wrapping.patch
${FILESDIR}/1.4-0009-Don-t-break-grab-and-focus-state-for-a-window-when-r.patch
"
pkg_setup() {
use minimal || ensure_a_server_is_building
# SDL only available in kdrive build
if use kdrive && use sdl; then
conf_opts="${conf_opts} --enable-xsdl"
else
conf_opts="${conf_opts} --disable-xsdl"
fi
# Only Xorg and Xgl support this, and we won't build Xgl
# until it merges to trunk
if use xorg; then
conf_opts="${conf_opts} --with-mesa-source=${WORKDIR}/${MESA_P}"
fi
# localstatedir is used for the log location; we need to override the default
# from ebuild.sh
# sysconfdir is used for the xorg.conf location; same applies
# --enable-install-setuid needed because sparcs default off
CONFIGURE_OPTIONS="
$(use_enable ipv6)
$(use_enable dmx)
$(use_enable kdrive)
$(use_enable !minimal xvfb)
$(use_enable !minimal xnest)
$(use_enable !minimal install-libxf86config)
$(use_enable dri)
$(use_enable xorg)
$(use_enable xprint)
$(use_enable nptl glx-tls)
$(use_enable !minimal xorgcfg)
$(use_enable hal config-dbus)
$(use_enable hal config-hal)
--sysconfdir=/etc/X11
--localstatedir=/var
--enable-install-setuid
--with-fontdir=/usr/share/fonts
--with-xkb-output=/var/lib/xkb
${conf_opts}"
local diemsg="You must build xorg-server and mesa with the same nptl USE setting."
if built_with_use media-libs/mesa nptl; then
use nptl || die "${diemsg}"
else
use nptl && die "${diemsg}"
fi
# (#121394) Causes window corruption
filter-flags -fweb
# Nothing else provides new enough glxtokens.h
ewarn "Forcing on xorg-x11 for new enough glxtokens.h..."
OLD_IMPLEM="$(eselect opengl show)"
eselect opengl set --impl-headers ${OPENGL_DIR}
}
src_unpack() {
x-modular_specs_check
x-modular_dri_check
x-modular_unpack_source
x-modular_patch_source
# Reverse use-composite-for-unequal-depths.patch due to slowness with composite
EPATCH_OPTS="-R" epatch "${FILESDIR}/use-composite-for-unequal-depths.patch"
# Clean up for ${PV}-clean-generated-files.patch
pushd hw/xprint >/dev/null
rm -f *-wrapper.c || die
popd >/dev/null
# Set up kdrive servers to build
if use kdrive; then
kdrive_setup
fi
# Make sure eautoreconf gets run if we need the autoconf/make
# changes.
if [[ ${SNAPSHOT} != "yes" ]]; then
if use kdrive || use dmx || use xprint; then
SNAPSHOT="yes"
fi
fi
if use hal; then
sed -i \
-e "s:^\(dbusconfigdir = \).*\(dbus-1.*\):\1/etc/\2:g" \
"${S}"/config/Makefile.am \
|| die "failed to fix DBUS config directory"
SNAPSHOT="yes"
fi
x-modular_reconf_source
#do not install xprint's Xsession.d files, we'll do it later
if use xprint; then
sed -e "s:install-data-am\: install-dist_xpcDATA:install-data-am\::g" \
-i "${S}"/hw/xprint/etc/Xsession.d/Makefile.in \
|| die "sed of Xsession.d makefile failed"
fi
}
src_install() {
x-modular_src_install
dynamic_libgl_install
server_based_install
# Install video mode files for system-config-display
insinto /usr/share/xorg
doins hw/xfree86/common/{extra,vesa}modes \
|| die "couldn't install extra modes"
# Bug #151421 - this file is not built with USE="minimal"
# Bug #151670 - this file is also not build if USE="-xorg"
if ! use minimal && use xorg; then
# Install xorg.conf.example
insinto /etc/X11
doins hw/xfree86/xorg.conf.example \
|| die "couldn't install xorg.conf.example"
fi
}
pkg_postinst() {
switch_opengl_implem
# Bug #135544
ewarn "Users of reduced blanking now need:"
ewarn " Option \"ReducedBlanking\""
ewarn "In the relevant Monitor section(s)."
ewarn "Make sure your reduced blanking modelines are safe!"
echo
ewarn "You must rebuild all drivers if upgrading from xorg-server 1.3"
ewarn "or earlier, because the ABI changed. If you cannot start X because"
ewarn "of module version mismatch errors, this is your problem."
echo
ewarn "You can generate a list of all installed packages in the x11-drivers"
ewarn "category using this command:"
ewarn "emerge portage-utils; qlist -I -C x11-drivers/"
ebeep 5
epause 10
}
pkg_postrm() {
# Get rid of module dir to ensure opengl-update works properly
if ! has_version x11-base/xorg-server; then
if [[ -e ${ROOT}/usr/$(get_libdir)/xorg/modules ]]; then
rm -rf "${ROOT}"/usr/$(get_libdir)/xorg/modules
fi
fi
}
kdrive_setup() {
local card real_card disable_card kdrive_fbdev kdrive_vesa
einfo "Removing unused kdrive drivers ..."
# Some kdrive servers require fbdev and vesa
kdrive_fbdev="radeon neomagic sis siliconmotion"
# Some kdrive servers require just vesa
kdrive_vesa="chips mach64 mga nv glint r128 via"
for card in ${IUSE_VIDEO_CARDS}; do
real_card=${card#video_cards_}
# Differences between VIDEO_CARDS name and kdrive server name
real_card=${real_card/glint/pm2}
real_card=${real_card/radeon/ati}
real_card=${real_card/%nv/nvidia}
real_card=${real_card/siliconmotion/smi}
real_card=${real_card/%sis/sis300}
disable_card=0
# Check whether it's a valid kdrive server before we waste time
# on the rest of this
if ! grep -q -o "\b${real_card}\b" "${S}"/hw/kdrive/Makefile.am; then
continue
fi
if ! use ${card}; then
if use x86; then
# Some kdrive servers require fbdev and vesa
for i in ${kdrive_fbdev}; do
if use video_cards_${i}; then
if [[ ${real_card} = fbdev ]] \
|| [[ ${real_card} = vesa ]]; then
continue 2 # Don't disable
fi
fi
done
# Some kdrive servers require just vesa
for i in ${kdrive_vesa}; do
if use video_cards_${i}; then
if [[ ${real_card} = vesa ]]; then
continue 2 # Don't disable
fi
fi
done
fi
disable_card=1
# Bug #150052
# fbdev is the only VIDEO_CARDS setting that works on non-x86
elif ! use x86 \
&& [[ ${real_card} != fbdev ]]; then
ewarn " $real_card does not work on your architecture; disabling."
disable_card=1
fi
if [[ $disable_card = 1 ]]; then
ebegin " ${real_card}"
sed -i \
-e "s:\b${real_card}\b::g" \
"${S}"/hw/kdrive/Makefile.am \
|| die "sed of ${real_card} failed"
eend
fi
done
}
dynamic_libgl_install() {
# next section is to setup the dynamic libGL stuff
ebegin "Moving GL files for dynamic switching"
dodir /usr/$(get_libdir)/opengl/${OPENGL_DIR}/extensions
local x=""
for x in "${D}"/usr/$(get_libdir)/xorg/modules/extensions/libglx*; do
if [ -f ${x} -o -L ${x} ]; then
mv -f ${x} "${D}"/usr/$(get_libdir)/opengl/${OPENGL_DIR}/extensions
fi
done
eend 0
}
server_based_install() {
use xprint && xprint_src_install
if ! use xorg; then
rm "${D}"/usr/share/man/man1/Xserver.1x \
"${D}"/usr/$(get_libdir)/xserver/SecurityPolicy \
"${D}"/usr/$(get_libdir)/pkgconfig/xorg-server.pc \
"${D}"/usr/share/man/man1/Xserver.1x
fi
}
switch_opengl_implem() {
# Switch to the xorg implementation.
# Use new opengl-update that will not reset user selected
# OpenGL interface ...
echo
# eselect opengl set --use-old ${OPENGL_DIR}
eselect opengl set ${OLD_IMPLEM}
}
xprint_src_install() {
# RH-style init script, we provide a wrapper
exeinto /usr/$(get_libdir)/misc
doexe "${S}"/hw/xprint/etc/init.d/xprint
# Install the wrapper
newinitd "${FILESDIR}"/xprint.init xprint
# Install profile scripts
insinto /etc/profile.d
doins "${S}"/hw/xprint/etc/profile.d/xprint*
exeinto /etc/X11/xinit/xinitrc.d
doexe "${S}"/hw/xprint/etc/Xsession.d/92xprint-xpserverlist
# Patch profile scripts
sed -e "s:/etc/init.*get_xpserverlist:/usr/$(get_libdir)/misc/xprint \
get_xpserverlist:g" -i "${D}"/etc/profile.d/xprint* \
"${D}"/etc/X11/xinit/xinitrc.d/92xprint-xpserverlist
# Move profile scripts, we can't touch /etc/profile.d/ in Gentoo
dodoc "${D}"/etc/profile.d/xprint*
rm -f "${D}"/etc/profile.d/xprint*
}
ensure_a_server_is_building() {
for server in ${IUSE_SERVERS}; do
use ${server} && return;
done
eerror "You need to specify at least one server to build."
eerror "Valid servers are: ${IUSE_SERVERS}."
die "No servers were specified to build."
}
|
_________________ "We must all hang together, or assuredly we shall all hang separately."
-Ben Franklin |
|
| Back to top |
|
 |
|