Replaces the previous Travis-CI job for OSX. The MacOS runner on Github Actions has a newer perl version installed which forced me to increase version numbers of dependencies in order to get it working.
Deployment is not finished yet.
This needs commit ebc507e082 as a prerequisite.
Co-authored-by: Vitalii Koshura <lestat.de.lionkur@gmail.com>
This consolidates the different CI builds on one platform that provides support for the major three operating systems we build on (Linux, Windows, MacOS). The nomenclature and syntax is a bit different but it has the same functionality.
This commit introduces the Linux and Windows based workflows. All the build artifacts can now be downloaded from [bintray](https://bintray.com/beta/#/boinc/boinc-ci?tab=files). The CI workflows run for every pull request, every merge into the master branch and every Sunday around 12:00 (GMT).
Every first Sunday in a month a cleanup Script is run to delete old artifacts from Bintray. Artifacts from closed/merged pull requests get deleted then. Artifacts from weekly builds and merges into the master branch older than 6 months get deleted too.
Co-authored-by: Vitalii Koshura <lestat.de.lionkur@gmail.com>
Code-sign command-line executables, add info.plist file with identifier to boinccmd, package as DMG instead of Zip so Apple will "notarize" it.
Set minimum MacOS version to OS 10.9 to eliminate most warnings from Xcode version 12.2.
Fix a problem running BOINC screensaver on MacOS 11 Big Sur when built with Xcode version earlier than Xcode 11.
At one point Linux versions were like "3.13.0-103-generic"
but now they can be various things like
"CentOS Linux 7 (Core) [3.10.0-862.14.4.el7.x86_64|libc 2.17 (GNU libc)]"
Parse both of these.
- lib: if fail to read GUI RPC passwd file,
say whether the problem is "not found" or "can't read",
and refer to web page.
- allow LINUX_DEFAULT_DATA_DIR to be specified in via -D
(not sure when this would be desirable)
- fix compile warnings
BOINC fails to link with LLD because of /usr/lib in the link command
line.
LLD does not continue to search for the correct library, once it
finds one that doesn't fit. This is made by design and will not
change.
See also : https://bugs.gentoo.org/732024
The reason for LLD failing is, that its build system puts -L/usr and
-L/usr/lib into the command line options. While these are not
neccessary at all, they cause LLD to find 32bit libraries on 64bit
systems first. As these 32bit libraries can not be used, LLD errors
out.
This commit removes the superfluous hard-coded injection of -L/usr
and -L/usr/lib into the command line.
The resulting build system has been tested with
* Clang + LLD
* gcc + ld.bfd
* gcc + ld.gold
Bug: #4095
Signed-off-by: Sven Eden <sven.eden@prydeworx.com>