1
0
forked from pool/boinc-client

Accepting request 391382 from home:aaronpuchert

Second try for an update. The compiler errors have now been properly fixed. The main advantage of the new version is that it recognizes GPUs running on Mesa, so people can now use open source drivers with BOINC. The main disadvantage is that this doesn't compile any longer on older distros because of the new wxWidgets 3 needed to build.

OBS-URL: https://build.opensuse.org/request/show/391382
OBS-URL: https://build.opensuse.org/package/show/network/boinc-client?expand=0&rev=47
This commit is contained in:
Jan Engelhardt 2016-04-24 06:46:24 +00:00 committed by Git OBS Bridge
parent 2ad9bf9a32
commit 649e877560
14 changed files with 681 additions and 146 deletions

13
_service Normal file
View File

@ -0,0 +1,13 @@
<services>
<service name="download_url">
<param name="host">github.com</param>
<param name="protocol">https</param>
<param name="path">/BOINC/boinc/archive/client_release/7.6/7.6.22.tar.gz</param>
<param name="filename">boinc-client_release-7.6-7.6.22.tar.gz</param>
</service>
<service name="verify_file">
<param name="file">_service:download_url:boinc-client_release-7.6-7.6.22.tar.gz</param>
<param name="verifier">sha256</param>
<param name="checksum">b5b2b211725bc46399d3504bd6b0b60a9f9506d9f6b5a04d524991f239c16585</param>
</service>
</services>

View File

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

View File

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

View File

@ -1,20 +0,0 @@
Index: locale/Makefile.am
===================================================================
--- locale/Makefile.am.orig
+++ locale/Makefile.am
@@ -45,12 +45,12 @@ locale_dirs = \
install-data-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_DATA) $$ldir/BOINC-Manager.mo $$mydir/$$ldir/BOINC-Manager.mo ; \
+ $(INSTALL_DATA) $$ldir/BOINC-Manager.mo $$mydir/$$ldir/LC_MESSAGES/BOINC-Manager.mo ; \
fi ;\
if [ -f $$ldir/BOINC-Client.mo ] ; then \
- $(INSTALL_DATA) $$ldir/BOINC-Client.mo $$mydir/$$ldir/BOINC-Client.mo ; \
+ $(INSTALL_DATA) $$ldir/BOINC-Client.mo $$mydir/$$ldir/LC_MESSAGES/BOINC-Client.mo ; \
fi ;\
done

View File

@ -2,7 +2,7 @@ Index: configure.ac
===================================================================
--- configure.ac.orig
+++ configure.ac
@@ -45,6 +45,7 @@ m4_ifdef([AC_PROG_OBJCXX],[AC_PROG_OBJCX
@@ -64,6 +64,7 @@ m4_ifdef([AC_PROG_OBJCXX],[AC_PROG_OBJCX
dnl ------
AC_PROG_F77
AC_PROG_CPP
@ -10,7 +10,7 @@ Index: configure.ac
AC_PROG_MAKE_SET
SAH_LINKS
AC_LANG_PUSH(C)
@@ -793,6 +794,8 @@ AM_CONDITIONAL(ENABLE_LIBRARIES, [test "
@@ -1071,6 +1072,8 @@ AM_CONDITIONAL(ENABLE_LIBRARIES, [test "
AM_CONDITIONAL(INSTALL_HEADERS, [test "${enable_install_headers}" = yes])
AM_CONDITIONAL(HAVE_CUDA_LIB, [test "${enable_client}" = yes -a -f ./coprocs/CUDA/posix/${boinc_platform}/libcudart.so])
@ -19,19 +19,3 @@ Index: configure.ac
dnl ======================================================================
dnl some more vodoo required for building portable client-binary (client, clientgui)
dnl ======================================================================
Index: clientgui/Makefile.am
===================================================================
--- clientgui/Makefile.am.orig
+++ clientgui/Makefile.am
@@ -117,9 +117,8 @@ EXTRA_DIST = *.h \
../lib/error_numbers.h \
locale $(mac_headers)
-boincmgr_CPPFLAGS = $(AM_CPPFLAGS) $(WX_CPPFLAGS) $(SQLITE3_CPPFLAGS) $(LIBNOTIFY_CFLAGS) $(CLIENTGUIFLAGS) `pkg-config --cflags gtk+-2.0`
-boincmgr_CXXFLAGS = $(AM_CXXFLAGS) $(WX_CXXFLAGS) $(SQLITE3_CPPFLAGS) $(LIBNOTIFY_CFLAGS) $(CLIENTGUIFLAGS) `pkg-config --cflags gtk+-2.0`
-boincmgr_LDFLAGS = $(LIBBOINC) $(SQLITE3_LIBS) $(LIBNOTIFY_LIBS) $(CLIENTGUILIBS) $(BOINC_EXTRA_LIBS) $(CLIENTLIBS) `pkg-config --libs gtk+-2.0` -lnotify
+boincmgr_CPPFLAGS = $(AM_CPPFLAGS) $(WX_CPPFLAGS) $(SQLITE3_CPPFLAGS) $(LIBNOTIFY_CFLAGS) $(CLIENTGUIFLAGS) $(GTK2_CFLAGS)
+boincmgr_LDFLAGS = $(LIBBOINC) $(SQLITE3_LIBS) $(LIBNOTIFY_LIBS) $(CLIENTGUILIBS) $(BOINC_EXTRA_LIBS) $(CLIENTLIBS) $(GTK2_LIBS) -lnotify
win_config.h: $(top_srcdir)/config.h
grep '#define.*BOINC.*VERSION' $^ > $@

View File

@ -1,3 +1,35 @@
-------------------------------------------------------------------
Fri Apr 22 21:48:48 UTC 2016 - aaronpuchert@alice-dsl.net
- Replaced quick fix for compiler errors by a proper solution,
which is already upstreamed.
- Removed dependency to mysql, because that is only needed for the
BOINC server, which we don't build anyway.
- Removed dependency to libboinc, because it's meant to be
statically linked to science apps and not necessary for end user.
-------------------------------------------------------------------
Sun Mar 27 22:13:10 UTC 2016 - aaronpuchert@alice-dsl.net
- Update to version 7.6.22. The main advantage: GPUs running on
the open source stack (Mesa) are now recognized and can be used
for BOINC. Additional packages are needed though:
* libOpenCL1,
* libMesaOpenCL,
* libclc.
Further, the GPU device in /dev/dri needs to have r+w rights for
the BOINC user, since it doesn't have access to the X session.
- Fetch from GitHub instead of SVN, removed the fetch script
- Rebased all patches, removed obsolete boinc-LC_MESSAGES.patch
- Fixed compiler errors because openSUSEs wxWidgets is configured
with wxUSE_STL=1, which is incompatible with BOINC. There is an
open issue on GitHub: https://github.com/BOINC/boinc/issues/1515.
- Building the manager and locales separately is no longer
necessary.
- The icons seem to have disappeared.
- The BOINC manager should be called with the data directory
instead of the binary directory. Otherwise it can't connect.
-------------------------------------------------------------------
Wed Jun 24 10:53:06 UTC 2015 - jengelh@inai.de

View File

@ -1,7 +1,8 @@
#
# spec file for package boinc-client
#
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2016 by Aaron Puchert <aaronpuchert@alice-dsl.net>
# Copyright (c) 2011 by Sascha Manns <saigkill@opensuse.org>
#
# All modifications and additions to the file contributed by third parties
@ -19,40 +20,22 @@
# Global definitions
%define _use_internal_dependency_generator 0
%define __find_requires %{wx_requires}
%define soname 7
%define boinc_dir %{_localstatedir}/lib/boinc
Name: boinc-client
Version: 7.2.42
Version: 7.6.22
Release: 0
Summary: The BOINC client
License: GPL-3.0+ or LGPL-3.0+
Group: Productivity/Clustering/Computing
Url: http://boinc.berkeley.edu/
# There is no real tarball, hence I did
#
# git clone git://boinc.berkeley.edu/boinc.git
# git checkout master
# git checkout -t client_release/7.2/7.2.42
#
# then I created an archive via git
#
# git archive -v --format=tar --prefix=boinc-7.2.42/ \
# client_release/7.2/7.2.42 | bzip2 >../boinc-7.2.42.tar.bz2
Source0: boinc-%{version}.tar.bz2
Source0: %{name}_release-7.6-%{version}.tar.gz
Source1: boinc-icons.tar.bz2
Source2: boinc-gui.desktop
Source3: README.SUSE
Source4: sysconfig.%{name}
Source5: boinc-logrotate
Source6: boinc-manager
# 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
Source20: %{name}.service
Source100: %{name}-rpmlintrc
# PATCH-FIX-OPENSUSE boinc-guirpcauth.patch
@ -61,8 +44,6 @@ Source100: %{name}-rpmlintrc
# 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-LC_MESSAGES.patch
Patch2: boinc-LC_MESSAGES.patch
# PATCH-FIX-OPENSUSE boinc-docbook2x.patch
Patch4: boinc-docbook2x.patch
# PATCH-FIX-OPENSUSE coolo - #error: am__fastdepOBJCXX does not appear in AM_CONDITIONAL
@ -71,6 +52,15 @@ Patch7: %{name}-AM_CONDITIONAL.patch
# configure.ac:898: required file `test/version.inc.in' not found
# configure.ac:898: required file `py/Boinc/version.py.in' not found
Patch8: boinc-configure.patch
# PATCH-FIX-UPSTREAM boinc-remove-dead-code.patch
# This is a cherry-pick of commit 1c4f391 and removes dead code that wouldn't
# compile on openSUSE
Patch9: boinc-remove-dead-code.patch
# PATCH-FIX-UPSTREAM boinc-use-wxstring.patch
# This is a squashed cherry-pick of the commits 9604566, b7cc65a and 8c11cad.
# This solves the remaining compiler errors on openSUSE by replacing naked
# char* and wxChar* by wxStrings.
Patch10: boinc-use-wxstring.patch
BuildRequires: Mesa-devel
BuildRequires: docbook2x
BuildRequires: docbook_4
@ -84,21 +74,14 @@ BuildRequires: libjpeg-devel
BuildRequires: libnotify-devel
BuildRequires: libtool
BuildRequires: libxslt
BuildRequires: mysql-devel
BuildRequires: openssl-devel
BuildRequires: pkg-config
BuildRequires: pwdutils
BuildRequires: python-mysql
BuildRequires: sqlite3-devel
BuildRequires: systemd
BuildRequires: update-desktop-files
BuildRequires: wxWidgets-devel >= 2.8.0
BuildRequires: wxWidgets-3_0-devel >= 3.0.2
BuildRequires: xorg-x11-libXmu-devel
### FIXME:
## updating boinc-client or boinc-manager does not update libboinc6
## hence we define this dependency
## !! Do not remove this dependency !!
Requires: libboinc%{soname} = %{version}-%{release}
Recommends: boinc-client-lang = %{version}
Recommends: logrotate
Requires(pre): pwdutils
@ -146,7 +129,6 @@ in which all information and all control elements are available.
Summary: Development files for boinc-client
Group: Development/Libraries/C and C++
Requires: %{name} = %{version}-%{release}
Requires: mysql-devel
Requires: openssl-devel
%description devel
@ -172,30 +154,19 @@ BuildArch: noarch
This package contains documentation files for %{name}.
%prep
%setup -q -n boinc-%{version} -D -a 1
%setup -q -n %{name}_release-7.6-%{version} -D -a 1
%patch0
%patch2
%patch4
%patch7
%patch8
%patch9 -p1
%patch10 -p1
# Install user hints
install -m0644 %{SOURCE3} 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
# fix utf8
iconv -f ISO88591 -t UTF8 < checkin_notes_2005 > checkin_notes_2005.utf8
@ -214,13 +185,10 @@ mv checkin_notes_2010.utf8 checkin_notes_2010
chmod 644 clientgui/{DlgItemProperties.h,AsyncRPC.cpp,DlgItemProperties.cpp}
sed -i 's/\r//' clientgui/DlgItemProperties.cpp
### bnc#745656
## remove files with questionable licenses
# removing NVIDIA owned file that does not clearly allow redistribution or
# modification
rm coprocs/NVIDIA/include/nvapi.h
# removing unnecessary APSL licensed files
rm client/app_stats_mac.cpp
%build
#remove run libtoolize and ./_autosetup
@ -228,6 +196,8 @@ rm client/app_stats_mac.cpp
./_autosetup
%configure \
--enable-optimize \
--enable-shared \
--disable-static \
--enable-dynamic-client-linkage \
--disable-server \
@ -247,22 +217,6 @@ make libboinc_la_LIBADD="-L%{_libdir} -lssl -ldl" \
CXXFLAGS="%{optflags} -g -W -pipe -fno-strict-aliasing -D_REENTRANT" \
DESTDIR=%{_prefix} %{?_smp_mflags}
### hmm, boincmgr is not build by default (but stated in configure)
# BOINC Default enable values
# --enable-server --enable-client --enable-libraries
# --enable-manager: builds server, client, and libraries
#
# hence we jump into clientgui and build it manually
pushd clientgui
make libboinc_la_LIBADD="-L%{_libdir} -lssl -ldl" \
CFLAGS="%{optflags} -g -W -pipe -fno-strict-aliasing -D_REENTRANT -lgtk-x11-2.0" \
CXXFLAGS="%{optflags} -g -W -pipe -fno-strict-aliasing -D_REENTRANT -lgtk-x11-2.0" \
DESTDIR=%{_prefix} %{?_smp_mflags}
popd
pushd locale
make %{?_smp_mflags}
popd
%install
make DESTDIR=%{buildroot} install %{?_smp_mflags}
for i in clientgui locale; do
@ -322,11 +276,6 @@ install -Dm0644 boinc-gui-32.png %{buildroot}%{_datadir}/icons/hicolor/32x32/app
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
# install icons
install -m0644 clientgui/res/boincmgr.16x16.png %{buildroot}%{_datadir}/icons/hicolor/16x16/apps/boincmanager.png
install -m0644 clientgui/res/boincmgr.32x32.png %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/boincmanager.png
install -m0644 clientgui/res/boincmgr.48x48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/boincmanager.png
# Install *.desktop File
%suse_update_desktop_file -i boinc-gui Utility

View File

@ -2,7 +2,7 @@ Index: configure.ac
===================================================================
--- configure.ac.orig
+++ configure.ac
@@ -968,7 +968,6 @@ AC_CONFIG_FILES([
@@ -1305,7 +1305,6 @@ AC_CONFIG_FILES([
lib/Makefile
locale/Makefile
Makefile
@ -10,8 +10,8 @@ Index: configure.ac
py/Makefile
py/boinc_path_config.py:py/boinc_path_config.py.in
py/setup.py
@@ -990,7 +989,6 @@ AC_CONFIG_FILES([
packages/solaris/CSW/boincmanager/prototype
@@ -1328,7 +1327,6 @@ AC_CONFIG_FILES([
samples/Makefile
test/boinc_path_config.py:py/boinc_path_config.py.in
test/Makefile
- test/version.inc

View File

@ -2,7 +2,7 @@ Index: configure.ac
===================================================================
--- configure.ac.orig
+++ configure.ac
@@ -297,7 +297,7 @@ AC_SUBST([TOP_BUILD_DIR], [`pwd`])
@@ -333,7 +333,7 @@ AC_SUBST([TOP_BUILD_DIR], [`pwd`])
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

@ -2,7 +2,7 @@ Index: client/gui_rpc_server.cpp
===================================================================
--- client/gui_rpc_server.cpp.orig
+++ client/gui_rpc_server.cpp
@@ -169,12 +169,7 @@ void GUI_RPC_CONN_SET::get_password() {
@@ -175,12 +175,7 @@ void GUI_RPC_CONN_SET::get_password() {
// they can cause code to execute as this user.
// So better protect it.
//

View File

@ -7,4 +7,4 @@ if ! test -f ~/gui_rpc_auth.cfg ; then
ln -s @boinc_dir@/gui_rpc_auth.cfg ~/.
fi
exec boinc-gui -e @bindir@
exec boinc-gui -d @boinc_dir@

View File

@ -0,0 +1,465 @@
diff --git a/clientgui/AdvancedFrame.cpp b/clientgui/AdvancedFrame.cpp
index e9b08e8..5c41497 100644
--- a/clientgui/AdvancedFrame.cpp
+++ b/clientgui/AdvancedFrame.cpp
@@ -199,7 +199,6 @@ BEGIN_EVENT_TABLE (CAdvancedFrame, CBOINCBaseFrame)
// Custom Events & Timers
EVT_FRAME_CONNECT(CAdvancedFrame::OnConnect)
EVT_FRAME_NOTIFICATION(CAdvancedFrame::OnNotification)
- EVT_FRAME_UPDATESTATUS(CAdvancedFrame::OnUpdateStatus)
EVT_TIMER(ID_REFRESHSTATETIMER, CAdvancedFrame::OnRefreshState)
EVT_TIMER(ID_FRAMERENDERTIMER, CAdvancedFrame::OnFrameRender)
EVT_NOTEBOOK_PAGE_CHANGED(ID_FRAMENOTEBOOK, CAdvancedFrame::OnNotebookSelectionChanged)
@@ -1951,16 +1950,6 @@ void CAdvancedFrame::OnNotification(CFrameEvent& WXUNUSED(event)) {
}
-void CAdvancedFrame::OnUpdateStatus(CFrameEvent& event) {
- wxLogTrace(wxT("Function Start/End"), wxT("CAdvancedFrame::OnUpdateStatus - Function Begin"));
-
- m_pStatusbar->SetStatusText(event.m_message);
- ::wxSleep(0);
-
- wxLogTrace(wxT("Function Start/End"), wxT("CAdvancedFrame::OnUpdateStatus - Function End"));
-}
-
-
void CAdvancedFrame::OnRefreshState(wxTimerEvent& WXUNUSED(event)) {
wxLogTrace(wxT("Function Start/End"), wxT("CAdvancedFrame::OnRefreshState - Function Begin"));
diff --git a/clientgui/AdvancedFrame.h b/clientgui/AdvancedFrame.h
index a44bce9..4ddfc60 100644
--- a/clientgui/AdvancedFrame.h
+++ b/clientgui/AdvancedFrame.h
@@ -98,8 +98,6 @@ public:
void OnConnect( CFrameEvent& event );
void OnNotification( CFrameEvent& event );
- void OnUpdateStatus( CFrameEvent& event );
-
void ResetReminderTimers();
bool RestoreState();
diff --git a/clientgui/BOINCBaseFrame.h b/clientgui/BOINCBaseFrame.h
index 3e226bf..0d4ef92 100644
--- a/clientgui/BOINCBaseFrame.h
+++ b/clientgui/BOINCBaseFrame.h
@@ -87,8 +87,6 @@ public:
virtual void StopTimers();
virtual void UpdateRefreshTimerInterval();
- inline void UpdateStatusText( const wxChar* ){}
-
void ShowAlert(
const wxString title,
const wxString message,
diff --git a/clientgui/MainDocument.cpp b/clientgui/MainDocument.cpp
index 9fa22c4..fa7b953 100644
--- a/clientgui/MainDocument.cpp
+++ b/clientgui/MainDocument.cpp
@@ -581,7 +581,6 @@ int CMainDocument::OnPoll() {
}
if (IsComputerNameLocal(hostName)) {
- pFrame->UpdateStatusText(_("Starting client"));
if (m_pClientManager->StartupBOINCCore()) {
Connect(wxT("localhost"), portNum, password, TRUE, TRUE);
} else {
@@ -589,11 +588,8 @@ int CMainDocument::OnPoll() {
pFrame->ShowDaemonStartFailedAlert();
}
} else {
- pFrame->UpdateStatusText(_("Connecting to client"));
Connect(hostName, portNum, password, TRUE, password.IsEmpty());
}
-
- pFrame->UpdateStatusText(wxEmptyString);
}
// Check connection state, connect if needed.
@@ -1203,7 +1199,6 @@ int CMainDocument::ForceCacheUpdate(bool immediate) {
if (IsConnected()) {
wxASSERT(wxDynamicCast(pFrame, CBOINCBaseFrame));
- pFrame->UpdateStatusText(_("Retrieving system state; please wait..."));
m_dtCachedStateTimestamp = wxDateTime::Now();
m_iGet_state_rpc_result = rpc.get_state(state);
@@ -1213,7 +1208,6 @@ int CMainDocument::ForceCacheUpdate(bool immediate) {
m_pNetworkConnection->SetStateDisconnected();
}
- pFrame->UpdateStatusText(wxEmptyString);
} else {
retval = -1;
}
diff --git a/clientgui/ViewProjects.cpp b/clientgui/ViewProjects.cpp
index e7be8ba..d63f622 100644
--- a/clientgui/ViewProjects.cpp
+++ b/clientgui/ViewProjects.cpp
@@ -390,7 +390,6 @@ void CViewProjects::OnProjectUpdate( wxCommandEvent& WXUNUSED(event) ) {
wxASSERT(wxDynamicCast(pFrame, CAdvancedFrame));
wxASSERT(m_pListPane);
- pFrame->UpdateStatusText(_("Updating project..."));
row = -1;
while (1) {
// Step through all selected items
@@ -399,7 +398,6 @@ void CViewProjects::OnProjectUpdate( wxCommandEvent& WXUNUSED(event) ) {
pDoc->ProjectUpdate(m_iSortedIndexes[row]);
}
- pFrame->UpdateStatusText(wxT(""));
m_bForceUpdateSelection = true;
UpdateSelection();
@@ -432,13 +430,9 @@ void CViewProjects::OnProjectSuspend( wxCommandEvent& WXUNUSED(event) ) {
PROJECT* project = pDoc->project(m_iSortedIndexes[row]);
if (project) {
if (project->suspended_via_gui) {
- pFrame->UpdateStatusText(_("Resuming project..."));
pDoc->ProjectResume(m_iSortedIndexes[row]);
- pFrame->UpdateStatusText(wxT(""));
} else {
- pFrame->UpdateStatusText(_("Suspending project..."));
pDoc->ProjectSuspend(m_iSortedIndexes[row]);
- pFrame->UpdateStatusText(wxT(""));
}
}
}
@@ -473,13 +467,9 @@ void CViewProjects::OnProjectNoNewWork( wxCommandEvent& WXUNUSED(event) ) {
PROJECT* project = pDoc->project(m_iSortedIndexes[row]);
if (project) {
if (project->dont_request_more_work) {
- pFrame->UpdateStatusText(_("Telling project to allow additional task downloads..."));
pDoc->ProjectAllowMoreWork(m_iSortedIndexes[row]);
- pFrame->UpdateStatusText(wxT(""));
} else {
- pFrame->UpdateStatusText(_("Telling project to not fetch any additional tasks..."));
pDoc->ProjectNoMoreWork(m_iSortedIndexes[row]);
- pFrame->UpdateStatusText(wxT(""));
}
}
}
@@ -513,8 +503,6 @@ void CViewProjects::OnProjectReset( wxCommandEvent& WXUNUSED(event) ) {
if (!pDoc->IsUserAuthorized())
return;
- pFrame->UpdateStatusText(_("Resetting project..."));
-
row = -1;
while (1) {
// Step through all selected items
@@ -542,8 +530,6 @@ void CViewProjects::OnProjectReset( wxCommandEvent& WXUNUSED(event) ) {
}
}
- pFrame->UpdateStatusText(wxT(""));
-
m_bForceUpdateSelection = true;
UpdateSelection();
pFrame->FireRefreshView();
@@ -571,8 +557,6 @@ void CViewProjects::OnProjectDetach( wxCommandEvent& WXUNUSED(event) ) {
if (!pDoc->IsUserAuthorized())
return;
- pFrame->UpdateStatusText(_("Removing project..."));
-
row = -1;
while (1) {
// Step through all selected items
@@ -600,8 +584,6 @@ void CViewProjects::OnProjectDetach( wxCommandEvent& WXUNUSED(event) ) {
}
}
- pFrame->UpdateStatusText(wxT(""));
-
m_bForceUpdateSelection = true;
UpdateSelection();
pFrame->FireRefreshView();
@@ -631,15 +613,12 @@ void CViewProjects::OnProjectWebsiteClicked( wxEvent& event ) {
wxASSERT(pFrame);
wxASSERT(wxDynamicCast(pFrame, CAdvancedFrame));
- pFrame->UpdateStatusText(_("Launching browser..."));
int website_task_index = event.GetId() - ID_TASK_PROJECT_WEB_PROJDEF_MIN;
wxLaunchDefaultBrowser(
m_TaskGroups[1]->m_Tasks[website_task_index]->m_strWebSiteLink
);
- pFrame->UpdateStatusText(wxT(""));
-
UpdateSelection();
pFrame->FireRefreshView();
diff --git a/clientgui/ViewStatistics.cpp b/clientgui/ViewStatistics.cpp
index 6706d84..83564ce 100644
--- a/clientgui/ViewStatistics.cpp
+++ b/clientgui/ViewStatistics.cpp
@@ -2074,12 +2074,10 @@ void CViewStatistics::OnStatisticsUserTotal( wxCommandEvent& WXUNUSED(event) ) {
wxASSERT(pFrame);
wxASSERT(wxDynamicCast(pFrame, CAdvancedFrame));
- pFrame->UpdateStatusText(_("Updating charts..."));
m_PaintStatistics->m_SelectedStatistic = show_user_total;
m_PaintStatistics->m_Zoom_Auto = true;
m_PaintStatistics->m_GraphMarker1 = false;
m_PaintStatistics->m_full_repaint = true;
- pFrame->UpdateStatusText(wxT(""));
UpdateSelection();
pFrame->FireRefreshView();
@@ -2095,12 +2093,10 @@ void CViewStatistics::OnStatisticsUserAverage( wxCommandEvent& WXUNUSED(event) )
wxASSERT(pFrame);
wxASSERT(wxDynamicCast(pFrame, CAdvancedFrame));
- pFrame->UpdateStatusText(_("Updating charts..."));
m_PaintStatistics->m_SelectedStatistic = show_user_average;
m_PaintStatistics->m_Zoom_Auto = true;
m_PaintStatistics->m_GraphMarker1 = false;
m_PaintStatistics->m_full_repaint = true;
- pFrame->UpdateStatusText(wxT(""));
UpdateSelection();
pFrame->FireRefreshView();
@@ -2116,12 +2112,10 @@ void CViewStatistics::OnStatisticsHostTotal( wxCommandEvent& WXUNUSED(event) ) {
wxASSERT(pFrame);
wxASSERT(wxDynamicCast(pFrame, CAdvancedFrame));
- pFrame->UpdateStatusText(_("Updating charts..."));
m_PaintStatistics->m_SelectedStatistic = show_host_total;
m_PaintStatistics->m_Zoom_Auto = true;
m_PaintStatistics->m_GraphMarker1 = false;
m_PaintStatistics->m_full_repaint = true;
- pFrame->UpdateStatusText(wxT(""));
UpdateSelection();
pFrame->FireRefreshView();
@@ -2138,12 +2132,10 @@ void CViewStatistics::OnStatisticsHostAverage( wxCommandEvent& WXUNUSED(event) )
wxASSERT(pFrame);
wxASSERT(wxDynamicCast(pFrame, CAdvancedFrame));
- pFrame->UpdateStatusText(_("Updating charts..."));
m_PaintStatistics->m_SelectedStatistic = show_host_average;
m_PaintStatistics->m_Zoom_Auto = true;
m_PaintStatistics->m_GraphMarker1 = false;
m_PaintStatistics->m_full_repaint = true;
- pFrame->UpdateStatusText(wxT(""));
UpdateSelection();
pFrame->FireRefreshView();
@@ -2159,12 +2151,10 @@ void CViewStatistics::OnStatisticsModeViewAllSeparate( wxCommandEvent& WXUNUSED(
wxASSERT(pFrame);
wxASSERT(wxDynamicCast(pFrame, CAdvancedFrame));
- pFrame->UpdateStatusText(_("Updating charts..."));
m_PaintStatistics->m_ModeViewStatistic = mode_all_separate;
m_PaintStatistics->m_Zoom_Auto = true;
m_PaintStatistics->m_GraphMarker1 = false;
m_PaintStatistics->m_full_repaint = true;
- pFrame->UpdateStatusText(wxT(""));
UpdateSelection();
pFrame->FireRefreshView();
@@ -2180,12 +2170,10 @@ void CViewStatistics::OnStatisticsModeViewOneProject( wxCommandEvent& WXUNUSED(e
wxASSERT(pFrame);
wxASSERT(wxDynamicCast(pFrame, CAdvancedFrame));
- pFrame->UpdateStatusText(_("Updating charts..."));
m_PaintStatistics->m_ModeViewStatistic = mode_one_project;
m_PaintStatistics->m_Zoom_Auto = true;
m_PaintStatistics->m_GraphMarker1 = false;
m_PaintStatistics->m_full_repaint = true;
- pFrame->UpdateStatusText(wxT(""));
UpdateSelection();
pFrame->FireRefreshView();
@@ -2201,12 +2189,10 @@ void CViewStatistics::OnStatisticsModeViewAllTogether( wxCommandEvent& WXUNUSED(
wxASSERT(pFrame);
wxASSERT(wxDynamicCast(pFrame, CAdvancedFrame));
- pFrame->UpdateStatusText(_("Updating charts..."));
m_PaintStatistics->m_ModeViewStatistic = mode_all_together;
m_PaintStatistics->m_Zoom_Auto = true;
m_PaintStatistics->m_GraphMarker1 = false;
m_PaintStatistics->m_full_repaint = true;
- pFrame->UpdateStatusText(wxT(""));
UpdateSelection();
pFrame->FireRefreshView();
@@ -2222,12 +2208,10 @@ void CViewStatistics::OnStatisticsModeViewSum( wxCommandEvent& WXUNUSED(event) )
wxASSERT(pFrame);
wxASSERT(wxDynamicCast(pFrame, CAdvancedFrame));
- pFrame->UpdateStatusText(_("Updating charts..."));
m_PaintStatistics->m_ModeViewStatistic = mode_sum;
m_PaintStatistics->m_Zoom_Auto = true;
m_PaintStatistics->m_GraphMarker1 = false;
m_PaintStatistics->m_full_repaint = true;
- pFrame->UpdateStatusText(wxT(""));
UpdateSelection();
pFrame->FireRefreshView();
@@ -2243,7 +2227,6 @@ void CViewStatistics::OnStatisticsNextProject( wxCommandEvent& WXUNUSED(event) )
wxASSERT(pFrame);
wxASSERT(wxDynamicCast(pFrame, CAdvancedFrame));
- pFrame->UpdateStatusText(_("Updating charts..."));
if (m_PaintStatistics->m_ModeViewStatistic == mode_one_project) m_PaintStatistics->m_NextProjectStatistic++;
m_PaintStatistics->m_Zoom_Auto = true;
m_PaintStatistics->m_GraphMarker1 = false;
@@ -2251,7 +2234,6 @@ void CViewStatistics::OnStatisticsNextProject( wxCommandEvent& WXUNUSED(event) )
if (m_PaintStatistics->m_ModeViewStatistic == mode_all_separate) m_PaintStatistics->m_Legend_Shift_Mode2++;
if (m_PaintStatistics->m_ModeViewStatistic == mode_all_together) m_PaintStatistics->m_Legend_Shift_Mode2++;
if (m_PaintStatistics->m_ModeViewStatistic == mode_sum) m_PaintStatistics->m_Legend_Shift_Mode2++;
- pFrame->UpdateStatusText(wxT(""));
UpdateSelection();
pFrame->FireRefreshView();
@@ -2267,7 +2249,6 @@ void CViewStatistics::OnStatisticsPrevProject( wxCommandEvent& WXUNUSED(event) )
wxASSERT(pFrame);
wxASSERT(wxDynamicCast(pFrame, CAdvancedFrame));
- pFrame->UpdateStatusText(_("Updating charts..."));
if (m_PaintStatistics->m_ModeViewStatistic == mode_one_project) m_PaintStatistics->m_NextProjectStatistic--;
m_PaintStatistics->m_Zoom_Auto = true;
m_PaintStatistics->m_GraphMarker1 = false;
@@ -2275,7 +2256,6 @@ void CViewStatistics::OnStatisticsPrevProject( wxCommandEvent& WXUNUSED(event) )
if (m_PaintStatistics->m_ModeViewStatistic == mode_all_separate) m_PaintStatistics->m_Legend_Shift_Mode2--;
if (m_PaintStatistics->m_ModeViewStatistic == mode_all_together) m_PaintStatistics->m_Legend_Shift_Mode2--;
if (m_PaintStatistics->m_ModeViewStatistic == mode_sum) m_PaintStatistics->m_Legend_Shift_Mode2--;
- pFrame->UpdateStatusText(wxT(""));
UpdateSelection();
pFrame->FireRefreshView();
diff --git a/clientgui/ViewTransfers.cpp b/clientgui/ViewTransfers.cpp
index cc2c4da..fc54121 100644
--- a/clientgui/ViewTransfers.cpp
+++ b/clientgui/ViewTransfers.cpp
@@ -381,7 +381,6 @@ void CViewTransfers::OnTransfersRetryNow( wxCommandEvent& WXUNUSED(event) ) {
return;
}
- pFrame->UpdateStatusText(_("Retrying transfer now..."));
row = -1;
while (1) {
// Step through all selected items
@@ -390,7 +389,6 @@ void CViewTransfers::OnTransfersRetryNow( wxCommandEvent& WXUNUSED(event) ) {
pDoc->TransferRetryNow(m_iSortedIndexes[row]);
}
- pFrame->UpdateStatusText(wxT(""));
UpdateSelection();
pFrame->ResetReminderTimers();
@@ -419,8 +417,6 @@ void CViewTransfers::OnTransfersAbort( wxCommandEvent& WXUNUSED(event) ) {
if (!pDoc->IsUserAuthorized())
return;
- pFrame->UpdateStatusText(_("Aborting transfer..."));
-
row = -1;
while (1) {
// Step through all selected items
@@ -448,8 +444,6 @@ void CViewTransfers::OnTransfersAbort( wxCommandEvent& WXUNUSED(event) ) {
}
}
- pFrame->UpdateStatusText(wxT(""));
-
UpdateSelection();
pFrame->FireRefreshView();
diff --git a/clientgui/ViewWork.cpp b/clientgui/ViewWork.cpp
index cdc7147..a48548f 100644
--- a/clientgui/ViewWork.cpp
+++ b/clientgui/ViewWork.cpp
@@ -451,17 +451,13 @@ void CViewWork::OnWorkSuspend( wxCommandEvent& WXUNUSED(event) ) {
RESULT* result = pDoc->result(m_iSortedIndexes[row]);
if (result) {
if (result->suspended_via_gui) {
- pFrame->UpdateStatusText(_("Resuming task..."));
pDoc->WorkResume(result->project_url, result->name);
} else {
- pFrame->UpdateStatusText(_("Suspending task..."));
pDoc->WorkSuspend(result->project_url, result->name);
}
}
}
- pFrame->UpdateStatusText(wxT(""));
-
UpdateSelection();
pFrame->FireRefreshView();
@@ -483,8 +479,6 @@ void CViewWork::OnWorkShowGraphics( wxCommandEvent& WXUNUSED(event) ) {
wxASSERT(wxDynamicCast(pFrame, CAdvancedFrame));
wxASSERT(m_pListPane);
- pFrame->UpdateStatusText(_("Showing graphics for task..."));
-
row = -1;
while (1) {
// Step through all selected items
@@ -497,8 +491,6 @@ void CViewWork::OnWorkShowGraphics( wxCommandEvent& WXUNUSED(event) ) {
}
}
- pFrame->UpdateStatusText(wxT(""));
-
UpdateSelection();
pFrame->FireRefreshView();
@@ -520,8 +512,6 @@ void CViewWork::OnWorkShowVMConsole( wxCommandEvent& WXUNUSED(event) ) {
wxASSERT(wxDynamicCast(pFrame, CAdvancedFrame));
wxASSERT(m_pListPane);
- pFrame->UpdateStatusText(_("Showing VM console for task..."));
-
row = -1;
while (1) {
// Step through all selected items
@@ -534,8 +524,6 @@ void CViewWork::OnWorkShowVMConsole( wxCommandEvent& WXUNUSED(event) ) {
}
}
- pFrame->UpdateStatusText(wxT(""));
-
UpdateSelection();
pFrame->FireRefreshView();
@@ -593,8 +581,6 @@ void CViewWork::OnWorkAbort( wxCommandEvent& WXUNUSED(event) ) {
return;
}
- pFrame->UpdateStatusText(_("Aborting task..."));
-
row = -1;
while (1) {
// Step through all selected items
@@ -607,8 +593,6 @@ void CViewWork::OnWorkAbort( wxCommandEvent& WXUNUSED(event) ) {
}
}
- pFrame->UpdateStatusText(wxT(""));
-
UpdateSelection();
pFrame->FireRefreshView();
@@ -693,15 +677,11 @@ void CViewWork::OnProjectWebsiteClicked( wxEvent& event ) {
wxASSERT(m_pTaskPane);
wxASSERT(m_pListPane);
- pFrame->UpdateStatusText(_("Launching browser..."));
-
int website_task_index = event.GetId() - ID_TASK_PROJECT_WEB_PROJDEF_MIN;
wxLaunchDefaultBrowser(
m_TaskGroups[1]->m_Tasks[website_task_index]->m_strWebSiteLink
);
- pFrame->UpdateStatusText(wxT(""));
-
UpdateSelection();
pFrame->FireRefreshView();

141
boinc-use-wxstring.patch Normal file
View File

@ -0,0 +1,141 @@
diff --git a/clientgui/BOINCBaseView.cpp b/clientgui/BOINCBaseView.cpp
index 0c64159..4337afc 100644
--- a/clientgui/BOINCBaseView.cpp
+++ b/clientgui/BOINCBaseView.cpp
@@ -913,11 +913,11 @@ void CBOINCBaseView::AppendColumn(int){
}
-void CBOINCBaseView::append_to_status(wxString& existing, const wxChar* additional) {
+void CBOINCBaseView::append_to_status(wxString& existing, const wxString& additional) {
if (existing.size() == 0) {
existing = additional;
} else {
- existing = existing + wxT(", ") + additional;
+ existing += wxT(", ") + additional;
}
}
diff --git a/clientgui/BOINCBaseView.h b/clientgui/BOINCBaseView.h
index 811fecb..c7b4fb9 100644
--- a/clientgui/BOINCBaseView.h
+++ b/clientgui/BOINCBaseView.h
@@ -193,7 +193,7 @@ protected:
bool _EnsureLastItemVisible();
virtual bool EnsureLastItemVisible();
- static void append_to_status(wxString& existing, const wxChar* additional);
+ static void append_to_status(wxString& existing, const wxString& additional);
static wxString HtmlEntityEncode(wxString strRaw);
static wxString HtmlEntityDecode(wxString strRaw);
diff --git a/clientgui/BOINCGUIApp.cpp b/clientgui/BOINCGUIApp.cpp
index 5674029..91d387a 100644
--- a/clientgui/BOINCGUIApp.cpp
+++ b/clientgui/BOINCGUIApp.cpp
@@ -626,27 +626,23 @@ void CBOINCGUIApp::SaveState() {
///
void CBOINCGUIApp::OnInitCmdLine(wxCmdLineParser &parser) {
wxApp::OnInitCmdLine(parser);
- static const wxCmdLineEntryDesc cmdLineDesc[] = {
- { wxCMD_LINE_SWITCH, "a", "autostart", _("BOINC Manager was started by the operating system automatically")},
+ parser.AddSwitch("a", "autostart", _("BOINC Manager was started by the operating system automatically"));
#if defined(__WXMSW__) || defined(__WXMAC__)
- { wxCMD_LINE_SWITCH, "s", "systray", _("Startup BOINC so only the system tray icon is visible")},
+ parser.AddSwitch("s", "systray", _("Startup BOINC so only the system tray icon is visible"));
#else
- { wxCMD_LINE_OPTION, "e", "clientdir", _("Directory containing the BOINC Client executable")},
- { wxCMD_LINE_OPTION, "d", "datadir", _("BOINC data directory")},
+ parser.AddOption("e", "clientdir", _("Directory containing the BOINC Client executable"));
+ parser.AddOption("d", "datadir", _("BOINC data directory"));
#endif
- { wxCMD_LINE_OPTION, "n", "namehost", _("Host name or IP address")},
- { wxCMD_LINE_OPTION, "g", "gui_rpc_port", _("GUI RPC port number")},
- { wxCMD_LINE_OPTION, "p", "password", _("Password")},
- { wxCMD_LINE_OPTION, "b", "boincargs", _("Startup BOINC with these optional arguments")},
- { wxCMD_LINE_SWITCH, "i","insecure", _("disable BOINC security users and permissions")},
- { wxCMD_LINE_SWITCH, "c", "checkskins", _("set skin debugging mode to enable skin manager error messages")},
- { wxCMD_LINE_SWITCH, "m", "multiple", _("multiple instances of BOINC Manager allowed")},
+ parser.AddOption("n", "namehost", _("Host name or IP address"));
+ parser.AddOption("g", "gui_rpc_port", _("GUI RPC port number"));
+ parser.AddOption("p", "password", _("Password"));
+ parser.AddOption("b", "boincargs", _("Startup BOINC with these optional arguments"));
+ parser.AddSwitch("i", "insecure", _("disable BOINC security users and permissions"));
+ parser.AddSwitch("c", "checkskins", _("set skin debugging mode to enable skin manager error messages"));
+ parser.AddSwitch("m", "multiple", _("multiple instances of BOINC Manager allowed"));
#if (defined(__WXMAC__) && defined(_DEBUG))
- { wxCMD_LINE_OPTION, "NSDocumentRevisionsDebugMode", NULL, _("Not used: workaround for bug in XCode 4.2")},
+ parser.AddLongOption("NSDocumentRevisionsDebugMode", _("Not used: workaround for bug in XCode 4.2"));
#endif
- { wxCMD_LINE_NONE} //DON'T forget this line!!
- };
- parser.SetDesc(cmdLineDesc);
}
diff --git a/clientgui/MainDocument.cpp b/clientgui/MainDocument.cpp
index fa7b953..1b0c165 100644
--- a/clientgui/MainDocument.cpp
+++ b/clientgui/MainDocument.cpp
@@ -273,7 +273,7 @@ bool CNetworkConnection::IsComputerNameLocal(const wxString& strMachine) {
int CNetworkConnection::SetComputer(
- const wxChar* szComputer, const int iPort, const wxChar* szPassword,
+ const wxString& szComputer, const int iPort, const wxString& szPassword,
const bool bUseDefaultPassword
) {
m_strNewComputerName.Empty();
@@ -641,7 +641,7 @@ int CMainDocument::ResetState() {
}
-int CMainDocument::Connect(const wxChar* szComputer, int iPort, const wxChar* szComputerPassword, const bool bDisconnect, const bool bUseDefaultPassword) {
+int CMainDocument::Connect(const wxString& szComputer, int iPort, const wxString& szComputerPassword, const bool bDisconnect, const bool bUseDefaultPassword) {
if (IsComputerNameLocal(szComputer)) {
// Restart client if not already running
m_pClientManager->AutoRestart();
@@ -687,7 +687,7 @@ int CMainDocument::GetConnectingComputerName(wxString& strMachine) {
}
-bool CMainDocument::IsComputerNameLocal(const wxString strMachine) {
+bool CMainDocument::IsComputerNameLocal(const wxString& strMachine) {
return m_pNetworkConnection->IsComputerNameLocal(strMachine);
}
diff --git a/clientgui/MainDocument.h b/clientgui/MainDocument.h
index 3b88571..90c10b5 100644
--- a/clientgui/MainDocument.h
+++ b/clientgui/MainDocument.h
@@ -75,8 +75,7 @@ public:
bool IsComputerNameLocal(const wxString& strMachine);
int GetLocalPassword(wxString& strPassword);
int SetComputer(
- const wxChar* szComputer, const int iPort, const wxChar* szPassword,
- const bool bUseDefaultPassword
+ const wxString& szComputer, const int iPort, const wxString& szPassword, const bool bUseDefaultPassword
);
void SetStateError();
void SetStateErrorAuthentication();
@@ -134,9 +133,9 @@ public:
int ResetState();
int Connect(
- const wxChar* szComputer,
+ const wxString& szComputer,
const int iPort,
- const wxChar* szComputerPassword = wxEmptyString,
+ const wxString& szComputerPassword = wxEmptyString,
const bool bDisconnect = FALSE,
const bool bUseDefaultPassword = FALSE
);
@@ -152,7 +151,7 @@ public:
int GetConnectedComputerName(wxString& strMachine);
int GetConnectedComputerVersion(wxString& strVersion);
int GetConnectingComputerName(wxString& strMachine);
- bool IsComputerNameLocal(const wxString strMachine);
+ bool IsComputerNameLocal(const wxString& strMachine);
bool IsConnected();
bool IsReconnecting();

View File

@ -1,29 +0,0 @@
#!/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