summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sci-misc/boinc/Manifest1
-rw-r--r--sci-misc/boinc/boinc-7.16.14.ebuild205
-rw-r--r--sci-misc/boinc/files/boinc-7.16-fix_webview.patch11
-rw-r--r--sci-misc/boinc/files/boinc-7.16-remove-usr_lib.patch89
-rw-r--r--sci-misc/boinc/files/boinc.init.in53
-rw-r--r--sci-misc/boinc/metadata.xml44
6 files changed, 342 insertions, 61 deletions
diff --git a/sci-misc/boinc/Manifest b/sci-misc/boinc/Manifest
index a1b9dd4a5e76..c9a98cfa0366 100644
--- a/sci-misc/boinc/Manifest
+++ b/sci-misc/boinc/Manifest
@@ -1,4 +1,5 @@
DIST boinc-7.14.2.tar.gz 52236336 BLAKE2B fa97d3af9e9a650db409b24386e7950369ab2247469cd83d717d1b6dccb7952a0997763dad2285532cef6807f0460eb320edb3a162b6b20a70bae12159ec6b7f SHA512 dcb6d60893e8baad6282d5e4728387352e942375d988df9c2ad00022deaa9bc5ace967a1346e1b43b25342d2e477ab42e28640935d94e6950ee3716732c9c1af
+DIST boinc-7.16.14.tar.gz 49623696 BLAKE2B dde4163040d122cf4707e4747b18120f64c31af5ea4ca778709d9dd3c2fb019eb10ecb6ee367b73ea245cb5ed93bac710f268db2e0408b32120c750915473575 SHA512 9315cd8344571ac64eecf12676a2d3d6c021577ecee7a92eff253185f7ddf5bf4d64503a819c625afafd258ad28c3879839016c431aa3099083a90194c7e6454
DIST boinc-7.8.6.tar.gz 52037690 BLAKE2B 21d356488d8ea7e665f1b47e8ef0a0055d8b1a11e6e2aeea0b0ee7839fc7c0498b97ff9bc0183cd7391b5c86590ffc8234d823a743688a833ffcbe83797fd679 SHA512 e565fff30bc7214ae48548ae726544be3c8b09455a8c78a9e30410fd6cffe3b04b2e5c7f54381fa4190aa8adb259243b7d6443b6760c038ed8347edfed1ba997
DIST boinc-7.9.3.tar.gz 49628586 BLAKE2B a053645f5e5c41610863c19be028963fb2e92fc0015b9df5377e734af968f1a70e4913cdc2052fd4a396dd1a9a782464e3ffc96a4b59a166f25c387de4c30d6d SHA512 d85880ec8e58d53af2cc5c9e357a29fbefe149450f33dea6fed5847b8e8c8bd9c9c5a309180c801c77fbedd740ebef83c1b410e8bc514e35fe210af57552bad5
DIST boinc.tif 288208 BLAKE2B 156a99f08dcabc62a46874830600b9d237e64b650b8edf35db67b82006a67039a3965707194e8f0b25cfd65138b8700c0bfb877507418393b9cd3df32e94d260 SHA512 548e19b87fd70dbeb05687320b86aad39981c161b5b5b7e02fc3ce886d4c464c9bb763d5652d9895dd505ce247c7ff4490caa3d407e28f54ce889ffbab22d046
diff --git a/sci-misc/boinc/boinc-7.16.14.ebuild b/sci-misc/boinc/boinc-7.16.14.ebuild
new file mode 100644
index 000000000000..409c97fc025f
--- /dev/null
+++ b/sci-misc/boinc/boinc-7.16.14.ebuild
@@ -0,0 +1,205 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+MY_PV=$(ver_cut 1-2)
+WX_GTK_VER=3.0-gtk3
+
+inherit autotools desktop linux-info systemd wxwidgets xdg-utils
+
+DESCRIPTION="The Berkeley Open Infrastructure for Network Computing"
+HOMEPAGE="https://boinc.ssl.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 ~ia64 ~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_libressl +curl_ssl_openssl"
+
+REQUIRED_USE="^^ ( curl_ssl_gnutls curl_ssl_libressl 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.
+COMMON_DEPEND="
+ acct-group/boinc
+ acct-user/boinc
+ >=app-misc/ca-certificates-20080809
+ cuda? (
+ >=dev-util/nvidia-cuda-toolkit-2.1
+ >=x11-drivers/nvidia-drivers-180.22
+ )
+ net-misc/curl[curl_ssl_gnutls(-)=,curl_ssl_libressl(-)=,-curl_ssl_nss(-),curl_ssl_openssl(-)=,-curl_ssl_axtls(-),-curl_ssl_cyassl(-)]
+ sys-apps/util-linux
+ sys-libs/zlib
+ X? (
+ dev-db/sqlite:3
+ media-libs/freeglut
+ virtual/jpeg:0=
+ x11-libs/gtk+:3
+ x11-libs/libICE
+ >=x11-libs/libnotify-0.7
+ x11-libs/libSM
+ x11-libs/libXi
+ x11-libs/libXmu
+ x11-libs/wxGTK:${WX_GTK_VER}[X,opengl,webkit]
+ virtual/jpeg
+ )
+"
+DEPEND="${RDEPEND}
+ app-text/docbook-xml-dtd:4.4
+ app-text/docbook2X
+ sys-devel/gettext
+ X? ( virtual/imagemagick-tools[png,tiff] )
+"
+RDEPEND="${COMMON_DEPEND}
+ !app-admin/quickswitch
+"
+
+PATCHES=(
+ # >=x11-libs/wxGTK-3.0.2.0-r3 has webview removed, bug 587462
+ "${FILESDIR}"/${PN}-${MY_PV}-fix_webview.patch
+ # bug #732024
+ "${FILESDIR}"/${PN}-${MY_PV}-remove-usr_lib.patch
+)
+
+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() {
+ # bug #732024
+ if test "x$(get_libdir)" = "xlib64"; then
+ sed -i -e 's,/:/lib:/usr/lib:,:/lib64:/usr/lib64:,g' m4/sah_check_lib.m4 || die
+ fi
+
+ default
+
+ # prevent bad changes in compile flags, bug 286701
+ sed -i -e "s:BOINC_SET_COMPILE_FLAGS::" configure.ac || die "sed failed"
+
+ eautoreconf
+
+ use X && setup-wxwidgets
+
+ # bug #732024
+ if test "x$(get_libdir)" = "xlib64"; then
+ sed -i -e 's,/lib\([ /;:"]\),/lib64\1,g' configure || die
+ fi
+}
+
+src_configure() {
+ LDFLAGS="-L${EPREFIX}/usr/$(get_libdir) -L${EPREFIX}/$(get_libdir) ${LDFLAGS}" \
+ 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)
+}
+
+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
+ convert "${DISTDIR}"/${PN}.tif -resize ${s}x${s} "${WORKDIR}"/boinc_${s}.png || die
+ 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 -rf "${ED}"/etc || die "rm failed"
+ find "${D}" -name '*.la' -delete || die "Removing .la files failed"
+
+ sed -e "s/@libdir@/$(get_libdir)/" "${FILESDIR}"/${PN}.init.in > ${PN}.init || die
+ newinitd ${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
+ # Add information about BOINC supporting OpenCL
+ elog "BOINC supports OpenCL. To use it you have to eselect"
+ if use cuda; then
+ elog "nvidia as the OpenCL implementation, as you are using CUDA."
+ else
+ elog "the correct OpenCL implementation for your graphic card."
+ fi
+ elog
+}
+
+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/files/boinc-7.16-fix_webview.patch b/sci-misc/boinc/files/boinc-7.16-fix_webview.patch
new file mode 100644
index 000000000000..4f58b2725b31
--- /dev/null
+++ b/sci-misc/boinc/files/boinc-7.16-fix_webview.patch
@@ -0,0 +1,11 @@
+--- a/configure.ac 2020-11-08 00:31:06.304751639 +0100
++++ b/configure.ac 2020-11-08 00:32:03.848754956 +0100
+@@ -1238,7 +1238,7 @@
+ 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
diff --git a/sci-misc/boinc/files/boinc-7.16-remove-usr_lib.patch b/sci-misc/boinc/files/boinc-7.16-remove-usr_lib.patch
new file mode 100644
index 000000000000..c9750a03b666
--- /dev/null
+++ b/sci-misc/boinc/files/boinc-7.16-remove-usr_lib.patch
@@ -0,0 +1,89 @@
+--- a/m4/ax_check_glut.m4 2020-11-08 01:03:40.797864295 +0100
++++ b/m4/ax_check_glut.m4 2020-11-08 01:04:53.407868481 +0100
+@@ -41,7 +41,7 @@
+ else
+ ax_try_lib="${ax_lib}"
+ fi
+- LIBS="-L${prefix}/lib ${ax_try_lib} ${GLUT_LIBS} ${ax_save_LIBS}"
++ LIBS="${ax_try_lib} ${GLUT_LIBS} ${ax_save_LIBS}"
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([[
+ #define FREEGLUT_STATIC 1
+@@ -50,7 +50,7 @@
+ # endif
+ # include <GL/glut.h>]],
+ [[glutMainLoop()]])],
+- [ax_cv_check_glut_libglut="-L${prefix}/lib ${ax_try_lib}"; break])
++ [ax_cv_check_glut_libglut="${ax_try_lib}"; break])
+
+ done
+ LIBS=${ax_save_LIBS}
+--- a/m4/ax_check_glu.m4 2020-11-08 01:03:48.221864723 +0100
++++ b/m4/ax_check_glu.m4 2020-11-08 01:04:53.405868480 +0100
+@@ -19,7 +19,7 @@
+ else
+ ax_try_lib="${ax_lib}"
+ fi
+- LIBS="-L${prefix}/lib ${ax_try_lib} ${GL_LIBS} ${ax_save_LIBS}"
++ LIBS="${ax_try_lib} ${GL_LIBS} ${ax_save_LIBS}"
+ #
+ # libGLU typically links with libstdc++ on POSIX platforms. However,
+ # setting the language to C++ means that test program source is named
+@@ -37,7 +37,7 @@
+ # endif
+ # include <GL/glu.h>]],
+ [[gluBeginCurve(0)]])],
+- [ax_cv_check_glu_libglu="-L${prefix}/lib ${ax_try_lib}"; break])
++ [ax_cv_check_glu_libglu="${ax_try_lib}"; break])
+ if test X$ax_compiler_ms = Xyes; then
+ AC_LANG_POP([C])
+ fi
+--- a/m4/ax_check_gl.m4 2020-11-08 01:03:57.178865240 +0100
++++ b/m4/ax_check_gl.m4 2020-11-08 01:04:53.401868480 +0100
+@@ -39,7 +39,7 @@
+ GL_CFLAGS="-I${x_includes} -I${prefix}/include ${GL_CFLAGS}"
+ fi
+ if test -n "$x_libraries"; then
+- GL_LIBS="-L${x_libraries} -L${prefix}/lib -lX11 ${GL_LIBS}"
++ GL_LIBS="-L${x_libraries} -lX11 ${GL_LIBS}"
+ fi
+ fi
+
+@@ -58,7 +58,7 @@
+ else
+ ax_try_lib="${ax_lib}"
+ fi
+- LIBS="-L${prefix}/lib ${ax_try_lib} ${GL_LIBS} ${ax_save_LIBS}"
++ LIBS="${ax_try_lib} ${GL_LIBS} ${ax_save_LIBS}"
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([[
+ # if HAVE_WINDOWS_H && defined(_WIN32)
+@@ -66,7 +66,7 @@
+ # endif
+ # include <GL/gl.h>]],
+ [[glBegin(0)]])],
+- [ax_cv_check_gl_libgl="-L${prefix}/lib ${ax_try_lib}"; break])
++ [ax_cv_check_gl_libgl="${ax_try_lib}"; break])
+ done
+ LIBS=${ax_save_LIBS}
+ CPPFLAGS=${ax_save_CPPFLAGS}])
+--- a/m4/check_ssl.m4 2020-11-11 08:29:37.638655925 +0100
++++ b/m4/check_ssl.m4 2020-11-11 08:31:28.319659865 +0100
+@@ -46,7 +46,7 @@
+ SSLDIR="${ssldir}"
+ SSL_CFLAGS="-I$ssldir/include -I$ssldir/include/openssl";
+ SSL_CXXFLAGS="-I$ssldir/include -I$ssldir/include/openssl";
+- SSL_LIBS="-L$ssldir -L$ssldir/lib -lssl -lcrypto"
++ SSL_LIBS="-lssl -lcrypto"
+ AC_CHECK_LIB([dl], [dlopen],
+ [SSL_LIBS="${SSL_LIBS} ${sah_lib_last}"])
+ AC_CHECK_LIB([z], [gzopen],
+@@ -58,7 +58,7 @@
+ SSLDIR="${ssldir}"
+ SSL_CFLAGS="-I$ssldir/include/"
+ SSL_CXXFLAGS="-I$ssldir/include/"
+- SSL_LIBS="-L$ssldir -L$ssldir/lib -lssl -lcrypto"
++ SSL_LIBS="-lssl -lcrypto"
+ AC_CHECK_LIB([dl], [dlopen],
+ [SSL_LIBS="${SSL_LIBS} ${sah_lib_last}"])
+ AC_CHECK_LIB([z], [gzopen],
diff --git a/sci-misc/boinc/files/boinc.init.in b/sci-misc/boinc/files/boinc.init.in
index b46a06e3d384..763b69694444 100644
--- a/sci-misc/boinc/files/boinc.init.in
+++ b/sci-misc/boinc/files/boinc.init.in
@@ -18,12 +18,12 @@ create_work_directory() {
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
+ # 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
@@ -117,17 +117,6 @@ env_check() {
return 0
}
-need_passwd_arg() {
- local vers=$(${BOINCBIN} --version | tr -d .)
- [ -z "${vers}" ] && vers="00"
- [ $(expr substr "${vers}" 1 2) -lt 74 ] && return 0
-
- # From version 7.4 on, the default is to read
- # gui_rpc_auth.cfg for the password.
-
- return 1
-}
-
start_pre() {
env_check || return 1
create_work_directory || return 1
@@ -164,7 +153,6 @@ start() {
}
attach() {
- local password=""
local url=""
local key=""
@@ -182,14 +170,10 @@ attach() {
"${RC_SERVICE}" start
fi
- if need_passwd_arg; then
- password="--passwd \"$(cat "${RUNTIMEDIR}/gui_rpc_auth.cfg")\""
- fi
-
ebegin "${RC_SVCNAME}: Attaching to project"
start-stop-daemon --user "${USER}:${GROUP}" --quiet \
--chdir "${RUNTIMEDIR}" --exec "${BOINCCMD}" \
- -- ${password} --project_attach ${url} ${key}
+ -- --project_attach ${url} ${key}
eend $?
sleep 10
@@ -197,15 +181,10 @@ attach() {
}
stop() {
- local password=""
local stop_timeout="SIGTERM/60/SIGTERM/30/SIGKILL/30"
env_check || return 1
- if need_passwd_arg; then
- password="--passwd \"$(cat "${RUNTIMEDIR}/gui_rpc_auth.cfg")\""
- fi
-
ebegin "Stopping ${RC_SVCNAME}"
start-stop-daemon --stop --quiet --progress \
--retry ${stop_timeout} \
@@ -216,19 +195,13 @@ stop() {
resume() {
env_check || return 1
- local password=""
-
- if need_passwd_arg; then
- password="--passwd \"$(cat "${RUNTIMEDIR}/gui_rpc_auth.cfg")\""
- fi
-
for url in $(cd "${RUNTIMEDIR}" ; \
- "${BOINCCMD}" ${password} --get_project_status | \
+ "${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}" \
- -- ${password} --project ${url} resume
+ -- --project ${url} resume
eend $?
done
}
@@ -236,19 +209,13 @@ resume() {
suspend() {
env_check || return 1
- local password=""
-
- if need_passwd_arg; then
- password="--passwd \"$(cat "${RUNTIMEDIR}/gui_rpc_auth.cfg")\""
- fi
-
for url in $(cd "${RUNTIMEDIR}" ; \
- "${BOINCCMD}" ${password} --get_project_status | \
+ "${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}" \
- -- ${password} --project ${url} suspend
+ -- --project ${url} suspend
eend $?
done
}
diff --git a/sci-misc/boinc/metadata.xml b/sci-misc/boinc/metadata.xml
index ca04e552419f..3d9951823296 100644
--- a/sci-misc/boinc/metadata.xml
+++ b/sci-misc/boinc/metadata.xml
@@ -1,22 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="project">
- <email>sci@gentoo.org</email>
- <name>Gentoo Science Project</name>
- </maintainer>
-<longdescription lang="en">
- BOINC (Berkeley Open Infrastructure for Network Computing) is a software
- platform for distributed computing using volunteered computer resources.
-</longdescription>
- <use>
- <flag name="cuda">
- Use nvidia cuda toolkit for speeding up computations.
- NOTE: works only for subset of nvidia graphic cards so make sure your card
- is supported before opening a bug about it.
- </flag>
- </use>
- <upstream>
- <remote-id type="github">BOINC/boinc</remote-id>
- </upstream>
+ <maintainer type="project">
+ <email>sci@gentoo.org</email>
+ <name>Gentoo Science Project</name>
+ </maintainer>
+ <maintainer type="person">
+ <email>sven.eden@prydeworx.com</email>
+ <name>Sven Eden</name>
+ </maintainer>
+ <maintainer type="project">
+ <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>
+ <use>
+ <flag name="cuda">
+ Use nvidia cuda toolkit for speeding up computations.
+ NOTE: works only for subset of nvidia graphic cards so make sure your card
+ is supported before opening a bug about it.
+ </flag>
+ </use>
+ <upstream>
+ <remote-id type="github">BOINC/boinc</remote-id>
+ </upstream>
</pkgmetadata>