[boinc-client] - Update to 7.0a branch - Added boinc-client-X11.patch to workaround a --no-as-needed build issue -

Miloš Jakubíček mjakubicek at fedoraproject.org
Tue Jul 10 06:31:22 UTC 2012


commit 718b963b3ca2359fa647a795587c8cea14e11006
Author: Milos Jakubicek <xjakub at fi.muni.cz>
Date:   Mon Jul 9 20:15:55 2012 +0200

    - Update to 7.0a branch
    - Added boinc-client-X11.patch to workaround a --no-as-needed build issue
    - Added boinc-manager-client-notification.patch to be tell users about how
      to setup Boinc on Fedora
    - Added backported boinc-client-menu.patch to fix menu display
    - Don't use Boinc rotating log files (never deletes them)
    - Fix automatic startup of the service
    - Fix leaving lockfile after service stop
    - Resolve BZ#731669, BZ#814060, BZ#825032, BZ#827912, BZ#829564, BZ#834900,
      BZ#838507.

 .gitignore                              |    1 +
 boinc-client-X11.patch                  |   11 +++++
 boinc-client-menu.patch                 |   11 +++++
 boinc-client-systemd                    |    8 +++-
 boinc-client.spec                       |   64 +++++++++++++++++++++----------
 boinc-glib-compat.patch                 |   11 -----
 boinc-manager-Makefile.patch            |   17 --------
 boinc-manager-client-notification.patch |   24 +++++++++++
 sources                                 |    2 +-
 9 files changed, 97 insertions(+), 52 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index ad318ba..564470e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,4 @@ boinc-6.10.45.tar.xz
 /boinc-6.10.58.tar.xz
 /boinc-6.12.35.tar.xz
 /boinc-6.12.43.tar.xz
+/boinc-7.0.29.tar.xz
diff --git a/boinc-client-X11.patch b/boinc-client-X11.patch
new file mode 100644
index 0000000..d145fd0
--- /dev/null
+++ b/boinc-client-X11.patch
@@ -0,0 +1,11 @@
+--- client/Makefile.am.orig	2012-06-23 11:41:21.035798194 +0200
++++ client/Makefile.am	2012-06-23 11:39:41.197878359 +0200
+@@ -82,7 +82,7 @@
+ if OS_DARWIN
+ boinc_client_LDFLAGS += -Wl,-flat_namespace,-undefined,dynamic_lookup
+ endif
+-boinc_client_LDADD = $(LIBBOINC) $(LIBBOINC_CRYPT) $(BOINC_EXTRA_LIBS) $(PTHREAD_LIBS)
++boinc_client_LDADD = $(LIBBOINC) $(LIBBOINC_CRYPT) $(BOINC_EXTRA_LIBS) $(PTHREAD_LIBS) -lX11
+ 
+ boinc_clientdir = $(bindir)
+ 
diff --git a/boinc-client-menu.patch b/boinc-client-menu.patch
new file mode 100644
index 0000000..1f6903c
--- /dev/null
+++ b/boinc-client-menu.patch
@@ -0,0 +1,11 @@
+--- boinc/clientgui/AdvancedFrame.cpp	(revision 25701)
++++ boinc/clientgui/AdvancedFrame.cpp	(revision 25702)
+@@ -702,4 +702,8 @@
+     wxMenuBar* m_pOldMenubar = GetMenuBar();
+     SetMenuBar(m_pMenubar);
++#ifdef __WXGTK__
++    // Force a redraw of the menu under Ubuntu's new interface
++    SendSizeEvent();
++#endif
+ #ifdef __WXMAC__
+     m_pMenubar->MacInstallMenuBar();
diff --git a/boinc-client-systemd b/boinc-client-systemd
index c4aa847..5b4b8bf 100644
--- a/boinc-client-systemd
+++ b/boinc-client-systemd
@@ -1,15 +1,19 @@
 [Unit]
 Description=Berkeley Open Infrastructure Network Computing Client
-After=network.target graphical.target
+After=network.target
 
 [Service]
 Nice=10
 User=boinc
 CPUShares=2
 ControlGroup=cpu:/background
+PermissionsStartOnly=yes
 ExecStartPre=/bin/sleep 1
-ExecStart=/usr/bin/boinc_client --dir /var/lib/boinc --redirectio
+ExecStartPre=/usr/bin/touch /var/log/boinc.log /var/log/boincerr.log
+ExecStartPre=/usr/bin/chown boinc:boinc /var/log/boinc.log /var/log/boincerr.log
+ExecStart=/usr/bin/boinc --dir /var/lib/boinc
 ExecReload=/usr/bin/boinccmd --read_cc_config
+ExecStopPost=/bin/rm -f /var/lib/boinc/lockfile
 
 [Install]
 WantedBy=multi-user.target
diff --git a/boinc-client.spec b/boinc-client.spec
index fe8e7f0..8770449 100644
--- a/boinc-client.spec
+++ b/boinc-client.spec
@@ -1,10 +1,10 @@
-%global revision 25218
-%global version_ 6_12
+%global revision 25790
+%global version_ 7_0a
 
 Summary:	The BOINC client core
 Name:		boinc-client
-Version:	6.12.43
-Release:	2.r%{revision}svn%{?dist}
+Version:	7.0.29
+Release:	1.r%{revision}svn%{?dist}
 License:	LGPLv2+
 Group:		Applications/Engineering
 URL:		http://boinc.berkeley.edu/
@@ -12,7 +12,7 @@ URL:		http://boinc.berkeley.edu/
 # following commands to generate the tarball:
 # svn export http://boinc.berkeley.edu/svn/branches/boinc_core_release_%{version_}
 # pushd boinc_core_release_%{version_}
-# patch < boinc-manager-Makefile.patch
+# patch -p0 < boinc-client-X11.patch
 # ./_autosetup
 # ./trim . Trim all binaries and other unnecessary things.
 # popd
@@ -23,17 +23,19 @@ Source2:	boinc-client-logrotate-d
 Source3:	boinc-manager.desktop
 Source4:	USAGE_FEDORA
 Source8:	trim
-#Wrong indentation in Makefile.am breaks the build
-#Filed upstream: http://boinc.berkeley.edu/trac/ticket/1132
-Source9:	boinc-manager-Makefile.patch
+#Missing direct linking to X11 breaks build due to --no-add-needed
+#Filed upstream: http://boinc.berkeley.edu/trac/ticket/1192
+Source9:	boinc-client-X11.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
-# build fix for new glib
-# Filed upstream: http://boinc.berkeley.edu/trac/ticket/1173
-Patch2:		boinc-glib-compat.patch
+# Show notification upon failure to client in manager
+Patch1:		boinc-manager-client-notification.patch
+# fix client menu display
+# Filed upstream: http://boinc.berkeley.edu/trac/ticket/1130
+Patch2:		boinc-client-menu.patch
 # build fix for new xcb-util
 # Filed upstream: http://boinc.berkeley.edu/trac/ticket/1174
 Patch3:		boinc-xcb-compat.patch
@@ -61,7 +63,8 @@ BuildRequires:	libjpeg-devel
 BuildRequires:	docbook2X
 BuildRequires:	xcb-util-devel
 BuildRequires:	libnotify-devel
-BuildRequires:  gtk2-devel
+BuildRequires:	gtk2-devel
+BuildRequires:	libXScrnSaver-devel
 
 %description
 The Berkeley Open Infrastructure for Network Computing (BOINC) is an open-
@@ -125,6 +128,7 @@ This package contains documentation files for %{name}.
 %prep
 %setup -q -n boinc_core_release_%{version_}
 %patch0
+%patch1 -p1
 %patch2 -p1
 %patch3 -p1
 
@@ -166,6 +170,8 @@ sed -i 's/BOINC-Manager\.po/BOINC-Manager\.mo/g' locale/Makefile.in
 # Install user hints
 install -p -m644 %{SOURCE4} .
 
+sed -i 's/#   CLIENTGUI_SUBDIRS += clientscr/   CLIENTGUI_SUBDIRS += clientscr/' Makefile.in
+
 %global confflags --disable-dependency-tracking --enable-dynamic-client-linkage --disable-server --disable-fcgi --enable-unicode --with-ssl --with-x STRIP=: DOCBOOK2X_MAN=/usr/bin/db2x_docbook2man
 
 %if %{defined boinc_platform}
@@ -208,9 +214,15 @@ rm -rf $RPM_BUILD_ROOT%{_bindir}/upper_case
 
 pushd $RPM_BUILD_ROOT%{_bindir}
 
-# use symlink instead of hardlink
 rm boinc
-ln -s boinc_client boinc
+cat > boinc <<EOF
+#!/bin/bash
+# wrapper script that redirects stdout/stderr to correct log paths
+
+# we allow multiple clients so that the client does not think there is another instance running (namely this wrapper)
+%{_bindir}/boinc_client --allow_multiple_clients \$@ >> %{_localstatedir}/log/boinc.log 2>> %{_localstatedir}/log/boincerr.log 
+EOF
+chmod a+x boinc
 
 # remove libtool archives
 rm $RPM_BUILD_ROOT%{_libdir}/*.la
@@ -238,9 +250,9 @@ install -p -m755 %{SOURCE1} $RPM_BUILD_ROOT%{_unitdir}/%{name}.service
 install -p -m644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/%{name}
 
 # icon
-mv $RPM_BUILD_ROOT%{_datadir}/boinc/boincmgr.16x16.png $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/16x16/apps/boincmgr.png
-mv $RPM_BUILD_ROOT%{_datadir}/boinc/boincmgr.32x32.png $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/32x32/apps/boincmgr.png
-mv $RPM_BUILD_ROOT%{_datadir}/boinc/boincmgr.48x48.png $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/48x48/apps/boincmgr.png
+cp -p clientgui/res/boincmgr.16x16.png $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/16x16/apps/boincmgr.png
+cp -p clientgui/res/boincmgr.32x32.png $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/32x32/apps/boincmgr.png
+cp -p clientgui/res/boincmgr.48x48.png $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/48x48/apps/boincmgr.png
 
 desktop-file-install %{?_remove_encoding} --vendor fedora \
   --dir $RPM_BUILD_ROOT%{_datadir}/applications \
@@ -252,10 +264,6 @@ desktop-file-install %{?_remove_encoding} --vendor fedora \
 # bash-completion
 install -Dp -m644 client/scripts/boinc.bash $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d/boinc-client
 
-# create symlinks for logging
-ln -sf /var/log/boinc.log $RPM_BUILD_ROOT%{_localstatedir}/lib/boinc/stdoutdae.txt
-ln -sf /var/log/boincerr.log $RPM_BUILD_ROOT%{_localstatedir}/lib/boinc/stderrdae.txt
-
 %clean
 rm -rf $RPM_BUILD_ROOT
 
@@ -348,6 +356,8 @@ fi
 %{_libdir}/libboinc_api.a
 %{_libdir}/libboinc_crypt.a
 %{_libdir}/libboinc_graphics2.a
+%{_libdir}/libboinc_opencl.a
+%{_libdir}/libboinc_zip.a
 
 %files devel
 %defattr(-,root,root,-)
@@ -355,6 +365,18 @@ fi
 %{_includedir}/boinc
 
 %changelog
+* Mon Jul 09 2012 Miloš Jakubíček <xjakub at fi.muni.cz> - 7.0.29-1.r25790svn
+- Update to 7.0a branch
+- Added boinc-client-X11.patch to workaround a --no-as-needed build issue
+- Added boinc-manager-client-notification.patch to be tell users about how
+  to setup Boinc on Fedora
+- Added backported boinc-client-menu.patch to fix menu display
+- Don't use Boinc rotating log files (never deletes them)
+- Fix automatic startup of the service
+- Fix leaving lockfile after service stop
+- Resolve BZ#731669, BZ#814060, BZ#825032, BZ#827912, BZ#829564, BZ#834900,
+  BZ#838507.
+
 * Fri Jun 22 2012 Miloš Jakubíček <xjakub at fi.muni.cz> - 6.12.43-2.r25218svn
 - Fixed naming systemd service file
 - Fixed logging to /var/log/boinc.log and /var/log/boincerr.log
diff --git a/boinc-manager-client-notification.patch b/boinc-manager-client-notification.patch
new file mode 100644
index 0000000..e1730bc
--- /dev/null
+++ b/boinc-manager-client-notification.patch
@@ -0,0 +1,24 @@
+--- boinc_core_release_7_0a/clientgui/MainDocument.cpp.orig	2012-06-23 14:07:34.000000000 +0200
++++ boinc_core_release_7_0a/clientgui/MainDocument.cpp	2012-06-26 13:28:37.646721157 +0200
+@@ -378,6 +378,21 @@
+         m_bReconnecting = false;
+         m_pDocument->results.clear();
+     }
++    wxDialog *dial = new wxDialog(pFrame, wxID_ANY, wxT("Could not connect to client"));
++    wxBoxSizer *vbox = new wxBoxSizer(wxVERTICAL);
++    wxBoxSizer *hbox = new wxBoxSizer(wxHORIZONTAL);
++    wxButton *closeButton = new wxButton(dial, wxID_OK, wxT("Close"));
++    closeButton->SetFocus();
++    wxHyperlinkCtrl *link = new wxHyperlinkCtrl(dial, wxID_ANY, wxT("How to use Boinc on Fedora"), wxT("http://boinc.berkeley.edu/wiki/Installing_BOINC_on_Fedora"));
++    wxStaticText *text = new wxStaticText(dial, wxID_ANY, wxT("The BOINC manager could not connect to BOINC client. The client might not be running or your are not allowed to connect to it. Please refer to the documentation provided by the link below to learn how to setup the client."), wxDefaultPosition, wxDefaultSize, wxST_NO_AUTORESIZE);
++    text->Wrap(dial->GetSize().GetWidth() * 0.8);
++    vbox->Add(text, 0, wxALIGN_CENTER, 0);
++    vbox->Add(link, 0, wxALIGN_CENTER | wxTOP, 10);
++    vbox->Add(closeButton, 0, wxALIGN_CENTER | wxTOP, 10);
++    hbox->Add(vbox, 0, wxALL, 20);
++    dial->SetSizerAndFit(hbox);
++    dial->ShowModal();
++    dial->Destroy();
+ }
+ 
+ 
diff --git a/sources b/sources
index 08b89d8..3759ecb 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-63e47ac1d44f68192796fa9bf71a1ce7  boinc-6.12.43.tar.xz
+4039373a0ecbbf68eca36f2ef17d3fdb  boinc-7.0.29.tar.xz


More information about the scm-commits mailing list