From e34ea80d5210d0bd4a611993c643bf19cf29e9fa Mon Sep 17 00:00:00 2001 From: Jennifer Herting Date: Tue, 7 Apr 2020 12:21:49 -0400 Subject: New package: boinc-client (#15770) * [boinc-client] Created template * [boinc-client] removed non-client version * [boinc-client] added description and homepage * [boinc-client] specifically specify this as a client release * [boinc-client] added dependencies * [boinc-client] added variant: manager * [boinc-client] added graphics variant * [boinc-client] added dependency version specificity * [boinc-client] systemd install path fix * [boinc-client] added sqlite dependency * [boinc-client] flake8 * [boinc-client] cleaned up left over fixme --- .../repos/builtin/packages/boinc-client/package.py | 63 ++++++++++++++++++++++ .../packages/boinc-client/systemd-fix.patch | 13 +++++ 2 files changed, 76 insertions(+) create mode 100644 var/spack/repos/builtin/packages/boinc-client/package.py create mode 100644 var/spack/repos/builtin/packages/boinc-client/systemd-fix.patch diff --git a/var/spack/repos/builtin/packages/boinc-client/package.py b/var/spack/repos/builtin/packages/boinc-client/package.py new file mode 100644 index 0000000000..80e6416e4b --- /dev/null +++ b/var/spack/repos/builtin/packages/boinc-client/package.py @@ -0,0 +1,63 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class BoincClient(AutotoolsPackage): + """BOINC is a platform for high-throughput computing on a + large scale (thousands or millions of computers). It can be + used for volunteer computing (using consumer devices) or + grid computing (using organizational resources). It + supports virtualized, parallel, and GPU-based + applications.""" + + homepage = "https://boinc.berkeley.edu/" + url = "https://github.com/BOINC/boinc/archive/client_release/7.16/7.16.5.tar.gz" + + version('7.16.5', sha256='33db60991b253e717c6124cce4750ae7729eaab4e54ec718b9e37f87012d668a') + + variant('manager', default=False, description='Builds the client manager') + variant('graphics', default=False, description='Graphic apps support') + + # Dependency documentation: + # https://boinc.berkeley.edu/trac/wiki/SoftwarePrereqsUnix + conflicts('%gcc@:3.0.4') + + depends_on('autoconf@2.58:', type='build') + depends_on('automake@1.8:', type='build') + depends_on('libtool@1.5:', type='build') + depends_on('m4@1.4:', type='build') + + depends_on('curl@7.17.1:') + depends_on('openssl@0.9.8:') + + depends_on('freeglut@3:', when='+graphics') + depends_on('libsm', when='+graphics') + depends_on('libice', when='+graphics') + depends_on('libxmu', when='+graphics') + depends_on('libxi', when='+graphics') + depends_on('libx11', when='+graphics') + depends_on('libjpeg', when='+graphics') + + depends_on('wxwidgets@3.0.0:', when='+manager') + depends_on('libnotify', when='+manager') + depends_on('sqlite@3.1:', when='+manager') + + patch('systemd-fix.patch') + + def configure_args(self): + spec = self.spec + args = [] + + args.append("--disable-server") + args.append("--enable-client") + + if '+manager' in spec: + args.append('--enable-manager') + else: + args.append('--disable-manager') + + return args diff --git a/var/spack/repos/builtin/packages/boinc-client/systemd-fix.patch b/var/spack/repos/builtin/packages/boinc-client/systemd-fix.patch new file mode 100644 index 0000000000..499aa56826 --- /dev/null +++ b/var/spack/repos/builtin/packages/boinc-client/systemd-fix.patch @@ -0,0 +1,13 @@ +--- a/client/scripts/Makefile.am 2020-02-23 22:22:11.000000000 -0500 ++++ b/client/scripts/Makefile.am 2020-03-27 18:40:28.881826512 -0400 +@@ -7,8 +7,8 @@ + $(INSTALL) -b boinc-client $(DESTDIR)$(sysconfdir)/init.d/boinc-client ; \ + fi + if [ -d /usr/lib/systemd/system ] ; then \ +- $(INSTALL) -d $(DESTDIR)/usr/lib/systemd/system/ ; \ +- $(INSTALL_DATA) boinc-client.service $(DESTDIR)/usr/lib/systemd/system/boinc-client.service ; \ ++ $(INSTALL) -d $(DESTDIR)$(prefix)/lib/systemd/system/ ; \ ++ $(INSTALL_DATA) boinc-client.service $(DESTDIR)$(prefix)/lib/systemd/system/boinc-client.service ; \ + elif [ -d /lib/systemd/system ] ; then \ + $(INSTALL) -d $(DESTDIR)/lib/systemd/system/ ; \ + $(INSTALL_DATA) boinc-client.service $(DESTDIR)/lib/systemd/system/boinc-client.service ; \ -- cgit v1.2.3-70-g09d2