[Bug 999628] New: BOINC GUI Manager wrapping script specifies incorrect directory
http://bugzilla.opensuse.org/show_bug.cgi?id=999628 Bug ID: 999628 Summary: BOINC GUI Manager wrapping script specifies incorrect directory Classification: openSUSE Product: openSUSE Distribution Version: Leap 42.1 Hardware: All OS: openSUSE 42.1 Status: NEW Severity: Minor Priority: P5 - None Component: Other Assignee: bnc-team-screening@forge.provo.novell.com Reporter: avsco@mail.ru QA Contact: qa-bugs@suse.de Found By: --- Blocker: --- Currently, `boinc-manager` package (as of version 7.2.42-3.2) provides these program files: • /usr/bin/boinc-gui — GUI Manager binary, called `boincmgr` in upstream; • /usr/bin/boinc-manager — wrapper script for running `boinc-gui`; • /usr/bin/boincmanager — symlink to `boinc-manager`; • /usr/bin/boincmgr — symlink to `boinc-manager`. All what `boinc-manager` script does is to ensure that authentication secret file ~/gui_rpc_auth.cfg exists (defaulting to be a symlink to /var/lib/boinc/gui_rpc_auth.cfg) and then just launches `boinc-gui -e /usr/bin`. Theoretically, option `-e` has the following meaning:
-e, --clientdir=<str> Directory containing the BOINC Client executable -d, --datadir=<str> BOINC data directory
However, it appears to specify the location of manager's data/root directory, including gui_rpc_auth.cfg, as seen in source code (clientgui/BOINCGUIApp.cpp):
if (!parser.Found(wxT("clientdir"), &m_strBOINCMGRRootDirectory)) { m_strBOINCMGRRootDirectory = ::wxGetCwd(); } if (!parser.Found(wxT("datadir"), &m_strBOINCMGRDataDirectory)) { m_strBOINCMGRDataDirectory = m_strBOINCMGRRootDirectory; }
There is probably some `chdir()` involved, because gui_rpc_auth.cfg is then read from current directory (clientgui/MainDocument.cpp):
int CNetworkConnection::GetLocalPassword(wxString& strPassword){ // ..... FILE* f = fopen("gui_rpc_auth.cfg", "r"); // ..... }
Consequently, with `-e /usr/bin` specified, gui_rpc_auth.cfg is searched in /usr/bin, which results in inability to communicate with `boinc-client`, as observed in issues like #788297. When run from user's home directory without arguments, `boinc-gui` successfully connects to backend, as well as when run with `-e $HOME` or `-d $HOME`. Proposed solution is therefore to alter (openSUSE-provided?) /usr/bin/boinc-manager script by changing
exec boinc-gui -e /usr/bin
to either
exec boinc-gui -e $HOME
or
exec boinc-gui -d $HOME
or
cd ~ exec boinc-gui
It would also be nice to update /usr/share/doc/packages/boinc-client/README.SUSE by removing questionable advices for working around this issue by disabling authentication or entering password each time. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=999628
Andreas Stieger
http://bugzilla.opensuse.org/show_bug.cgi?id=999628
http://bugzilla.opensuse.org/show_bug.cgi?id=999628#c1
Christian Wittmer
http://bugzilla.opensuse.org/show_bug.cgi?id=999628
http://bugzilla.opensuse.org/show_bug.cgi?id=999628#c2
Christian Wittmer
participants (1)
-
bugzilla_noreply@novell.com