diff --git a/Makefile b/Makefile
index 1f6b48c..1cd1cf9 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
all: boost.spec
boost.spec: boost.spec.in
- @./mkspec.sh
+ @sh ./mkspec.sh
diff --git a/README b/README
deleted file mode 100644
index 58d8ade..0000000
--- a/README
+++ /dev/null
@@ -1,2 +0,0 @@
-This package is only needed for updating from an older version of
-of the distribution.
diff --git a/baselibs.conf b/baselibs.conf
index a1ab9b3..224b826 100644
--- a/baselibs.conf
+++ b/baselibs.conf
@@ -1,17 +1,17 @@
-arch ppc64 package boost
-arch ppc64 package boost-devel
-arch ppc64 package libboost_date_time-gcc43-mt-1_36-1_36_0
-arch ppc64 package libboost_filesystem-gcc43-mt-1_36-1_36_0
-arch ppc64 package libboost_graph-gcc43-mt-1_36-1_36_0
-arch ppc64 package libboost_iostreams-gcc43-mt-1_36-1_36_0
-arch ppc64 package libboost_math-gcc43-mt-1_36-1_36_0
-arch ppc64 package libboost_mpi-gcc43-mt-1_36-1_36_0
-arch ppc64 package libboost_test-gcc43-mt-1_36-1_36_0
-arch ppc64 package libboost_program_options-gcc43-mt-1_36-1_36_0
-arch ppc64 package libboost_python-gcc43-mt-1_36-1_36_0
-arch ppc64 package libboost_serialization-gcc43-mt-1_36-1_36_0
-arch ppc64 package libboost_signals-gcc43-mt-1_36-1_36_0
-arch ppc64 package libboost_system-gcc43-mt-1_36-1_36_0
-arch ppc64 package libboost_thread-gcc43-mt-1_36-1_36_0
-arch ppc64 package libboost_wave-gcc43-mt-1_36-1_36_0
-arch ppc64 package libboost_regex-gcc43-mt-1_36-1_36_0
+arch ppc package boost
+arch ppc package boost-devel
+arch ppc package libboost_date_time1_36_0
+arch ppc package libboost_filesystem1_36_0
+arch ppc package libboost_graph1_36_0
+arch ppc package libboost_iostreams1_36_0
+arch ppc package libboost_math1_36_0
+arch ppc package libboost_mpi1_36_0
+arch ppc package libboost_test1_36_0
+arch ppc package libboost_program_options1_36_0
+arch ppc package libboost_python1_36_0
+arch ppc package libboost_serialization1_36_0
+arch ppc package libboost_signals1_36_0
+arch ppc package libboost_system1_36_0
+arch ppc package libboost_thread1_36_0
+arch ppc package libboost_wave1_36_0
+arch ppc package libboost_regex1_36_0
diff --git a/boost-default_extension.patch b/boost-default_extension.patch
new file mode 100644
index 0000000..0744dd2
--- /dev/null
+++ b/boost-default_extension.patch
@@ -0,0 +1,17 @@
+See https://svn.boost.org/trac/boost/ticket/2224
+
+The default extension is wrong for string_type==std::wstring and causes a
+compiler error.
+
+
+--- boost/filesystem/path.hpp
++++ boost/filesystem/path.hpp
+@@ -203,7 +203,7 @@
+ }
+
+ basic_path & remove_filename();
+- basic_path & replace_extension( const string_type & new_extension = "" );
++ basic_path & replace_extension( const string_type & new_extension = string_type() );
+
+ # ifndef BOOST_FILESYSTEM_NO_DEPRECATED
+ basic_path & remove_leaf() { return remove_filename(); }
diff --git a/boost-rpmlintrc b/boost-rpmlintrc
index 65cd588..4cdd609 100644
--- a/boost-rpmlintrc
+++ b/boost-rpmlintrc
@@ -8,3 +8,4 @@ addFilter("boost.* rpm-buildroot-usage")
addFilter("boost.* explicit-lib-dependency")
addFilter("boost.* filename-too-long-for-joliet")
addFilter("boost.* no-binary")
+addFilter("boost.* static-library-without-debuginfo")
diff --git a/boost-sane_versioning.patch b/boost-sane_versioning.patch
new file mode 100644
index 0000000..7372770
--- /dev/null
+++ b/boost-sane_versioning.patch
@@ -0,0 +1,30 @@
+--- Jamroot
++++ Jamroot
+@@ -311,9 +311,7 @@
+ if $(layout) = versioned
+ {
+ local result = [ common.format-name
+- -$(BOOST_VERSION_TAG)
+- -$(BUILD_ID)
+- : $(name) : $(type) : $(property-set) ] ;
++ : $(name) : $(type) : $(property-set) ] ;
+
+ # Optionally add version suffix.
+ # On NT, library with version suffix won't be recognized
+@@ -448,13 +446,9 @@
+ return $(result) ;
+ }
+
+- generate stage-unversioned : stage-proper :
+- @make-unversioned-links ;
+- explicit stage-unversioned ;
+-
+- generate install-unversioned : install-proper :
+- @make-unversioned-links ;
+- explicit install-unversioned ;
++ # Create do-nothing aliases
++ alias stage-unversioned ;
++ alias install-unversioned ;
+ }
+ else
+ {
diff --git a/boost-sigcld_handling.patch b/boost-sigcld_handling.patch
new file mode 100644
index 0000000..e420fa5
--- /dev/null
+++ b/boost-sigcld_handling.patch
@@ -0,0 +1,72 @@
+--- boost/test/impl/execution_monitor.ipp
++++ boost/test/impl/execution_monitor.ipp 2008/10/29 12:36:46
+@@ -401,40 +401,43 @@
+ }
+ break;
+
++#if defined(BOOST_TEST_CATCH_SIGCHLD)
++
+ case SIGCHLD:
+ switch( m_sig_info->si_code ) {
+ case CLD_EXITED:
+ report_error( execution_exception::system_error,
+ "child has exited; pid: %d; uid: %d; exit value: %d",
+- (int)m_sig_info->si_uid, (int)m_sig_info->si_pid, (int)m_sig_info->si_status );
++ (int)m_sig_info->si_pid, (int)m_sig_info->si_uid, (int)m_sig_info->si_status );
+ break;
+ case CLD_KILLED:
+ report_error( execution_exception::system_error,
+ "child was killed; pid: %d; uid: %d; exit value: %d",
+- (int)m_sig_info->si_uid, (int)m_sig_info->si_pid, (int)m_sig_info->si_status );
++ (int)m_sig_info->si_pid, (int)m_sig_info->si_uid, (int)m_sig_info->si_status );
+ break;
+ case CLD_DUMPED:
+ report_error( execution_exception::system_error,
+ "child terminated abnormally; pid: %d; uid: %d; exit value: %d",
+- (int)m_sig_info->si_uid, (int)m_sig_info->si_pid, (int)m_sig_info->si_status );
++ (int)m_sig_info->si_pid, (int)m_sig_info->si_uid, (int)m_sig_info->si_status );
+ break;
+ case CLD_TRAPPED:
+ report_error( execution_exception::system_error,
+ "traced child has trapped; pid: %d; uid: %d; exit value: %d",
+- (int)m_sig_info->si_uid, (int)m_sig_info->si_pid, (int)m_sig_info->si_status );
++ (int)m_sig_info->si_pid, (int)m_sig_info->si_uid, (int)m_sig_info->si_status );
+ break;
+ case CLD_STOPPED:
+ report_error( execution_exception::system_error,
+ "child has stopped; pid: %d; uid: %d; exit value: %d",
+- (int)m_sig_info->si_uid, (int)m_sig_info->si_pid, (int)m_sig_info->si_status );
++ (int)m_sig_info->si_pid, (int)m_sig_info->si_uid, (int)m_sig_info->si_status );
+ break;
+ case CLD_CONTINUED:
+ report_error( execution_exception::system_error,
+ "stopped child had continued; pid: %d; uid: %d; exit value: %d",
+- (int)m_sig_info->si_uid, (int)m_sig_info->si_pid, (int)m_sig_info->si_status );
++ (int)m_sig_info->si_pid, (int)m_sig_info->si_uid, (int)m_sig_info->si_status );
+ break;
+ }
+ break;
++#endif
+
+ #if defined(BOOST_TEST_CATCH_SIGPOLL)
+
+@@ -595,7 +598,9 @@
+ signal_action m_FPE_action;
+ signal_action m_SEGV_action;
+ signal_action m_BUS_action;
++#ifdef BOOST_TEST_CATCH_SIGCHLD
+ signal_action m_CHLD_action;
++#endif
+ #ifdef BOOST_TEST_CATCH_SIGPOLL
+ signal_action m_POLL_action;
+ #endif
+@@ -621,7 +626,9 @@
+ , m_FPE_action ( SIGFPE , catch_system_errors, attach_dbg, alt_stack )
+ , m_SEGV_action( SIGSEGV, catch_system_errors, attach_dbg, alt_stack )
+ , m_BUS_action ( SIGBUS , catch_system_errors, attach_dbg, alt_stack )
++#ifdef BOOST_TEST_CATCH_SIGCHLD
+ , m_CHLD_action( SIGCHLD, catch_system_errors, attach_dbg, alt_stack )
++#endif
+ #ifdef BOOST_TEST_CATCH_SIGPOLL
+ , m_POLL_action( SIGPOLL, catch_system_errors, attach_dbg, alt_stack )
+ #endif
diff --git a/boost-strict_aliasing.patch b/boost-strict_aliasing.patch
new file mode 100644
index 0000000..af66849
--- /dev/null
+++ b/boost-strict_aliasing.patch
@@ -0,0 +1,12 @@
+--- libs/python/build/Jamfile.v2
++++ libs/python/build/Jamfile.v2
+@@ -24,7 +24,8 @@
+
+ project boost/python
+ : source-location ../src
+- ;
++ : requirements -fno-strict-aliasing
++ ;
+
+ rule cond ( test ? : yes * : no * ) { if $(test) { return $(yes) ; } else { return $(no) ; } }
+ rule unless ( test ? : yes * : no * ) { if ! $(test) { return $(yes) ; } else { return $(no) ; } }
diff --git a/boost.changes b/boost.changes
index 82c38da..9b18bc3 100644
--- a/boost.changes
+++ b/boost.changes
@@ -1,3 +1,33 @@
+-------------------------------------------------------------------
+Tue Nov 11 16:55:39 CET 2008 - ro@suse.de
+
+- SLE-11 uses PPC64 instead of PPC, adapt baselibs.conf
+
+-------------------------------------------------------------------
+Fri Oct 31 12:40:57 CET 2008 - pth@suse.de
+
+- Fix the bug that made boost.monitor mix up uid and pib and
+ also make boost.monitor not special-case SIGCLD (bnc#439805)
+- Fix generation of default extension in boost.filesystem.
+
+- Make boost recommend library subpackages instead of requiring
+ them to allow removal of unwanted libraries after update.
+- Run mkspec explicitely in a shell so that mkspec.sh doesn't
+ need to be executable.
+- Disable deletion of full-name symlinks in boost.spec.in.
+- Make boost-devel directly require all library subpackages.
+- boost.rpm isn't needed, even for updates, so don't build it and
+ remove the README file needeed only for this package.
+- Make debug package require all library subpackages.
+- Add pre_checkin.sh to ensure that boost.spec is regenerated
+ at check-in time.
+- Make boost.build use sane library names. Only the multi-threaded
+ libraries are built and these have no -mt in their name.
+ Symlinks for convenience are spupplied.
+- Use -fno-strict-aliasing only for boost.python, where it's needed.
+- Don't use configure and make (only convenience wrappers) but
+ call bjam directly.
+
-------------------------------------------------------------------
Mon Oct 27 11:57:35 CET 2008 - ro@suse.de
diff --git a/boost.spec b/boost.spec
index 2d3a2ac..e373ac0 100644
--- a/boost.spec
+++ b/boost.spec
@@ -22,6 +22,13 @@
%else
%define build_mpi 1
%endif
+%define most_libs libboost_date_time1_36_0 libboost_filesystem1_36_0 libboost_graph1_36_0 libboost_iostreams1_36_0 libboost_math1_36_0 libboost_test1_36_0 libboost_program_options1_36_0 libboost_python1_36_0 libboost_serialization1_36_0 libboost_signals1_36_0 libboost_system1_36_0 libboost_thread1_36_0 libboost_wave1_36_0 libboost_regex1_36_0
+%if %build_mpi
+%define all_libs %{most_libs} libboost_mpi1_36_0
+%else
+%define all_libs %{most_libs}
+%endif
+%define debug_package_requires %{all_libs}
Name: boost
BuildRequires: boost-jam >= 3.1.16 dos2unix gcc-c++ libbz2-devel libicu-devel python-devel xorg-x11-devel
@@ -38,15 +45,15 @@ Group: Development/Libraries/C and C++
Summary: Boost C++ Libraries
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Version: 1.36.0
-Release: 6
+Release: 7
Source0: %{name}_1_36_0.tar.bz2
Source1: boost-rpmlintrc
Source2: boost_1_33_1_man.tar.bz2
Source3: existing_extra_docs
-Source4: README
Source5: mkspec.sh
Source6: boost.spec.in
Source7: Makefile
+Source8: pre_checkin.sh
Patch0: boost-threading.patch
Patch1: boost-thread.patch
Patch2: boost-no_type_punning.patch
@@ -54,26 +61,12 @@ Patch4: boost-visit_each.diff
Patch5: boost-pass_BJAM_CONFIG.patch
Patch6: boost-use_rpm_optflags.patch
Patch8: boost-no_segfault_in_Regex_filter.patch
-Patch17: boost-ppc-asm.patch
-Requires: libboost_date_time-gcc43-mt-1_36-1_36_0
-Requires: libboost_filesystem-gcc43-mt-1_36-1_36_0
-Requires: libboost_graph-gcc43-mt-1_36-1_36_0
-Requires: libboost_iostreams-gcc43-mt-1_36-1_36_0
-Requires: libboost_math-gcc43-mt-1_36-1_36_0
-%if %build_mpi
-Requires: libboost_mpi-gcc43-mt-1_36-1_36_0
-%endif
-Requires: libboost_test-gcc43-mt-1_36-1_36_0
-Requires: libboost_program_options-gcc43-mt-1_36-1_36_0
-Requires: libboost_python-gcc43-mt-1_36-1_36_0
-Requires: libboost_serialization-gcc43-mt-1_36-1_36_0
-Requires: libboost_signals-gcc43-mt-1_36-1_36_0
-Requires: libboost_system-gcc43-mt-1_36-1_36_0
-Requires: libboost_thread-gcc43-mt-1_36-1_36_0
-Requires: libboost_wave-gcc43-mt-1_36-1_36_0
-Requires: libboost_regex-gcc43-mt-1_36-1_36_0
-Requires: boost-license
-%define _prefix /usr
+Patch9: boost-ppc-asm.patch
+Patch18: boost-sigcld_handling.patch
+Patch19: boost-sane_versioning.patch
+Patch20: boost-strict_aliasing.patch
+Patch21: boost-default_extension.patch
+Recommends: %{all_libs}
%description
Boost provides free peer-reviewed portable C++ source libraries. The
@@ -99,7 +92,8 @@ documentation, see the boost-doc package.
License: BSD 3-Clause
Summary: Development package for Boost C++
Group: Development/Libraries/C and C++
-Requires: %{name} = %{version}
+Requires: %{all_libs}
+Requires: %{name}-license = %{version}
AutoReqProv: on
%description devel
@@ -132,193 +126,192 @@ This package contains documentation about the boost dynamic libraries.
-%package -n libboost_date_time-gcc43-mt-1_36-1_36_0
+%package -n libboost_date_time1_36_0
License: BSD 3-Clause
Summary: Boost::Date.Time Runtime libraries
Group: System/Libraries
Requires: %{name}-license = %{version}
AutoReqProv: on
-%description -n libboost_date_time-gcc43-mt-1_36-1_36_0
+%description -n libboost_date_time1_36_0
This package contains the Boost Date.Time runtime libraries.
-%package -n libboost_filesystem-gcc43-mt-1_36-1_36_0
+%package -n libboost_filesystem1_36_0
License: BSD 3-Clause
Summary: Boost::Filesystem Runtime Libraries
Group: System/Localization
Requires: %{name}-license = %{version}
AutoReqProv: on
-%description -n libboost_filesystem-gcc43-mt-1_36-1_36_0
+%description -n libboost_filesystem1_36_0
This package contains the Boost::Filesystem libraries.
-%package -n libboost_graph-gcc43-mt-1_36-1_36_0
+%package -n libboost_graph1_36_0
License: BSD 3-Clause
Summary: Boost::Graph Runtime Libraries
Group: System/Libraries
Requires: %{name}-license = %{version}
AutoReqProv: on
-%description -n libboost_graph-gcc43-mt-1_36-1_36_0
+%description -n libboost_graph1_36_0
This package contains the Boost::Graph Runtime libraries.
-%package -n libboost_iostreams-gcc43-mt-1_36-1_36_0
+%package -n libboost_iostreams1_36_0
License: BSD 3-Clause
Summary: Boost::IOStreams Runtime Libraries
Group: System/Libraries
Requires: %{name}-license = %{version}
AutoReqProv: on
-%description -n libboost_iostreams-gcc43-mt-1_36-1_36_0
+%description -n libboost_iostreams1_36_0
This package contains the Boost::IOStreams Runtime libraries.
-%package -n libboost_math-gcc43-mt-1_36-1_36_0
+%package -n libboost_math1_36_0
License: BSD 3-Clause
Summary: Boost::Math Runtime Libraries
Group: System/Libraries
Requires: %{name}-license = %{version}
AutoReqProv: on
-%description -n libboost_math-gcc43-mt-1_36-1_36_0
+%description -n libboost_math1_36_0
This package contains the Boost::Math Runtime libraries.
%if %build_mpi
-%package -n libboost_mpi-gcc43-mt-1_36-1_36_0
+%package -n libboost_mpi1_36_0
License: BSD 3-Clause
Summary: Boost::MPI Runtime libraries
Group: System/Libraries
Requires: %{name}-license = %{version}
AutoReqProv: on
-%description -n libboost_mpi-gcc43-mt-1_36-1_36_0
+%description -n libboost_mpi1_36_0
This package contains the Boost::MPI Runtime libraries.
%endif
-%package -n libboost_test-gcc43-mt-1_36-1_36_0
+%package -n libboost_test1_36_0
License: BSD 3-Clause
Summary: Boost::Test Runtime Libraries
Group: System/Libraries
Requires: %{name}-license = %{version}
AutoReqProv: on
-%description -n libboost_test-gcc43-mt-1_36-1_36_0
+%description -n libboost_test1_36_0
This package contains the Boost::Test runtime libraries.
-%package -n libboost_program_options-gcc43-mt-1_36-1_36_0
+%package -n libboost_program_options1_36_0
License: BSD 3-Clause
Summary: Boost::ProgramOptions Runtime libraries
Group: System/Libraries
Requires: %{name}-license = %{version}
AutoReqProv: on
-%description -n libboost_program_options-gcc43-mt-1_36-1_36_0
+%description -n libboost_program_options1_36_0
This package contains the Boost::ProgramOptions Runtime libraries.
-%package -n libboost_python-gcc43-mt-1_36-1_36_0
+%package -n libboost_python1_36_0
License: BSD 3-Clause
Summary: Boost::Python Runtime Libraries
Group: System/Libraries
Requires: %{name}-license = %{version}
AutoReqProv: on
-%description -n libboost_python-gcc43-mt-1_36-1_36_0
+%description -n libboost_python1_36_0
This package contains the Boost::Python Runtime libraries.
-%package -n libboost_serialization-gcc43-mt-1_36-1_36_0
+%package -n libboost_serialization1_36_0
License: BSD 3-Clause
Summary: Boost::Serialization Runtime Libraries
Group: System/Libraries
Requires: %{name}-license = %{version}
AutoReqProv: on
-%description -n libboost_serialization-gcc43-mt-1_36-1_36_0
+%description -n libboost_serialization1_36_0
This package contains the Boost::Serialization Runtime libraries.
-%package -n libboost_signals-gcc43-mt-1_36-1_36_0
+%package -n libboost_signals1_36_0
License: BSD 3-Clause
Summary: Boost::Signals Runtime Libraries
Group: System/Libraries
Requires: %{name}-license = %{version}
AutoReqProv: on
-%description -n libboost_signals-gcc43-mt-1_36-1_36_0
+%description -n libboost_signals1_36_0
This package contains the Boost::Signals Runtime libraries.
-%package -n libboost_system-gcc43-mt-1_36-1_36_0
+%package -n libboost_system1_36_0
License: BSD 3-Clause
Summary: Boost::System Runtime Libraries
Group: System/Libraries
Requires: %{name}-license = %{version}
AutoReqProv: on
-%description -n libboost_system-gcc43-mt-1_36-1_36_0
+%description -n libboost_system1_36_0
This package contains the Boost::System runtime libraries.
-%package -n libboost_thread-gcc43-mt-1_36-1_36_0
+%package -n libboost_thread1_36_0
License: BSD 3-Clause
Summary: Boost::Thread Runtime Libraries
Group: System/Libraries
Requires: %{name}-license = %{version}
AutoReqProv: on
-%description -n libboost_thread-gcc43-mt-1_36-1_36_0
+%description -n libboost_thread1_36_0
This package contains the Boost::Thread runtime libraries.
-%package -n libboost_wave-gcc43-mt-1_36-1_36_0
+%package -n libboost_wave1_36_0
License: BSD 3-Clause
Summary: Boost::Wave Runtime Libraries
Group: System/Libraries
Requires: %{name}-license = %{version}
AutoReqProv: on
-%description -n libboost_wave-gcc43-mt-1_36-1_36_0
+%description -n libboost_wave1_36_0
This package contains the Boost::Wave runtime libraries.
-%package -n libboost_regex-gcc43-mt-1_36-1_36_0
+%package -n libboost_regex1_36_0
License: BSD 3-Clause
Summary: The Boost::Regex runtime library
Group: System/Libraries
Requires: %{name}-license = %{version}
AutoReqProv: on
-%description -n libboost_regex-gcc43-mt-1_36-1_36_0
+%description -n libboost_regex1_36_0
This package contains the Boost::Regex runtime library.
%prep
%setup -q -n %{name}_1_36_0 -a 2
-cp %{S:4} .
find -name .cvsignore -exec rm -f {} +
#everything in the tarball has the executable flag set ......
find -type f ! \( -name \*.sh -o -name \*.py -o -name \*.pl \) -exec chmod -x {} +
@@ -329,61 +322,114 @@ find -type f ! \( -name \*.sh -o -name \*.py -o -name \*.pl \) -exec chmod -x {}
%patch5
%patch6
%patch8
-%patch17
+%patch9
+%patch18
+%patch19
+%patch20
+%patch21
chmod +x configure
#stupid build machinery copies .orig files
find . -name \*.orig -exec rm {} +
%build
-# define bjam_config -d2 --layout=system %{?jobs:-j%jobs}
-%define bjam_config -d2 %{?jobs:-j%jobs}
find . -type f -exec chmod u+w {} +
# Now build it
-BUILD_FLAGS="--with-toolset=gcc --prefix=%{buildroot}/usr --libdir=%{buildroot}%{_libdir} --with-bjam=/usr/bin/bjam"
+J_P=%{jobs}
+J_G=$(getconf _NPROCESSORS_CONF)
+if test -z "$JOBS"; then
+ JOBS=$J_G
+else
+ test 1 -gt "$JOBS" && JOBS=1
+fi
+if test "$JOBS" == "0"; then
+ JOBS=1
+fi
+# In case you want more parallel jobs then autobuild grants you
+#if [ $J_P -gt $J_I ]; then
+# JOBS=$J_G
+#fi
+BJAM_CONFIG="-d2 -j$JOBS -sICU_PATH=%{_prefix}"
PYTHON_VERSION=$(python -c 'import sys; print sys.version[:3]')
PYTHON_FLAGS="--with-python-root=/usr --with-python-version=$PYTHON_VERSION"
REGEX_FLAGS="--with-icu"
-#BJAM_TARGET=rpm
-export EXPAT_INCLUDE=/usr/include EXPAT_LIBPATH=%{_libdir}
-BJAM_CONFIG="%bjam_config" BJAM_TARGET="$BJAM_TARGET" ./configure $BUILD_FLAGS $PYTHON_FLAGS $REGEX_FLAGS
-%if %build_mpi
-echo "using mpi ;" >> user-config.jam
-%endif
-export RPM_OPT_FLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -Wno-deprecated"
-make all
+export EXPAT_INCLUDE=/usr/include EXPAT_LIBPATH=%{_libdir} REGEX_FLAGS="--with-icu"
+export PYTHON_FLAGS
+cat << EOF >user-config.jam
+# Boost.Build Configuration
+# Compiler configuration
+using gcc ;
+# Python configuration
+using python : ${PYTHON_VERSION} : %{_prefix} ;
+using mpi ;
+EOF
+# Set PATH, MANPATH and LD_LIBRARY_PATH
+source /var/mpi-selector/data/$(cat /etc/sysconfig/mpi-selector).sh
+%{_bindir}/bjam ${BJAM_CONFIG} --user-config=user-config.jam cflags="%{optflags}" cxxflags="%{optflags}" stage || (echo "Not all Boost libraries built properly."; exit 1)
%install
-mkdir -p %{buildroot}%{_libdir}
-mkdir -p %{buildroot}%{_includedir}
+# Now build it
+J_P=%{jobs}
+J_G=$(getconf _NPROCESSORS_CONF)
+if test -z "$JOBS"; then
+ JOBS=$J_G
+else
+ test 1 -gt "$JOBS" && JOBS=1
+fi
+if test "$JOBS" == "0"; then
+ JOBS=1
+fi
+# In case you want more parallel jobs then autobuild grants you
+if [ $J_P -gt $J_I ]; then
+ JOBS=$J_G
+fi
+BJAM_CONFIG="-d2 -j$JOBS -sICU_PATH=%{_prefix}"
+PYTHON_VERSION=$(python -c 'import sys; print sys.version[:3]')
+PYTHON_FLAGS="--with-python-root=/usr --with-python-version=$PYTHON_VERSION"
+REGEX_FLAGS="--with-icu"
+export EXPAT_INCLUDE=/usr/include EXPAT_LIBPATH=%{_libdir} REGEX_FLAGS="--with-icu"
+export PYTHON_FLAGS
+# Set PATH, MANPATH and LD_LIBRARY_PATH
+source /var/mpi-selector/data/$(cat /etc/sysconfig/mpi-selector).sh
+%{_bindir}/bjam ${BJAM_CONFIG} --user-config=user-config.jam \
+ --prefix=%{buildroot}%{_prefix} \
+ --exec-prefix=$%{buildroot}%{_prefix} \
+ --libdir=%{buildroot}%{_libdir} \
+ --includedir=%{buildroot}%{_includedir} \
+ install || echo "Not all Boost libraries built properly."
+mv %{buildroot}%{_includedir}/boost-1_36/boost %{buildroot}%{_includedir}/
mkdir -p %{buildroot}%{_docdir}/boost-%{version}
-# install lib
-for i in $(find stage -type f -name \*.a); do
- NAME=$(basename $i);
- install -p -m 0644 $i %{buildroot}%{_libdir}/$NAME;
-done;
-cd stage/lib
-for lib in $(find . -follow -name \*-gcc??-mt-1_36.so); do
- NAME=${lib}.%{version}
- SONAME_MT=$(echo $lib | sed -e 's/-gcc..-mt-1_36/-mt/g')
- SONAME=$(echo $lib | sed -e 's/-gcc..-mt-1_36//g')
-# rm $lib
- ln -sf $NAME $SONAME_MT
- ln -sf $NAME $SONAME
+## install lib
+#for i in $(find stage -type f -name \*.a); do
+# NAME=$(basename $i);
+# install -p -m 0644 $i %{buildroot}%{_libdir}/$NAME;
+#done;
+#pushd stage/lib
+#for lib in $(find . -name \*.so.%{version}); do
+# BASE=$(basename ${lib} .so.%{version})
+# SONAME_MT="$BASE-mt.so"
+# ln -sf $NAME $SONAME_MT
+#done
+#popd
+pushd %{buildroot}%{_libdir}
+for lib in $(find . -name \*.so.%{version}); do
+ BASE=$(basename ${lib} .so.%{version})
+ SONAME_MT="$BASE-mt.so"
+ ln -sf ${lib} $SONAME_MT
done
-cd ../..
-mv stage/lib/*.so* %{buildroot}%{_libdir}
+popd
+# mv stage/lib/*.so* %{buildroot}%{_libdir}
# install include files
-for i in $(find boost -type d); do
- mkdir -p %{buildroot}%{_includedir}/$i
-done
-for i in $(find boost -type f); do
- install -p -m 644 $i %{buildroot}%{_includedir}/$i
-done
-chmod +x %{buildroot}%{_includedir}/boost/signals/detail/gen_signal_N.pl \
- %{buildroot}%{_includedir}/boost/pool/detail/pool_construct_simple.sh \
- %{buildroot}%{_includedir}/boost/pool/detail/pool_construct.sh \
- %{buildroot}%{_includedir}/boost/function/gen_function_N.pl \
- %{buildroot}%{_includedir}/boost/function/detail/gen_maybe_include.pl
+#for i in $(find boost -type d); do
+# mkdir -p %{buildroot}%{_includedir}/$i
+#done
+#for i in $(find boost -type f); do
+# install -p -m 644 $i %{buildroot}%{_includedir}/$i
+#done
+#chmod +x %{buildroot}%{_includedir}/boost/signals/detail/gen_signal_N.pl \
+# %{buildroot}%{_includedir}/boost/pool/detail/pool_construct_simple.sh \
+# %{buildroot}%{_includedir}/boost/pool/detail/pool_construct.sh \
+# %{buildroot}%{_includedir}/boost/function/gen_function_N.pl \
+# %{buildroot}%{_includedir}/boost/function/detail/gen_maybe_include.pl
#install the man pages
install -d %buildroot/%{_mandir}/man3
install -d %buildroot/%{_mandir}/man7
@@ -411,141 +457,135 @@ find %{buildroot}%{_docdir}/boost-%{version} -name \*.py -exec chmod -x {} +
%fdupes %buildroot
%endif
-%post -n libboost_date_time-gcc43-mt-1_36-1_36_0 -p /sbin/ldconfig
+%post -n libboost_date_time1_36_0 -p /sbin/ldconfig
-%post -n libboost_filesystem-gcc43-mt-1_36-1_36_0 -p /sbin/ldconfig
+%post -n libboost_filesystem1_36_0 -p /sbin/ldconfig
-%post -n libboost_iostreams-gcc43-mt-1_36-1_36_0 -p /sbin/ldconfig
+%post -n libboost_iostreams1_36_0 -p /sbin/ldconfig
-%post -n libboost_test-gcc43-mt-1_36-1_36_0 -p /sbin/ldconfig
+%post -n libboost_test1_36_0 -p /sbin/ldconfig
-%post -n libboost_program_options-gcc43-mt-1_36-1_36_0 -p /sbin/ldconfig
+%post -n libboost_program_options1_36_0 -p /sbin/ldconfig
-%post -n libboost_python-gcc43-mt-1_36-1_36_0 -p /sbin/ldconfig
+%post -n libboost_python1_36_0 -p /sbin/ldconfig
-%post -n libboost_regex-gcc43-mt-1_36-1_36_0 -p /sbin/ldconfig
+%post -n libboost_regex1_36_0 -p /sbin/ldconfig
-%post -n libboost_serialization-gcc43-mt-1_36-1_36_0 -p /sbin/ldconfig
+%post -n libboost_serialization1_36_0 -p /sbin/ldconfig
-%post -n libboost_signals-gcc43-mt-1_36-1_36_0 -p /sbin/ldconfig
+%post -n libboost_signals1_36_0 -p /sbin/ldconfig
-%post -n libboost_thread-gcc43-mt-1_36-1_36_0 -p /sbin/ldconfig
+%post -n libboost_thread1_36_0 -p /sbin/ldconfig
-%post -n libboost_math-gcc43-mt-1_36-1_36_0 -p /sbin/ldconfig
+%post -n libboost_math1_36_0 -p /sbin/ldconfig
%if %build_mpi
-%post -n libboost_mpi-gcc43-mt-1_36-1_36_0 -p /sbin/ldconfig
+%post -n libboost_mpi1_36_0 -p /sbin/ldconfig
%endif
-%post -n libboost_graph-gcc43-mt-1_36-1_36_0 -p /sbin/ldconfig
+%post -n libboost_graph1_36_0 -p /sbin/ldconfig
-%post -n libboost_system-gcc43-mt-1_36-1_36_0 -p /sbin/ldconfig
+%post -n libboost_system1_36_0 -p /sbin/ldconfig
-%post -n libboost_wave-gcc43-mt-1_36-1_36_0 -p /sbin/ldconfig
+%post -n libboost_wave1_36_0 -p /sbin/ldconfig
-%postun -n libboost_date_time-gcc43-mt-1_36-1_36_0 -p /sbin/ldconfig
+%postun -n libboost_date_time1_36_0 -p /sbin/ldconfig
-%postun -n libboost_filesystem-gcc43-mt-1_36-1_36_0 -p /sbin/ldconfig
+%postun -n libboost_filesystem1_36_0 -p /sbin/ldconfig
-%postun -n libboost_iostreams-gcc43-mt-1_36-1_36_0 -p /sbin/ldconfig
+%postun -n libboost_iostreams1_36_0 -p /sbin/ldconfig
-%postun -n libboost_test-gcc43-mt-1_36-1_36_0 -p /sbin/ldconfig
+%postun -n libboost_test1_36_0 -p /sbin/ldconfig
-%postun -n libboost_program_options-gcc43-mt-1_36-1_36_0 -p /sbin/ldconfig
+%postun -n libboost_program_options1_36_0 -p /sbin/ldconfig
-%postun -n libboost_python-gcc43-mt-1_36-1_36_0 -p /sbin/ldconfig
+%postun -n libboost_python1_36_0 -p /sbin/ldconfig
-%postun -n libboost_regex-gcc43-mt-1_36-1_36_0 -p /sbin/ldconfig
+%postun -n libboost_regex1_36_0 -p /sbin/ldconfig
-%postun -n libboost_serialization-gcc43-mt-1_36-1_36_0 -p /sbin/ldconfig
+%postun -n libboost_serialization1_36_0 -p /sbin/ldconfig
-%postun -n libboost_signals-gcc43-mt-1_36-1_36_0 -p /sbin/ldconfig
+%postun -n libboost_signals1_36_0 -p /sbin/ldconfig
-%postun -n libboost_thread-gcc43-mt-1_36-1_36_0 -p /sbin/ldconfig
+%postun -n libboost_thread1_36_0 -p /sbin/ldconfig
-%postun -n libboost_math-gcc43-mt-1_36-1_36_0 -p /sbin/ldconfig
+%postun -n libboost_math1_36_0 -p /sbin/ldconfig
%if %build_mpi
-%postun -n libboost_mpi-gcc43-mt-1_36-1_36_0 -p /sbin/ldconfig
+%postun -n libboost_mpi1_36_0 -p /sbin/ldconfig
%endif
-%postun -n libboost_graph-gcc43-mt-1_36-1_36_0 -p /sbin/ldconfig
+%postun -n libboost_graph1_36_0 -p /sbin/ldconfig
-%postun -n libboost_system-gcc43-mt-1_36-1_36_0 -p /sbin/ldconfig
+%postun -n libboost_system1_36_0 -p /sbin/ldconfig
-%postun -n libboost_wave-gcc43-mt-1_36-1_36_0 -p /sbin/ldconfig
-
-%files
-%defattr(-, root, root, -)
-%doc README
+%postun -n libboost_wave1_36_0 -p /sbin/ldconfig
%files license
%defattr(-, root, root, -)
%doc LICENSE_1_0.txt
-%files -n libboost_date_time-gcc43-mt-1_36-1_36_0
+%files -n libboost_date_time1_36_0
%defattr(-, root, root, -)
%{_libdir}/libboost_date_time*.so.*
-%files -n libboost_filesystem-gcc43-mt-1_36-1_36_0
+%files -n libboost_filesystem1_36_0
%defattr(-, root, root, -)
%{_libdir}/libboost_filesystem*.so.*
-%files -n libboost_graph-gcc43-mt-1_36-1_36_0
+%files -n libboost_graph1_36_0
%defattr(-, root, root, -)
%{_libdir}/libboost_graph*.so.*
-%files -n libboost_iostreams-gcc43-mt-1_36-1_36_0
+%files -n libboost_iostreams1_36_0
%defattr(-, root, root, -)
%{_libdir}/libboost_iostreams*.so.*
-%files -n libboost_math-gcc43-mt-1_36-1_36_0
+%files -n libboost_math1_36_0
%defattr(-, root, root, -)
%{_libdir}/libboost_math_*.so.*
%if %build_mpi
-%files -n libboost_mpi-gcc43-mt-1_36-1_36_0
+%files -n libboost_mpi1_36_0
%defattr(-, root, root, -)
%{_libdir}/libboost_mpi*.so.*
-#%{_libdir}/libboost_mpi*.so
-#%{_libdir}/mpi*.so.%{version}
-#%{_libdir}/mpi*.so
+%{_libdir}/mpi.so
%endif
-%files -n libboost_test-gcc43-mt-1_36-1_36_0
+%files -n libboost_test1_36_0
%defattr(-, root, root, -)
%{_libdir}/libboost_prg_exec_monitor*.so.*
%{_libdir}/libboost_unit_test_framework*.so.*
-%files -n libboost_program_options-gcc43-mt-1_36-1_36_0
+%files -n libboost_program_options1_36_0
%defattr(-, root, root, -)
%{_libdir}/libboost_program_options*.so.*
-%files -n libboost_python-gcc43-mt-1_36-1_36_0
+%files -n libboost_python1_36_0
%defattr(-, root, root, -)
%{_libdir}/libboost_python*.so.*
-%files -n libboost_serialization-gcc43-mt-1_36-1_36_0
+%files -n libboost_serialization1_36_0
%defattr(-, root, root, -)
%{_libdir}/libboost_*serialization*.so.*
-%files -n libboost_signals-gcc43-mt-1_36-1_36_0
+%files -n libboost_signals1_36_0
%defattr(-, root, root, -)
%{_libdir}/libboost_signals*.so.*
-%files -n libboost_system-gcc43-mt-1_36-1_36_0
+%files -n libboost_system1_36_0
%defattr(-, root, root, -)
%{_libdir}/libboost_system*.so.*
-%files -n libboost_thread-gcc43-mt-1_36-1_36_0
+%files -n libboost_thread1_36_0
%defattr(-, root, root, -)
%{_libdir}/libboost_thread*.so.*
-%files -n libboost_wave-gcc43-mt-1_36-1_36_0
+%files -n libboost_wave1_36_0
%defattr(-, root, root, -)
%{_libdir}/libboost_wave*.so.*
-%files -n libboost_regex-gcc43-mt-1_36-1_36_0
+%files -n libboost_regex1_36_0
%defattr(-, root, root, -)
%{_libdir}/libboost_regex*.so.*
@@ -562,6 +602,29 @@ find %{buildroot}%{_docdir}/boost-%{version} -name \*.py -exec chmod -x {} +
%doc %{_mandir}/man7/*.7.gz
%changelog
+* Tue Nov 11 2008 ro@suse.de
+- SLE-11 uses PPC64 instead of PPC, adapt baselibs.conf
+* Fri Oct 31 2008 pth@suse.de
+- Fix the bug that made boost.monitor mix up uid and pib and
+ also make boost.monitor not special-case SIGCLD (bnc#439805)
+- Fix generation of default extension in boost.filesystem.
+- Make boost recommend library subpackages instead of requiring
+ them to allow removal of unwanted libraries after update.
+- Run mkspec explicitely in a shell so that mkspec.sh doesn't
+ need to be executable.
+- Disable deletion of full-name symlinks in boost.spec.in.
+- Make boost-devel directly require all library subpackages.
+- boost.rpm isn't needed, even for updates, so don't build it and
+ remove the README file needeed only for this package.
+- Make debug package require all library subpackages.
+- Add pre_checkin.sh to ensure that boost.spec is regenerated
+ at check-in time.
+- Make boost.build use sane library names. Only the multi-threaded
+ libraries are built and these have no -mt in their name.
+ Symlinks for convenience are spupplied.
+- Use -fno-strict-aliasing only for boost.python, where it's needed.
+- Don't use configure and make (only convenience wrappers) but
+ call bjam directly.
* Mon Oct 27 2008 ro@suse.de
- do not remove full-name symlinks for shared libs
* Thu Oct 23 2008 pth@suse.de
@@ -950,7 +1013,7 @@ find %{buildroot}%{_docdir}/boost-%{version} -name \*.py -exec chmod -x {} +
- Fix broken assembler constraints [#148429].
* Wed Jan 25 2006 mls@suse.de
- converted neededforbuild to BuildRequires
-* Wed Jan 18 2006 schwab@suse.de
+* Tue Jan 17 2006 schwab@suse.de
- Don't strip binaries.
* Wed Dec 07 2005 pth@suse.de
- Fix cases of type-punning in boost::python
diff --git a/boost.spec.in b/boost.spec.in
index 4004e02..12b8acb 100644
--- a/boost.spec.in
+++ b/boost.spec.in
@@ -17,8 +17,9 @@
# norootforbuild
-# WARNING: This file is generated from boost.spec.in by running
-# mkspec.sh. Changes to this file will get lost.
+# WARNING:
+# THIS FILE IS GENERATED FROM boost.spec.in BY CALLING MAKE.
+# CHANGES TO THIS FILE WILL GET LOST.
# Just hardcode build_mpi to 1 as soon as openmpi builds on all
# named architectures.
@@ -29,6 +30,16 @@
%define build_mpi 1
%endif
+%define most_libs libboost_date_time@lib_appendix@ libboost_filesystem@lib_appendix@ libboost_graph@lib_appendix@ libboost_iostreams@lib_appendix@ libboost_math@lib_appendix@ libboost_test@lib_appendix@ libboost_program_options@lib_appendix@ libboost_python@lib_appendix@ libboost_serialization@lib_appendix@ libboost_signals@lib_appendix@ libboost_system@lib_appendix@ libboost_thread@lib_appendix@ libboost_wave@lib_appendix@ libboost_regex@lib_appendix@
+
+%if %build_mpi
+%define all_libs %{most_libs} libboost_mpi@lib_appendix@
+%else
+%define all_libs %{most_libs}
+%endif
+
+%define debug_package_requires %{all_libs}
+
Name: boost
BuildRequires: boost-jam >= 3.1.16 dos2unix gcc-c++ libbz2-devel libicu-devel python-devel xorg-x11-devel
BuildRequires: libexpat-devel
@@ -49,10 +60,10 @@ Source0: %{name}_@file_version@.tar.bz2
Source1: boost-rpmlintrc
Source2: boost_@man_file_version@_man.tar.bz2
Source3: existing_extra_docs
-Source4: README
Source5: mkspec.sh
Source6: boost.spec.in
Source7: Makefile
+Source8: pre_checkin.sh
Patch0: boost-threading.patch
Patch1: boost-thread.patch
Patch2: boost-no_type_punning.patch
@@ -60,27 +71,12 @@ Patch4: boost-visit_each.diff
Patch5: boost-pass_BJAM_CONFIG.patch
Patch6: boost-use_rpm_optflags.patch
Patch8: boost-no_segfault_in_Regex_filter.patch
-Patch17: boost-ppc-asm.patch
-
-Requires: libboost_date_time-@lib_appendix@
-Requires: libboost_filesystem-@lib_appendix@
-Requires: libboost_graph-@lib_appendix@
-Requires: libboost_iostreams-@lib_appendix@
-Requires: libboost_math-@lib_appendix@
-%if %build_mpi
-Requires: libboost_mpi-@lib_appendix@
-%endif
-Requires: libboost_test-@lib_appendix@
-Requires: libboost_program_options-@lib_appendix@
-Requires: libboost_python-@lib_appendix@
-Requires: libboost_serialization-@lib_appendix@
-Requires: libboost_signals-@lib_appendix@
-Requires: libboost_system-@lib_appendix@
-Requires: libboost_thread-@lib_appendix@
-Requires: libboost_wave-@lib_appendix@
-Requires: libboost_regex-@lib_appendix@
-Requires: boost-license
-%define _prefix /usr
+Patch9: boost-ppc-asm.patch
+Patch18: boost-sigcld_handling.patch
+Patch19: boost-sane_versioning.patch
+Patch20: boost-strict_aliasing.patch
+Patch21: boost-default_extension.patch
+Recommends: %{all_libs}
%description
Boost provides free peer-reviewed portable C++ source libraries. The
@@ -106,7 +102,8 @@ see the boost-doc package.
License: BSD 3-Clause
Summary: Development package for Boost C++
Group: Development/Libraries/C and C++
-Requires: %{name} = %{version}
+Requires: %{all_libs}
+Requires: %{name}-license = %{version}
AutoReqProv: on
%description devel
@@ -139,189 +136,188 @@ This package contains documentation about the boost dynamic libraries.
-%package -n libboost_date_time-@lib_appendix@
+%package -n libboost_date_time@lib_appendix@
License: BSD 3-Clause
Summary: Boost::Date.Time Runtime libraries
Group: System/Libraries
Requires: %{name}-license = %{version}
AutoReqProv: on
-%description -n libboost_date_time-@lib_appendix@
+%description -n libboost_date_time@lib_appendix@
This package contains the Boost Date.Time runtime libraries.
-%package -n libboost_filesystem-@lib_appendix@
+%package -n libboost_filesystem@lib_appendix@
License: BSD 3-Clause
Summary: Boost::Filesystem Runtime Libraries
Group: System/Localization
Requires: %{name}-license = %{version}
AutoReqProv: on
-%description -n libboost_filesystem-@lib_appendix@
+%description -n libboost_filesystem@lib_appendix@
This package contains the Boost::Filesystem libraries.
-%package -n libboost_graph-@lib_appendix@
+%package -n libboost_graph@lib_appendix@
License: BSD 3-Clause
Summary: Boost::Graph Runtime Libraries
Group: System/Libraries
Requires: %{name}-license = %{version}
AutoReqProv: on
-%description -n libboost_graph-@lib_appendix@
+%description -n libboost_graph@lib_appendix@
This package contains the Boost::Graph Runtime libraries.
-%package -n libboost_iostreams-@lib_appendix@
+%package -n libboost_iostreams@lib_appendix@
License: BSD 3-Clause
Summary: Boost::IOStreams Runtime Libraries
Group: System/Libraries
Requires: %{name}-license = %{version}
AutoReqProv: on
-%description -n libboost_iostreams-@lib_appendix@
+%description -n libboost_iostreams@lib_appendix@
This package contains the Boost::IOStreams Runtime libraries.
-%package -n libboost_math-@lib_appendix@
+%package -n libboost_math@lib_appendix@
License: BSD 3-Clause
Summary: Boost::Math Runtime Libraries
Group: System/Libraries
Requires: %{name}-license = %{version}
AutoReqProv: on
-%description -n libboost_math-@lib_appendix@
+%description -n libboost_math@lib_appendix@
This package contains the Boost::Math Runtime libraries.
%if %build_mpi
-%package -n libboost_mpi-@lib_appendix@
+%package -n libboost_mpi@lib_appendix@
License: BSD 3-Clause
Summary: Boost::MPI Runtime libraries
Group: System/Libraries
Requires: %{name}-license = %{version}
AutoReqProv: on
-%description -n libboost_mpi-@lib_appendix@
+%description -n libboost_mpi@lib_appendix@
This package contains the Boost::MPI Runtime libraries.
%endif
-%package -n libboost_test-@lib_appendix@
+%package -n libboost_test@lib_appendix@
License: BSD 3-Clause
Summary: Boost::Test Runtime Libraries
Group: System/Libraries
Requires: %{name}-license = %{version}
AutoReqProv: on
-%description -n libboost_test-@lib_appendix@
+%description -n libboost_test@lib_appendix@
This package contains the Boost::Test runtime libraries.
-%package -n libboost_program_options-@lib_appendix@
+%package -n libboost_program_options@lib_appendix@
License: BSD 3-Clause
Summary: Boost::ProgramOptions Runtime libraries
Group: System/Libraries
Requires: %{name}-license = %{version}
AutoReqProv: on
-%description -n libboost_program_options-@lib_appendix@
+%description -n libboost_program_options@lib_appendix@
This package contains the Boost::ProgramOptions Runtime libraries.
-%package -n libboost_python-@lib_appendix@
+%package -n libboost_python@lib_appendix@
License: BSD 3-Clause
Summary: Boost::Python Runtime Libraries
Group: System/Libraries
Requires: %{name}-license = %{version}
AutoReqProv: on
-%description -n libboost_python-@lib_appendix@
+%description -n libboost_python@lib_appendix@
This package contains the Boost::Python Runtime libraries.
-%package -n libboost_serialization-@lib_appendix@
+%package -n libboost_serialization@lib_appendix@
License: BSD 3-Clause
Summary: Boost::Serialization Runtime Libraries
Group: System/Libraries
Requires: %{name}-license = %{version}
AutoReqProv: on
-%description -n libboost_serialization-@lib_appendix@
+%description -n libboost_serialization@lib_appendix@
This package contains the Boost::Serialization Runtime libraries.
-%package -n libboost_signals-@lib_appendix@
+%package -n libboost_signals@lib_appendix@
License: BSD 3-Clause
Summary: Boost::Signals Runtime Libraries
Group: System/Libraries
Requires: %{name}-license = %{version}
AutoReqProv: on
-%description -n libboost_signals-@lib_appendix@
+%description -n libboost_signals@lib_appendix@
This package contains the Boost::Signals Runtime libraries.
-%package -n libboost_system-@lib_appendix@
+%package -n libboost_system@lib_appendix@
License: BSD 3-Clause
Summary: Boost::System Runtime Libraries
Group: System/Libraries
Requires: %{name}-license = %{version}
AutoReqProv: on
-%description -n libboost_system-@lib_appendix@
+%description -n libboost_system@lib_appendix@
This package contains the Boost::System runtime libraries.
-%package -n libboost_thread-@lib_appendix@
+%package -n libboost_thread@lib_appendix@
License: BSD 3-Clause
Summary: Boost::Thread Runtime Libraries
Group: System/Libraries
Requires: %{name}-license = %{version}
AutoReqProv: on
-%description -n libboost_thread-@lib_appendix@
+%description -n libboost_thread@lib_appendix@
This package contains the Boost::Thread runtime libraries.
-%package -n libboost_wave-@lib_appendix@
+%package -n libboost_wave@lib_appendix@
License: BSD 3-Clause
Summary: Boost::Wave Runtime Libraries
Group: System/Libraries
Requires: %{name}-license = %{version}
AutoReqProv: on
-%description -n libboost_wave-@lib_appendix@
+%description -n libboost_wave@lib_appendix@
This package contains the Boost::Wave runtime libraries.
-%package -n libboost_regex-@lib_appendix@
+%package -n libboost_regex@lib_appendix@
License: BSD 3-Clause
Summary: The Boost::Regex runtime library
Group: System/Libraries
Requires: %{name}-license = %{version}
AutoReqProv: on
-%description -n libboost_regex-@lib_appendix@
+%description -n libboost_regex@lib_appendix@
This package contains the Boost::Regex runtime library.
%prep
%setup -q -n %{name}_@file_version@ -a 2
-cp %{S:4} .
find -name .cvsignore -exec rm -f {} +
#everything in the tarball has the executable flag set ......
find -type f ! \( -name \*.sh -o -name \*.py -o -name \*.pl \) -exec chmod -x {} +
@@ -332,61 +328,137 @@ find -type f ! \( -name \*.sh -o -name \*.py -o -name \*.pl \) -exec chmod -x {}
%patch5
%patch6
%patch8
-%patch17
+%patch9
+%patch18
+%patch19
+%patch20
+%patch21
chmod +x configure
#stupid build machinery copies .orig files
find . -name \*.orig -exec rm {} +
%build
-# define bjam_config -d2 --layout=system %{?jobs:-j%jobs}
-%define bjam_config -d2 %{?jobs:-j%jobs}
find . -type f -exec chmod u+w {} +
+
# Now build it
-BUILD_FLAGS="--with-toolset=gcc --prefix=%{buildroot}/usr --libdir=%{buildroot}%{_libdir} --with-bjam=/usr/bin/bjam"
+J_P=%{jobs}
+J_G=$(getconf _NPROCESSORS_CONF)
+
+if test -z "$JOBS"; then
+ JOBS=$J_G
+else
+ test 1 -gt "$JOBS" && JOBS=1
+fi
+if test "$JOBS" == "0"; then
+ JOBS=1
+fi
+
+# In case you want more parallel jobs then autobuild grants you
+#if [ $J_P -gt $J_I ]; then
+# JOBS=$J_G
+#fi
+
+BJAM_CONFIG="-d2 -j$JOBS -sICU_PATH=%{_prefix}"
PYTHON_VERSION=$(python -c 'import sys; print sys.version[:3]')
PYTHON_FLAGS="--with-python-root=/usr --with-python-version=$PYTHON_VERSION"
REGEX_FLAGS="--with-icu"
-#BJAM_TARGET=rpm
-export EXPAT_INCLUDE=/usr/include EXPAT_LIBPATH=%{_libdir}
-BJAM_CONFIG="%bjam_config" BJAM_TARGET="$BJAM_TARGET" ./configure $BUILD_FLAGS $PYTHON_FLAGS $REGEX_FLAGS
-%if %build_mpi
-echo "using mpi ;" >> user-config.jam
-%endif
-export RPM_OPT_FLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -Wno-deprecated"
-make all
+export EXPAT_INCLUDE=/usr/include EXPAT_LIBPATH=%{_libdir} REGEX_FLAGS="--with-icu"
+export PYTHON_FLAGS
+
+cat << EOF >user-config.jam
+# Boost.Build Configuration
+
+# Compiler configuration
+using gcc ;
+
+# Python configuration
+using python : ${PYTHON_VERSION} : %{_prefix} ;
+using mpi ;
+EOF
+
+# Set PATH, MANPATH and LD_LIBRARY_PATH
+source /var/mpi-selector/data/$(cat /etc/sysconfig/mpi-selector).sh
+
+%{_bindir}/bjam ${BJAM_CONFIG} --user-config=user-config.jam cflags="%{optflags}" cxxflags="%{optflags}" stage || (echo "Not all Boost libraries built properly."; exit 1)
%install
-mkdir -p %{buildroot}%{_libdir}
-mkdir -p %{buildroot}%{_includedir}
+# Now build it
+J_P=%{jobs}
+J_G=$(getconf _NPROCESSORS_CONF)
+
+if test -z "$JOBS"; then
+ JOBS=$J_G
+else
+ test 1 -gt "$JOBS" && JOBS=1
+fi
+if test "$JOBS" == "0"; then
+ JOBS=1
+fi
+
+# In case you want more parallel jobs then autobuild grants you
+if [ $J_P -gt $J_I ]; then
+ JOBS=$J_G
+fi
+
+BJAM_CONFIG="-d2 -j$JOBS -sICU_PATH=%{_prefix}"
+PYTHON_VERSION=$(python -c 'import sys; print sys.version[:3]')
+PYTHON_FLAGS="--with-python-root=/usr --with-python-version=$PYTHON_VERSION"
+REGEX_FLAGS="--with-icu"
+export EXPAT_INCLUDE=/usr/include EXPAT_LIBPATH=%{_libdir} REGEX_FLAGS="--with-icu"
+export PYTHON_FLAGS
+
+# Set PATH, MANPATH and LD_LIBRARY_PATH
+source /var/mpi-selector/data/$(cat /etc/sysconfig/mpi-selector).sh
+
+%{_bindir}/bjam ${BJAM_CONFIG} --user-config=user-config.jam \
+ --prefix=%{buildroot}%{_prefix} \
+ --exec-prefix=$%{buildroot}%{_prefix} \
+ --libdir=%{buildroot}%{_libdir} \
+ --includedir=%{buildroot}%{_includedir} \
+ install || echo "Not all Boost libraries built properly."
+
+mv %{buildroot}%{_includedir}/boost-@short_version@/boost %{buildroot}%{_includedir}/
+
mkdir -p %{buildroot}%{_docdir}/boost-%{version}
-# install lib
-for i in $(find stage -type f -name \*.a); do
- NAME=$(basename $i);
- install -p -m 0644 $i %{buildroot}%{_libdir}/$NAME;
-done;
-cd stage/lib
-for lib in $(find . -follow -name \*-gcc??-mt-@short_version@.so); do
- NAME=${lib}.%{version}
- SONAME_MT=$(echo $lib | sed -e 's/-gcc..-mt-@short_version@/-mt/g')
- SONAME=$(echo $lib | sed -e 's/-gcc..-mt-@short_version@//g')
- rm $lib
- ln -sf $NAME $SONAME_MT
- ln -sf $NAME $SONAME
+
+## install lib
+#for i in $(find stage -type f -name \*.a); do
+# NAME=$(basename $i);
+# install -p -m 0644 $i %{buildroot}%{_libdir}/$NAME;
+#done;
+
+#pushd stage/lib
+#for lib in $(find . -name \*.so.%{version}); do
+# BASE=$(basename ${lib} .so.%{version})
+# SONAME_MT="$BASE-mt.so"
+# ln -sf $NAME $SONAME_MT
+#done
+#popd
+
+pushd %{buildroot}%{_libdir}
+for lib in $(find . -name \*.so.%{version}); do
+ BASE=$(basename ${lib} .so.%{version})
+ SONAME_MT="$BASE-mt.so"
+ ln -sf ${lib} $SONAME_MT
done
-cd ../..
-mv stage/lib/*.so* %{buildroot}%{_libdir}
+popd
+
+
+# mv stage/lib/*.so* %{buildroot}%{_libdir}
# install include files
-for i in $(find boost -type d); do
- mkdir -p %{buildroot}%{_includedir}/$i
-done
-for i in $(find boost -type f); do
- install -p -m 644 $i %{buildroot}%{_includedir}/$i
-done
-chmod +x %{buildroot}%{_includedir}/boost/signals/detail/gen_signal_N.pl \
- %{buildroot}%{_includedir}/boost/pool/detail/pool_construct_simple.sh \
- %{buildroot}%{_includedir}/boost/pool/detail/pool_construct.sh \
- %{buildroot}%{_includedir}/boost/function/gen_function_N.pl \
- %{buildroot}%{_includedir}/boost/function/detail/gen_maybe_include.pl
+#for i in $(find boost -type d); do
+# mkdir -p %{buildroot}%{_includedir}/$i
+#done
+#for i in $(find boost -type f); do
+# install -p -m 644 $i %{buildroot}%{_includedir}/$i
+#done
+#chmod +x %{buildroot}%{_includedir}/boost/signals/detail/gen_signal_N.pl \
+# %{buildroot}%{_includedir}/boost/pool/detail/pool_construct_simple.sh \
+# %{buildroot}%{_includedir}/boost/pool/detail/pool_construct.sh \
+# %{buildroot}%{_includedir}/boost/function/gen_function_N.pl \
+# %{buildroot}%{_includedir}/boost/function/detail/gen_maybe_include.pl
+
+
#install the man pages
install -d %buildroot/%{_mandir}/man3
install -d %buildroot/%{_mandir}/man7
@@ -395,6 +467,7 @@ for page in $(find . -type f); do
install -p -m 644 $page %buildroot/%{_mandir}/$page
done
popd
+
#install doc files
dos2unix libs/ptr_container/doc/tutorial_example.html \
libs/parameter/doc/html/reference.html \
@@ -414,114 +487,107 @@ find %{buildroot}%{_docdir}/boost-%{version} -name \*.py -exec chmod -x {} +
%fdupes %buildroot
%endif
-%post -n libboost_date_time-@lib_appendix@ -p /sbin/ldconfig
-%post -n libboost_filesystem-@lib_appendix@ -p /sbin/ldconfig
-%post -n libboost_iostreams-@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-@lib_appendix@ -p /sbin/ldconfig
-%post -n libboost_regex-@lib_appendix@ -p /sbin/ldconfig
-%post -n libboost_serialization-@lib_appendix@ -p /sbin/ldconfig
-%post -n libboost_signals-@lib_appendix@ -p /sbin/ldconfig
-%post -n libboost_thread-@lib_appendix@ -p /sbin/ldconfig
-%post -n libboost_math-@lib_appendix@ -p /sbin/ldconfig
+%post -n libboost_date_time@lib_appendix@ -p /sbin/ldconfig
+%post -n libboost_filesystem@lib_appendix@ -p /sbin/ldconfig
+%post -n libboost_iostreams@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@lib_appendix@ -p /sbin/ldconfig
+%post -n libboost_regex@lib_appendix@ -p /sbin/ldconfig
+%post -n libboost_serialization@lib_appendix@ -p /sbin/ldconfig
+%post -n libboost_signals@lib_appendix@ -p /sbin/ldconfig
+%post -n libboost_thread@lib_appendix@ -p /sbin/ldconfig
+%post -n libboost_math@lib_appendix@ -p /sbin/ldconfig
%if %build_mpi
-%post -n libboost_mpi-@lib_appendix@ -p /sbin/ldconfig
+%post -n libboost_mpi@lib_appendix@ -p /sbin/ldconfig
%endif
-%post -n libboost_graph-@lib_appendix@ -p /sbin/ldconfig
-%post -n libboost_system-@lib_appendix@ -p /sbin/ldconfig
-%post -n libboost_wave-@lib_appendix@ -p /sbin/ldconfig
+%post -n libboost_graph@lib_appendix@ -p /sbin/ldconfig
+%post -n libboost_system@lib_appendix@ -p /sbin/ldconfig
+%post -n libboost_wave@lib_appendix@ -p /sbin/ldconfig
-%postun -n libboost_date_time-@lib_appendix@ -p /sbin/ldconfig
-%postun -n libboost_filesystem-@lib_appendix@ -p /sbin/ldconfig
-%postun -n libboost_iostreams-@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-@lib_appendix@ -p /sbin/ldconfig
-%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
-%postun -n libboost_thread-@lib_appendix@ -p /sbin/ldconfig
-%postun -n libboost_math-@lib_appendix@ -p /sbin/ldconfig
+%postun -n libboost_date_time@lib_appendix@ -p /sbin/ldconfig
+%postun -n libboost_filesystem@lib_appendix@ -p /sbin/ldconfig
+%postun -n libboost_iostreams@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@lib_appendix@ -p /sbin/ldconfig
+%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
+%postun -n libboost_thread@lib_appendix@ -p /sbin/ldconfig
+%postun -n libboost_math@lib_appendix@ -p /sbin/ldconfig
%if %build_mpi
-%postun -n libboost_mpi-@lib_appendix@ -p /sbin/ldconfig
+%postun -n libboost_mpi@lib_appendix@ -p /sbin/ldconfig
%endif
-%postun -n libboost_graph-@lib_appendix@ -p /sbin/ldconfig
-%postun -n libboost_system-@lib_appendix@ -p /sbin/ldconfig
-%postun -n libboost_wave-@lib_appendix@ -p /sbin/ldconfig
-
-
-%files
-%defattr(-, root, root, -)
-%doc README
+%postun -n libboost_graph@lib_appendix@ -p /sbin/ldconfig
+%postun -n libboost_system@lib_appendix@ -p /sbin/ldconfig
+%postun -n libboost_wave@lib_appendix@ -p /sbin/ldconfig
%files license
%defattr(-, root, root, -)
%doc LICENSE_1_0.txt
-%files -n libboost_date_time-@lib_appendix@
+%files -n libboost_date_time@lib_appendix@
%defattr(-, root, root, -)
%{_libdir}/libboost_date_time*.so.*
-%files -n libboost_filesystem-@lib_appendix@
+%files -n libboost_filesystem@lib_appendix@
%defattr(-, root, root, -)
%{_libdir}/libboost_filesystem*.so.*
-%files -n libboost_graph-@lib_appendix@
+%files -n libboost_graph@lib_appendix@
%defattr(-, root, root, -)
%{_libdir}/libboost_graph*.so.*
-%files -n libboost_iostreams-@lib_appendix@
+%files -n libboost_iostreams@lib_appendix@
%defattr(-, root, root, -)
%{_libdir}/libboost_iostreams*.so.*
-%files -n libboost_math-@lib_appendix@
+%files -n libboost_math@lib_appendix@
%defattr(-, root, root, -)
%{_libdir}/libboost_math_*.so.*
%if %build_mpi
-%files -n libboost_mpi-@lib_appendix@
+%files -n libboost_mpi@lib_appendix@
%defattr(-, root, root, -)
%{_libdir}/libboost_mpi*.so.*
-#%{_libdir}/libboost_mpi*.so
-#%{_libdir}/mpi*.so.%{version}
-#%{_libdir}/mpi*.so
+%{_libdir}/mpi.so
%endif
-%files -n libboost_test-@lib_appendix@
+%files -n libboost_test@lib_appendix@
%defattr(-, root, root, -)
%{_libdir}/libboost_prg_exec_monitor*.so.*
%{_libdir}/libboost_unit_test_framework*.so.*
-%files -n libboost_program_options-@lib_appendix@
+%files -n libboost_program_options@lib_appendix@
%defattr(-, root, root, -)
%{_libdir}/libboost_program_options*.so.*
-%files -n libboost_python-@lib_appendix@
+%files -n libboost_python@lib_appendix@
%defattr(-, root, root, -)
%{_libdir}/libboost_python*.so.*
-%files -n libboost_serialization-@lib_appendix@
+%files -n libboost_serialization@lib_appendix@
%defattr(-, root, root, -)
%{_libdir}/libboost_*serialization*.so.*
-%files -n libboost_signals-@lib_appendix@
+%files -n libboost_signals@lib_appendix@
%defattr(-, root, root, -)
%{_libdir}/libboost_signals*.so.*
-%files -n libboost_system-@lib_appendix@
+%files -n libboost_system@lib_appendix@
%defattr(-, root, root, -)
%{_libdir}/libboost_system*.so.*
-%files -n libboost_thread-@lib_appendix@
+%files -n libboost_thread@lib_appendix@
%defattr(-, root, root, -)
%{_libdir}/libboost_thread*.so.*
-%files -n libboost_wave-@lib_appendix@
+%files -n libboost_wave@lib_appendix@
%defattr(-, root, root, -)
%{_libdir}/libboost_wave*.so.*
-%files -n libboost_regex-@lib_appendix@
+%files -n libboost_regex@lib_appendix@
%defattr(-, root, root, -)
%{_libdir}/libboost_regex*.so.*
diff --git a/mkspec.sh b/mkspec.sh
index 47715d1..6c3ddc7 100644
--- a/mkspec.sh
+++ b/mkspec.sh
@@ -2,15 +2,13 @@
version=1.36.0
man_version=1.33.1
-gcc_version=43
file_version="$(echo $version|sed 's/\./_/g')"
short_version="$(echo $file_version | cut -d_ -f 1,2)"
-gcc_part="gcc$gcc_version"
-lib_appendix="${gcc_part}-mt-${short_version}-${file_version}"
-
man_file_version="$(echo $man_version|sed 's/\./_/g')"
+lib_appendix="${file_version}"
+
sed -e "s/@lib_appendix@/$lib_appendix/g" \
-e "s/@man_version@/$man_version/g" \
-e "s/@man_file_version@/$man_file_version/g" \
diff --git a/pre_checkin.sh b/pre_checkin.sh
new file mode 100644
index 0000000..838f8c5
--- /dev/null
+++ b/pre_checkin.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+# This script is called automatically during autobuild checkin
+# and ensures that boost.spec is up-to-date
+
+case $0 in
+ \./*)
+ here=$PWD
+ ;;
+ */*)
+ here=${0%/*}
+ ;;
+ *)
+ here=$PWD
+ ;;
+esac
+
+. ${here}/mkspec.sh
+