]> git.pld-linux.org Git - packages/boost.git/blobdiff - boost.spec
up to 1.82.0
[packages/boost.git] / boost.spec
index a5ba41b4f96e60690769cddf09a76ca8cdb04264..b3f27b0a8a90b9bbc1e09c23caad8aab36d24589 100644 (file)
@@ -4,34 +4,63 @@
 #      - split shared libs from core package into -iostreams/-serialization.
 #
 # Conditional build:
-%bcond_without python  # without boost-python support
-#
-%define                _fver   %(echo %{version} | tr . _)
+%bcond_without python2         # boost-python[2] support
+%bcond_without python3         # boost-python3 support
+%bcond_without numpy           # boost-numpy support
+%bcond_without doc             # don't package documentation
+
+%define                fver    %(echo %{version} | tr . _)
 Summary:       The Boost C++ Libraries
 Summary(pl.UTF-8):     Biblioteki C++ "Boost"
 Name:          boost
-Version:       1.42.0
-Release:       3
+Version:       1.82.0
+Release:       1
 License:       Boost Software License and others
 Group:         Libraries
-Source0:       http://dl.sourceforge.net/boost/%{name}_%{_fver}.tar.bz2
-# Source0-md5: 7bf3b4eb841b62ffb0ade2b82218ebe6
-Patch0:                %{name}-climits.patch
-Patch1:                %{name}-link.patch
-Patch2:                %{name}-xpressive.patch
+Source0:       https://boostorg.jfrog.io/artifactory/main/release/%{version}/source/%{name}_%{fver}.tar.bz2
+# Source0-md5: b45dac8b54b58c087bfbed260dbfc03a
+Patch0:                %{name}-link.patch
+Patch1:                %{name}-clean-gcc-flags.patch
+Patch2:                %{name}-fallthrough.patch
+Patch3:                uarg-def.patch
+# FC Patches:
+Patch201:      %{name}-python-abi_letters.patch
+# https://svn.boost.org/trac/boost/ticket/5637
+Patch203:      %{name}-1.54.0-mpl-print.patch
+# https://svn.boost.org/trac/boost/ticket/8881
+Patch221:      %{name}-1.54.0-mpi-unused_typedef.patch
 URL:           http://www.boost.org/
-BuildRequires: boost-jam >= 3.1.12
 BuildRequires: bzip2-devel
 BuildRequires: expat-devel
 BuildRequires: libicu-devel
-BuildRequires: libstdc++-devel
+BuildRequires: libstdc++-devel >= 6:4.7
 BuildRequires: perl-base
-%{?with_python:BuildRequires:  python-devel >= 2.2}
+%if %{with python2}
+BuildRequires: python-devel >= 2.2
+%{?with_numpy:BuildRequires:   python-numpy-devel}
+%endif
+%if %{with python3}
+BuildRequires: python3-devel
+%{?with_numpy:BuildRequires:   python3-numpy-devel}
+%endif
+BuildRequires: rpm-build >= 4.6
 BuildRequires: rpm-pythonprov
+BuildRequires: rpmbuild(macros) >= 1.750
 BuildRequires: zlib-devel
-BuildConflicts:        gcc = 5:3.3.1
+Obsoletes:     boost-signals < 1.69
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
+%define                specflags       -DBOOST_IOSTREAMS_USE_DEPRECATED=1
+
+%define                py2v %(echo %{py_ver} | tr -d .)
+%define                py3v %(echo %{py3_ver} | tr -d .)
+
+%if %{_ver_ge "%{py3_ver}" "3.8"}
+%define                py3v_suffix ""
+%else
+%define                py3v_suffix "m"
+%endif
+
 %description
 The Boost web site provides free peer-reviewed portable C++ source
 libraries. The emphasis is on libraries which work well with the C++
@@ -55,50 +84,57 @@ Summary:    Boost C++ development headers
 Summary(pl.UTF-8):     Pliki nagłówkowe bibliotek C++ Boost
 Group:         Development/Libraries
 Requires:      %{name} = %{version}-%{release}
+Requires:      %{name}-chrono = %{version}-%{release}
+Requires:      %{name}-context = %{version}-%{release}
 Requires:      %{name}-date_time = %{version}-%{release}
+Requires:      %{name}-fiber = %{version}-%{release}
 Requires:      %{name}-filesystem = %{version}-%{release}
 Requires:      %{name}-graph = %{version}-%{release}
+Requires:      %{name}-json = %{version}-%{release}
+Requires:      %{name}-locale = %{version}-%{release}
+Requires:      %{name}-log = %{version}-%{release}
 Requires:      %{name}-program_options = %{version}-%{release}
 Requires:      %{name}-regex = %{version}-%{release}
-Requires:      %{name}-signals = %{version}-%{release}
 Requires:      %{name}-system = %{version}-%{release}
 Requires:      %{name}-test = %{version}-%{release}
 Requires:      %{name}-thread = %{version}-%{release}
+Requires:      %{name}-timer = %{version}-%{release}
+Requires:      %{name}-url = %{version}-%{release}
 Requires:      %{name}-wave = %{version}-%{release}
-Requires:      libstdc++-devel
-Obsoletes:     boost-any-devel
-Obsoletes:     boost-array-devel
-Obsoletes:     boost-asio
-Obsoletes:     boost-bind-devel
-Obsoletes:     boost-call_traits-devel
-Obsoletes:     boost-compatibility-devel
-Obsoletes:     boost-compose-devel
-Obsoletes:     boost-compressed_pair-devel
-Obsoletes:     boost-concept_check-devel
-Obsoletes:     boost-conversion-devel
-Obsoletes:     boost-crc-devel
-Obsoletes:     boost-date_time-devel
-Obsoletes:     boost-filesystem-devel
-Obsoletes:     boost-graph-devel
-Obsoletes:     boost-mem_fn-devel
-Obsoletes:     boost-mpl-devel
-Obsoletes:     boost-preprocessor-devel
-Obsoletes:     boost-program_options-devel
-Obsoletes:     boost-ref-devel
-Obsoletes:     boost-regex-devel
-Obsoletes:     boost-signals-devel
-Obsoletes:     boost-spirit-devel
-Obsoletes:     boost-statechart-devel
-Obsoletes:     boost-static_assert-devel
-Obsoletes:     boost-test-devel
-Obsoletes:     boost-thread-devel
-Obsoletes:     boost-tr1-devel
-Obsoletes:     boost-type_traits-devel
-Obsoletes:     boost-typeof-devel
-Obsoletes:     boost-uBLAS-devel
-Obsoletes:     boost-utility-devel
-Obsoletes:     boost-wave-devel
-Obsoletes:     boost-xpressive-devel
+Requires:      libstdc++-devel >= 6:4.7
+Obsoletes:     boost-any-devel < 1.35
+Obsoletes:     boost-array-devel < 1.35
+Obsoletes:     boost-asio < 1.3.0
+Obsoletes:     boost-bind-devel < 1.35
+Obsoletes:     boost-call_traits-devel < 1.34.1-2
+Obsoletes:     boost-compatibility-devel < 1.35
+Obsoletes:     boost-compose-devel < 1.31
+Obsoletes:     boost-compressed_pair-devel < 1.35
+Obsoletes:     boost-concept_check-devel < 1.33.1-1
+Obsoletes:     boost-conversion-devel < 1.33.1-1
+Obsoletes:     boost-crc-devel < 1.35
+Obsoletes:     boost-date_time-devel < 1.35
+Obsoletes:     boost-filesystem-devel < 1.35
+Obsoletes:     boost-graph-devel < 1.35
+Obsoletes:     boost-mem_fn-devel < 1.33.1-1
+Obsoletes:     boost-mpl-devel < 1.33.1-1
+Obsoletes:     boost-preprocessor-devel < 1.33.1-1
+Obsoletes:     boost-program_options-devel < 1.35
+Obsoletes:     boost-ref-devel < 1.34.1-2
+Obsoletes:     boost-regex-devel < 1.35
+Obsoletes:     boost-signals-devel < 1.35
+Obsoletes:     boost-spirit-devel < 1.35
+Obsoletes:     boost-statechart-devel < 1.35
+Obsoletes:     boost-static_assert-devel < 1.33.1-1
+Obsoletes:     boost-test-devel < 1.35
+Obsoletes:     boost-thread-devel < 1.35
+Obsoletes:     boost-tr1-devel < 1.35
+Obsoletes:     boost-type_traits-devel < 1.33.1-1
+Obsoletes:     boost-typeof-devel < 1.35
+Obsoletes:     boost-uBLAS-devel < 1.35
+Obsoletes:     boost-utility-devel < 1.33.1-1
+Obsoletes:     boost-wave-devel < 1.35
+Obsoletes:     boost-xpressive-devel < 1.35
 
 %description devel
 Header files for the Boost C++ libraries.
@@ -111,7 +147,15 @@ Summary:   Static version of base Boost C++ libraries
 Summary(pl.UTF-8):     Statyczne wersje podstawowych bibliotek C++ Boost
 Group:         Development/Libraries
 Requires:      %{name}-devel = %{version}-%{release}
-Obsoletes:     boost-static < 1.33
+Obsoletes:     boost-date_time-static < 1.35
+Obsoletes:     boost-filesystem-static < 1.35
+Obsoletes:     boost-graph-static < 1.35
+Obsoletes:     boost-program_options-static < 1.35
+Obsoletes:     boost-regex-static < 1.35
+Obsoletes:     boost-signals-static < 1.35
+Obsoletes:     boost-test-static < 1.35
+Obsoletes:     boost-thread-static < 1.35
+Obsoletes:     boost-wave-static < 1.35
 
 %description static
 Static version of base Boost C++ libraries.
@@ -119,53 +163,142 @@ 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
-%pyrequires_eq 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
+Summary(pl.UTF-8):     Przydatne funkcje związane z czasem
+Group:         Libraries
+Obsoletes:     boost < 1.33
+
+%description chrono
+Useful time utilities.
+
+%description chrono -l pl.UTF-8
+Przydatne funkcje związane z czasem.
+
+%package context
+Summary:       Boost.Context - context switching library
+Summary(pl.UTF-8):     Boost.Context - biblioteka do zmiany kontekstu
+Group:         Libraries
+
+%description context
+Boost.Context - context switching library, providing a sort of
+cooperative multitasking on a single thread.
+
+%description context -l pl.UTF-8
+Boost.Context - biblioteka do zmiany kontekstu, zapewniająca pewną
+wielozadaniowość kooperatywnąw ramach pojedynczego wątku.
 
 %package date_time
 Summary:       Date-Time library
@@ -179,6 +312,21 @@ A set of date-time libraries.
 %description date_time -l pl.UTF-8
 Zbiór bibliotek daty-czasu.
 
+%package fiber
+Summary:       A framework for micro-/userland-threads (fibers) scheduled cooperatively
+Summary(pl.UTF-8):     Szkielet mikrowątków przestrzeni użytkownika (fibers), szeregowanych kooperacyjnie
+Group:         Libraries
+
+%description fiber
+boost::fiber provides a framework for micro-/userland-threads (fibers)
+scheduled cooperatively. The API contains classes and functions
+to manage and synchronize fibers similiar to boost.thread.
+
+%description fiber -l pl.UTF-8
+boost::fiber to szkielt mikrowątków przestrzeni użytkownika (fibers)
+szeregowanych kooperacyjnie. API zawiera klasy i funkcje służące do
+zarządzania i synchronizacji wątków podobne do boost.thread.
+
 %package filesystem
 Summary:       Portable paths, iteration over directories, and other useful filesystem operations
 Summary(pl.UTF-8):     Przenośne ścieżki, iteracje katalogów i inne użyteczne operacje na systemie plików
@@ -208,6 +356,43 @@ Przenośna biblioteka boost::graph dostarcza ułatwienia w operacjach na
 strukturach danych typu graf za pomocą algorytmów związanych z
 grafami.
 
+%package json
+Summary:       Boost.JSON - a portable C++ JSON library
+Summary(pl.UTF-8):     Boost.JSON - przenośna biblioteka C++ dla formatu JSON
+Group:         Development/Libraries
+
+%description json
+Boost.JSON is a portable C++ library which provides containers and
+algorithms that implement JavaScript Object Notation, or simply
+"JSON", a lightweight data-interchange format.
+
+%description json -l pl.UTF-8
+Boost.JSON to przenośna biblioteka C++, która dostarcza kontenery oraz
+algorytmy implementujące JavaScript Object Notation, lub po prostu
+"JSON", lekki format wymiany danych.
+
+%package locale
+Summary:       Provide localization and Unicode handling tools for C++
+Summary(pl.UTF-8):     Narzędzia do obsługi lokalizacji i Unikodu w C++
+Group:         Libraries
+
+%description locale
+Provide localization and Unicode handling tools for C++.
+
+%description locale -l pl.UTF-8
+Narzędzia do obsługi lokalizacji i Unikodu w C++.
+
+%package log
+Summary:       Provide logging tools for C++
+Summary(pl.UTF-8):     Narzędzia do logowania w C++
+Group:         Libraries
+
+%description log
+Provide logging tools for C++.
+
+%description log -l pl.UTF-8
+Narzędzia do logowania w C++.
+
 %package program_options
 Summary:       Access to program options, via conventional methods such as command line and config file
 Summary(pl.UTF-8):     Dostęp do opcji programu za pomocą typowych metod, jak linia poleceń i plik konfiguracyjny
@@ -232,21 +417,7 @@ Group:             Libraries
 Shared library for Boost C++ regular expressions.
 
 %description regex -l pl.UTF-8
-Biblioteka wyrażeń regularnych dla C++, biblioteki dzielone.
-
-%package signals
-Summary:       Signals & slots callback implementation
-Summary(pl.UTF-8):     Implementacja sygnałów i slotów
-Group:         Libraries
-Obsoletes:     boost < 1.33
-
-%description signals
-The boost::signals library is an implementation of a signals and slots
-system.
-
-%description signals -l pl.UTF-8
-Biblioteka boost::signals jest implementacją systemu sygnałów i
-slotów.
+Biblioteka współdzielona do obsługi wyrażeń regularnych w C++.
 
 %package system
 Summary:       Support for getting system specific error codes
@@ -290,6 +461,29 @@ Portable C++ threads library - shared library.
 %description thread -l pl.UTF-8
 Przenośna biblioteka wątków dla C++ - biblioteka dzielona.
 
+%package timer
+Summary:       Event timer, progress timer, and progress display classes
+Summary(pl.UTF-8):     Klasy do obsługi pomiarów czasu, postępu i wyświetlania postępu
+Group:         Libraries
+Obsoletes:     boost < 1.33
+
+%description timer
+Event timer, progress timer, and progress display classes.
+
+%description timer -l pl.UTF-8
+Klasy do obsługi pomiarów czasu, postępu i wyświetlania postępu.
+
+%package url
+Summary:       Library for manipulating Uniform Resource Identifiers and Locators
+Summary(pl.UTF-8):     Biblioteka do manipulacji Unfiform Resource Identifier i Locator
+Group:         Libraries
+
+%description url
+Library for manipulating Uniform Resource Identifiers and Locators.
+
+%description url -l pl.UTF-8
+Biblioteka do manipulacji Unfiform Resource Identifier i Locator.
+
 %package wave
 Summary:       Boost.Wave - a standard compliant C++ preprocessor library
 Summary(pl.UTF-8):     Boost.Wave - zgodna ze standardem biblioteka preprocesora C++
@@ -305,7 +499,7 @@ 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}
+BuildArch:     noarch
 
 %description doc
 Documentation for the Boost C++ Library.
@@ -314,46 +508,74 @@ Documentation for the Boost C++ Library.
 Dokumentacja dla biblioteki Boost C++.
 
 %prep
-%setup -q -n %{name}_%{_fver}
+%setup -q -n %{name}_%{fver}
 %patch0 -p1
 %patch1 -p1
 %patch2 -p1
+%patch3 -p1
 
-# - don't know how to pass it through (b)jam -s (no way?)
-#   due to oversophisticated build flags system.
-# - pass -fPIC due to <shared-linkable> removal.
-%{__sed} -i "s/<optimization>speed : -O3/<optimization>speed : ${CXXFLAGS:-%rpmcxxflags} -fPIC/" tools/build/v2/tools/gcc.jam
-
-# cleanup -g switch to avoid override debuginfocflags.
-%{__sed} -i 's/<debug-symbols>on : -g/<debug-symbols>on :/' tools/build/v2/tools/gcc.jam
-# link against shared expat library.
-%{__sed} -i 's:find-static:find-shared:' libs/graph/build/Jamfile.v2
-
-%ifarch alpha
-# -pthread gcc parameter doesn't add _REENTRANT to cpp macros on alpha (only)
-# don't know, is it gcc bug or intentional omission?
-# anyway, boost check of -D_REENTRANT in its headers, so it's needed here
-%{__perl} -pi -e 's/(CFLAGS.*-pthread)/$1 -D_REENTRANT/' tools/build/v1/gcc-tools.jam
-%endif
+%patch201 -p1
+%patch203 -p0
+%patch221 -p1
 
-cat << EOF > tools/build/v2/user-config.jam
-using gcc : %(%{__cxx} -dumpversion) : %{__cxx} ;
+%if "%{cc_version}" < "6.0"
+CPPSTD="-std=c++11"
+%else
+CPPSTD=
+%endif
+cat << EOF > tools/build/src/user-config.jam
+using gcc : %{cxx_version} : %{__cxx} : <cflags>"%{rpmcflags} -fPIC" <cxxflags>"%{rpmcxxflags} $CPPSTD -fPIC" <linkflags>"%{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} \
-bjam \
+./bootstrap.sh \
+       --prefix=%{_prefix} \
+       -without-libraries=python
+
+./b2 \
+       %{?__jobs:-j %{__jobs}} \
        -d2 --toolset=gcc \
-       variant=release debug-symbols=on inlining=on link=static,shared threading=multi
+%ifarch x32
+       abi=x32 \
+%endif
+       debug-symbols=on \
+       inlining=on \
+       link=static,shared \
+       threading=multi \
+       variant=release
+
+%if %{with python3}
+echo "using python : %{py3_ver} : %{py3_prefix} : %{py3_incdir} : : : : %{py3v_suffix} ;" >> project-config.jam
+./b2 \
+       %{?__jobs:-j %{__jobs}} \
+       --with-python python=%{py3_ver} \
+       -a -d2 --toolset=gcc \
+       debug-symbols=on \
+       inlining=on \
+       link=static,shared \
+       threading=multi \
+       variant=release
+%endif
+
+%if %{with python2}
+%{__sed} -i -e '/^using python : 3/d' project-config.jam
+echo "using python : %{py_ver} : %{py_prefix} : %{py_incdir} ;" >> project-config.jam
+./b2 \
+       %{?__jobs:-j %{__jobs}} \
+       --with-python python=%{py_ver} \
+       -a -d2 --toolset=gcc \
+       debug-symbols=on \
+       inlining=on \
+       link=static,shared \
+       threading=multi \
+       variant=release
+%endif
 
 %install
 rm -rf $RPM_BUILD_ROOT
@@ -361,28 +583,11 @@ install -d $RPM_BUILD_ROOT{%{_libdir},%{_includedir}}
 
 cp -rf boost $RPM_BUILD_ROOT%{_includedir}
 
-install bin.v2/libs/*/build/gcc-*/release/debug-symbols-on/inlining-on/link-static/threading-multi/lib*.a $RPM_BUILD_ROOT%{_libdir}
-install bin.v2/libs/*/build/gcc-*/release/debug-symbols-on/inlining-on/threading-multi/lib*.so.*.*.* $RPM_BUILD_ROOT%{_libdir}
-
-# create symlinks without -gccXX-mt-* things in names
-for f in $RPM_BUILD_ROOT%{_libdir}/*.so.*.*.*; do
-       [ -f "$f" ] || continue
-       f=$(basename "$f")
-       soname=$(basename "$f" | sed -e 's#-gcc..-mt-.*#.so#g')
-       [ ! -f "$RPM_BUILD_ROOT%{_libdir}/$soname" ] && ln -s "$f" "$RPM_BUILD_ROOT%{_libdir}/$soname"
-       rawsoname=$(basename "$f" | sed -e 's#\.so.*#.so#g')
-       [ ! -f "$RPM_BUILD_ROOT%{_libdir}/$rawsoname" ] && ln -s "$f" "$RPM_BUILD_ROOT%{_libdir}/$rawsoname"
-
-done
-for f in $RPM_BUILD_ROOT%{_libdir}/*.a; do
-       [ -f "$f" ] || continue
-       f=$(basename "$f")
-       soname=$(basename "$f" | sed -e 's#-gcc..-mt-.*#.a#g')
-       [ ! -f "$RPM_BUILD_ROOT%{_libdir}/$soname" ] && ln -s "$f" "$RPM_BUILD_ROOT%{_libdir}/$soname"
-       rawsoname=$(basename "$f" | sed -e 's#\.so.*#.so#g')
-       [ ! -f "$RPM_BUILD_ROOT%{_libdir}/$rawsoname" ] && ln -s "$f" "$RPM_BUILD_ROOT%{_libdir}/$rawsoname"
-done
+install -p stage/lib/lib*.a $RPM_BUILD_ROOT%{_libdir}
+install -p stage/lib/lib*.so.*.*.* $RPM_BUILD_ROOT%{_libdir}
+cp -a stage/lib/lib*.so $RPM_BUILD_ROOT%{_libdir}
 
+%if %{with doc}
 # documentation
 install -d $RPM_BUILD_ROOT%{_docdir}/boost-%{version}
 
@@ -429,6 +634,7 @@ EOT`; do
        fi
 done
 }; installdocs
+%endif
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -436,141 +642,273 @@ rm -rf $RPM_BUILD_ROOT
 %post  -p /sbin/ldconfig
 %postun        -p /sbin/ldconfig
 
+%post  chrono -p /sbin/ldconfig
+%postun        chrono -p /sbin/ldconfig
+
+%post  context -p /sbin/ldconfig
+%postun        context -p /sbin/ldconfig
+
 %post  date_time -p /sbin/ldconfig
 %postun        date_time -p /sbin/ldconfig
 
+%post  fiber -p /sbin/ldconfig
+%postun        fiber -p /sbin/ldconfig
+
 %post  filesystem -p /sbin/ldconfig
 %postun        filesystem -p /sbin/ldconfig
 
 %post  graph -p /sbin/ldconfig
 %postun        graph -p /sbin/ldconfig
 
+%post  json -p /sbin/ldconfig
+%postun        json -p /sbin/ldconfig
+
+%post  locale -p /sbin/ldconfig
+%postun        locale -p /sbin/ldconfig
+
 %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
 
 %post  regex -p /sbin/ldconfig
 %postun regex -p /sbin/ldconfig
 
-%post  signals -p /sbin/ldconfig
-%postun        signals -p /sbin/ldconfig
-
 %post  system -p /sbin/ldconfig
 %postun        system -p /sbin/ldconfig
 
 %post  test -p /sbin/ldconfig
 %postun        test -p /sbin/ldconfig
 
-%post  wave -p /sbin/ldconfig
-%postun        wave -p /sbin/ldconfig
-
 %post  thread -p /sbin/ldconfig
 %postun        thread -p /sbin/ldconfig
 
+%post  timer -p /sbin/ldconfig
+%postun        timer -p /sbin/ldconfig
+
+%post  url -p /sbin/ldconfig
+%postun        url -p /sbin/ldconfig
+
+%post  wave -p /sbin/ldconfig
+%postun        wave -p /sbin/ldconfig
+
 %files
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libboost_iostreams*.so.*.*.*
+%attr(755,root,root) %{_libdir}/libboost_atomic.so.*.*.*
+%attr(755,root,root) %{_libdir}/libboost_container.so.*.*.*
+%attr(755,root,root) %{_libdir}/libboost_contract.so.*.*.*
+%attr(755,root,root) %{_libdir}/libboost_coroutine.so.*.*.*
+%attr(755,root,root) %{_libdir}/libboost_iostreams.so.*.*.*
 %attr(755,root,root) %{_libdir}/libboost_math_*.so.*.*.*
-%attr(755,root,root) %{_libdir}/libboost_serialization*.so.*.*.*
-%attr(755,root,root) %{_libdir}/libboost_wserialization*.so.*.*.*
+%attr(755,root,root) %{_libdir}/libboost_nowide.so.*.*.*
+%attr(755,root,root) %{_libdir}/libboost_random.so.*.*.*
+%attr(755,root,root) %{_libdir}/libboost_serialization.so.*.*.*
+%attr(755,root,root) %{_libdir}/libboost_stacktrace_*.so.*.*.*
+%attr(755,root,root) %{_libdir}/libboost_type_erasure.so.*.*.*
+%attr(755,root,root) %{_libdir}/libboost_wserialization.so.*.*.*
 
 %files devel
 %defattr(644,root,root,755)
-%{_includedir}/boost
-%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
-%attr(755,root,root) %{_libdir}/libboost_iostreams*.so
+%attr(755,root,root) %{_libdir}/libboost_atomic.so
+%attr(755,root,root) %{_libdir}/libboost_chrono.so
+%attr(755,root,root) %{_libdir}/libboost_container.so
+%attr(755,root,root) %{_libdir}/libboost_context.so
+%attr(755,root,root) %{_libdir}/libboost_contract.so
+%attr(755,root,root) %{_libdir}/libboost_coroutine.so
+%attr(755,root,root) %{_libdir}/libboost_date_time.so
+%attr(755,root,root) %{_libdir}/libboost_fiber.so
+%attr(755,root,root) %{_libdir}/libboost_filesystem.so
+%attr(755,root,root) %{_libdir}/libboost_graph.so
+%attr(755,root,root) %{_libdir}/libboost_iostreams.so
+%attr(755,root,root) %{_libdir}/libboost_json.so
+%attr(755,root,root) %{_libdir}/libboost_locale.so
+%attr(755,root,root) %{_libdir}/libboost_log.so
+%attr(755,root,root) %{_libdir}/libboost_log_setup.so
 %attr(755,root,root) %{_libdir}/libboost_math_*.so
-%attr(755,root,root) %{_libdir}/libboost_prg_exec_monitor*.so
-%attr(755,root,root) %{_libdir}/libboost_program_options*.so
-%attr(755,root,root) %{_libdir}/libboost_regex*.so
-%attr(755,root,root) %{_libdir}/libboost_serialization*.so
-%attr(755,root,root) %{_libdir}/libboost_signals*.so
-%attr(755,root,root) %{_libdir}/libboost_system*.so
-%attr(755,root,root) %{_libdir}/libboost_thread*.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
+%attr(755,root,root) %{_libdir}/libboost_nowide.so
+%attr(755,root,root) %{_libdir}/libboost_prg_exec_monitor.so
+%attr(755,root,root) %{_libdir}/libboost_program_options.so
+%attr(755,root,root) %{_libdir}/libboost_regex.so
+%attr(755,root,root) %{_libdir}/libboost_random.so
+%attr(755,root,root) %{_libdir}/libboost_serialization.so
+%attr(755,root,root) %{_libdir}/libboost_stacktrace_*.so
+%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_url.so
+%attr(755,root,root) %{_libdir}/libboost_wave.so
+%attr(755,root,root) %{_libdir}/libboost_wserialization.so
+%{_includedir}/boost
+%exclude %{_includedir}/boost/python
+%exclude %{_includedir}/boost/python.hpp
 
 %files static
 %defattr(644,root,root,755)
-%{_libdir}/libboost_date_time*.a
-%{_libdir}/libboost_filesystem*.a
-%{_libdir}/libboost_grap*.a
-%{_libdir}/libboost_iostreams*.a
+%{_libdir}/libboost_atomic.a
+%{_libdir}/libboost_chrono.a
+%{_libdir}/libboost_container.a
+%{_libdir}/libboost_context.a
+%{_libdir}/libboost_contract.a
+%{_libdir}/libboost_coroutine.a
+%{_libdir}/libboost_date_time.a
+%{_libdir}/libboost_exception.a
+%{_libdir}/libboost_fiber.a
+%{_libdir}/libboost_filesystem.a
+%{_libdir}/libboost_graph.a
+%{_libdir}/libboost_iostreams.a
+%{_libdir}/libboost_json.a
+%{_libdir}/libboost_locale.a
+%{_libdir}/libboost_log.a
+%{_libdir}/libboost_log_setup.a
 %{_libdir}/libboost_math_*.a
-%{_libdir}/libboost_prg_exec_monitor*.a
-%{_libdir}/libboost_program_options*.a
-%{_libdir}/libboost_regex*.a
-%{_libdir}/libboost_serialization*.a
-%{_libdir}/libboost_signals*.a
-%{_libdir}/libboost_system*.a
-%{_libdir}/libboost_test_exec_monitor*.a
-%{_libdir}/libboost_thread*.a
-%{_libdir}/libboost_unit_test_framework*.a
-%{_libdir}/libboost_wave*.a
-%{_libdir}/libboost_wserialization*.a
-
-%if %{with python}
+%{_libdir}/libboost_nowide.a
+%{_libdir}/libboost_prg_exec_monitor.a
+%{_libdir}/libboost_program_options.a
+%{_libdir}/libboost_random.a
+%{_libdir}/libboost_regex.a
+%{_libdir}/libboost_serialization.a
+%{_libdir}/libboost_stacktrace_*.a
+%{_libdir}/libboost_system.a
+%{_libdir}/libboost_test_exec_monitor.a
+%{_libdir}/libboost_timer.a
+%{_libdir}/libboost_url.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 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.*.*.*
+%if %{with numpy}
+%attr(755,root,root) %{_libdir}/libboost_numpy%{py2v}.so.*.*.*
+%endif
+%attr(755,root,root) %{_libdir}/libboost_python%{py2v}.so.*.*.*
 
 %files python-devel
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libboost_python*.so
-%{_includedir}/boost/python
-%{_includedir}/boost/python.hpp
+%if %{with numpy}
+%attr(755,root,root) %{_libdir}/libboost_numpy%{py2v}.so
+%endif
+%attr(755,root,root) %{_libdir}/libboost_python%{py2v}.so
 
 %files python-static
 %defattr(644,root,root,755)
-%{_libdir}/libboost_python*.a
+%if %{with numpy}
+%{_libdir}/libboost_numpy%{py2v}.a
+%endif
+%{_libdir}/libboost_python%{py2v}.a
 %endif
 
+%if %{with python3}
+%files python3
+%defattr(644,root,root,755)
+%if %{with numpy}
+%attr(755,root,root) %{_libdir}/libboost_numpy%{py3v}.so.*.*.*
+%endif
+%attr(755,root,root) %{_libdir}/libboost_python%{py3v}.so.*.*.*
+
+%files python3-devel
+%defattr(644,root,root,755)
+%if %{with numpy}
+%attr(755,root,root) %{_libdir}/libboost_numpy%{py3v}.so
+%endif
+%attr(755,root,root) %{_libdir}/libboost_python%{py3v}.so
+
+%files python3-static
+%defattr(644,root,root,755)
+%if %{with numpy}
+%{_libdir}/libboost_numpy%{py3v}.a
+%endif
+%{_libdir}/libboost_python%{py3v}.a
+%endif
+
+%files chrono
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libboost_chrono.so.*.*.*
+
+%files context
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libboost_context.so.*.*.*
+
 %files date_time
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libboost_date_time*.so.*.*.*
+%attr(755,root,root) %{_libdir}/libboost_date_time.so.*.*.*
+
+%files fiber
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libboost_fiber.so.*.*.*
 
 %files filesystem
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libboost_filesystem*.so.*.*.*
+%attr(755,root,root) %{_libdir}/libboost_filesystem.so.*.*.*
 
 %files graph
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libboost_graph*.so.*.*.*
+%attr(755,root,root) %{_libdir}/libboost_graph.so.*.*.*
 
-%files program_options
+%files json
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libboost_program_options*.so.*.*.*
+%attr(755,root,root) %{_libdir}/libboost_json.so.*.*.*
 
-%files regex
+%files locale
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libboost_locale.so.*.*.*
+
+%files log
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libboost_regex*.so.*.*.*
+%attr(755,root,root) %{_libdir}/libboost_log.so.*.*.*
+%attr(755,root,root) %{_libdir}/libboost_log_setup.so.*.*.*
 
-%files signals
+%files program_options
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libboost_signals*.so.*.*.*
+%attr(755,root,root) %{_libdir}/libboost_program_options.so.*.*.*
+
+%files regex
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libboost_regex.so.*.*.*
 
 %files system
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libboost_system*.so.*.*.*
+%attr(755,root,root) %{_libdir}/libboost_system.so.*.*.*
 
 %files test
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libboost_prg_exec_monitor*.so.*.*.*
-%attr(755,root,root) %{_libdir}/libboost_unit_test_framework*.so.*.*.*
+%attr(755,root,root) %{_libdir}/libboost_prg_exec_monitor.so.*.*.*
+%attr(755,root,root) %{_libdir}/libboost_unit_test_framework.so.*.*.*
 
 %files thread
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libboost_thread*.so.*.*.*
+%attr(755,root,root) %{_libdir}/libboost_thread.so.*.*.*
+
+%files timer
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libboost_timer.so.*.*.*
+
+%files url
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libboost_url.so.*.*.*
 
 %files wave
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libboost_wave*.so.*.*.*
+%attr(755,root,root) %{_libdir}/libboost_wave.so.*.*.*
 
+%if %{with doc}
 %files doc
 %defattr(644,root,root,755)
 %{_docdir}/%{name}-%{version}
+%endif
This page took 1.219277 seconds and 4 git commands to generate.