summaryrefslogtreecommitdiff
path: root/sci-misc/boinc
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-06-04 05:48:38 -0500
committerroot <root@alpha.trunkmasters.com>2026-06-04 05:48:38 -0500
commitbfd9c39e4712ebdb442d4ca0673061faed1e70e1 (patch)
tree0d7a74b4463ee387f9cf9368ceb1b757f694f72a /sci-misc/boinc
parentf716a9fe6455d39eef01e718aae68dae61c19704 (diff)
downloadbaldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.tar.gz
baldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.tar.xz
baldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.zip
Revert "Adding metadata"
This reverts commit f716a9fe6455d39eef01e718aae68dae61c19704.
Diffstat (limited to 'sci-misc/boinc')
-rw-r--r--sci-misc/boinc/Manifest4
-rw-r--r--sci-misc/boinc/boinc-7.24.1-r2.ebuild194
-rw-r--r--sci-misc/boinc/boinc-8.0.2.ebuild182
-rw-r--r--sci-misc/boinc/boinc-8.2.4.ebuild188
-rw-r--r--sci-misc/boinc/boinc-9999.ebuild188
-rw-r--r--sci-misc/boinc/files/boinc.conf25
-rw-r--r--sci-misc/boinc/files/boinc.confd-r122
-rw-r--r--sci-misc/boinc/files/boinc.init172
-rw-r--r--sci-misc/boinc/files/boinc.initd-r1102
-rw-r--r--sci-misc/boinc/metadata.xml23
10 files changed, 1100 insertions, 0 deletions
diff --git a/sci-misc/boinc/Manifest b/sci-misc/boinc/Manifest
new file mode 100644
index 000000000000..e3d43cfdd6f9
--- /dev/null
+++ b/sci-misc/boinc/Manifest
@@ -0,0 +1,4 @@
+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-8.2.4.tar.gz 47582706 BLAKE2B 7b798e5367628ce75f26ec5e76065d54e26ef503ab5e904865d958ed6e708e547bd314139417595f8edcbd9d82d2ab8a288b750d2c0567357fa3707c56a5cc4e SHA512 aa3814d4d17954704644a99e9367decfdbefe9eeb1cc4a77f80f86c0b8760c6f93d44a6accac3a51a255a18f2464ac288936db4733378418a1248147db63261e
+DIST boinc.tif 288208 BLAKE2B 156a99f08dcabc62a46874830600b9d237e64b650b8edf35db67b82006a67039a3965707194e8f0b25cfd65138b8700c0bfb877507418393b9cd3df32e94d260 SHA512 548e19b87fd70dbeb05687320b86aad39981c161b5b5b7e02fc3ce886d4c464c9bb763d5652d9895dd505ce247c7ff4490caa3d407e28f54ce889ffbab22d046
diff --git a/sci-misc/boinc/boinc-7.24.1-r2.ebuild b/sci-misc/boinc/boinc-7.24.1-r2.ebuild
new file mode 100644
index 000000000000..3db0cac9f4ae
--- /dev/null
+++ b/sci-misc/boinc/boinc-7.24.1-r2.ebuild
@@ -0,0 +1,194 @@
+# 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 desktop flag-o-matic 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"
+ KEYWORDS="amd64 arm64 ~ppc ppc64 ~sparc ~x86"
+ S="${WORKDIR}/${PN}-client_release-${MY_PV}-${PV}"
+fi
+
+LICENSE="LGPL-3+"
+SLOT="0"
+
+IUSE="X cuda curl_ssl_gnutls +curl_ssl_openssl opencl"
+
+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
+ dev-libs/openssl:=
+ net-misc/curl[curl_ssl_gnutls(-)=,curl_ssl_openssl(-)=,-curl_ssl_axtls(-),-curl_ssl_cyassl(-)]
+ virtual/zlib:=
+ cuda? (
+ x11-drivers/nvidia-drivers
+ )
+ opencl? (
+ virtual/opencl
+ )
+ 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
+ x11-libs/libxcb:=
+ x11-libs/wxGTK:${WX_GTK_VER}=[X,opengl,webkit]
+ x11-libs/xcb-util
+ )
+"
+BDEPEND="app-text/docbook-xml-dtd:4.4
+ app-text/docbook2X
+ sys-devel/gettext
+ X? ( virtual/imagemagick-tools[png,tiff] )
+"
+RDEPEND="
+ ${DEPEND}
+ sys-apps/util-linux
+ !app-admin/quickswitch
+"
+
+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 X && setup-wxwidgets
+
+ append-libs -L"${ESYSROOT}"/usr/$(get_libdir) -L"${ESYSROOT}"/$(get_libdir)
+
+ local myeconfargs=(
+ --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)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+
+ keepdir /var/lib/${PN}
+
+ 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}"
+
+ # 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
+
+ # cleanup cruft
+ rm -r "${ED}"/etc || die "rm failed"
+ find "${D}" -name '*.la' -delete || die "Removing .la files failed"
+
+ newinitd "${FILESDIR}"/${PN}.init ${PN}
+ newconfd "${FILESDIR}"/${PN}.conf ${PN}
+}
+
+pkg_postinst() {
+ if use X; 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
+ # 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:"
+ elog "/var/lib/boinc/gui_rpc_auth.cfg"
+ elog "Where /var/lib/ 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
+
+ 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
+ xdg_desktop_database_update
+ xdg_mimeinfo_database_update
+ xdg_icon_cache_update
+ fi
+}
diff --git a/sci-misc/boinc/boinc-8.0.2.ebuild b/sci-misc/boinc/boinc-8.0.2.ebuild
new file mode 100644
index 000000000000..e6856ddd59c7
--- /dev/null
+++ b/sci-misc/boinc/boinc-8.0.2.ebuild
@@ -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]
+ virtual/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
+}
diff --git a/sci-misc/boinc/boinc-8.2.4.ebuild b/sci-misc/boinc/boinc-8.2.4.ebuild
new file mode 100644
index 000000000000..0aa23baa6690
--- /dev/null
+++ b/sci-misc/boinc/boinc-8.2.4.ebuild
@@ -0,0 +1,188 @@
+# Copyright 2023-2026 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 selinux"
+
+DEPEND="
+ >=acct-user/boinc-1
+ app-misc/ca-certificates
+ dev-libs/openssl:=
+ net-misc/curl[ssl]
+ virtual/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}
+ selinux? ( sec-policy/selinux-boinc )
+"
+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 "Docker applications support" \
+ "app-containers/podman app-containers/podman-compose" \
+ "app-containers/docker app-containers/docker-compose:2"
+ 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
+}
diff --git a/sci-misc/boinc/boinc-9999.ebuild b/sci-misc/boinc/boinc-9999.ebuild
new file mode 100644
index 000000000000..4ec9668b4c14
--- /dev/null
+++ b/sci-misc/boinc/boinc-9999.ebuild
@@ -0,0 +1,188 @@
+# Copyright 2023-2026 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 selinux"
+
+DEPEND="
+ >=acct-user/boinc-1
+ app-misc/ca-certificates
+ dev-libs/openssl:=
+ net-misc/curl[ssl]
+ virtual/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}
+ selinux? ( sec-policy/selinux-boinc )
+"
+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 "Docker applications support" \
+ "app-containers/podman app-containers/podman-compose" \
+ "app-containers/docker app-containers/docker-compose:2"
+ 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
+}
diff --git a/sci-misc/boinc/files/boinc.conf b/sci-misc/boinc/files/boinc.conf
new file mode 100644
index 000000000000..856be30a2402
--- /dev/null
+++ b/sci-misc/boinc/files/boinc.conf
@@ -0,0 +1,25 @@
+# Config file for /etc/init.d/boinc
+
+# Owner of BOINC process (must be existing)
+USER="boinc"
+# Group of the BOINC process. Defaults to the user's primary group if
+# not set.
+#GROUP="boinc"
+
+# Directory with runtime data: Work units, project binaries, user info etc.
+RUNTIMEDIR="/var/lib/boinc"
+
+# Location of the boinc command line binary
+BOINCBIN="/usr/bin/boinc_client"
+
+# Location of the boinc_client pid file
+BOINC_PIDFILE="/var/run/boinc_client.pid"
+
+# Location of the boinccmd command
+BOINCCMD="/usr/bin/boinccmd"
+
+# Allow remote gui RPC yes or no
+ALLOW_REMOTE_RPC="no"
+
+# nice level
+NICELEVEL="19"
diff --git a/sci-misc/boinc/files/boinc.confd-r1 b/sci-misc/boinc/files/boinc.confd-r1
new file mode 100644
index 000000000000..82276fedcc9b
--- /dev/null
+++ b/sci-misc/boinc/files/boinc.confd-r1
@@ -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"
diff --git a/sci-misc/boinc/files/boinc.init b/sci-misc/boinc/files/boinc.init
new file mode 100644
index 000000000000..c95b49825fbe
--- /dev/null
+++ b/sci-misc/boinc/files/boinc.init
@@ -0,0 +1,172 @@
+#!/sbin/openrc-run
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+extra_started_commands="attach resume suspend"
+
+depend() {
+ # we can use dns and net, but we can also in most cases live without them
+ use dns net ntp-client ntpd
+}
+
+create_work_directory() {
+ local sslcrt="/etc/ssl/certs/ca-certificates.crt"
+
+ if [ ! -d "${RUNTIMEDIR}" ]; then
+ einfo "Directory ${RUNTIMEDIR} does not exist, creating now."
+ if ! mkdir -p "${RUNTIMEDIR}"; then
+ eerror "Directory ${RUNTIMEDIR} could not be created!"
+ return 1
+ fi
+ fi
+
+ # ensure proper ownership
+ if ! chown "${USER}:${GROUP}" "${RUNTIMEDIR}"; then
+ eerror "Changing ownership of '${RUNTIMEDIR}' to '${USER}:${GROUP}' failed!"
+ return 1
+ fi
+
+ if [ ! -e "${RUNTIMEDIR}"/ca-bundle.crt ]; then
+ if [ ! -f "${sslcrt}" ]; then
+ eerror "'${sslcrt}' does not exist!"
+ return 1
+ fi
+
+ if ! ln -s "${sslcrt}" "${RUNTIMEDIR}"/ca-bundle.crt; then
+ eerror "Symlinking '${sslcrt}' failed!"
+ return 1
+ fi
+ fi
+
+ return 0
+}
+
+env_check() {
+ # Make sure the configuration is sane
+ : ${USER:="boinc"}
+ : ${GROUP:="$(id -ng ${USER})"}
+ : ${RUNTIMEDIR:="/var/lib/boinc"}
+ : ${BOINCBIN:="$(which boinc_client)"}
+ : ${BOINC_PIDFILE:="/var/run/boinc_client.pid"}
+ : ${BOINCCMD:="$(which /usr/bin/boinccmd)"}
+ : ${ALLOW_REMOTE_RPC:="no"}
+ : ${NICELEVEL:="19"}
+ # ARGS is not checked, it could have been explicitly set
+ # to be empty by the user.
+
+ # If the client was not found (how?) something is seriously wrong
+ if [ ! -x "${BOINCBIN}" ]; then
+ eerror "No boinc_client found!"
+ return 1
+ fi
+
+ # The boinccmd is crucial, or we can not attach, suspend or resume
+ # the boinc client
+ if [ ! -x "${BOINCCMD}" ]; then
+ eerror "No boinccmd program found!"
+ return 1
+ fi
+
+ return 0
+}
+
+start_pre() {
+ env_check || return 1
+ create_work_directory || return 1
+
+ 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
+}
+
+start() {
+ if [ "${ALLOW_REMOTE_RPC}" = "yes" ]; then
+ ARGS="${ARGS} --allow_remote_gui_rpc"
+ fi
+
+ ARGS="${ARGS} --dir "${RUNTIMEDIR}" --redirectio"
+
+ ebegin "Starting ${RC_SVCNAME}"
+ start-stop-daemon --start --nicelevel ${NICELEVEL} \
+ --user "${USER}:${GROUP}" --quiet --make-pidfile \
+ --pidfile "${BOINC_PIDFILE}" --background \
+ --exec "${BOINCBIN}" -- ${ARGS}
+ eend $?
+}
+
+attach() {
+ local url=""
+ local key=""
+
+ env_check || return 1
+
+ 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
+
+ if ! service_started; then
+ "${RC_SERVICE}" start
+ fi
+
+ ebegin "${RC_SVCNAME}: Attaching to project"
+ start-stop-daemon --user "${USER}:${GROUP}" --quiet \
+ --chdir "${RUNTIMEDIR}" --exec "${BOINCCMD}" \
+ -- --project_attach ${url} ${key}
+ eend $?
+
+ sleep 10
+ tail "${RUNTIMEDIR}/stdoutdae.txt"
+}
+
+stop() {
+ local stop_timeout="SIGTERM/60/SIGTERM/30/SIGKILL/30"
+
+ env_check || return 1
+
+ ebegin "Stopping ${RC_SVCNAME}"
+ start-stop-daemon --stop --quiet --progress \
+ --retry ${stop_timeout} \
+ --pidfile "${BOINC_PIDFILE}"
+ eend $?
+}
+
+resume() {
+ env_check || return 1
+
+ for url in $(cd "${RUNTIMEDIR}" ; \
+ "${BOINCCMD}" --get_project_status | \
+ sed -n 's/\s*master URL: //p'); do
+ ebegin "Resuming ${url}"
+ start-stop-daemon --user "${USER}:${GROUP}" --quiet \
+ --chdir "${RUNTIMEDIR}" --exec "${BOINCCMD}" \
+ -- --project ${url} resume
+ eend $?
+ done
+}
+
+suspend() {
+ env_check || return 1
+
+ for url in $(cd "${RUNTIMEDIR}" ; \
+ "${BOINCCMD}" --get_project_status | \
+ sed -n 's/\s*master URL: //p'); do
+ ebegin "Suspending ${url}"
+ start-stop-daemon --user "${USER}:${GROUP}" --quiet \
+ --chdir "${RUNTIMEDIR}" --exec "${BOINCCMD}" \
+ -- --project ${url} suspend
+ eend $?
+ done
+}
diff --git a/sci-misc/boinc/files/boinc.initd-r1 b/sci-misc/boinc/files/boinc.initd-r1
new file mode 100644
index 000000000000..64d72312f1d6
--- /dev/null
+++ b/sci-misc/boinc/files/boinc.initd-r1
@@ -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 docker
+}
+
+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
+}
diff --git a/sci-misc/boinc/metadata.xml b/sci-misc/boinc/metadata.xml
new file mode 100644
index 000000000000..d144ab568bc2
--- /dev/null
+++ b/sci-misc/boinc/metadata.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>sci@gentoo.org</email>
+ <name>Gentoo Science Project</name>
+ </maintainer>
+ <maintainer type="person" proxied="yes">
+ <email>sven.eden@prydeworx.com</email>
+ <name>Sven Eden</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <longdescription lang="en">
+ BOINC (Berkeley Open Infrastructure for Network Computing) is a software
+ platform for distributed computing using volunteered computer resources.
+ </longdescription>
+ <upstream>
+ <remote-id type="github">BOINC/boinc</remote-id>
+ </upstream>
+</pkgmetadata>