Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37567753
en ru br
Репозитории ALT
S:7.8.4-alt4.1
5.1: 6.10.58-alt0.M51.1
www.altlinux.org/Changes

Группа :: Науки/Прочее
Пакет: 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 можно просмотреть здесь

 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin