mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-23 16:49:10 -07:00
sci-misc/boinc: add 8.0.2, update live
* Drop "cuda" and "opencl" USE flags, make them optfeatures instead. * Drop possibly outdated CURL_SSL depends. * Add "gui" USE flag distinct from "X". * Remove outdated app-admin/quickswitch blocker. * Remove --disable-static from configure args (implicitly passed in EAPI 8). * Set ownership for /var/lib/boinc during the install. * Symlink /var/lib/boinc/ca-bundle.crt during the install. * Remove static libraries during the install. * Install bash completions for boinccmd. * Use upstream-provided icons and the desktop file instead of outdated ours. * Update the OpenRC service: * use supervise-daemon and declarative service syntax; * remove unnecessary variables (BOINCBIN, BOINCCMD, BOINC_PIDFILE); * rename ALLOW_REMOTE_RPC -> ALLOW_REMOTE_GUI_RPC to avoid surprises with switching the choice from yes/no to set/unset; * make "retry" configurable; Closes: https://bugs.gentoo.org/938972 Closes: https://bugs.gentoo.org/822771 Closes: https://bugs.gentoo.org/948143 Bug: https://bugs.gentoo.org/955172 Signed-off-by: Anna (cybertailor) Vyalkova <cyber+gentoo@sysrq.in> Part-of: https://github.com/gentoo/gentoo/pull/42187 Signed-off-by: Nowa Ammerlaan <nowa@gentoo.org>
This commit is contained in:
committed by
Nowa Ammerlaan
parent
be382e11d9
commit
22c9a573ea
@@ -668,7 +668,8 @@ net-misc/networkmanager wext
|
||||
|
||||
# Marius Brehler <marfbre@linux.sungazer.de> (2015-08-13)
|
||||
# missing keyword
|
||||
>=sci-misc/boinc-7.4.42-r1 X
|
||||
<sci-misc/boinc-8.0.2 X
|
||||
>=sci-misc/boinc-8.0.2 gui
|
||||
|
||||
# Pacho Ramos <pacho@gentoo.org> (2015-06-13)
|
||||
# Missing keywords, bug #513108
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
DIST boinc-7.24.1.tar.gz 46747399 BLAKE2B 872cf16a67a69c297aa3096c44b8272c039e913991253c7e52847f438050c0f87088c9cb84a5761877c9acb6bcb73dfdfbc7452e7ae98a0aeee55916838fbc93 SHA512 7dad36900c13b69a89b5a173fc283130bc4cf15c781ed31ed72ce0b6ba0db4895a12314d0f302c7a91c2762333b7c162f20f32e67ed5e2e7a4099e1f2238c255
|
||||
DIST boinc-8.0.2.tar.gz 46978849 BLAKE2B 6af8836f9ce5ab295685d573c11878971edb85191d757228ba1b05931ca25dc1eabab7c39107eda8ff501eeff1d390931da40300612bdb70fe76b586b0809d27 SHA512 ed6c90a40e74d891e28fdb99c684f004b90e9fecc22584e61d67a325c0f61039ea7dc823baf321ff4a84fafc96470d6cd903d9b0268c8ff42b3eb54f8c565426
|
||||
DIST boinc.tif 288208 BLAKE2B 156a99f08dcabc62a46874830600b9d237e64b650b8edf35db67b82006a67039a3965707194e8f0b25cfd65138b8700c0bfb877507418393b9cd3df32e94d260 SHA512 548e19b87fd70dbeb05687320b86aad39981c161b5b5b7e02fc3ce886d4c464c9bb763d5652d9895dd505ce247c7ff4490caa3d407e28f54ce889ffbab22d046
|
||||
|
||||
182
sci-misc/boinc/boinc-8.0.2.ebuild
Normal file
182
sci-misc/boinc/boinc-8.0.2.ebuild
Normal file
@@ -0,0 +1,182 @@
|
||||
# Copyright 2023-2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
MY_PV=$(ver_cut 1-2)
|
||||
WX_GTK_VER=3.2-gtk3
|
||||
|
||||
inherit autotools bash-completion-r1 linux-info optfeature wxwidgets xdg-utils
|
||||
|
||||
DESCRIPTION="The Berkeley Open Infrastructure for Network Computing"
|
||||
HOMEPAGE="https://boinc.berkeley.edu/"
|
||||
|
||||
if [[ ${PV} == *9999 ]] ; then
|
||||
EGIT_REPO_URI="https://github.com/BOINC/${PN}.git"
|
||||
inherit git-r3
|
||||
else
|
||||
SRC_URI="https://github.com/BOINC/boinc/archive/client_release/${MY_PV}/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
S="${WORKDIR}/${PN}-client_release-${MY_PV}-${PV}"
|
||||
|
||||
# We don't mark "stable" and "alpha" release channels in any special way but
|
||||
# use stable/testing keywords instead.
|
||||
#
|
||||
# "Alpha" versions are only named as such, they are actually more like beta
|
||||
# versions or release candidates.
|
||||
# https://github.com/BOINC/boinc/wiki/AlphaInstructions
|
||||
#
|
||||
# The current versions for each of release channels can be found at:
|
||||
# https://boinc.berkeley.edu/linux_install.php
|
||||
KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~sparc ~x86"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-3+"
|
||||
SLOT="0"
|
||||
|
||||
# - "X" builds idle tracking via XScrnSaver and the libboinc_graphics2 library
|
||||
# - "gui" builds the manager app and the screensaver
|
||||
IUSE="X gui"
|
||||
|
||||
DEPEND="
|
||||
acct-user/boinc
|
||||
app-misc/ca-certificates
|
||||
dev-libs/openssl:=
|
||||
net-misc/curl[ssl]
|
||||
sys-libs/zlib:=
|
||||
X? (
|
||||
media-libs/freeglut
|
||||
media-libs/libjpeg-turbo:=
|
||||
x11-libs/libX11
|
||||
x11-libs/libXScrnSaver
|
||||
)
|
||||
gui? (
|
||||
dev-libs/glib:2
|
||||
x11-libs/gtk+:3
|
||||
x11-libs/libnotify
|
||||
x11-libs/libxcb:=
|
||||
x11-libs/wxGTK:${WX_GTK_VER}=[opengl,webkit]
|
||||
x11-libs/xcb-util
|
||||
)
|
||||
"
|
||||
RDEPEND="${DEPEND}"
|
||||
BDEPEND="
|
||||
app-text/docbook-xml-dtd:4.4
|
||||
app-text/docbook2X
|
||||
virtual/pkgconfig
|
||||
"
|
||||
|
||||
pkg_setup() {
|
||||
# Bug 578750
|
||||
if use kernel_linux; then
|
||||
linux-info_pkg_setup
|
||||
if ! linux_config_exists; then
|
||||
ewarn "Can't check the linux kernel configuration."
|
||||
ewarn "You might be missing vsyscall support."
|
||||
elif kernel_is -ge 4 4 \
|
||||
&& linux_chkconfig_present LEGACY_VSYSCALL_NONE; then
|
||||
ewarn "You do not have vsyscall emulation enabled."
|
||||
ewarn "This will prevent some boinc projects from running."
|
||||
ewarn "Please enable vsyscall emulation:"
|
||||
ewarn " CONFIG_LEGACY_VSYSCALL_EMULATE=y"
|
||||
ewarn "in /usr/src/linux/.config, to be found at"
|
||||
ewarn " Processor type and features --->"
|
||||
ewarn " vsyscall table for legacy applications (None) --->"
|
||||
ewarn " (X) Emulate"
|
||||
ewarn "Alternatively, you can enable CONFIG_LEGACY_VSYSCALL_NATIVE."
|
||||
ewarn "However, this has security implications and is not recommended."
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# prevent bad changes in compile flags, bug 286701
|
||||
sed -i -e "s:BOINC_SET_COMPILE_FLAGS::" configure.ac || die "sed failed"
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
use gui && setup-wxwidgets
|
||||
|
||||
local myeconfargs=(
|
||||
--disable-server
|
||||
--enable-client
|
||||
--enable-dynamic-client-linkage
|
||||
--enable-unicode
|
||||
--with-ssl
|
||||
$(usex X "" ax_cv_check_glut_libglut="no")
|
||||
$(use_with X x)
|
||||
$(use_enable gui manager)
|
||||
$(usex gui --with-wx-config="${WX_CONFIG}" --without-wxdir)
|
||||
)
|
||||
econf "${myeconfargs[@]}"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
|
||||
# cleanup cruft
|
||||
rm -r "${ED}"/etc || die "rm failed"
|
||||
find "${D}/usr/$(get_libdir)" -name '*.la' -delete || die "Removing .la files failed"
|
||||
find "${D}/usr/$(get_libdir)" -name '*.a' -delete || die "Removing static libs failed"
|
||||
|
||||
newbashcomp client/scripts/boinc.bash boinc
|
||||
bashcomp_alias boinc boinccmd
|
||||
|
||||
keepdir /var/lib/boinc
|
||||
fowners boinc:boinc /var/lib/boinc
|
||||
fperms 750 /var/lib/boinc
|
||||
|
||||
dosym -r /etc/ssl/certs/ca-certificates.crt /var/lib/boinc/ca-bundle.crt
|
||||
|
||||
exeinto /etc/X11/xinit/xinitrc.d
|
||||
newexe packages/generic/36x11-common_xhost-boinc 95-boinc
|
||||
|
||||
newinitd "${FILESDIR}"/boinc.initd-r1 boinc
|
||||
newconfd "${FILESDIR}"/boinc.confd-r1 boinc
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if use gui; then
|
||||
xdg_desktop_database_update
|
||||
xdg_mimeinfo_database_update
|
||||
xdg_icon_cache_update
|
||||
fi
|
||||
|
||||
elog
|
||||
elog "You need to attach to a project to do anything useful with boinc."
|
||||
elog "You can do this by running:"
|
||||
elog "# rc-service boinc attach"
|
||||
elog "The user manual is located at:"
|
||||
elog "https://github.com/BOINC/boinc/wiki/User-manual"
|
||||
elog
|
||||
# Add warning about the new password for the client, bug 121896.
|
||||
if use gui; then
|
||||
elog "If you need to use the graphical manager, the password is in:"
|
||||
elog "/var/lib/boinc/gui_rpc_auth.cfg"
|
||||
elog "Where /var/lib/boinc is default RUNTIMEDIR that can be changed in:"
|
||||
elog "/etc/conf.d/boinc"
|
||||
elog "You should change this password to something more memorable (can be even blank)."
|
||||
elog "Remember to launch init script before using manager. Or changing the password."
|
||||
elog
|
||||
fi
|
||||
|
||||
# OpenCL and CUDA libraries are loaded with dlopen(),
|
||||
# no headers used at build time and no linking occurs.
|
||||
optfeature "CUDA applications support" x11-drivers/nvidia-drivers
|
||||
optfeature "OpenCL applications support" virtual/opencl
|
||||
optfeature "VirtualBox applications support" app-emulation/virtualbox
|
||||
|
||||
optfeature_header "If you want to run ATLAS native tasks by LHC@home, you need to install:"
|
||||
optfeature "CERN VM filesystem support" net-fs/cvmfs
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
if use gui; then
|
||||
xdg_desktop_database_update
|
||||
xdg_mimeinfo_database_update
|
||||
xdg_icon_cache_update
|
||||
fi
|
||||
}
|
||||
@@ -1,80 +1,59 @@
|
||||
# Copyright 1999-2025 Gentoo Authors
|
||||
# Copyright 2023-2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
# For live ebuilds this should be set to the latest available patch in ${FILESDIR}
|
||||
# It does not need to reflect the actual internal version reported by BOINC unless that patch is broken.
|
||||
MY_PV=7.18
|
||||
MY_PV=$(ver_cut 1-2)
|
||||
WX_GTK_VER=3.2-gtk3
|
||||
|
||||
inherit autotools desktop flag-o-matic linux-info optfeature wxwidgets xdg-utils
|
||||
inherit autotools bash-completion-r1 linux-info optfeature wxwidgets xdg-utils
|
||||
|
||||
DESCRIPTION="The Berkeley Open Infrastructure for Network Computing"
|
||||
HOMEPAGE="https://boinc.berkeley.edu/"
|
||||
|
||||
SRC_URI="X? ( https://boinc.berkeley.edu/logo/boinc_glossy2_512_F.tif -> ${PN}.tif )"
|
||||
if [[ ${PV} == *9999 ]] ; then
|
||||
EGIT_REPO_URI="https://github.com/BOINC/${PN}.git"
|
||||
inherit git-r3
|
||||
else
|
||||
SRC_URI+=" https://github.com/BOINC/boinc/archive/client_release/${MY_PV}/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
SRC_URI="https://github.com/BOINC/boinc/archive/client_release/${MY_PV}/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~sparc ~x86"
|
||||
S="${WORKDIR}/${PN}-client_release-${MY_PV}-${PV}"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-3"
|
||||
LICENSE="LGPL-3+"
|
||||
SLOT="0"
|
||||
|
||||
IUSE="X cuda curl_ssl_gnutls +curl_ssl_openssl opencl"
|
||||
# - "X" builds idle tracking via XScrnSaver and the libboinc_graphics2 library
|
||||
# - "gui" builds the manager app and the screensaver
|
||||
IUSE="X gui"
|
||||
|
||||
REQUIRED_USE="
|
||||
^^ ( curl_ssl_gnutls curl_ssl_openssl )
|
||||
"
|
||||
|
||||
# libcurl must not be using an ssl backend boinc does not support.
|
||||
# If the libcurl ssl backend changes, boinc should be recompiled.
|
||||
DEPEND="
|
||||
acct-user/boinc
|
||||
app-misc/ca-certificates
|
||||
cuda? (
|
||||
x11-drivers/nvidia-drivers
|
||||
)
|
||||
opencl? (
|
||||
virtual/opencl
|
||||
)
|
||||
dev-libs/openssl:=
|
||||
net-misc/curl[curl_ssl_gnutls(-)=,curl_ssl_openssl(-)=,-curl_ssl_axtls(-),-curl_ssl_cyassl(-)]
|
||||
sys-apps/util-linux
|
||||
sys-libs/zlib
|
||||
net-misc/curl[ssl]
|
||||
sys-libs/zlib:=
|
||||
X? (
|
||||
dev-libs/glib:2
|
||||
media-libs/freeglut
|
||||
media-libs/libjpeg-turbo:=
|
||||
x11-libs/gtk+:3
|
||||
x11-libs/libnotify
|
||||
x11-libs/libX11
|
||||
x11-libs/libXScrnSaver
|
||||
)
|
||||
gui? (
|
||||
dev-libs/glib:2
|
||||
x11-libs/gtk+:3
|
||||
x11-libs/libnotify
|
||||
x11-libs/libxcb:=
|
||||
x11-libs/wxGTK:${WX_GTK_VER}=[X,opengl,webkit]
|
||||
x11-libs/wxGTK:${WX_GTK_VER}=[opengl,webkit]
|
||||
x11-libs/xcb-util
|
||||
)
|
||||
"
|
||||
BDEPEND="app-text/docbook-xml-dtd:4.4
|
||||
RDEPEND="${DEPEND}"
|
||||
BDEPEND="
|
||||
app-text/docbook-xml-dtd:4.4
|
||||
app-text/docbook2X
|
||||
sys-devel/gettext
|
||||
X? ( virtual/imagemagick-tools[png,tiff] )
|
||||
virtual/pkgconfig
|
||||
"
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
sys-apps/util-linux
|
||||
!app-admin/quickswitch
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
# >=x11-libs/wxGTK-3.0.2.0-r3 has webview removed, bug 587462
|
||||
"${FILESDIR}"/${PN}-${MY_PV}-fix_webview.patch
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
# Bug 578750
|
||||
@@ -109,89 +88,79 @@ src_prepare() {
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
use X && setup-wxwidgets
|
||||
use gui && setup-wxwidgets
|
||||
|
||||
append-libs -L"${ESYSROOT}"/usr/$(get_libdir) -L"${ESYSROOT}"/$(get_libdir)
|
||||
|
||||
econf --disable-server \
|
||||
--enable-client \
|
||||
--enable-dynamic-client-linkage \
|
||||
--disable-static \
|
||||
--enable-unicode \
|
||||
--with-ssl \
|
||||
$(use_with X x) \
|
||||
$(use_enable X manager) \
|
||||
$(usex X --with-wx-config="${WX_CONFIG}" --without-wxdir)
|
||||
local myeconfargs=(
|
||||
--disable-server
|
||||
--enable-client
|
||||
--enable-dynamic-client-linkage
|
||||
--enable-unicode
|
||||
--with-ssl
|
||||
$(usex X "" ax_cv_check_glut_libglut="no")
|
||||
$(use_with X x)
|
||||
$(use_enable gui manager)
|
||||
$(usex gui --with-wx-config="${WX_CONFIG}" --without-wxdir)
|
||||
)
|
||||
econf "${myeconfargs[@]}"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
|
||||
keepdir /var/lib/${PN}
|
||||
newbashcomp client/scripts/boinc.bash boinc
|
||||
bashcomp_alias boinc boinccmd
|
||||
|
||||
if use X; then
|
||||
# Create new icons. bug 593362
|
||||
local s SIZES=(16 22 24 32 36 48 64 72 96 128 192 256)
|
||||
for s in "${SIZES[@]}"; do
|
||||
# The convert command is not checked, because it will issue warnings and exit with
|
||||
# an error code if imagemagick is used and was merged with USE="-xml", although the
|
||||
# conversion has worked. See #766093
|
||||
# Instead, newicon will fail if the conversion did not produce the icon.
|
||||
convert "${DISTDIR}"/${PN}.tif -resize ${s}x${s} "${WORKDIR}"/boinc_${s}.png
|
||||
newicon -s $s "${WORKDIR}"/boinc_${s}.png boinc.png
|
||||
done
|
||||
make_desktop_entry boincmgr "${PN}" "${PN}" "Math;Science" "Path=/var/lib/${PN}"
|
||||
keepdir /var/lib/boinc
|
||||
fowners boinc:boinc /var/lib/boinc
|
||||
|
||||
# Rename the desktop file to boincmgr.desktop to (hot)fix bug 599910
|
||||
mv "${ED}"/usr/share/applications/boincmgr{-${PN},}.desktop || \
|
||||
die "Failed to rename desktop file"
|
||||
fi
|
||||
dosym -r /etc/ssl/certs/ca-certificates.crt /var/lib/boinc/ca-bundle.crt
|
||||
|
||||
# cleanup cruft
|
||||
rm -r "${ED}"/etc || die "rm failed"
|
||||
find "${D}" -name '*.la' -delete || die "Removing .la files failed"
|
||||
find "${D}/usr/$(get_libdir)" -name '*.la' -delete || die "Removing .la files failed"
|
||||
find "${D}/usr/$(get_libdir)" -name '*.a' -delete || die "Removing static libs failed"
|
||||
|
||||
newinitd "${FILESDIR}"/${PN}.init ${PN}
|
||||
newconfd "${FILESDIR}"/${PN}.conf ${PN}
|
||||
newinitd "${FILESDIR}"/boinc.initd-r1 boinc
|
||||
newconfd "${FILESDIR}"/boinc.confd-r1 boinc
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if use X; then
|
||||
if use gui; then
|
||||
xdg_desktop_database_update
|
||||
xdg_mimeinfo_database_update
|
||||
xdg_icon_cache_update
|
||||
fi
|
||||
|
||||
elog
|
||||
elog "You are using the source compiled version of boinc."
|
||||
use X && elog "The graphical manager can be found at /usr/bin/boincmgr"
|
||||
elog
|
||||
elog "You need to attach to a project to do anything useful with boinc."
|
||||
elog "You can do this by running /etc/init.d/boinc attach"
|
||||
elog "The howto for configuration is located at:"
|
||||
elog "http://boinc.berkeley.edu/wiki/Anonymous_platform"
|
||||
elog "You can do this by running:"
|
||||
elog "# rc-service boinc attach"
|
||||
elog "The user manual is located at:"
|
||||
elog "https://github.com/BOINC/boinc/wiki/User-manual"
|
||||
elog
|
||||
# Add warning about the new password for the client, bug 121896.
|
||||
if use X; then
|
||||
elog "If you need to use the graphical manager the password is in:"
|
||||
if use gui; then
|
||||
elog "If you need to use the graphical manager, the password is in:"
|
||||
elog "/var/lib/boinc/gui_rpc_auth.cfg"
|
||||
elog "Where /var/lib/ is default RUNTIMEDIR, that can be changed in:"
|
||||
elog "Where /var/lib/boinc is default RUNTIMEDIR that can be changed in:"
|
||||
elog "/etc/conf.d/boinc"
|
||||
elog "You should change this password to something more memorable (can be even blank)."
|
||||
elog "Remember to launch init script before using manager. Or changing the password."
|
||||
elog
|
||||
fi
|
||||
elog "To be able to use CUDA or OpenCL you should add the boinc user to the video group."
|
||||
elog "Run as root:"
|
||||
elog "gpasswd -a boinc video"
|
||||
elog
|
||||
|
||||
# OpenCL and CUDA libraries are loaded with dlopen(),
|
||||
# no headers used at build time and no linking occurs.
|
||||
optfeature "CUDA applications support" x11-drivers/nvidia-drivers
|
||||
optfeature "OpenCL applications support" virtual/opencl
|
||||
optfeature "VirtualBox applications support" app-emulation/virtualbox
|
||||
|
||||
optfeature_header "If you want to run ATLAS native tasks by LHC@home, you need to install:"
|
||||
optfeature "CERN VM filesystem support" net-fs/cvmfs
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
if use X; then
|
||||
if use gui; then
|
||||
xdg_desktop_database_update
|
||||
xdg_mimeinfo_database_update
|
||||
xdg_icon_cache_update
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
This patch is an update to the existing fix_webview.patch for 7.18
|
||||
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -1262,7 +1262,7 @@ else
|
||||
CLIENTGUIFLAGS="${CLIENTGUIFLAGS} -DNDEBUG"
|
||||
fi
|
||||
|
||||
-CLIENTGUILIBS="${WX_LIBS}"
|
||||
+CLIENTGUILIBS="${WX_LIBS} $($WX_CONFIG_WITH_ARGS --libs webview)"
|
||||
|
||||
if test "${enable_client_release}" = "yes" ; then
|
||||
if test "x${WX_LIBS_STATIC}" = "x" ; then
|
||||
22
sci-misc/boinc/files/boinc.confd-r1
Normal file
22
sci-misc/boinc/files/boinc.confd-r1
Normal file
@@ -0,0 +1,22 @@
|
||||
# Config file for /etc/init.d/boinc
|
||||
|
||||
# Owner of BOINC process (must be existing)
|
||||
#USER="boinc"
|
||||
# Group of the BOINC process
|
||||
#GROUP="boinc"
|
||||
|
||||
# Directory with runtime data: Work units, project binaries, user info etc.
|
||||
#RUNTIMEDIR="/var/lib/boinc"
|
||||
|
||||
# Allow remote gui RPC, uncomment to enable
|
||||
#ALLOW_REMOTE_GUI_RPC=1
|
||||
|
||||
# Additional args for BOINC client
|
||||
#ARGS=""
|
||||
|
||||
# nice level
|
||||
#SSD_NICELEVEL="19"
|
||||
|
||||
# The termination timeout ensures that the service will be terminated within a
|
||||
# given time (60 + 30 + 30 seconds per default) when you are stopping the service
|
||||
#retry="SIGTERM/60/SIGTERM/30/SIGKILL/30"
|
||||
102
sci-misc/boinc/files/boinc.initd-r1
Normal file
102
sci-misc/boinc/files/boinc.initd-r1
Normal file
@@ -0,0 +1,102 @@
|
||||
#!/sbin/openrc-run
|
||||
# Copyright 2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
#
|
||||
# shellcheck shell=sh
|
||||
|
||||
: "${RUNTIMEDIR:="/var/lib/boinc"}"
|
||||
: "${USER:=boinc}"
|
||||
: "${GROUP:=boinc}"
|
||||
|
||||
extra_started_commands="attach resume suspend"
|
||||
description_attach="Attach to a project"
|
||||
description_resume="Resume all projects"
|
||||
description_suspend="Suspend all projects"
|
||||
|
||||
description="BOINC client daemon"
|
||||
supervisor="supervise-daemon"
|
||||
command="/usr/bin/boinc_client"
|
||||
command_args="--dir ${RUNTIMEDIR} --redirectio ${ALLOW_REMOTE_GUI_RPC+--allow_remote_gui_rpc} ${ARGS}"
|
||||
command_user="${USER}:${GROUP}"
|
||||
pidfile="/run/boinc_client.pid"
|
||||
required_files="${RUNTIMEDIR}/ca-bundle.crt"
|
||||
healthcheck_timer="60"
|
||||
|
||||
: "${retry:="SIGTERM/60/SIGTERM/30/SIGKILL/30"}"
|
||||
|
||||
depend() {
|
||||
use dns net ntp-client ntpd
|
||||
}
|
||||
|
||||
eboinccmd() {
|
||||
runuser -u "${USER}" -g "${GROUP}" -- /usr/bin/boinccmd "${@}"
|
||||
}
|
||||
|
||||
start_pre() {
|
||||
checkpath -d -o "${command_user}" -m 0750 "${RUNTIMEDIR}"
|
||||
|
||||
if [ ! -f "${RUNTIMEDIR}/lockfile" ]; then
|
||||
einfo "File \"${RUNTIMEDIR}/lockfile\" does not exist, assuming first run."
|
||||
einfo "You need to setup an account on the BOINC project homepage beforehand!"
|
||||
einfo "Go to http://boinc.berkeley.edu/ and locate your project."
|
||||
einfo "Then either run '${RC_SERVICE} attach' or connect with a gui client"
|
||||
einfo "and attach to a project with that."
|
||||
einfo ""
|
||||
ewarn "Note that for attaching to some project you need your network up and running."
|
||||
ewarn "network is needed only for jobs fetching afterwards"
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
stop_pre() {
|
||||
cd "${RUNTIMEDIR}" || return 0
|
||||
eboinccmd --quit
|
||||
return 0
|
||||
}
|
||||
|
||||
healthcheck() {
|
||||
cd "${RUNTIMEDIR}" || return 1
|
||||
eboinccmd --get_state >/dev/null
|
||||
}
|
||||
|
||||
attach() {
|
||||
local url=""
|
||||
local key=""
|
||||
|
||||
einfo "If you can't find your account key just try to obtain it by using:"
|
||||
einfo " boinccmd --passwd PASSWORD_FROM_GUI_RPC_AUTH --lookup_account URL EMAIL PASSWORD"
|
||||
|
||||
printf " Enter the Project URL: "
|
||||
read url
|
||||
printf " Enter your Account Key: "
|
||||
read key
|
||||
|
||||
cd "${RUNTIMEDIR}" || return 1
|
||||
ebegin "${RC_SVCNAME}: Attaching to project"
|
||||
eboinccmd --project_attach "${url}" "${key}"
|
||||
eend $?
|
||||
|
||||
sleep 10
|
||||
tail "${RUNTIMEDIR}/stdoutdae.txt"
|
||||
}
|
||||
|
||||
resume() {
|
||||
cd "${RUNTIMEDIR}" || return 1
|
||||
for url in $(eboinccmd --get_project_status | \
|
||||
sed -n 's/\s*master URL: //p'); do
|
||||
ebegin "Resuming ${url}"
|
||||
eboinccmd --project "${url}" resume
|
||||
eend $?
|
||||
done
|
||||
}
|
||||
|
||||
suspend() {
|
||||
cd "${RUNTIMEDIR}" || return 1
|
||||
for url in $(eboinccmd --get_project_status | \
|
||||
sed -n 's/\s*master URL: //p'); do
|
||||
ebegin "Suspending ${url}"
|
||||
eboinccmd --project "${url}" suspend
|
||||
eend $?
|
||||
done
|
||||
}
|
||||
Reference in New Issue
Block a user