From ed9b1c834bc243b88a44b6ffa832a5b10d6335b88a05c92556d24a1e713cae16 Mon Sep 17 00:00:00 2001 From: Adam Majer Date: Mon, 20 Nov 2017 16:05:29 +0000 Subject: [PATCH] Accepting request 543915 from home:adamm:branches:devel:libraries:c_c++ - Use multibuild setup - build no-dependency libraries in the base package and build the rest of the compiled libraries in the main variant. This should speed up bootstrapping. - build Python 2 conditionally - boost-devel not built by default anymore. - libboost_headers-devel now provides boost-devel for legacy dependencies. If you need compiled boost libraries depend on the current compiled devel subpackage. - run %fdupes only on the header files and documentation - drop build dependencies on gcc-fortran, chrpath. OBS-URL: https://build.opensuse.org/request/show/543915 OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/boost?expand=0&rev=203 --- _multibuild | 3 + baselibs.conf | 2 - boost.changes | 18 ++ boost.spec | 504 ++++++++++++++++++++++++++------------------ existing_extra_docs | 1 - 5 files changed, 315 insertions(+), 213 deletions(-) create mode 100644 _multibuild diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..37cda36 --- /dev/null +++ b/_multibuild @@ -0,0 +1,3 @@ + + base + diff --git a/baselibs.conf b/baselibs.conf index f14fc51..b0376ac 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -1,5 +1,3 @@ -boost_1_65-devel - requires -boost- libboost_atomic1_65_1 libboost_container1_65_1 libboost_context1_65_1 diff --git a/boost.changes b/boost.changes index fdf603e..e963513 100644 --- a/boost.changes +++ b/boost.changes @@ -1,3 +1,21 @@ +------------------------------------------------------------------- +Tue Oct 24 14:24:06 UTC 2017 - jmatejek@suse.com + +- build Python 2 conditionally + +------------------------------------------------------------------- +Tue Oct 10 13:49:10 UTC 2017 - adam.majer@suse.de + +- Use multibuild setup - build no-dependency libraries in the + base package and build the rest of the compiled libraries in + the main variant. This should speed up bootstrapping. +- boost-devel not built by default anymore. +- libboost_headers-devel now provides boost-devel for legacy + dependencies. If you need compiled boost libraries depend on + the current compiled devel subpackage. +- run %fdupes only on the header files and documentation +- drop build dependencies on gcc-fortran, chrpath. + ------------------------------------------------------------------- Mon Oct 9 08:13:38 UTC 2017 - nmoreychaisemartin@suse.com diff --git a/boost.spec b/boost.spec index 0cd4ce9..6f2b952 100644 --- a/boost.spec +++ b/boost.spec @@ -24,8 +24,15 @@ %bcond_with build_docs %bcond_without package_pdf %bcond_without build_quickbook +%bcond_with boost_devel %define my_docdir %{_docdir}/boost-%{version} +%if "@BUILD_FLAVOR@" == "base" +%define build_base 1 +%else +%define build_base 0 +%endif + # Build with OpenMPI %if 0%{?suse_version} >= 1330 # OpenMPI >= 2 is not available on ppc64be @@ -45,10 +52,11 @@ %bcond_without build_mpi %endif -%if 0%{?suse_version} < 1200 -%bcond_with python3 -%else %bcond_without python3 +%if 0%{?have_python2} +%bcond_without python2 +%else +%bcond_with python2 %endif # Python NumPy library is only available on Leap 42.1 OpenSUSE onward @@ -73,12 +81,6 @@ %bcond_with boost_fiber %endif -#%ifarch hppa -#%bcond_with long_double -#%else -#%bcond_without long_double -#%endif - Name: boost %define package_name boost_1_65 Version: 1.65.1 @@ -114,34 +116,30 @@ Patch17: python_mpi.patch Patch18: dynamic_linking.patch Patch20: python_library_name.patch Patch21: python_numpy_retfunc.patch -BuildRequires: chrpath -BuildRequires: dos2unix BuildRequires: fdupes +BuildRequires: libbz2-devel +BuildRequires: libexpat-devel +BuildRequires: libicu-devel +BuildRequires: zlib-devel %if %{with boost_fiber} BuildRequires: gcc-c++ > 5 %else BuildRequires: gcc-c++ %endif -%if 0%{?suse_version} <= 1320 -# boost requires quadmath.h -BuildRequires: gcc-fortran -%endif -BuildRequires: libbz2-devel -BuildRequires: libexpat-devel -BuildRequires: libicu-devel -BuildRequires: python-devel +%if ! %build_base +BuildRequires: dos2unix +%if %{with python2} +BuildRequires: python2-devel %if %{with python_numpy} -BuildRequires: python-numpy-devel -%endif +BuildRequires: python2-numpy-devel +%endif # numpy2 +%endif # python2 %if %{with python3} BuildRequires: python3-devel %if %{with python_numpy} BuildRequires: python3-numpy-devel -%endif # numpy +%endif # numpy3 %endif # python3 -#!BuildIgnore: python -BuildRequires: zlib-devel -BuildRoot: %{_tmppath}/%{name}-%{version}-build %if %{with build_mpi} BuildRequires: %{mpi_implem}-devel %endif @@ -152,6 +150,8 @@ BuildRequires: doxygen BuildRequires: libxslt-tools BuildRequires: texlive-latex %endif +%endif # ! build_base +BuildRoot: %{_tmppath}/%{name}-%{version}-build %description Boost provides free peer-reviewed portable C++ source libraries. The @@ -166,11 +166,34 @@ 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 package. For development -using Boost, you also need the boost-devel package. For documentation, -see the boost-doc package. +# %%if %%build_base +%package -n libboost_headers%{lib_appendix}-devel +Summary: Development headers for Boost +Group: Development/Libraries/C and C++ +Requires: boost-license%{lib_appendix} +Requires: libstdc++-devel +Provides: libboost_headers-devel = %{version} +%if %{without boost_devel} +Provides: boost-devel = %{version} +%endif +Conflicts: otherproviders(libboost_headers-devel) +Conflicts: boost-devel < 1.63 +%description -n libboost_headers%{lib_appendix}-devel +A collection of header-only libraries for Boost. + +%package -n boost-license%{lib_appendix} +Summary: Boost License +Group: Development/Libraries/C and C++ +Provides: boost-license = %{version}-%{release} +%if 0%{?suse_version} >= 1120 +BuildArch: noarch +%endif + +%description -n boost-license%{lib_appendix} +This package contains the license boost is provided under. + +%if %{with boost_devel} %package -n %{package_name}-devel Summary: Development package for Boost C++ Group: Development/Libraries/C and C++ @@ -196,7 +219,9 @@ Requires: libboost_graph_parallel%{lib_appendix}-devel Requires: libboost_mpi%{lib_appendix}-devel %endif Requires: libboost_program_options%{lib_appendix}-devel +%if %{with python2} Requires: libboost_python-py2_7-%{lib_appendix}-devel +%endif %if %{with python3} Requires: libboost_python-py3-%{lib_appendix}-devel %endif @@ -218,17 +243,7 @@ Conflicts: otherproviders(boost-devel) This package contains all that is needed to develop/compile applications that use the Boost C++ libraries. For documentation see the documentation packages (html, man or pdf). - -%package -n libboost_headers%{lib_appendix}-devel -Summary: Development headers for Boost -Group: Development/Libraries/C and C++ -Requires: libstdc++-devel -Provides: libboost_headers-devel = %{version} -Conflicts: otherproviders(libboost_headers-devel) -Conflicts: boost-devel < 1.63 - -%description -n libboost_headers%{lib_appendix}-devel -A collection of header-only libraries for Boost. +%endif # with boost_devel %package -n %{package_name}-jam Summary: A Boost Make Replacement @@ -241,17 +256,6 @@ Boost Jam is a build tool based on FTJam, which in turn is based on Perforce Jam. It contains significant improvements made to facilitate its use in the Boost Build System. -%package -n boost-license%{lib_appendix} -Summary: Boost License -Group: Development/Libraries/C and C++ -Provides: boost-license = %{version}-%{release} -%if 0%{?suse_version} >= 1120 -BuildArch: noarch -%endif - -%description -n boost-license%{lib_appendix} -This package contains the license boost is provided under. - %package -n %{package_name}-doc-html Summary: HTML documentation for the Boost C++ Libraries Group: Development/Libraries/C and C++ @@ -566,7 +570,9 @@ Summary: Development headers for Boost.MPI library Group: Development/Libraries/C and C++ Requires: libboost_graph%{lib_appendix}-devel PreReq: libboost_headers%{lib_appendix}-devel = %{version} +%if %{with python2} Requires: libboost_python-py2_7-%{lib_appendix}-devel +%endif %if %{with python3} Requires: libboost_python-py3-%{lib_appendix}-devel %endif @@ -601,6 +607,7 @@ Conflicts: boost-devel < 1.63 %description -n libboost_graph_parallel%{lib_appendix}-devel Development headers for Boost.Graph parallel boost library. +%if %{with python2} %package -n libboost_mpi_python-py2_7-%{lib_appendix} Summary: Boost.MPI Python serialization library Group: System/Libraries @@ -623,15 +630,19 @@ Conflicts: boost-devel < 1.63 This package contains the Boost.MPI development library for Python 2.7 serialization interface. -%package -n python-boost_parallel_mpi%{lib_appendix} + +%package -n python2-boost_parallel_mpi%{lib_appendix} Summary: Python 2.7 bindings for Boost.Parallel.MPI library Group: Development/Languages/Python Provides: python-boost_parallel_mpi = %{version} +Provides: python-boost_parallel_mpi%{lib_appendix} = %{version} Conflicts: otherproviders(python-boost_parallel_mpi) -%description -n python-boost_parallel_mpi%{lib_appendix} +%description -n python2-boost_parallel_mpi%{lib_appendix} This package contains the Boost.Parallel.MPI bindings for Python 2.7 +%endif # python2 + %if %{with python3} %package -n libboost_mpi_python-py3-%{lib_appendix} @@ -712,6 +723,7 @@ Conflicts: boost-devel < 1.63 This package contains development headers for Boost.ProgramOptions library. +%if %{with python2} %package -n libboost_python-py2_7-%{lib_appendix} Summary: Boost.Python runtime library Group: System/Libraries @@ -756,7 +768,8 @@ Conflicts: boost-devel < 1.63 %description -n libboost_numpy-py2_7-%{lib_appendix}-devel Development headers for Boost::Python::NumPy library for the default version of python. -%endif +%endif # with numpy +%endif # with python2 %if %{with python3} %package -n libboost_python-py3-%{lib_appendix} @@ -1092,12 +1105,32 @@ find -type f ! \( -name \*.sh -o -name \*.py -o -name \*.pl \) -exec chmod -x {} %patch20 -p1 %patch21 -p1 -#stupid build machinery copies .orig files -# find . -name \*.orig -exec rm {} + - %build find . -type f -exec chmod u+w {} + +# General case +cat << EOF >user-config.jam +import os ; +local RPM_OPT_FLAGS = [ os.environ RPM_OPT_FLAGS ] ; +using gcc : : : \$(RPM_OPT_FLAGS) ; +project user-config ; +EOF + +%if %build_base +cat << \EOF >.build +export LIBRARIES_FLAGS="--without-mpi --without-python" +%if ! %{with build_context} +# coroutine depends on context +LIBRARIES_FLAGS+=" --without-context --without-coroutine" +%endif + +%if ! %{with boost_fiber} +LIBRARIES_FLAGS+=" --without-fiber" +%endif +EOF + +%else # ! build_base + # Since boost build system is broken and incable of handling multiple python versions, # we need to build boost piece by piece. First time to build all the non-python bits, # then we build MPI and/or PYTHON modules for two python versions we need. @@ -1108,21 +1141,16 @@ export PY_LIBRARIES_FLAGS="--with-python" PY_LIBRARIES_FLAGS+=" --with-mpi" %endif -export LIBRARIES_FLAGS="--without-python" +# Dummy entry to make sure we don't build everything +export LIBRARIES_FLAGS="--with-system" -%if ! %{with build_context} -# coroutine depends on context -LIBRARIES_FLAGS+=" --without-context --without-coroutine" +# Dummy entry replaced with real libraries, if we build something +%if %{with build_mpi} +LIBRARIES_FLAGS=" --with-graph_parallel" %endif -%if ! %{with boost_fiber} -LIBRARIES_FLAGS+=" --without-fiber" -%endif EOF -# Read shared build instructions -. ./.build - %if %{with build_mpi} # Set PATH, MANPATH and LD_LIBRARY_PATH for mpi . %{_libdir}/mpi/gcc/%{mpi_implem}/bin/mpivars.sh @@ -1135,19 +1163,22 @@ EOF # General case cat << EOF >user-config.jam -import os ; -local RPM_OPT_FLAGS = [ os.environ RPM_OPT_FLAGS ] ; -using gcc : : : \$(RPM_OPT_FLAGS) ; -project user-config ; alias boost_python_alias : : /boost/python//boost_python ; EOF +%endif # ! build_base -# Build boost base PYTHON and MPI, installed in python staging +# bootstrap b2 ./bootstrap.sh \ --prefix=%{_prefix} --exec-prefix=%{_bindir} \ --libdir=%{_libdir} --includedir=%{_includedir} \ --with-toolset=gcc +# Read shared build instructions +. ./.build + +%if ! %build_base + +# Build boost base PYTHON and MPI, installed in python staging cp user-config.jam user-config-py.jam cat << EOF >> user-config-py.jam using python @@ -1156,19 +1187,21 @@ using python : %{_includedir}/python%{py_ver} : %{_libdir}/python%{py_ver} : - : + : ; %if %{with build_mpi} using mpi ; %endif EOF +%if %{with python2} ./b2 -d+2 -q --user-config=./user-config-py.jam \ --build-type=minimal --build-dir=./python-build \ --python-buildid=py2.7 \ --stagedir=./python-stage %{?_smp_mflags} \ $PY_LIBRARIES_FLAGS \ threading=multi link=shared runtime-link=shared stage +%endif # with python2 # Build boost python3 and MPI, installed in python3 staging %if %{with python3} @@ -1218,22 +1251,31 @@ EOF echo 'using mpi ;' >> ./user-config.jam %endif +%endif # ! build_base + +# This is run for both mini and non-mini build ./b2 -d+2 -q --user-config=./user-config.jam \ --build-type=minimal --build-dir=./build \ --stagedir=./stage %{?_smp_mflags} \ $LIBRARIES_FLAGS \ threading=multi link=shared runtime-link=shared stage +%if ! %build_base + # Verify that all symbols built in different stages are interchangeable. # Can't be too careful! cp %{SOURCE101} . chmod +x symbol_diff.sh %if %{with python3} -./symbol_diff.sh python3-stage/lib/libboost_mpi.so python-stage/lib/libboost_mpi.so -./symbol_diff.sh python3-stage/lib/libboost_serialization.so python-stage/lib/libboost_serialization.so +./symbol_diff.sh python3-stage/lib/libboost_mpi.so stage/lib/libboost_mpi.so +./symbol_diff.sh python3-stage/lib/libboost_serialization.so stage/lib/libboost_serialization.so %endif +%if %{with python2} ./symbol_diff.sh python-stage/lib/libboost_serialization.so stage/lib/libboost_serialization.so ./symbol_diff.sh python-stage/lib/libboost_mpi.so stage/lib/libboost_mpi.so +%endif +#./symbol_diff.sh python-stage/lib/libboost_serialization.so stage/lib/libboost_serialization.so +#./symbol_diff.sh python-stage/lib/libboost_mpi.so stage/lib/libboost_mpi.so # Build documentation %if %{with build_quickbook} @@ -1247,11 +1289,15 @@ cd doc ./b2 --user-config=../user-config.jam --v2 man %{?_smp_mflags} %endif +%endif # ! build_base + %install # Read shared build instructions . ./.build +%if ! %build_base + %if %{with build_mpi} # Set PATH, MANPATH and LD_LIBRARY_PATH for mpi . %{_libdir}/mpi/gcc/%{mpi_implem}/bin/mpivars.sh @@ -1268,6 +1314,7 @@ cd doc threading=multi link=shared runtime-link=shared install %endif +%if %{with python2} ./b2 -d+2 -q --user-config=./user-config-py.jam \ --build-type=minimal --build-dir=./python-build \ --python-buildid=py2.7 \ @@ -1276,7 +1323,11 @@ cd doc --stagedir=./python-stage %{?_smp_mflags} \ $PY_LIBRARIES_FLAGS \ threading=multi link=shared runtime-link=shared install +%endif +%endif # ! build_base + +# Generic install ./b2 -d+2 -q \ --build-type=minimal --build-dir=./build --stagedir=./stage \ --prefix=%{buildroot}%{_prefix} --exec-prefix=%{buildroot}%{_bindir} \ @@ -1285,36 +1336,29 @@ cd doc $LIBRARIES_FLAGS \ threading=multi link=shared runtime-link=shared install -mkdir -p %{buildroot}%{_bindir} -install -m 755 bjam %{buildroot}%{_bindir} -ln -s bjam %{buildroot}%{_bindir}/jam - -# Make sure nothing depends on non-id'ed python binaries! -rm %{buildroot}%{_libdir}/libboost_mpi_python.so -rm %{buildroot}%{_libdir}/libboost_mpi_python.so.%{version} -rm %{buildroot}%{_libdir}/libboost_python.so -rm %{buildroot}%{_libdir}/libboost_python.so.%{version} +# No python dependencies in the main tree ! $(ldd %{buildroot}%{_libdir}/*.so* | grep python\\.) +%if ! %build_base +%if %{with python2} ln -s libboost_mpi_python-py2_7.so %{buildroot}%{_libdir}/libboost_mpi_python.so ln -s libboost_python-py2_7.so %{buildroot}%{_libdir}/libboost_python.so +%endif %if %{with python3} -#rm %{buildroot}%{_libdir}/libboost_python3-py3.so -#rm %{buildroot}%{_libdir}/libboost_python3-py3.so.%{version} - ! $(ldd %{buildroot}%{_libdir}/*.so* | grep python3-\\.) - ln -s libboost_python-py3.so %{buildroot}%{_libdir}/libboost_python3.so %endif # Move Python libraries over to proper places -mkdir -p %{buildroot}%{py_sitedir}/boost/parallel/mpi/ -mv %{buildroot}/%{_libdir}/mpi.so %{buildroot}%{py_sitedir}/boost/parallel/mpi/ -install -m 0644 libs/mpi/build/__init__.py %{buildroot}%{py_sitedir}/boost/parallel/mpi/ -install -m 0644 %{SOURCE11} %{buildroot}%{py_sitedir}/boost/parallel -install -m 0644 %{SOURCE11} %{buildroot}%{py_sitedir}/boost +%if %{with python2} +mkdir -p %{buildroot}%{python2_sitearch}/boost/parallel/mpi/ +mv %{buildroot}/%{_libdir}/mpi.so %{buildroot}%{python2_sitearch}/boost/parallel/mpi/ +install -m 0644 libs/mpi/build/__init__.py %{buildroot}%{python2_sitearch}/boost/parallel/mpi/ +install -m 0644 %{SOURCE11} %{buildroot}%{python2_sitearch}/boost/parallel +install -m 0644 %{SOURCE11} %{buildroot}%{python2_sitearch}/boost +%endif %if %{with python3} mkdir -p %{buildroot}%{python3_sitearch}/boost/parallel/mpi/ @@ -1324,6 +1368,32 @@ install -m 0644 %{SOURCE11} %{buildroot}%{python3_sitearch}/boost/parallel install -m 0644 %{SOURCE11} %{buildroot}%{python3_sitearch}/boost %endif +#install doc files +mkdir -p %{buildroot}%{my_docdir} +%if %{with boost_devel} +install -m 0644 %{SOURCE102} %{buildroot}%{my_docdir} +%endif +find libs/ -name \*.htm\* -o -name \*.css -o -name \*.js | xargs dos2unix +find . -name \*.htm\* -o -name \*.gif -o -name \*.css -o -name \*.jpg -o -name \*.png -o -name \*.ico | \ + tar --files-from=%{SOURCE4} -cf - --files-from=- | tar -C %{buildroot}%{my_docdir} -xf - +rm -rf %{buildroot}%{my_docdir}/boost +#ln -s %%{_includedir}/boost %%{buildroot}%%{my_docdir} +#ln -s ../LICENSE_1_0.txt %%{buildroot}%%{my_docdir}/libs +find %{buildroot}%{my_docdir} -name \*.py -exec chmod -x {} + +chmod -x ../boost_%{short_version}_pdf/*.pdf + +%if %{with build_quickbook} +mkdir -p %{buildroot}%{_bindir} +install -m 0755 dist/bin/quickbook %{buildroot}%{_bindir}/quickbook +%endif + +%endif # ! build_base + +%if %build_base +mkdir -p %{buildroot}%{_bindir} +install -m 755 bjam %{buildroot}%{_bindir} +ln -s bjam %{buildroot}%{_bindir}/jam + # Remove exception library, but only if the symbols are not # actually used. For now, the only symbol that is linked is # should never be used as it's only available on Windows. So, @@ -1335,25 +1405,6 @@ objdump -Ctj .text -Ctj .text %{buildroot}%{_libdir}/libboost_exception.so | \ rm %{buildroot}%{_libdir}/libboost_exception.so rm %{buildroot}%{_libdir}/libboost_exception.so.%{version} -#install doc files -mkdir -p %{buildroot}%{my_docdir} -install -m 0644 %{SOURCE102} %{buildroot}%{my_docdir} -find libs/ -name \*.htm\* -o -name \*.css -o -name \*.js | xargs dos2unix -find . -name \*.htm\* -o -name \*.gif -o -name \*.css -o -name \*.jpg -o -name \*.png -o -name \*.ico | \ - tar --files-from=%{SOURCE4} -cf - --files-from=- | tar -C %{buildroot}%{my_docdir} -xf - -rm -rf %{buildroot}%{my_docdir}/boost -ln -s %{_includedir}/boost %{buildroot}%{my_docdir} -ln -s ../LICENSE_1_0.txt %{buildroot}%{my_docdir}/libs -find %{buildroot}%{my_docdir} -name \*.py -exec chmod -x {} + -chmod -x ../boost_%{short_version}_pdf/*.pdf -#symlink dupes -%fdupes %{buildroot} - -%if %{with build_quickbook} -mkdir -p %{buildroot}%{_bindir} -install -m 0755 dist/bin/quickbook %{buildroot}%{_bindir}/quickbook -%endif - # Remove cruft # FIXME: these shouldn't be built in the first place rm %{buildroot}%{_libdir}/libboost_chrono.a @@ -1361,21 +1412,18 @@ rm %{buildroot}%{_libdir}/libboost_system.a rm %{buildroot}%{_libdir}/libboost_timer.a rm %{buildroot}%{_libdir}/libboost_unit_test_framework.a -%if ! %{with boost_fiber} -rm -r %{buildroot}%{_includedir}/boost/fiber -%endif - -%if ! %{with build_mpi} -rm -r %{buildroot}%{_includedir}/boost/mpi -rm %{buildroot}%{_includedir}/boost/mpi.hpp -%endif - -%if ! %{with build_context} -rm -r %{buildroot}%{_includedir}/boost/coroutine -rm -r %{buildroot}%{_includedir}/boost/coroutine2 -rm -r %{buildroot}%{_includedir}/boost/context +%fdupes %{buildroot}%{_includedir}/boost +mkdir -p %{buildroot}%{my_docdir} +cp LICENSE_1_0.txt %{buildroot}%{my_docdir} +%else # ! build_base +rm -r %{buildroot}%{_includedir}/boost +rm -f %{buildroot}%{_libdir}/libboost_serialization* +rm -f %{buildroot}%{_libdir}/libboost_system* +rmdir --ignore-fail-on-non-empty %{buildroot}%{_libdir} +%fdupes %{buildroot}%{my_docdir} %endif +%if %build_base %post -n libboost_atomic%{lib_appendix} -p /sbin/ldconfig %post -n libboost_container%{lib_appendix} -p /sbin/ldconfig %post -n libboost_context%{lib_appendix} -p /sbin/ldconfig @@ -1387,18 +1435,6 @@ rm -r %{buildroot}%{_includedir}/boost/context %post -n libboost_log%{lib_appendix} -p /sbin/ldconfig %post -n libboost_test%{lib_appendix} -p /sbin/ldconfig %post -n libboost_program_options%{lib_appendix} -p /sbin/ldconfig -%post -n libboost_python-py2_7-%{lib_appendix} -p /sbin/ldconfig - -%if %{with python_numpy} -%post -n libboost_numpy-py2_7-%{lib_appendix} -p /sbin/ldconfig -%endif - -%if %{with python3} -%post -n libboost_python-py3-%{lib_appendix} -p /sbin/ldconfig -%if %{with python_numpy} -%post -n libboost_numpy-py3-%{lib_appendix} -p /sbin/ldconfig -%endif -%endif %post -n libboost_regex%{lib_appendix} -p /sbin/ldconfig %post -n libboost_serialization%{lib_appendix} -p /sbin/ldconfig @@ -1407,15 +1443,6 @@ rm -r %{buildroot}%{_includedir}/boost/context %post -n libboost_type_erasure%{lib_appendix} -p /sbin/ldconfig %post -n libboost_math%{lib_appendix} -p /sbin/ldconfig -%if %{with build_mpi} -%post -n libboost_mpi%{lib_appendix} -p /sbin/ldconfig -%post -n libboost_graph_parallel%{lib_appendix} -p /sbin/ldconfig -%post -n libboost_mpi_python-py2_7-%{lib_appendix} -p /sbin/ldconfig -%if %{with python3} -%post -n libboost_mpi_python-py3-%{lib_appendix} -p /sbin/ldconfig -%endif -%endif - %post -n libboost_graph%{lib_appendix} -p /sbin/ldconfig %post -n libboost_stacktrace%{lib_appendix} -p /sbin/ldconfig %post -n libboost_system%{lib_appendix} -p /sbin/ldconfig @@ -1425,6 +1452,36 @@ rm -r %{buildroot}%{_includedir}/boost/context %post -n libboost_locale%{lib_appendix} -p /sbin/ldconfig %post -n libboost_timer%{lib_appendix} -p /sbin/ldconfig +%else # ! build_base + +%if %{with python2} +%post -n libboost_python-py2_7-%{lib_appendix} -p /sbin/ldconfig +%if %{with python_numpy} +%post -n libboost_numpy-py2_7-%{lib_appendix} -p /sbin/ldconfig +%endif +%endif + +%if %{with python3} +%post -n libboost_python-py3-%{lib_appendix} -p /sbin/ldconfig +%if %{with python_numpy} +%post -n libboost_numpy-py3-%{lib_appendix} -p /sbin/ldconfig +%endif +%endif + +%if %{with build_mpi} +%post -n libboost_mpi%{lib_appendix} -p /sbin/ldconfig +%post -n libboost_graph_parallel%{lib_appendix} -p /sbin/ldconfig +%if %{with python2} +%post -n libboost_mpi_python-py2_7-%{lib_appendix} -p /sbin/ldconfig +%endif +%if %{with python3} +%post -n libboost_mpi_python-py3-%{lib_appendix} -p /sbin/ldconfig +%endif +%endif + +%endif # ! build_base + +%if %build_base %postun -n libboost_atomic%{lib_appendix} -p /sbin/ldconfig %postun -n libboost_container%{lib_appendix} -p /sbin/ldconfig %postun -n libboost_context%{lib_appendix} -p /sbin/ldconfig @@ -1436,19 +1493,6 @@ rm -r %{buildroot}%{_includedir}/boost/context %postun -n libboost_log%{lib_appendix} -p /sbin/ldconfig %postun -n libboost_test%{lib_appendix} -p /sbin/ldconfig %postun -n libboost_program_options%{lib_appendix} -p /sbin/ldconfig -%postun -n libboost_python-py2_7-%{lib_appendix} -p /sbin/ldconfig - -%if %{with python_numpy} -%postun -n libboost_numpy-py2_7-%{lib_appendix} -p /sbin/ldconfig -%endif - -%if %{with python3} -%postun -n libboost_python-py3-%{lib_appendix} -p /sbin/ldconfig -%if %{with python_numpy} -%postun -n libboost_numpy-py3-%{lib_appendix} -p /sbin/ldconfig -%endif -%endif - %postun -n libboost_regex%{lib_appendix} -p /sbin/ldconfig %postun -n libboost_serialization%{lib_appendix} -p /sbin/ldconfig %postun -n libboost_signals%{lib_appendix} -p /sbin/ldconfig @@ -1456,15 +1500,6 @@ rm -r %{buildroot}%{_includedir}/boost/context %postun -n libboost_type_erasure%{lib_appendix} -p /sbin/ldconfig %postun -n libboost_math%{lib_appendix} -p /sbin/ldconfig -%if %{with build_mpi} -%postun -n libboost_mpi%{lib_appendix} -p /sbin/ldconfig -%postun -n libboost_graph_parallel%{lib_appendix} -p /sbin/ldconfig -%postun -n libboost_mpi_python-py2_7-%{lib_appendix} -p /sbin/ldconfig -%if %{with python3} -%postun -n libboost_mpi_python-py3-%{lib_appendix} -p /sbin/ldconfig -%endif -%endif - %postun -n libboost_graph%{lib_appendix} -p /sbin/ldconfig %postun -n libboost_stacktrace%{lib_appendix} -p /sbin/ldconfig %postun -n libboost_system%{lib_appendix} -p /sbin/ldconfig @@ -1474,16 +1509,41 @@ rm -r %{buildroot}%{_includedir}/boost/context %postun -n libboost_locale%{lib_appendix} -p /sbin/ldconfig %postun -n libboost_timer%{lib_appendix} -p /sbin/ldconfig +%else # ! build_base + +%if %{with python2} +%postun -n libboost_python-py2_7-%{lib_appendix} -p /sbin/ldconfig +%if %{with python_numpy} +%postun -n libboost_numpy-py2_7-%{lib_appendix} -p /sbin/ldconfig +%endif +%endif + +%if %{with python3} +%postun -n libboost_python-py3-%{lib_appendix} -p /sbin/ldconfig +%if %{with python_numpy} +%postun -n libboost_numpy-py3-%{lib_appendix} -p /sbin/ldconfig +%endif +%endif + +%if %{with build_mpi} +%postun -n libboost_mpi%{lib_appendix} -p /sbin/ldconfig +%postun -n libboost_graph_parallel%{lib_appendix} -p /sbin/ldconfig +%if %{with python2} +%postun -n libboost_mpi_python-py2_7-%{lib_appendix} -p /sbin/ldconfig +%endif +%if %{with python3} +%postun -n libboost_mpi_python-py3-%{lib_appendix} -p /sbin/ldconfig +%endif +%endif + +%endif # build_base + +%if %{build_base} %files -n %{package_name}-jam %defattr(-, root, root, -) %{_bindir}/bjam %{_bindir}/jam -%files -n boost-license%{lib_appendix} -%defattr(-, root, root, -) -%dir %{my_docdir} -%doc %{my_docdir}/LICENSE_1_0.txt - %files -n libboost_atomic%{lib_appendix} %defattr(-, root, root, -) %{_libdir}/libboost_atomic.so.%{version} @@ -1592,6 +1652,29 @@ rm -r %{buildroot}%{_includedir}/boost/context %{_libdir}/libboost_math_tr1l.so %{_libdir}/libboost_math_tr1.so +%files -n libboost_test%{lib_appendix} +%defattr(-, root, root, -) +%{_libdir}/libboost_prg_exec_monitor.so.%{version} +%{_libdir}/libboost_test_exec_monitor.so.%{version} +%{_libdir}/libboost_unit_test_framework.so.%{version} + +%files -n libboost_test%{lib_appendix}-devel +%defattr(-, root, root, -) +%{_libdir}/libboost_prg_exec_monitor.so +%{_libdir}/libboost_test_exec_monitor.so +%{_libdir}/libboost_unit_test_framework.so + +%files -n libboost_program_options%{lib_appendix} +%defattr(-, root, root, -) +%{_libdir}/libboost_program_options.so.%{version} + +%files -n libboost_program_options%{lib_appendix}-devel +%defattr(-, root, root, -) +%{_libdir}/libboost_program_options.so +%endif # build_base + +%if ! %build_base + %if %{with build_mpi} %files -n libboost_mpi%{lib_appendix} %defattr(-, root, root, -) @@ -1609,6 +1692,7 @@ rm -r %{buildroot}%{_includedir}/boost/context %defattr(-,root,root) %{_libdir}/libboost_graph_parallel.so +%if %{with python2} %files -n libboost_mpi_python-py2_7-%{lib_appendix} %defattr(-,root,root) %{_libdir}/libboost_mpi_python-py2_7.so.%{version} @@ -1618,15 +1702,16 @@ rm -r %{buildroot}%{_includedir}/boost/context %{_libdir}/libboost_mpi_python-py2_7.so %{_libdir}/libboost_mpi_python.so -%files -n python-boost_parallel_mpi%{lib_appendix} +%files -n python2-boost_parallel_mpi%{lib_appendix} %defattr(-, root, root, -) -%dir %{py_sitedir}/boost -%dir %{py_sitedir}/boost/parallel -%dir %{py_sitedir}/boost/parallel/mpi -%{py_sitedir}/boost/__init__.py -%{py_sitedir}/boost/parallel/__init__.py -%{py_sitedir}/boost/parallel/mpi/__init__.py -%{py_sitedir}/boost/parallel/mpi/mpi.so +%dir %{python2_sitearch}/boost +%dir %{python2_sitearch}/boost/parallel +%dir %{python2_sitearch}/boost/parallel/mpi +%{python2_sitearch}/boost/__init__.py +%{python2_sitearch}/boost/parallel/__init__.py +%{python2_sitearch}/boost/parallel/mpi/__init__.py +%{python2_sitearch}/boost/parallel/mpi/mpi.so +%endif # with python2 %if %{with python3} %files -n libboost_mpi_python-py3-%{lib_appendix} @@ -1650,26 +1735,7 @@ rm -r %{buildroot}%{_includedir}/boost/context %endif # with python3 %endif # with build_mpi -%files -n libboost_test%{lib_appendix} -%defattr(-, root, root, -) -%{_libdir}/libboost_prg_exec_monitor.so.%{version} -%{_libdir}/libboost_test_exec_monitor.so.%{version} -%{_libdir}/libboost_unit_test_framework.so.%{version} - -%files -n libboost_test%{lib_appendix}-devel -%defattr(-, root, root, -) -%{_libdir}/libboost_prg_exec_monitor.so -%{_libdir}/libboost_test_exec_monitor.so -%{_libdir}/libboost_unit_test_framework.so - -%files -n libboost_program_options%{lib_appendix} -%defattr(-, root, root, -) -%{_libdir}/libboost_program_options.so.%{version} - -%files -n libboost_program_options%{lib_appendix}-devel -%defattr(-, root, root, -) -%{_libdir}/libboost_program_options.so - +%if %{with python2} %files -n libboost_python-py2_7-%{lib_appendix} %defattr(-, root, root, -) %{_libdir}/libboost_python-py2_7.so.%{version} @@ -1687,7 +1753,9 @@ rm -r %{buildroot}%{_includedir}/boost/context %files -n libboost_numpy-py2_7-%{lib_appendix}-devel %defattr(-, root, root, -) %{_libdir}/libboost_numpy-py2_7.so -%endif + +%endif # with numpy +%endif # with python2 %if %{with python3} %files -n libboost_python-py3-%{lib_appendix} @@ -1710,7 +1778,9 @@ rm -r %{buildroot}%{_includedir}/boost/context %endif # with numpy %endif # with python3 +%endif # ! build_base +%if %build_base %files -n libboost_serialization%{lib_appendix} %defattr(-, root, root, -) %{_libdir}/libboost_serialization.so.%{version} @@ -1812,21 +1882,24 @@ rm -r %{buildroot}%{_includedir}/boost/context %files -n libboost_type_erasure%{lib_appendix}-devel %defattr(-, root, root, -) %{_libdir}/libboost_type_erasure.so +%endif # if build_base -%files -n libboost_headers%{lib_appendix}-devel -%defattr(-, root, root, -) -%dir %{_includedir}/boost -%{_includedir}/boost/* - +%if ! %build_base +%if %{with boost_devel} %files -n %{package_name}-devel %defattr(-, root, root, -) +%dir %{my_docdir} %{my_docdir}/README.boost-devel +%endif %files -n %{package_name}-doc-html %defattr(-, root, root, -) +%dir %{my_docdir} %doc %{my_docdir}/* -%exclude %{my_docdir}/LICENSE_1_0.txt +# %%exclude %%{my_docdir}/LICENSE_1_0.txt +%if %{with boost_devel} %exclude %{my_docdir}/README.boost-devel +%endif %if %{with build_docs} %files doc-man @@ -1834,20 +1907,31 @@ rm -r %{buildroot}%{_includedir}/boost/context %doc %{_mandir}/man3/*.3.gz %doc %{_mandir}/man7/*.7.gz %doc %{_mandir}/man9/*.9.gz - %endif %if %{with package_pdf} %files -n %{package_name}-doc-pdf %defattr(-, root, root, -) %doc ../boost_%{short_version}_pdf/*.pdf - %endif %if %{with build_quickbook} %files -n %{package_name}-quickbook %defattr(-, root, root, -) %{_bindir}/quickbook +%endif +%endif # ! build_base + +%if %build_base +%files -n libboost_headers%{lib_appendix}-devel +%defattr(-, root, root, -) +%dir %{_includedir}/boost +%{_includedir}/boost/* + +%files -n boost-license%{lib_appendix} +%defattr(-, root, root, -) +%dir %{my_docdir} +%doc %{my_docdir}/LICENSE_1_0.txt %endif diff --git a/existing_extra_docs b/existing_extra_docs index 9f9c011..d0f9332 100644 --- a/existing_extra_docs +++ b/existing_extra_docs @@ -458,7 +458,6 @@ libs/utility/shared_iterator_example1.cpp libs/utility/shared_iterator_example2.cpp libs/utility/shared_iterator_example3.cpp libs/wave/ChangeLog -LICENSE_1_0.txt more/blanket-permission.txt tools/build/v2/hacking.txt tools/inspect/build/Jamfile.v2