diff options
Diffstat (limited to 'sci-misc')
-rw-r--r-- | sci-misc/boinc/Manifest | 4 | ||||
-rw-r--r-- | sci-misc/boinc/boinc-7.2.44-r4.ebuild | 166 | ||||
-rw-r--r-- | sci-misc/boinc/boinc-7.4.52-r4.ebuild | 171 | ||||
-rw-r--r-- | sci-misc/boinc/boinc-7.6.33-r4.ebuild | 171 | ||||
-rw-r--r-- | sci-misc/boinc/files/boinc.conf | 23 | ||||
-rw-r--r-- | sci-misc/boinc/files/boinc.init | 226 | ||||
-rw-r--r-- | sci-misc/boinc/files/boinc.service | 11 | ||||
-rw-r--r-- | sci-misc/boinc/files/fix_webview.patch | 11 | ||||
-rw-r--r-- | sci-misc/boinc/metadata.xml | 27 |
9 files changed, 810 insertions, 0 deletions
diff --git a/sci-misc/boinc/Manifest b/sci-misc/boinc/Manifest new file mode 100644 index 0000000..93aca18 --- /dev/null +++ b/sci-misc/boinc/Manifest @@ -0,0 +1,4 @@ +DIST boinc-7.2.44.tar.gz 46626134 SHA256 bae214f238b8b3d1826a44e3a9e5d91cbad165e7df6daf8a7f208f36c51c5425 SHA512 60f58eecbe1f8d1a272b338d0c2b2fcbfb95538c448cbfdab25d3e860129b519a2c3b2608a909e285bdf4378c23a71107a6d3c2d3aa519ec906480d81be19ca9 WHIRLPOOL f071fce088769ca35bacc9466e3a863bc619d025e14aa26b96a5a736027e4438a2d660df804d95cc635c4bd83e636c0c79e2712f2953bbc2fd905091ec1a1589 +DIST boinc-7.4.52.tar.gz 44146174 SHA256 ac27154ad28d9d0a63ba7153ebb7bcbbd0586744c763c91deeb0325d56530192 SHA512 32623552e091bf388e85e5f118a8cd035b677091620d2b171513299428e4b53b94f7bfd75e8d4e9f46de3a7cadd8b498434acc3b9aeffbd3667aa18d65c0bc78 WHIRLPOOL e1035ba513a3adced4d5576e856fc43213cca923f3d016aa86c19784a4efcbaa7e599a2728568e14121a63aa89365b1ae00b99af588824f17371836f9494266e +DIST boinc-7.6.33.tar.gz 43569544 SHA256 c4b1c29b9655013e0ac61dddf47ad7f30f38c46159f02a9d9dc8ab854e99aa6d SHA512 c1a98d1a489835abdac72b300c0c8ce82eec9a677ff891c57da4df9875a9bbdd4b45dd9d5ae6ddc2926a0e47ae281fb94ff87815b8aeab0786e15062465e2c20 WHIRLPOOL 118578c4058b3f19fab61982a2f2007379790f37cd077f80f7e4c6a7bed30016142c3236af6274553c19ac1a662b4022ddf6323e22c7dc697ea30ca0bccfbaeb +DIST boinc.tif 288208 SHA256 5c14c65a7531e1dc3f7f7c18ef86eb0e27726527cb835967aed8b0d003eb564a SHA512 548e19b87fd70dbeb05687320b86aad39981c161b5b5b7e02fc3ce886d4c464c9bb763d5652d9895dd505ce247c7ff4490caa3d407e28f54ce889ffbab22d046 WHIRLPOOL 6a6cace44c8483000cda787da39006db521fd9408539f8abca2c2ab913371405b97719af0518acd2f5239451a9605d0f6d67a40fdb14cb49a03a42a7a44a4c86 diff --git a/sci-misc/boinc/boinc-7.2.44-r4.ebuild b/sci-misc/boinc/boinc-7.2.44-r4.ebuild new file mode 100644 index 0000000..7a19029 --- /dev/null +++ b/sci-misc/boinc/boinc-7.2.44-r4.ebuild @@ -0,0 +1,166 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +WX_GTK_VER=2.8 + +inherit autotools eutils linux-info systemd user versionator wxwidgets + +MY_PV=$(get_version_component_range 1-2) + +DESCRIPTION="The Berkeley Open Infrastructure for Network Computing" +HOMEPAGE="http://boinc.ssl.berkeley.edu/" +SRC_URI="https://github.com/BOINC/boinc/archive/client_release/${MY_PV}/${PV}.tar.gz -> ${P}.tar.gz + X? ( http://boinc.berkeley.edu/logo/boinc_glossy2_512_F.tif -> ${PN}.tif )" +RESTRICT="mirror" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86" +IUSE="X cuda curl_ssl_gnutls curl_ssl_libressl +curl_ssl_openssl static-libs" + +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. +RDEPEND=" + !sci-misc/boinc-bin + !app-admin/quickswitch + >=app-misc/ca-certificates-20080809 + net-misc/curl[curl_ssl_gnutls(-)=,curl_ssl_libressl(-)=,-curl_ssl_nss(-),curl_ssl_openssl(-)=,-curl_ssl_axtls(-),-curl_ssl_cyassl(-),-curl_ssl_polarssl(-)] + sys-apps/util-linux + sys-libs/zlib + cuda? ( + >=dev-util/nvidia-cuda-toolkit-2.1 + >=x11-drivers/nvidia-drivers-180.22 + ) + X? ( + dev-db/sqlite:3 + media-libs/freeglut + sys-libs/glibc:2.2 + virtual/jpeg:0= + x11-libs/gtk+:2 + >=x11-libs/libnotify-0.7 + x11-libs/wxGTK:${WX_GTK_VER}[X,opengl] + ) +" +DEPEND="${RDEPEND} + sys-devel/gettext + app-text/docbook-xml-dtd:4.4 + app-text/docbook2X + X? ( virtual/imagemagick-tools[png,tiff] ) +" + +S="${WORKDIR}/${PN}-client_release-${MY_PV}-${PV}" + +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 + + use X && need-wxwidgets unicode +} + +src_configure() { + 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" + + newinitd "${FILESDIR}"/${PN}.init ${PN} + newconfd "${FILESDIR}"/${PN}.conf ${PN} + systemd_dounit "${FILESDIR}"/${PN}.service +} + +pkg_preinst() { + enewgroup ${PN} + # note this works only for first install so we have to + # elog user about the need of being in video group + local groups="${PN}" + if use cuda; then + groups+=",video" + fi + enewuser ${PN} -1 -1 /var/lib/${PN} "${groups}" +} + +pkg_postinst() { + 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 + if use cuda; then + elog "To be able to use CUDA you should add boinc user to video group." + elog "Run as root:" + elog "gpasswd -a boinc video" + fi +} diff --git a/sci-misc/boinc/boinc-7.4.52-r4.ebuild b/sci-misc/boinc/boinc-7.4.52-r4.ebuild new file mode 100644 index 0000000..d33072c --- /dev/null +++ b/sci-misc/boinc/boinc-7.4.52-r4.ebuild @@ -0,0 +1,171 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +WX_GTK_VER=3.0 + +inherit autotools eutils linux-info systemd user versionator wxwidgets + +MY_PV=$(get_version_component_range 1-2) + +DESCRIPTION="The Berkeley Open Infrastructure for Network Computing" +HOMEPAGE="http://boinc.ssl.berkeley.edu/" +SRC_URI="https://github.com/BOINC/boinc/archive/client_release/${MY_PV}/${PV}.tar.gz -> ${P}.tar.gz + X? ( http://boinc.berkeley.edu/logo/boinc_glossy2_512_F.tif -> ${PN}.tif )" +RESTRICT="mirror" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86" +IUSE="X cuda curl_ssl_gnutls curl_ssl_libressl +curl_ssl_openssl static-libs" + +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. +RDEPEND=" + !sci-misc/boinc-bin + !app-admin/quickswitch + >=app-misc/ca-certificates-20080809 + net-misc/curl[curl_ssl_gnutls(-)=,curl_ssl_libressl(-)=,-curl_ssl_nss(-),curl_ssl_openssl(-)=,-curl_ssl_axtls(-),-curl_ssl_cyassl(-),-curl_ssl_polarssl(-)] + sys-apps/util-linux + sys-libs/zlib + cuda? ( + >=dev-util/nvidia-cuda-toolkit-2.1 + >=x11-drivers/nvidia-drivers-180.22 + ) + X? ( + dev-db/sqlite:3 + media-libs/freeglut + sys-libs/glibc:2.2 + virtual/jpeg:0= + x11-libs/gtk+:2 + >=x11-libs/libnotify-0.7 + x11-libs/wxGTK:${WX_GTK_VER}[X,opengl,webkit] + ) +" +DEPEND="${RDEPEND} + sys-devel/gettext + app-text/docbook-xml-dtd:4.4 + app-text/docbook2X + X? ( virtual/imagemagick-tools[png,tiff] ) +" + +PATCHES=( + # >=x11-libs/wxGTK-3.0.2.0-r3 has webview removed, bug 587462 + "${FILESDIR}"/fix_webview.patch +) + +S="${WORKDIR}/${PN}-client_release-${MY_PV}-${PV}" + +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 + + use X && need-wxwidgets unicode +} + +src_configure() { + 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" + + newinitd "${FILESDIR}"/${PN}.init ${PN} + newconfd "${FILESDIR}"/${PN}.conf ${PN} + systemd_dounit "${FILESDIR}"/${PN}.service +} + +pkg_preinst() { + enewgroup ${PN} + # note this works only for first install so we have to + # elog user about the need of being in video group + local groups="${PN}" + if use cuda; then + groups+=",video" + fi + enewuser ${PN} -1 -1 /var/lib/${PN} "${groups}" +} + +pkg_postinst() { + 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 + if use cuda; then + elog "To be able to use CUDA you should add boinc user to video group." + elog "Run as root:" + elog "gpasswd -a boinc video" + fi +} diff --git a/sci-misc/boinc/boinc-7.6.33-r4.ebuild b/sci-misc/boinc/boinc-7.6.33-r4.ebuild new file mode 100644 index 0000000..d33072c --- /dev/null +++ b/sci-misc/boinc/boinc-7.6.33-r4.ebuild @@ -0,0 +1,171 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +WX_GTK_VER=3.0 + +inherit autotools eutils linux-info systemd user versionator wxwidgets + +MY_PV=$(get_version_component_range 1-2) + +DESCRIPTION="The Berkeley Open Infrastructure for Network Computing" +HOMEPAGE="http://boinc.ssl.berkeley.edu/" +SRC_URI="https://github.com/BOINC/boinc/archive/client_release/${MY_PV}/${PV}.tar.gz -> ${P}.tar.gz + X? ( http://boinc.berkeley.edu/logo/boinc_glossy2_512_F.tif -> ${PN}.tif )" +RESTRICT="mirror" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86" +IUSE="X cuda curl_ssl_gnutls curl_ssl_libressl +curl_ssl_openssl static-libs" + +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. +RDEPEND=" + !sci-misc/boinc-bin + !app-admin/quickswitch + >=app-misc/ca-certificates-20080809 + net-misc/curl[curl_ssl_gnutls(-)=,curl_ssl_libressl(-)=,-curl_ssl_nss(-),curl_ssl_openssl(-)=,-curl_ssl_axtls(-),-curl_ssl_cyassl(-),-curl_ssl_polarssl(-)] + sys-apps/util-linux + sys-libs/zlib + cuda? ( + >=dev-util/nvidia-cuda-toolkit-2.1 + >=x11-drivers/nvidia-drivers-180.22 + ) + X? ( + dev-db/sqlite:3 + media-libs/freeglut + sys-libs/glibc:2.2 + virtual/jpeg:0= + x11-libs/gtk+:2 + >=x11-libs/libnotify-0.7 + x11-libs/wxGTK:${WX_GTK_VER}[X,opengl,webkit] + ) +" +DEPEND="${RDEPEND} + sys-devel/gettext + app-text/docbook-xml-dtd:4.4 + app-text/docbook2X + X? ( virtual/imagemagick-tools[png,tiff] ) +" + +PATCHES=( + # >=x11-libs/wxGTK-3.0.2.0-r3 has webview removed, bug 587462 + "${FILESDIR}"/fix_webview.patch +) + +S="${WORKDIR}/${PN}-client_release-${MY_PV}-${PV}" + +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 + + use X && need-wxwidgets unicode +} + +src_configure() { + 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" + + newinitd "${FILESDIR}"/${PN}.init ${PN} + newconfd "${FILESDIR}"/${PN}.conf ${PN} + systemd_dounit "${FILESDIR}"/${PN}.service +} + +pkg_preinst() { + enewgroup ${PN} + # note this works only for first install so we have to + # elog user about the need of being in video group + local groups="${PN}" + if use cuda; then + groups+=",video" + fi + enewuser ${PN} -1 -1 /var/lib/${PN} "${groups}" +} + +pkg_postinst() { + 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 + if use cuda; then + elog "To be able to use CUDA you should add boinc user to video group." + elog "Run as root:" + elog "gpasswd -a boinc video" + fi +} diff --git a/sci-misc/boinc/files/boinc.conf b/sci-misc/boinc/files/boinc.conf new file mode 100644 index 0000000..22fcca0 --- /dev/null +++ b/sci-misc/boinc/files/boinc.conf @@ -0,0 +1,23 @@ +# Config file for /etc/init.d/boinc + +# Owner of BOINC process (must be existing) +USER="boinc" +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.init b/sci-misc/boinc/files/boinc.init new file mode 100644 index 0000000..ceeeac8 --- /dev/null +++ b/sci-misc/boinc/files/boinc.init @@ -0,0 +1,226 @@ +#!/sbin/openrc-run +# Copyright 1999-2016 Gentoo Foundation +# 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() { + if [[ ! -d "${RUNTIMEDIR}" ]]; then + einfo "Directory ${RUNTIMEDIR} does not exist, creating now." + mkdir -p "${RUNTIMEDIR}" + if [[ ! -d "${RUNTIMEDIR}" ]]; then + eeror "Directory ${RUNTIMEDIR} could not be created!" + return 1 + fi + + # ensure proper ownership + chown "${USER}:${GROUP}" "${RUNTIMEDIR}" + fi + + if [[ ! -e "${RUNTIMEDIR}"/ca-bundle.crt ]]; then + ln -s /etc/ssl/certs/ca-certificates.crt "${RUNTIMEDIR}"/ca-bundle.crt + fi + + return 0 +} + + +cuda_check() { + local libtarget="${RUNTIMEDIR}/libcudart.so" + local libsource="$(ls -t /opt/cuda/lib*/libcudart.so 2>/dev/null | head -n 1)" + + # Remove a broken symlink + if [[ -h "${libtarget}" ]] \ + && [[ "${libsource}" != "$(readlink "${libtarget}")" ]]; then + rm -f "${libtarget}" + fi + + # symlink the correct path + if [[ -n "${libsource}" ]] \ + && [[ -f "${libsource}" ]] \ + && [[ ! -h "${libtarget}" ]]; then + ln -snf "$libsource" "${libtarget}" + fi +} + + +env_check() { + # Make sure the configuration is sane + : ${USER:="boinc"} + : ${GROUP:="boinc"} + : ${RUNTIMEDIR:="/var/lib/boinc"} + : ${BOINCBIN:="$(which boinc_client)"} + : ${BOINC_PIDFILE:="/var/run/boinc_client.pid"} + : ${BOINCCMD:="$(which /usr/bin/boinccmd)"} + : ${ALLOW_REMOTE_RPC:="yes"} + : ${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 +} + + +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 + cuda_check + + 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 password="" + 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 + + 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} + eend $? + + sleep 10s + tail "${RUNTIMEDIR}/stdoutdae.txt" +} + + +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 \ + --pidfile "${BOINC_PIDFILE}" + eend $? +} + + +resume() { + env_check || return 1 + + local password="" + local master_urls=( \ + $("${BOINCCMD}" --get_project_status | \ + sed -n 's/\s*master URL: //p') \ + ) + + if need_passwd_arg; then + password="--passwd \"$(cat "${RUNTIMEDIR}/gui_rpc_auth.cfg")\"" + fi + + for url in "${master_urls[@]}"; do + ebegin "Resuming $url" + start-stop-daemon --user "${USER}:${GROUP}" --quiet \ + --chdir "${RUNTIMEDIR}" --exec "${BOINCCMD}" \ + -- ${password} --project ${url} resume + eend $? + done +} + + +suspend() { + env_check || return 1 + + local password="" + local master_urls=( \ + $("${BOINCCMD}" --get_project_status | \ + sed -n 's/\s*master URL: //p') \ + ) + + if need_passwd_arg; then + password="--passwd \"$(cat "${RUNTIMEDIR}/gui_rpc_auth.cfg")\"" + fi + + for url in "${master_urls[@]}"; do + ebegin "Suspending $url" + start-stop-daemon --user "${USER}:${GROUP}" --quiet \ + --chdir "${RUNTIMEDIR}" --exec "${BOINCCMD}" \ + -- ${password} --project ${url} suspend + eend $? + done +} diff --git a/sci-misc/boinc/files/boinc.service b/sci-misc/boinc/files/boinc.service new file mode 100644 index 0000000..af8edf4 --- /dev/null +++ b/sci-misc/boinc/files/boinc.service @@ -0,0 +1,11 @@ +[Unit] +Description=BOINC Daemon + +[Service] +User=boinc +Group=boinc +Nice=19 +ExecStart=/usr/bin/boinc_client --dir /var/lib/boinc --redirectio + +[Install] +WantedBy=multi-user.target diff --git a/sci-misc/boinc/files/fix_webview.patch b/sci-misc/boinc/files/fix_webview.patch new file mode 100644 index 0000000..6c141eb --- /dev/null +++ b/sci-misc/boinc/files/fix_webview.patch @@ -0,0 +1,11 @@ +--- a/configure.ac 2016-07-06 11:16:41.000000000 +0200 ++++ b/configure.ac 2016-07-06 11:45:51.088155620 +0200 +@@ -1250,7 +1250,7 @@ + CLIENTGUIFLAGS="${CLIENTGUIFLAGS} -DNDEBUG" + fi + +-CLIENTGUILIBS="${WX_LIBS} ${SQLITE3_LIBS}" ++CLIENTGUILIBS="${WX_LIBS} $($WX_CONFIG_WITH_ARGS --libs webview) ${SQLITE3_LIBS}" + + if test "${enable_client_release}" = "yes" ; then + if test "x${WX_LIBS_STATIC}" = "x" ; then diff --git a/sci-misc/boinc/metadata.xml b/sci-misc/boinc/metadata.xml new file mode 100644 index 0000000..c65c76f --- /dev/null +++ b/sci-misc/boinc/metadata.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>yamakuzure@gmx.net</email> + <name>Sven Eden</name> + <description>Proxied maintainer; set to assignee in all bugs</description> + </maintainer> + <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> +</pkgmetadata> |