boost/boost.spec

616 lines
18 KiB
RPMSpec
Raw Normal View History

#
# spec file for package boost (Version 1.42.0)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
# WARNING:
# THIS FILE IS GENERATED FROM boost.spec.in BY CALLING MAKE.
# CHANGES TO THIS FILE WILL GET LOST.
# Just hardcode build_mpi to 1 as soon as openmpi builds on all
# named architectures.
%ifarch s390 s390x ia64 %sparc
%define build_mpi 0
%else
%define build_mpi 1
%endif
%define most_libs libboost_date_time1_42_0 libboost_filesystem1_42_0 libboost_graph1_42_0 libboost_iostreams1_42_0 libboost_math1_42_0 libboost_test1_42_0 libboost_program_options1_42_0 libboost_python1_42_0 libboost_serialization1_42_0 libboost_signals1_42_0 libboost_system1_42_0 libboost_thread1_42_0 libboost_wave1_42_0 libboost_regex1_42_0
%if %build_mpi
%define all_libs %{most_libs} libboost_mpi1_42_0
%else
%define all_libs %{most_libs}
%endif
%define debug_package_requires %{all_libs}
Name: boost
BuildRequires: boost-jam >= 3.1.17 dos2unix gcc-c++ libbz2-devel libicu-devel python-devel xorg-x11-devel
BuildRequires: libexpat-devel
%if %build_mpi
BuildRequires: openmpi-devel
%endif
%if 0%suse_version > 1020
BuildRequires: fdupes
%endif
Url: http://www.boost.org
License: BSD 3-Clause
Group: Development/Libraries/C and C++
Summary: Boost C++ Libraries
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Version: 1.42.0
Provides: boost-license = %{version}
Obsoletes: boost-license < %{version}
Release: 1
Source0: %{name}_1_42_0.tar.bz2
Source1: boost-rpmlintrc
Source2: boost_1_33_1_man.tar.bz2
Source3: existing_extra_docs
Source4: baselibs.conf
Source5: mkspec.sh
Source6: boost.spec.in
Source7: Makefile
Source8: pre_checkin.sh
Source9: boost-autoconf.tar.bz2
Patch1: boost-thread.patch
Patch2: boost-visit_each.patch
Patch3: boost-no_segfault_in_Regex_filter.patch
Patch4: boost-sane_versioning.patch
Patch5: boost-strict_aliasing.patch
Patch6: boost-lib64.patch
Recommends: %{all_libs}
%define _docdir %{_datadir}/doc/packages/boost-%{version}
%description
Boost provides free peer-reviewed portable C++ source libraries. The
emphasis is on libraries that work well with the C++ Standard Library.
One goal is to establish "existing practice" and provide reference
implementations so that the Boost libraries are suitable for eventual
standardization. Some of the libraries have already been proposed for
inclusion in the C++ Standards Committee's upcoming C++ Standard
Library Technical Report.
Although Boost was begun by members of the C++ Standards Committee
Library Working Group, membership has expanded to include nearly two
thousand members of the C++ community at large.
This package is mainly needed for updating from a prior version, the
dynamic libraries are found in their respective packge. For development
using Boost, you also need the boost-devel package. For documentation,
see the boost-doc package.
%package devel
License: BSD 3-Clause
Summary: Development package for Boost C++
Group: Development/Libraries/C and C++
Requires: %{all_libs} libstdc++-devel
AutoReqProv: on
%description devel
This package contains all that is needed to develop/compile
applications that use the Boost C++ libraries. For documentation see
the package boost-doc.
%package -n boost-license1_42_0
License: BSD 3-Clause
Summary: Boost License
Group: Development/Libraries/C and C++
AutoReqProv: on
%description -n boost-license1_42_0
This package contains the license boost is provided under.
%package doc
License: BSD 3-Clause
Summary: Documentation for the Boost C++ Libraries
Group: Development/Libraries/C and C++
AutoReqProv: on
%if 0%{?suse_version} >= 1120
BuildArch: noarch
%endif
%description doc
This package contains documentation about the boost dynamic libraries.
%package -n libboost_date_time1_42_0
License: BSD 3-Clause
Summary: Boost::Date.Time Runtime libraries
Group: System/Libraries
Requires: boost-license1_42_0
AutoReqProv: on
%description -n libboost_date_time1_42_0
This package contains the Boost Date.Time runtime libraries.
%package -n libboost_filesystem1_42_0
License: BSD 3-Clause
Summary: Boost::Filesystem Runtime Libraries
Group: System/Localization
Requires: boost-license1_42_0
AutoReqProv: on
%description -n libboost_filesystem1_42_0
This package contains the Boost::Filesystem libraries.
%package -n libboost_graph1_42_0
License: BSD 3-Clause
Summary: Boost::Graph Runtime Libraries
Group: System/Libraries
Requires: boost-license1_42_0
AutoReqProv: on
%description -n libboost_graph1_42_0
This package contains the Boost::Graph Runtime libraries.
%package -n libboost_iostreams1_42_0
License: BSD 3-Clause
Summary: Boost::IOStreams Runtime Libraries
Group: System/Libraries
Requires: boost-license1_42_0
AutoReqProv: on
%description -n libboost_iostreams1_42_0
This package contains the Boost::IOStreams Runtime libraries.
%package -n libboost_math1_42_0
License: BSD 3-Clause
Summary: Boost::Math Runtime Libraries
Group: System/Libraries
Requires: boost-license1_42_0
AutoReqProv: on
%description -n libboost_math1_42_0
This package contains the Boost::Math Runtime libraries.
%if %build_mpi
%package -n libboost_mpi1_42_0
License: BSD 3-Clause
Summary: Boost::MPI Runtime libraries
Group: System/Libraries
Requires: boost-license1_42_0
AutoReqProv: on
%description -n libboost_mpi1_42_0
This package contains the Boost::MPI Runtime libraries.
%endif
%package -n libboost_test1_42_0
License: BSD 3-Clause
Summary: Boost::Test Runtime Libraries
Group: System/Libraries
Requires: boost-license1_42_0
AutoReqProv: on
%description -n libboost_test1_42_0
This package contains the Boost::Test runtime libraries.
%package -n libboost_program_options1_42_0
License: BSD 3-Clause
Summary: Boost::ProgramOptions Runtime libraries
Group: System/Libraries
Requires: boost-license1_42_0
AutoReqProv: on
%description -n libboost_program_options1_42_0
This package contains the Boost::ProgramOptions Runtime libraries.
%package -n libboost_python1_42_0
License: BSD 3-Clause
Summary: Boost::Python Runtime Libraries
Group: System/Libraries
Requires: boost-license1_42_0
AutoReqProv: on
%description -n libboost_python1_42_0
This package contains the Boost::Python Runtime libraries.
%package -n libboost_serialization1_42_0
License: BSD 3-Clause
Summary: Boost::Serialization Runtime Libraries
Group: System/Libraries
Requires: boost-license1_42_0
AutoReqProv: on
%description -n libboost_serialization1_42_0
This package contains the Boost::Serialization Runtime libraries.
%package -n libboost_signals1_42_0
License: BSD 3-Clause
Summary: Boost::Signals Runtime Libraries
Group: System/Libraries
Requires: boost-license1_42_0
AutoReqProv: on
%description -n libboost_signals1_42_0
This package contains the Boost::Signals Runtime libraries.
%package -n libboost_system1_42_0
License: BSD 3-Clause
Summary: Boost::System Runtime Libraries
Group: System/Libraries
Requires: boost-license1_42_0
AutoReqProv: on
%description -n libboost_system1_42_0
This package contains the Boost::System runtime libraries.
%package -n libboost_thread1_42_0
License: BSD 3-Clause
Summary: Boost::Thread Runtime Libraries
Group: System/Libraries
Requires: boost-license1_42_0
AutoReqProv: on
%description -n libboost_thread1_42_0
This package contains the Boost::Thread runtime libraries.
%package -n libboost_wave1_42_0
License: BSD 3-Clause
Summary: Boost::Wave Runtime Libraries
Group: System/Libraries
Requires: boost-license1_42_0
AutoReqProv: on
%description -n libboost_wave1_42_0
This package contains the Boost::Wave runtime libraries.
%package -n libboost_regex1_42_0
License: BSD 3-Clause
Summary: The Boost::Regex runtime library
Group: System/Libraries
Requires: boost-license1_42_0
AutoReqProv: on
%description -n libboost_regex1_42_0
This package contains the Boost::Regex runtime library.
%prep
%setup -q -n %{name}_1_42_0 -a 2 -a 9
find -name .cvsignore -exec rm -f {} +
#everything in the tarball has the executable flag set ......
find -type f ! \( -name \*.sh -o -name \*.py -o -name \*.pl \) -exec chmod -x {} +
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6
#stupid build machinery copies .orig files
find . -name \*.orig -exec rm {} +
%build
find . -type f -exec chmod u+w {} +
# Now build it
J_P=%{jobs}
J_G=$(getconf _NPROCESSORS_CONF)
if test -z "$JOBS"; then
JOBS=$J_G
else
test 1 -gt "$JOBS" && JOBS=1
fi
if test "$JOBS" == "0"; then
JOBS=1
fi
# In case you want more parallel jobs then autobuild grants you
#if [ $J_P -gt $J_I ]; then
# JOBS=$J_G
#fi
BJAM_CONFIG="-d2 -j$JOBS -sICU_PATH=%{_prefix}"
PYTHON_VERSION=$(python -c 'import sys; print sys.version[:3]')
PYTHON_FLAGS="--with-python-root=/usr --with-python-version=$PYTHON_VERSION"
REGEX_FLAGS="--with-icu"
export EXPAT_INCLUDE=/usr/include EXPAT_LIBPATH=%{_libdir} REGEX_FLAGS="--with-icu"
export PYTHON_FLAGS
cat << EOF >user-config.jam
# Boost.Build Configuration
# Compiler configuration
using gcc ;
# Python configuration
using python : ${PYTHON_VERSION} : %{_prefix} ;
using mpi ;
EOF
# Set PATH, MANPATH and LD_LIBRARY_PATH
%if %build_mpi
source /var/mpi-selector/data/$(rpm --qf "%{NAME}-%{VERSION}" -q openmpi).sh
%endif
%{_bindir}/bjam ${BJAM_CONFIG} --user-config=user-config.jam cflags="%{optflags}" cxxflags="%{optflags}" stage || (echo "Not all Boost libraries built properly."; exit 1)
%install
# Now build it
J_P=%{jobs}
J_G=$(getconf _NPROCESSORS_CONF)
if test -z "$JOBS"; then
JOBS=$J_G
else
test 1 -gt "$JOBS" && JOBS=1
fi
if test "$JOBS" == "0"; then
JOBS=1
fi
# In case you want more parallel jobs then autobuild grants you
if [ $J_P -gt $J_I ]; then
JOBS=$J_G
fi
BJAM_CONFIG="-d2 -j$JOBS -sICU_PATH=%{_prefix}"
PYTHON_VERSION=$(python -c 'import sys; print sys.version[:3]')
PYTHON_FLAGS="--with-python-root=/usr --with-python-version=$PYTHON_VERSION"
REGEX_FLAGS="--with-icu"
export EXPAT_INCLUDE=/usr/include EXPAT_LIBPATH=%{_libdir} REGEX_FLAGS="--with-icu"
export PYTHON_FLAGS
# Set PATH, MANPATH and LD_LIBRARY_PATH
%if %build_mpi
source /var/mpi-selector/data/$(rpm --qf "%{NAME}-%{VERSION}" -q openmpi).sh
%endif
%{_bindir}/bjam ${BJAM_CONFIG} --user-config=user-config.jam \
--prefix=%{buildroot}%{_prefix} \
--exec-prefix=$%{buildroot}%{_prefix} \
--libdir=%{buildroot}%{_libdir} \
--includedir=%{buildroot}%{_includedir} \
install || echo "Not all Boost libraries built properly."
#mv %{buildroot}%{_includedir}/boost-1_42/boost %{buildroot}%{_includedir}/
mkdir -p %{buildroot}%{_docdir}
## install lib
#for i in $(find stage -type f -name \*.a); do
# NAME=$(basename $i);
# install -p -m 0644 $i %{buildroot}%{_libdir}/$NAME;
#done;
#pushd stage/lib
#for lib in $(find . -name \*.so.%{version}); do
# BASE=$(basename ${lib} .so.%{version})
# SONAME_MT="$BASE-mt.so"
# ln -sf $NAME $SONAME_MT
#done
#popd
pushd %{buildroot}%{_libdir}
for lib in $(find . -name \*.so.%{version}); do
BASE=$(basename ${lib} .so.%{version})
SONAME_MT="$BASE-mt.so"
ln -sf ${lib} $SONAME_MT
done
popd
# mv stage/lib/*.so* %{buildroot}%{_libdir}
# install include files
#for i in $(find boost -type d); do
# mkdir -p %{buildroot}%{_includedir}/$i
#done
#for i in $(find boost -type f); do
# install -p -m 644 $i %{buildroot}%{_includedir}/$i
#done
#chmod +x %{buildroot}%{_includedir}/boost/signals/detail/gen_signal_N.pl \
# %{buildroot}%{_includedir}/boost/pool/detail/pool_construct_simple.sh \
# %{buildroot}%{_includedir}/boost/pool/detail/pool_construct.sh \
# %{buildroot}%{_includedir}/boost/function/gen_function_N.pl \
# %{buildroot}%{_includedir}/boost/function/detail/gen_maybe_include.pl
#install the man pages
install -d %buildroot/%{_mandir}/man3
install -d %buildroot/%{_mandir}/man7
pushd boost-1.33.1/doc/man
for page in $(find . -type f); do
install -p -m 644 $page %buildroot/%{_mandir}/$page
done
popd
#install autoconf macros
install -d %{buildroot}%{_datadir}/aclocal
install -m 644 m4/*.m4 %{buildroot}%{_datadir}/aclocal
#install doc files
dos2unix libs/ptr_container/doc/tutorial_example.html \
libs/parameter/doc/html/reference.html \
libs/parameter/doc/html/index.html \
libs/iostreams/doc/tree/tree.js \
libs/graph/doc/lengauer_tarjan_dominator.htm \
libs/test/test/test_files/errors_handling_test.pattern \
libs/test/test/test_files/result_report_test.pattern
find . -name \*.htm\* -o -name \*.gif -o -name \*.css -o -name \*.jpg -o -name \*.png -o -name \*.ico | \
tar --files-from=%{S:3} -cf - --files-from=- | tar -C %{buildroot}%{_docdir} -xf -
rm -rf %{buildroot}%{_docdir}/boost
ln -s /usr/include/boost %{buildroot}%{_docdir}
ln -s ../LICENSE_1_0.txt %{buildroot}%{_docdir}/libs
#only for documentation, doesn't need to be executable
find %{buildroot}%{_docdir} -name \*.py -exec chmod -x {} +
rm -f %{buildroot}%{_libdir}/*.a
#symlink dupes
%if 0%suse_version > 1020
%fdupes %buildroot
%endif
%post -n libboost_date_time1_42_0 -p /sbin/ldconfig
%post -n libboost_filesystem1_42_0 -p /sbin/ldconfig
%post -n libboost_iostreams1_42_0 -p /sbin/ldconfig
%post -n libboost_test1_42_0 -p /sbin/ldconfig
%post -n libboost_program_options1_42_0 -p /sbin/ldconfig
%post -n libboost_python1_42_0 -p /sbin/ldconfig
%post -n libboost_regex1_42_0 -p /sbin/ldconfig
%post -n libboost_serialization1_42_0 -p /sbin/ldconfig
%post -n libboost_signals1_42_0 -p /sbin/ldconfig
%post -n libboost_thread1_42_0 -p /sbin/ldconfig
%post -n libboost_math1_42_0 -p /sbin/ldconfig
%if %build_mpi
%post -n libboost_mpi1_42_0 -p /sbin/ldconfig
%endif
%post -n libboost_graph1_42_0 -p /sbin/ldconfig
%post -n libboost_system1_42_0 -p /sbin/ldconfig
%post -n libboost_wave1_42_0 -p /sbin/ldconfig
%postun -n libboost_date_time1_42_0 -p /sbin/ldconfig
%postun -n libboost_filesystem1_42_0 -p /sbin/ldconfig
%postun -n libboost_iostreams1_42_0 -p /sbin/ldconfig
%postun -n libboost_test1_42_0 -p /sbin/ldconfig
%postun -n libboost_program_options1_42_0 -p /sbin/ldconfig
%postun -n libboost_python1_42_0 -p /sbin/ldconfig
%postun -n libboost_regex1_42_0 -p /sbin/ldconfig
%postun -n libboost_serialization1_42_0 -p /sbin/ldconfig
%postun -n libboost_signals1_42_0 -p /sbin/ldconfig
%postun -n libboost_thread1_42_0 -p /sbin/ldconfig
%postun -n libboost_math1_42_0 -p /sbin/ldconfig
%if %build_mpi
%postun -n libboost_mpi1_42_0 -p /sbin/ldconfig
%endif
%postun -n libboost_graph1_42_0 -p /sbin/ldconfig
%postun -n libboost_system1_42_0 -p /sbin/ldconfig
%postun -n libboost_wave1_42_0 -p /sbin/ldconfig
%files -n boost-license1_42_0
%defattr(-, root, root, -)
%dir %{_docdir}
%doc %{_docdir}/LICENSE_1_0.txt
%files -n libboost_date_time1_42_0
%defattr(-, root, root, -)
%{_libdir}/libboost_date_time*.so.*
%files -n libboost_filesystem1_42_0
%defattr(-, root, root, -)
%{_libdir}/libboost_filesystem*.so.*
%files -n libboost_graph1_42_0
%defattr(-, root, root, -)
%{_libdir}/libboost_graph*.so.*
%files -n libboost_iostreams1_42_0
%defattr(-, root, root, -)
%{_libdir}/libboost_iostreams*.so.*
%files -n libboost_math1_42_0
%defattr(-, root, root, -)
%{_libdir}/libboost_math_*.so.*
%if %build_mpi
%files -n libboost_mpi1_42_0
%defattr(-, root, root, -)
%{_libdir}/libboost_mpi*.so.*
%{_libdir}/mpi.so
%endif
%files -n libboost_test1_42_0
%defattr(-, root, root, -)
%{_libdir}/libboost_prg_exec_monitor*.so.*
%{_libdir}/libboost_unit_test_framework*.so.*
%files -n libboost_program_options1_42_0
%defattr(-, root, root, -)
%{_libdir}/libboost_program_options*.so.*
%files -n libboost_python1_42_0
%defattr(-, root, root, -)
%{_libdir}/libboost_python*.so.*
%files -n libboost_serialization1_42_0
%defattr(-, root, root, -)
%{_libdir}/libboost_*serialization*.so.*
%files -n libboost_signals1_42_0
%defattr(-, root, root, -)
%{_libdir}/libboost_signals*.so.*
%files -n libboost_system1_42_0
%defattr(-, root, root, -)
%{_libdir}/libboost_system*.so.*
%files -n libboost_thread1_42_0
%defattr(-, root, root, -)
%{_libdir}/libboost_thread*.so.*
%files -n libboost_wave1_42_0
%defattr(-, root, root, -)
%{_libdir}/libboost_wave*.so.*
%files -n libboost_regex1_42_0
%defattr(-, root, root, -)
%{_libdir}/libboost_regex*.so.*
%files devel
%defattr(-, root, root, -)
%{_includedir}/boost
%{_libdir}/*.so
%if %build_mpi
%exclude %{_libdir}/mpi.so
%endif
%{_datadir}/aclocal/*.m4
%files doc
%defattr(-, root, root, -)
%doc %{_docdir}
%exclude %{_docdir}
%doc %{_mandir}/man3/*.3.gz
%doc %{_mandir}/man7/*.7.gz
%changelog