Search
j0ke.net Open Build Service
>
Projects
>
server:monitoring
:
icinga
:
production
>
boost
> boost.spec
Sign Up
|
Log In
Username
Password
Cancel
Overview
Repositories
Revisions
Requests
Users
Advanced
Attributes
Meta
File boost.spec of Package boost
# # spec file for package boost # # Copyright (c) 2011 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 %define ver 1.46.1 %define file_version 1_46_1 %define short_version 1_46 %define lib_appendix 1_46_1 #Only define to 1 to generate the man pages %define build_docs 0 #Define to 0 to not generate the pdf documentation %define build_pdf 1 # Just hardcode build_mpi to 1 as soon as openmpi builds on all # named architectures. %ifarch s390 s390x ia64 hppa %define build_mpi 0 %else %define build_mpi 1 %endif %ifarch hppa %define disable_long_double 1 %else %define disable_long_double 0 %endif %define boost_libs1 libboost_date_time%{lib_appendix} libboost_filesystem%{lib_appendix} libboost_graph%{lib_appendix} %define boost_libs2 libboost_iostreams%{lib_appendix} libboost_math%{lib_appendix} libboost_test%{lib_appendix} %define boost_libs3 libboost_program_options%{lib_appendix} libboost_python%{lib_appendix} libboost_serialization%{lib_appendix} %define boost_libs4 libboost_signals%{lib_appendix} libboost_system%{lib_appendix} libboost_thread%{lib_appendix} %define boost_libs5 libboost_wave%{lib_appendix} libboost_regex%{lib_appendix} libboost_regex%{lib_appendix} %define boost_libs6 libboost_random%{lib_appendix} %define most_libs %boost_libs1 %boost_libs2 %boost_libs3 %boost_libs4 %boost_libs5 %boost_libs6 %if %build_mpi %define all_libs %{most_libs} libboost_mpi%{lib_appendix} %else %define all_libs %{most_libs} %endif %define debug_package_requires %{all_libs} Name: boost BuildRequires: boost-jam >= 3.1.19 dos2unix gcc-c++ libbz2-devel libicu-devel python-devel xorg-x11-devel BuildRequires: chrpath libexpat-devel xz %if %build_mpi BuildRequires: openmpi-devel %endif %if %build_docs BuildRequires: docbook docbook-xsl-stylesheets doxygen libxslt python-devel texlive-latex %endif %if 0%suse_version > 1020 BuildRequires: fdupes %endif Url: http://www.boost.org License: BSD3c Group: Development/Libraries/C and C++ Summary: Boost C++ Libraries BuildRoot: %{_tmppath}/%{name}-%{version}-build Version: %{ver} Release: 5 Source0: %{name}_%{file_version}.tar.xz Source1: boost-rpmlintrc Source2: %{name}_%{short_version}_man.tar.xz Source3: %{name}_%{short_version}_pdf.tar.xz Source4: existing_extra_docs Source5: NEWS Patch1: boost-thread.patch Patch2: boost-no_type_punning.patch Patch4: boost-visit_each.diff Patch8: boost-no_segfault_in_Regex_filter.patch Patch9: boost-fix-spirit-attr-handling.patch Patch19: boost-sane_versioning.patch Patch20: boost-strict_aliasing.patch Patch50: boost-use_std_xml_catalog.patch Patch51: boost-fix_documentation.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 package. For development using Boost, you also need the boost-devel package. For documentation, see the boost-doc package. %package devel License: BSD3c 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 documentation packages (html, man or pdf). %package -n boost-license%{lib_appendix} License: BSD3c Summary: Boost License Group: Development/Libraries/C and C++ AutoReqProv: on Provides: boost-license = %{version}-%{release} Obsoletes: boost-license < %{version} %if 0%{?suse_version} >= 1120 BuildArch: noarch %endif %description -n boost-license%{lib_appendix} This package contains the license boost is provided under. %package doc-html License: BSD3c Summary: HTML documentation for the Boost C++ Libraries Group: Development/Libraries/C and C++ AutoReqProv: on %if 0%{?suse_version} >= 1120 BuildArch: noarch %endif %description doc-html This package contains the documentation of the boost dynamic libraries in HTML format. %package doc-man License: BSD3c Summary: Man documentation for the Boost C++ Libraries Group: Development/Libraries/C and C++ AutoReqProv: on %if 0%{?suse_version} >= 1120 BuildArch: noarch %endif %description doc-man This package contains the documentation of the boost dynamic libraries as man pages. %if %build_pdf %package doc-pdf License: BSD3c Summary: PDF documentation for the Boost C++ Libraries Group: Development/Libraries/C and C++ AutoReqProv: on %if 0%{?suse_version} >= 1120 BuildArch: noarch %endif %description doc-pdf This package contains the documentation of the boost dynamic libraries in PDF format. %endif %package -n libboost_date_time%{lib_appendix} License: BSD3c Summary: Boost::Date.Time Runtime libraries Group: System/Libraries Requires: boost-license%{lib_appendix} AutoReqProv: on %description -n libboost_date_time%{lib_appendix} This package contains the Boost Date.Time runtime libraries. %package -n libboost_filesystem%{lib_appendix} License: BSD3c Summary: Boost::Filesystem Runtime Libraries Group: System/Localization Requires: boost-license%{lib_appendix} AutoReqProv: on %description -n libboost_filesystem%{lib_appendix} This package contains the Boost::Filesystem libraries. %package -n libboost_graph%{lib_appendix} License: BSD3c Summary: Boost::Graph Runtime Libraries Group: System/Libraries Requires: boost-license%{lib_appendix} AutoReqProv: on %description -n libboost_graph%{lib_appendix} This package contains the Boost::Graph Runtime libraries. %package -n libboost_iostreams%{lib_appendix} License: BSD3c Summary: Boost::IOStreams Runtime Libraries Group: System/Libraries Requires: boost-license%{lib_appendix} AutoReqProv: on %description -n libboost_iostreams%{lib_appendix} This package contains the Boost::IOStreams Runtime libraries. %package -n libboost_math%{lib_appendix} License: BSD3c Summary: Boost::Math Runtime Libraries Group: System/Libraries Requires: boost-license%{lib_appendix} AutoReqProv: on %description -n libboost_math%{lib_appendix} This package contains the Boost::Math Runtime libraries. %if %build_mpi %package -n libboost_mpi%{lib_appendix} License: BSD3c Summary: Boost::MPI Runtime libraries Group: System/Libraries Requires: boost-license%{lib_appendix} AutoReqProv: on %description -n libboost_mpi%{lib_appendix} This package contains the Boost::MPI Runtime libraries. %endif %package -n libboost_test%{lib_appendix} License: BSD3c Summary: Boost::Test Runtime Libraries Group: System/Libraries Requires: boost-license%{lib_appendix} AutoReqProv: on %description -n libboost_test%{lib_appendix} This package contains the Boost::Test runtime libraries. %package -n libboost_program_options%{lib_appendix} License: BSD3c Summary: Boost::ProgramOptions Runtime libraries Group: System/Libraries Requires: boost-license%{lib_appendix} AutoReqProv: on %description -n libboost_program_options%{lib_appendix} This package contains the Boost::ProgramOptions Runtime libraries. %package -n libboost_python%{lib_appendix} License: BSD3c Summary: Boost::Python Runtime Libraries Group: System/Libraries Requires: boost-license%{lib_appendix} AutoReqProv: on %description -n libboost_python%{lib_appendix} This package contains the Boost::Python Runtime libraries. %package -n libboost_serialization%{lib_appendix} License: BSD3c Summary: Boost::Serialization Runtime Libraries Group: System/Libraries Requires: boost-license%{lib_appendix} AutoReqProv: on %description -n libboost_serialization%{lib_appendix} This package contains the Boost::Serialization Runtime libraries. %package -n libboost_signals%{lib_appendix} License: BSD3c Summary: Boost::Signals Runtime Libraries Group: System/Libraries Requires: boost-license%{lib_appendix} AutoReqProv: on %description -n libboost_signals%{lib_appendix} This package contains the Boost::Signals Runtime libraries. %package -n libboost_system%{lib_appendix} License: BSD3c Summary: Boost::System Runtime Libraries Group: System/Libraries Requires: boost-license%{lib_appendix} AutoReqProv: on %description -n libboost_system%{lib_appendix} This package contains the Boost::System runtime libraries. %package -n libboost_thread%{lib_appendix} License: BSD3c Summary: Boost::Thread Runtime Libraries Group: System/Libraries Requires: boost-license%{lib_appendix} AutoReqProv: on %description -n libboost_thread%{lib_appendix} This package contains the Boost::Thread runtime libraries. %package -n libboost_wave%{lib_appendix} License: BSD3c Summary: Boost::Wave Runtime Libraries Group: System/Libraries Requires: boost-license%{lib_appendix} AutoReqProv: on %description -n libboost_wave%{lib_appendix} This package contains the Boost::Wave runtime libraries. %package -n libboost_regex%{lib_appendix} License: BSD3c Summary: The Boost::Regex runtime library Group: System/Libraries Requires: boost-license%{lib_appendix} AutoReqProv: on %description -n libboost_regex%{lib_appendix} This package contains the Boost::Regex runtime library. %package -n libboost_random%{lib_appendix} License: BSD3c Summary: The Boost::Random runtime library Group: System/Libraries Requires: boost-license%{lib_appendix} AutoReqProv: on %description -n libboost_random%{lib_appendix} This package contains the Boost:Random runtime library. %prep %if %build_docs %setup -q -n %{name}_%{file_version} -b 3 %else %setup -q -n %{name}_%{file_version} -a 2 -b 3 %endif #everything in the tarball has the executable flag set ... find -type f ! \( -name \*.sh -o -name \*.py -o -name \*.pl \) -exec chmod -x {} + %patch1 %patch2 %patch4 %patch8 %patch9 %patch19 %patch20 %patch50 %patch51 #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_ONLN) [ $J_G -gt 64 ] && J_G=64 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 %if %{disable_long_double} export LONG_DOUBLE_FLAGS="--disable-long-double" %endif 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} ; EOF %if %build_docs cat << EOF >>user-config.jam using xsltproc ; using boostbook ; using doxygen ; using fop : /usr/bin/fop ; EOF %endif %if %build_mpi cat << EOF >>user-config.jam using mpi ; EOF # Set PATH, MANPATH and LD_LIBRARY_PATH source /var/mpi-selector/data/$(rpm --qf "%{NAME}-%{VERSION}" -q openmpi).sh %endif %{_bindir}/bjam ${BJAM_CONFIG} --user-config=user-config.jam ${LONG_DOUBLE_FLAGS} cflags="%{optflags}" cxxflags="%{optflags}" stage || \ (echo "Not all Boost libraries built properly."; exit 1) %if %build_docs cd doc %{_bindir}/bjam ${BJAM_CONFIG} --user-config=../user-config.jam --v2 man %endif %install # Now build it J_P=%{jobs} J_G=$(getconf _NPROCESSORS_ONLN) [ $J_G -gt 64 ] && J_G=64 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_G ]; 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} ${LONG_DOUBLE_FLAGS} --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." mkdir -p %{buildroot}%{_docdir} pushd %{buildroot}%{_libdir} blibs=$(find . -name \*.so.%{version}) echo $blibs | xargs chrpath -d for lib in ${blibs}; do BASE=$(basename ${lib} .so.%{version}) SONAME_MT="$BASE-mt.so" ln -sf ${lib} $SONAME_MT done popd #install the man pages rm -rf doc/man/man3/boost::units::operator for sec in 3 7 9; do install -d %buildroot/%{_mandir}/man${sec} done pushd doc/man rm -f *.manifest tar -cf - .| tar -C %{buildroot}/%{_mandir} -xvf - popd #install the pdf documentation install -d %buildroot/%{_docdir}/pdf install -p -m 644 ../%{name}_%{short_version}_pdf/*.pdf %{buildroot}/%{_docdir}/pdf/ #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:4} -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 #Copy the news file. cp %{S:5} %{buildroot}%{_docdir} #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_time%{lib_appendix} -p /sbin/ldconfig %post -n libboost_filesystem%{lib_appendix} -p /sbin/ldconfig %post -n libboost_iostreams%{lib_appendix} -p /sbin/ldconfig %post -n libboost_test%{lib_appendix} -p /sbin/ldconfig %post -n libboost_program_options%{lib_appendix} -p /sbin/ldconfig %post -n libboost_python%{lib_appendix} -p /sbin/ldconfig %post -n libboost_regex%{lib_appendix} -p /sbin/ldconfig %post -n libboost_serialization%{lib_appendix} -p /sbin/ldconfig %post -n libboost_signals%{lib_appendix} -p /sbin/ldconfig %post -n libboost_thread%{lib_appendix} -p /sbin/ldconfig %post -n libboost_math%{lib_appendix} -p /sbin/ldconfig %if %build_mpi %post -n libboost_mpi%{lib_appendix} -p /sbin/ldconfig %endif %post -n libboost_graph%{lib_appendix} -p /sbin/ldconfig %post -n libboost_system%{lib_appendix} -p /sbin/ldconfig %post -n libboost_wave%{lib_appendix} -p /sbin/ldconfig %post -n libboost_random%{lib_appendix} -p /sbin/ldconfig %postun -n libboost_date_time%{lib_appendix} -p /sbin/ldconfig %postun -n libboost_filesystem%{lib_appendix} -p /sbin/ldconfig %postun -n libboost_iostreams%{lib_appendix} -p /sbin/ldconfig %postun -n libboost_test%{lib_appendix} -p /sbin/ldconfig %postun -n libboost_program_options%{lib_appendix} -p /sbin/ldconfig %postun -n libboost_python%{lib_appendix} -p /sbin/ldconfig %postun -n libboost_regex%{lib_appendix} -p /sbin/ldconfig %postun -n libboost_serialization%{lib_appendix} -p /sbin/ldconfig %postun -n libboost_signals%{lib_appendix} -p /sbin/ldconfig %postun -n libboost_thread%{lib_appendix} -p /sbin/ldconfig %postun -n libboost_math%{lib_appendix} -p /sbin/ldconfig %if %build_mpi %postun -n libboost_mpi%{lib_appendix} -p /sbin/ldconfig %endif %postun -n libboost_graph%{lib_appendix} -p /sbin/ldconfig %postun -n libboost_system%{lib_appendix} -p /sbin/ldconfig %postun -n libboost_wave%{lib_appendix} -p /sbin/ldconfig %postun -n libboost_random%{lib_appendix} -p /sbin/ldconfig %files -n boost-license%{lib_appendix} %defattr(-, root, root, -) %dir %{_docdir} %doc %{_docdir}/NEWS %doc %{_docdir}/LICENSE_1_0.txt %files -n libboost_date_time%{lib_appendix} %defattr(-, root, root, -) %{_libdir}/libboost_date_time*.so.* %files -n libboost_filesystem%{lib_appendix} %defattr(-, root, root, -) %{_libdir}/libboost_filesystem*.so.* %files -n libboost_graph%{lib_appendix} %defattr(-, root, root, -) %{_libdir}/libboost_graph*.so.* %files -n libboost_iostreams%{lib_appendix} %defattr(-, root, root, -) %{_libdir}/libboost_iostreams*.so.* %files -n libboost_math%{lib_appendix} %defattr(-, root, root, -) %{_libdir}/libboost_math_*.so.* %if %build_mpi %files -n libboost_mpi%{lib_appendix} %defattr(-, root, root, -) %{_libdir}/libboost_mpi*.so.* %{_libdir}/mpi.so %endif %files -n libboost_test%{lib_appendix} %defattr(-, root, root, -) %{_libdir}/libboost_prg_exec_monitor*.so.* %{_libdir}/libboost_unit_test_framework*.so.* %files -n libboost_program_options%{lib_appendix} %defattr(-, root, root, -) %{_libdir}/libboost_program_options*.so.* %files -n libboost_python%{lib_appendix} %defattr(-, root, root, -) %{_libdir}/libboost_python*.so.* %files -n libboost_serialization%{lib_appendix} %defattr(-, root, root, -) %{_libdir}/libboost_*serialization*.so.* %files -n libboost_signals%{lib_appendix} %defattr(-, root, root, -) %{_libdir}/libboost_signals*.so.* %files -n libboost_system%{lib_appendix} %defattr(-, root, root, -) %{_libdir}/libboost_system*.so.* %files -n libboost_thread%{lib_appendix} %defattr(-, root, root, -) %{_libdir}/libboost_thread*.so.* %files -n libboost_wave%{lib_appendix} %defattr(-, root, root, -) %{_libdir}/libboost_wave*.so.* %files -n libboost_regex%{lib_appendix} %defattr(-, root, root, -) %{_libdir}/libboost_regex*.so.* %files -n libboost_random%{lib_appendix} %defattr(-, root, root, -) %{_libdir}/libboost_random*.so.* %files devel %defattr(-, root, root, -) %{_includedir}/boost %{_libdir}/*.so %if %build_mpi %exclude %{_libdir}/mpi.so %endif #%%{_datadir}/aclocal/*.m4 %files doc-html %defattr(-, root, root, -) %doc %{_docdir}/* %exclude %{_docdir}/pdf %files doc-man %defattr(644, root, root, -) %doc %{_mandir}/man3/*.3.gz %doc %{_mandir}/man7/*.7.gz %doc %{_mandir}/man9/*.9.gz %if %build_pdf %files doc-pdf %defattr(-, root, root, -) %doc %{_docdir}/pdf %endif %changelog