From 1736df328f9404f0f0841e25b9f6a158d9ad085c Mon Sep 17 00:00:00 2001 From: Sven Eden Date: Wed, 27 Jul 2022 13:38:07 +0200 Subject: sci-misc/boinc: Bump to 7.20.2 ; plus OpenCL dependency fixes BOINC can now detect and use the correct OpenCL implementations for various situations. Therefore VIDEO_CARDS is questioned to pull in the needed dependencies: * video_cards_amdgpu : dev-libs/rocm-opencl-runtime -> AMD GPUs supported by the amdgpu kernel driver. 64-bit only * video_cards_intel : dev-libs/intel-compute-runtime -> integrated Intel GPUs from Broadwell onwards. 64-bit only * video_cards_nvidia : media-gfx/nvidia-cg-toolkit -> USE="cuda" is enforced in this case * video_cards_radeonsi : media-libs/mesa[opencl] WARNING: Only nvidia+intel have been tested yet! Bug: https://bugs.gentoo.org/861440 Signed-off-by: Sven Eden Signed-off-by: Florian Schmaus --- sci-misc/boinc/Manifest | 2 +- sci-misc/boinc/boinc-7.20.2-r2.ebuild | 207 ++++++++++++++++++++++++++++++++++ sci-misc/boinc/metadata.xml | 1 + 3 files changed, 209 insertions(+), 1 deletion(-) create mode 100644 sci-misc/boinc/boinc-7.20.2-r2.ebuild (limited to 'sci-misc') diff --git a/sci-misc/boinc/Manifest b/sci-misc/boinc/Manifest index 97a54e30850d..8522dc31b874 100644 --- a/sci-misc/boinc/Manifest +++ b/sci-misc/boinc/Manifest @@ -1,2 +1,2 @@ -DIST boinc-7.18.1.tar.gz 50851883 BLAKE2B 64d321c8c56d7c34a08646dc16de5ddbb9b8e4be57b673fa77515845d967e28b5cf1fda677293e2fc8cf36a18ac0b7e7feebfbd8e434ebed41b8280c7395950d SHA512 200587a0896aec6a7e7247132811141909aa333cb2bb9350c5ba016ffdf056413b1c5346361b311c087634b2d29cdbb204486385d8561a299b68739244c5a532 +DIST boinc-7.20.2.tar.gz 46555666 BLAKE2B 4d11217739d341c5b61d86afa02eebdad80809f42caa3f6dea1d86ed53d79004d60fa362fd04d53060060472e108e0ee0aa0428e4799eb70f2e98f07dc1f39cd SHA512 0309d5585ece96a5d9021058870dce9a96c89ece269650961a9b22d5219529e242a55dc1e466f5364535033198ca5c36496ca23125a9cda0c308bfdb4372abbb DIST boinc.tif 288208 BLAKE2B 156a99f08dcabc62a46874830600b9d237e64b650b8edf35db67b82006a67039a3965707194e8f0b25cfd65138b8700c0bfb877507418393b9cd3df32e94d260 SHA512 548e19b87fd70dbeb05687320b86aad39981c161b5b5b7e02fc3ce886d4c464c9bb763d5652d9895dd505ce247c7ff4490caa3d407e28f54ce889ffbab22d046 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..4f714313eeff --- /dev/null +++ b/sci-misc/boinc/boinc-7.20.2-r2.ebuild @@ -0,0 +1,207 @@ +# 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_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? ( opencl 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? ( + dev-util/nvidia-cuda-toolkit + x11-drivers/nvidia-drivers + ) + 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 media-gfx/nvidia-cg-toolkit ) + 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" + + 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 +} + +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/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-65-gdbad