diff --git a/README.SUSE b/README.SUSE new file mode 100644 index 0000000..7c60d44 --- /dev/null +++ b/README.SUSE @@ -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. diff --git a/boinc-LC_MESSAGES.patch b/boinc-LC_MESSAGES.patch index c39b081..763534d 100644 --- a/boinc-LC_MESSAGES.patch +++ b/boinc-LC_MESSAGES.patch @@ -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 diff --git a/boinc-bnc_465676.patch b/boinc-bnc_465676.patch deleted file mode 100644 index 8f7025b..0000000 --- a/boinc-bnc_465676.patch +++ /dev/null @@ -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"; diff --git a/boinc-ca_cert_deactivate.patch b/boinc-ca_cert_deactivate.patch deleted file mode 100644 index af654c1..0000000 --- a/boinc-ca_cert_deactivate.patch +++ /dev/null @@ -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 - diff --git a/boinc-client-NotebookWxPanel.patch b/boinc-client-NotebookWxPanel.patch deleted file mode 100644 index 460884e..0000000 --- a/boinc-client-NotebookWxPanel.patch +++ /dev/null @@ -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) diff --git a/boinc-client-hostinfo.patch b/boinc-client-hostinfo.patch deleted file mode 100644 index dd7fd7e..0000000 --- a/boinc-client-hostinfo.patch +++ /dev/null @@ -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; diff --git a/boinc-client-rpmlintrc b/boinc-client-rpmlintrc index f61cfaa..af5430d 100644 --- a/boinc-client-rpmlintrc +++ b/boinc-client-rpmlintrc @@ -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") diff --git a/boinc-client-str_util.patch b/boinc-client-str_util.patch index 1d466c4..30282e8 100644 --- a/boinc-client-str_util.patch +++ b/boinc-client-str_util.patch @@ -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 diff --git a/boinc-client-wxWindowListNode.patch b/boinc-client-wxWindowListNode.patch deleted file mode 100644 index 02a72f2..0000000 --- a/boinc-client-wxWindowListNode.patch +++ /dev/null @@ -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); diff --git a/boinc-client.changes b/boinc-client.changes index 689bb8a..91c7401 100644 --- a/boinc-client.changes +++ b/boinc-client.changes @@ -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 diff --git a/boinc-client.spec b/boinc-client.spec index 058ab09..dc912d5 100644 --- a/boinc-client.spec +++ b/boinc-client.spec @@ -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 - Rom Walton - 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 - Rom Walton - 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 - Rom Walton - 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 - Rom Walton - 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 - Rom Walton - 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 diff --git a/boinc-completion.patch b/boinc-completion.patch new file mode 100644 index 0000000..da4f02b --- /dev/null +++ b/boinc-completion.patch @@ -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() + { diff --git a/boinc-docbook2x.patch b/boinc-docbook2x.patch index 3b4928a..5238936 100644 --- a/boinc-docbook2x.patch +++ b/boinc-docbook2x.patch @@ -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. diff --git a/boinc-fs_start_included.patch b/boinc-fs_start_included.patch deleted file mode 100644 index 30a3e04..0000000 --- a/boinc-fs_start_included.patch +++ /dev/null @@ -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 diff --git a/boinc-gui.desktop b/boinc-gui.desktop index 07c83fa..aa87f69 100644 --- a/boinc-gui.desktop +++ b/boinc-gui.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Encoding=UTF-8 -Exec=boincmgr +Exec=boincmanager Icon=boinc-gui Terminal=false Type=Application diff --git a/boinc-guirpcauth.patch b/boinc-guirpcauth.patch new file mode 100644 index 0000000..2755fff --- /dev/null +++ b/boinc-guirpcauth.patch @@ -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 + } + } diff --git a/boinc-icon_old.patch b/boinc-icon_old.patch deleted file mode 100644 index 3a9c1c8..0000000 --- a/boinc-icon_old.patch +++ /dev/null @@ -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 - diff --git a/boinc-init.patch b/boinc-init.patch new file mode 100644 index 0000000..39a9046 --- /dev/null +++ b/boinc-init.patch @@ -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 diff --git a/boinc-logrotate b/boinc-logrotate index 82e23ea..078e57c 100644 --- a/boinc-logrotate +++ b/boinc-logrotate @@ -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 diff --git a/boinc-rcscript.patch b/boinc-rcscript.patch deleted file mode 100644 index 1185952..0000000 --- a/boinc-rcscript.patch +++ /dev/null @@ -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 diff --git a/boinc-server.patch b/boinc-server.patch new file mode 100644 index 0000000..3184bfb --- /dev/null +++ b/boinc-server.patch @@ -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_ 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; diff --git a/boinc-sysconfig.patch b/boinc-sysconfig.patch deleted file mode 100644 index 12d289a..0000000 --- a/boinc-sysconfig.patch +++ /dev/null @@ -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 ; \ diff --git a/boinc_core_release-6_10_58.tar.bz2 b/boinc_core_release-6_10_58.tar.bz2 new file mode 100644 index 0000000..7884ea2 --- /dev/null +++ b/boinc_core_release-6_10_58.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b51785ab609c46b30b1f0ee675cdb8de9f624a19fab98ac6f4964b217913676 +size 18313666 diff --git a/boinc_core_release_6_4_5.tar.bz2 b/boinc_core_release_6_4_5.tar.bz2 deleted file mode 100644 index adf5c79..0000000 --- a/boinc_core_release_6_4_5.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:785ae93cba2444e2a7b2e81eedac701054571b445affa9edd383272d9a546889 -size 11666731 diff --git a/boincmgr b/boincmanager similarity index 72% rename from boincmgr rename to boincmanager index be1d5a2..ccd03c0 100644 --- a/boincmgr +++ b/boincmanager @@ -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 diff --git a/generate-tarball.sh b/generate-tarball.sh new file mode 100644 index 0000000..a256b1c --- /dev/null +++ b/generate-tarball.sh @@ -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 diff --git a/sysconfig.boinc b/sysconfig.boinc-client similarity index 69% rename from sysconfig.boinc rename to sysconfig.boinc-client index a1f8cc2..fd76a59 100644 --- a/sysconfig.boinc +++ b/sysconfig.boinc-client @@ -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=