1
0
forked from pool/boinc-client

- Rewritten the Spec based on Malcolm Lewis Improvements (THX)

- Removed boinc-bnc_465676.patch (Fixed Upstream)
- Removed boinc-bnc_465676.patch (Fixed Upstream)
- Removed boinc-client-NotebookWxPanel.patch (Fixed Upstream)
- Removed boinc-client-wxWindowListNode.patch (Fixed Upstream)

 
- Fix boinc-manager-lang requires
 

 
- Major spec file makeover
- Updated version
- Cleaned up patches
- Fixed most deprecated conversion from string constant to 'char*'

OBS-URL: https://build.opensuse.org/package/show/network/boinc-client?expand=0&rev=7
This commit is contained in:
Sascha Manns 2011-04-28 17:29:54 +00:00 committed by Git OBS Bridge
parent a04c771831
commit d7fb2f46f3
27 changed files with 663 additions and 505 deletions

123
README.SUSE Normal file
View File

@ -0,0 +1,123 @@
#####################################################################################################################
Exported from http://boinc.berkeley.edu/wiki/Installing_BOINC on May 15, 2010, see current version online.
#####################################################################################################################
Installing BOINC on openSUSE
* 1 Basic installation
* 2 What the installer does
* 3 Verify the installation
* 4 Set up your accounts
* 5 Optional setup hints
* 6 Uninstallation
* 7 Known problems
Basic installation
Installs BOINC Client as a daemon (autostarts the BOINC client at boot
time) and puts a BOINC Manager icon on the applications menu. The steps
are:
1. Open a terminal, enter |su|, give the root password when prompted.
2. Enter |zypper install boinc-client boinc-manager|
(be patient while the BOINC package downloads and installs).
3. Optional: after the installation is finished, enter
|/sbin/chkconfig boinc-client on|
to have Linux auto-start the boinc-client daemon at boot time.
(See Stop or start BOINC daemon after boot
page for helpful
commands for managing the daemon)
What the installer does
1. Creates the daemon script at /etc/init.d/boinc-client.
2. Places the BOINC binaries (boinc_client, boinc_cmd and boincmgr)
in /usr/bin/.
3. Creates /var/lib/boinc/ for BOINC data files and the slots and
projects directories.
4. Names the daemon boinc-client.
5. Creates a user named boinc. For security, boinc owns the BOINC
data directory (/var/lib/boinc/) and all the data files and
sub-directories it creates in the data directory.
Verify the installation
1. If you elected to have Linux start the daemon at boot time (see
step 3 in section Basic installation), logout and reboot Linux now
and login under your normal user account.
2. If you elected to not have Linux start the daemon at boot time,
start the daemon manually with |/sbin/service boinc-client start|
3. Open a terminal and enter |ps aux | grep boinc| to print a partial
list of running processes. You should see |boinc_client --daemon|
in that list, if not then something went wrong in the steps above.
Set up your accounts
To use the GUI to set up your accounts and monitor progress:
* Start "boincmgr" on the command line or select Applications ->
System Tools -> Boinc Manager from the GNOME menu.
* Select Advanced -> Select computer... from the Boinc Manager menu.
* Put "localhost" in for "Host name" and the contents of
/var/lib/boinc/gui_rpc_auth.cfg for "Password" and hit "OK".
If you do only the basic installation as described above, BOINC manager
will not be able to automatically connect to the client. To connect the
client you will be required to give the GUI RPC password every time you
start BOINC manager. That is not a bug, it is a security feature to
prevent other users from using the manager to manipulate the client,
change your projects, etc.
If you don't want to put the password every time you run the BOINC
manager, you can:
1. disable the password at all [*not recommended*]
To make the GUI passwordless, do "echo >
/var/lib/boinc/gui_rpc_auth.cfg" (which replaces the contents of
the file with a newline) and then restart boinc-client (with e.g.
"/sbin/service boinc-client restart").
2. *with boinc-client-6.4.7-1.r17542svn and newer* it is enough if
you just add your user account into the "boinc" group, e.g. by
typing |/usr/sbin/usermod -G boinc -a username|
3. *with older versions* the procedure is a bit more complicated:
Boinc (the user named boinc) owns /var/lib/boinc/ and all the
files and directories in it so you will not be able to edit those
files easily from your regular user account. The steps below add
your username to the boinc group and adjust some permissions so
that BOINC manager will automatically connect to BOINC client
whenever you start the manager from your regular Linux user
account. Also you will be able to edit files in the BOINC
directory without becoming root. As you type in each command
below, substitute your Linux username wherever you see |username|.
Enter the following commands in a terminal, as root:
1. |/usr/sbin/usermod -G boinc -a username|
2. |chmod g+rw /var/lib/boinc|
3. |chmod g+rw /var/lib/boinc/*.*|
4. |ln -s /var/lib/boinc/gui_rpc_auth.cfg
/home/username/gui_rpc_auth.cfg|
5. |chown boinc:boinc /home/username/gui_rpc_auth.cfg|
Uninstallation
As root, in a terminal, enter
yum remove boinc-client boinc-manager
Known problems
boinc-client sometimes has problems connecting to the network, if the
network connection comes up after the client has already started. This
is a known BOINC bug, which is filed as #707.
In the meantime, you can fix this by restarting boinc-client. On the
command line as root, do "/sbin/service boinc-client restart".
Alternatively, from the GNOME menu, you can choose System ->
Administration -> Services and then stop and start the boinc-client
service.

View File

@ -1,15 +1,14 @@
diff -Naur boinc_core_release_6_4_5/locale/client/Makefile.am boinc_core_release_6_4_5p/locale/client/Makefile.am
--- boinc_core_release_6_4_5/locale/client/Makefile.am 2009-02-07 10:14:49.000000000 +0100
+++ boinc_core_release_6_4_5p/locale/client/Makefile.am 2009-02-10 22:53:18.000000000 +0100
--- locale/Makefile.am 2010-04-15 13:59:36.000000000 -0500
+++ locale/Makefile.am.orig 2010-10-04 11:03:57.000000000 -0500
@@ -45,9 +45,9 @@
install-exec-hook:
mydir=$(DESTDIR)$(datadir) ;\
for ldir in $(locale_dirs) ; do \
- $(INSTALL) -d $$mydir/$$ldir ; \
+ $(INSTALL) -d $$mydir/$$ldir/LC_MESSAGES ; \
if [ -f "$$ldir/BOINC Manager.mo" ] ; then \
- $(INSTALL) "$$ldir/BOINC Manager.mo" "$$mydir/$$ldir/BOINC Manager.mo" ; \
+ $(INSTALL) "$$ldir/BOINC Manager.mo" "$$mydir/$$ldir/LC_MESSAGES/BOINC-Manager.mo" ; \
if [ -f $$ldir/BOINC-Manager.mo ] ; then \
- $(INSTALL) $$ldir/BOINC-Manager.mo $$mydir/$$ldir/BOINC-Manager.mo ; \
+ $(INSTALL) $$ldir/BOINC-Manager.mo $$mydir/$$ldir/LC_MESSAGES/BOINC-Manager.mo ; \
fi ;\
done

View File

@ -1,64 +0,0 @@
diff -Naur boinc_core_release_6_4_5/lib/crypt.cpp boinc_core_release_6_4_5p/lib/crypt.cpp
--- boinc_core_release_6_4_5/lib/crypt.cpp 2009-02-07 10:15:12.000000000 +0100
+++ boinc_core_release_6_4_5p/lib/crypt.cpp 2009-02-09 01:12:00.000000000 +0100
@@ -243,7 +243,7 @@
// The output block must be decrypted in its entirety.
//
int encrypt_private(R_RSA_PRIVATE_KEY& key, DATA_BLOCK& in, DATA_BLOCK& out) {
- int n, modulus_len;
+ int n, modulus_len, retval;
modulus_len = (key.bits+7)/8;
n = in.len;
@@ -253,15 +253,25 @@
RSA* rp = RSA_new();
private_to_openssl(key, rp);
RSA_private_encrypt(n, in.data, out.data, rp, RSA_PKCS1_PADDING);
+ retval = RSA_private_encrypt(n, in.data, out.data, rp, RSA_PKCS1_PADDING);
+ if (retval < 0) {
+ RSA_free(rp);
+ return ERR_CRYPTO;
+ }
out.len = RSA_size(rp);
RSA_free(rp);
return 0;
}
int decrypt_public(R_RSA_PUBLIC_KEY& key, DATA_BLOCK& in, DATA_BLOCK& out) {
+ int retval;
RSA* rp = RSA_new();
public_to_openssl(key, rp);
- RSA_public_decrypt(in.len, in.data, out.data, rp, RSA_PKCS1_PADDING);
+ retval = RSA_public_decrypt(in.len, in.data, out.data, rp, RSA_PKCS1_PADDING);
+ if (retval < 0) {
+ RSA_free(rp);
+ return ERR_CRYPTO;
+ }
out.len = RSA_size(rp);
return 0;
}
diff -Naur boinc_core_release_6_4_5/lib/error_numbers.h boinc_core_release_6_4_5p/lib/error_numbers.h
--- boinc_core_release_6_4_5/lib/error_numbers.h 2009-02-07 10:15:12.000000000 +0100
+++ boinc_core_release_6_4_5p/lib/error_numbers.h 2009-02-09 01:12:58.000000000 +0100
@@ -185,7 +185,7 @@
#define ERR_RMDIR -227
#define ERR_SYMLINK -229
#define ERR_DB_CONN_LOST -230
-
+#define ERR_CRYPTO -231
// PLEASE: add a text description of your error to
// the text description function boincerror() in str_util.C.
diff -Naur boinc_core_release_6_4_5/lib/str_util.cpp boinc_core_release_6_4_5p/lib/str_util.cpp
--- boinc_core_release_6_4_5/lib/str_util.cpp 2009-02-07 10:15:12.000000000 +0100
+++ boinc_core_release_6_4_5p/lib/str_util.cpp 2009-02-09 01:14:02.000000000 +0100
@@ -735,7 +735,8 @@
case ERR_RMDIR: return "rmdir() failed";
case ERR_SYMLINK: return "symlink() failed";
case ERR_DB_CONN_LOST: return "DB connection lost during enumeration";
- case 404: return "HTTP file not found";
+ case ERR_CRYPTO: return "encryption error";
+ case 404: return "HTTP file not found";
case 407: return "HTTP proxy authentication failure";
case 416: return "HTTP range request error";
case 500: return "HTTP internal server error";

View File

@ -1,12 +0,0 @@
diff -Naur boinc_core_release_6_6_1/client/Makefile.am boinc_core_release_6_6_1p/client/Makefile.am
--- boinc_core_release_6_6_1/client/Makefile.am 2009-01-18 23:51:56.000000000 +0100
+++ boinc_core_release_6_6_1p/client/Makefile.am 2009-01-22 22:10:38.000000000 +0100
@@ -67,7 +67,7 @@
boinc_client_LDADD = $(LIBBOINC) $(PTHREAD_LIBS)
boinc_clientdir = $(bindir)
-boinc_client_DATA = ../curl/ca-bundle.crt
+#boinc_client_DATA = ../curl/ca-bundle.crt
switcher_SOURCES = switcher.cpp

View File

@ -1,12 +0,0 @@
diff -uNrp boinc_core_release_6_4_5/clientgui/common/wxFlatNotebook.cpp boinc_core_release_6_4_5p/clientgui/common/wxFlatNotebook.cpp
--- boinc_core_release_6_4_5/clientgui/common/wxFlatNotebook.cpp 2009-02-07 10:13:28.000000000 +0100
+++ boinc_core_release_6_4_5p/clientgui/common/wxFlatNotebook.cpp 2009-05-22 13:17:29.000000000 +0200
@@ -607,7 +607,7 @@ const wxColour& wxFlatNotebookBase::GetA
//
///////////////////////////////////////////////////////////////////////////////////////////
-BEGIN_EVENT_TABLE(wxPageContainerBase, wxControl)
+BEGIN_EVENT_TABLE(wxPageContainerBase, wxPanel)
EVT_PAINT(wxPageContainerBase::OnPaint)
EVT_SIZE(wxPageContainerBase::OnSize)
EVT_LEFT_DOWN(wxPageContainerBase::OnLeftDown)

View File

@ -1,11 +0,0 @@
diff -uNrp boinc_core_release_6_4_5/client/hostinfo_unix.cpp boinc_core_release_6_4_5p/client/hostinfo_unix.cpp
--- boinc_core_release_6_4_5/client/hostinfo_unix.cpp 2009-02-07 10:14:39.000000000 +0100
+++ boinc_core_release_6_4_5p/client/hostinfo_unix.cpp 2009-03-16 19:54:17.000000000 +0100
@@ -293,6 +293,7 @@ bool HOST_INFO::host_is_running_on_batte
method = NoBattery;
// fall through
case NoBattery:
+ default:
// we have no way to determine if we're on batteries,
// so we say we aren't
return false;

View File

@ -1,6 +1,8 @@
# This line is mandatory to access the configuration functions
from Config import *
addFilter("incoherent-init-script-name")
addFilter("invalid-lc-messages-dir")
addFilter("file-not-in-%lang")
addFilter("suse-branding-unversioned-requires hicolor-icon-theme")
addFilter("non-standard-uid")
addFilter("libdir-macro-in-noarch-package")
addFilter("no-manual-page-for-binary")
addFilter("macro-in-comment")

View File

@ -1,6 +1,7 @@
diff -uNrp boinc_core_release_6_4_5/lib/str_util.h boinc_core_release_6_4_5p/lib/str_util.h
--- boinc_core_release_6_4_5/lib/str_util.h 2009-02-07 10:15:12.000000000 +0100
+++ boinc_core_release_6_4_5p/lib/str_util.h 2009-05-31 23:02:27.000000000 +0200
Index: lib/str_util.h
===================================================================
--- lib/str_util.h.orig
+++ lib/str_util.h
@@ -17,6 +17,7 @@
#ifndef STR_UTIL_H

View File

@ -1,12 +0,0 @@
diff -Naur boinc_core_release_6_4_5/clientgui/DlgAdvPreferences.cpp boinc_core_release_6_4_5p/clientgui/DlgAdvPreferences.cpp
--- boinc_core_release_6_4_5/clientgui/DlgAdvPreferences.cpp 2009-02-07 10:13:29.000000000 +0100
+++ boinc_core_release_6_4_5p/clientgui/DlgAdvPreferences.cpp 2009-02-25 18:47:40.000000000 +0100
@@ -486,7 +486,7 @@
}
//all text ctrls in proc special time panel
wxWindowList children = m_panelProcSpecialTimes->GetChildren();
- wxWindowListNode* node = children.GetFirst();
+ wxWindowList::compatibility_iterator node = children.GetFirst();
while(node) {
if(node->GetData()->IsKindOf(CLASSINFO(wxTextCtrl))) {
wxTextCtrl* txt = wxDynamicCast(node->GetData(),wxTextCtrl);

View File

@ -1,8 +1,34 @@
-------------------------------------------------------------------
Thu Apr 28 13:28:25 UTC 2011 - saigkill@opensuse.org
- Rewritten the Spec based on Malcolm Lewis Improvements (THX)
-------------------------------------------------------------------
Wed Apr 27 17:37:08 UTC 2011 - saigkill@opensuse.org
- Removed boinc-bnc_465676.patch (Fixed Upstream)
- Removed boinc-bnc_465676.patch (Fixed Upstream)
- Removed boinc-client-NotebookWxPanel.patch (Fixed Upstream)
- Removed boinc-client-wxWindowListNode.patch (Fixed Upstream)
-------------------------------------------------------------------
Tue Dec 28 18:21:51 CET 2010 - sbrabec@suse.cz
- Compile with wxWidgets (STL variant).
-------------------------------------------------------------------
Tue Oct 5 04:24:40 UTC 2010 - malcolmlewis@opensuse.org
- Fix boinc-manager-lang requires
-------------------------------------------------------------------
Tue Oct 5 03:41:39 UTC 2010 - malcolmlewis@opensuse.org
- Major spec file makeover
- Updated version
- Cleaned up patches
- Fixed most deprecated conversion from string constant to 'char*'
-------------------------------------------------------------------
Mon Mar 15 16:06:23 UTC 2010 - coolo@novell.com

View File

@ -1,5 +1,5 @@
#
# spec file for package boinc-client (Version 6.4.5)
# spec file for package boinc-client (Version 6.10.58)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@ -14,281 +14,374 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
# Global definitions
%define version_ 6_10_58
%define soname 6
Name: boinc-client
Version: 6.10.58
Release: 1
Summary: The BOINC client core
License: LGPLv2+
Group: Productivity/Clustering/Computing
URL: http://boinc.berkeley.edu/
Source0: boinc_core_release-%{version_}.tar.bz2
Source1: boinc-logrotate
Source2: boinc-gui.desktop
Source3: README.SUSE
Source4: sysconfig.boinc-client
Source5: boinc-icons.tar.bz2
Source6: boincmanager
Source7: boinc-client-rpmlintrc
# The source for this package was pulled from upstream's vcs. Use the
# following commands to generate the tarball:
#
# ./generate-tarball.sh boinc_core_release_%{version_}
#
# Trim all binaries and other unnecessary things.
Source8: generate-tarball.sh
# PATCH-FIX-OPENSUSE boinc-guirpcauth.patch
# Create password file rw for group, this enables passwordless connection
# of manager from users of the boinc group.
# This won't be probably upstreamed as it might be unsafe for common usage
# without setting proper group ownership of the password file.
Patch0: boinc-guirpcauth.patch
# PATCH-FIX-OPENSUSE boinc-init.patch
Patch1: boinc-init.patch
# PATCH-FIX-OPENSUSE boinc-LC_MESSAGES.patch
Patch2: boinc-LC_MESSAGES.patch
# PATCH-FIX-OPENSUSE boinc-completion.patch
Patch3: boinc-completion.patch
# PATCH-FIX-OPENSUSE boinc-docbook2x.patch
Patch4: boinc-docbook2x.patch
# PATCH-FIX-OPENSUSE boinc-server.patch
Patch5: boinc-server.patch
# PATCH-FIX-OPENSUSE saigkill@opensuse.org adds define HAVE_STRCASESRTR
Patch6: boinc-client-str_util.patch
BuildRequires: libcurl-devel >= 7.17.1
BuildRequires: python-mysql
BuildRequires: update-desktop-files
BuildRequires: Mesa-devel
BuildRequires: freeglut-devel
BuildRequires: libopenssl-devel
BuildRequires: gettext-runtime
BuildRequires: mysql-devel
BuildRequires: wxWidgets-devel >= 2.8.7
BuildRequires: libjpeg-devel
BuildRequires: libxslt
BuildRequires: xorg-x11-libXmu-devel
BuildRequires: gcc-c++
BuildRequires: gcc-fortran
BuildRequires: docbook2x
BuildRequires: docbook_4
BuildRequires: pkg-config
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: libtool
BuildRequires: m4
BuildRequires: make
BuildRequires: sqlite3-devel
BuildRequires: pwdutils
BuildRequires: patch
BuildRequires: fdupes
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Requires(pre): pwdutils
Requires(pre): %insserv_prereq
Requires(pre): %fillup_prereq
Name: boinc-client
Summary: The Berkeley Open Infrastructure for Network Computing (BOINC)
Version: 6.4.5
Release: 4
License: LGPLv2.1
Url: http://boinc.berkeley.edu/
Source0: boinc_core_release_6_4_5.tar.bz2
Source1: boinc-icons.tar.bz2
Source2: boinc-logrotate
Source3: boinc-gui.desktop
Source4: boincmgr
Source5: sysconfig.boinc
Source100: boinc-client-rpmlintrc
Patch0: boinc-docbook2x.patch
Patch1: boinc-rcscript.patch
Patch2: boinc-fs_start_included.patch
Patch3: boinc-sysconfig.patch
Patch4: boinc-ca_cert_deactivate.patch
Patch5: boinc-LC_MESSAGES.patch
Patch6: boinc-icon_old.patch
Patch7: boinc-bnc_465676.patch
Patch8: boinc-client-wxWindowListNode.patch
Patch9: boinc-client-hostinfo.patch
Patch10: boinc-client-NotebookWxPanel.patch
Patch11: boinc-client-str_util.patch
Group: Productivity/Clustering/Computing
BuildRequires: libcurl-devel >= 7.15.2 python-mysql update-desktop-files
BuildRequires: Mesa-devel freeglut-devel libopenssl-devel
BuildRequires: gcc-c++ gettext-runtime mysql-devel wxWidgets-devel >= 2.8.7
BuildRequires: docbook2x libjpeg-devel libxslt xorg-x11-libXmu-devel
BuildRequires: autoconf automake libtool m4 pkg-config
PreReq: %insserv_prereq %fillup_prereq
Requires: logrotate cron
Requires: boinc-doc = %{version}-%{release}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Requires: logrotate
Requires: cron
Requires: libboinc%{soname} = %{version}-%{release}
%define _use_internal_dependency_generator 0
%define __find_requires %wx_requires
%lang_package
%description
The Berkeley Open Infrastructure for Network Computing (BOINC) is an
open-source software platform which supports distributed computing,
primarily in the form of "volunteer" computing and "desktop Grid"
computing. It is well suited for problems which are often described as
"trivially parallel".
The Berkeley Open Infrastructure for Network Computing (BOINC) is an open-
source software platform which supports distributed computing, primarily in
the form of "volunteer" computing and "desktop Grid" computing. It is well
suited for problems which are often described as "trivially parallel". BOINC
is the underlying software used by projects such as SETI@home, Einstein@Home,
ClimatePrediciton.net, the World Community Grid, and many other distributed
computing projects.
BOINC is the underlying software used by projects such as SETI@home,
Einstein@Home, ClimatePrediciton.net, the World Community Grid, and
many other distributed computing projects.
This package installs the BOINC client software, which will allow your
computer to participate in one or more BOINC projects, using your spare
computer time to search for cures for diseases, model protein folding, study
global warming, discover sources of gravitational waves, and many other types
of scientific and mathematical research.
%package -n boinc-manager
Summary: GUI to control and monitor %{name}
Group: Productivity/Scientific/Astronomy
Requires: hicolor-icon-theme
Requires: %{name} = %{version}-%{release}
Requires: boinc-manager-lang = %{version}-%{release}
Authors:
--------
University of California, Berkeley
Dr. David P. Anderson <davea@ssl.berkeley.edu>
Rom Walton <rwalton@ssl.berkeley.edu>
Charlie Fenton
%description -n boinc-manager
The BOINC Manager is a graphical monitor and control utility for the BOINC
core client. It gives a detailed overview of the state of the client it is
monitoring. The BOINC Manager has two modes of operation, the "Simple View" in
which it only displays the most important information and the "Advanced View"
in which all information and all control elements are available.
%package -n boinc-gui
License: LGPLv2.1
Summary: The Berkeley Open Infrastructure for Network Computing (BOINC)
Group: Productivity/Clustering/Computing
Requires: boinc-client = %{version}-%{release}
Requires: boinc-doc = %{version}-%{release}
Requires: boinc-gui-lang = %{version}-%{release}
%description -n boinc-gui
The Berkeley Open Infrastructure for Network Computing (BOINC) is an
open-source software platform which supports distributed computing,
primarily in the form of "volunteer" computing and "desktop Grid"
computing. It is well suited for problems which are often described as
"trivially parallel".
BOINC is the underlying software used by projects such as SETI@home,
Einstein@Home, ClimatePrediciton.net, the World Community Grid, and
many other distributed computing projects.
Authors:
--------
University of California, Berkeley
Dr. David P. Anderson <davea@ssl.berkeley.edu>
Rom Walton <rwalton@ssl.berkeley.edu>
Charlie Fenton
%lang_package -n boinc-manager
%package devel
License: LGPLv2.1
Summary: The Berkeley Open Infrastructure for Network Computing (BOINC)
Group: Productivity/Clustering/Computing
Requires: boinc-client = %{version}-%{release}
Summary: Development files for %{name}
Group: Development/Libraries/Other
Requires: %{name} = %{version}-%{release}
Requires: openssl-devel
Requires: mysql-devel
%description devel
The Berkeley Open Infrastructure for Network Computing (BOINC) is an
open-source software platform which supports distributed computing,
primarily in the form of "volunteer" computing and "desktop Grid"
computing. It is well suited for problems which are often described as
"trivially parallel".
This package contains development files for %{name}.
BOINC is the underlying software used by projects such as SETI@home,
Einstein@Home, ClimatePrediciton.net, the World Community Grid, and
many other distributed computing projects.
%package -n libboinc%{soname}
Summary: Shared Libs for %{name}
Group: Productivity/Scientific/Astronomy
%description -n libboinc%{soname}
The BOINC Manager is a graphical monitor and control utility for the BOINC
core client. It gives a detailed overview of the state of the client it is
monitoring. The BOINC Manager has two modes of operation, the "Simple View" in
which it only displays the most important information and the "Advanced View"
in which all information and all control elements are available.
%package doc
Summary: Documentation files for %{name}
Group: Documentation/Other
%if 0%{?suse_version} >= 1120
BuildArch: noarch
%endif
Requires: %{name} = %{version}-%{release}
Authors:
--------
University of California, Berkeley
Dr. David P. Anderson <davea@ssl.berkeley.edu>
Rom Walton <rwalton@ssl.berkeley.edu>
Charlie Fenton
%package -n boinc-doc
License: LGPLv2.1
Summary: The Berkeley Open Infrastructure for Network Computing (BOINC)
Group: Productivity/Clustering/Computing
Requires: boinc-client = %{version}-%{release}
Requires: boinc-gui = %{version}-%{release}
%description -n boinc-doc
The Berkeley Open Infrastructure for Network Computing (BOINC) is an
open-source software platform which supports distributed computing,
primarily in the form of "volunteer" computing and "desktop Grid"
computing. It is well suited for problems which are often described as
"trivially parallel".
BOINC is the underlying software used by projects such as SETI@home,
Einstein@Home, ClimatePrediciton.net, the World Community Grid, and
many other distributed computing projects.
Authors:
--------
University of California, Berkeley
Dr. David P. Anderson <davea@ssl.berkeley.edu>
Rom Walton <rwalton@ssl.berkeley.edu>
Charlie Fenton
%package -n boinc-gui-lang
License: LGPLv2.1
Summary: The Berkeley Open Infrastructure for Network Computing (BOINC)
Group: Productivity/Clustering/Computing
Requires: boinc-client = %{version}-%{release}
Requires: boinc-gui = %{version}-%{release}
%description -n boinc-gui-lang
The Berkeley Open Infrastructure for Network Computing (BOINC) is an
open-source software platform which supports distributed computing,
primarily in the form of "volunteer" computing and "desktop Grid"
computing. It is well suited for problems which are often described as
"trivially parallel".
BOINC is the underlying software used by projects such as SETI@home,
Einstein@Home, ClimatePrediciton.net, the World Community Grid, and
many other distributed computing projects.
Authors:
--------
University of California, Berkeley
Dr. David P. Anderson <davea@ssl.berkeley.edu>
Rom Walton <rwalton@ssl.berkeley.edu>
Charlie Fenton
%description doc
This package contains documentation files for %{name}.
%prep
%setup -q -n boinc_core_release_6_4_5
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
tar -xvjf %{S:1}
%setup -q -n boinc_core_release_%{version_}
%patch0
%patch1
%patch2
%patch3
%patch4
%patch5
%patch6
# Unpack icons
%{__tar} -xvjf %{S:5}
# Install user hints
%{__install} -m0644 %{S:3} README.SUSE
# Fix lang directories (refer patch2)
%{__mv} locale/pt_PT locale/pt
%{__mv} locale/sv_SE locale/sv
# fix warning: deprecated conversion from string constant to 'char*'
pushd clientgui/common/
%{__sed} -i 's/static char/static const char/g' wxFlatNotebookImages.h
popd
pushd clientgui/res/
%{__sed} -i 's/static char/static const char/g' *.xpm
popd
pushd clientgui/res/skins/default/graphic/
%{__sed} -i 's/static char/static const char/g' *.xpm
popd
%build
export CFLAGS="%{optflags} -fno-strict-aliasing"
export CXXFLAGS="%{optflags} -fno-strict-aliasing"
./_autosetup
%configure --prefix=%{_prefix} \
--libdir=%{_libdir} \
--mandir=%{_mandir} \
--disable-server \
--disable-static \
--enable-client \
--enable-unicode
# does not work with parallel make
make
#remove ltmain.sh & run libtoolize and ./_autosetup
%{__rm} ltmain.sh
/usr/bin/libtoolize --force
./_autosetup
%configure --disable-dependency-tracking \
--enable-dynamic-client-linkage \
--disable-server \
--disable-fcgi \
--enable-unicode \
--with-ssl \
--with-x \
--disable-static
# Disable rpaths
%{__sed} -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
%{__sed} -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
# Export Path and make
%{__make} clean
%{__make} libboinc_la_LIBADD="-lssl -ldl" \
CFLAGS="%{optflags} -g -W -pipe -fno-strict-aliasing -D_REENTRANT" \
CXXFLAGS="%{optflags} -g -W -pipe -fno-strict-aliasing -D_REENTRANT" \
DESTDIR=%{_prefix}
%install
%makeinstall
# create symlink for boinc_client
ln -s %{_bindir}/boinc_client $RPM_BUILD_ROOT%{_bindir}/boinc
# remove /etc/sysconfig/boinc-client
rm -f %{buildroot}%{_sysconfdir}/sysconfig/boinc
# install logrotate and create symlink to /etc/int.d/boinc-client
install -d -m755 $RPM_BUILD_ROOT%{_sbindir}
ln -s %{_sysconfdir}/init.d/boinc $RPM_BUILD_ROOT%{_sbindir}/rcboinc-client
install -D -m644 %{S:2} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/boinc-client
# install desktop-file and icons
%{makeinstall}
# Creates default folders
%{__mkdir} -p %{buildroot}%{_datadir}/icons/hicolor/16x16/apps
%{__mkdir} -p %{buildroot}%{_datadir}/icons/hicolor/32x32/apps
%{__mkdir} -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps
%{__mkdir} -p %{buildroot}%{_initrddir}
%{__mkdir} -p %{buildroot}%{_localstatedir}/lib/boinc
%{__mkdir} -p %{buildroot}%{_mandir}/man1
%{__mkdir} -p %{buildroot}%{_sysconfdir}/logrotate.d/
# Remove old boinc & rename boinc_client to boinc-client
%{__rm} -f %{buildroot}%{_bindir}/boinc
%{__mv} -f %{buildroot}%{_bindir}/boinc_client %{buildroot}%{_bindir}/boinc-client
# Use symlink instead of hardlink
pushd %{buildroot}%{_bindir}
/bin/ln -sf boinc-client boinc
popd
# Rename boincmgr and wrap it
%{__mv} %{buildroot}%{_bindir}/boincmgr %{buildroot}%{_bindir}/boinc_gui
# Install boincmanager wrapper script
%{__install} -Dm0755 %{S:6} %{buildroot}%{_bindir}/boincmanager
# Remove /etc/sysconfig/boinc-client, it is added by %%fillup_and_insserv
%{__rm} -f %{buildroot}%{_sysconfdir}/sysconfig/boinc-client
# Install logrotate and create symlink to /etc/init.d/boinc-client
%{__install} -dm0755 %{buildroot}%{_sbindir}
/bin/ln -sf %{_sysconfdir}/init.d/boinc-client %{buildroot}%{_sbindir}/rcboinc-client
%{__install} -Dm0644 %{S:1} %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
# Install bash completition
%{__install} -Dpm0644 client/scripts/boinc.bash %{buildroot}%{_sysconfdir}/bash_completion.d/boinc
# Install template for sysconfig
%{__install} -Dm0644 %{S:4} %{buildroot}/var/adm/fillup-templates/sysconfig.boinc-client
# Install desktop-file and icons
%{__install} -Dm0644 boinc-gui-128.png %{buildroot}%{_datadir}/icons/hicolor/128x128/apps/boinc-gui.png
%{__install} -Dm0644 boinc-gui-64.png %{buildroot}%{_datadir}/icons/hicolor/64x64/apps/boinc-gui.png
%{__install} -Dm0644 boinc-gui-48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/boinc-gui.png
%{__install} -Dm0644 boinc-gui-32.png %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/boinc-gui.png
%{__install} -Dm0644 boinc-gui-22.png %{buildroot}%{_datadir}/icons/hicolor/22x22/apps/boinc-gui.png
%{__install} -Dm0644 boinc-gui-16.png %{buildroot}%{_datadir}/icons/hicolor/16x16/apps/boinc-gui.png
# Move and rename icons
%{__mv} %{buildroot}%{_datadir}/boinc/boincmgr.16x16.png %{buildroot}%{_datadir}/icons/hicolor/16x16/apps/boincmgr.png
%{__mv} %{buildroot}%{_datadir}/boinc/boincmgr.32x32.png %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/boincmgr.png
%{__mv} %{buildroot}%{_datadir}/boinc/boincmgr.48x48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/boincmgr.png
# Install *.desktop File
%suse_update_desktop_file -i boinc-gui Utility
install -D -m644 boinc-gui-128.png $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/128x128/apps/boinc-gui.png
install -D -m644 boinc-gui-64.png $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/64x64/apps/boinc-gui.png
install -D -m644 boinc-gui-48.png $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/48x48/apps/boinc-gui.png
install -D -m644 boinc-gui-32.png $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/32x32/apps/boinc-gui.png
install -D -m644 boinc-gui-22.png $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/22x22/apps/boinc-gui.png
install -D -m644 boinc-gui-16.png $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/16x16/apps/boinc-gui.png
# install boincmgr
install -D -m755 %{S:4} $RPM_BUILD_ROOT%{_bindir}/boincmgr
# install template for sysconfig
install -D -m644 %{S:5} %{buildroot}/var/adm/fillup-templates/sysconfig.boinc
# remove static Libs
rm %{buildroot}%{_libdir}/*.a
# Remove libtool archives
%{__rm} %{buildroot}%{_libdir}/*.la
# Relinking Manpages
/bin/ln -sf boincmgr.1.gz %{buildroot}%{_mandir}/man1/boincmanager.1.gz
/bin/ln -sf boinccmd.1.gz %{buildroot}%{_mandir}/man1/boinccmd.1.gz
/bin/ln -sf boinc.1.gz %{buildroot}%{_mandir}/man1/boinc.1.gz
# Fix spurious-executable-perm
%{__chmod} 0644 doc/*.php
# Install fake /var/lib/boinc
%{__install} -dm0755 %{buildroot}%{_var}/lib/boinc
# Prepare $LANG Packages
%find_lang BOINC-Manager
%fdupes -s %{buildroot}
%clean
rm -rf $RPM_BUILD_ROOT
%{__rm} -rf '%{buildroot}'
%pre
# Add boinc user and group
getent group boinc >/dev/null || groupadd -r boinc
getent passwd boinc >/dev/null || \
useradd -r -g boinc -d %{_localstatedir}/lib/boinc -s /sbin/nologin \
-c "BOINC client account." boinc
exit 0
%post
# Macro to use an sysconfig File
%{fillup_and_insserv -y boinc}
%{fillup_and_insserv boinc-client}
%preun
%stop_on_removal boinc
%stop_on_removal boinc-client
%postun
%restart_on_update boinc
%postun
%restart_on_update boinc-client
%insserv_cleanup
%post -n boinc-manager
/usr/bin/touch --no-create %{_datadir}/icons/hicolor || :
if [ -x %{_bindir}/gtk-update-icon-cache ]; then
%{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
fi
%postun -n boinc-manager
/usr/bin/touch --no-create %{_datadir}/icons/hicolor || :
if [ -x %{_bindir}/gtk-update-icon-cache ]; then
%{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
fi
%post -n libboinc%{soname} -p /sbin/ldconfig
%postun -n libboinc%{soname} -p /sbin/ldconfig
%post devel -p /sbin/ldconfig
%postun devel -p /sbin/ldconfig
%files
%defattr(-,root,root)
%defattr(-,root,root,-)
%doc COPYING COPYRIGHT INSTALL notes todo TODO_OLD README.SUSE
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
%config(noreplace) %{_sysconfdir}/bash_completion.d/
/var/adm/fillup-templates/sysconfig.boinc-client
%{_bindir}/boinc
%{_bindir}/boinc_client
%{_bindir}/boinc_cmd
%{_bindir}/crypt_prog
%{_bindir}/boinc-client
%{_sbindir}/rcboinc-client
%{_bindir}/boinccmd
%{_bindir}/switcher
%{_sbindir}/*
%config %{_sysconfdir}/boinc-client.conf
/var/adm/fillup-templates/sysconfig.boinc
%config %{_sysconfdir}/init.d/*
%config(noreplace) %{_sysconfdir}/logrotate.d/*
%{_mandir}/man*/*
%{_initrddir}/%{name}
%{_mandir}/man1/boinccmd.1.gz
%{_mandir}/man1/boinc.1.gz
%defattr(-,boinc,boinc,-)
%{_localstatedir}/lib/boinc/
%files -n boinc-doc
%defattr(-,root,root)
%doc COPYING COPYRIGHT checkin_* INSTALL notes todo TODO_OLD doc/*.txt doc/bolt doc/logo doc/*.php doc/*.png doc/*.html
%files doc
%defattr(-,root,root,-)
%doc checkin_*
%doc doc/*.txt doc/bolt doc/logo doc/*.php doc/*.png doc/*.html
%files -n boinc-gui
%defattr(-,root,root)
%{_bindir}/boincmgr
%files -n boinc-manager
%defattr(-,root,root,-)
%{_bindir}/boinc_gui
%{_datadir}/applications/*
%{_datadir}/icons/hicolor/*/apps/*
%{_bindir}/boincmanager
%{_datadir}/applications/boinc-gui.desktop
%{_datadir}/icons/hicolor/*/apps/*
%{_mandir}/man1/boincmgr.1.gz
%{_mandir}/man1/boincmanager.1.gz
%files -n boinc-gui-lang
%defattr(-,root,root)
%{_datadir}/locale/*/LC_MESSAGES/*
%dir %{_datadir}/locale/ko_KR
%dir %{_datadir}/locale/ko_KR/LC_MESSAGES
%dir %{_datadir}/locale/sv_SE
%dir %{_datadir}/locale/sv_SE/LC_MESSAGES
%files -n boinc-manager-lang -f BOINC-Manager.lang
%files -n libboinc%{soname}
%defattr(-,root,root,-)
%{_libdir}/*.so.*
%files devel
%defattr(-,root,root)
%dir %{_includedir}/boinc
%{_includedir}/boinc/*.h
# %{_libdir}/*a
%defattr(-,root,root,-)
%{_libdir}/*.so
%{_includedir}/boinc
%changelog

11
boinc-completion.patch Normal file
View File

@ -0,0 +1,11 @@
--- client/scripts/boinc.bash 2008-05-16 10:01:52.000000000 -0500
+++ client/scripts/boinc.bash.orig 2010-10-04 11:19:36.000000000 -0500
@@ -36,7 +36,7 @@
return 0
fi
}
-complete -F _boinc -o default boinc
+complete -F _boinc -o default boinc-client
_boinccmd()
{

View File

@ -1,7 +1,6 @@
diff -Naur boinc_core_release_6_6_1/configure.ac boinc_core_release_6_6_1p/configure.ac
--- boinc_core_release_6_6_1/configure.ac 2009-01-18 23:52:57.000000000 +0100
+++ boinc_core_release_6_6_1p/configure.ac 2009-01-23 13:02:07.000000000 +0100
@@ -153,7 +153,7 @@
--- configure.ac 2010-07-01 12:09:41.000000000 -0500
+++ configure.ac.orig 2010-10-03 16:24:03.000000000 -0500
@@ -284,7 +284,7 @@
dnl Check for docbook2x-man, which we use to create the manpages in
dnl doc/manpages, and set the conditional HAVE_DOCBOOK2X_MAN to build
dnl the manpages only if docbook2x-man is available.

View File

@ -1,40 +0,0 @@
diff -Naur boinc_core_release_6_5_0/client/scripts/boinc-client.in boinc_core_release_6_5_0p/client/scripts/boinc-client.in
--- boinc_core_release_6_5_0/client/scripts/boinc-client.in 2009-01-12 13:21:03.000000000 +0100
+++ boinc_core_release_6_5_0p/client/scripts/boinc-client.in 2009-01-12 18:04:25.000000000 +0100
@@ -19,12 +19,12 @@
# For more information about BOINC (the Berkeley Open Infrastructure
# for Network Computing) see http://boinc.berkeley.edu
# processname: boinc
-# config: /etc/sysconfig/boinc
+# config: /etc/boinc
#
### BEGIN INIT INFO
# Provides: boinc
-# Required-Start: $network
-# Required-Stop: $network
+# Required-Start: $remote_fs $network
+# Required-Stop: $remote_fs $network
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
# Short-Description: This script monitors the BOINC client.
@@ -231,16 +231,16 @@
config_files="
./boinc-client.conf
./boinc.conf
-/etc/sysconfig/boinc-client
+/etc/boinc/boinc-client
/etc/default/boinc-client
/etc/boinc-client.conf
-${sysconfdir}/sysconfig/boinc-client
+${sysconfdir}/boinc/boinc-client
${sysconfdir}/default/boinc-client
${sysconfdir}/boinc-client.conf
-/etc/sysconfig/boinc
+/etc/boinc
/etc/default/boinc
/etc/boinc.conf
-${sysconfdir}/sysconfig/boinc
+${sysconfdir}/boinc/boinc
${sysconfdir}/default/boinc
${sysconfdir}/boinc.conf
none

View File

@ -1,6 +1,6 @@
[Desktop Entry]
Encoding=UTF-8
Exec=boincmgr
Exec=boincmanager
Icon=boinc-gui
Terminal=false
Type=Application

16
boinc-guirpcauth.patch Normal file
View File

@ -0,0 +1,16 @@
--- client/gui_rpc_server.cpp 2010-06-18 11:45:45.000000000 -0500
+++ client/gui_rpc_server.cpp.orig 2010-10-04 13:23:39.000000000 -0500
@@ -146,12 +146,7 @@
// they can cause code to execute as this user.
// So better protect it.
//
- if (g_use_sandbox) {
- // Allow group access so authorized administrator can modify it
- chmod(GUI_RPC_PASSWD_FILE, S_IRUSR|S_IWUSR | S_IRGRP | S_IWGRP);
- } else {
- chmod(GUI_RPC_PASSWD_FILE, S_IRUSR|S_IWUSR);
- }
+ chmod(GUI_RPC_PASSWD_FILE, S_IRUSR|S_IWUSR | S_IRGRP | S_IWGRP);
#endif
}
}

View File

@ -1,10 +0,0 @@
diff -Naur boinc_core_release_6_4_5/clientgui/res/Makefile.am boinc_core_release_6_4_5p/clientgui/res/Makefile.am
--- boinc_core_release_6_4_5/clientgui/res/Makefile.am 2009-02-07 10:13:25.000000000 +0100
+++ boinc_core_release_6_4_5p/clientgui/res/Makefile.am 2009-02-07 13:16:20.000000000 +0100
@@ -2,5 +2,5 @@
include $(top_srcdir)/Makefile.incl
-dist_pkgdata_DATA = boincmgr.16x16.png boincmgr.32x32.png boincmgr.48x48.png
+# dist_pkgdata_DATA = boincmgr.16x16.png boincmgr.32x32.png boincmgr.48x48.png

75
boinc-init.patch Normal file
View File

@ -0,0 +1,75 @@
Index: client/scripts/boinc-client.in
===================================================================
--- client/scripts/boinc-client.in.orig
+++ client/scripts/boinc-client.in
@@ -19,13 +19,13 @@
# For more information about BOINC (the Berkeley Open Infrastructure
# for Network Computing) see http://boinc.berkeley.edu
# processname: boinc
-# config: /etc/sysconfig/boinc
+# config: /etc/sysconfig/boinc-client
#
### BEGIN INIT INFO
# Provides: boinc
-# Required-Start: $network
-# Required-Stop: $network
-# Default-Start: 3 4 5
+# Required-Start: $network $remote_fs
+# Required-Stop: $network $remote_fs
+# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Short-Description: This script monitors the BOINC client.
# Description: This script starts the local BOINC client as a daemon
@@ -117,6 +117,10 @@ fi
#
BOINCUSER=boinc
+# Name of group to run as:
+#
+BOINCGROUP=boinc
+
# Working directory. Could be /home/boinc, /var/lib/boinc, etc..
# The reason I prefer /var/lib/boinc is that this works best for a
# cluster of computers where /home/anything might be shared between machines
@@ -128,7 +132,7 @@ BOINCDIR=/var/lib/boinc
# but I like to rename it and put it in a public place.
# (Hint: move boincmgr to /usr/local/bin too so anyone can easily use it).
#
-BOINCEXE_NAME=boinc_client
+BOINCEXE_NAME=boinc-client
BOINCEXE=${bindir}/${BOINCEXE_NAME}
BOINCCMD_NAME=boinccmd
BOINCCMD=${bindir}/${BOINCCMD_NAME}
@@ -178,8 +182,8 @@ export TERM=dumb
# but if the functions are not found we create our own simple replacements.
# (The idea for replacing the functions comes from OpenAFS. Thanks guys!)
-if [ -f /etc/rc.d/init.d/functions ] ; then
- . /etc/rc.d/init.d/functions
+if [ -f /etc/init.d/functions ] ; then
+ . /etc/init.d/functions
else
if printf "Hello" >/dev/null 2>/dev/null ; then
# printf works
@@ -279,7 +283,7 @@ if [ ! -d $BOINCDIR ]; then
echo -n "Creating $BOINCDIR "
if mkdir -p $BOINCDIR 2>/dev/null ; then
if [ -n "$BOINCUSER" ] ; then
- if chown $BOINCUSER $BOINCDIR ; then
+ if chown $BOINCUSER:$BOINCGROUP $BOINCDIR ; then
echo_success
else
echo_failure
@@ -329,8 +333,10 @@ if [ "${USERNOW}" = "${BOINCUSER}" ] ; t
exit 8
fi
elif [ "${USERNOW}" = "root" ] ; then
- cmd="if test -O ${BOINCDIR} ; then echo success ; fi"
- if [ -z `su $BOINCUSER -c "$cmd"` ]; then
+ #cmd="if test -O ${BOINCDIR} ; then echo success ; fi"
+ #if [ -z `su $BOINCUSER -c "$cmd"` ]; then
+ if [ -z `sudo -u $BOINCUSER /bin/sh -c "if test -O ${BOINCDIR} ;
+ then echo success ; fi"` ]; then
echo -n ERROR: $BOINCDIR is not owned by $BOINCUSER.
echo_failure
echo

View File

@ -1,4 +1,4 @@
/var/log/boinc_client.log {
/var/log/boinc-client.log {
daily
compress
dateext
@ -12,7 +12,7 @@
endscript
}
/var/log/boinc_client_err.log {
/var/log/boinc-client_err.log {
daily
compress
dateext

View File

@ -1,55 +0,0 @@
diff -Naur boinc_core_release_6_4_5/client/scripts/boinc-client.in boinc_core_release_6_4_5p/client/scripts/boinc-client.in
--- boinc_core_release_6_4_5/client/scripts/boinc-client.in 2009-02-07 10:14:32.000000000 +0100
+++ boinc_core_release_6_4_5p/client/scripts/boinc-client.in 2009-02-10 19:51:39.000000000 +0100
@@ -59,8 +59,8 @@
# Find the correct ps to use. On solaris /usr/ucb/ps is the one to use
# on everything else, we hope the first one in the path is the right one.
-if [ -x /usr/ucb/ps ] ; then
- PS=/usr/ucb/ps
+if [ -x /usr/ps ] ; then
+ PS=/usr/ps
else
PS=ps
fi
@@ -115,7 +115,7 @@
# Name of user to run as:
#
-BOINCUSER=boinc
+BOINCUSER=root
# Working directory. Could be /home/boinc, /var/lib/boinc, etc..
# The reason I prefer /var/lib/boinc is that this works best for a
@@ -128,9 +128,9 @@
# but I like to rename it and put it in a public place.
# (Hint: move boincmgr to /usr/local/bin too so anyone can easily use it).
#
-BOINCEXE_NAME=boinc_client
+BOINCEXE_NAME=boinc
BOINCEXE=${bindir}/${BOINCEXE_NAME}
-BOINCCMD_NAME=boinccmd
+BOINCCMD_NAME=boinc_cmd
BOINCCMD=${bindir}/${BOINCCMD_NAME}
# Log files (you should rotate these occasionally)
@@ -178,8 +178,8 @@
# but if the functions are not found we create our own simple replacements.
# (The idea for replacing the functions comes from OpenAFS. Thanks guys!)
-if [ -f /etc/rc.d/init.d/functions ] ; then
- . /etc/rc.d/init.d/functions
+if [ -f /etc/init.d/functions ] ; then
+ . /etc/init.d/functions
else
if printf "Hello" >/dev/null 2>/dev/null ; then
# printf works
@@ -279,7 +279,7 @@
echo -n "Creating $BOINCDIR "
if mkdir -p $BOINCDIR 2>/dev/null ; then
if [ -n "$BOINCUSER" ] ; then
- if chown $BOINCUSER $BOINCDIR ; then
+ if chown $BOINCUSER $BOINCGROUP $BOINCDIR ; then
echo_success
else
echo_failure

13
boinc-server.patch Normal file
View File

@ -0,0 +1,13 @@
--- sched/handle_request.cpp 2010-01-14 15:18:06.000000000 -0600
+++ sched/handle_request.cpp.orig 2010-10-04 11:24:03.000000000 -0500
@@ -143,7 +143,9 @@
// write PID into the CGI_<HOSTID> file and flush to disk
//
count = sprintf(pid_string, "%d\n", getpid());
- write(fd, pid_string, count);
+ if( write(fd, pid_string, count) < 0 ) {
+ perror("Cannot write PID to host-file") ; exit(errno) ;
+ };
fsync(fd);
g_reply->lockfile_fd = fd;

View File

@ -1,17 +0,0 @@
diff -Naur boinc_core_release_6_4_5/client/scripts/Makefile.am boinc_core_release_6_4_5p/client/scripts/Makefile.am
--- boinc_core_release_6_4_5/client/scripts/Makefile.am 2009-02-07 10:14:32.000000000 +0100
+++ boinc_core_release_6_4_5p/client/scripts/Makefile.am 2009-02-10 19:37:40.000000000 +0100
@@ -3,10 +3,10 @@
install-exec-hook:
chmod +x boinc-client
$(INSTALL) -d $(DESTDIR)/etc/init.d
- $(INSTALL) -b boinc-client $(DESTDIR)/etc/init.d/boinc-client
+ $(INSTALL) -b boinc-client $(DESTDIR)/etc/init.d/boinc
if [ -d /etc/sysconfig ] ; then \
- $(INSTALL) -d $(DESTDIR)/etc/sysconfig ; \
- $(INSTALL) boinc-client.conf $(DESTDIR)/etc/sysconfig/boinc-client ; \
+ $(INSTALL) -d $(DESTDIR)/etc ; \
+ $(INSTALL) -m644 boinc-client.conf $(DESTDIR)/etc/boinc-client.conf ; \
elif [ -d /etc/default ] ; then \
$(INSTALL) -d $(DESTDIR)/etc/default ; \
$(INSTALL) boinc-client.conf $(DESTDIR)/etc/default/boinc-client ; \

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6b51785ab609c46b30b1f0ee675cdb8de9f624a19fab98ac6f4964b217913676
size 18313666

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:785ae93cba2444e2a7b2e81eedac701054571b445affa9edd383272d9a546889
size 11666731

View File

@ -9,6 +9,9 @@
#
config_files="/etc/boinc-client.conf /etc/sysconfig/boinc-client"
# provide a default
BOINCDIR=/var/lib/boinc
# Find the correct config file
#
for config_file in $config_files ; do
@ -19,11 +22,11 @@ for config_file in $config_files ; do
done
# Checking for gui_rpc_auth.cfg
if ! test -f ~/gui_rpc_auth.cfg ; then
    ln -s /var/lib/boinc/gui_rpc_auth.cfg .
fi
if ! test -f ~/gui_rpc_auth.cfg ; then
ln -s /var/lib/boinc/gui_rpc_auth.cfg .
fi
# Change directory and start BOINC Manager
#
cd $BOINCDIR
exec boinc_gui
cd "$BOINCDIR"
exec boinc-gui

29
generate-tarball.sh Normal file
View File

@ -0,0 +1,29 @@
#!/bin/sh
VERSION=$1
svn co http://boinc.berkeley.edu/svn/tags/boinc_core_release_$VERSION boinc_core_release_$VERSION
if [ -z $1 ]; then
echo "No path specified: use \"trim [PATH_TO_SOURCE_TOP_DIR]\"";
exit 1;
fi
# remove all binaries and other unnecessary things
echo "Trimming directories..."
DIRS="win_build html openssl client/os2 client/win clientgui/mac clientlib clienttray curl/include curl/mswin curl/patches lib/mac mac_build mac_installer zip/zip/macos zip/zip/win32 zip/unzip/macos zip/unzip/win32 zlib RSAEuro stripchart coprocs"
for DIR in $DIRS; do
/bin/rm -rf $1/$DIR;
echo $1/$DIR;
done
echo "Trimming wxWidgets translations..."
# remove wxWidgets translations
find $1/locale -name wxstd.mo -delete
echo "Done."
tar -cvjf boinc_core_release-$VERSION.tar.bz2 boinc_core_release_$VERSION --exclude=.svn

View File

@ -1,32 +1,35 @@
#
# -*- mode:sh; mode:font-lock; -*-
# Default variable values for the boinc-client /etc/init.d script
#
#BOINCEXE_NAME=boinc_client
#BOINCCMD_NAME=boinccmd
BOINCEXE_NAME=boinc-client
BOINCCMD_NAME=boinccmd
# The userid under which boinc_client is run
#BOINCUSER=boinc
# The userid under which boinc-client is run
BOINCUSER=boinc
BOINCGROUP=boinc
# The directory in which boinc_client is run
#BOINCDIR=/var/lib/boinc
# The directory in which boinc-client is run
BOINCDIR=/var/lib/boinc
# log files
#LOGFILE=/var/log/${BOINCEXE_NAME}.log
#ERRORLOG=/var/log/${BOINCEXE_NAME}_err.log
LOGFILE=/var/log/${BOINCEXE_NAME}.log
ERRORLOG=/var/log/${BOINCEXE_NAME}_err.log
# pid file
#PIDFILE=/var/run/${BOINCEXE_NAME}.pid
PIDFILE=/var/run/${BOINCEXE_NAME}.pid
# placement of the lockfile depends upon the operating system
# it will probably be one of the following:
#LOCKFILE=/var/lock/subsys/${BOINCEXE_NAME}
#LOCKFILE=/var/lock/${BOINCEXE_NAME}
#LOCKFILE=/var/run/${BOINCEXE_NAME}.lock
LOCKFILE=/var/lock/subsys/${BOINCEXE_NAME}
# BOINC options: for the command line when running the client.
# Be aware that --allow_remote_gui_rpc opens up your machine to the world!
#
# The default is no options.
BOINCOPTS=
# Add this option if you want to allow boinc manager connections from remote
# machines
#BOINCOPTS="--allow_remote_gui_rpc"
@ -38,5 +41,3 @@
# Add this option if you want to run only when no logins from anywhere are
# active
#BOINCOPTS="--check_all_logins"
# The default is no options.
#BOINCOPTS=