From 9d396115d657f4e18ffa2c1d073980d8e3d6710f Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 1 Aug 2022 15:15:48 +0100 Subject: gentoo auto-resync : 01:08:2022 - 15:15:48 --- sci-misc/boinc/Manifest | 10 +- sci-misc/boinc/boinc-7.18.1-r2.ebuild | 197 ------------------------------ sci-misc/boinc/boinc-7.20.2-r2.ebuild | 209 ++++++++++++++++++++++++++++++++ sci-misc/boinc/boinc-9999.ebuild | 46 ++++--- sci-misc/boinc/files/boinc.init | 172 ++++++++++++++++++++++++++ sci-misc/boinc/files/boinc.init.in | 221 ---------------------------------- sci-misc/boinc/metadata.xml | 1 + 7 files changed, 416 insertions(+), 440 deletions(-) delete mode 100644 sci-misc/boinc/boinc-7.18.1-r2.ebuild create mode 100644 sci-misc/boinc/boinc-7.20.2-r2.ebuild create mode 100644 sci-misc/boinc/files/boinc.init delete mode 100644 sci-misc/boinc/files/boinc.init.in (limited to 'sci-misc/boinc') diff --git a/sci-misc/boinc/Manifest b/sci-misc/boinc/Manifest index b65c722773ae..bb0de0c9bf2d 100644 --- a/sci-misc/boinc/Manifest +++ b/sci-misc/boinc/Manifest @@ -1,8 +1,8 @@ AUX boinc-7.18-fix_webview.patch 382 BLAKE2B c96026e1782fdc3608798fcedcc3d320950e7fd7d548e6f42d35b553d32b06d4400dcfdd3724cd588c0826fc3c258eddc78558fd79d55682e38f1c137bb5bb25 SHA512 a9e7da3dbedeaf3a5aad88ffcaf2aa95f6dfe257a0390f5f7f3a5ecd94c1b256cfb793cdbf7d76e1f8f073b202e8c084c5e8ddb181767b4b13813665ede99dc8 AUX boinc.conf 606 BLAKE2B bbd48576bdf340b5a8a28ad72c8e4ee6bcd8579331edf036db357d324aa1a484836aa869fd5c39a7ed7ccf805e413a01eb2a27537d32f21692599291ec1e325d SHA512 aaf6e7180d4fde023c228a038a5d9ab295165ad6ee03bc892e5003943fa91bff03b21c39c86d6b4406d70d8d67e4fcb6dfb592a78e6df174e6bac28f70056654 -AUX boinc.init.in 5370 BLAKE2B a6b501850adf43ac80c7796bdc354038c257a0bd18a571960b0fb69bbba3a584c6aa8c54b4a9ea0bf1a159e5718ff2018ffa728a6ca1dc3bf0ccb4d9f2b5b55d SHA512 7ac150f008332a7bb7fb4fd4168bb936d183193a3a42b3919bbcc1c3d63cced8311df3acb94c0285ff2b66135e57d82397c68c352a17f177acdbbc35baefb498 -DIST boinc-7.18.1.tar.gz 50851883 BLAKE2B 64d321c8c56d7c34a08646dc16de5ddbb9b8e4be57b673fa77515845d967e28b5cf1fda677293e2fc8cf36a18ac0b7e7feebfbd8e434ebed41b8280c7395950d SHA512 200587a0896aec6a7e7247132811141909aa333cb2bb9350c5ba016ffdf056413b1c5346361b311c087634b2d29cdbb204486385d8561a299b68739244c5a532 +AUX boinc.init 4366 BLAKE2B 1323f79c31d02c544601633590a4cebd8d77c15cb78d7ef612a176e2f96096a9cc91d5088f90702f2020228972780a4e8b4b36112f652b74d9a9186efa118ccd SHA512 8796a8eca3f6267abfff32a7505063318a5989317c1d4f03629abd580742bd814c779d2b75b343f61a4bd6db5b84effcfcb0db3d885e14ec4a44f56110005c1c +DIST boinc-7.20.2.tar.gz 46555666 BLAKE2B 4d11217739d341c5b61d86afa02eebdad80809f42caa3f6dea1d86ed53d79004d60fa362fd04d53060060472e108e0ee0aa0428e4799eb70f2e98f07dc1f39cd SHA512 0309d5585ece96a5d9021058870dce9a96c89ece269650961a9b22d5219529e242a55dc1e466f5364535033198ca5c36496ca23125a9cda0c308bfdb4372abbb DIST boinc.tif 288208 BLAKE2B 156a99f08dcabc62a46874830600b9d237e64b650b8edf35db67b82006a67039a3965707194e8f0b25cfd65138b8700c0bfb877507418393b9cd3df32e94d260 SHA512 548e19b87fd70dbeb05687320b86aad39981c161b5b5b7e02fc3ce886d4c464c9bb763d5652d9895dd505ce247c7ff4490caa3d407e28f54ce889ffbab22d046 -EBUILD boinc-7.18.1-r2.ebuild 6009 BLAKE2B 6556adeaef0fc726f66b251ae3c2027c2fb1ca694101bfd6b79287e51672b2c194c43aa411697c728f22146436a409bfb6d61b165eff7e58e21c1341d7dc5cab SHA512 4ec715bf6741c583d4f6dd268ecf2ce0fe7e1789052398f27bbdf44c1ed46d925fd6eea77ea553155687751ad098ffa4530ea8026325214b4d9c991f7f7d3fec -EBUILD boinc-9999.ebuild 6208 BLAKE2B 44f05ed72eeb616eb0e9ee8daab1774e54b5258978e304ec15df03323b78bd0794c2ef62effcfa5a3e7108f18bdafaa84b903e98bed84ca4c13a2e3383ffa481 SHA512 a83d0ea229d080e27da9ea440a18d5a209ba9ce05abe31c1f649c6ffe274058fcda6283a70b6fb5ce43b2f92f0651caf8d3330bffe722b181cf081674c7daca2 -MISC metadata.xml 1013 BLAKE2B e84dc107eefa027eba8f6b9848b92c9e5d49c4f83523487922c5a3d8981d728fac6b11f4cce59625ca3aac62cfa822eded87bee7203a613dadc8fe0ab4d08148 SHA512 ebefa76522aab3b7a78a4cd06e20522b7cd4677bdc821969d4a407dbf0c6c58a6a6943a71a55b6d37ed4881d4e03c677f4698064acc518f1b898a014d7a65172 +EBUILD boinc-7.20.2-r2.ebuild 6234 BLAKE2B 0a089e08d11247fecbb3e4a9f1b8794679e2bbf741d84598e34f0b4276e7091562073eda130f57e564b148452b452c214d83b70113cdbb8c35a50838b0ea2d9e SHA512 ba2b0bc4fae6f045f0904b613e5678250ed0fb63ce0cc7420630ca8f31f3eb1239059df135e25ddf681f22c0e6a5d5f0b0b63947bc253c12ed66da6e2f23c1e0 +EBUILD boinc-9999.ebuild 6437 BLAKE2B f209b66b63de07806a6c35bbe85b69f1ffe86d8a792618d13e27416ef75c037c681cfecd3ba8a0190c1d365babbf1b920941cbe4bda9f1e47d92472bcd4a8588 SHA512 2fd959b4b27c27ca71cb97c7c7e1993c59228ca3f82557845c2fb2ec5f26f0183de89308e07cc8a81710f584937572f9eec3c478c25673bda9203ebf1e2c2105 +MISC metadata.xml 1092 BLAKE2B dd67235d65da71d4c9a8d1bb7a47a420afcebda050cd87e181c34465d4004e2c86c1c5f3eb027d99ab50d7019321618d2940432e34aa7f0caee7e800800cb548 SHA512 d26df4a70225e2fac7d6c32a28141bbd5b70d7d4afa9c22a767b641a7964bedabe01615278f7a739b17ee57d4bbda9f1a091c8a8883da51f453b75d84aa1688f diff --git a/sci-misc/boinc/boinc-7.18.1-r2.ebuild b/sci-misc/boinc/boinc-7.18.1-r2.ebuild deleted file mode 100644 index cc883b7b84a7..000000000000 --- a/sci-misc/boinc/boinc-7.18.1-r2.ebuild +++ /dev/null @@ -1,197 +0,0 @@ -# Copyright 1999-2022 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.0-gtk3 - -inherit autotools desktop flag-o-matic linux-info 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 ~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_openssl" - -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-20080809 - cuda? ( - >=dev-util/nvidia-cuda-toolkit-2.1 - >=x11-drivers/nvidia-drivers-180.22 - ) - dev-libs/openssl:= - net-misc/curl[curl_ssl_gnutls(-)=,-curl_ssl_nss(-),curl_ssl_openssl(-)=,-curl_ssl_axtls(-),-curl_ssl_cyassl(-)] - sys-libs/zlib - X? ( - dev-libs/glib:2 - media-libs/freeglut - media-libs/libjpeg-turbo:= - x11-libs/gtk+:3 - >=x11-libs/libnotify-0.7 - 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 -" - -PATCHES=( - # >=x11-libs/wxGTK-3.0.2.0-r3 has webview removed, bug 587462 - "${FILESDIR}"/${PN}-${MY_PV}-fix_webview.patch -) - -pkg_setup() { - # Bug 578750 - 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) - - 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 - # 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" - - 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/boinc-7.20.2-r2.ebuild b/sci-misc/boinc/boinc-7.20.2-r2.ebuild new file mode 100644 index 000000000000..f7d156f21794 --- /dev/null +++ b/sci-misc/boinc/boinc-7.20.2-r2.ebuild @@ -0,0 +1,209 @@ +# Copyright 1999-2022 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.0-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 ~ia64 ~ppc ~ppc64 ~sparc ~x86" + S="${WORKDIR}/${PN}-client_release-${MY_PV}-${PV}" +fi + +LICENSE="LGPL-3" +SLOT="0" + +IUSE_VIDEO_CARDS=" + video_cards_amdgpu + video_cards_intel + video_cards_nvidia + video_cards_radeonsi +" + +IUSE="${IUSE_VIDEO_CARDS} X cuda curl_ssl_gnutls +curl_ssl_openssl opencl" + +REQUIRED_USE=" + ^^ ( curl_ssl_gnutls curl_ssl_openssl ) + cuda? ( video_cards_nvidia ) + opencl? ( || ( ${IUSE_VIDEO_CARDS} ) ) +" + +# libcurl must not be using an ssl backend boinc does not support. +# If the libcurl ssl backend changes, boinc should be recompiled. +DEPEND=" + acct-user/boinc + app-misc/ca-certificates + cuda? ( + x11-drivers/nvidia-drivers + ) + opencl? ( + virtual/opencl + video_cards_amdgpu? ( amd64? ( dev-libs/rocm-opencl-runtime ) ) + video_cards_intel? ( amd64? ( dev-libs/intel-compute-runtime ) ) + video_cards_nvidia? ( x11-drivers/nvidia-drivers ) + video_cards_radeonsi? ( media-libs/mesa[opencl] ) + ) + dev-libs/openssl:= + net-misc/curl[curl_ssl_gnutls(-)=,-curl_ssl_nss(-),curl_ssl_openssl(-)=,-curl_ssl_axtls(-),-curl_ssl_cyassl(-)] + sys-libs/zlib + X? ( + dev-libs/glib:2 + media-libs/freeglut + media-libs/libjpeg-turbo:= + x11-libs/gtk+:3 + x11-libs/libnotify + x11-libs/libX11 + x11-libs/libXScrnSaver + 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 +" + +PATCHES=( + # >=x11-libs/wxGTK-3.0.2.0-r3 has webview removed, bug 587462 + "${FILESDIR}"/${PN}-7.18-fix_webview.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() { + 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) + + 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 + # 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-9999.ebuild b/sci-misc/boinc/boinc-9999.ebuild index 7f348a89ae3c..bb39d825d04c 100644 --- a/sci-misc/boinc/boinc-9999.ebuild +++ b/sci-misc/boinc/boinc-9999.ebuild @@ -8,7 +8,7 @@ EAPI=8 MY_PV=7.18 WX_GTK_VER=3.0-gtk3 -inherit autotools desktop flag-o-matic linux-info wxwidgets xdg-utils +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/" @@ -25,18 +25,36 @@ fi LICENSE="LGPL-3" SLOT="0" -IUSE="X cuda curl_ssl_gnutls +curl_ssl_openssl" -REQUIRED_USE="^^ ( curl_ssl_gnutls curl_ssl_openssl ) " +IUSE_VIDEO_CARDS=" + video_cards_amdgpu + video_cards_intel + video_cards_nvidia + video_cards_radeonsi +" + +IUSE="${IUSE_VIDEO_CARDS} X cuda curl_ssl_gnutls +curl_ssl_openssl opencl" + +REQUIRED_USE=" + ^^ ( curl_ssl_gnutls curl_ssl_openssl ) + cuda? ( video_cards_nvidia ) + opencl? ( || ( ${IUSE_VIDEO_CARDS} ) ) +" # 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-20080809 + app-misc/ca-certificates cuda? ( - >=dev-util/nvidia-cuda-toolkit-2.1 - >=x11-drivers/nvidia-drivers-180.22 + x11-drivers/nvidia-drivers + ) + opencl? ( + virtual/opencl + video_cards_amdgpu? ( amd64? ( dev-libs/rocm-opencl-runtime ) ) + video_cards_intel? ( amd64? ( dev-libs/intel-compute-runtime ) ) + video_cards_nvidia? ( x11-drivers/nvidia-drivers ) + video_cards_radeonsi? ( media-libs/mesa[opencl] ) ) dev-libs/openssl:= net-misc/curl[curl_ssl_gnutls(-)=,-curl_ssl_nss(-),curl_ssl_openssl(-)=,-curl_ssl_axtls(-),-curl_ssl_cyassl(-)] @@ -47,7 +65,7 @@ DEPEND=" media-libs/freeglut media-libs/libjpeg-turbo:= x11-libs/gtk+:3 - >=x11-libs/libnotify-0.7 + x11-libs/libnotify x11-libs/libX11 x11-libs/libXScrnSaver x11-libs/libxcb:= @@ -146,8 +164,7 @@ src_install() { rm -r "${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} + newinitd "${FILESDIR}"/${PN}.init ${PN} newconfd "${FILESDIR}"/${PN}.conf ${PN} } @@ -181,14 +198,9 @@ pkg_postinst() { 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 + + 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() { 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.init.in b/sci-misc/boinc/files/boinc.init.in deleted file mode 100644 index 9ac9b11a930d..000000000000 --- a/sci-misc/boinc/files/boinc.init.in +++ /dev/null @@ -1,221 +0,0 @@ -#!/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 -} - -fix_lib_symlinks() { - local src="$1" - local tgt="$2" - - # If the source does not exist, we can not do anything - if [ ! -f "${src}" ] ; then - return 1 - fi - - # Check whether the symlink is already there and in order - if [ -L "${tgt}" ] ; then - if [ -f "${tgt}" ] ; then - return 0 - fi - - # Remove broken symlink - if ! rm -f "${tgt}"; then - eerror "Removing '${tgt}' failed!" - return 1 - fi - fi - - # symlink the correct path - if ! ln -snf "${src}" "${tgt}"; then - eerror "Symlinking '${src}' to '${tgt}' failed!" - return 1 - fi - - return 0 -} - -cuda_check() { - local libsource="/opt/cuda/@libdir@/libcudart.so" - local libtarget="${RUNTIMEDIR}/libcudart.so" - - fix_lib_symlinks "${libsource}" "${libtarget}" || return 1 - return 0 -} - -opencl_check() { - local libsource="/usr/@libdir@/libOpenCL.so" - local libtarget="${RUNTIMEDIR}/libOpenCL.so" - - fix_lib_symlinks "${libsource}" "${libtarget}" || return 1 - 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 - cuda_check || einfo "CUDA not supported" - opencl_check || einfo "OpenCL not supported" - - 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/metadata.xml b/sci-misc/boinc/metadata.xml index 6dbc0bf0ab56..297bc5864a8d 100644 --- a/sci-misc/boinc/metadata.xml +++ b/sci-misc/boinc/metadata.xml @@ -23,6 +23,7 @@ NOTE: works only for subset of nvidia graphic cards so make sure your card is supported before opening a bug about it. + Use OpenCL to enable computations using your GPU. BOINC/boinc -- cgit v1.2.3