summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sci-misc/boinc/boinc-7.0.25.ebuild148
-rw-r--r--sci-misc/boinc/files/7.0.2-fix_subdirs.patch10
-rw-r--r--sci-misc/boinc/files/wxwidgets-2.8.0.12-menufix.patch14
3 files changed, 172 insertions, 0 deletions
diff --git a/sci-misc/boinc/boinc-7.0.25.ebuild b/sci-misc/boinc/boinc-7.0.25.ebuild
new file mode 100644
index 0000000..1571b08
--- /dev/null
+++ b/sci-misc/boinc/boinc-7.0.25.ebuild
@@ -0,0 +1,148 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sci-misc/boinc/boinc-6.12.42.ebuild,v 1.2 2011/11/04 19:22:44 scarabeus Exp $
+
+EAPI=4
+
+inherit flag-o-matic eutils wxwidgets autotools base
+
+DESCRIPTION="The Berkeley Open Infrastructure for Network Computing"
+HOMEPAGE="http://boinc.ssl.berkeley.edu/"
+SRC_URI="http://dev.gentooexperimental.org/~scarabeus/${P}.tar.xz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="X cuda"
+
+RDEPEND="
+ !sci-misc/boinc-bin
+ !app-admin/quickswitch
+ >=app-misc/ca-certificates-20080809
+ dev-libs/openssl
+ net-misc/curl[ssl,-gnutls(-),-nss(-),curl_ssl_openssl(+)]
+ 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
+ x11-libs/gtk+:2
+ >=x11-libs/libnotify-0.7
+ x11-libs/wxGTK:2.8[X,opengl]
+ )
+"
+DEPEND="${RDEPEND}
+ sys-devel/gettext
+ app-text/docbook-xml-dtd:4.4
+ app-text/docbook2X
+"
+
+PATCHES=(
+ "${FILESDIR}/7.0.2-fix_subdirs.patch"
+ "${FILESDIR}/wxwidgets-2.8.0.12-menufix.patch"
+)
+
+AUTOTOOLS_IN_SOURCE_BUILD=1
+
+src_prepare() {
+ # use system ssl certificates
+ mkdir "${S}"/curl
+ ln -s /etc/ssl/certs/ca-certificates.crt "${S}"/curl/ca-bundle.crt
+
+ # prevent bad changes in compile flags, bug 286701
+ sed -i -e "s:BOINC_SET_COMPILE_FLAGS::" configure.ac || die "sed failed"
+
+ base_src_prepare
+
+ eautoreconf
+}
+
+src_configure() {
+ local wxconf=""
+
+ # add gtk includes
+ append-flags "$(pkg-config --cflags gtk+-2.0)"
+
+ # look for wxGTK
+ if use X; then
+ WX_GTK_VER="2.8"
+ need-wxwidgets unicode
+ wxconf+=" --with-wx-config=${WX_CONFIG}"
+ else
+ wxconf+=" --without-wxdir"
+ fi
+
+ econf \
+ --disable-server \
+ --enable-client \
+ --enable-dynamic-client-linkage \
+ --disable-static \
+ --enable-unicode \
+ --with-ssl \
+ $(use_with X x) \
+ $(use_enable X manager) \
+ ${wxconf}
+}
+
+src_install() {
+ default
+ find "${ED}" -name '*.la' -exec rm -f {} +
+
+ dodir /var/lib/${PN}/
+ keepdir /var/lib/${PN}/
+
+ if use X; then
+ newicon "${S}"/packages/generic/sea/${PN}mgr.48x48.png ${PN}.png || die
+ make_desktop_entry boincmgr "${PN}" "${PN}" "Math;Science" "Path=/var/lib/${PN}"
+ fi
+
+ # cleanup cruft
+ rm -rf "${D}"/etc/
+
+ newinitd "${FILESDIR}"/${PN}.init ${PN}
+ newconfd "${FILESDIR}"/${PN}.conf ${PN}
+}
+
+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
+ if use cuda; then
+ enewuser ${PN} -1 -1 /var/lib/${PN} "${PN},video"
+ else
+ enewuser ${PN} -1 -1 /var/lib/${PN} "${PN}"
+ fi
+}
+
+pkg_postinst() {
+ echo
+ elog "You are using the source compiled version of ${PN}."
+ use X && elog "The graphical manager can be found at /usr/bin/${PN}mgr"
+ elog
+ elog "You need to attach to a project to do anything useful with ${PN}."
+ elog "You can do this by running /etc/init.d/${PN} 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/${PN}/gui_rpc_auth.cfg"
+ elog "Where /var/lib/ is default RUNTIMEDIR, that can be changed in:"
+ elog "/etc/conf.d/${PN}"
+ 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/7.0.2-fix_subdirs.patch b/sci-misc/boinc/files/7.0.2-fix_subdirs.patch
new file mode 100644
index 0000000..133fb51
--- /dev/null
+++ b/sci-misc/boinc/files/7.0.2-fix_subdirs.patch
@@ -0,0 +1,10 @@
+--- boinc-7.0.2.old/configure.ac 2011-12-25 08:48:12.000000000 +0800
++++ boinc-7.0.2/configure.ac 2011-12-25 08:50:29.000000000 +0800
+@@ -901,7 +901,6 @@
+ apps/Makefile
+ clientgui/Makefile
+ clientgui/res/Makefile
+- clientscr/Makefile
+ client/Makefile
+ client/win/boinc_path_config.py:py/boinc_path_config.py.in
+ client/scripts/Makefile
diff --git a/sci-misc/boinc/files/wxwidgets-2.8.0.12-menufix.patch b/sci-misc/boinc/files/wxwidgets-2.8.0.12-menufix.patch
new file mode 100644
index 0000000..8394a13
--- /dev/null
+++ b/sci-misc/boinc/files/wxwidgets-2.8.0.12-menufix.patch
@@ -0,0 +1,14 @@
+--- boinc-7.0.28/clientgui/AdvancedFrame.cpp.old 2011-10-21 20:17:10.000000000 +0800
++++ boinc-7.0.28/clientgui/AdvancedFrame.cpp 2012-05-20 05:50:38.000000000 +0800
+@@ -701,6 +701,11 @@
+
+ wxMenuBar* m_pOldMenubar = GetMenuBar();
+ SetMenuBar(m_pMenubar);
++#ifdef __WXGTK__
++ /* Force WX to recalculate the size of the (new) menu bar */
++ /* courtesy Huibert (Huib Boinc Forums) */
++ SendSizeEvent();
++#endif
+ #ifdef __WXMAC__
+ m_pMenubar->MacInstallMenuBar();
+ MacLocalizeBOINCMenu();