boost/boost.spec
2012-10-04 15:08:26 +04:00

465 lines
16 KiB
RPMSpec

%define cmake_build 0
%define packver %(echo "%{version}" | sed -e "s/\\\./_/g")
# 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
# --no-undefined breaks build of CMakeified Boost.{Chrono,Locale,Timer}.
# Without --no-undefined, corresponding libraries lose their dependency on Boost.System.
# This is totally wrong, but it's rather a CMake'ification bug.
%define _disable_ld_no_undefined 1
Summary: Portable C++ libraries
Name: boost
Version: 1.50.0
Release: 2
License: Boost
Group: Development/C++
URL: http://boost.org/
Source0: http://sourceforge.net/projects/boost/files/boost/%{version}/boost_%(echo %version |sed -e 's,\.,_,g').tar.bz2
# Upstream patch to fixes a bug when compiled using a C++11 compiler
Patch0: http://www.boost.org/patches/1_50_0/001-unordered.patch
# The patch may break c++03, and there is therefore no plan yet to include
# it upstream: https://svn.boost.org/trac/boost/ticket/4999
Patch2: boost-1.50.0-signals-erase.patch
# https://svn.boost.org/trac/boost/ticket/6150
Patch4: boost-1.50.0-fix-non-utf8-files.patch
# Add a manual page for the sole executable, namely bjam, based on the
# on-line documentation:
# http://www.boost.org/boost-build2/doc/html/bbv2/overview.html
Patch5: boost-1.48.0-add-bjam-man-page.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=756005
# https://svn.boost.org/trac/boost/ticket/6131
Patch7: boost-1.50.0-foreach.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=781859
# The following tickets have still to be fixed by upstream.
# https://svn.boost.org/trac/boost/ticket/6406 fixed, but only in Boost-1.51.0
# https://svn.boost.org/trac/boost/ticket/6408
# https://svn.boost.org/trac/boost/ticket/6410
# https://svn.boost.org/trac/boost/ticket/6413
# https://svn.boost.org/trac/boost/ticket/6415
Patch9: boost-1.50.0-attribute.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=783660
# https://svn.boost.org/trac/boost/ticket/6459 fixed
Patch10: boost-1.50.0-long-double-1.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=784654
Patch12: boost-1.50.0-polygon.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=828856
# https://bugzilla.redhat.com/show_bug.cgi?id=828857
Patch15: boost-1.50.0-pool.patch
BuildRequires: bzip2-devel
BuildRequires: python-devel
BuildRequires: zlib-devel
BuildRequires: icu-devel >= 49.0
#BuildRequires: openmpi-devel
BuildRequires: expat-devel
BuildRequires: doxygen xsltproc
%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 chrono date_time filesystem graph iostreams locale math prg_exec_monitor program_options python random regex serialization signals system thread timer 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
BuildArch: noarch
%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
%setup -q -n boost_%{packver}
%patch0 -p0
%patch2 -p1
%patch4 -p1
%patch5 -p1
%patch7 -p2
%patch9 -p1
%patch10 -p1
%patch12 -p3
%patch15 -p0
# 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
%define gcc_ver %(rpm -q --queryformat="%%{VERSION}" gcc)
cat > ./tools/build/v2/user-config.jam << EOF
using gcc : %gcc_ver : gcc : <cflags>"%optflags -I%{_includedir}/python%{py_ver}" <cxxflags>"%optflags -I%{_includedir}/python%{py_ver}" <linkflags>"%ldflags" ;
using python : %py_ver : %{_bindir}/python%{py_ver} : %{_includedir}/python%{py_ver} : %{_libdir} ;
EOF
./bootstrap.sh --with-toolset=gcc --with-icu --prefix=%{_prefix} --libdir=%{_libdir}
./b2 -d+2 -q %{?_smp_mflags} --without-mpi \
--prefix=%{_prefix} --libdir=%{_libdir} \
linkflags="%{ldflags} -lpython%{py_ver} -lstdc++ -lm" \
-sHAVE_ICU=1 \
link=shared threading=multi debug-symbols=off --layout=system
%install
./b2 -d+2 -q %{?_smp_mflags} --without-mpi \
--prefix=%{buildroot}%{_prefix} --libdir=%{buildroot}%{_libdir} \
link=shared \
install
%files -n %{libnamedevel}
%{_libdir}/libboost_*.so
%{_includedir}/boost
%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
* The Oct 04 2012 Alexander Kazancev <kazancas@mandriva.org> 1.50.0-2
- sync with fedora and mageia packages
- build force with python and icu
- build mt flavour
* Mon Jul 02 2012 Crispin Boylan <crisb@mandriva.org> 1.50.0-1
+ Revision: 807763
- New release
* Sat Apr 07 2012 Bernhard Rosenkraenzer <bero@bero.eu> 1.49.0-2
+ Revision: 789742
- Rebuild for icu 49.x
* Sat Mar 31 2012 Bernhard Rosenkraenzer <bero@bero.eu> 1.49.0-1
+ Revision: 788431
- Update to 1.49.0
- Fix up rpmlint errors
* Tue Nov 29 2011 Andrey Bondrov <abondrov@mandriva.org> 1.48.0-2
+ Revision: 735431
- Add patch from upstream to fix problem with forearch in 1.48
* Mon Nov 28 2011 Crispin Boylan <crisb@mandriva.org> 1.48.0-1
+ Revision: 734884
- New release
* Tue Sep 06 2011 Leonardo Coelho <leonardoc@mandriva.org> 1.47.0-1
+ Revision: 698384
- bump new version
- add exceptions to treat boost throw_exception
+ Matthew Dawkins <mattydaw@mandriva.org>
- fix bootlibs macro on arm/mips
* Sun Jun 05 2011 Funda Wang <fwang@mandriva.org> 1.46.1-6
+ Revision: 682806
- rebuild for new icu
* Sun May 22 2011 Oden Eriksson <oeriksson@mandriva.com> 1.46.1-5
+ Revision: 677149
- rebuild
* Sat Apr 16 2011 Tomasz Pawel Gajc <tpg@mandriva.org> 1.46.1-4
+ Revision: 653309
- rebuild
* Tue Mar 15 2011 Funda Wang <fwang@mandriva.org> 1.46.1-3
+ Revision: 644952
- add patch from upstream to fix lightsprk build
* Mon Mar 14 2011 Funda Wang <fwang@mandriva.org> 1.46.1-2
+ Revision: 644525
- rebuild for new icu
* Sun Mar 13 2011 Funda Wang <fwang@mandriva.org> 1.46.1-1
+ Revision: 644409
- new version 1.46.1
- add cmake patch from fedora, and synced cmake build conditioned
- drop merged patch
* Tue Nov 02 2010 Crispin Boylan <crisb@mandriva.org> 1.44.0-4mdv2011.0
+ Revision: 592080
- Patch 1 to fix boost issue #4598
* Fri Oct 29 2010 Funda Wang <fwang@mandriva.org> 1.44.0-3mdv2011.0
+ Revision: 590114
- rebuild for new python
* Thu Sep 02 2010 Thierry Vignaud <tv@mandriva.org> 1.44.0-2mdv2011.0
+ Revision: 575199
- let the doc subpackage be noarch
* Sun Aug 22 2010 Emmanuel Andry <eandry@mandriva.org> 1.44.0-1mdv2011.0
+ Revision: 572035
- New version 1.44.0
* Wed Aug 04 2010 Funda Wang <fwang@mandriva.org> 1.43.0-2mdv2011.0
+ Revision: 565900
- patch1 not needed
+ Luis Medinas <lmedinas@mandriva.org>
- Fix static-devel symlinks.
+ Matthew Dawkins <mattydaw@mandriva.org>
- new version 1.43.0
added random to pkgs list
* 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 <blino@mandriva.org>
- 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.1
* 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 <blino@mandriva.org>
- 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)