Группа :: Науки/Прочее
Пакет: boinc
Главная Изменения Спек Патчи Sources Загрузить Gear Bugs and FR Repocop
Name: boinc
Version: 6.10.58
Release: alt0.M51.1
Packager: Paul Wolneykien <manowar at altlinux.ru>
License: LGPLv2+
Group: Sciences/Other
URL: http://boinc.berkeley.edu/
Summary: The Berkeley Open Infrastructure for Network Computing
Source0: %name-%version.tar.bz2
Source1: %name-%version-debian.tar.gz
Patch0: 200_don-t-assume_SCHED_BATCH_exist.patch
Patch1: texfont_removal.patch
Patch2: no-string-overload.patch
Patch3: install-examples.patch
Patch4: install-translations.patch
Patch7: install-init-script.patch
Patch8: alt-service-actions.patch
Patch9: fix-boinc-client-service.patch
Patch10: README.patch
Patch11: fix-crypt-prog-linkage.patch
Patch12: use-peak-flops.patch
#Patch13: fix-wxEvtHandler-access.patch
Patch14: xpm-const-char.patch
#Patch15: fix-wxString-cast.patch
#Patch16: wx-postponed.patch
Patch17: libadds.patch
Patch18: serverbindir.patch
Patch19: install-py.patch
# Automatically added by buildreq on Fri Jul 30 2010
BuildRequires: docbook-dtds docbook2X gcc-c++ gcc-fortran libGL-devel libMySQL-devel libSM-devel libXi-devel libXmu-devel libcurl-devel libfreeglut-devel libjpeg-devel libsqlite3-devel libstdc++-devel-static wxGTK-devel python-devel xsltproc
%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". BOINC
is the underlying software used by projects such as SETI at home, Einstein at Home,
ClimatePrediciton.net, the World Community Grid, and many other distributed
computing projects.
Install the %name-client package to participate in a number of scientific
projects.
Install the %name-server package to host a computational project.
Install the %name-demo package to view sample projects.
Use the %name-devel package files in development of a new computational
project.
%package client
Group: Sciences/Other
Summary: Client software for the Berkeley Open Infrastructure for Network Computing
Requires: %{name} = %{version}-%{release}
%description client
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 at home, Einstein at 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 manager
Summary: GUI to control and monitor the BOINC system
Group: Sciences/Other
Requires: %{name}-client = %{version}-%{release}
%description 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 devel
Summary: Development files for BOINC system
Group: Development/C
%description devel
This package contains development files for the Berkeley Open
Infrastructure for Network Computing.
%package devel-server
Summary: Server development files for BOINC system
Group: Development/C
%description devel-server
This package contains development files for the Berkeley Open
Infrastructure for Network Computing server components.
%package doc
Summary: Documentation files for BOINC system
Group: Sciences/Other
BuildArch: noarch
Requires: %{name} = %{version}-%{release}
%description doc
This package contains documentation files for Berkeley Open
Infrastructure for Network Computing.
%package server
Group: Sciences/Other
Summary: Server software for the Berkeley Open Infrastructure for Network Computing
Requires: %{name} = %{version}-%{release}
%description server
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 at home, Einstein at Home,
ClimatePrediciton.net, the World Community Grid, and many other distributed
computing projects.
This package installs the BOINC server software. The BOINC server is
intended to be a central communicational node for the number of
distributed computational projects. This includes program distribution,
project status tracking, data distributing, result acquiring and more.
%package demo
Group: Sciences/Other
Summary: Sample projects for the Berkeley Open Infrastructure for Network Computing
Requires: %{name}-server = %{version}-%{release}
%description demo
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 at home, Einstein at Home,
ClimatePrediciton.net, the World Community Grid, and many other distributed
computing projects.
This package installs a number of sample projects for the BOINC server
software.
%package -n libboinc
Group: Sciences/Other
Summary: Libraries of the Berkeley Open Infrastructure for Network Computing
%description -n libboinc
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 at home, Einstein at Home,
ClimatePrediciton.net, the World Community Grid, and many other distributed
computing projects.
This package contains a set of libraires of the BOINC software.
%package -n libboinc-server
Group: Sciences/Other
Summary: Server libraries of the Berkeley Open Infrastructure for Network Computing
%description -n libboinc-server
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 at home, Einstein at Home,
ClimatePrediciton.net, the World Community Grid, and many other distributed
computing projects.
This package contains a set of server libraires of the BOINC software.
%prep
%setup -a1
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
#%patch13 -p1
%patch14 -p1
#%patch15 -p1
#%patch16 -p1
%patch17 -p1
%patch18 -p1
%patch19 -p1
# Do not use /usr/bin/env in PHP scripts.
grep -rHsl -m 1 -e 'bin/env' html/* |
while read f; do
sed -e '1 s,^#!/usr/bin/env[[:space:]]\+\(.*\)$,#!/usr/bin/\1,' -i "$f"
done
%build
# On some architectures it is required to change the BOINC platform of the
# core client (with the --with-boinc-platform configure option) to match the
# official BOINC platform, otherwise it would not download any applications,
# because projects mostly provide applications for official BOINC platforms
# only. See http://boinc.berkeley.edu/trac/wiki/BoincPlatforms for the list
# of official BOINC platforms.
TYPE_FLAGS=
case %_target in
i?86-linux|pentium?-linux)
TYPE_FLAGS="$TYPE_FLAGS --with-boinc-platform=i686-pc-linux-gnu"
;;
x86_64-linux)
TYPE_FLAGS="$TYPE_FLAGS --with-boinc-platform=x86_64-pc-linux-gnu"
;;
else)
echo "Can't find the corresponding BOINC platform for %_target. See http://boinc.berkeley.edu/trac/wiki/BoincPlatforms for details."
exit -1
;;
esac
# Build script
%autoreconf
./_autosetup
%configure $TYPE_FLAGS \
--enable-client \
--enable-server \
--enable-unicode \
--with-ssl
%make
# Generate binary message catalogs of the BOINC Manager.
# for i in `ls locale/client`; do \
# if [ -f "locale/client/$i/BOINC Manager.po" ]; then \
# msgfmt -o "locale/client/$i/BOINC Manager.mo" \
# "locale/client/$i/BOINC Manager.po"; \
# fi; \
# done;
# Make the manpages
pushd doc/manpages
%make DOCBOOK2X_MAN=db2x_docbook2man
popd
pushd debian/manpages
db2x_docbook2man update-boinc-applinks.xml
popd
%install
%make DESTDIR=%buildroot \
prefix=%{_usr} \
exec_prefix=%{_usr} \
bindir=%{_bindir} \
sbindir=%{_sbindir} \
sysconfdir=%{_sysconfdir} \
datadir=%{_datadir} \
includedir=%{_includedir} \
libdir=%{_libdir} \
libexecdir=%{_libexecdir} \
localstatedir=%{_localstatedir} \
sharedstatedir=%{_sharedstatedir} \
mandir=%{_mandir} \
infodir=%{_infodir} \
scheddir=%{_libexecdir}/%name-server/sched \
serverbindir=%{_libexecdir}/%name-server/bin \
cgidir=%{_libexecdir}/%name-server/cgi-bin \
python_sitelibdir=%{python_sitelibdir} \
install
# Used by boinc-client to assign the lowest possible
# cpu_share of 2 to the boinc user.
install -D -m0755 debian/extra/udev-cpu_share \
%buildroot%{_libexecdir}/%name/udev-cpu_share
mkdir -p -m 0755 %buildroot%{_sysconfdir}/udev/rules.d
cat <<EOF > %buildroot%{_sysconfdir}/udev/rules.d/60-boinc-client.rules
SUBSYSTEM=="kernel", DEVPATH=="/kernel/uids/*", ACTION=="add", RUN+="%{_libexecdir}/%name/udev-cpu_share"
EOF
chmod 0644 %buildroot%{_sysconfdir}/udev/rules.d/*
# Bash completion script for boinccmd.
install -D -m0644 debian/extra/bash/boinc \
%buildroot%{_sysconfdir}/bash_completion.d/boinc
# This script creates symlinks for anonymous BOINC applications.
install -D -m 0755 debian/extra/update-boinc-applinks \
%buildroot%{_bindir}/update-boinc-applinks
# Install BOIC client default configuration files
install -D -m 0644 debian/conffiles/cc_config.xml \
%buildroot%{_sysconfdir}/boinc-client/cc_config.xml
install -D -m 0644 debian/conffiles/global_prefs_override.xml \
%buildroot%{_sysconfdir}/boinc-client/global_prefs_override.xml
install -D -m 0644 debian/conffiles/gui_rpc_auth.cfg \
%buildroot%{_sysconfdir}/boinc-client/gui_rpc_auth.cfg
install -D -m 0644 debian/conffiles/remote_hosts.cfg \
%buildroot%{_sysconfdir}/boinc-client/remote_hosts.cfg
# Install the icons.
mkdir -p -m0755 %buildroot%{_datadir}/icons/hicolor/16x16/apps
mv %buildroot%{_datadir}/boinc/boincmgr.16x16.png \
%buildroot%{_datadir}/icons/hicolor/16x16/apps/boincmgr.png
mkdir -p -m0755 %buildroot%{_datadir}/icons/hicolor/32x32/apps
mv %buildroot%{_datadir}/boinc/boincmgr.32x32.png \
%buildroot%{_datadir}/icons/hicolor/32x32/apps/boincmgr.png
mkdir -p -m0755 %buildroot%{_datadir}/icons/hicolor/48x48/apps
mv %buildroot%{_datadir}/boinc/boincmgr.48x48.png \
%buildroot%{_datadir}/icons/hicolor/48x48/apps/boincmgr.png
# Install the desktop and menu files
install -D -m 0644 debian/boinc-manager.desktop \
%buildroot%{_datadir}/applications/boinc-manager.desktop
install -D -m 0644 debian/boinc-manager.menu \
%buildroot%{_menudir}/boinc-manager
# Install BOINC code signing program
mv %buildroot%{_bindir}/crypt_prog \
%buildroot%{_bindir}/boinc-crypt
# Install common links to the executables
ln -s boinc_client %buildroot%{_bindir}/boinc-client
rm -f %buildroot%{_bindir}/boinc
ln -s boinc_client %buildroot%{_bindir}/boinc
# ln -s boinc_cmd %buildroot%{_bindir}/boinccmd
# ln -s boinc_gui %buildroot%{_bindir}/boincmgr
# Install the switcher helper to the BOINC private executables directory.
mv %buildroot%{_bindir}/switcher \
%buildroot%{_libexecdir}/%name/switcher
# Create boinc user home directory
mkdir -p -m 0750 %buildroot%{_localstatedir}/boinc
# Install the PHP part of the server.
mkdir -p -m 0755 %buildroot%{_datadir}/%name-server/html
cp -Rp html/* %buildroot%{_datadir}/%name-server/html/
# Install database files.
install -d -m 0755 %buildroot%{_datadir}/%name-server/db
install -m 0644 db/*.sql %buildroot%{_datadir}/%name-server/db/
install -m 0644 db/init_db %buildroot%{_datadir}/%name-server/db/init-db
# Move sample applications.
install -d -m 0755 %buildroot%{_libexecdir}/boinc-server/apps
mv %buildroot%{_libexecdir}/examples/upper_case \
%buildroot%{_libexecdir}/boinc-server/apps/upper-case
mv %buildroot%{_libexecdir}/examples/concat \
%buildroot%{_libexecdir}/boinc-server/apps/concat
mv %buildroot%{_libexecdir}/examples/1sec \
%buildroot%{_libexecdir}/boinc-server/apps/1sec
# Install the documentation
install -D -m 0644 COPYING %buildroot%{_docdir}/%name-%version/COPYING
install -D -m 0644 COPYING.LESSER %buildroot%{_docdir}/%name-%version/COPYING.LESSER
install -D -m 0644 COPYRIGHT %buildroot%{_docdir}/%name-%version/COPYRIGHT
install -D -m 0644 README.ALT %buildroot%{_docdir}/%name-%version/README.ALT
# Install the manpages
pushd doc/manpages
%makeinstall
ln -s boinc.1 %buildroot%{_man1dir}/boinc-client.1
popd
pushd debian/manpages
install -D -m 0644 update-boinc-applinks.1 %buildroot%{_man1dir}/update-boinc-applinks.1
popd
%pre client
# Create BOINC user and group
getent group boinc >/dev/null || groupadd -r boinc
getent passwd boinc >/dev/null || \
useradd -r -g boinc -d %{_localstatedir}/boinc -s /sbin/nologin \
-c "BOINC client account." boinc
%post client
/sbin/chkconfig --add boinc-client
# Don't install ca-bundle.crt from BOINC, and keep the system using
# the ca-bundle.crt provided by ca-certificates.
if ! [ -L %{_localstatedir}/boinc/ca-bundle.crt ]; then
ln -s %{_datadir}/ca-certificates/ca-bundle.crt \
%{_localstatedir}/boinc/ca-bundle.crt
fi
chown -R boinc:boinc %{_localstatedir}/boinc
%preun client
if [ $1 -eq 0 ]; then #if uninstalling, not only updating
/sbin/service boinc-client stop
/sbin/chkconfig --del boinc-client
fi
%post server
groupadd -r boincadm
%files
%dir %{_datadir}/boinc
%dir %{_docdir}/%name-%version
%doc %{_docdir}/%name-%version/COPYING
%doc %{_docdir}/%name-%version/COPYING.LESSER
%doc %{_docdir}/%name-%version/COPYRIGHT
%doc %{_docdir}/%name-%version/README.ALT
%files -n libboinc
%{_libdir}/libboinc*.so*
%files -n libboinc-server
%{_libdir}/libsched.so*
%files demo
%{_libexecdir}/boinc-server/apps/*
%files server
%dir %{_libexecdir}/boinc-server
%dir %{_libexecdir}/boinc-server/apps
%dir %{_libexecdir}/boinc-server/bin
%{_libexecdir}/boinc-server/bin/*
%dir %{_libexecdir}/boinc-server
%{_libexecdir}/boinc-server/sched
%{_libexecdir}/boinc-server/cgi-bin
%dir %{_datadir}/boinc-server
%{_datadir}/boinc-server/html
%dir %{_datadir}/%name-server/db
%{_datadir}/%name-server/db/*.sql
%{_datadir}/%name-server/db/init-db
%dir %{python_sitelibdir}/Boinc
%{python_sitelibdir}/Boinc/*.py*
%{python_sitelibdir}/boinc_path_config.py*
%{python_sitelibdir}/Boinc-%version-py*.egg-info
%files client
%{_sysconfdir}/bash_completion.d/boinc
%dir %{_sysconfdir}/boinc-client
%config(noreplace) %{_sysconfdir}/boinc-client/*.xml
%config(noreplace) %{_sysconfdir}/boinc-client/*.cfg
%attr(0644, root, root) %config(noreplace) %{_sysconfdir}/sysconfig/boinc-client
%{_initrddir}/boinc-client
%{_sysconfdir}/udev/rules.d/60-boinc-client.rules
%{_bindir}/boinc_client
%{_bindir}/boinc
#%{_bindir}/boinc_cmd
%{_bindir}/boinc-client
%{_bindir}/boinccmd
%{_bindir}/update-boinc-applinks
%dir %{_libexecdir}/%name
%{_libexecdir}/%name/switcher
%{_libexecdir}/%name/udev-cpu_share
%{_mandir}/man1/boinccmd.1.gz
%{_mandir}/man1/boinc.1.gz
%{_mandir}/man1/boinc-client.1.gz
%{_mandir}/man1/update-boinc-applinks.1.gz
%attr(0750, boinc, boinc) %{_localstatedir}/boinc
%files manager
#%{_bindir}/boinc_gui
%{_bindir}/boincmgr
%{_datadir}/applications/boinc-manager.desktop
%{_datadir}/locale/*/LC_MESSAGES/*.mo
%{_menudir}/boinc-manager
%{_datadir}/icons/hicolor/16x16/apps/boincmgr.png
%{_datadir}/icons/hicolor/32x32/apps/boincmgr.png
%{_datadir}/icons/hicolor/48x48/apps/boincmgr.png
%{_mandir}/man1/boincmgr.1.gz
%files devel
%{_libdir}/libboinc.a
%{_libdir}/libboinc_api.a
%{_libdir}/libboinc_graphics2.a
%{_libdir}/libboinc_crypt.a
%dir %{_includedir}/boinc
%{_includedir}/boinc/*.h
%_bindir/boinc-crypt
%files devel-server
%{_libdir}/libsched.a
%changelog
…
Полный changelog можно просмотреть здесь
Version: 6.10.58
Release: alt0.M51.1
Packager: Paul Wolneykien <manowar at altlinux.ru>
License: LGPLv2+
Group: Sciences/Other
URL: http://boinc.berkeley.edu/
Summary: The Berkeley Open Infrastructure for Network Computing
Source0: %name-%version.tar.bz2
Source1: %name-%version-debian.tar.gz
Patch0: 200_don-t-assume_SCHED_BATCH_exist.patch
Patch1: texfont_removal.patch
Patch2: no-string-overload.patch
Patch3: install-examples.patch
Patch4: install-translations.patch
Patch7: install-init-script.patch
Patch8: alt-service-actions.patch
Patch9: fix-boinc-client-service.patch
Patch10: README.patch
Patch11: fix-crypt-prog-linkage.patch
Patch12: use-peak-flops.patch
#Patch13: fix-wxEvtHandler-access.patch
Patch14: xpm-const-char.patch
#Patch15: fix-wxString-cast.patch
#Patch16: wx-postponed.patch
Patch17: libadds.patch
Patch18: serverbindir.patch
Patch19: install-py.patch
# Automatically added by buildreq on Fri Jul 30 2010
BuildRequires: docbook-dtds docbook2X gcc-c++ gcc-fortran libGL-devel libMySQL-devel libSM-devel libXi-devel libXmu-devel libcurl-devel libfreeglut-devel libjpeg-devel libsqlite3-devel libstdc++-devel-static wxGTK-devel python-devel xsltproc
%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". BOINC
is the underlying software used by projects such as SETI at home, Einstein at Home,
ClimatePrediciton.net, the World Community Grid, and many other distributed
computing projects.
Install the %name-client package to participate in a number of scientific
projects.
Install the %name-server package to host a computational project.
Install the %name-demo package to view sample projects.
Use the %name-devel package files in development of a new computational
project.
%package client
Group: Sciences/Other
Summary: Client software for the Berkeley Open Infrastructure for Network Computing
Requires: %{name} = %{version}-%{release}
%description client
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 at home, Einstein at 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 manager
Summary: GUI to control and monitor the BOINC system
Group: Sciences/Other
Requires: %{name}-client = %{version}-%{release}
%description 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 devel
Summary: Development files for BOINC system
Group: Development/C
%description devel
This package contains development files for the Berkeley Open
Infrastructure for Network Computing.
%package devel-server
Summary: Server development files for BOINC system
Group: Development/C
%description devel-server
This package contains development files for the Berkeley Open
Infrastructure for Network Computing server components.
%package doc
Summary: Documentation files for BOINC system
Group: Sciences/Other
BuildArch: noarch
Requires: %{name} = %{version}-%{release}
%description doc
This package contains documentation files for Berkeley Open
Infrastructure for Network Computing.
%package server
Group: Sciences/Other
Summary: Server software for the Berkeley Open Infrastructure for Network Computing
Requires: %{name} = %{version}-%{release}
%description server
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 at home, Einstein at Home,
ClimatePrediciton.net, the World Community Grid, and many other distributed
computing projects.
This package installs the BOINC server software. The BOINC server is
intended to be a central communicational node for the number of
distributed computational projects. This includes program distribution,
project status tracking, data distributing, result acquiring and more.
%package demo
Group: Sciences/Other
Summary: Sample projects for the Berkeley Open Infrastructure for Network Computing
Requires: %{name}-server = %{version}-%{release}
%description demo
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 at home, Einstein at Home,
ClimatePrediciton.net, the World Community Grid, and many other distributed
computing projects.
This package installs a number of sample projects for the BOINC server
software.
%package -n libboinc
Group: Sciences/Other
Summary: Libraries of the Berkeley Open Infrastructure for Network Computing
%description -n libboinc
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 at home, Einstein at Home,
ClimatePrediciton.net, the World Community Grid, and many other distributed
computing projects.
This package contains a set of libraires of the BOINC software.
%package -n libboinc-server
Group: Sciences/Other
Summary: Server libraries of the Berkeley Open Infrastructure for Network Computing
%description -n libboinc-server
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 at home, Einstein at Home,
ClimatePrediciton.net, the World Community Grid, and many other distributed
computing projects.
This package contains a set of server libraires of the BOINC software.
%prep
%setup -a1
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
#%patch13 -p1
%patch14 -p1
#%patch15 -p1
#%patch16 -p1
%patch17 -p1
%patch18 -p1
%patch19 -p1
# Do not use /usr/bin/env in PHP scripts.
grep -rHsl -m 1 -e 'bin/env' html/* |
while read f; do
sed -e '1 s,^#!/usr/bin/env[[:space:]]\+\(.*\)$,#!/usr/bin/\1,' -i "$f"
done
%build
# On some architectures it is required to change the BOINC platform of the
# core client (with the --with-boinc-platform configure option) to match the
# official BOINC platform, otherwise it would not download any applications,
# because projects mostly provide applications for official BOINC platforms
# only. See http://boinc.berkeley.edu/trac/wiki/BoincPlatforms for the list
# of official BOINC platforms.
TYPE_FLAGS=
case %_target in
i?86-linux|pentium?-linux)
TYPE_FLAGS="$TYPE_FLAGS --with-boinc-platform=i686-pc-linux-gnu"
;;
x86_64-linux)
TYPE_FLAGS="$TYPE_FLAGS --with-boinc-platform=x86_64-pc-linux-gnu"
;;
else)
echo "Can't find the corresponding BOINC platform for %_target. See http://boinc.berkeley.edu/trac/wiki/BoincPlatforms for details."
exit -1
;;
esac
# Build script
%autoreconf
./_autosetup
%configure $TYPE_FLAGS \
--enable-client \
--enable-server \
--enable-unicode \
--with-ssl
%make
# Generate binary message catalogs of the BOINC Manager.
# for i in `ls locale/client`; do \
# if [ -f "locale/client/$i/BOINC Manager.po" ]; then \
# msgfmt -o "locale/client/$i/BOINC Manager.mo" \
# "locale/client/$i/BOINC Manager.po"; \
# fi; \
# done;
# Make the manpages
pushd doc/manpages
%make DOCBOOK2X_MAN=db2x_docbook2man
popd
pushd debian/manpages
db2x_docbook2man update-boinc-applinks.xml
popd
%install
%make DESTDIR=%buildroot \
prefix=%{_usr} \
exec_prefix=%{_usr} \
bindir=%{_bindir} \
sbindir=%{_sbindir} \
sysconfdir=%{_sysconfdir} \
datadir=%{_datadir} \
includedir=%{_includedir} \
libdir=%{_libdir} \
libexecdir=%{_libexecdir} \
localstatedir=%{_localstatedir} \
sharedstatedir=%{_sharedstatedir} \
mandir=%{_mandir} \
infodir=%{_infodir} \
scheddir=%{_libexecdir}/%name-server/sched \
serverbindir=%{_libexecdir}/%name-server/bin \
cgidir=%{_libexecdir}/%name-server/cgi-bin \
python_sitelibdir=%{python_sitelibdir} \
install
# Used by boinc-client to assign the lowest possible
# cpu_share of 2 to the boinc user.
install -D -m0755 debian/extra/udev-cpu_share \
%buildroot%{_libexecdir}/%name/udev-cpu_share
mkdir -p -m 0755 %buildroot%{_sysconfdir}/udev/rules.d
cat <<EOF > %buildroot%{_sysconfdir}/udev/rules.d/60-boinc-client.rules
SUBSYSTEM=="kernel", DEVPATH=="/kernel/uids/*", ACTION=="add", RUN+="%{_libexecdir}/%name/udev-cpu_share"
EOF
chmod 0644 %buildroot%{_sysconfdir}/udev/rules.d/*
# Bash completion script for boinccmd.
install -D -m0644 debian/extra/bash/boinc \
%buildroot%{_sysconfdir}/bash_completion.d/boinc
# This script creates symlinks for anonymous BOINC applications.
install -D -m 0755 debian/extra/update-boinc-applinks \
%buildroot%{_bindir}/update-boinc-applinks
# Install BOIC client default configuration files
install -D -m 0644 debian/conffiles/cc_config.xml \
%buildroot%{_sysconfdir}/boinc-client/cc_config.xml
install -D -m 0644 debian/conffiles/global_prefs_override.xml \
%buildroot%{_sysconfdir}/boinc-client/global_prefs_override.xml
install -D -m 0644 debian/conffiles/gui_rpc_auth.cfg \
%buildroot%{_sysconfdir}/boinc-client/gui_rpc_auth.cfg
install -D -m 0644 debian/conffiles/remote_hosts.cfg \
%buildroot%{_sysconfdir}/boinc-client/remote_hosts.cfg
# Install the icons.
mkdir -p -m0755 %buildroot%{_datadir}/icons/hicolor/16x16/apps
mv %buildroot%{_datadir}/boinc/boincmgr.16x16.png \
%buildroot%{_datadir}/icons/hicolor/16x16/apps/boincmgr.png
mkdir -p -m0755 %buildroot%{_datadir}/icons/hicolor/32x32/apps
mv %buildroot%{_datadir}/boinc/boincmgr.32x32.png \
%buildroot%{_datadir}/icons/hicolor/32x32/apps/boincmgr.png
mkdir -p -m0755 %buildroot%{_datadir}/icons/hicolor/48x48/apps
mv %buildroot%{_datadir}/boinc/boincmgr.48x48.png \
%buildroot%{_datadir}/icons/hicolor/48x48/apps/boincmgr.png
# Install the desktop and menu files
install -D -m 0644 debian/boinc-manager.desktop \
%buildroot%{_datadir}/applications/boinc-manager.desktop
install -D -m 0644 debian/boinc-manager.menu \
%buildroot%{_menudir}/boinc-manager
# Install BOINC code signing program
mv %buildroot%{_bindir}/crypt_prog \
%buildroot%{_bindir}/boinc-crypt
# Install common links to the executables
ln -s boinc_client %buildroot%{_bindir}/boinc-client
rm -f %buildroot%{_bindir}/boinc
ln -s boinc_client %buildroot%{_bindir}/boinc
# ln -s boinc_cmd %buildroot%{_bindir}/boinccmd
# ln -s boinc_gui %buildroot%{_bindir}/boincmgr
# Install the switcher helper to the BOINC private executables directory.
mv %buildroot%{_bindir}/switcher \
%buildroot%{_libexecdir}/%name/switcher
# Create boinc user home directory
mkdir -p -m 0750 %buildroot%{_localstatedir}/boinc
# Install the PHP part of the server.
mkdir -p -m 0755 %buildroot%{_datadir}/%name-server/html
cp -Rp html/* %buildroot%{_datadir}/%name-server/html/
# Install database files.
install -d -m 0755 %buildroot%{_datadir}/%name-server/db
install -m 0644 db/*.sql %buildroot%{_datadir}/%name-server/db/
install -m 0644 db/init_db %buildroot%{_datadir}/%name-server/db/init-db
# Move sample applications.
install -d -m 0755 %buildroot%{_libexecdir}/boinc-server/apps
mv %buildroot%{_libexecdir}/examples/upper_case \
%buildroot%{_libexecdir}/boinc-server/apps/upper-case
mv %buildroot%{_libexecdir}/examples/concat \
%buildroot%{_libexecdir}/boinc-server/apps/concat
mv %buildroot%{_libexecdir}/examples/1sec \
%buildroot%{_libexecdir}/boinc-server/apps/1sec
# Install the documentation
install -D -m 0644 COPYING %buildroot%{_docdir}/%name-%version/COPYING
install -D -m 0644 COPYING.LESSER %buildroot%{_docdir}/%name-%version/COPYING.LESSER
install -D -m 0644 COPYRIGHT %buildroot%{_docdir}/%name-%version/COPYRIGHT
install -D -m 0644 README.ALT %buildroot%{_docdir}/%name-%version/README.ALT
# Install the manpages
pushd doc/manpages
%makeinstall
ln -s boinc.1 %buildroot%{_man1dir}/boinc-client.1
popd
pushd debian/manpages
install -D -m 0644 update-boinc-applinks.1 %buildroot%{_man1dir}/update-boinc-applinks.1
popd
%pre client
# Create BOINC user and group
getent group boinc >/dev/null || groupadd -r boinc
getent passwd boinc >/dev/null || \
useradd -r -g boinc -d %{_localstatedir}/boinc -s /sbin/nologin \
-c "BOINC client account." boinc
%post client
/sbin/chkconfig --add boinc-client
# Don't install ca-bundle.crt from BOINC, and keep the system using
# the ca-bundle.crt provided by ca-certificates.
if ! [ -L %{_localstatedir}/boinc/ca-bundle.crt ]; then
ln -s %{_datadir}/ca-certificates/ca-bundle.crt \
%{_localstatedir}/boinc/ca-bundle.crt
fi
chown -R boinc:boinc %{_localstatedir}/boinc
%preun client
if [ $1 -eq 0 ]; then #if uninstalling, not only updating
/sbin/service boinc-client stop
/sbin/chkconfig --del boinc-client
fi
%post server
groupadd -r boincadm
%files
%dir %{_datadir}/boinc
%dir %{_docdir}/%name-%version
%doc %{_docdir}/%name-%version/COPYING
%doc %{_docdir}/%name-%version/COPYING.LESSER
%doc %{_docdir}/%name-%version/COPYRIGHT
%doc %{_docdir}/%name-%version/README.ALT
%files -n libboinc
%{_libdir}/libboinc*.so*
%files -n libboinc-server
%{_libdir}/libsched.so*
%files demo
%{_libexecdir}/boinc-server/apps/*
%files server
%dir %{_libexecdir}/boinc-server
%dir %{_libexecdir}/boinc-server/apps
%dir %{_libexecdir}/boinc-server/bin
%{_libexecdir}/boinc-server/bin/*
%dir %{_libexecdir}/boinc-server
%{_libexecdir}/boinc-server/sched
%{_libexecdir}/boinc-server/cgi-bin
%dir %{_datadir}/boinc-server
%{_datadir}/boinc-server/html
%dir %{_datadir}/%name-server/db
%{_datadir}/%name-server/db/*.sql
%{_datadir}/%name-server/db/init-db
%dir %{python_sitelibdir}/Boinc
%{python_sitelibdir}/Boinc/*.py*
%{python_sitelibdir}/boinc_path_config.py*
%{python_sitelibdir}/Boinc-%version-py*.egg-info
%files client
%{_sysconfdir}/bash_completion.d/boinc
%dir %{_sysconfdir}/boinc-client
%config(noreplace) %{_sysconfdir}/boinc-client/*.xml
%config(noreplace) %{_sysconfdir}/boinc-client/*.cfg
%attr(0644, root, root) %config(noreplace) %{_sysconfdir}/sysconfig/boinc-client
%{_initrddir}/boinc-client
%{_sysconfdir}/udev/rules.d/60-boinc-client.rules
%{_bindir}/boinc_client
%{_bindir}/boinc
#%{_bindir}/boinc_cmd
%{_bindir}/boinc-client
%{_bindir}/boinccmd
%{_bindir}/update-boinc-applinks
%dir %{_libexecdir}/%name
%{_libexecdir}/%name/switcher
%{_libexecdir}/%name/udev-cpu_share
%{_mandir}/man1/boinccmd.1.gz
%{_mandir}/man1/boinc.1.gz
%{_mandir}/man1/boinc-client.1.gz
%{_mandir}/man1/update-boinc-applinks.1.gz
%attr(0750, boinc, boinc) %{_localstatedir}/boinc
%files manager
#%{_bindir}/boinc_gui
%{_bindir}/boincmgr
%{_datadir}/applications/boinc-manager.desktop
%{_datadir}/locale/*/LC_MESSAGES/*.mo
%{_menudir}/boinc-manager
%{_datadir}/icons/hicolor/16x16/apps/boincmgr.png
%{_datadir}/icons/hicolor/32x32/apps/boincmgr.png
%{_datadir}/icons/hicolor/48x48/apps/boincmgr.png
%{_mandir}/man1/boincmgr.1.gz
%files devel
%{_libdir}/libboinc.a
%{_libdir}/libboinc_api.a
%{_libdir}/libboinc_graphics2.a
%{_libdir}/libboinc_crypt.a
%dir %{_includedir}/boinc
%{_includedir}/boinc/*.h
%_bindir/boinc-crypt
%files devel-server
%{_libdir}/libsched.a
%changelog
…
Полный changelog можно просмотреть здесь