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:
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

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