Open mdatre opened 4 years ago
I have also failed to get BOINC to compile on 20.04 however, in my case the errors on running make all seem to be to do with WXwebview.
/usr/bin/ld: boincmgr-NoticeListCtrl.o: in function `wxString::ImplStr(char const*, wxMBConv const&)':
/usr/include/wx-3.0/wx/string.h:477: undefined reference to `wxWebViewNameStr'
/usr/bin/ld: /usr/include/wx-3.0/wx/string.h:477: undefined reference to `wxWebViewBackendDefault'
/usr/bin/ld: /usr/include/wx-3.0/wx/string.h:477: undefined reference to `wxWebViewDefaultURLStr'
/usr/bin/ld: boincmgr-NoticeListCtrl.o: in function `CNoticeListCtrl::Create(wxWindow*)':
/home/dave/Downloads/boinc-master/clientgui/NoticeListCtrl.cpp:90: undefined reference to `wxWebView::New(wxWindow*, int, wxString const&, wxPoint const&, wxSize const&, wxString const&, long, wxString const&)'
/usr/bin/ld: boincmgr-NoticeListCtrl.o: in function `wxEventTableEntry::wxEventTableEntry(int const&, int, int, wxEventFunctor*, wxObject*)':
/usr/include/wx-3.0/wx/event.h:3201: undefined reference to `wxEVT_WEBVIEW_NAVIGATING'
/usr/bin/ld: /usr/include/wx-3.0/wx/event.h:3201: undefined reference to `wxEVT_WEBVIEW_ERROR'
/usr/bin/ld: /usr/include/wx-3.0/wx/event.h:3201: undefined reference to `wxEVT_WEBVIEW_ERROR'
I think this can be fixed by installing libwxgtk3.0-gtk3-dev libnotify-dev. I installed following APT packages when I got missing files errors. Yet it kept failing at several places due to changed paths of other *.h files in compilation.
$ sudo apt install libwxgtk3.0-gtk3-dev libnotify-dev libsqlite3-dev
Apt tells me I already have the newest versions.
dave@swarm:~/Downloads/boinc-master$ sudo apt install libwxgtk3.0-gtk3-dev libnotify-dev libsqlite3-dev
[sudo] password for dave:
Reading package lists... Done
Building dependency tree
Reading state information... Done
libnotify-dev is already the newest version (0.7.9-1ubuntu2).
libwxgtk3.0-gtk3-dev is already the newest version (3.0.4+dfsg-15build1).
libsqlite3-dev is already the newest version (3.31.1-4ubuntu0.2).
This Docker container builds the client without any issue. I haven't built the Manager though.
I believe it's because of this missing package: https://stackoverflow.com/questions/62301866/how-do-i-install-libwebkitgtk-on-ubuntu-20-04-lts
I believe it's because of this missing package: https://stackoverflow.com/questions/62301866/how-do-i-install-libwebkitgtk-on-ubuntu-20-04-lts
@AenBleidd Do you mean for this error /usr/bin/ld: boincmgr-taskbarex.o: undefined reference to symbol 'gtk_status_icon_set_visible' /usr/bin/ld: /lib/x86_64-linux-gnu/libgtk-3.so.0: error adding symbols: DSO missing from command line
Or the one posted by @Dave-catcher ?
@mdatre, your issue looks like is caused by this: https://developer.gnome.org/gtk3/stable/GtkStatusIcon.html#gtk-status-icon-set-visible
@mdatre, your issue looks like is caused by this: https://developer.gnome.org/gtk3/stable/GtkStatusIcon.html#gtk-status-icon-set-visible
Ok, so that means the Boinc client code needs an update right? Since it is referring to a deprecated API, and thus complaining on newer OS versions.
Having run
echo -e "# For Tizen studio\ndeb http://cz.archive.ubuntu.com/ubuntu bionic main universe" | sudo tee /etc/apt/sources.list.d/tizen-bionic-libwebkitgtk.list
sudo apt update
sudo apt-get install libwebkitgtk-1.0-0
I am still getting the same errors.
Don't know if it makes any difference, I am using xubuntu 20.04 as opposed to Ubuntu.
I should also mention that if I use --disable-manager at the ./configure stage so I am just compiling the client it completes.
Actually I got all these errors on Ubuntu 18.04 as well. I switched my m/c from 20.04 to 18.04 with a BRAND new fresh install, did a "make clean" on my repo, and yet got the exact same errors in *.h file paths and then a different error
/usr/bin/ld: boincmgr-taskbarex.o: undefined reference to symbol 'gtk_status_icon_set_tooltip_text' //usr/lib/x86_64-linux-gnu/libgtk-3.so.0: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status Makefile:687: recipe for target 'boincmgr' failed make[2]: [boincmgr] Error 1 make[2]: Leaving directory '/work/boinc_src/clientgui' Makefile:649: recipe for target 'all-recursive' failed make[1]: [all-recursive] Error 1 make[1]: Leaving directory '/work/boinc_src' Makefile:553: recipe for target 'all' failed make: *** [all] Error 2
@mdatre, do you really need to build GUI (BOINC Manager)? I understand that in any case it should be fixed in some way but maybe you can proceed without BOINC Manager for now?
@AenBleidd No Boinc GUI is not a must for now, but I was just trying to compile and run everything as a local user than installing things in root space (using Ubuntu APT repo).
It is the behaviour of the manager in recent iterations not giving the same user control as in the past that has in part led me to start rolling my own which I did successfully with 19.10.
I also see it as a learning exercise.
BOINC's own Manager code still contains the full menus. The pared-down menus are prepared externally by Linux repo managers, who think they are only compiling for corporate users who don't have full authority to sysadmin their own machines. We need to ensure that BOINC's own build tools and/or downloadable binaries work for all.
BOINC's own Manager code still contains the full menus. The pared-down menus are prepared externally by Linux repo managers, who think they are only compiling for corporate users who don't have full authority to sysadmin their own machines. We need to ensure that BOINC's own build tools and/or downloadable binaries work for all.
Which is why I like to roll my own.
This is how I have fixed it for now to be able to successfully compile and run client as well as gui on Ubuntu 18.04.
$ sudo apt install libwxgtk3.0-gtk3-dev libnotify-dev libsqlite3-dev libgtk2.0-dev libgtk-3-dev
$ sudo apt install libwxgtk-webview3.0-gtk3-dev freeglut3-dev libxss-dev
Run configure script with additional LIBS and CXXFLAGS options
$ ./configure CXXFLAGS="-I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/gtk-3.0 -I/usr/include/atk-1.0" LIBS="-lgtk-3 -lgtk-x11-2.0"
$ make
However while running the compiled Boinc client binary, I keep getting MAGIC-COOKIE error on the command prompt.
$ cd /path/to/client-files/
$ /work/boinc_src/client/boinc --gui_rpc_port 30000
08-Sep-2020 09:56:57 Initialization completed
Invalid MIT-MAGIC-COOKIE-1 keyInvalid MIT-MAGIC-COOKIE-1 keyInvalid MIT-MAGIC-COOKIE-1 keyInvalid MIT-MAGIC-COOKIE-1 keyInvalid MIT-MAGIC-COOKIE-1 keyInvalid MIT-MAGIC-COOKIE-1 keyInvalid MIT-MAGIC-COOKIE-1 keyInvalid MIT-MAGIC-COOKIE-1 keyInvalid MIT-MAGIC-COOKIE-1 key
I figure this has something to do with the DISPLAY or XAUTH environments, but unable to fix this error, although the boinc client and manager run fine.
Thank you.
$ sudo apt install libwxgtk-webview3.0-gtk3-dev freeglut3-dev libxss-dev
Enabled me to succeed. I didn't need the extra config flags.
Thank you.
$ sudo apt install libwxgtk-webview3.0-gtk3-dev freeglut3-dev libxss-dev
Enabled me to succeed. I didn't need the extra config flags.
Cool. Did you also get that Invalid magic cookie error? If yes, were you able to fix it? If yes, pls let me know what got it fixed.
UPDATE: One needs to ensure that the directory from which boinc client command is run is owned by boinc user.
$ sudo chown boinc:boinc /path/to/client-files
$ /work/boinc_src/client/boinc --gui_rpc_port 30000
Then the magic cookie error disappears, but if I cleared the folder then client was not able to restart, it always failed saying "Another instance of BOINC is running", which from code means it is unable to get a lock on the lockfile.
Any pointers to fix this appreciated.
On https://salsa.debian.org/pkg-boinc-team/boinc/-/blob/master/debian/rules you can inspect how the Debian+Ubuntu packages are doing it.
Following my comment in https://github.com/BOINC/boinc/issues/2271 and seeing reply from AenBleidd, I did: apt install libwxgtk-webview3.0-gtk3-dev freeglut3-dev libxss-dev It helped me too.
So it seems there's a check is lacking in _autosetup or configure.
Describe the bug Trying to compile entire Boinc code on Ubuntu 20.04 fails with multiple errors. Code compilation fails at several places due to different paths to *.h files such as gtk.h, gdk.h, hb.h, hb-blob.h, hb-common.h etc
If one fixes these by going to /usr/include and creating symlinks to actual file paths, the code then fails by giving following error
/usr/bin/ld: boincmgr-taskbarex.o: undefined reference to symbol 'gtk_status_icon_set_visible' /usr/bin/ld: /lib/x86_64-linux-gnu/libgtk-3.so.0: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status make[2]: [Makefile:759: boincmgr] Error 1 make[2]: Leaving directory '/work/boinc_src/clientgui' make[1]: [Makefile:649: all-recursive] Error 1 make[1]: Leaving directory '/work/boinc_src' make: *** [Makefile:553: all] Error 2
Steps To Reproduce
Expected behavior Entire code should compile without problems.
System Information