Opened 11 years ago

Closed 5 years ago

#38238 closed defect (fixed)

tktable: build fails on Mountain Lion, error: incomplete definition of type 'struct _XDisplay'

Reported by: lpsinger (Leo Singer) Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 2.1.3
Keywords: Cc: chrstphrchvz (Christopher Chavez), MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Port: tktable

Description

tktable fails to build on Mountain Lion with the following error message:

See attached build log.

Attachments (1)

main.log (54.4 KB) - added by lpsinger (Leo Singer) 11 years ago.

Download all attachments as: .zip

Change History (13)

Changed 11 years ago by lpsinger (Leo Singer)

Attachment: main.log added

comment:1 Changed 11 years ago by lpsinger (Leo Singer)

Oops, sorry. I forgot to paste the error message. Here it is:

./generic/tkTable.c:3809:5: error: incomplete definition of type 'struct _XDisplay'
    XSync(tablePtr->display, False);
    ^     ~~~~~~~~~~~~~~~~~
./generic/tkTable.h:75:39: note: expanded from macro 'XSync'
#       define XSync(display, bool) {display->request++;}
                                            ^
/opt/local/include/X11/Xlib.h:263:8: note: forward declaration of 'struct _XDisplay'
struct _XDisplay;               /* Forward declare before use for C++ */
       ^

comment:2 Changed 11 years ago by lpsinger (Leo Singer)

Owner: changed from macports-tickets@… to markd@…

comment:3 Changed 11 years ago by cooljeanius (Eric Gallager)

What does port provides /opt/local/include/X11/Xlib.h return for you? What's the status of the port returned?

comment:4 Changed 11 years ago by lpsinger (Leo Singer)

$ port provides /opt/local/include/X11/Xlib.h
/opt/local/include/X11/Xlib.h is provided by: xorg-libX11

comment:5 Changed 11 years ago by rct@…

I fixed this problem by building the tk package with +x11.

comment:6 Changed 11 years ago by lpsinger (Leo Singer)

Could we have a require_active_variants added to tktable?

comment:7 Changed 10 years ago by mf2k (Frank Schima)

Owner: changed from markd@… to macports-tickets@…

markd has retired. See #44782.

comment:8 Changed 5 years ago by chrstphrchvz (Christopher Chavez)

Cc: chrstphrchvz added

comment:9 Changed 5 years ago by chrstphrchvz (Christopher Chavez)

See #56807: It would be ideal if this could be used with both tk +quartz and +x11, as has been possible with a few other Tk extensions.

comment:10 Changed 5 years ago by chrstphrchvz (Christopher Chavez)

tktable seems to build with tk +quartz 8.6.8 and 8.6.9 on 10.14 Mojave, but I wonder if I have extra port(s) present that happen to let it build. With trace mode, the build fails because it doesn't find Xatom.h:

In file included from ./generic/tkTableTag.c:14:
./generic/tkTable.h:25:11: fatal error: 'X11/Xatom.h' file not found
# include <X11/Xatom.h>
          ^~~~~~~~~~~~~
In file included from ./generic/tkTableWin.c:15:
./generic/tkTable.h:25:11: fatal error: 'X11/Xatom.h' file not found
# include <X11/Xatom.h>
          ^~~~~~~~~~~~~
In file included from ./generic/tkTable.c:25:
./generic/tkTable.h:25:11: fatal error: 'X11/Xatom.h' file not found
# include <X11/Xatom.h>
          ^~~~~~~~~~~~~
In file included from ./generic/tkTableEdit.c:14:
./generic/tkTable.h:25:11: fatal error: 'X11/Xatom.h' file not found
# include <X11/Xatom.h>
          ^~~~~~~~~~~~~
…
Warning: The following existing file was hidden from the build system by trace mode:
  /opt/local/include/X11/Xatom.h

Tktable appears usable on tk +quartz, but I'm inclined to think this is an erroneous/unsafe result.

comment:11 Changed 5 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Cc: MarcusCalhoun-Lopez added

comment:12 Changed 5 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Resolution: fixed
Status: newclosed

In 694f35aff81d3c4d24cc743471e4c5a7b29c58ad/macports-ports (master):

tktable: don't use X11 headers with tk +quartz

Fixes #38238

Note: See TracTickets for help on using tickets.