I had a problem running that code on "ash". It looked right to me, no idea whatt could possibly be wrong about it, but since there is no need for that piece of code anyway, it should just go.
* enable coverage reports from gcc and disable optimizations via option to configure
* install googletest library into buildcache
* script to compile and run unit tests using cmake
* first set of unit tests originaly contributed by Keith Uplinger
There are several hardcoded paths and assumptions made in order to get this working on Travis CI. New tooling is using cmake for cross platform builds and as such is not easy to use with an autotools based system.
It's not ideal but better than nothing.
While science apps may use Fortran BOINC itself doesn't use it making
the checks useless.
Removing the checks reduces verbosity of configure a little bit making
its output more accessible.
When building BOINC on MSYS+MinGW the build time environment does have
/proc but the run time environment never has /proc.
BSDs consider /proc to be an optional feature and, as such, /proc may be
present at build time but missing at run time or vice versa.
This makes checking for /proc/self/exe in configure unreliable and the
check is better done at run time. get_real_executable_path() is the only
user of the test result and has already been changed to do the check at
run time.
NO_PER_THREAD_LOCALE has been replaced by HAVE__CONFIGTHREADLOCALE and
HAVE_USELOCALE.
Also remove HAVE_DECL__CONFIGTHREADLOCALE which was used only for
NO_PER_THREAD_LOCALE.
Allows fixing and cleaning up per-thread locale support in Manager and
libboinc.
locale.h and xlocale.h were checked for libboinc_graphics. Move
xlocale.h check to correct place and remove locale.h check. locale.h has
been part of C standard library since C89.
The support for per-thread locales cannot be reliably inferred from the
existence of different headers. Some systems declare uselocale() in
locale.h, others in xlocale.h and xlocale.h is no longer included in GNU
libc. Instead explicitly check for uselocale() and
_configthreadlocale().
Add uselocale() check result to Mac config.h so that the #ifdef mazes
can be simplified.
Also correct quoting in AC_CHECK_FUNCS and AC_CHECK_HEADERS calls.
Both Fedora and Debian have their own systemd units for boinc;
this is based on elements of both so we stop duplicating effort.
This also adds minimal confinement to protect the home directories.
Also added clean to init.d script and made it only install if a
init.d directory already exists.
Closes: #2255
When using --prefix this override tries to install files from client/scripts to /etc instead of ${prefix}/etc. This is against what the user wants and leads to an error message as normally only root can install files to /etc. There is no need to be backwards compatible in this place as installs are usually done via repository packages.
This still uses /etc to determine where the config file should be copied to which is ok because the user most likely wants to use the Client on the machine it was built on.
Note: The startup scripts and config files in client/scripts are outdated and might not work on recent Linux distributions. Newer ones can be found in the Debian/Fedora packages.
This was not working because the manager was not detecting its own executable name and path so it couldn't start a new instance of itself. Windows and Mac use different codepaths so it worked there.
The new library function can be extended for Windows and Mac to avoid code duplication.
Currently, execinfo.h is included in lib/diagnostics.cpp if __GLIBC__ is
defined. However, this does not work when cross-compiling boinc with
uclibc-ng. So, instead, check the presence of execinfo.h in configure.ac
and update lib/diagnostics.cpp accordingly.
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>