OBS User unknown 2008-11-17 15:44:58 +00:00 committed by Git OBS Bridge
parent 865052fc18
commit 181c069a9f
13 changed files with 625 additions and 320 deletions

View File

@ -1,4 +1,4 @@
all: boost.spec
boost.spec: boost.spec.in
@./mkspec.sh
@sh ./mkspec.sh

2
README
View File

@ -1,2 +0,0 @@
This package is only needed for updating from an older version of
of the distribution.

View File

@ -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

View File

@ -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(); }

View File

@ -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")

View File

@ -0,0 +1,30 @@
--- Jamroot
+++ Jamroot
@@ -311,9 +311,7 @@
if $(layout) = versioned
{
local result = [ common.format-name
- <base> <toolset> <threading> <runtime> -$(BOOST_VERSION_TAG)
- -$(BUILD_ID)
- : $(name) : $(type) : $(property-set) ] ;
+ <base> <runtime> : $(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 :
- <generating-rule>@make-unversioned-links ;
- explicit stage-unversioned ;
-
- generate install-unversioned : install-proper :
- <generating-rule>@make-unversioned-links ;
- explicit install-unversioned ;
+ # Create do-nothing aliases
+ alias stage-unversioned ;
+ alias install-unversioned ;
}
else
{

View File

@ -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

View File

@ -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 <cxxflags>-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) ; } }

View File

@ -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

View File

@ -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

View File

@ -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.*

View File

@ -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" \

18
pre_checkin.sh Normal file
View File

@ -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