[desktop-discuss] Eye Candy for Solaris's Desktop - Compiz on Solaris x86
Brian Cameron
Brian.Cameron at Sun.COM
Tue Mar 6 07:07:38 PST 2007
Alan: Note ARC issues and issues I notice with upgrading to the
Nevada build 60 Xorg.
Erwann:
> I got compiz (the compositing window manager) to run very nicely on
> Solaris x86 (build 55)
>
> The full details on how to compile it can be found on my Sun blog hcoere :
> http://blogs.sun.com/erwann/entry/compiz_on_solaris_x86
Great stuff! I just got this built and it looks great! I have found a
number of issues with compiz, upgrading my Xserver, and with GTK+.
Problems with building compiz
=============================
1) You missing-stuff tarball for adding missing Xserver pieces does not
include the Xcomposite pc file or header files. I was able to grab
the header files by grabbing the Xcomposite.h file from here:
http://xorg.freedesktop.org/releases/X11R7.2/src/lib/libXcomposite-X11R7.2-0.3.1.tar.bz2
And you also need to grab the composite.h and compositeproto.h files
from here (this took me forever to find):
http://xorg.freedesktop.org/releases/individual/proto/compositeproto-0.3.tar.bz2
I attach these header files for those of you who are trying to build
compiz and don't want to have to dig around for them.
Once you put them in /usr/X11/include/X11/extensions, then you can
build compiz, though since I didn't have the pc file I had to hack
LDPATH to include "-lXcomposite" when making compiz as a hacky
workaround.
2) I found I also needed to move aside the old libXcomposite* and
libXrender* symlinks and make them point to the new libraries in
your missing-stuff tarball or I wasn't able to compile compbiz.
Specifically, I mean the libXcomposite.so, libXrender.so, and
libXrender.so.1 symlinks.
3) compizsettings does not compile with Sun Studio (although compiz does
compile with it okay). You might want to mention that you need to
make sure CC=gcc to build these.
4) On my system I didn't have an xorg.conf file so I had to run
/usr/X11/bin/Xorg -configure, then take the generated xorg.conf-new
file in the system root (/) directory and move it to /etc/xorg.conf
and then add the sections you mention. Your steps weren't really
clear (at first I just tried to add an xorg.conf file with the text
you have on the webpage - and this made Xorg crash). Might be nice
if you explained this.
5) You blog links to the "SFE Repository" and says that the spec files
are there. At first I thought that you meant that there were spec
files for compiz and compizsettings. I think we should put these
modules into spec-files-extra and the patch so it applies when you
build via the CBE. I think the blog steps could be a bit more clear
that you only need to build git if you want to access the code from
the repository.
At first I grabbed the SFEgit spec file and started building it
since you mention "git" in this section. SFEgit has a lot of
dependencies and after building them I found compile problems trying
to build SFEgit.
After wasting a good bit of time on this, I finally gave up and
just built with your compiz and compizsettings tarballs.
6) Usability problems (for me anyway)
- When I run thunderbird and click on the "Compose" button or
respond to an email, the window that pops up is black and has
nothing in it - the window that comes up is useless. It's not
really possible for me to run compiz all the time if I can't
write emails when running with it.
- When I right click I get a neat zoom feature, but I can't seem
to get any right click menus, like the ones I often use when
using Thunderbird. How do you get to the right-click menu?
- The animation when you move windows around makes me feel
seasink. Which configuration option turns this off?
- If you wanted compiz to run all the time without having to
"gtk-window-decorator --replace & compiz --replace gconf &"
all the time, how would you do so? Perhaps your blog should
say?
Problems upgrading my Xserver
=============================
I am using Nevada build 55 and I didn't want to reinstall my system so I
just went and ran the Xserver upgrade-X script to upgrade it to the
build 60 version. I found that the Xserver crashed when I first tried
to start it. It had weird error messages complaining that it was trying
to load files from /usr/X11/lib/modules/drivers/amd64,
/usr/X11/lib/modules/amd64, and /usr/X11/lib/modules/input/amd64 and
that these files were the wrong ELF type. This is weird since I run
in 32-bit mode, so I don't know why it is trying to access the 64 bit
libraries.
I hacked around this problem by creating a subdirectory called "bad"
in the three above directories and then copying all the libraries
from one directory above int the amd64 directory. For example, I
copied the files from /usr/X11/lib/modules/*so into the
/usr/X11/lib/modules/amd64 directory. This seems to make the Xserver
run okay.
It sort of seems the Xorg server in build 60 is really broken on x86
if it is trying to load the 64-bit libraries when running in 32 bit
mode. Alan?
I didn't have to upgrade my Nvidia driver, so I guess the driver in
Nevada build 55 is new enough.
Problems with GTK+
==================
After getting my Xserver working, I found all GTK based programs
crashed, so I started dtlogin and used a CDE session until I figured
out why. Seems that GTK+ in previous builds was linking against
XCursor which seems to be gone in Xorg 7.2.
I noticed in GTK+ that XCursor is an optional dependency so I rebuilt
the SUNWgnome-base-libs package and this prolem went away. Not sure
what, if anything, breaks if we don't include this. I seem to remember
that some a11y features depended on this extension (e.g. the ability to
see the cursor in the magnifier if I'm remembering correctly).
However, I think that this means that our stable GNOME 2.16 builds
will not work after the Xserver 7.2 upgrade. I unfortunately notice
that we don't have an ARC contract with the Xserver team to use the
Xcursor interfaces. So I think that this means that either we need
to respin the 2.16 stable build for Nevada 60+ using the Xorg 7.2
libraries and start building our vermillion-devel builds the same way.
Either that or the Xserver team could include the XCursor module and
we could fix the problem this way (and get an ARC contract).
This made me review the GTK+ configure.in file and I notice that
there are a few X interfaces that we don't have contracts for.
Alan, could you advise whether we need contracts for these?
Solaris Xinerama
Xsync
Shaped window extension (XShapeCombineMask)
XSyncQueryExtension
Xshm
Xcursor
It also uses these interfaces which we do have contracts for:
Xinput
RANDR
Xfixes
Xft
XKB
I hope this helps people who might be trying to get compiz working!
Brian
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: Xcomposite.h
Url: http://oss-beta1.opensolaris.org/pipermail/desktop-discuss/attachments/20070306/1d53d20a/attachment.h
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: composite.h
Url: http://oss-beta1.opensolaris.org/pipermail/desktop-discuss/attachments/20070306/1d53d20a/attachment-0001.h
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: compositeproto.h
Url: http://oss-beta1.opensolaris.org/pipermail/desktop-discuss/attachments/20070306/1d53d20a/attachment-0002.h
More information about the desktop-discuss
mailing list