@@ -201,6 +201,7 @@ F: package/apr/
F: package/apr-util/
F: package/bcg729/
F: package/bluez-tools/
+F: package/boinc/
F: package/clamav/
F: package/dovecot/
F: package/dovecot-pigeonhole/
@@ -585,6 +586,7 @@ F: package/alljoyn/
F: package/alljoyn-base/
F: package/alljoyn-tcl/
F: package/alljoyn-tcl-base/
+F: package/boinc/
F: package/gtksourceview/
F: package/gssdp/
F: package/gupnp/
@@ -1611,6 +1611,7 @@ menu "Networking applications"
source "package/bluez5_utils/Config.in"
source "package/bmon/Config.in"
source "package/boa/Config.in"
+ source "package/boinc/Config.in"
source "package/bridge-utils/Config.in"
source "package/bwm-ng/Config.in"
source "package/c-icap/Config.in"
new file mode 100644
@@ -0,0 +1,22 @@
+config BR2_PACKAGE_BOINC
+ bool "boinc"
+ depends on BR2_USE_MMU # fork()
+ depends on !BR2_STATIC_LIBS # dlfcn.h
+ depends on BR2_TOOLCHAIN_HAS_THREADS
+ depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_LIBCURL
+ select BR2_PACKAGE_OPENSSL
+ help
+ Open-source software for volunteer computing and grid
+ computing.
+
+ Use the idle time on your computer to cure diseases, study
+ global warming, discover pulsars, and do many other types of
+ scientific research.
+
+ https://boinc.berkeley.edu
+
+comment "boinc needs a toolchain w/ dynamic library, C++, threads"
+ depends on BR2_USE_MMU
+ depends on BR2_STATIC_LIBS || !BR2_INSTALL_LIBSTDCPP \
+ || !BR2_TOOLCHAIN_HAS_THREADS
new file mode 100644
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+NAME=boinc_client
+PIDFILE=/var/run/$NAME.pid
+DAEMON=/usr/bin/$NAME
+
+start() {
+ printf "Starting $NAME: "
+ start-stop-daemon -S -q -m -b -p $PIDFILE --exec $DAEMON
+ [ $? = 0 ] && echo "OK" || echo "FAIL"
+}
+stop() {
+ printf "Stopping $NAME: "
+ start-stop-daemon -K -q -p $PIDFILE
+ [ $? = 0 ] && echo "OK" || echo "FAIL"
+}
+restart() {
+ stop
+ start
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ restart|reload)
+ restart
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart|reload}"
+ exit 1
+esac
+
+exit $?
new file mode 100644
@@ -0,0 +1,10 @@
+[Unit]
+Description=BOINC client
+After=network.target
+
+[Service]
+ExecStart=/usr/bin/boinc_client
+Restart=always
+
+[Install]
+WantedBy=multi-user.target
new file mode 100644
@@ -0,0 +1,2 @@
+# Locally computed:
+sha256 e3d5b190ec6cdc3512005469fab90203af110cd9a7880654c5d0b4d4e55f3c17 boinc-7.8.3.tar.gz
new file mode 100644
@@ -0,0 +1,56 @@
+################################################################################
+#
+# boinc
+#
+################################################################################
+
+BOINC_VERSION_MAJOR = 7.8
+BOINC_VERSION = $(BOINC_VERSION_MAJOR).3
+# client_release can be used to build the Client and Manager but not the Server
+# part. The Server currently has no versioning (see
+# https://github.com/BOINC/boinc/pull/1798).
+BOINC_SITE = \
+ $(call github,BOINC,boinc,client_release/$(BOINC_VERSION_MAJOR)/$(BOINC_VERSION))
+BOINC_LICENSE = LGPL-3.0+
+BOINC_LICENSE_FILES = COPYING COPYING.LESSER
+BOINC_DEPENDENCIES = host-pkgconf libcurl openssl
+BOINC_AUTORECONF = YES
+BOINC_CONF_OPTS = \
+ --disable-apps \
+ --disable-boinczip \
+ --disable-manager \
+ --disable-server \
+ --enable-client \
+ --enable-dynamic-client-linkage \
+ --enable-libraries \
+ --with-pkg-config=$(PKG_CONFIG_HOST_BINARY) \
+ --with-libcurl=$(STAGING_DIR)/usr
+
+ifeq ($(BR2_PACKAGE_LIBFCGI),y)
+BOINC_DEPENDENCIES += libfcgi
+BOINC_CONF_OPTS += --enable-fcgi
+else
+BOINC_CONF_OPTS += --disable-fcgi
+endif
+
+# Remove boinc-client because it is incompatible with buildroot
+define BOINC_REMOVE_UNNEEDED_FILE
+ $(RM) $(TARGET_DIR)/etc/init.d/boinc-client
+endef
+
+BOINC_POST_INSTALL_TARGET_HOOKS += BOINC_REMOVE_UNNEEDED_FILE
+
+define BOINC_INSTALL_INIT_SYSV
+ $(INSTALL) -D -m 0755 package/boinc/S99boinc-client \
+ $(TARGET_DIR)/etc/init.d/S99boinc-client
+endef
+
+define BOINC_INSTALL_INIT_SYSTEMD
+ $(INSTALL) -D -m 644 package/boinc/boinc-client.service \
+ $(TARGET_DIR)/usr/lib/systemd/system/boinc-client.service
+ mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
+ ln -sf ../../../../usr/lib/systemd/system/boinc-client.service \
+ $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/boinc-client.service
+endef
+
+$(eval $(autotools-package))