diff --git a/boost-bind-gcc41.patch b/boost-bind-gcc41.patch new file mode 100644 index 0000000..ca3a76a --- /dev/null +++ b/boost-bind-gcc41.patch @@ -0,0 +1,12 @@ +Index: boost/bind.hpp +=================================================================== +--- boost/bind.hpp.orig ++++ boost/bind.hpp +@@ -27,6 +27,7 @@ + #include + #include + #include ++#include + + // Borland-specific bug, visit_each() silently fails to produce code + diff --git a/boost-serialization-warnings.patch b/boost-serialization-warnings.patch new file mode 100644 index 0000000..4fba549 --- /dev/null +++ b/boost-serialization-warnings.patch @@ -0,0 +1,61 @@ +*** boost/serialization/nvp.hpp.orig 2006-11-13 12:18:36.000000000 +0100 +--- boost/serialization/nvp.hpp 2006-11-13 12:19:03.000000000 +0100 +*************** struct nvp : +*** 43,51 **** + public std::pair, + public wrapper_traits > + { +! explicit nvp(const char * name, T & t) : + // note: redundant cast works around borland issue +! std::pair(name, (T*)(& t)) + {} + nvp(const nvp & rhs) : + // note: redundant cast works around borland issue +--- 43,51 ---- + public std::pair, + public wrapper_traits > + { +! explicit nvp(const char * name_, T & t) : + // note: redundant cast works around borland issue +! std::pair(name_, (T*)(& t)) + {} + nvp(const nvp & rhs) : + // note: redundant cast works around borland issue +*** boost/archive/detail/iserializer.hpp.orig 2006-11-13 12:25:02.000000000 +0100 +--- boost/archive/detail/iserializer.hpp 2006-11-13 12:25:43.000000000 +0100 +*************** public: +*** 123,129 **** + return boost::serialization::implementation_level::value + >= boost::serialization::object_class_info; + } +! virtual bool tracking(const unsigned int flags) const { + // if(0 != (flags & no_tracking)) + // return false; + return boost::serialization::tracking_level::value +--- 123,129 ---- + return boost::serialization::implementation_level::value + >= boost::serialization::object_class_info; + } +! virtual bool tracking(const unsigned int) const { + // if(0 != (flags & no_tracking)) + // return false; + return boost::serialization::tracking_level::value +*** boost/archive/detail/oserializer.hpp.orig 2006-11-13 12:25:06.000000000 +0100 +--- boost/archive/detail/oserializer.hpp 2006-11-13 12:25:57.000000000 +0100 +*************** public: +*** 115,121 **** + return boost::serialization::implementation_level::value + >= boost::serialization::object_class_info; + } +! virtual bool tracking(const unsigned int flags) const { + // if(0 != (flags & no_tracking)) + // return false; + return boost::serialization::tracking_level::value == boost::serialization::track_always +--- 115,121 ---- + return boost::serialization::implementation_level::value + >= boost::serialization::object_class_info; + } +! virtual bool tracking(const unsigned int) const { + // if(0 != (flags & no_tracking)) + // return false; + return boost::serialization::tracking_level::value == boost::serialization::track_always diff --git a/boost-spirit-warnings.patch b/boost-spirit-warnings.patch new file mode 100644 index 0000000..62a0c61 --- /dev/null +++ b/boost-spirit-warnings.patch @@ -0,0 +1,94 @@ +*** boost/spirit/core/non_terminal/impl/rule.ipp.orig 2006-11-13 11:54:53.000000000 +0100 +--- boost/spirit/core/non_terminal/impl/rule.ipp 2006-11-13 11:55:31.000000000 +0100 +*************** namespace boost { namespace spirit { +*** 224,230 **** + template + struct concrete_parser : abstract_parser + { +! concrete_parser(ParserT const& p) : p(p) {} + virtual ~concrete_parser() {} + + virtual typename match_result::type +--- 224,230 ---- + template + struct concrete_parser : abstract_parser + { +! concrete_parser(ParserT const& p_) : p(p_) {} + virtual ~concrete_parser() {} + + virtual typename match_result::type +*** boost/spirit/core/impl/match.ipp.orig 2006-11-13 11:55:48.000000000 +0100 +--- boost/spirit/core/impl/match.ipp 2006-11-13 11:57:19.000000000 +0100 +*************** namespace boost { namespace spirit +*** 17,28 **** + : len(-1), val() {} + + template +! inline match::match(std::size_t length) +! : len(length), val() {} + + template +! inline match::match(std::size_t length, ctor_param_t val_) +! : len(length), val(val_) {} + + template + inline bool +--- 17,28 ---- + : len(-1), val() {} + + template +! inline match::match(std::size_t length_) +! : len(length_), val() {} + + template +! inline match::match(std::size_t length_, ctor_param_t val_) +! : len(length_), val(val_) {} + + template + inline bool +*** boost/spirit/core/scanner/scanner.hpp.orig 2006-11-13 11:57:51.000000000 +0100 +--- boost/spirit/core/scanner/scanner.hpp 2006-11-13 12:00:06.000000000 +0100 +*************** namespace boost { namespace spirit +*** 242,263 **** + bool + at_end() const + { +! typedef typename PoliciesT::iteration_policy_t iteration_policy_t; +! return iteration_policy_t::at_end(*this); + } + + value_t + operator*() const + { +! typedef typename PoliciesT::iteration_policy_t iteration_policy_t; +! return iteration_policy_t::filter(iteration_policy_t::get(*this)); + } + + scanner const& + operator++() const + { +! typedef typename PoliciesT::iteration_policy_t iteration_policy_t; +! iteration_policy_t::advance(*this); + return *this; + } + +--- 242,260 ---- + bool + at_end() const + { +! return PoliciesT::iteration_policy_t::at_end(*this); + } + + value_t + operator*() const + { +! return PoliciesT::iteration_policy_t::filter(iteration_policy_t::get(*this)); + } + + scanner const& + operator++() const + { +! PoliciesT::iteration_policy_t::advance(*this); + return *this; + } + diff --git a/boost.spec b/boost.spec index 8fa96e1..fbd02dd 100644 --- a/boost.spec +++ b/boost.spec @@ -3,7 +3,7 @@ Name: boost Summary: The Boost C++ Libraries Version: 1.33.1 -Release: 6.1 +Release: 7 License: Boost Software License URL: http://www.boost.org/ Group: System Environment/Libraries @@ -13,8 +13,11 @@ Prereq: /sbin/ldconfig BuildRequires: libstdc++-devel python BuildRequires: bzip2-libs BuildRequires: bzip2-devel +BuildRequires: zlib BuildRequires: zlib-devel BuildRequires: python-devel +BuildRequires: libicu +BuildRequires: libicu-devel Obsoletes: boost-doc <= 1.30.2 Obsoletes: boost-python <= 1.30.2 Patch0: boost-base.patch @@ -22,6 +25,9 @@ Patch1: boost-gcc-tools.patch Patch2: boost-thread.patch Patch3: boost-config-compiler-gcc.patch Patch4: boost-runtests.patch +Patch5: boost-serialization-warnings.patch +Patch6: boost-spirit-warnings.patch +Patch7: boost-bind-gcc41.patch %description Boost provides free peer-reviewed portable C++ source libraries. The @@ -61,6 +67,9 @@ rm -rf $RPM_BUILD_ROOT %patch2 -p0 %patch3 -p0 %patch4 -p0 +%patch5 -p0 +%patch6 -p0 +%patch7 -p0 %build #build bjam @@ -68,10 +77,13 @@ rm -rf $RPM_BUILD_ROOT #build boost with bjam BJAM=`find tools/build/jam_src/ -name bjam -a -type f` +#BUILD_FLAGS="-sTOOLS=gcc -sBUILD=release 1" +#BUILD_FLAGS="-sTOOLS=gcc -sBUILD=release" +BUILD_FLAGS="-d2 -sTOOLS=gcc -sBUILD=release" PYTHON_VERSION=$(python -c 'import sys; print sys.version[:3]') PYTHON_FLAGS="-sPYTHON_ROOT=/usr -sPYTHON_VERSION=$PYTHON_VERSION" -#$BJAM $PYTHON_FLAGS "-sTOOLS=gcc" "-sBUILD=release 1" stage -$BJAM $PYTHON_FLAGS "-sTOOLS=gcc" "-sBUILD=release" stage +REGEX_FLAGS="-sHAVE_ICU=1" +$BJAM $PYTHON_FLAGS $REGEX_FLAGS $BUILD_FLAGS stage #run tests BOOST_ROOT=`pwd`; @@ -160,6 +172,14 @@ rm -rf $RPM_BUILD_ROOT %{_docdir}/boost-%{version} %changelog +* Mon Nov 13 2006 Benjamin Kosnik 1.33.1-7 +- (#205866: boost::spirit generates warnings with -Wshadow) +- (#205863: serialization lib generates warnings) +- (#204326: boost RPM missing dependencies) +- (#193465: [SIGNAL/BIND] Regressions with GCC 4.1) +- BUILD_FLAGS, add, to see actual compile line. +- REGEX_FLAGS, add, to compile regex with ICU support. + * Wed Jul 12 2006 Jesse Keating - 1.33.1-6.1 - rebuild