%define cmake_build 0 %if %cmake_build %define cmake_pl 0 %else %define packver %(echo "%{version}" | sed -e "s/\\\./_/g") %endif # From the version 13 of Fedora, the Boost libraries are delivered # with sonames equal to the Boost version (e.g., 1.41.0). %define libname %mklibname boost %{version} %define libnamedevel %mklibname boost -d %define libnamestaticdevel %mklibname boost -d -s %define subrel 2 Summary: Portable C++ libraries Name: boost Version: 1.42.0 Release: %mkrel 3 License: Boost Group: Development/C++ URL: http://boost.org/ %if %cmake_build Source0: http://sodium.resophonic.com/boost-cmake/%{version}.cmake%{cmake_pl}/boost-%{version}.cmake%{cmake_pl}.tar.gz BuildRequires: cmake %else Source0: http://umn.dl.sourceforge.net/sourceforge/boost/boost_%{packver}.tar.bz2 BuildRequires: boost-jam %endif # (anssi) in bjam mode, use CXXFLAGS when optimization=speed Patch0: boost-use-cxxflags.patch Patch1: boost-fix-serialization.patch BuildRequires: bzip2-devel BuildRequires: python-devel BuildRequires: zlib-devel BuildRequires: icu-devel #BuildRequires: openmpi-devel BuildRequires: expat-devel BuildRequires: doxygen xsltproc BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot %description Boost is a collection of free peer-reviewed portable C++ source libraries. The emphasis is on libraries which work well with the C++ Standard Library. This package contains only the shared libraries needed for running programs using Boost. %define boostlibs date_time filesystem graph iostreams math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l prg_exec_monitor program_options python regex serialization signals system thread unit_test_framework wave wserialization # (Anssi 01/2010) dashes are converted to underscores for macros ($lib2); # The sed script adds _ when library name ends in number. %{expand:%(for lib in %boostlibs; do lib2=${lib/-/_}; cat <<EOF %%global libname$lib2 %%mklibname boost_$(echo $lib | sed 's,[0-9]$,&_,') %{version} %%package -n %%{libname$lib2} Summary: Boost $lib shared library # no one should require this, but provided anyway for maximum compatibility: Provides: boost = %version-%release Group: System/Libraries EOF done)} # (Anssi 01/2010) splitted expand contents due to rpm bug failing build, # triggered by a too long expanded string. %{expand:%(for lib in %boostlibs; do lib2=${lib/-/_}; cat <<EOF %%description -n %%{libname$lib2} Boost is a collection of free peer-reviewed portable C++ source libraries. The emphasis is on libraries which work well with the C++ Standard Library. This package contains the shared library needed for running programs dynamically linked against Boost $lib. EOF done)} %{expand:%(for lib in %boostlibs; do lib2=${lib/-/_}; cat <<EOF %%files -n %%{libname$lib2} %%defattr(-,root,root) %%doc LICENSE_1_0.txt %{_libdir}/libboost_$lib.so.%{version} EOF done)} %package -n %{libnamedevel} Summary: The libraries and headers needed for Boost development Group: Development/C++ Requires: %{expand:%(for lib in %boostlibs; do echo -n "%%{libname${lib/-/_}} = %{version}-%{release} "; done)} Obsoletes: %{mklibname boost 1}-devel < %{version}-%{release} Provides: %{name}-devel = %{version}-%{release} Provides: lib%{name}-devel = %{version}-%{release} %description -n %{libnamedevel} Boost is a collection of free peer-reviewed portable C++ source libraries. The emphasis is on libraries which work well with the C++ Standard Library. This package contains headers and shared library symlinks needed for Boost development. %package -n %{libnamedevel}-doc Summary: The libraries and headers needed for Boost development Group: Development/C++ Provides: %{name}-devel-doc = %{version}-%{release} Conflicts: %{_lib}boost-devel < 1.41.0 %description -n %{libnamedevel}-doc Boost is a collection of free peer-reviewed portable C++ source libraries. The emphasis is on libraries which work well with the C++ Standard Library. This package contains documentation needed for Boost development. %package -n %{libnamestaticdevel} Summary: Static libraries for Boost development Group: Development/C++ Requires: %{libnamedevel} = %{version}-%{release} Obsoletes: %{mklibname boost 1}-static-devel < %{version}-%{release} Provides: %{name}-static-devel = %{version}-%{release} %description -n %{libnamestaticdevel} Boost is a collection of free peer-reviewed portable C++ source libraries. The emphasis is on libraries which work well with the C++ Standard Library. This package contains only the static libraries needed for Boost development. %package -n %{name}-examples Summary: The examples for the Boost libraries Group: Development/C++ Obsoletes: %{libname}-examples < %{version}-%{release} Provides: %{libname}-examples = %{version}-%{release} %description -n %{name}-examples Boost is a collection of free peer-reviewed portable C++ source libraries. The emphasis is on libraries which work well with the C++ Standard Library. This package contains examples, installed in the same place as the documentation. %prep %if %cmake_build %setup -q -n boost-%{version}.cmake%{cmake_pl} %else %setup -q -n boost_%{packver} %endif %apply_patches # Preparing the docs mkdir packagedoc find -type f -not -path '*packagedoc*' \( -name '*.html' -o -name '*.htm' -o -name '*.css' -o -name '*.gif' -o -name '*.jpg' -o -name '*.png' -o -name '*README*' \) -exec cp --parents {} packagedoc/ \; # Preparing the examples: All .hpp or .cpp files that are not in # directories called test, src, or tools, as well as all files of any # type in directories called example or examples. mkdir examples find libs -type f \( -name "*.?pp" ! -path "*test*" ! -path "*src*" ! -path "*tools*" -o -path "*example*" \) -exec cp --parents {} examples/ \; %build %if %cmake_build %cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_SINGLE_THREADED=NO \ -DINSTALL_VERSIONED=OFF -DWITH_MPI=OFF %make %else %define boost_jam_common_flags %{_smp_mflags} -d2 --layout=system --toolset=gcc variant=release threading=multi optimization=speed linkflags="%{ldflags} -lpython%{py_ver}" debug-symbols=on -sHAVE_ICU=1 -sEXPAT_INCLUDE=%{_includedir} -sEXPAT_LIBPATH=%{_libdir} -sCXXFLAGS="%{optflags} -O3" %ifnarch %arm %mips %define boost_bjam bjam %{boost_jam_common_flags} %else %define boost_bjam bjam %{boost_jam_common_flags} --disable-long-double %endif %{boost_bjam} --prefix=%{_prefix} --libdir=%{_libdir} %endif %install rm -rf %{buildroot} %if %cmake_build %makeinstall_std -C build %else %{boost_bjam} --prefix=%{buildroot}%{_prefix} --libdir=%{buildroot}%{_libdir} install %endif # (Anssi 01/2010) add compatibility symlinks: for file in %{buildroot}%{_libdir}/*.so; do cp -a $file ${file%.so}-mt.so done for file in %{buildroot}%{_libdir}/*.a; do ln -s $(basename $file) ${file%.a}-mt.a done # Kill any debug library versions that may show up un-invited. rm -f %{buildroot}%{_libdir}/*-d.* # Remove cmake configuration files used to build the Boost libraries rm -f %{buildroot}%{_libdir}/Boost*.cmake %clean rm -rf %{buildroot} %if %mdkversion < 200900 %post -n %{libname} -p /sbin/ldconfig %endif %if %mdkversion < 200900 %postun -n %{libname} -p /sbin/ldconfig %endif %files -n %{libnamedevel} %defattr(644, root,root, 755) %{_libdir}/libboost_*.so %{_includedir}/boost %if %cmake_build %{_datadir}/%{name}-%{version}/cmake/*.cmake %endif %files -n %{libnamedevel}-doc %defattr(-,root,root) %doc packagedoc/* %files -n %{libnamestaticdevel} %defattr(-,root,root) %{_libdir}/libboost_*.a %files -n %{name}-examples %defattr(-,root,root) %doc examples/* %changelog * Fri Sep 17 2010 Oden Eriksson <oeriksson@mandriva.com> 1.42.0-3.2mdv2010.1 - built for updates * Thu Sep 02 2010 Ahmad Samir <ahmadsamir@mandriva.org> 1.42.0-3.1mdv2010.1 + Revision: 575183 - Fix static-devel symlinks (copied from boost in cooker SVN), (mdv#60882) * Sun Mar 21 2010 Funda Wang <fwang@mandriva.org> 1.42.0-3mdv2010.1 + Revision: 526045 - rebuild for new icu * Tue Feb 23 2010 Crispin Boylan <crisb@mandriva.org> 1.42.0-2mdv2010.1 + Revision: 509861 - Add serialization patch from svn fixes crash on exit when using dlopen libs + Anssi Hannula <anssi@mandriva.org> - rebuild for new boost * Mon Feb 08 2010 Anssi Hannula <anssi@mandriva.org> 1.42.0-1mdv2010.1 + Revision: 501872 - new version - conditionally bring back support for building with bjam (there is no cmake-enabled version of 1.42.0 available) - drop patches applied upstream (mapnik.patch, fix-serialization.patch) - build only multithreaded versions of the libraries - split the libraries into their own subpackages to minimize installation footprint on user systems * Thu Feb 04 2010 Jérôme Brenier <incubusss@mandriva.org> 1.41.0-3mdv2010.1 + Revision: 501005 - add one patch to fix serialization to build easystroke (from upstream) * Wed Feb 03 2010 Funda Wang <fwang@mandriva.org> 1.41.0-2mdv2010.1 + Revision: 500157 - add fedora patch to satisfy mapnik build * Wed Feb 03 2010 Funda Wang <fwang@mandriva.org> 1.41.0-1mdv2010.1 + Revision: 499854 - BR xsltproc - New version 1.41.0 (cmake build based) - drop all build patches as cmake can deal with all things :D - revert to SONAME=VERSION, keep same with Fedora :( + Olivier Blin <oblin@mandriva.com> - simplify long-double check - fix build on ARM and MIPS, they don't really have long double (from Arnaud Patard) * Thu Aug 20 2009 Helio Chissini de Castro <helio@mandriva.com> 1.39.0-2mdv2010.0 + Revision: 418718 - Added patch to fix pyside compilation. This is included in boost-to-be 1.4.0 official near release * Sat Aug 15 2009 Emmanuel Andry <eandry@mandriva.org> 1.39.0-1mdv2010.0 + Revision: 416502 - disable BR openmpi-devel, as it's not welcome in main + Per Ãyvind Karlsen <peroyvind@mandriva.org> - build with graphml support - build with mpi support - fix file permissions for -devel package - replace patch that sets %%optflags with a new one that takes an environment variable in stead (P0) - set same ABI major as Fedora and provide compatibility symlinks for "old" soname fashion. This should hopefully help decrease the amount of packages linked against older library versions (P1) - sync with some fedora patches - new release: 1.39.0 * Mon Mar 02 2009 Emmanuel Andry <eandry@mandriva.org> 1.38.0-2mdv2009.1 + Revision: 346986 - New version 1.38.0 - drop P5 (merged upstream) * Fri Jan 16 2009 Tomasz Pawel Gajc <tpg@mandriva.org> 1.37.0-4mdv2009.1 + Revision: 330353 - Patch6: fix wrong BOOST_NO_EXCEPTIONS define placement (upstream bug #2469) * Fri Dec 26 2008 Funda Wang <fwang@mandriva.org> 1.37.0-3mdv2009.1 + Revision: 319262 - link with libpython * Tue Dec 23 2008 Funda Wang <fwang@mandriva.org> 1.37.0-2mdv2009.1 + Revision: 317920 - use correct license * Sat Dec 20 2008 Tomasz Pawel Gajc <tpg@mandriva.org> 1.37.0-1mdv2009.1 + Revision: 316499 - use _disable_ld_no_undefined 1 (lof of python stuff) - Patch2: rediff - don't export optflags, better to sed them in - use %%ldflags - update to new version 1.37.0 * Mon Aug 18 2008 Per Ãyvind Karlsen <peroyvind@mandriva.org> 1.36.0-1mdv2009.0 + Revision: 273337 - new release - drop P6 (merged upstream) - compile with -O3 * Mon Jul 14 2008 Oden Eriksson <oeriksson@mandriva.com> 1.35.0-3mdv2009.0 + Revision: 234634 - rebuild + Pixel <pixel@mandriva.com> - do not call ldconfig in %%post/%%postun, it is now handled by filetriggers * Thu May 29 2008 David Walluck <walluck@mandriva.org> 1.35.0-2mdv2009.0 + Revision: 212839 - patch for gcc 4.3 serialization fix - patch for gcc 4.3 date_time fix * Tue May 20 2008 Oden Eriksson <oeriksson@mandriva.com> 1.35.0-1mdv2009.0 + Revision: 209510 - 1.35.0 - rediffed the patches - drop upstream implemented patches (CVE-2008-0171+0172 is applied) - fix the find logig (thanks anssi) * Tue May 20 2008 Oden Eriksson <oeriksson@mandriva.com> 1.34.1-5mdv2009.0 + Revision: 209434 - added P5 from fedora (gcc43 patch) * Sat Feb 09 2008 Anssi Hannula <anssi@mandriva.org> 1.34.1-4mdv2008.1 + Revision: 164328 - fix CVE-2008-0171 and CVE-2008-0172 (P0, #37412) + Olivier Blin <oblin@mandriva.com> - restore BuildRoot + Thierry Vignaud <tv@mandriva.org> - kill re-definition of %%buildroot on Pixel's request * Fri Nov 30 2007 Anssi Hannula <anssi@mandriva.org> 1.34.1-3mdv2008.1 + Revision: 114034 - provide libboost_thread.so devel symlink for compatibility + Tomasz Pawel Gajc <tpg@mandriva.org> - add more explicit provides for devel pkg * Thu Nov 01 2007 Anssi Hannula <anssi@mandriva.org> 1.34.1-2mdv2008.1 + Revision: 104690 - use version as major as per upstream and debian - remove boost-configure.patch, modifies irrelevant file - remove boost-gcc-soname.patch, did not work as intended and is now unnecessary - use --layout=system to drop gcc version from soname and remove the need for manual include move hack - add patch from boost ml to include version in library name with --layout=system (boost-layout-system.patch) - build with libicu - drop obsolete hacks and comments - use proper bjam flags (build single- and multi-threaded versions, release variants only, parallel build) - ensure major correctness in filelist * Tue Sep 04 2007 David Walluck <walluck@mandriva.org> 1.34.1-1mdv2008.1 + Revision: 78984 - 1.34.1 - new lib policy - rename examples subpackage - take patches from Fedora * Fri Jul 06 2007 Adam Williamson <awilliamson@mandriva.org> 1.33.1-6mdv2008.0 + Revision: 49245 - add patch6 (atomicity.h has moved in recent GCC) * Sat Jan 13 2007 Anssi Hannula <anssi@mandriva.org> 1.33.1-5mdv2007.0 + Revision: 108182 - fix build with python2.5 (patch5, from cvs) * Fri Oct 13 2006 Nicolas Lécureuil <neoclust@mandriva.org> 1.33.1-4mdv2007.1 + Revision: 63856 - Add patch - Add missing include - import boost-1.33.1-3mdv2007.0 * Fri Jul 28 2006 Christiaan Welvaart <cjw@daneel.dyndns.org> 1.33.1-3 - add BuildRequires: libz-devel * Sun Apr 30 2006 David Walluck <walluck@mandriva.org> 1.33.1-2mdk - adding missing BuildRequires: libbzip2-devel - adding missing BuildRequires: libpython-devel - add lib64boost Provides as per rpmlint * Fri Apr 21 2006 Per Øyvind Karlsen <pkarlsen@mandriva.com> 1.33.1-1mdk - 1.33.1 - drop P1 & P3 (fixed upstream) * Tue Jan 03 2006 Stefan van der Eijk <stefan@eijk.nu> 1.32.0-5mdk - rebuild * Thu Jul 07 2005 Per Øyvind Karlsen <pkarlsen@mandriva.com> 1.32.0-4mdk - make gcc4 a known compiler (P3, fixes #16719) * Wed May 04 2005 Per Øyvind Karlsen <pkarlsen@mandriva.com> 1.32.0-3mdk - lib64 fixes - %%{1}mdv2007.1 * Wed Mar 23 2005 Per Øyvind Karlsen <peroyvind@linux-mandrake.com> 1.32.0-2mdk - multiarch - fix summary-ended-with-dot * Wed Dec 08 2004 Michael Scherer <misc@mandrake.org> 1.32.0-1mdk - 1.32.0 * Tue Jul 06 2004 Michael Scherer <misc@mandrake.org> 1.31.0-5mdk - rebuild for new gcc, reenable python support * Tue Jun 08 2004 Michael Scherer <misc@mandrake.org> 1.31.0-4mdk - rebuild for new gcc - remove python support, doesn't build at the moment * Sun May 30 2004 Abel Cheung <deaddog@deaddog.org> 1.31.0-3mdk - P1-2: Use fedora patches (thanks for Nick Brown's help nicbrown <AT> cisco.com), to avoid appending compiler/variant name into library, other softwares don't want that (#9648) - Only build threaded libraries, remove debug package * Fri Apr 30 2004 Abel Cheung <deaddog@deaddog.org> 1.31.0-2mdk - Reenable patch1 (peroyvind, would you please NOT randomly disable patches AND without indicating it in changelog?) - Redo part of spec to fix f*cked up installation (#9648) - If one wants debug build, toggle it in ~/.rpmmacros instead of doing it here * Wed Feb 04 2004 Per Øyvind Karlsen <peroyvind@linux-mandrake.com> 1.31.0-1mdk - 1.31.0