LinuxQuestions.org
Help answer threads with 0 replies.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Linux From Scratch
User Name
Password
Linux From Scratch This Forum is for the discussion of LFS.
LFS is a project that provides you with the steps necessary to build your own custom Linux system.

Notices


Reply
  Search this Thread
Old 07-31-2018, 07:19 AM   #1
jr_bob_dobbs
Member
 
Registered: Mar 2009
Distribution: Bedrock, Devuan, Slackware, Linux From Scratch, Void
Posts: 654
Blog Entries: 136

Rep: Reputation: 189Reputation: 189
Beware: compiz is a long-abandoned broken mess


Some time ago I investigated compiz and upon discovering that it required gtk3, despite what I had been told by several people, I abandoned the project.

While looking through the www.x.org website, I discovered that, at some point around 2008, compiz had been absorbed into the xorg project. Oh, wow.

Based on the fact that just about everything I'd compiled from that site compiled easily, I grabbed their version of compiz.

It made it through the configure phase. Nice!

How I ran the confgure:
Code:
export XORG_PREFIX="/usr"
export XORG_CONFIG="--prefix=$XORG_PREFIX --sysconfdir=/etc \
     --localstatedir=/var --disable-static"

./configure $XORG_CONFIG \
  --disable-kde \
  --disable-kde4 \
   --disable-gnome \
   --disable-gnome-keybindings \
  --disable-kconfig
Not having kde nor gnome decided some of the options I used in the above.

So far, this was going better than any previous attempts. Had it required gtk3, the configure would have balked, right?

Naturally there was going to be a problem. I saw that coming. In the past, I could not get compiz to work on Debian, slackware, nor gentoo. Naturally it was going to fail here. This time around, for this version, the problem was in the make phase. Here are the last few lines of the make phase:
Code:
gcc -DHAVE_CONFIG_H -I. -I.. -I/usr/include/libxml2 -I/usr/include/startup-notification-1.0 -I../include -I../include -DPLUGINDIR=\"/usr/lib/compiz\" -DIMAGEDIR=\"/usr/share/compiz\" -DMETADATADIR=\"/usr/share/compiz\"    -g -O2 -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -D_FORTIFY_SOURCE=2 -MT match.o -MD -MP -MF .deps/match.Tpo -c -o match.o match.c
mv -f .deps/match.Tpo .deps/match.Po
gcc -DHAVE_CONFIG_H -I. -I.. -I/usr/include/libxml2 -I/usr/include/startup-notification-1.0 -I../include -I../include -DPLUGINDIR=\"/usr/lib/compiz\" -DIMAGEDIR=\"/usr/share/compiz\" -DMETADATADIR=\"/usr/share/compiz\"    -g -O2 -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -D_FORTIFY_SOURCE=2 -MT metadata.o -MD -MP -MF .deps/metadata.Tpo -c -o metadata.o metadata.c
mv -f .deps/metadata.Tpo .deps/metadata.Po
/bin/sh ../libtool --tag=CC   --mode=link gcc  -g -O2 -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -D_FORTIFY_SOURCE=2 -export-dynamic  -o compiz main.o privates.o object.o core.o texture.o display.o screen.o window.o event.o paint.o option.o plugin.o session.o fragment.o matrix.o cursor.o match.o metadata.o -lX11-xcb -lX11 -lxcb -lXcomposite -lXdamage -lXfixes -lXrandr -lXinerama -lICE -lSM -lxslt -lxml2 -lz -llzma -lm -ldl -lm -lxml2 -lstartup-notification-1 -lGL -lm
mkdir .libs
gcc -g -O2 -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -D_FORTIFY_SOURCE=2 -o compiz main.o privates.o object.o core.o texture.o display.o screen.o window.o event.o paint.o option.o plugin.o session.o fragment.o matrix.o cursor.o match.o metadata.o -Wl,--export-dynamic  -lX11-xcb -lX11 -lxcb -lXcomposite -lXdamage -lXfixes -lXrandr -lXinerama -lICE -lSM -lxslt -lz -llzma -ldl -lxml2 -lstartup-notification-1 -lGL -lm
/usr/bin/ld: window.o: undefined reference to symbol 'XSyncValueAdd'
/usr/lib/libXext.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:385: compiz] Error 1
make[2]: Leaving directory '/home/bob/compile/compiz/build_it/compiz-0.7.8/src'
make[1]: *** [Makefile:447: all-recursive] Error 1
make[1]: Leaving directory '/home/bob/compile/compiz/build_it/compiz-0.7.8'
make: *** [Makefile:350: all] Error 2
Startpage could not find that error message anywhere. I finally gave in and used google. Surprisingly, that yielded zero results.

Has anyone else encountered this problem ... and fixed it?

Thank you.

p.s. BLFS 8.1, 64 bit

Last edited by jr_bob_dobbs; 08-04-2018 at 11:39 AM. Reason: title change
 
Old 07-31-2018, 10:11 AM   #2
Keith Hedger
Senior Member
 
Registered: Jun 2010
Location: Wiltshire, UK
Distribution: Void, Linux From Scratch, Slackware64
Posts: 3,157

Rep: Reputation: 857Reputation: 857Reputation: 857Reputation: 857Reputation: 857Reputation: 857Reputation: 857
Have come across this problem a few times when packages have been transitioning, you just have to manually add the lib to link in the configure flags ( LDFLAGS or possibly CPPFLAGS ) eg:
Code:
LDFLAGS="-lXext" ./configure ...
The problem is caused by the linker not automaticly adding need libs to the link stage like it used to.

Last edited by Keith Hedger; 07-31-2018 at 10:12 AM. Reason: wish i culd tpye
 
Old 07-31-2018, 09:43 PM   #3
jr_bob_dobbs
Member
 
Registered: Mar 2009
Distribution: Bedrock, Devuan, Slackware, Linux From Scratch, Void
Posts: 654

Original Poster
Blog Entries: 136

Rep: Reputation: 189Reputation: 189
The LDFLAGS parameter, as you had it, worked fine. Compiz compiled all the way without further problems. Thank you very much.

Now I realize that -l is used to link in libraries. For example, some of my programs require a "-lm" to link in some floating point math subroutines. but how did you know that "Xext" was what was needed?

Now that Compiz is installed, it doesn't seem to do anything. The usual technique of putting "compiz" in the .xinitrc, instead of my regular window manager, doesn't seem to work. All I get is a pointer. Clicking does nothing.

And the package didn't put in a man page. My suspicions are raised. Maybe this is the wrong compiz. I remember there is one version adds nothing but a compositing manager. Or maybe xorg has got the core and not the plugins? This is a 0.7 version and a quick check on slackbuilds.org has them using a 0.8 version that is more than one package.
 
Old 08-01-2018, 04:33 AM   #4
Keith Hedger
Senior Member
 
Registered: Jun 2010
Location: Wiltshire, UK
Distribution: Void, Linux From Scratch, Slackware64
Posts: 3,157

Rep: Reputation: 857Reputation: 857Reputation: 857Reputation: 857Reputation: 857Reputation: 857Reputation: 857
Code:
...
/usr/lib/libXext.so.6: error adding symbols: DSO missing from command line
...
Is the clue and the '-l' flag should be suplied with the name of the li rary minus 'lib' and the '.so.*' hence '-lXext'.
 
1 members found this post helpful.
Old 08-01-2018, 07:01 PM   #5
jr_bob_dobbs
Member
 
Registered: Mar 2009
Distribution: Bedrock, Devuan, Slackware, Linux From Scratch, Void
Posts: 654

Original Poster
Blog Entries: 136

Rep: Reputation: 189Reputation: 189
Quote:
Originally Posted by Keith Hedger View Post
Code:
...
/usr/lib/libXext.so.6: error adding symbols: DSO missing from command line
...
Is the clue and the '-l' flag should be suplied with the name of the li rary minus 'lib' and the '.so.*' hence '-lXext'.
Nice! Thank you very much.
 
Old 08-01-2018, 07:19 PM   #6
jr_bob_dobbs
Member
 
Registered: Mar 2009
Distribution: Bedrock, Devuan, Slackware, Linux From Scratch, Void
Posts: 654

Original Poster
Blog Entries: 136

Rep: Reputation: 189Reputation: 189
Did some trial and error with compiz. While in my regular window manager (blackbox if it makes a difference) I ran compiz from a terminal. The error message said:
Code:
compiz (core) - Error: Another window manager is already running on screen: 0
compiz (core) - Fatal: No manageable screens found on display :1.0
Good in that this version of the compiz package *is* supposed to be a window manager, not a simple compositing plugin.

typing "compiz --help" resulted in this:
Code:
Usage: compiz [--display DISPLAY] [--bg-image PNG] [--refresh-rate RATE]
       [--fast-filter] [--indirect-rendering] [--loose-binding] [--replace]
       [--sm-disable] [--sm-client-id ID] [--no-detection]
       [--ignore-desktop-hints] [--only-current-screen] [--use-root-window]
       [--version] [--help] [PLUGIN]...
After exiting back to the console, I then modified .xinitrc to call compiz. This time I had two ideas. One, guess the names of some plugins and pass that as parameters. Two, put a redirection in the compiz call in .xinitrc
Code:
compiz cube wobbly emerald
the result as that, upon "startx" I once again had a mouse pointer whose clicking did nothing, and I had to do some keyboard mashing to eventually, as before, get xorg to crash back to the console. The logged output of the compiz was:
Code:
compiz (cube) - Warn: Failed to load slide: freedesktop
compiz (core) - Error: Couldn't load plugin 'emerald'
I ran it several times, replacing "emerald" with "gtk" and "gtk2" and was informed those were not plugins either.

The positive: no error message are created for my use of the "wobbly" and "cube" parameters.

The negative: compiz has no menu, no response to keys nor mouse clicks.


Tried once more, this time having the .xinitrc run an xterm right before the compiz:
Code:
( xterm ) &
compiz cube wobbly emerald > ~/fuck.txt 2>&1
The term ran and did accept keyboard input. It had no titlebar and could not be moved nor resized.

Theory one: compiz needs to be told to call a plugin to manage window decorations.

Theory two: the xorg version of compiz is horribly broken and I am wasting my time.

Related to theory two, the x.org version is 0.7, the slackbuild.org version is 0.8, and there is apparently a 0.9.

p.s. I've actually been failing to get compiz to run across multiple distros over ten years. I begin to wonder if every compiz screenshot I see is actually a photoshop.

Last edited by jr_bob_dobbs; 08-01-2018 at 07:23 PM.
 
Old 08-03-2018, 07:31 PM   #7
jr_bob_dobbs
Member
 
Registered: Mar 2009
Distribution: Bedrock, Devuan, Slackware, Linux From Scratch, Void
Posts: 654

Original Poster
Blog Entries: 136

Rep: Reputation: 189Reputation: 189
uninstalled compiz. Doing everything through a package manager makes that clean and easy.

Grabbed the 0.8 version of compiz, using slackbuilds.org for links and for order of compilation. Installed the parts that will compile without gtk3. Ran it. Exact same behavior as before.

My reading indicated that a program called ccsm should be run on first run of compiz. I guess to specify settings. Maybe that would help. Since I'd set up my .xinitrc to start a term up as it starts compiz, I at least had a command line to enter commands.
Code:
Traceback (most recent call last):
  File "/usr/bin/ccsm", line 23, in <module>
    import gi
ImportError: No module named gi
Nope.
 
Old 08-04-2018, 11:34 AM   #8
jr_bob_dobbs
Member
 
Registered: Mar 2009
Distribution: Bedrock, Devuan, Slackware, Linux From Scratch, Void
Posts: 654

Original Poster
Blog Entries: 136

Rep: Reputation: 189Reputation: 189
The official compiz site says that when one has windows with no borders, one can kludge by alt-dragging. Nope.

The official compiz site says there there is a forum where one can help. The last post on said forum was 2011.

There are, depending on how one wants to apply various criteria, up to five "current" versions of compiz.

The Emerald window decorator plugin for compiz, despite itself predating gtk3 (and also gtk2?) by several years, requires gtk3.

*gold clap*.

At this point, this thread serves no purpose, aside from warning others to not even bother with compiz, and can be locked, or at least left to drift to obscurity.

Last edited by jr_bob_dobbs; 08-04-2018 at 11:36 AM.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
LXer: Top 6 Eyecandy Compiz Animations and Effects that Comes with Compiz Experimental Plugins LXer Syndicated Linux News 0 12-16-2010 05:10 PM
Compiz no longer working; xorg.conf blank after attempting to plug in Second Monitor maevik Linux - Software 1 09-28-2010 10:16 PM
emerald+compiz 0.9.0.=segmentation fault.Compiz alone works with no borders. blurred Slackware 1 08-28-2010 11:07 AM
Skydome background doesn't work with compiz/gnome unless I use the compiz fusion icon The_Trooper Linux - Software 1 07-21-2008 01:08 PM
mdv 2007 compiz cube not displaying and pictures not memorised by gset-compiz Emmanuel_uk Mandriva 0 10-10-2006 02:33 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Linux From Scratch

All times are GMT -5. The time now is 10:29 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration