From 2f880d6a686c83e65f19ef69e7745941fecf8cf0 Mon Sep 17 00:00:00 2001 From: Tomas Chvatal Date: Mon, 23 May 2011 13:00:28 +0000 Subject: Revision bump for total rewrite of the init script. (Portage version: 2.2.0_alpha34/cvs/Linux x86_64) --- sci-misc/boinc/ChangeLog | 8 +- sci-misc/boinc/boinc-6.12.26-r1.ebuild | 152 +++++++++++++++++++++++++++++++++ sci-misc/boinc/boinc-6.12.26.ebuild | 152 --------------------------------- sci-misc/boinc/files/boinc.conf | 3 - sci-misc/boinc/files/boinc.init | 89 ++++++++----------- 5 files changed, 193 insertions(+), 211 deletions(-) create mode 100644 sci-misc/boinc/boinc-6.12.26-r1.ebuild delete mode 100644 sci-misc/boinc/boinc-6.12.26.ebuild (limited to 'sci-misc') diff --git a/sci-misc/boinc/ChangeLog b/sci-misc/boinc/ChangeLog index 83731d81524f..9882251b9ae5 100644 --- a/sci-misc/boinc/ChangeLog +++ b/sci-misc/boinc/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for sci-misc/boinc # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sci-misc/boinc/ChangeLog,v 1.98 2011/05/22 09:34:20 scarabeus Exp $ +# $Header: /var/cvsroot/gentoo-x86/sci-misc/boinc/ChangeLog,v 1.99 2011/05/23 13:00:27 scarabeus Exp $ + +*boinc-6.12.26-r1 (23 May 2011) + + 23 May 2011; Tomáš Chvátal -boinc-6.12.26.ebuild, + +boinc-6.12.26-r1.ebuild, files/boinc.conf, files/boinc.init: + Revision bump for total rewrite of the init script. 22 May 2011; Tomáš Chvátal metadata.xml: Shutup repoman warining about unused local useflags. diff --git a/sci-misc/boinc/boinc-6.12.26-r1.ebuild b/sci-misc/boinc/boinc-6.12.26-r1.ebuild new file mode 100644 index 000000000000..bd1e2971e600 --- /dev/null +++ b/sci-misc/boinc/boinc-6.12.26-r1.ebuild @@ -0,0 +1,152 @@ +# 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.26-r1.ebuild,v 1.1 2011/05/23 13:00:27 scarabeus Exp $ + +EAPI=4 + +inherit flag-o-matic depend.apache eutils wxwidgets autotools autotools-utils + +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] + 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 + x11-libs/wxGTK:2.8[X,opengl] + ) +" +DEPEND="${RDEPEND} + sys-devel/gettext + app-text/docbook-xml-dtd:4.4 + app-text/docbook2X +" + +PATCHES=( + "${FILESDIR}/${PV}-fix_subdirs.patch" + "${FILESDIR}/${PV}-libnotify-0.7.patch" +) + +AUTOTOOLS_IN_SOURCE_BUILD=1 + +src_prepare() { + # use system ssl certificates + mkdir "${S}"/curl + cp /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" + + autotools-utils_src_prepare + + eautoreconf +} + +src_configure() { + local wxconf="" + + # define preferable CFLAGS (recommended by upstream) + append-flags -O3 -funroll-loops -fforce-addr -ffast-math + # 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 + + myeconfargs=( + --disable-server + --enable-client + --enable-dynamic-client-linkage + --disable-static + --enable-unicode + --with-ssl + $(use_with X x) + $(use_enable X manager) + ${wxconf} + ) + autotools-utils_src_configure +} + +src_install() { + autotools-utils_src_install + remove_libtool_files all + + 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 "To do so run as root:" + elog "gpasswd -a boinc video" + fi +} diff --git a/sci-misc/boinc/boinc-6.12.26.ebuild b/sci-misc/boinc/boinc-6.12.26.ebuild deleted file mode 100644 index b1da70fd3037..000000000000 --- a/sci-misc/boinc/boinc-6.12.26.ebuild +++ /dev/null @@ -1,152 +0,0 @@ -# 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.26.ebuild,v 1.1 2011/05/22 09:22:59 scarabeus Exp $ - -EAPI=4 - -inherit flag-o-matic depend.apache eutils wxwidgets autotools autotools-utils - -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] - 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 - x11-libs/wxGTK:2.8[X,opengl] - ) -" -DEPEND="${RDEPEND} - sys-devel/gettext - app-text/docbook-xml-dtd:4.4 - app-text/docbook2X -" - -PATCHES=( - "${FILESDIR}/${PV}-fix_subdirs.patch" - "${FILESDIR}/${PV}-libnotify-0.7.patch" -) - -AUTOTOOLS_IN_SOURCE_BUILD=1 - -src_prepare() { - # use system ssl certificates - mkdir "${S}"/curl - cp /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" - - autotools-utils_src_prepare - - eautoreconf -} - -src_configure() { - local wxconf="" - - # define preferable CFLAGS (recommended by upstream) - append-flags -O3 -funroll-loops -fforce-addr -ffast-math - # 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 - - myeconfargs=( - --disable-server - --enable-client - --enable-dynamic-client-linkage - --disable-static - --enable-unicode - --with-ssl - $(use_with X x) - $(use_enable X manager) - ${wxconf} - ) - autotools-utils_src_configure -} - -src_install() { - autotools-utils_src_install - remove_libtool_files all - - 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 "To do so 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 index 827025b7da20..0fef6ae58e37 100644 --- a/sci-misc/boinc/files/boinc.conf +++ b/sci-misc/boinc/files/boinc.conf @@ -10,9 +10,6 @@ RUNTIMEDIR="/var/lib/boinc" # Location of the boinc command line binary BOINCBIN="/usr/bin/boinc_client" -# Logfile (/dev/null for nowhere) -LOGFILE="/var/log/boinc.log" - # Allow remote gui RPC yes or no ALLOW_REMOTE_RPC="no" diff --git a/sci-misc/boinc/files/boinc.init b/sci-misc/boinc/files/boinc.init index 37b4fa938f7c..8df428bb1aa5 100644 --- a/sci-misc/boinc/files/boinc.init +++ b/sci-misc/boinc/files/boinc.init @@ -1,7 +1,6 @@ #!/sbin/runscript opts="${opts} attach" -PIDFILE=/var/run/boinc.pid depend() { # we can use dns and net, but we can also in most cases live without them @@ -12,21 +11,13 @@ create_work_directory() { if [ ! -d "${RUNTIMEDIR}" ]; then einfo "Directory ${RUNTIMEDIR} not existing, creating now." mkdir "${RUNTIMEDIR}" - chown "${USER}:${GROUP}" "${RUNTIMEDIR}" if [ ! -d "${RUNTIMEDIR}" ]; then eeror "Directory ${RUNTIMEDIR} could not be created!" return 1 fi - ln -s /etc/ssl/certs/ca-certificates.crt "${RUNTIMEDIR}"/ca-bundle.crt fi -} - -generate_logs() { - if [ ! -f "${LOGFILE}" ]; then - einfo "No ${LOGFILE} around. Creating new..." - einfo "You really should use app-admin/logrotate for the log rotation." - touch "${LOGFILE}" - chown "${USER}:${GROUP}" "${LOGFILE}" + if [ ! -e "${RUNTIMEDIR}"/ca-bundle.crt ] ; then + ln -s /etc/ssl/certs/ca-certificates.crt "${RUNTIMEDIR}"/ca-bundle.crt fi } @@ -37,16 +28,23 @@ cuda_check() { fi } -start() { - ebegin "Starting BOINC" +check_baselayout() { + if [ "${RC_VERSION:-0}" = "0" ]; then + eerror "This script cannot be used for baselayout-1." + return 1 + fi +} +start() { + check_baselayout || return 1 create_work_directory || return 1 cuda_check - cd "${RUNTIMEDIR}" + # always ensure proper ownership + chown -R "${USER}:${GROUP}" "${RUNTIMEDIR}" - if [ ! -f lockfile ]; then - einfo "File $RUNTIMEDIR/lockfile does not exist, assuming first run." + 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 /etc/init.d/boinc attach or connect with a gui client" @@ -60,65 +58,46 @@ start() { ARGS="${ARGS} --allow_remote_gui_rpc" fi - if [ -n "${RC_UNAME}" ]; then - PARAMS="--background --stdout '${LOGFILE}' --stderr '${LOGFILE}' -- ${ARGS}" - else - PARAMS="-- ${ARGS} >> '${LOGFILE}' 2>&1" - fi - - generate_logs - - start-stop-daemon \ - --start --quiet --chdir "${RUNTIMEDIR}" \ - --make-pidfile \ - --pidfile "${PIDFILE}" \ - --chuid "${USER}:${GROUP}" \ - --nicelevel "${NICELEVEL}" \ - --exec "${BOINCBIN}" ${PARAMS} - - RESULT=$? - - eend ${RESULT} + ebegin "Starting ${SVCNAME}" + su -m ${USER} -c "nice -n ${NICELEVEL} \"${BOINCBIN}\" ${ARGS} --daemon --dir \"${RUNTIMEDIR}\" --redirectio" + eend $? } attach() { - local password args url key - local was_started=true + local password url key + + einfo "If you cant 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 - password=$(cat "${RUNTIMEDIR}/gui_rpc_auth.cfg") - args="--project_attach ${url} ${key}" - if ! service_started; then - was_started=false "${RC_SERVICE}" start fi - ebegin "Attaching to project" - boinccmd --host localhost --passwd "${password}" ${args} + password=$(cat "${RUNTIMEDIR}/gui_rpc_auth.cfg") + + ebegin "${SVCNAME}: Attaching to project" + su -m ${USER} -c "boinccmd --passwd "${password}" --project_attach ${url} ${key}" eend $? - unset password args url key + unset password url key sleep 10 - tail "${LOGFILE}" - - [[ ${was_started} = "false" ]] && "${RC_SERVICE}" stop + tail "${RUNTIMEDIR}/stdoutdae.txt" } stop() { - ebegin "Stopping BOINC" - start-stop-daemon --stop --retry 3 --quiet --exec "${BOINCBIN}" - rm -f "${PIDFILE}" + local password + + password=$(cat "${RUNTIMEDIR}/gui_rpc_auth.cfg") + + ebegin "Stopping ${SVCNAME}" + su -m ${USER} -c "boinccmd --passwd "${password}" --quit" eend $? -} -restart() { - stop - sleep 3 - start + unset password } -- cgit v1.2.3-65-gdbad