Project

General

Profile

Actions

Bug #9516

closed

Mate/Marco is compiled without Xinerama support

Added by Matthew Trower over 5 years ago. Updated over 5 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
-
Target version:
-
Start date:
2018-05-01
Due date:
% Done:

0%

Estimated time:
Difficulty:
Medium
Tags:
needs-triage

Description

Marco is currently being compiled without Xinerama support. This support is required for proper placement / maximization of windows on joined multihead displays (most multi-monitor configurations, even those using the modern XRandR protocol). Without it, windows tend to appear on-screen spanning multiple monitors, and maximize across the entire workspace (all available monitors).

Upon investigation, autoconf seems to be confused.

marco-1.18.1:

        prefix:                   /usr
        source code location:     /usr/src/oi-userland/components/desktop/mate/marco/marco-1.18.1
        compiler:                 /usr/gcc/6/bin/gcc

        XFree86 Xinerama:         no
        Solaris Xinerama:         no
        Startup notification:     yes
        Compositing manager:      yes
        Session management:       yes
        Shape extension:          yes
        Resize-and-rotate:        yes
        Xsync:                    yes
        Render:                   yes
        Xcursor:                  yes

Manually hacking around to force the appropriate configuration variables, linker settings, etc results in a successful build. The tooling is all there, autoconf just doesn't turn it on. It's getting hung up on xinerama.h ...

configure:16246: checking for X11/extensions/xinerama.h
configure:16246: /usr/gcc/6/bin/gcc -c -m64 -O3  -D__EXTENSIONS__ -std=gnu99 -Wall -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wcast-align -Wsign-compare   conftest.c >&5
In file included from conftest.c:47:0:
/usr/include/X11/extensions/xinerama.h:42:47: error: unknown type name 'XineramaInfo'
 Bool XDgaGetXineramaInfo(Display *, int, XID, XineramaInfo *);

It's poking around in old Solaris (Xsun?) xinerama.h during the XFree86 Xinerama detection (which should use Xinerama.h). I think it might be failing to keep the two implementations straight.

Marco does seem to have code support for the old Solaris Xinerama implementation, but it doesn't seem to compile correctly. I don't see the point in putting effort into it when XFree86 Xinerama works just fine (aside from this auto-configuration problem).

Actions #1

Updated by Michal Nowak over 5 years ago

Thanks for the report, you seems to be right, MATE marco is missing Xinerama support. I think `configure` gets confused. Here's my take on the issue: https://github.com/OpenIndiana/oi-userland/pull/4163

Actions #3

Updated by Alexander Pyhalov over 5 years ago

  • Assignee set to Michal Nowak
Actions

Also available in: Atom PDF