# # spec file for package boost (Version 1.39.0) # # Copyright (c) 2009 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 %ifarch s390 s390x ia64 %define build_mpi 0 %else %define build_mpi 1 %endif %define most_libs libboost_date_time1_39_0 libboost_filesystem1_39_0 libboost_graph1_39_0 libboost_iostreams1_39_0 libboost_math1_39_0 libboost_test1_39_0 libboost_program_options1_39_0 libboost_python1_39_0 libboost_serialization1_39_0 libboost_signals1_39_0 libboost_system1_39_0 libboost_thread1_39_0 libboost_wave1_39_0 libboost_regex1_39_0 %if %build_mpi %define all_libs %{most_libs} libboost_mpi1_39_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 (or similar) Group: Development/Libraries/C and C++ Summary: Boost C++ Libraries BuildRoot: %{_tmppath}/%{name}-%{version}-build Version: 1.39.0 Release: 2 Source0: %{name}_1_39_0.tar.bz2 Source1: boost-rpmlintrc Source2: boost_1_33_1_man.tar.bz2 Source3: existing_extra_docs Source5: mkspec.sh Source6: boost.spec.in Source7: Makefile Source8: pre_checkin.sh Source9: boost-autoconf.tar.bz2 Patch1: boost-thread.patch Patch2: boost-no_type_punning.patch Patch4: boost-visit_each.diff Patch8: boost-no_segfault_in_Regex_filter.patch Patch19: boost-sane_versioning.patch Patch20: boost-strict_aliasing.patch Patch21: boost-lib64.patch Patch22: boost-function_without_exception.patch Patch23: boost-fix_hash_resizing.patch Patch24: boost-add_timer_canceling_test.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 (or similar) 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_39_0 License: BSD 3-clause (or similar) Summary: Boost License Group: Development/Libraries/C and C++ AutoReqProv: on %description -n boost-license1_39_0 This package contains the license boost is provided under. %package doc License: BSD 3-clause (or similar) Summary: Documentation for the Boost C++ Libraries Group: Development/Libraries/C and C++ AutoReqProv: on %description doc This package contains documentation about the boost dynamic libraries. %package -n libboost_date_time1_39_0 License: BSD 3-clause (or similar) Summary: Boost::Date.Time Runtime libraries Group: System/Libraries Requires: boost-license1_39_0 AutoReqProv: on %description -n libboost_date_time1_39_0 This package contains the Boost Date.Time runtime libraries. %package -n libboost_filesystem1_39_0 License: BSD 3-clause (or similar) Summary: Boost::Filesystem Runtime Libraries Group: System/Localization Requires: boost-license1_39_0 AutoReqProv: on %description -n libboost_filesystem1_39_0 This package contains the Boost::Filesystem libraries. %package -n libboost_graph1_39_0 License: BSD 3-clause (or similar) Summary: Boost::Graph Runtime Libraries Group: System/Libraries Requires: boost-license1_39_0 AutoReqProv: on %description -n libboost_graph1_39_0 This package contains the Boost::Graph Runtime libraries. %package -n libboost_iostreams1_39_0 License: BSD 3-clause (or similar) Summary: Boost::IOStreams Runtime Libraries Group: System/Libraries Requires: boost-license1_39_0 AutoReqProv: on %description -n libboost_iostreams1_39_0 This package contains the Boost::IOStreams Runtime libraries. %package -n libboost_math1_39_0 License: BSD 3-clause (or similar) Summary: Boost::Math Runtime Libraries Group: System/Libraries Requires: boost-license1_39_0 AutoReqProv: on %description -n libboost_math1_39_0 This package contains the Boost::Math Runtime libraries. %if %build_mpi %package -n libboost_mpi1_39_0 License: BSD 3-clause (or similar) Summary: Boost::MPI Runtime libraries Group: System/Libraries Requires: boost-license1_39_0 AutoReqProv: on %description -n libboost_mpi1_39_0 This package contains the Boost::MPI Runtime libraries. %endif %package -n libboost_test1_39_0 License: BSD 3-clause (or similar) Summary: Boost::Test Runtime Libraries Group: System/Libraries Requires: boost-license1_39_0 AutoReqProv: on %description -n libboost_test1_39_0 This package contains the Boost::Test runtime libraries. %package -n libboost_program_options1_39_0 License: BSD 3-clause (or similar) Summary: Boost::ProgramOptions Runtime libraries Group: System/Libraries Requires: boost-license1_39_0 AutoReqProv: on %description -n libboost_program_options1_39_0 This package contains the Boost::ProgramOptions Runtime libraries. %package -n libboost_python1_39_0 License: BSD 3-clause (or similar) Summary: Boost::Python Runtime Libraries Group: System/Libraries Requires: boost-license1_39_0 AutoReqProv: on %description -n libboost_python1_39_0 This package contains the Boost::Python Runtime libraries. %package -n libboost_serialization1_39_0 License: BSD 3-clause (or similar) Summary: Boost::Serialization Runtime Libraries Group: System/Libraries Requires: boost-license1_39_0 AutoReqProv: on %description -n libboost_serialization1_39_0 This package contains the Boost::Serialization Runtime libraries. %package -n libboost_signals1_39_0 License: BSD 3-clause (or similar) Summary: Boost::Signals Runtime Libraries Group: System/Libraries Requires: boost-license1_39_0 AutoReqProv: on %description -n libboost_signals1_39_0 This package contains the Boost::Signals Runtime libraries. %package -n libboost_system1_39_0 License: BSD 3-clause (or similar) Summary: Boost::System Runtime Libraries Group: System/Libraries Requires: boost-license1_39_0 AutoReqProv: on %description -n libboost_system1_39_0 This package contains the Boost::System runtime libraries. %package -n libboost_thread1_39_0 License: BSD 3-clause (or similar) Summary: Boost::Thread Runtime Libraries Group: System/Libraries Requires: boost-license1_39_0 AutoReqProv: on %description -n libboost_thread1_39_0 This package contains the Boost::Thread runtime libraries. %package -n libboost_wave1_39_0 License: BSD 3-clause (or similar) Summary: Boost::Wave Runtime Libraries Group: System/Libraries Requires: boost-license1_39_0 AutoReqProv: on %description -n libboost_wave1_39_0 This package contains the Boost::Wave runtime libraries. %package -n libboost_regex1_39_0 License: BSD 3-clause (or similar) Summary: The Boost::Regex runtime library Group: System/Libraries Requires: boost-license1_39_0 AutoReqProv: on %description -n libboost_regex1_39_0 This package contains the Boost::Regex runtime library. %prep %setup -q -n %{name}_1_39_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 %patch2 %patch4 %patch8 %patch19 %patch20 %patch21 %patch22 %patch23 %patch24 #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_39/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_39_0 -p /sbin/ldconfig %post -n libboost_filesystem1_39_0 -p /sbin/ldconfig %post -n libboost_iostreams1_39_0 -p /sbin/ldconfig %post -n libboost_test1_39_0 -p /sbin/ldconfig %post -n libboost_program_options1_39_0 -p /sbin/ldconfig %post -n libboost_python1_39_0 -p /sbin/ldconfig %post -n libboost_regex1_39_0 -p /sbin/ldconfig %post -n libboost_serialization1_39_0 -p /sbin/ldconfig %post -n libboost_signals1_39_0 -p /sbin/ldconfig %post -n libboost_thread1_39_0 -p /sbin/ldconfig %post -n libboost_math1_39_0 -p /sbin/ldconfig %if %build_mpi %post -n libboost_mpi1_39_0 -p /sbin/ldconfig %endif %post -n libboost_graph1_39_0 -p /sbin/ldconfig %post -n libboost_system1_39_0 -p /sbin/ldconfig %post -n libboost_wave1_39_0 -p /sbin/ldconfig %postun -n libboost_date_time1_39_0 -p /sbin/ldconfig %postun -n libboost_filesystem1_39_0 -p /sbin/ldconfig %postun -n libboost_iostreams1_39_0 -p /sbin/ldconfig %postun -n libboost_test1_39_0 -p /sbin/ldconfig %postun -n libboost_program_options1_39_0 -p /sbin/ldconfig %postun -n libboost_python1_39_0 -p /sbin/ldconfig %postun -n libboost_regex1_39_0 -p /sbin/ldconfig %postun -n libboost_serialization1_39_0 -p /sbin/ldconfig %postun -n libboost_signals1_39_0 -p /sbin/ldconfig %postun -n libboost_thread1_39_0 -p /sbin/ldconfig %postun -n libboost_math1_39_0 -p /sbin/ldconfig %if %build_mpi %postun -n libboost_mpi1_39_0 -p /sbin/ldconfig %endif %postun -n libboost_graph1_39_0 -p /sbin/ldconfig %postun -n libboost_system1_39_0 -p /sbin/ldconfig %postun -n libboost_wave1_39_0 -p /sbin/ldconfig %files -n boost-license1_39_0 %defattr(-, root, root, -) %dir %{_docdir} %doc %{_docdir}/LICENSE_1_0.txt %files -n libboost_date_time1_39_0 %defattr(-, root, root, -) %{_libdir}/libboost_date_time*.so.* %files -n libboost_filesystem1_39_0 %defattr(-, root, root, -) %{_libdir}/libboost_filesystem*.so.* %files -n libboost_graph1_39_0 %defattr(-, root, root, -) %{_libdir}/libboost_graph*.so.* %files -n libboost_iostreams1_39_0 %defattr(-, root, root, -) %{_libdir}/libboost_iostreams*.so.* %files -n libboost_math1_39_0 %defattr(-, root, root, -) %{_libdir}/libboost_math_*.so.* %if %build_mpi %files -n libboost_mpi1_39_0 %defattr(-, root, root, -) %{_libdir}/libboost_mpi*.so.* %{_libdir}/mpi.so %endif %files -n libboost_test1_39_0 %defattr(-, root, root, -) %{_libdir}/libboost_prg_exec_monitor*.so.* %{_libdir}/libboost_unit_test_framework*.so.* %files -n libboost_program_options1_39_0 %defattr(-, root, root, -) %{_libdir}/libboost_program_options*.so.* %files -n libboost_python1_39_0 %defattr(-, root, root, -) %{_libdir}/libboost_python*.so.* %files -n libboost_serialization1_39_0 %defattr(-, root, root, -) %{_libdir}/libboost_*serialization*.so.* %files -n libboost_signals1_39_0 %defattr(-, root, root, -) %{_libdir}/libboost_signals*.so.* %files -n libboost_system1_39_0 %defattr(-, root, root, -) %{_libdir}/libboost_system*.so.* %files -n libboost_thread1_39_0 %defattr(-, root, root, -) %{_libdir}/libboost_thread*.so.* %files -n libboost_wave1_39_0 %defattr(-, root, root, -) %{_libdir}/libboost_wave*.so.* %files -n libboost_regex1_39_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