diff options
-rw-r--r-- | sci-misc/boinc/Manifest | 1 | ||||
-rw-r--r-- | sci-misc/boinc/boinc-7.16.14.ebuild | 205 | ||||
-rw-r--r-- | sci-misc/boinc/files/boinc-7.16-fix_webview.patch | 11 | ||||
-rw-r--r-- | sci-misc/boinc/files/boinc-7.16-remove-usr_lib.patch | 89 | ||||
-rw-r--r-- | sci-misc/boinc/files/boinc.init.in | 53 | ||||
-rw-r--r-- | sci-misc/boinc/metadata.xml | 44 |
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> |