After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 560990 - Cannot compile without compositor
Cannot compile without compositor
Status: RESOLVED FIXED
Product: metacity
Classification: Other
Component: general
2.25.x
Other All
: Normal blocker
: ---
Assigned To: Metacity maintainers list
Metacity maintainers list
: 561961 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2008-11-16 02:14 UTC by Alister
Modified: 2008-11-24 06:25 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
XComposite vs --disable-xcomposite cleanup (1.15 KB, patch)
2008-11-23 17:49 UTC, Daniel Macks
none Details | Review
XComposite vs --disable-xcomposite cleanup (1.08 KB, patch)
2008-11-23 18:55 UTC, Daniel Macks
committed Details | Review
Conditoinalize the compositor code that requires extensions (1.79 KB, patch)
2008-11-24 06:25 UTC, Daniel Macks
none Details | Review

Description Alister 2008-11-16 02:14:21 UTC
Please describe the problem:
Metacity 2.25.5
Make fails.
It looks to me like maybe the --disable-compositor and/or --disable-render switches don't work?

Steps to reproduce:
Make fails when compiling with:
./configure --prefix=/usr --disable-gconf --disable-verbose-mode --disable-sm --disable-startup-notification --disable-compositor --disable-schemas-install --disable-scrollkeeper  --disable-render

Actual results:
...
libpng12 -I/usr/include/pixman-1 -I/usr/X11R7/include   -I ./include -DMETACITY_LIBEXECDIR=\"/usr/libexec\" -DHOST_ALIAS=\"\" -DMETACITY_LOCALEDIR=\"/usr/share/locale\" -DMETACITY_PKGDATADIR=\"/usr/share/metacity\" -DMETACITY_DATADIR=\"/usr/share\" -DG_LOG_DOMAIN=\"metacity\" -DSN_API_NOT_YET_FROZEN=1    -g -O2 -Wall -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wcast-align -Wsign-compare -MT compositor-xrender.o -MD -MP -MF .deps/compositor-xrender.Tpo -c -o compositor-xrender.o `test -f 'compositor/compositor-xrender.c' || echo './'`compositor/compositor-xrender.c
compositor/compositor-xrender.c:46:39: error: X11/extensions/Xcomposite.h: No such file or directory
compositor/compositor-xrender.c:47:36: error: X11/extensions/Xdamage.h: No such file or directory
compositor/compositor-xrender.c:198: error: expected specifier-qualifier-list before 'Damage'
compositor/compositor-xrender.c: In function 'win_extents':
compositor/compositor-xrender.c:958: error: 'MetaCompWindow' has no member named 'needs_shadow'
compositor/compositor-xrender.c:962: error: 'MetaCompWindow' has no member named 'shadow_dx'
compositor/compositor-xrender.c:962: error: 'MetaCompWindow' has no member named 'shadow_type'
compositor/compositor-xrender.c:963: error: 'MetaCompWindow' has no member named 'shadow_dy'
compositor/compositor-xrender.c:963: error: 'MetaCompWindow' has no member named 'shadow_type'
compositor/compositor-xrender.c:965: error: 'MetaCompWindow' has no member named 'shadow'
compositor/compositor-xrender.c:968: error: 'MetaCompWindow' has no member named 'opacity'
compositor/compositor-xrender.c:969: error: 'MetaCompWindow' has no member named 'opacity'
compositor/compositor-xrender.c:971: error: 'MetaCompWindow' has no member named 'shadow'
compositor/compositor-xrender.c:971: error: 'MetaCompWindow' has no member named 'shadow_type'
compositor/compositor-xrender.c:972: error: 'MetaCompWindow' has no member named 'alpha_pict'
compositor/compositor-xrender.c:975: error: 'MetaCompWindow' has no member named 'shadow_width'
compositor/compositor-xrender.c:975: error: 'MetaCompWindow' has no member named 'shadow_height'
compositor/compositor-xrender.c:978: error: 'MetaCompWindow' has no member named 'shadow_dx'
compositor/compositor-xrender.c:979: error: 'MetaCompWindow' has no member named 'shadow_dy'
compositor/compositor-xrender.c:980: error: 'MetaCompWindow' has no member named 'shadow_width'
compositor/compositor-xrender.c:981: error: 'MetaCompWindow' has no member named 'shadow_height'
compositor/compositor-xrender.c: In function 'paint_dock_shadows':
compositor/compositor-xrender.c:1103: error: 'MetaCompWindow' has no member named 'shadow'
compositor/compositor-xrender.c:1107: error: 'MetaCompWindow' has no member named 'border_clip'
compositor/compositor-xrender.c:1112: error: 'MetaCompWindow' has no member named 'shadow'
compositor/compositor-xrender.c:1114: error: 'MetaCompWindow' has no member named 'shadow_dx'
compositor/compositor-xrender.c:1115: error: 'MetaCompWindow' has no member named 'shadow_dy'
compositor/compositor-xrender.c:1116: error: 'MetaCompWindow' has no member named 'shadow_width'
compositor/compositor-xrender.c:1116: error: 'MetaCompWindow' has no member named 'shadow_height'
compositor/compositor-xrender.c: In function 'paint_windows':
compositor/compositor-xrender.c:1190: error: 'MetaCompWindow' has no member named 'picture'
compositor/compositor-xrender.c:1191: error: 'MetaCompWindow' has no member named 'picture'
compositor/compositor-xrender.c:1197: error: 'MetaCompWindow' has no member named 'border_size'
compositor/compositor-xrender.c:1199: error: 'MetaCompWindow' has no member named 'border_size'
compositor/compositor-xrender.c:1200: error: 'MetaCompWindow' has no member named 'border_size'
compositor/compositor-xrender.c:1212: error: 'MetaCompWindow' has no member named 'border_size'
compositor/compositor-xrender.c:1213: error: 'MetaCompWindow' has no member named 'border_size'
compositor/compositor-xrender.c:1215: error: 'MetaCompWindow' has no member named 'extents'
compositor/compositor-xrender.c:1216: error: 'MetaCompWindow' has no member named 'extents'
compositor/compositor-xrender.c:1241: error: 'MetaCompWindow' has no member named 'picture'
compositor/compositor-xrender.c:1252: error: 'MetaCompWindow' has no member named 'border_size'
compositor/compositor-xrender.c:1255: error: 'MetaCompWindow' has no member named 'border_clip'
compositor/compositor-xrender.c:1257: error: 'MetaCompWindow' has no member named 'border_clip'
compositor/compositor-xrender.c:1258: error: 'MetaCompWindow' has no member named 'border_clip'
compositor/compositor-xrender.c:1277: error: 'MetaCompWindow' has no member named 'picture'
compositor/compositor-xrender.c:1279: error: 'MetaCompWindow' has no member named 'shadow'
compositor/compositor-xrender.c:1284: error: 'MetaCompWindow' has no member named 'border_clip'
compositor/compositor-xrender.c:1285: error: 'MetaCompWindow' has no member named 'border_size'
compositor/compositor-xrender.c:1290: error: 'MetaCompWindow' has no member named 'shadow'
compositor/compositor-xrender.c:1292: error: 'MetaCompWindow' has no member named 'shadow_dx'
compositor/compositor-xrender.c:1293: error: 'MetaCompWindow' has no member named 'shadow_dy'
compositor/compositor-xrender.c:1294: error: 'MetaCompWindow' has no member named 'shadow_width'
compositor/compositor-xrender.c:1294: error: 'MetaCompWindow' has no member named 'shadow_height'
compositor/compositor-xrender.c:1299: error: 'MetaCompWindow' has no member named 'opacity'
compositor/compositor-xrender.c:1299: error: 'MetaCompWindow' has no member named 'alpha_pict'
compositor/compositor-xrender.c:1301: error: 'MetaCompWindow' has no member named 'alpha_pict'
compositor/compositor-xrender.c:1302: error: 'MetaCompWindow' has no member named 'opacity'
compositor/compositor-xrender.c:1306: error: 'MetaCompWindow' has no member named 'border_clip'
compositor/compositor-xrender.c:1306: error: 'MetaCompWindow' has no member named 'border_clip'
compositor/compositor-xrender.c:1307: error: 'MetaCompWindow' has no member named 'border_size'
compositor/compositor-xrender.c:1309: error: 'MetaCompWindow' has no member named 'border_clip'
compositor/compositor-xrender.c:1330: error: 'MetaCompWindow' has no member named 'picture'
compositor/compositor-xrender.c:1331: error: 'MetaCompWindow' has no member named 'alpha_pict'
compositor/compositor-xrender.c:1336: error: 'MetaCompWindow' has no member named 'border_clip'
compositor/compositor-xrender.c:1338: error: 'MetaCompWindow' has no member named 'border_clip'
compositor/compositor-xrender.c:1339: error: 'MetaCompWindow' has no member named 'border_clip'
compositor/compositor-xrender.c: In function 'repair_win':
compositor/compositor-xrender.c:1514: warning: implicit declaration of function 'XDamageSubtract'
compositor/compositor-xrender.c:1514: warning: nested extern declaration of 'XDamageSubtract'
compositor/compositor-xrender.c:1514: error: 'MetaCompWindow' has no member named 'damage'
compositor/compositor-xrender.c:1519: error: 'MetaCompWindow' has no member named 'damage'
compositor/compositor-xrender.c: In function 'free_win':
compositor/compositor-xrender.c:1558: error: 'MetaCompWindow' has no member named 'picture'
compositor/compositor-xrender.c:1560: error: 'MetaCompWindow' has no member named 'picture'
compositor/compositor-xrender.c:1561: error: 'MetaCompWindow' has no member named 'picture'
compositor/compositor-xrender.c:1564: error: 'MetaCompWindow' has no member named 'shadow'
compositor/compositor-xrender.c:1566: error: 'MetaCompWindow' has no member named 'shadow'
compositor/compositor-xrender.c:1567: error: 'MetaCompWindow' has no member named 'shadow'
compositor/compositor-xrender.c:1570: error: 'MetaCompWindow' has no member named 'alpha_pict'
compositor/compositor-xrender.c:1572: error: 'MetaCompWindow' has no member named 'alpha_pict'
compositor/compositor-xrender.c:1573: error: 'MetaCompWindow' has no member named 'alpha_pict'
compositor/compositor-xrender.c:1576: error: 'MetaCompWindow' has no member named 'shadow_pict'
compositor/compositor-xrender.c:1578: error: 'MetaCompWindow' has no member named 'shadow_pict'
compositor/compositor-xrender.c:1579: error: 'MetaCompWindow' has no member named 'shadow_pict'
compositor/compositor-xrender.c:1582: error: 'MetaCompWindow' has no member named 'border_size'
compositor/compositor-xrender.c:1584: error: 'MetaCompWindow' has no member named 'border_size'
compositor/compositor-xrender.c:1585: error: 'MetaCompWindow' has no member named 'border_size'
compositor/compositor-xrender.c:1588: error: 'MetaCompWindow' has no member named 'border_clip'
compositor/compositor-xrender.c:1590: error: 'MetaCompWindow' has no member named 'border_clip'
compositor/compositor-xrender.c:1591: error: 'MetaCompWindow' has no member named 'border_clip'
compositor/compositor-xrender.c:1594: error: 'MetaCompWindow' has no member named 'extents'
compositor/compositor-xrender.c:1596: error: 'MetaCompWindow' has no member named 'extents'
compositor/compositor-xrender.c:1597: error: 'MetaCompWindow' has no member named 'extents'
compositor/compositor-xrender.c:1602: error: 'MetaCompWindow' has no member named 'damage'
compositor/compositor-xrender.c:1604: warning: implicit declaration of function 'XDamageDestroy'
compositor/compositor-xrender.c:1604: warning: nested extern declaration of 'XDamageDestroy'
compositor/compositor-xrender.c:1604: error: 'MetaCompWindow' has no member named 'damage'
compositor/compositor-xrender.c:1607: error: 'MetaCompWindow' has no member named 'damage'
compositor/compositor-xrender.c: In function 'map_win':
compositor/compositor-xrender.c:1625: warning: unused variable 'xdisplay'
compositor/compositor-xrender.c: In function 'unmap_win':
compositor/compositor-xrender.c:1670: error: 'MetaCompWindow' has no member named 'extents'
compositor/compositor-xrender.c:1672: error: 'MetaCompWindow' has no member named 'extents'
compositor/compositor-xrender.c:1673: error: 'MetaCompWindow' has no member named 'extents'
compositor/compositor-xrender.c:1674: error: 'MetaCompWindow' has no member named 'extents'
compositor/compositor-xrender.c: In function 'determine_mode':
compositor/compositor-xrender.c:1689: error: 'MetaCompWindow' has no member named 'alpha_pict'
compositor/compositor-xrender.c:1691: error: 'MetaCompWindow' has no member named 'alpha_pict'
compositor/compositor-xrender.c:1692: error: 'MetaCompWindow' has no member named 'alpha_pict'
compositor/compositor-xrender.c:1695: error: 'MetaCompWindow' has no member named 'shadow_pict'
compositor/compositor-xrender.c:1697: error: 'MetaCompWindow' has no member named 'shadow_pict'
compositor/compositor-xrender.c:1698: error: 'MetaCompWindow' has no member named 'shadow_pict'
compositor/compositor-xrender.c:1707: error: 'MetaCompWindow' has no member named 'opacity'
compositor/compositor-xrender.c:1712: error: 'MetaCompWindow' has no member named 'extents'
compositor/compositor-xrender.c:1716: error: 'MetaCompWindow' has no member named 'extents'
compositor/compositor-xrender.c: In function 'add_win':
compositor/compositor-xrender.c:1845: error: 'MetaCompWindow' has no member named 'damage'
compositor/compositor-xrender.c:1847: error: 'MetaCompWindow' has no member named 'damage'
compositor/compositor-xrender.c:1847: warning: implicit declaration of function 'XDamageCreate'
compositor/compositor-xrender.c:1847: warning: nested extern declaration of 'XDamageCreate'
compositor/compositor-xrender.c:1847: error: 'XDamageReportNonEmpty' undeclared (first use in this function)
compositor/compositor-xrender.c:1847: error: (Each undeclared identifier is reported only once
compositor/compositor-xrender.c:1847: error: for each function it appears in.)
compositor/compositor-xrender.c:1849: error: 'MetaCompWindow' has no member named 'alpha_pict'
compositor/compositor-xrender.c:1850: error: 'MetaCompWindow' has no member named 'shadow_pict'
compositor/compositor-xrender.c:1851: error: 'MetaCompWindow' has no member named 'border_size'
compositor/compositor-xrender.c:1852: error: 'MetaCompWindow' has no member named 'extents'
compositor/compositor-xrender.c:1853: error: 'MetaCompWindow' has no member named 'shadow'
compositor/compositor-xrender.c:1854: error: 'MetaCompWindow' has no member named 'shadow_dx'
compositor/compositor-xrender.c:1855: error: 'MetaCompWindow' has no member named 'shadow_dy'
compositor/compositor-xrender.c:1856: error: 'MetaCompWindow' has no member named 'shadow_width'
compositor/compositor-xrender.c:1857: error: 'MetaCompWindow' has no member named 'shadow_height'
compositor/compositor-xrender.c:1860: error: 'MetaCompWindow' has no member named 'shadow_type'
compositor/compositor-xrender.c:1862: error: 'MetaCompWindow' has no member named 'shadow_type'
compositor/compositor-xrender.c:1864: error: 'MetaCompWindow' has no member named 'opacity'
compositor/compositor-xrender.c:1866: error: 'MetaCompWindow' has no member named 'border_clip'
compositor/compositor-xrender.c:1869: error: 'MetaCompWindow' has no member named 'needs_shadow'
compositor/compositor-xrender.c:1872: error: 'MetaCompWindow' has no member named 'needs_shadow'
compositor/compositor-xrender.c: In function 'destroy_win':
compositor/compositor-xrender.c:1903: error: 'MetaCompWindow' has no member named 'extents'
compositor/compositor-xrender.c:1905: error: 'MetaCompWindow' has no member named 'extents'
compositor/compositor-xrender.c:1906: error: 'MetaCompWindow' has no member named 'extents'
compositor/compositor-xrender.c:1907: error: 'MetaCompWindow' has no member named 'extents'
compositor/compositor-xrender.c: In function 'resize_win':
compositor/compositor-xrender.c:1992: error: 'MetaCompWindow' has no member named 'extents'
compositor/compositor-xrender.c:1995: error: 'MetaCompWindow' has no member named 'extents'
compositor/compositor-xrender.c:2047: error: 'MetaCompWindow' has no member named 'picture'
compositor/compositor-xrender.c:2049: error: 'MetaCompWindow' has no member named 'picture'
compositor/compositor-xrender.c:2050: error: 'MetaCompWindow' has no member named 'picture'
compositor/compositor-xrender.c:2053: error: 'MetaCompWindow' has no member named 'shadow'
compositor/compositor-xrender.c:2055: error: 'MetaCompWindow' has no member named 'shadow'
compositor/compositor-xrender.c:2056: error: 'MetaCompWindow' has no member named 'shadow'
compositor/compositor-xrender.c:2065: error: 'MetaCompWindow' has no member named 'extents'
compositor/compositor-xrender.c:2066: error: 'MetaCompWindow' has no member named 'extents'
compositor/compositor-xrender.c:2068: error: 'MetaCompWindow' has no member named 'extents'
compositor/compositor-xrender.c:2075: error: 'MetaCompWindow' has no member named 'extents'
compositor/compositor-xrender.c:2080: error: 'MetaCompWindow' has no member named 'extents'
compositor/compositor-xrender.c: In function 'process_configure_notify':
compositor/compositor-xrender.c:2159: error: 'MetaCompWindow' has no member named 'needs_shadow'
compositor/compositor-xrender.c:2160: error: 'MetaCompWindow' has no member named 'extents'
compositor/compositor-xrender.c: In function 'process_property_notify':
compositor/compositor-xrender.c:2255: error: 'MetaCompWindow' has no member named 'opacity'
compositor/compositor-xrender.c:2257: error: 'MetaCompWindow' has no member named 'needs_shadow'
compositor/compositor-xrender.c:2259: error: 'MetaCompWindow' has no member named 'shadow'
compositor/compositor-xrender.c:2261: error: 'MetaCompWindow' has no member named 'shadow'
compositor/compositor-xrender.c:2262: error: 'MetaCompWindow' has no member named 'shadow'
compositor/compositor-xrender.c:2265: error: 'MetaCompWindow' has no member named 'extents'
compositor/compositor-xrender.c:2266: error: 'MetaCompWindow' has no member named 'extents'
compositor/compositor-xrender.c:2267: error: 'MetaCompWindow' has no member named 'extents'
compositor/compositor-xrender.c:2284: error: 'MetaCompWindow' has no member named 'needs_shadow'
compositor/compositor-xrender.c: At top level:
compositor/compositor-xrender.c:2405: error: expected declaration specifiers or '...' before 'XDamageNotifyEvent'
compositor/compositor-xrender.c: In function 'process_damage':
compositor/compositor-xrender.c:2408: error: 'event' undeclared (first use in this function)
compositor/compositor-xrender.c: In function 'show_overlay_window':
compositor/compositor-xrender.c:2482: warning: unused variable 'xdisplay'
compositor/compositor-xrender.c: In function 'get_output_window':
compositor/compositor-xrender.c:2520: warning: unused variable 'xdisplay'
make[4]: *** [compositor-xrender.o] Error 1
make[4]: Leaving directory `/tmp/metacity-2.25.5/src'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/tmp/metacity-2.25.5/src'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/tmp/metacity-2.25.5/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/metacity-2.25.5'
make: *** [all] Error 2



Expected results:


Does this happen every time?


Other information:
Comment 1 Thomas Thurman 2008-11-23 12:18:40 UTC
*** Bug 561961 has been marked as a duplicate of this bug. ***
Comment 2 Daniel Macks 2008-11-23 17:37:30 UTC
Related if not the single/specific cause is a weird configure.in section, starting around line 213 (as of 2.24.0):

>XCOMPOSITE_VERSION=0.2
>AC_MSG_CHECKING([Xcomposite >= $XCOMPOSITE_VERSION])
>if $PKG_CONFIG --atleast-version $XCOMPOSITE_VERSION xcomposite; then
>   have_xcomposite=yes
>else
>   have_xcomposite=no
>fi
>AC_MSG_RESULT($have_xcomposite)
>
>if test x$enable_compositor = xyes; then
>   have_xcomposite=yes
>   echo "CompositeExt support forced on"
>elif test x$enable_compositor = xauto; then
>   echo "Building compositing manager by default now."
>   have_xcomposite=yes
>else
>   have_xcomposite=no
>fi

Seems like the the results of the first check (Xcomposite version) are ignored, always overwritten by the --{en,dis}able-compositor flag. If user --disable-compositor, then the Xcomposite version doesn't (or at least shouldn't!) matter. If the version isn't sufficient, then --enable-compositor (explicit or as default) needs to be an error.
Comment 3 Daniel Macks 2008-11-23 17:49:20 UTC
Created attachment 123274 [details] [review]
XComposite vs --disable-xcomposite cleanup

Fix for Comment #2. The user-visible "echo" msgs are confusing too! What is "CompositeExt" as opposed to "compositing manager"?
Comment 4 Daniel Macks 2008-11-23 18:55:40 UTC
Created attachment 123277 [details] [review]
XComposite vs --disable-xcomposite cleanup

Need to keep XCOMPOSITE_VERSION global/always-defined for use elsewhere.
Comment 5 Thomas Thurman 2008-11-23 20:24:47 UTC
Thanks for the patch-- checked in as r4028.  I agree about the CompositeExt stuff, and have rewritten those too.
Comment 6 Daniel Macks 2008-11-23 22:01:42 UTC
Please reopen...the configure checks are saner so it's easier to see how compositing is getting enabled, but the actual bug that got us here ("disabling" compositor doesn't fully disable use of compositor, so the build fails) is still present as of SVN revision 4031.
Comment 7 Thomas Thurman 2008-11-23 22:02:30 UTC
Fair enough.  Reopened.
Comment 8 Daniel Macks 2008-11-24 06:25:06 UTC
Created attachment 123302 [details] [review]
Conditoinalize the compositor code that requires extensions

Looks like compositor-xrender.c is only used by compositor.c, and only if HAVE_COMPOSITE_EXTENSIONS (as determined by configure.in) is true. Therefore, the whole compositor-xrender.c is irrelevant if H_C_E isn't true. This patch simply uses the same conditional logic as H_C_E to omit c-x.c altogether if it's not going to be used, which is likely to match the build environments where it can't be compiled anyway. Works For Me(tm) on OS X 10.4 with the two --disable- flags per original poster, untested on systems that don't need those flags (i.e., have modern fully-featured x11).