Search code examples
ubuntu-12.04gnuplotwxwidgets

Gnuplot is not creating a plot window


I spent hours on fixing this and now I am posting this here. So I am using Ubuntu 12.04 and installed gnuplot 4.6.6 from source code (I find the same problem with gnuplot 4.4 also). Initially my issue was similar to this one. I then followed the answer and installed all the packages from source. But after getting nice wxt terminal after I started gnuplot, I am seeing the following message on screen:

./src/gtk/dcclient.cpp(2043): assert "m_window" failed in DoGetSize(): GetSize() doesn't work without window [in thread b47ffb40]
Call stack:
[00] wxOnAssert(char const*, int, char const*, char const*, wchar_t const*)
[01] wxClientDCImpl::DoGetSize(int*, int*) const
[02] wxBufferedDC::UnMask()                  
[03] ~wxDC                                      /usr/local/include/wx-3.0/wx/dc.h:789
[04] wxAppConsoleBase::HandleEvent(wxEvtHandler*, void (wxEvtHandler::*)(wxEvent&), wxEvent&) const
[05] wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const
[06] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
[07] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)
[08] wxEvtHandler::TryHereOnly(wxEvent&)     
[09] wxEvtHandler::ProcessEventLocally(wxEvent&)
[10] wxEvtHandler::ProcessEvent(wxEvent&)    
[11] wxEvtHandler::SafelyProcessEvent(wxEvent&)
[12] wxWindowBase::HandleWindowEvent(wxEvent&) const
[13] wxWindow::GTKProcessEvent(wxEvent&) const
[14] 0xb730e122
[15] g_cclosure_marshal_VOID__BOXED          
[16] g_closure_invoke                        
[17] 0xb6d8f0d9
[18] g_signal_emit_valist                    
[19] g_signal_emit                           
[20] gtk_widget_size_allocate                
[xcb] Unknown request in queue while dequeuing
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting, sorry about that.
gnuplot: ../../src/xcb_io.c:179: dequeue_pending_request: Assertion `!xcb_xlib_unknown_req_in_deq' failed.
Aborted (core dumped)

After some Google search I found this one. This says the following:

The fix is trivial.  Change the line "USE_WX=  3.0" back to "USE_WX= 2.8"
(reverting one of the changes made in the most recent commit).  Doing so
restores gnuplot to proper function with wx.

So I reinstalled wxWidgets with version 2.8.12. However I have no idea about 'how to change the line' as said above. Where is this line?? How to change it? Will that work? Please help. Thanks


Solution

  • Indeed, gnuplot currently doesn't work with wxWidgets 3.0, see the bug report #1401 changes needed in order to support wxWidgets 3.0.

    The post you linked refers to FreeBSD and to the Makefile they have. If you build from scratch it should work to run ./configure again which should then pick wxwidgets 2.8.