X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=boost.spec;h=11d1ca856aa59fea9766eadb4c61b5cbb11fbcf2;hb=aaeb56b0e6b7f2a6f5e636a50ab7e67f1c047aff;hp=537ae7a2e43f819f3bc2b4fe9f2fce057b1fba7e;hpb=625da36765ccdb76f06e3b598a0674be006dfb9a;p=packages%2Fboost.git diff --git a/boost.spec b/boost.spec index 537ae7a..11d1ca8 100644 --- a/boost.spec +++ b/boost.spec @@ -2,39 +2,30 @@ # TODO: # - think about building MPI. # - split shared libs from core package into -iostreams/-serialization. -# - fix building context and corouting on x32 (patch1) # # Conditional build: -%bcond_without python # without boost-python support +%bcond_without python2 # without boost-python2 support +%bcond_without python3 # without boost-python3 support %define fver %(echo %{version} | tr . _) Summary: The Boost C++ Libraries Summary(pl.UTF-8): Biblioteki C++ "Boost" Name: boost -Version: 1.56.0 +Version: 1.61.0 Release: 2 License: Boost Software License and others Group: Libraries +# TODO: use .7z extension: Source0: http://downloads.sourceforge.net/boost/%{name}_%{fver}.tar.bz2 -# Source0-md5: a744cf167b05d72335f27c88115f211d +# Source0-md5: 6095876341956f65f9d35939ccea1a9f Patch0: %{name}-link.patch Patch1: %{name}-x32-context.patch +Patch2: %{name}-clean-gcc-flags.patch # FC Patches: # https://svn.boost.org/trac/boost/ticket/5637 Patch203: %{name}-1.54.0-mpl-print.patch -# https://svn.boost.org/trac/boost/ticket/8870 -Patch211: %{name}-1.54.0-spirit-unused_typedef.patch -Patch212: %{name}-1.54.0-spirit-unused_typedef-2.patch -# https://svn.boost.org/trac/boost/ticket/8871 -Patch213: %{name}-1.54.0-numeric-unused_typedef.patch -# https://svn.boost.org/trac/boost/ticket/8878 -Patch218: %{name}-1.54.0-locale-unused_typedef.patch # https://svn.boost.org/trac/boost/ticket/8881 Patch221: %{name}-1.54.0-mpi-unused_typedef.patch -# https://svn.boost.org/trac/boost/ticket/8888 -Patch222: %{name}-1.54.0-python-unused_typedef.patch -# https://svn.boost.org/trac/boost/ticket/9038 -Patch224: %{name}-1.54.0-pool-test_linking.patch URL: http://www.boost.org/ BuildRequires: bzip2-devel BuildRequires: expat-devel @@ -42,6 +33,7 @@ BuildRequires: libicu-devel BuildRequires: libstdc++-devel BuildRequires: perl-base %{?with_python:BuildRequires: python-devel >= 2.2} +%{?with_python3:BuildRequires: python3-devel} BuildRequires: rpm-pythonprov BuildRequires: zlib-devel BuildConflicts: gcc = 5:3.3.1 @@ -73,9 +65,7 @@ Summary(pl.UTF-8): Pliki nagłówkowe bibliotek C++ Boost Group: Development/Libraries Requires: %{name} = %{version}-%{release} Requires: %{name}-chrono = %{version}-%{release} -%ifnarch x32 Requires: %{name}-context = %{version}-%{release} -%endif Requires: %{name}-date_time = %{version}-%{release} Requires: %{name}-filesystem = %{version}-%{release} Requires: %{name}-graph = %{version}-%{release} @@ -143,53 +133,117 @@ Static version of base Boost C++ libraries. %description static -l pl.UTF-8 Statyczne wersje podstawowych bibliotek C++ Boost. +%package python-devel-common +Summary: Boost.Python development headers +Summary(pl.UTF-8): Pliki nagłówkowe biblioteki Boost.Python +Group: Development/Libraries +Requires: %{name}-devel = %{version}-%{release} + +%description python-devel-common +Headers for the Boost.Python library. + +%description python-devel-common -l pl.UTF-8 +Pliki nagłówkowe biblioteki Boost.Python. + %package python -Summary: Boost.Python library -Summary(pl.UTF-8): biblioteka Boost.Python +Summary: Boost.Python library for Python 2 +Summary(pl.UTF-8): Biblioteka Boost.Python dla Pythona 2 Group: Libraries -Requires: python +Requires: python-libs %description python Use the Boost Python Library to quickly and easily export a C++ -library to Python such that the Python interface is very similar to -the C++ interface. It is designed to be minimally intrusive on your +library to Python 2 such that the Python 2 interface is very similar +to the C++ interface. It is designed to be minimally intrusive on your C++ design. In most cases, you should not have to alter your C++ classes in any way in order to use them with Boost.Python. The system -should simply ``reflect'' your C++ classes and functions into Python. +should simply ``reflect'' your C++ classes and functions into Python +3. %description python -l pl.UTF-8 Biblioteka Boost Python służy do szybkiego i prostego eksportu -biblioteki C++ do Pythona, tak że interfejs Pythona jest bardzo +biblioteki C++ do Pythona 2, tak że interfejs Pythona 2 jest bardzo podobny do interfejsu C++. Biblioteka jest zaprojektowana tak, żeby narzucać jak najmniej wymagań dotyczących konstrukcjii C++. W większości przypadków nie trzeba w ogóle zmieniać własnych klas C++, żeby używać ich z Boost.Python. System powinien po prostu ,,odbić'' -klasy C++ i funkcje do Pythona. +klasy C++ i funkcje do Pythona 3. %package python-devel -Summary: Boost.Python development headers -Summary(pl.UTF-8): Pliki nagłówkowe dla Boost.Python +Summary: Boost.Python development files for Python 2 +Summary(pl.UTF-8): Pliki programistyczne biblioteki Boost.Python dla Pythona 2 Group: Development/Libraries Requires: %{name}-devel = %{version}-%{release} Requires: %{name}-python = %{version}-%{release} +Requires: %{name}-python-devel-common = %{version}-%{release} %description python-devel -Headers for the Boost.Python library. +Boost.Python development files for Python 2. %description python-devel -l pl.UTF-8 -Pliki nagłówkowe dla biblioteki Boost.Python. +Pliki programistyczne biblioteki Boost.Python dla Pythona 2. %package python-static -Summary: Static version of Boost.Python library -Summary(pl.UTF-8): Statyczna wersja biblioteki Boost.Python +Summary: Static version of Boost.Python library for Python 2 +Summary(pl.UTF-8): Statyczna wersja biblioteki Boost.Python dla Pythona 2 Group: Development/Libraries Requires: %{name}-python-devel = %{version}-%{release} %description python-static -Static version of Boost.Python library. +Static version of Boost.Python library for Python 2. %description python-static -l pl.UTF-8 -Statyczna wersja biblioteki Boost.Python. +Statyczna wersja biblioteki Boost.Python dla Pythona 2. + +%package python3 +Summary: Boost.Python library for Python 3 +Summary(pl.UTF-8): biblioteka Boost.Python dla Pythona 3 +Group: Libraries +Requires: python3-libs + +%description python3 +Use the Boost Python Library to quickly and easily export a C++ +library to Python 3 such that the Python 3 interface is very similar +to the C++ interface. It is designed to be minimally intrusive on your +C++ design. In most cases, you should not have to alter your C++ +classes in any way in order to use them with Boost.Python. The system +should simply ``reflect'' your C++ classes and functions into Python +3. + +%description python3 -l pl.UTF-8 +Biblioteka Boost Python służy do szybkiego i prostego eksportu +biblioteki C++ do Pythona 3, tak że interfejs Pythona 3 jest bardzo +podobny do interfejsu C++. Biblioteka jest zaprojektowana tak, żeby +narzucać jak najmniej wymagań dotyczących konstrukcjii C++. W +większości przypadków nie trzeba w ogóle zmieniać własnych klas C++, +żeby używać ich z Boost.Python. System powinien po prostu ,,odbić'' +klasy C++ i funkcje do Pythona 3. + +%package python3-devel +Summary: Boost.Python development files for Python 3 +Summary(pl.UTF-8): Pliki programistyczne biblioteki Boost.Python dla Pythona 3 +Group: Development/Libraries +Requires: %{name}-devel = %{version}-%{release} +Requires: %{name}-python-devel-common = %{version}-%{release} +Requires: %{name}-python3 = %{version}-%{release} + +%description python3-devel +Boost.Python development files for Python 3. + +%description python3-devel -l pl.UTF-8 +Pliki programistyczne biblioteki Boost.Python dla Pythona 3. + +%package python3-static +Summary: Static version of Boost.Python library for Python 3 +Summary(pl.UTF-8): Statyczna wersja biblioteki Boost.Python dla Pythona 3 +Group: Development/Libraries +Requires: %{name}-python3-devel = %{version}-%{release} + +%description python3-static +Static version of Boost.Python library for Python 3. + +%description python3-static -l pl.UTF-8 +Statyczna wersja biblioteki Boost.Python dla Pythona 3. %package chrono Summary: Useful time utilities @@ -388,7 +442,9 @@ Boost.Wave - zgodna ze standardem biblioteka preprocesora C++. Summary: Boost C++ Library documentation Summary(pl.UTF-8): Dokumentacja dla biblioteki Boost C++ Group: Documentation -Requires: %{name}-devel = %{version}-%{release} +%if "%{_rpmversion}" >= "5" +BuildArch: noarch +%endif %description doc Documentation for the Boost C++ Library. @@ -399,53 +455,28 @@ Dokumentacja dla biblioteki Boost C++. %prep %setup -q -n %{name}_%{fver} %patch0 -p1 -#patch1 -p0 +%patch1 -p1 +%patch2 -p1 %patch203 -p0 -%patch211 -p1 -%patch212 -p1 -%patch213 -p1 -%patch218 -p1 %patch221 -p1 -%patch222 -p1 -%patch224 -p1 - -# - don't know how to pass it through (b)jam -s (no way?) -# due to oversophisticated build flags system. -# - pass -fPIC due to removal. -%{__sed} -i "s/speed : -O3/speed : ${CXXFLAGS:-%rpmcxxflags} -fPIC/" tools/build/src/tools/gcc.jam - -# cleanup -g switch to avoid override debuginfocflags. -%{__sed} -i 's/on : -g/on :/' tools/build/src/tools/gcc.jam -# link against shared expat library. -#%{__sed} -i 's:find-static:find-shared:' libs/graph/build/Jamfile.v2 cat << EOF > tools/build/src/user-config.jam -using gcc : %{cxx_version} : %{__cxx} ; +using gcc : %{cxx_version} : %{__cxx} : "%{rpmcflags} -fPIC" "%{rpmcxxflags} -fPIC" "%{rpmldflags}" ; EOF # cleanup backups after patching find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f %build -%if %{with python} -PYTHON_VERSION=$(%{__python} -c 'import sys; print sys.version[0:3]') -PYTHON_ROOT=%{_prefix} -%else -PYTHON_ROOT= -PYTHON_VERSION= -%endif EXPAT_INCLUDE=%{_includedir} \ EXPAT_LIBPATH=%{_libdir} \ ICU_PATH=%{_prefix} \ ./bootstrap.sh \ - --prefix=%{_prefix} + --prefix=%{_prefix} \ + -without-libraries=python ./b2 \ -%ifarch x32 - --without-context \ - --without-coroutine \ -%endif -d2 --toolset=gcc \ variant=release \ debug-symbols=on \ @@ -453,6 +484,30 @@ ICU_PATH=%{_prefix} \ link=static,shared \ threading=multi +%if %{with python3} +echo "using python : %{py3_ver}m : %{py3_prefix} : %{py3_incdir} ;" >> project-config.jam +./b2 \ + --with-python python=%{py3_ver}m \ + -a -d2 --toolset=gcc \ + variant=release \ + debug-symbols=on \ + inlining=on \ + link=static,shared \ + threading=multi +%endif + +%if %{with python2} +echo "using python : %{py_ver} : %{py_prefix} : %{py_incdir} ;" >> project-config.jam +./b2 \ + --with-python python=%{py_ver} \ + -a -d2 --toolset=gcc \ + variant=release \ + debug-symbols=on \ + inlining=on \ + link=static,shared \ + threading=multi +%endif + %install rm -rf $RPM_BUILD_ROOT install -d $RPM_BUILD_ROOT{%{_libdir},%{_includedir}} @@ -537,6 +592,9 @@ rm -rf $RPM_BUILD_ROOT %post python -p /sbin/ldconfig %postun python -p /sbin/ldconfig +%post python3 -p /sbin/ldconfig +%postun python3 -p /sbin/ldconfig + %post program_options -p /sbin/ldconfig %postun program_options -p /sbin/ldconfig @@ -565,13 +623,12 @@ rm -rf $RPM_BUILD_ROOT %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/libboost_atomic.so.*.*.* %attr(755,root,root) %{_libdir}/libboost_container.so.*.*.* -%ifnarch x32 %attr(755,root,root) %{_libdir}/libboost_coroutine.so.*.*.* -%endif %attr(755,root,root) %{_libdir}/libboost_iostreams.so.*.*.* %attr(755,root,root) %{_libdir}/libboost_math_*.so.*.*.* %attr(755,root,root) %{_libdir}/libboost_random.so.*.*.* %attr(755,root,root) %{_libdir}/libboost_serialization.so.*.*.* +%attr(755,root,root) %{_libdir}/libboost_type_erasure.so.*.*.* %attr(755,root,root) %{_libdir}/libboost_wserialization.so.*.*.* %files devel @@ -579,10 +636,8 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_libdir}/libboost_atomic.so %attr(755,root,root) %{_libdir}/libboost_chrono.so %attr(755,root,root) %{_libdir}/libboost_container.so -%ifnarch x32 %attr(755,root,root) %{_libdir}/libboost_context.so %attr(755,root,root) %{_libdir}/libboost_coroutine.so -%endif %attr(755,root,root) %{_libdir}/libboost_date_time.so %attr(755,root,root) %{_libdir}/libboost_filesystem.so %attr(755,root,root) %{_libdir}/libboost_graph.so @@ -600,6 +655,7 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_libdir}/libboost_system.so %attr(755,root,root) %{_libdir}/libboost_thread.so %attr(755,root,root) %{_libdir}/libboost_timer.so +%attr(755,root,root) %{_libdir}/libboost_type_erasure.so %attr(755,root,root) %{_libdir}/libboost_unit_test_framework.so %attr(755,root,root) %{_libdir}/libboost_wave.so %attr(755,root,root) %{_libdir}/libboost_wserialization.so @@ -612,10 +668,8 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/libboost_atomic.a %{_libdir}/libboost_chrono.a %{_libdir}/libboost_container.a -%ifnarch x32 %{_libdir}/libboost_context.a %{_libdir}/libboost_coroutine.a -%endif %{_libdir}/libboost_date_time.a %{_libdir}/libboost_exception.a %{_libdir}/libboost_filesystem.a @@ -635,11 +689,19 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/libboost_test_exec_monitor.a %{_libdir}/libboost_timer.a %{_libdir}/libboost_thread.a +%{_libdir}/libboost_type_erasure.a %{_libdir}/libboost_unit_test_framework.a %{_libdir}/libboost_wave.a %{_libdir}/libboost_wserialization.a -%if %{with python} +%if %{with python2} || %{with python3} +%files python-devel-common +%defattr(644,root,root,755) +%{_includedir}/boost/python +%{_includedir}/boost/python.hpp +%endif + +%if %{with python2} %files python %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/libboost_python.so.*.*.* @@ -647,23 +709,33 @@ rm -rf $RPM_BUILD_ROOT %files python-devel %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/libboost_python.so -%{_includedir}/boost/python -%{_includedir}/boost/python.hpp %files python-static %defattr(644,root,root,755) %{_libdir}/libboost_python.a %endif +%if %{with python3} +%files python3 +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/libboost_python3.so.*.*.* + +%files python3-devel +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/libboost_python3.so + +%files python3-static +%defattr(644,root,root,755) +%{_libdir}/libboost_python3.a +%endif + %files chrono %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/libboost_chrono.so.*.*.* -%ifnarch x32 %files context %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/libboost_context.so.*.*.* -%endif %files date_time %defattr(644,root,root,755)