diff --git a/bjam b/bjam new file mode 100644 index 0000000000000000000000000000000000000000..130814b9d94aed12d7d5956d72ddbacd63aad258 --- /dev/null +++ b/bjam @@ -0,0 +1,144 @@ +.TH "b2" 1 "Sat Nov 19 2011" "Doxygen" \" -*- nroff -*- +.ad l +.nh +.SH NAME +b2 \- Command-line utility to build Boost-related C++ projects with Boost\&.Build +.SH "SYNOPSIS" +.PP +\fBb2\fP \fC[-a] [-dx] [-fx] [-jx] [-lx] [-n] [-ox] [-px] [-q] [-sx=y] [-tx] [-v] [--x]\fP +.PP +\fIb2\fP accepts the following options: +.PP +\fB-a\fP +.br + Build all targets, even if they are current +.PP +\fB-dx\fP +.br + Set the debug level to x (0-9) +.PP +\fB-fx\fP +.br + Read x instead of Jambase +.PP +\fB-jx\fP +.br + Run up to x shell commands concurrently +.PP +\fB-lx\fP +.br + Limit actions to x number of seconds after which they are stopped +.PP +\fB-n\fP +.br + Don't actually execute the updating actions +.PP +\fB-ox\fP +.br + Write the updating actions to file x +.PP +\fB-px\fP +.br + x=0, pipes action stdout and stderr merged into action output +.PP +\fB-q\fP +.br + Quit quickly as soon as a target fails +.PP +\fB-sx=y\fP +.br + Set variable x=y, overriding environment +.PP +\fB-tx\fP +.br + Rebuild x, even if it is up-to-date +.PP +\fB-v\fP +.br + Print the version of b2 and exit +.PP +\fB--x\fP +.br + Option is ignored +.SH "DESCRIPTION" +.PP +This section provides the information necessary to create your own projects using \fIBoost\&.Build\fP The information provided here is relatively high-level, and Chapter 6, Reference as well as the on-line help system must be used to obtain low-level documentation (see --help) +.PP +\fIBoost\&.Build\fP actually consists of two parts - \fIBoost\&.Jam\fP, a build engine with its own interpreted language, and \fIBoost\&.Build\fP itself, implemented in \fIBoost\&.Jam's\fP language\&. The chain of events when you type b2 on the command line is as follows: +.IP "\(bu" 2 +\fIBoost\&.Jam\fP tries to find \fIBoost\&.Build\fP and loads the top-level module\&. The exact process is described in the section called “Initialization” +.PP +.PP +.IP "\(bu" 2 +The top-level module loads user-defined configuration files, \fIuser-config\&.jam\fP and \fIsite-config\&.jam\fP, which define available toolsets +.PP +.PP +.IP "\(bu" 2 +The \fIJamfile\fP in the current directory is read That in turn might cause reading of further Jamfiles\&. As a result, a tree of projects is created, with targets inside projects +.PP +.PP +.IP "\(bu" 2 +Finally, using the build request specified on the command line, \fIBoost\&.Build\fP decides which targets should be built and how\&. That information is passed back to \fIBoost\&.Jam\fP, which takes care of actually running the scheduled build action commands +.PP +.PP +So, to be able to successfully use \fIBoost\&.Build\fP, you need to know only four things: +.IP "\(bu" 2 +How to configure \fIBoost\&.Build\fP (http://www.boost.org/boost-build2/doc/html/bbv2/overview/configuration.html) +.IP "\(bu" 2 +How to declare targets in Jamfiles (http://www.boost.org/boost-build2/doc/html/bbv2/overview/targets.html) +.IP "\(bu" 2 +How the build process works (http://www.boost.org/boost-build2/doc/html/bbv2/overview/build_process.html) +.PP +.PP +Some Basics about the \fIBoost\&.Jam\fP language\&. See the section called “Boost\&.Jam Language” (http://www.boost.org/boost-build2/doc/html/bbv2/overview/jam_language.html) +.SH "CONCEPTS" +.PP +\fIBoost\&.Build\fP has a few unique concepts that are introduced in this section\&. The best way to explain the concepts is by comparison with more classical build tools +.PP +When using any flavour of make, you directly specify targets and commands that are used to create them from other target\&. The below example creates a\&.o from a\&.c using a hardcoded compiler invocation command +.PP +a\&.o: a\&.c +.br + g++ -o a\&.o -g a\&.c +.PP +This is rather low-level description mechanism and it is hard to adjust commands, options, and sets of created targets depending on the used compiler and operating system\&. +.PP +To improve portability, most modern build system provide a set of higher-level functions that can be used in build description files\&. Consider this example: +.PP +add_program ('a', 'a\&.c') +.br +.PP +This is a function call that creates targets necessary to create executable file from source file a\&.c\&. Depending on configured properties, different commands line may be used\&. However, \fIadd_program\fP is higher-level, but rather thin level All targets are created immediately when build description is parsed, which makes it impossible to perform multi-variant builds\&. Often, change in any build property requires complete reconfiguration of the build tree +.PP +In order to support true multivariant builds, Boost\&.Build introduces the concept of metatarget—object that is created when build description is parsed and can be later called with specific build properties to generate actual targets +.PP +Consider an example: +.PP +exe a : a\&.cpp ; +.br +.PP +When this declaration is parsed, \fIBoost\&.Build\fP creates a metatarget, but does not yet decides what files must be created, or what commands must be used\&. After all build files are parsed, Boost\&.Build considers properties requested on the command line\&. Supposed you have invoked \fIBoost\&.Build\fP with: +.PP +\fIb2\fP toolset=gcc toolset=msvc +.br +.PP +In that case, the metatarget will be called twice, once with toolset=gcc and once with toolset=msvc\&. Both invocations will produce concrete targets, that will have different extensions and use different command lines\&. Another key concept is build property\&. Build property is a variable that affects the build process\&. It can be specified on the command line, and is passed when calling a metatarget +.PP +While all build tools have a similar mechanism, \fIBoost\&.Build\fP differs by requiring that all build properties are declared in advance, and providing a large set of properties with portable semantics +.PP +The final concept is property propagation\&. Boost\&.Build does not require that every metatarget is called with the same properties\&. Instead, the 'top-level' metatargets are called with the properties specified on the command line Each metatarget can elect to augment or override some properties (in particular, using the requirements mechanism, see the section called “Requirements”: http://www.boost.org/boost-build2/doc/html/bbv2/overview/targets.html#bbv2.overview.targets.requirements) Then, the dependency metatargets are called with modified properties and produce concrete targets that are then used in build process Of course, dependency metatargets maybe in turn modify build properties and have dependencies of their own\&. +.PP +For more in-depth treatment of the requirements and concepts, you may refer to SYRCoSE 2009 Boost\&.Build article (http://syrcose.ispras.ru/2009/files/04_paper.pdf)\&. +.SH "SEE ALSO" +.PP +\fBboost-libraries\fP(3) +.SH "SUPPORT" +.PP +Please report any bugs to https://svn.boost.org/trac/boost/ +.SH "COPYRIGHT" +.PP +Boost Software License - Version 1\&.0 - August 17th, 2003 +.PP +See the LICENSE_1_0\&.txt file for more information on that license, or directly on Internet: +.br + http://www.boost.org/LICENSE_1_0.txt diff --git a/boost-1.48.0-add-bjam-man-page.patch b/boost-1.48.0-add-bjam-man-page.patch deleted file mode 100644 index ea3f19fb6cec322dbc6636786084fc40b9d354c1..0000000000000000000000000000000000000000 --- a/boost-1.48.0-add-bjam-man-page.patch +++ /dev/null @@ -1,150 +0,0 @@ -diff --git a/tools/build/v2/doc/bjam.1 b/tools/build/v2/doc/bjam.1 -new file mode 100644 -index 0000000..8a44af6 ---- /dev/null -+++ b/tools/build/v2/doc/bjam.1 -@@ -0,0 +1,144 @@ -+.TH "bjam" 1 "Sat Nov 19 2011" "Doxygen" \" -*- nroff -*- -+.ad l -+.nh -+.SH NAME -+bjam \- Command-line utility to build Boost-related C++ projects with Boost\&.Build -+.SH "SYNOPSIS" -+.PP -+\fBbjam\fP \fC[-a] [-dx] [-fx] [-jx] [-lx] [-n] [-ox] [-px] [-q] [-sx=y] [-tx] [-v] [--x]\fP -+.PP -+\fIbjam\fP accepts the following options: -+.PP -+\fB-a\fP -+.br -+ Build all targets, even if they are current -+.PP -+\fB-dx\fP -+.br -+ Set the debug level to x (0-9) -+.PP -+\fB-fx\fP -+.br -+ Read x instead of Jambase -+.PP -+\fB-jx\fP -+.br -+ Run up to x shell commands concurrently -+.PP -+\fB-lx\fP -+.br -+ Limit actions to x number of seconds after which they are stopped -+.PP -+\fB-n\fP -+.br -+ Don't actually execute the updating actions -+.PP -+\fB-ox\fP -+.br -+ Write the updating actions to file x -+.PP -+\fB-px\fP -+.br -+ x=0, pipes action stdout and stderr merged into action output -+.PP -+\fB-q\fP -+.br -+ Quit quickly as soon as a target fails -+.PP -+\fB-sx=y\fP -+.br -+ Set variable x=y, overriding environment -+.PP -+\fB-tx\fP -+.br -+ Rebuild x, even if it is up-to-date -+.PP -+\fB-v\fP -+.br -+ Print the version of jam and exit -+.PP -+\fB--x\fP -+.br -+ Option is ignored -+.SH "DESCRIPTION" -+.PP -+This section provides the information necessary to create your own projects using \fIBoost\&.Build\fP The information provided here is relatively high-level, and Chapter 6, Reference as well as the on-line help system must be used to obtain low-level documentation (see --help) -+.PP -+\fIBoost\&.Build\fP actually consists of two parts - \fIBoost\&.Jam\fP, a build engine with its own interpreted language, and \fIBoost\&.Build\fP itself, implemented in \fIBoost\&.Jam's\fP language\&. The chain of events when you type bjam on the command line is as follows: -+.IP "\(bu" 2 -+\fIBoost\&.Jam\fP tries to find \fIBoost\&.Build\fP and loads the top-level module\&. The exact process is described in the section called “Initialization” -+.PP -+.PP -+.IP "\(bu" 2 -+The top-level module loads user-defined configuration files, \fIuser-config\&.jam\fP and \fIsite-config\&.jam\fP, which define available toolsets -+.PP -+.PP -+.IP "\(bu" 2 -+The \fIJamfile\fP in the current directory is read That in turn might cause reading of further Jamfiles\&. As a result, a tree of projects is created, with targets inside projects -+.PP -+.PP -+.IP "\(bu" 2 -+Finally, using the build request specified on the command line, \fIBoost\&.Build\fP decides which targets should be built and how\&. That information is passed back to \fIBoost\&.Jam\fP, which takes care of actually running the scheduled build action commands -+.PP -+.PP -+So, to be able to successfully use \fIBoost\&.Build\fP, you need to know only four things: -+.IP "\(bu" 2 -+How to configure \fIBoost\&.Build\fP (http://www.boost.org/boost-build2/doc/html/bbv2/overview/configuration.html) -+.IP "\(bu" 2 -+How to declare targets in Jamfiles (http://www.boost.org/boost-build2/doc/html/bbv2/overview/targets.html) -+.IP "\(bu" 2 -+How the build process works (http://www.boost.org/boost-build2/doc/html/bbv2/overview/build_process.html) -+.PP -+.PP -+Some Basics about the \fIBoost\&.Jam\fP language\&. See the section called “Boost\&.Jam Language” (http://www.boost.org/boost-build2/doc/html/bbv2/overview/jam_language.html) -+.SH "CONCEPTS" -+.PP -+\fIBoost\&.Build\fP has a few unique concepts that are introduced in this section\&. The best way to explain the concepts is by comparison with more classical build tools -+.PP -+When using any flavour of make, you directly specify targets and commands that are used to create them from other target\&. The below example creates a\&.o from a\&.c using a hardcoded compiler invocation command -+.PP -+a\&.o: a\&.c -+.br -+ g++ -o a\&.o -g a\&.c -+.PP -+This is rather low-level description mechanism and it is hard to adjust commands, options, and sets of created targets depending on the used compiler and operating system\&. -+.PP -+To improve portability, most modern build system provide a set of higher-level functions that can be used in build description files\&. Consider this example: -+.PP -+add_program ('a', 'a\&.c') -+.br -+.PP -+This is a function call that creates targets necessary to create executable file from source file a\&.c\&. Depending on configured properties, different commands line may be used\&. However, \fIadd_program\fP is higher-level, but rather thin level All targets are created immediately when build description is parsed, which makes it impossible to perform multi-variant builds\&. Often, change in any build property requires complete reconfiguration of the build tree -+.PP -+In order to support true multivariant builds, Boost\&.Build introduces the concept of metatarget—object that is created when build description is parsed and can be later called with specific build properties to generate actual targets -+.PP -+Consider an example: -+.PP -+exe a : a\&.cpp ; -+.br -+.PP -+When this declaration is parsed, \fIBoost\&.Build\fP creates a metatarget, but does not yet decides what files must be created, or what commands must be used\&. After all build files are parsed, Boost\&.Build considers properties requested on the command line\&. Supposed you have invoked \fIBoost\&.Build\fP with: -+.PP -+\fIbjam\fP toolset=gcc toolset=msvc -+.br -+.PP -+In that case, the metatarget will be called twice, once with toolset=gcc and once with toolset=msvc\&. Both invocations will produce concrete targets, that will have different extensions and use different command lines\&. Another key concept is build property\&. Build property is a variable that affects the build process\&. It can be specified on the command line, and is passed when calling a metatarget -+.PP -+While all build tools have a similar mechanism, \fIBoost\&.Build\fP differs by requiring that all build properties are declared in advance, and providing a large set of properties with portable semantics -+.PP -+The final concept is property propagation\&. Boost\&.Build does not require that every metatarget is called with the same properties\&. Instead, the 'top-level' metatargets are called with the properties specified on the command line Each metatarget can elect to augment or override some properties (in particular, using the requirements mechanism, see the section called “Requirements”: http://www.boost.org/boost-build2/doc/html/bbv2/overview/targets.html#bbv2.overview.targets.requirements) Then, the dependency metatargets are called with modified properties and produce concrete targets that are then used in build process Of course, dependency metatargets maybe in turn modify build properties and have dependencies of their own\&. -+.PP -+For more in-depth treatment of the requirements and concepts, you may refer to SYRCoSE 2009 Boost\&.Build article (http://syrcose.ispras.ru/2009/files/04_paper.pdf)\&. -+.SH "SEE ALSO" -+.PP -+\fBboost-libraries\fP(3) -+.SH "SUPPORT" -+.PP -+Please report any bugs to https://svn.boost.org/trac/boost/ -+.SH "COPYRIGHT" -+.PP -+Boost Software License - Version 1\&.0 - August 17th, 2003 -+.PP -+See the LICENSE_1_0\&.txt file for more information on that license, or directly on Internet: -+.br -+ http://www.boost.org/LICENSE_1_0.txt diff --git a/boost-1.57.0-mpl-print.patch b/boost-1.57.0-mpl-print.patch deleted file mode 100644 index 561cef19eb23fc79b060b21f9664c99811d9913c..0000000000000000000000000000000000000000 --- a/boost-1.57.0-mpl-print.patch +++ /dev/null @@ -1,31 +0,0 @@ -diff -up boost_1_57_0/boost/mpl/print.hpp\~ boost_1_57_0/boost/mpl/print.hpp ---- boost_1_57_0/boost/mpl/print.hpp~ 2014-07-09 23:12:31.000000000 +0200 -+++ boost_1_57_0/boost/mpl/print.hpp 2015-01-20 12:44:59.621400948 +0100 -@@ -52,16 +52,15 @@ struct print - enum { n = sizeof(T) + -1 }; - #elif defined(__MWERKS__) - void f(int); --#else -- enum { -- n = --# if defined(__EDG_VERSION__) -- aux::dependent_unsigned::value > -1 --# else -- sizeof(T) > -1 --# endif -- }; --#endif -+#elif defined(__EDG_VERSION__) -+ enum { n = aux::dependent_unsigned::value > -1 }; -+#elif defined(BOOST_GCC) -+ enum { n1 }; -+ enum { n2 }; -+ enum { n = n1 != n2 }; -+#else -+ enum { n = sizeof(T) > -1 }; -+#endif - }; - - #if defined(BOOST_MSVC) - -Diff finished. Tue Jan 20 12:45:03 2015 diff --git a/boost-1.57.0-python-libpython_dep.patch b/boost-1.57.0-python-libpython_dep.patch deleted file mode 100644 index 57bfc26774eafc55894de34928b14786ed1fa389..0000000000000000000000000000000000000000 --- a/boost-1.57.0-python-libpython_dep.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: boost_1_57_0/tools/build/src/tools/python.jam -=================================================================== ---- boost_1_57_0/tools/build/src/tools/python.jam (revision 50406) -+++ boost_1_57_0/tools/build/src/tools/python.jam (working copy) -@@ -994,7 +994,7 @@ - else - { - alias python_for_extensions -- : -+ : python - : $(target-requirements) - : - : $(usage-requirements) diff --git a/boost-1.66.0-build-optflags.patch b/boost-1.66.0-build-optflags.patch deleted file mode 100644 index 28de3947777eec9fed3f266f9a7249c365d97eda..0000000000000000000000000000000000000000 --- a/boost-1.66.0-build-optflags.patch +++ /dev/null @@ -1,53 +0,0 @@ ---- boost_1_66_0/tools/build/src/tools/gcc.jam~ 2017-12-13 23:56:50.000000000 +0000 -+++ boost_1_66_0/tools/build/src/tools/gcc.jam 2018-01-19 12:48:26.264755316 +0000 -@@ -571,7 +571,7 @@ rule compile.fortran ( targets * : sources * : properties * ) - - actions compile.c++ bind PCH_FILE - { -- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -c -o "$(<:W)" "$(>:W)" -+ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -c -o "$(<:W)" "$(>:W)" - } - - actions compile.c bind PCH_FILE -@@ -581,7 +581,7 @@ actions compile.c bind PCH_FILE - - actions compile.c++.preprocess bind PCH_FILE - { -- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" "$(>:W)" -E >"$(<:W)" -+ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" "$(>:W)" -E >"$(<:W)" - } - - actions compile.c.preprocess bind PCH_FILE -@@ -704,19 +704,17 @@ actions compile.c.pch - ### - - # Declare flags and action for compilation. --toolset.flags gcc.compile OPTIONS off : -O0 ; --toolset.flags gcc.compile OPTIONS speed : -O3 ; --toolset.flags gcc.compile OPTIONS space : -Os ; -- --toolset.flags gcc.compile OPTIONS off : -fno-inline ; --toolset.flags gcc.compile OPTIONS on : -Wno-inline ; --toolset.flags gcc.compile OPTIONS full : -finline-functions -Wno-inline ; -- --toolset.flags gcc.compile OPTIONS off : -w ; --toolset.flags gcc.compile OPTIONS on : -Wall ; --toolset.flags gcc.compile OPTIONS all : -Wall ; --toolset.flags gcc.compile OPTIONS extra : -Wall -Wextra ; --toolset.flags gcc.compile OPTIONS pedantic : -Wall -Wextra -pedantic ; -+toolset.flags gcc.compile OPTIONS off : ; -+toolset.flags gcc.compile OPTIONS speed : ; -+toolset.flags gcc.compile OPTIONS space : ; -+ -+toolset.flags gcc.compile OPTIONS off : ; -+toolset.flags gcc.compile OPTIONS on : ; -+toolset.flags gcc.compile OPTIONS full : ; -+ -+toolset.flags gcc.compile OPTIONS off : ; -+toolset.flags gcc.compile OPTIONS on : ; -+toolset.flags gcc.compile OPTIONS all : ; - toolset.flags gcc.compile OPTIONS on : -Werror ; - - toolset.flags gcc.compile OPTIONS on : -g ; --- -2.19.1 diff --git a/boost-1.66.0-python-abi_letters.patch b/boost-1.66.0-python-abi_letters.patch deleted file mode 100644 index 8bbb9d2b8bfae93ff09bcf5725c43dd92d2f3230..0000000000000000000000000000000000000000 --- a/boost-1.66.0-python-abi_letters.patch +++ /dev/null @@ -1,64 +0,0 @@ ---- boost_1_57_0/tools/build/src/tools/python.jam 2013-05-21 06:14:18.000000000 +0200 -+++ boost_1_55_0/tools/build/src/tools/python.jam 2014-05-29 19:09:12.115413877 +0200 -@@ -99,7 +99,7 @@ py3-version = ; - # using python : 2.3 : /usr/local/bin/python ; - # - rule init ( version ? : cmd-or-prefix ? : includes * : libraries ? -- : condition * : extension-suffix ? ) -+ : condition * : extension-suffix ? : abi-letters ? ) - { - project.push-current $(.project) ; - -@@ -112,7 +112,7 @@ rule init ( version ? : cmd-or-prefix ? : includes * : libraries ? - } - } - -- configure $(version) : $(cmd-or-prefix) : $(includes) : $(libraries) : $(condition) : $(extension-suffix) ; -+ configure $(version) : $(cmd-or-prefix) : $(includes) : $(libraries) : $(condition) : $(extension-suffix) : $(abi-letters) ; - - project.pop-current ; - } -@@ -668,7 +668,7 @@ rule version-suffix ( version ) - - # Declare a target to represent Python's library. - # --local rule declare-libpython-target ( version ? : requirements * ) -+local rule declare-libpython-target ( version ? : requirements * : abi-letters ? ) - { - # Compute the representation of Python version in the name of Python's - # library file. -@@ -692,13 +692,13 @@ local rule declare-libpython-target ( version ? : requirements * ) - } - - # Declare it. -- lib python.lib : : python$(lib-version) $(requirements) ; -+ lib python.lib : : python$(lib-version)$(abi-letters) $(requirements) ; - } - - - # Implementation of init. - local rule configure ( version ? : cmd-or-prefix ? : includes * : libraries ? : -- condition * : extension-suffix ? ) -+ condition * : extension-suffix ? : abi-letters ? ) - { - local prefix ; - local exec-prefix ; -@@ -714,6 +714,7 @@ local rule configure ( version ? : cmd-or-prefix ? : includes * : libraries ? : - extension-suffix ?= _d ; - } - extension-suffix ?= "" ; -+ abi-letters ?= "" ; - - local cmds-to-try ; - -@@ -970,7 +971,7 @@ local rule configure ( version ? : cmd-or-prefix ? : includes * : libraries ? : - } - else - { -- declare-libpython-target $(version) : $(target-requirements) ; -+ declare-libpython-target $(version) : $(target-requirements) : $(abi-letters) ; - - # This is an evil hack. On, Windows, when Python is embedded, nothing - # seems to set up sys.path to include Python's standard library --- -2.19.1 diff --git a/boost.spec b/boost.spec index 3d6143accf3dc147f6706ce4cdc954347e1e56e4..80c02efbecfcd9b97316f78aa8bbfa5a1601b191 100644 --- a/boost.spec +++ b/boost.spec @@ -1,14 +1,14 @@ %global boost_docdir __tmp_docdir %global boost_examplesdir __tmp_examplesdir -%global version_enc 1_72_0 -%global version_mid 72 +%global version_enc 1_73_0 +%global version_mid 73 %global toplev_dirname %{name}_%{version_enc} %global sonamever %{version} +%global python3_lib_version 37 %bcond_with mpich %bcond_with openmpi %bcond_without context -%bcond_without python2 %bcond_without python3 %ifnarch %{ix86} x86_64 @@ -21,81 +21,73 @@ %bcond_with docs_generated Name: boost -Version: 1.72.0 +Version: 1.73.0 Release: 1 Summary: The free peer-reviewed portable C++ source libraries License: Boost and MIT and Python URL: http://www.boost.org Source0: https://sourceforge.net/projects/boost/files/boost/%{version}/%{toplev_dirname}.tar.bz2 Source1: libboost_thread.so +Source2: bjam # https://svn.boost.org/trac/boost/ticket/6150 -Patch4: boost-1.50.0-fix-non-utf8-files.patch - -# http://www.boost.org/boost-build2/doc/html/bbv2/overview.html -Patch5: boost-1.48.0-add-bjam-man-page.patch +Patch1: boost-1.50.0-fix-non-utf8-files.patch # https://bugzilla.redhat.com/show_bug.cgi?id=828856 # https://bugzilla.redhat.com/show_bug.cgi?id=828857 # https://svn.boost.org/trac/boost/ticket/6701 -Patch15: boost-1.58.0-pool.patch - -# https://svn.boost.org/trac/boost/ticket/5637 -Patch25: boost-1.57.0-mpl-print.patch +Patch2: boost-1.58.0-pool.patch # https://svn.boost.org/trac/boost/ticket/9038 -Patch51: boost-1.58.0-pool-test_linking.patch - -# https://bugzilla.redhat.com/show_bug.cgi?id=1102667 -Patch61: boost-1.57.0-python-libpython_dep.patch -Patch62: boost-1.66.0-python-abi_letters.patch - -# https://bugzilla.redhat.com/show_bug.cgi?id=1190039 -Patch65: boost-1.66.0-build-optflags.patch +Patch3: boost-1.58.0-pool-test_linking.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1318383 -Patch82: boost-1.66.0-no-rpath.patch - -Requires: boost-atomic%{?_isa} = %{version}-%{release} -Requires: boost-chrono%{?_isa} = %{version}-%{release} -Requires: boost-container%{?_isa} = %{version}-%{release} -Requires: boost-context%{?_isa} = %{version}-%{release} -Requires: boost-coroutine%{?_isa} = %{version}-%{release} -Requires: boost-date-time%{?_isa} = %{version}-%{release} -Requires: boost-fiber%{?_isa} = %{version}-%{release} -Requires: boost-filesystem%{?_isa} = %{version}-%{release} -Requires: boost-graph%{?_isa} = %{version}-%{release} -Requires: boost-iostreams%{?_isa} = %{version}-%{release} -Requires: boost-locale%{?_isa} = %{version}-%{release} -Requires: boost-log%{?_isa} = %{version}-%{release} -Requires: boost-math%{?_isa} = %{version}-%{release} -Requires: boost-program-options%{?_isa} = %{version}-%{release} -Requires: boost-random%{?_isa} = %{version}-%{release} -Requires: boost-regex%{?_isa} = %{version}-%{release} -Requires: boost-serialization%{?_isa} = %{version}-%{release} -Requires: boost-stacktrace%{?_isa} = %{version}-%{release} -Requires: boost-system%{?_isa} = %{version}-%{release} -Requires: boost-test%{?_isa} = %{version}-%{release} -Requires: boost-thread%{?_isa} = %{version}-%{release} -Requires: boost-timer%{?_isa} = %{version}-%{release} -Requires: boost-type_erasure%{?_isa} = %{version}-%{release} -Requires: boost-wave%{?_isa} = %{version}-%{release} -Requires: boost-contract%{?_isa} = %{version}-%{release} +Patch4: boost-1.66.0-no-rpath.patch + +Requires: %{name}-atomic%{?_isa} = %{version}-%{release} +Requires: %{name}-chrono%{?_isa} = %{version}-%{release} +Requires: %{name}-container%{?_isa} = %{version}-%{release} +Requires: %{name}-context%{?_isa} = %{version}-%{release} +Requires: %{name}-coroutine%{?_isa} = %{version}-%{release} +Requires: %{name}-date-time%{?_isa} = %{version}-%{release} +Requires: %{name}-fiber%{?_isa} = %{version}-%{release} +Requires: %{name}-filesystem%{?_isa} = %{version}-%{release} +Requires: %{name}-graph%{?_isa} = %{version}-%{release} +Requires: %{name}-iostreams%{?_isa} = %{version}-%{release} +Requires: %{name}-locale%{?_isa} = %{version}-%{release} +Requires: %{name}-log%{?_isa} = %{version}-%{release} +Requires: %{name}-math%{?_isa} = %{version}-%{release} +Requires: %{name}-nowide%{?_isa} = %{version}-%{release} +Requires: %{name}-program-options%{?_isa} = %{version}-%{release} +Requires: %{name}-random%{?_isa} = %{version}-%{release} +Requires: %{name}-regex%{?_isa} = %{version}-%{release} +Requires: %{name}-serialization%{?_isa} = %{version}-%{release} +Requires: %{name}-stacktrace%{?_isa} = %{version}-%{release} +Requires: %{name}-system%{?_isa} = %{version}-%{release} +Requires: %{name}-test%{?_isa} = %{version}-%{release} +Requires: %{name}-thread%{?_isa} = %{version}-%{release} +Requires: %{name}-timer%{?_isa} = %{version}-%{release} +Requires: %{name}-type_erasure%{?_isa} = %{version}-%{release} +Requires: %{name}-wave%{?_isa} = %{version}-%{release} +Requires: %{name}-contract%{?_isa} = %{version}-%{release} BuildRequires: gcc-c++ m4 tcl gdb -BuildRequires: libstdc++-devel bzip2-devel zlib-devel -BuildRequires: python2-devel python3-devel libicu-devel -BuildRequires: python2-numpy python3-numpy +BuildRequires: libstdc++-devel bzip2-devel zlib-devel libicu-devel +%if %{with python3} +BuildRequires: python3-devel python3-numpy +BuildRequires: boost-python3-devel boost-python3 +%endif + %if %{with quadmath} BuildRequires: libquadmath-devel %endif BuildRequires: boost-atomic boost-build boost-chrono boost-container boost-context BuildRequires: boost-coroutine boost-date-time boost-devel boost-doctools boost-wave BuildRequires: boost-examples boost-fiber boost-filesystem boost-graph boost-iostreams -BuildRequires: boost-jam boost-locale boost-log boost-math boost-numpy2 boost-numpy3 -BuildRequires: boost-program-options boost-python2 boost-python2-devel boost-python3 -BuildRequires: boost-python3-devel boost-random boost-regex boost-serialization -BuildRequires: boost-stacktrace boost-system boost-test boost-thread boost-timer boost-type_erasure +BuildRequires: boost-jam boost-locale boost-log boost-math boost-numpy3 boost-type_erasure +BuildRequires: boost-program-options boost-random boost-regex boost-serialization +BuildRequires: boost-stacktrace boost-system boost-test boost-thread boost-timer + Obsoletes: boost-signals %description @@ -254,20 +246,14 @@ standard. Quaternions are a relative of complex numbers often used to parameterise rotations in three dimentional space. Octonions, like quaternions, are a relative of complex numbers. -%package numpy2 -Summary: Run-time component of boost numpy library for Python 2 -Requires: boost-python2%{?_isa} = %{version}-%{release} -Requires: python2-numpy -Provides: boost-numpy%{?_isa} = %{version}-%{release} -Obsoletes: boost-numpy < %{version}-%{release} +%package nowide +Summary: Standard library functions with UTF-8 API on Windows -%description numpy2 +%description nowide -The Boost Python Library is a framework for interfacing Python and -C++. It allows you to quickly and seamlessly expose C++ classes, -functions and objects to Python, and vice versa, using no special -tools -- just your C++ compiler. This package contains run-time -support for the NumPy extension of the Boost Python Library for Python 2. +Run-time support for Boost.Nowide. + +%if %{with python3} %package numpy3 Summary: Run-time component of boost numpy library for Python 3 @@ -282,42 +268,6 @@ functions and objects to Python, and vice versa, using no special tools -- just your C++ compiler. This package contains run-time support for the NumPy extension of the Boost Python Library for Python 3. -%package program-options -Summary: Run-time component of boost program_options library - -%description program-options - -Boost program options library allows program developers to obtain -(name, value) pairs from the user, via conventional methods such as -command line and config file. - -%package python2 -Provides: %{name}-python = %{version}-%{release} -Provides: %{name}-python%{?_isa} = %{version}-%{release} -Obsoletes: %{name}-python < %{version}-%{release} -Obsoletes: python2-%{name} < %{version}-%{release} -Summary: Run-time component of boost python library for Python 2 - -%description python2 - -The Boost Python Library is a framework for interfacing Python and -C++. It allows you to quickly and seamlessly expose C++ classes, -functions and objects to Python, and vice versa, using no special -tools -- just your C++ compiler. This package contains run-time -support for the Boost Python Library compiled for Python 2. - -%package python2-devel -Summary: Shared object symbolic links for Boost.Python 2 -Requires: boost-numpy2%{?_isa} = %{version}-%{release} -Requires: boost-python2%{?_isa} = %{version}-%{release} -Requires: boost-devel%{?_isa} = %{version}-%{release} -Provides: boost-python-devel%{?_isa} = %{version}-%{release} -Obsoletes: boost-python-devel < %{version}-%{release} - -%description python2-devel - -Shared object symbolic links for Python 2 variant of Boost.Python. - %package python3 Summary: Run-time component of boost python library for Python 3 @@ -339,6 +289,17 @@ Requires: boost-devel%{?_isa} = %{version}-%{release} Shared object symbolic links for Python 3 variant of Boost.Python. +%endif + +%package program-options +Summary: Run-time component of boost program_options library + +%description program-options + +Boost program options library allows program developers to obtain +(name, value) pairs from the user, via conventional methods such as +command line and config file. + %package random Summary: A complete system for random number generation @@ -485,30 +446,7 @@ Requires: boost-graph-openmpi%{?_isa} = %{version}-%{release} Devel package for Boost.MPI-OpenMPI, a library providing a clean C++ API over the OpenMPI implementation of MPI. -%package openmpi-python2 -Summary: Python 2 run-time component of Boost.MPI library -Requires: boost-openmpi%{?_isa} = %{version}-%{release} -Requires: boost-python%{?_isa} = %{version}-%{release} -Requires: boost-serialization%{?_isa} = %{version}-%{release} -Requires: python2-openmpi%{?_isa} -Provides: boost-openmpi-python%{?_isa} = %{version}-%{release} -Obsoletes: boost-openmpi-python < %{version}-%{release} - -%description openmpi-python2 - -Python 2 support for Boost.MPI-OpenMPI, a library providing a clean C++ -API over the OpenMPI implementation of MPI. - -%package openmpi-python2-devel -Summary: Shared library symbolic links for Boost.MPI Python 2 component -Requires: boost-devel%{?_isa} = %{version}-%{release} -Requires: boost-openmpi-devel%{?_isa} = %{version}-%{release} -Requires: boost-openmpi-python2%{?_isa} = %{version}-%{release} - -%description openmpi-python2-devel - -Devel package for the Python 2 interface of Boost.MPI-OpenMPI, a library -providing a clean C++ API over the OpenMPI implementation of MPI. +%if %{with python3} %package openmpi-python3 Summary: Python 3 run-time component of Boost.MPI library @@ -534,6 +472,8 @@ Requires: boost-openmpi-python3%{?_isa} = %{version}-%{release} Devel package for the Python 3 interface of Boost.MPI-OpenMPI, a library providing a clean C++ API over the OpenMPI implementation of MPI. +%endif + %package graph-openmpi Summary: Run-time component of parallel boost graph library Requires: boost-openmpi%{?_isa} = %{version}-%{release} @@ -569,30 +509,7 @@ Requires: boost-graph-mpich%{?_isa} = %{version}-%{release} Devel package for Boost.MPI-MPICH, a library providing a clean C++ API over the MPICH implementation of MPI. -%package mpich-python2 -Summary: Python run-time component of Boost.MPI library -Requires: boost-mpich%{?_isa} = %{version}-%{release} -Requires: boost-python2%{?_isa} = %{version}-%{release} -Requires: boost-serialization%{?_isa} = %{version}-%{release} -Requires: python2-mpich%{?_isa} -Provides: boost-mpich-python%{?_isa} = %{version}-%{release} -Obsoletes: boost-mpich-python < %{version}-%{release} - -%description mpich-python2 - -Python 2 support for Boost.MPI-MPICH, a library providing a clean C++ -API over the MPICH implementation of MPI. - -%package mpich-python2-devel -Summary: Shared library symbolic links for Boost.MPI Python 2 component -Requires: boost-devel%{?_isa} = %{version}-%{release} -Requires: boost-mpich-devel%{?_isa} = %{version}-%{release} -Requires: boost-mpich-python2%{?_isa} = %{version}-%{release} - -%description mpich-python2-devel - -Devel package for the Python 2 interface of Boost.MPI-MPICH, a library -providing a clean C++ API over the MPICH implementation of MPI. +%if %{with python3} %package mpich-python3 Summary: Python 3 run-time component of Boost.MPI library @@ -618,6 +535,8 @@ Requires: boost-mpich-python3%{?_isa} = %{version}-%{release} Devel package for the Python 3 interface of Boost.MPI-MPICH, a library providing a clean C++ API over the MPICH implementation of MPI. +%endif + %package graph-mpich Summary: Run-time component of parallel boost graph library Requires: boost-mpich%{?_isa} = %{version}-%{release} @@ -666,21 +585,17 @@ a number of significant features and is now developed independently. %setup -q -n %{toplev_dirname} find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x +%patch1 -p1 +%patch2 -p0 +%patch3 -p1 %patch4 -p1 -%patch5 -p1 -%patch15 -p0 -%patch25 -p1 -%patch51 -p1 -%patch61 -p1 -%patch62 -p1 -%patch65 -p1 -%patch82 -p1 %build -: PYTHON2_VERSION=%{python2_version} +%if %{with python3} PYTHON3_ABIFLAGS=$(/usr/bin/python3-config --abiflags) : PYTHON3_VERSION=%{python3_version} : PYTHON3_ABIFLAGS=${PYTHON3_ABIFLAGS} +%endif export RPM_OPT_FLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -Wno-unused-local-typedefs -Wno-deprecated-declarations" export RPM_LD_FLAGS @@ -694,15 +609,28 @@ using gcc : : : $(RPM_OPT_FLAGS) $(RPM_LD_FLAGS) ; %if 0%{with openmpi} || 0%{with mpich} using mpi ; %endif -using python : %{python2_version} : /usr/bin/python2 : /usr/include/python%{python2_version} : : : : ; EOF +%if %{with python3} +cat >> ./tools/build/src/user-config.jam << EOF +using python : %{python3_version} : /usr/bin/python3 : /usr/include/python%{python3_version}${PYTHON3_ABIFLAGS} : : : ; +EOF +%endif + ./bootstrap.sh --with-toolset=gcc --with-icu echo ============================= build serial ================== -./b2 -d+2 -q %{?_smp_mflags} --without-mpi --without-graph_parallel \ - --build-dir=serial variant=release threading=multi debug-symbols=on \ - pch=off python=%{python2_version} stage +./b2 -d+2 -q %{?_smp_mflags} \ + --without-mpi --without-graph_parallel --build-dir=serial \ +%if !%{with context} + --without-context --without-coroutine \ + --without-fiber \ +%endif + variant=release threading=multi debug-symbols=on pch=off \ +%if %{with python3} + python=%{python3_version} \ +%endif + stage if [ $(find serial -type f -name has_atomic_flag_lockfree -print -quit | wc -l) -ne 0 ]; then DEF=D @@ -712,59 +640,35 @@ fi m4 -${DEF}HAS_ATOMIC_FLAG_LOCKFREE -DVERSION=%{version} %{SOURCE1} > $(basename %{SOURCE1}) -cat > python3-config.jam << "EOF" -import os ; -local RPM_OPT_FLAGS = [ os.environ RPM_OPT_FLAGS ] ; -local RPM_LD_FLAGS = [ os.environ RPM_LD_FLAGS ] ; - -using gcc : : : $(RPM_OPT_FLAGS) $(RPM_LD_FLAGS) ; -%if 0%{with openmpi} || 0%{with mpich} -using mpi ; -%endif -EOF - -cat >> python3-config.jam << EOF -using python : %{python3_version} : /usr/bin/python3 : /usr/include/python%{python3_version}${PYTHON3_ABIFLAGS} : : : : ${PYTHON3_ABIFLAGS} ; -EOF - -echo ============================= build serial-py3 ================== -./b2 -d+2 -q %{?_smp_mflags} --user-config=./python3-config.jam \ - --with-python --build-dir=serial-py3 variant=release threading=multi \ - debug-symbols=on pch=off python=%{python3_version} stage - -%if 0%{with openmpi} || 0%{with mpich} +%if %{with openmpi} || %{with mpich} module purge ||: %endif -%if 0%{with openmpi} +%if %{with openmpi} %{_openmpi_load} -echo ============================= build $MPI_COMPILER ================== -./b2 -d+2 -q %{?_smp_mflags} --with-mpi --with-graph_parallel \ - --build-dir=$MPI_COMPILER variant=release threading=multi \ - debug-symbols=on pch=off python=%{python2_version} stage -echo ============================= build $MPI_COMPILER-py3 ================== -./b2 -d+2 -q %{?_smp_mflags} --user-config=./python3-config.jam \ - --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER-py3 \ - variant=release threading=multi debug-symbols=on pch=off \ - python=%{python3_version} stage +%if %{with python3} +echo ============================= build $MPI_COMPILER ================== +./b2 -d+2 -q %{?_smp_mflags} \ + --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \ + variant=release threading=multi debug-symbols=on pch=off \ + python=%{python3_version} stage +%endif %{_openmpi_unload} export PATH=/bin${PATH:+:}$PATH %endif -%if 0%{with mpich} +%if %{with mpich} %{_mpich_load} -echo ============================= build $MPI_COMPILER ================== -./b2 -d+2 -q %{?_smp_mflags} --with-mpi --with-graph_parallel \ - --build-dir=$MPI_COMPILER variant=release threading=multi \ - debug-symbols=on pch=off python=%{python2_version} stage -echo ============================= build $MPI_COMPILER-py3 ================== -./b2 -d+2 -q %{?_smp_mflags} --user-config=./python3-config.jam \ - --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER-py3 \ - variant=release threading=multi debug-symbols=on pch=off \ - python=%{python3_version} stage +%if %{with python3} +echo ============================= build $MPI_COMPILER ================== +./b2 -d+2 -q %{?_smp_mflags} \ + --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \ + variant=release threading=multi debug-symbols=on pch=off \ + python=%{python3_version} stage +%endif %{_mpich_unload} export PATH=/bin${PATH:+:}$PATH @@ -787,29 +691,28 @@ module purge ||: %if 0%{with openmpi} %{_openmpi_load} + +%if %{with python3} echo ============================= install $MPI_COMPILER ================== -./b2 -q %{?_smp_mflags} --with-mpi --with-graph_parallel \ - --build-dir=$MPI_COMPILER --stagedir=${RPM_BUILD_ROOT}${MPI_HOME} \ +./b2 -q %{?_smp_mflags} \ + --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \ + --stagedir=${RPM_BUILD_ROOT}${MPI_HOME} \ variant=release threading=multi debug-symbols=on pch=off \ - python=%{python2_version} stage + python=%{python3_version} stage mkdir -p ${RPM_BUILD_ROOT}%{python2_sitearch}/openmpi/boost touch ${RPM_BUILD_ROOT}%{python2_sitearch}/openmpi/boost/__init__.py -mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/mpi.so \ - ${RPM_BUILD_ROOT}%{python2_sitearch}/openmpi/boost/ - -echo ============================= install $MPI_COMPILER-py3 ================== -./b2 -q %{?_smp_mflags} --user-config=./python3-config.jam \ - --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER-py3 \ - --stagedir=${RPM_BUILD_ROOT}${MPI_HOME} variant=release \ - threading=multi debug-symbols=on pch=off \ - python=%{python3_version} stage - -mkdir -p ${RPM_BUILD_ROOT}%{python3_sitearch}/openmpi/boost -touch ${RPM_BUILD_ROOT}%{python3_sitearch}/openmpi/boost/__init__.py -mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/mpi.so ${RPM_BUILD_ROOT}%{python3_sitearch}/openmpi/boost/ +mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/boost-python%{python3_version}/mpi.so \ + ${RPM_BUILD_ROOT}%{python3_sitearch}/openmpi/boost/ +%endif rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_{python,{w,}serialization}* +rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_numpy* +rm -r ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake + +version=%{version} +rm ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_*.so.${version%%.*} +rm ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_*.so.${version%%%%.*} %{_openmpi_unload} export PATH=/bin${PATH:+:}$PATH @@ -817,64 +720,70 @@ export PATH=/bin${PATH:+:}$PATH %if 0%{with mpich} %{_mpich_load} -echo ============================= install $MPI_COMPILER ================== -./b2 -q %{?_smp_mflags} --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \ - --stagedir=${RPM_BUILD_ROOT}${MPI_HOME} variant=release threading=multi\ - debug-symbols=on pch=off python=%{python2_version} stage -mkdir -p ${RPM_BUILD_ROOT}%{python2_sitearch}/mpich/boost -touch ${RPM_BUILD_ROOT}%{python2_sitearch}/mpich/boost/__init__.py -mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/mpi.so ${RPM_BUILD_ROOT}%{python2_sitearch}/mpich/boost/ - -echo ============================= install $MPI_COMPILER-py3 ================== -./b2 -q %{?_smp_mflags} --user-config=./python3-config.jam \ - --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER-py3 \ - --stagedir=${RPM_BUILD_ROOT}${MPI_HOME} variant=release threading=multi \ - debug-symbols=on pch=off python=%{python3_version} stage +%if %{with python3} +echo ============================= install $MPI_COMPILER ================== +./b2 -q %{?_smp_mflags} \ + --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \ + --stagedir=${RPM_BUILD_ROOT}${MPI_HOME} \ + variant=release threading=multi debug-symbols=on pch=off \ + python=%{python3_version} stage mkdir -p ${RPM_BUILD_ROOT}%{python3_sitearch}/mpich/boost touch ${RPM_BUILD_ROOT}%{python3_sitearch}/mpich/boost/__init__.py -mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/mpi.so ${RPM_BUILD_ROOT}%{python3_sitearch}/mpich/boost/ +mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/boost-python%{python3_version}/mpi.so \ + ${RPM_BUILD_ROOT}%{python3_sitearch}/mpich/boost/ +%endif rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_{python,{w,}serialization}* +rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_numpy* +rm -r ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake + +version=%{version} +rm ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_*.so.${version%%.*} +rm ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_*.so.${version%%%%.*} %{_mpich_unload} export PATH=/bin${PATH:+:}$PATH %endif echo ============================= install serial ================== -./b2 -d+2 -q %{?_smp_mflags} --without-mpi --without-graph_parallel \ - --build-dir=serial --prefix=$RPM_BUILD_ROOT%{_prefix} \ +./b2 -d+2 -q %{?_smp_mflags} \ + --without-mpi --without-graph_parallel --build-dir=serial \ +%if !%{with context} + --without-context --without-coroutine \ + --without-fiber \ +%endif + --prefix=$RPM_BUILD_ROOT%{_prefix} \ --libdir=$RPM_BUILD_ROOT%{_libdir} \ variant=release threading=multi debug-symbols=on pch=off \ - python=%{python2_version} install +%if %{with python3} + python=%{python3_version} \ +%endif + install [ -f $RPM_BUILD_ROOT%{_libdir}/libboost_thread.so ] rm -f $RPM_BUILD_ROOT%{_libdir}/libboost_thread.so install -p -m 644 $(basename %{SOURCE1}) $RPM_BUILD_ROOT%{_libdir}/ -echo ============================= install serial-py3 ================== -./b2 -d+2 -q %{?_smp_mflags} --user-config=python3-config.jam \ - --with-python --build-dir=serial-py3 --prefix=$RPM_BUILD_ROOT%{_prefix} \ - --libdir=$RPM_BUILD_ROOT%{_libdir} variant=release threading=multi \ - debug-symbols=on pch=off python=%{python3_version} install +rm -r $RPM_BUILD_ROOT/%{_libdir}/cmake + +version=%{version} +rm $RPM_BUILD_ROOT%{_libdir}/libboost_*.so.${version%%.*} +rm $RPM_BUILD_ROOT%{_libdir}/libboost_*.so.${version%%%%.*} echo ============================= install Boost.Build ================== (cd tools/build ./b2 --prefix=$RPM_BUILD_ROOT%{_prefix} install - cp %{_builddir}/%{name}_%{version_enc}/tools/build/src/build/*.py $RPM_BUILD_ROOT%{_datadir}/boost-build/src/build/ - cp %{_builddir}/%{name}_%{version_enc}/tools/build/src/tools/*.py $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/ - chmod -x $RPM_BUILD_ROOT%{_datadir}/boost-build/src/build/alias.py chmod +x $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxproc.py - rm -f $RPM_BUILD_ROOT%{_bindir}/b2 - rm -f $RPM_BUILD_ROOT%{_datadir}/boost-build/src/build/project.ann.py + sed -i '1s@^#!/usr/bin.python$@&3@' $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxproc.py + rm $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxygen/windows-paths-check.hpp rm -f $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxygen/windows-paths-check.hpp - rm -rf $RPM_BUILD_ROOT%{_libdir}/cmake - rm -rf $RPM_BUILD_ROOT%{_libdir}/*.so.1 - rm -rf $RPM_BUILD_ROOT%{_libdir}/*.so.1.%{version_mid} + rm -f $RPM_BUILD_ROOT%{_bindir}/b2 + install -m 755 %{_builddir}/%{name}_%{version_enc}/tools/build/b2 $RPM_BUILD_ROOT%{_bindir}/bjam - %{__install} -p -m 644 v2/doc/bjam.1 -D $RPM_BUILD_ROOT%{_mandir}/man1/bjam.1 - cp %{_libdir}/libboost_*.so.1.66.* $RPM_BUILD_ROOT%{_libdir} + %{__install} -p -m 644 %{SOURCE2} -D $RPM_BUILD_ROOT%{_mandir}/man1/bjam.1 + cp %{_libdir}/libboost_*.so.1.72.* $RPM_BUILD_ROOT%{_libdir} ) echo ============================= install Boost.QuickBook ================== @@ -963,73 +872,73 @@ fi %files %license LICENSE_1_0.txt -%exclude %{_libdir}/libboost_signals.so.1.66.0 %files contract %license LICENSE_1_0.txt %{_libdir}/libboost_contract.so.%{sonamever} +%{_libdir}/libboost_contract.so.1.72.* %files atomic %license LICENSE_1_0.txt %{_libdir}/libboost_atomic.so.%{sonamever} -%{_libdir}/libboost_atomic.so.1.66.* +%{_libdir}/libboost_atomic.so.1.72.* %files chrono %license LICENSE_1_0.txt %{_libdir}/libboost_chrono.so.%{sonamever} -%{_libdir}/libboost_chrono.so.1.66.* +%{_libdir}/libboost_chrono.so.1.72.* %files container %license LICENSE_1_0.txt %{_libdir}/libboost_container.so.%{sonamever} -%{_libdir}/libboost_container.so.1.66.* +%{_libdir}/libboost_container.so.1.72.* %files context %license LICENSE_1_0.txt %{_libdir}/libboost_context.so.%{sonamever} -%{_libdir}/libboost_context.so.1.66.* +%{_libdir}/libboost_context.so.1.72.* %files coroutine %license LICENSE_1_0.txt %{_libdir}/libboost_coroutine.so.%{sonamever} -%{_libdir}/libboost_coroutine.so.1.66.* +%{_libdir}/libboost_coroutine.so.1.72.* %files date-time %license LICENSE_1_0.txt %{_libdir}/libboost_date_time.so.%{sonamever} -%{_libdir}/libboost_date_time.so.1.66.* +%{_libdir}/libboost_date_time.so.1.72.* %files fiber %license LICENSE_1_0.txt %{_libdir}/libboost_fiber.so.%{sonamever} -%{_libdir}/libboost_fiber.so.1.66.* +%{_libdir}/libboost_fiber.so.1.72.* %files filesystem %license LICENSE_1_0.txt %{_libdir}/libboost_filesystem.so.%{sonamever} -%{_libdir}/libboost_filesystem.so.1.66.* +%{_libdir}/libboost_filesystem.so.1.72.* %files graph %license LICENSE_1_0.txt %{_libdir}/libboost_graph.so.%{sonamever} -%{_libdir}/libboost_graph.so.1.66.* +%{_libdir}/libboost_graph.so.1.72.* %files iostreams %license LICENSE_1_0.txt %{_libdir}/libboost_iostreams.so.%{sonamever} -%{_libdir}/libboost_iostreams.so.1.66.* +%{_libdir}/libboost_iostreams.so.1.72.* %files locale %license LICENSE_1_0.txt %{_libdir}/libboost_locale.so.%{sonamever} -%{_libdir}/libboost_locale.so.1.66.* +%{_libdir}/libboost_locale.so.1.72.* %files log %license LICENSE_1_0.txt %{_libdir}/libboost_log.so.%{sonamever} -%{_libdir}/libboost_log.so.1.66.* +%{_libdir}/libboost_log.so.1.72.* %{_libdir}/libboost_log_setup.so.%{sonamever} -%{_libdir}/libboost_log_setup.so.1.66.* +%{_libdir}/libboost_log_setup.so.1.72.* %files math %license LICENSE_1_0.txt @@ -1040,113 +949,105 @@ fi %{_libdir}/libboost_math_tr1f.so.%{sonamever} %{_libdir}/libboost_math_tr1l.so.%{sonamever} -%{_libdir}/libboost_math_c99.so.1.66.* -%{_libdir}/libboost_math_c99f.so.1.66.* -%{_libdir}/libboost_math_c99l.so.1.66.* -%{_libdir}/libboost_math_tr1.so.1.66.* -%{_libdir}/libboost_math_tr1f.so.1.66.* -%{_libdir}/libboost_math_tr1l.so.1.66.* -%files numpy2 -%license LICENSE_1_0.txt -%{_libdir}/libboost_numpy27.so.%{sonamever} -%{_libdir}/libboost_numpy.so.1.66.* +%{_libdir}/libboost_math_c99.so.1.72.* +%{_libdir}/libboost_math_c99f.so.1.72.* +%{_libdir}/libboost_math_c99l.so.1.72.* +%{_libdir}/libboost_math_tr1.so.1.72.* +%{_libdir}/libboost_math_tr1f.so.1.72.* +%{_libdir}/libboost_math_tr1l.so.1.72.* -%files numpy3 +%files nowide %license LICENSE_1_0.txt -%{_libdir}/libboost_numpy37.so.%{sonamever} -%{_libdir}/libboost_numpy3.so.1.66.* +%{_libdir}/libboost_nowide.so.%{sonamever} -%files test -%license LICENSE_1_0.txt -%{_libdir}/libboost_prg_exec_monitor.so.%{sonamever} -%{_libdir}/libboost_unit_test_framework.so.%{sonamever} -%{_libdir}/libboost_prg_exec_monitor.so.1.66.* -%{_libdir}/libboost_unit_test_framework.so.1.66.* +%if %{with python3} -%files program-options +%files numpy3 %license LICENSE_1_0.txt -%{_libdir}/libboost_program_options.so.%{sonamever} -%{_libdir}/libboost_program_options.so.1.66.* +%{_libdir}/libboost_numpy%{python3_lib_version}.so.%{sonamever} +%{_libdir}/libboost_numpy37.so.1.72.* -%files python2 +%files python3 %license LICENSE_1_0.txt -%{_libdir}/libboost_python27.so.%{sonamever} -%{_libdir}/libboost_python.so.1.66.* +%{_libdir}/libboost_python%{python3_lib_version}.so.%{sonamever} +%{_libdir}/libboost_python37.so.1.72.* -%files python2-devel +%files python3-devel %license LICENSE_1_0.txt -%{_libdir}/libboost_numpy27.so -%{_libdir}/libboost_python27.so +%{_libdir}/libboost_numpy%{python3_lib_version}.so +%{_libdir}/libboost_python%{python3_lib_version}.so -%files python3 +%endif + +%files test %license LICENSE_1_0.txt -%{_libdir}/libboost_python37.so.%{sonamever} -%{_libdir}/libboost_python3.so.1.66.* +%{_libdir}/libboost_prg_exec_monitor.so.%{sonamever} +%{_libdir}/libboost_unit_test_framework.so.%{sonamever} +%{_libdir}/libboost_prg_exec_monitor.so.1.72.* +%{_libdir}/libboost_unit_test_framework.so.1.72.* -%files python3-devel +%files program-options %license LICENSE_1_0.txt -%{_libdir}/libboost_numpy37.so -%{_libdir}/libboost_python37.so +%{_libdir}/libboost_program_options.so.%{sonamever} +%{_libdir}/libboost_program_options.so.1.72.* %files random %license LICENSE_1_0.txt %{_libdir}/libboost_random.so.%{sonamever} -%{_libdir}/libboost_random.so.1.66.* +%{_libdir}/libboost_random.so.1.72.* %files regex %license LICENSE_1_0.txt %{_libdir}/libboost_regex.so.%{sonamever} -%{_libdir}/libboost_regex.so.1.66.* +%{_libdir}/libboost_regex.so.1.72.* %files serialization %license LICENSE_1_0.txt %{_libdir}/libboost_serialization.so.%{sonamever} %{_libdir}/libboost_wserialization.so.%{sonamever} -%{_libdir}/libboost_serialization.so.1.66.* -%{_libdir}/libboost_wserialization.so.1.66.* +%{_libdir}/libboost_serialization.so.1.72.* +%{_libdir}/libboost_wserialization.so.1.72.* %files stacktrace %license LICENSE_1_0.txt %{_libdir}/libboost_stacktrace_addr2line.so.%{sonamever} %{_libdir}/libboost_stacktrace_basic.so.%{sonamever} %{_libdir}/libboost_stacktrace_noop.so.%{sonamever} -%{_libdir}/libboost_stacktrace_addr2line.so.1.66.* -%{_libdir}/libboost_stacktrace_basic.so.1.66.* -%{_libdir}/libboost_stacktrace_noop.so.1.66.* +%{_libdir}/libboost_stacktrace_addr2line.so.1.72.* +%{_libdir}/libboost_stacktrace_basic.so.1.72.* +%{_libdir}/libboost_stacktrace_noop.so.1.72.* %files system %license LICENSE_1_0.txt %{_libdir}/libboost_system.so.%{sonamever} -%{_libdir}/libboost_system.so.1.66.* +%{_libdir}/libboost_system.so.1.72.* %files thread %license LICENSE_1_0.txt %{_libdir}/libboost_thread.so.%{sonamever} -%{_libdir}/libboost_thread.so.1.66.* +%{_libdir}/libboost_thread.so.1.72.* %files timer %license LICENSE_1_0.txt %{_libdir}/libboost_timer.so.%{sonamever} -%{_libdir}/libboost_timer.so.1.66.* +%{_libdir}/libboost_timer.so.1.72.* %files type_erasure %license LICENSE_1_0.txt %{_libdir}/libboost_type_erasure.so.%{sonamever} -%{_libdir}/libboost_type_erasure.so.1.66.* +%{_libdir}/libboost_type_erasure.so.1.72.* %files wave %license LICENSE_1_0.txt %{_libdir}/libboost_wave.so.%{sonamever} -%{_libdir}/libboost_wave.so.1.66.* +%{_libdir}/libboost_wave.so.1.72.* %files help %doc %{boost_docdir}/* %files devel -%exclude %{_libdir}/libboost_numpy37.so -%exclude %{_libdir}/libboost_numpy27.so -%exclude %{_libdir}/libboost_python37.so -%exclude %{_libdir}/libboost_python27.so +%exclude %{_libdir}/libboost_numpy%{python3_lib_version}.so +%exclude %{_libdir}/libboost_python%{python3_lib_version}.so %license LICENSE_1_0.txt %{_includedir}/%{name} %{_libdir}/*.so @@ -1162,6 +1063,7 @@ fi %doc %{boost_examplesdir}/* %if 0%{with openmpi} + %files openmpi %license LICENSE_1_0.txt %{_libdir}/openmpi/lib/libboost_mpi.so.%{sonamever} @@ -1171,24 +1073,18 @@ fi %{_libdir}/openmpi/lib/libboost_mpi.so %{_libdir}/openmpi/lib/libboost_graph_parallel.so - -%license LICENSE_1_0.txt -%{_libdir}/openmpi/lib/libboost_mpi_python.so.%{sonamever} -%{python2_sitearch}/openmpi/boost/ - -%files openmpi-python2-devel -%license LICENSE_1_0.txt -%{_libdir}/openmpi/lib/libboost_mpi_python27.so +%if %{with python3} %files openmpi-python3 %license LICENSE_1_0.txt -%{_libdir}/openmpi/lib/libboost_mpi_python37.so.%{sonamever} +%{_libdir}/openmpi/lib/libboost_mpi_python%{python3_lib_version}.so.%{sonamever} %{python3_sitearch}/openmpi/boost/ %files openmpi-python3-devel %license LICENSE_1_0.txt -%{_libdir}/openmpi/lib/libboost_mpi_python37.so +%{_libdir}/openmpi/lib/libboost_mpi_python%{python3_lib_version}.so +%endif %files graph-openmpi %license LICENSE_1_0.txt @@ -1205,23 +1101,18 @@ fi %{_libdir}/mpich/lib/libboost_mpi.so %{_libdir}/mpich/lib/libboost_graph_parallel.so -%files mpich-python2 -%license LICENSE_1_0.txt -%{_libdir}/mpich/lib/libboost_mpi_python27.so.%{sonamever} -%{python2_sitearch}/mpich/boost/ - -%files mpich-python2-devel -%license LICENSE_1_0.txt -%{_libdir}/mpich/lib/libboost_mpi_python27.so +%if %{with python3} %files mpich-python3 %license LICENSE_1_0.txt -%{_libdir}/mpich/lib/libboost_mpi_python37.so.%{sonamever} +%{_libdir}/mpich/lib/libboost_mpi_python%{python3_lib_version}.so.%{sonamever} %{python3_sitearch}/mpich/boost/ %files mpich-python3-devel %license LICENSE_1_0.txt -%{_libdir}/mpich/lib/libboost_mpi_python37.so +%{_libdir}/mpich/lib/libboost_mpi_python%{python3_lib_version}.so + +%endif %files graph-mpich %license LICENSE_1_0.txt @@ -1244,19 +1135,25 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Fri Jul 24 2020 Wang Shuo - 1.73.0-1 +- Type:requirement +- ID:NA +- SUG:NA +- DESC:update boost to 1.73.0 + * Mon Apr 20 2020 Wang Shuo - 1.72.0-1 - Type:requirement - ID:NA - SUG:NA - DESC:update boost to 1.72.0 -* Fri Feb 28 2020 Wang Shuo - 1.66.0-18 -- Type:enhancement +* Thu Mar 19 2020 Yu Xiangyang - 1.66.0-18 +- Type:bugfix - ID:NA -- SUG:restart -- DESC:remove %{?dist} in Release +- SUG:NA +- DESC: fix build src.rpm error -* Wed Feb 26 2020 Wang Shuo - 1.66.0-17 +* Tue Mar 10 2020 Wang Shuo - 1.66.0-17 - Type:enhancement - ID:NA - SUG:NA diff --git a/boost_1_72_0.tar.bz2 b/boost_1_73_0.tar.bz2 similarity index 85% rename from boost_1_72_0.tar.bz2 rename to boost_1_73_0.tar.bz2 index c3682fdf07771570c1a55d992d9fde221ef14131..a8e153013be01809f26362c43478b4763cc21010 100644 Binary files a/boost_1_72_0.tar.bz2 and b/boost_1_73_0.tar.bz2 differ