1 |
%define Werror_cflags %nil |
2 |
%define subrel 2 |
3 |
|
4 |
Summary: The BOINC client core |
5 |
Name: boinc-client |
6 |
Version: 7.2.42 |
7 |
Release: %mkrel 1 |
8 |
License: LGPLv2+ |
9 |
Group: Sciences/Other |
10 |
URL: http://boinc.berkeley.edu/ |
11 |
# The source for this package was pulled from upstream's vcs. Use the |
12 |
# following commands to generate the tarball: |
13 |
# git clone git://boinc.berkeley.edu/boinc-v2.git boinc |
14 |
# pushd boinc |
15 |
# git checkout client_release/7.2/%{version} |
16 |
# ../trim . Trim all binaries and other unnecessary things. |
17 |
# rm -rf .git* |
18 |
# popd |
19 |
# tar -cJvf boinc-%%{version}.tar.xz boinc |
20 |
# Full changelog: http://boinc.berkeley.edu/dev/forum_thread.php?id=8378 |
21 |
Source0: boinc-%{version}.tar.xz |
22 |
Source1: boinc-client.service |
23 |
Source2: boinc-client-tmpfiles.conf |
24 |
Source3: boinc-manager.desktop |
25 |
Source4: trim |
26 |
# Wrapper to fix GPU detection (fedora) |
27 |
Source5: boinc_gpu |
28 |
Source6: boinc-client.logrotate |
29 |
# Create password file rw for group, this enables passwordless connection |
30 |
# of manager from users of the boinc group. |
31 |
# This won't be probably upstreamed as it might be unsafe for common usage |
32 |
# without setting proper group ownership of the password file. |
33 |
Patch0: boinc-7.2.39-guirpcauth.patch |
34 |
# Backport patch from 7.3 branch to fix idle time detection (fedora) |
35 |
Patch1: boinc-7.2.39-idledetect.patch |
36 |
# command docbook2x-man does not exist on mga3, only db2x_docbook2man |
37 |
Patch2: boinc-7.2.42-docbook.patch |
38 |
BuildRequires: curl-devel |
39 |
BuildRequires: wxgtku-devel |
40 |
BuildRequires: gettext |
41 |
BuildRequires: jpeg-devel |
42 |
BuildRequires: openssl-devel |
43 |
BuildRequires: docbook2x |
44 |
BuildRequires: sqlite3-devel |
45 |
BuildRequires: glut-devel |
46 |
BuildRequires: libxmu-devel |
47 |
BuildRequires: libnotify-devel |
48 |
BuildRequires: xcb-util-devel |
49 |
BuildRequires: libgtk+2.0-devel |
50 |
BuildRequires: libxscrnsaver-devel |
51 |
BuildRequires: icoutils |
52 |
Requires: logrotate |
53 |
|
54 |
Requires(pre): rpm-helper >= %{rpmhelper_required_version} |
55 |
Requires(post): rpm-helper >= %{rpmhelper_required_version} |
56 |
Requires(preun): rpm-helper >= %{rpmhelper_required_version} |
57 |
Requires(postun): rpm-helper >= %{rpmhelper_required_version} |
58 |
|
59 |
%description |
60 |
The Berkeley Open Infrastructure for Network Computing (BOINC) is an open- |
61 |
source software platform which supports distributed computing, primarily in |
62 |
the form of "volunteer" computing and "desktop Grid" computing. It is well |
63 |
suited for problems which are often described as "trivially parallel". BOINC |
64 |
is the underlying software used by projects such as SETI@home, Einstein@Home, |
65 |
ClimatePrediciton.net, the World Community Grid, and many other distributed |
66 |
computing projects. |
67 |
|
68 |
This package installs the BOINC client software, which will allow your |
69 |
computer to participate in one or more BOINC projects, using your spare |
70 |
computer time to search for cures for diseases, model protein folding, study |
71 |
global warming, discover sources of gravitational waves, and many other types |
72 |
of scientific and mathematical research. |
73 |
|
74 |
%package -n boinc-manager |
75 |
Summary: GUI to control and monitor %{name} |
76 |
Group: Sciences/Other |
77 |
Requires: %{name} = %{version}-%{release} |
78 |
|
79 |
%description -n boinc-manager |
80 |
The BOINC Manager is a graphical monitor and control utility for the BOINC |
81 |
core client. It gives a detailed overview of the state of the client it is |
82 |
monitoring. The BOINC Manager has two modes of operation, the "Simple View" in |
83 |
which it only displays the most important information and the "Advanced View" |
84 |
in which all information and all control elements are available. |
85 |
|
86 |
%package devel |
87 |
Summary: Development files for %{name} |
88 |
Group: Development/Other |
89 |
Requires: %{name} = %{version}-%{release} |
90 |
Requires: openssl-devel |
91 |
Requires: mysql-devel |
92 |
|
93 |
%description devel |
94 |
This package contains development files for %{name}. |
95 |
|
96 |
%package static |
97 |
Summary: Static libraries for %{name} |
98 |
Group: Sciences/Other |
99 |
Requires: %{name}-devel = %{version}-%{release} |
100 |
|
101 |
%description static |
102 |
This package contains static libraries for %{name}. |
103 |
|
104 |
%package doc |
105 |
Summary: Documentation files for %{name} |
106 |
Group: Sciences/Other |
107 |
BuildArch: noarch |
108 |
Requires: %{name} = %{version}-%{release} |
109 |
|
110 |
%description doc |
111 |
This package contains documentation files for %{name}. |
112 |
|
113 |
%prep |
114 |
%setup -qn boinc |
115 |
%apply_patches |
116 |
|
117 |
# fix utf8 |
118 |
iconv -f ISO88591 -t UTF8 < checkin_notes_2004 > checkin_notes_2004.utf8 |
119 |
touch -r checkin_notes_2004 checkin_notes_2004.utf8 |
120 |
mv checkin_notes_2004.utf8 checkin_notes_2004 |
121 |
|
122 |
iconv -f ISO88591 -t UTF8 < checkin_notes_2005 > checkin_notes_2005.utf8 |
123 |
touch -r checkin_notes_2005 checkin_notes_2005.utf8 |
124 |
mv checkin_notes_2005.utf8 checkin_notes_2005 |
125 |
|
126 |
iconv -f ISO88591 -t UTF8 < checkin_notes_2009 > checkin_notes_2009.utf8 |
127 |
touch -r checkin_notes_2009 checkin_notes_2009.utf8 |
128 |
mv checkin_notes_2009.utf8 checkin_notes_2009 |
129 |
|
130 |
iconv -f ISO88591 -t UTF8 < checkin_notes_2010 > checkin_notes_2010.utf8 |
131 |
touch -r checkin_notes_2010 checkin_notes_2010.utf8 |
132 |
mv checkin_notes_2010.utf8 checkin_notes_2010 |
133 |
|
134 |
iconv -f ISO88591 -t UTF8 < checkin_notes_2011 > checkin_notes_2011.utf8 |
135 |
touch -r checkin_notes_2011 checkin_notes_2011.utf8 |
136 |
mv checkin_notes_2011.utf8 checkin_notes_2011 |
137 |
|
138 |
%build |
139 |
%ifarch x86_64 |
140 |
%global boinc_platform x86_64-pc-linux-gnu |
141 |
%else |
142 |
%global boinc_platform i686-pc-linux-gnu |
143 |
%endif |
144 |
|
145 |
./_autosetup |
146 |
|
147 |
%configure2_5x --disable-dependency-tracking \ |
148 |
--disable-fcgi \ |
149 |
--disable-shared \ |
150 |
--disable-server \ |
151 |
--enable-client \ |
152 |
--enable-manager \ |
153 |
--enable-unicode \ |
154 |
--enable-dynamic-client-linkage \ |
155 |
--with-ssl \ |
156 |
--with-x \ |
157 |
--with-boinc-platform=%{boinc_platform} |
158 |
|
159 |
# Disable rpaths |
160 |
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool |
161 |
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool |
162 |
|
163 |
%make |
164 |
|
165 |
%install |
166 |
mkdir -p %{buildroot}%{_iconsdir}/hicolor/256x256/apps |
167 |
mkdir -p %{buildroot}%{_unitdir} |
168 |
mkdir -p %{buildroot}%{_localstatedir}/lib/boinc |
169 |
mkdir -p %{buildroot}%{_mandir}/man1 |
170 |
mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d/ |
171 |
|
172 |
%makeinstall_std |
173 |
|
174 |
pushd %{buildroot}%{_bindir} |
175 |
|
176 |
# use symlink instead of hardlink |
177 |
rm boinc |
178 |
cat > boinc <<EOF |
179 |
#!/bin/bash |
180 |
# wrapper script that redirects stdout/stderr to correct log paths |
181 |
|
182 |
# we allow multiple clients so that the client does not think there is another instance running (namely this wrapper) |
183 |
%{_bindir}/boinc_client --allow_multiple_clients \$@ >> %{_localstatedir}/log/boinc.log 2> %{_localstatedir}/log/boincerr.log |
184 |
EOF |
185 |
chmod a+x boinc |
186 |
|
187 |
# remove libtool archives |
188 |
rm %{buildroot}%{_libdir}/*.la |
189 |
|
190 |
popd |
191 |
|
192 |
# own systemd script and logrotate configuration file |
193 |
rm -f %{buildroot}%{_sysconfdir}/init.d/%{name} %{buildroot}%{_sysconfdir}/sysconfig/%{name} |
194 |
%{__install} -p -m 0755 %{SOURCE1} %{buildroot}%{_unitdir}/%{name}.service |
195 |
%{__install} -D -p -m 0644 %{SOURCE2} %{buildroot}%{_tmpfilesdir}/%{name}.conf |
196 |
%{__install} -D -p -m 0644 %{SOURCE6} %{buildroot}%{_sysconfdir}/logrotate.d/%{name} |
197 |
install -p -m 0755 %{SOURCE5} %{buildroot}%{_bindir} |
198 |
|
199 |
|
200 |
# create .png for app icon and install .desktop file |
201 |
icotool -x -i 2 clientgui/res/BOINCGUIApp.ico -o %{buildroot}%{_datadir}/icons/hicolor/256x256/apps/boincmgr.png |
202 |
install -Dp -m 0644 %{SOURCE3} %{buildroot}%{_datadir}/applications/boinc-manager.desktop |
203 |
|
204 |
%find_lang BOINC-Client |
205 |
%find_lang BOINC-Manager |
206 |
|
207 |
# bash-completion |
208 |
install -Dp -m 0644 client/scripts/boinc.bash %{buildroot}%{_sysconfdir}/bash_completion.d/boinc-client |
209 |
|
210 |
|
211 |
%pre |
212 |
%_pre_useradd boinc /dev/null /bin/false |
213 |
|
214 |
%post |
215 |
%_tmpfilescreate %{name} |
216 |
%_post_service %{name} |
217 |
|
218 |
|
219 |
%preun |
220 |
%_preun_service %{name} |
221 |
|
222 |
%postun |
223 |
%_postun_userdel boinc |
224 |
|
225 |
|
226 |
%files -f BOINC-Client.lang |
227 |
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name} |
228 |
%config(noreplace) %{_sysconfdir}/bash_completion.d/ |
229 |
%doc COPYING COPYRIGHT |
230 |
%{_bindir}/boinc |
231 |
%{_bindir}/boinc_client |
232 |
%{_bindir}/boinccmd |
233 |
%{_bindir}/boinc_gpu |
234 |
%{_bindir}/switcher |
235 |
%{_unitdir}/%{name}.service |
236 |
%{_tmpfilesdir}/%{name}.conf |
237 |
%{_mandir}/man?/boinccmd.?.* |
238 |
%{_mandir}/man?/boinc.?.* |
239 |
%defattr(-,boinc,boinc,-) |
240 |
%dir %{_localstatedir}/lib/boinc |
241 |
%{_localstatedir}/lib/boinc/ |
242 |
|
243 |
|
244 |
%files doc |
245 |
%doc checkin_notes checkin_notes_* |
246 |
|
247 |
%files -n boinc-manager -f BOINC-Manager.lang |
248 |
%{_bindir}/boincmgr |
249 |
%{_bindir}/boincscr |
250 |
%{_datadir}/applications/boinc-manager.desktop |
251 |
%{_iconsdir}/*/*/apps/boincmgr.* |
252 |
%{_mandir}/man?/boincmgr.?.* |
253 |
|
254 |
%files static |
255 |
%{_libdir}/libboinc.a |
256 |
%{_libdir}/libboinc_api.a |
257 |
%{_libdir}/libboinc_crypt.a |
258 |
%{_libdir}/libboinc_graphics2.a |
259 |
%{_libdir}/libboinc_opencl.a |
260 |
|
261 |
%files devel |
262 |
%{_includedir}/boinc |