From 662439cda125e971160a4bc9b76997f6347496f4 Mon Sep 17 00:00:00 2001 From: Petr Machata Date: Jul 02 2009 16:38:45 +0000 Subject: - Drop file list for main "boost" package, which was inadvertently left in. - Add thread sub-package to capture omitted boost_thread. - Add upstream patch to make boost_filesystem compatible with C++0x. - Resolves: #496188 - Resolves: #509250 --- diff --git a/boost-fs_gcc44.patch b/boost-fs_gcc44.patch new file mode 100644 index 0000000..ef02b85 --- /dev/null +++ b/boost-fs_gcc44.patch @@ -0,0 +1,163 @@ +Index: boost/filesystem/operations.hpp +=================================================================== +--- boost/filesystem/operations.hpp (revision 52859) ++++ boost/filesystem/operations.hpp (working copy) +@@ -659,9 +659,9 @@ + { return is_symlink( ph ); } + + inline bool is_empty( const path & ph ) +- { return is_empty( ph ); } ++ { return boost::filesystem::is_empty( ph ); } + inline bool is_empty( const wpath & ph ) +- { return is_empty( ph ); } ++ { return boost::filesystem::is_empty( ph ); } + + inline bool equivalent( const path & ph1, const path & ph2 ) + { return equivalent( ph1, ph2 ); } +Index: libs/filesystem/test/path_test.cpp +=================================================================== +--- libs/filesystem/test/path_test.cpp (revision 52859) ++++ libs/filesystem/test/path_test.cpp (working copy) +@@ -27,9 +27,8 @@ + + namespace fs = boost::filesystem; + using boost::filesystem::path; +-using boost::next; +-using boost::prior; + ++ + #include + + #define PATH_CHECK( a, b ) check( a, b, __LINE__ ) +@@ -480,18 +479,18 @@ + + itr_ck = "foo"; + BOOST_TEST( *itr_ck.begin() == std::string( "foo" ) ); +- BOOST_TEST( next( itr_ck.begin() ) == itr_ck.end() ); +- BOOST_TEST( *prior( itr_ck.end() ) == std::string( "foo" ) ); +- BOOST_TEST( prior( itr_ck.end() ) == itr_ck.begin() ); ++ BOOST_TEST( boost::next( itr_ck.begin() ) == itr_ck.end() ); ++ BOOST_TEST( *boost::prior( itr_ck.end() ) == std::string( "foo" ) ); ++ BOOST_TEST( boost::prior( itr_ck.end() ) == itr_ck.begin() ); + + itr_ck = path( "/foo" ); + BOOST_TEST( *itr_ck.begin() == std::string( "/" ) ); +- BOOST_TEST( *next( itr_ck.begin() ) == std::string( "foo" ) ); +- BOOST_TEST( next(next( itr_ck.begin() )) == itr_ck.end() ); +- BOOST_TEST( next( itr_ck.begin() ) == prior( itr_ck.end() ) ); +- BOOST_TEST( *prior( itr_ck.end() ) == std::string( "foo" ) ); +- BOOST_TEST( *prior(prior( itr_ck.end() )) == std::string( "/" ) ); +- BOOST_TEST( prior(prior( itr_ck.end() )) == itr_ck.begin() ); ++ BOOST_TEST( *boost::next( itr_ck.begin() ) == std::string( "foo" ) ); ++ BOOST_TEST( boost::next(boost::next( itr_ck.begin() )) == itr_ck.end() ); ++ BOOST_TEST( boost::next( itr_ck.begin() ) == boost::prior( itr_ck.end() ) ); ++ BOOST_TEST( *boost::prior( itr_ck.end() ) == std::string( "foo" ) ); ++ BOOST_TEST( *boost::prior(boost::prior( itr_ck.end() )) == std::string( "/" ) ); ++ BOOST_TEST( boost::prior(boost::prior( itr_ck.end() )) == itr_ck.begin() ); + + itr_ck = "/foo/bar"; + itr = itr_ck.begin(); +@@ -1106,65 +1105,65 @@ + + itr_ck = path( "c:" ); + BOOST_TEST( *itr_ck.begin() == std::string( "c:" ) ); +- BOOST_TEST( next( itr_ck.begin() ) == itr_ck.end() ); +- BOOST_TEST( prior( itr_ck.end() ) == itr_ck.begin() ); +- BOOST_TEST( *prior( itr_ck.end() ) == std::string( "c:" ) ); ++ BOOST_TEST( boost::next( itr_ck.begin() ) == itr_ck.end() ); ++ BOOST_TEST( boost::prior( itr_ck.end() ) == itr_ck.begin() ); ++ BOOST_TEST( *boost::prior( itr_ck.end() ) == std::string( "c:" ) ); + + itr_ck = path( "c:/" ); + BOOST_TEST( *itr_ck.begin() == std::string( "c:" ) ); +- BOOST_TEST( *next( itr_ck.begin() ) == std::string( "/" ) ); +- BOOST_TEST( next( next( itr_ck.begin() )) == itr_ck.end() ); +- BOOST_TEST( prior( prior( itr_ck.end() )) == itr_ck.begin() ); +- BOOST_TEST( *prior( itr_ck.end() ) == std::string( "/" ) ); +- BOOST_TEST( *prior( prior( itr_ck.end() )) == std::string( "c:" ) ); ++ BOOST_TEST( *boost::next( itr_ck.begin() ) == std::string( "/" ) ); ++ BOOST_TEST( boost::next( boost::next( itr_ck.begin() )) == itr_ck.end() ); ++ BOOST_TEST( boost::prior( boost::prior( itr_ck.end() )) == itr_ck.begin() ); ++ BOOST_TEST( *boost::prior( itr_ck.end() ) == std::string( "/" ) ); ++ BOOST_TEST( *boost::prior( boost::prior( itr_ck.end() )) == std::string( "c:" ) ); + + itr_ck = path( "c:foo" ); + BOOST_TEST( *itr_ck.begin() == std::string( "c:" ) ); +- BOOST_TEST( *next( itr_ck.begin() ) == std::string( "foo" ) ); +- BOOST_TEST( next(next( itr_ck.begin() )) == itr_ck.end() ); +- BOOST_TEST( prior(prior( itr_ck.end() )) == itr_ck.begin() ); +- BOOST_TEST( *prior( itr_ck.end() ) == std::string( "foo" ) ); +- BOOST_TEST( *prior(prior( itr_ck.end() )) == std::string( "c:" ) ); ++ BOOST_TEST( *boost::next( itr_ck.begin() ) == std::string( "foo" ) ); ++ BOOST_TEST( boost::next(boost::next( itr_ck.begin() )) == itr_ck.end() ); ++ BOOST_TEST( boost::prior(boost::prior( itr_ck.end() )) == itr_ck.begin() ); ++ BOOST_TEST( *boost::prior( itr_ck.end() ) == std::string( "foo" ) ); ++ BOOST_TEST( *boost::prior(boost::prior( itr_ck.end() )) == std::string( "c:" ) ); + + itr_ck = path( "c:/foo" ); + BOOST_TEST( *itr_ck.begin() == std::string( "c:" ) ); +- BOOST_TEST( *next( itr_ck.begin() ) == std::string( "/" ) ); +- BOOST_TEST( *next( next( itr_ck.begin() )) == std::string( "foo" ) ); +- BOOST_TEST( next( next( next( itr_ck.begin() ))) == itr_ck.end() ); +- BOOST_TEST( prior( prior( prior( itr_ck.end() ))) == itr_ck.begin() ); +- BOOST_TEST( *prior( itr_ck.end() ) == std::string( "foo" ) ); +- BOOST_TEST( *prior( prior( itr_ck.end() )) == std::string( "/" ) ); +- BOOST_TEST( *prior( prior( prior( itr_ck.end() ))) == std::string( "c:" ) ); ++ BOOST_TEST( *boost::next( itr_ck.begin() ) == std::string( "/" ) ); ++ BOOST_TEST( *boost::next( boost::next( itr_ck.begin() )) == std::string( "foo" ) ); ++ BOOST_TEST( boost::next( boost::next( boost::next( itr_ck.begin() ))) == itr_ck.end() ); ++ BOOST_TEST( boost::prior( boost::prior( boost::prior( itr_ck.end() ))) == itr_ck.begin() ); ++ BOOST_TEST( *boost::prior( itr_ck.end() ) == std::string( "foo" ) ); ++ BOOST_TEST( *boost::prior( boost::prior( itr_ck.end() )) == std::string( "/" ) ); ++ BOOST_TEST( *boost::prior( boost::prior( boost::prior( itr_ck.end() ))) == std::string( "c:" ) ); + + itr_ck = path( "//net" ); + BOOST_TEST( *itr_ck.begin() == std::string( "//net" ) ); +- BOOST_TEST( next( itr_ck.begin() ) == itr_ck.end() ); +- BOOST_TEST( prior( itr_ck.end() ) == itr_ck.begin() ); +- BOOST_TEST( *prior( itr_ck.end() ) == std::string( "//net" ) ); ++ BOOST_TEST( boost::next( itr_ck.begin() ) == itr_ck.end() ); ++ BOOST_TEST( boost::prior( itr_ck.end() ) == itr_ck.begin() ); ++ BOOST_TEST( *boost::prior( itr_ck.end() ) == std::string( "//net" ) ); + + itr_ck = path( "//net/" ); + CHECK_EQUAL( *itr_ck.begin(), "//net" ); +- CHECK_EQUAL( *next( itr_ck.begin() ), "/" ); +- BOOST_TEST( next(next( itr_ck.begin() )) == itr_ck.end() ); +- BOOST_TEST( prior(prior( itr_ck.end() )) == itr_ck.begin() ); +- CHECK_EQUAL( *prior( itr_ck.end() ), "/" ); +- CHECK_EQUAL( *prior(prior( itr_ck.end() )), "//net" ); ++ CHECK_EQUAL( *boost::next( itr_ck.begin() ), "/" ); ++ BOOST_TEST( boost::next(boost::next( itr_ck.begin() )) == itr_ck.end() ); ++ BOOST_TEST( boost::prior(boost::prior( itr_ck.end() )) == itr_ck.begin() ); ++ CHECK_EQUAL( *boost::prior( itr_ck.end() ), "/" ); ++ CHECK_EQUAL( *boost::prior(boost::prior( itr_ck.end() )), "//net" ); + + itr_ck = path( "//net/foo" ); + BOOST_TEST( *itr_ck.begin() == std::string( "//net" ) ); +- BOOST_TEST( *next( itr_ck.begin() ) == std::string( "/" ) ); +- BOOST_TEST( *next(next( itr_ck.begin() )) == std::string( "foo" ) ); +- BOOST_TEST( next(next(next( itr_ck.begin() ))) == itr_ck.end() ); +- BOOST_TEST( prior(prior(prior( itr_ck.end() ))) == itr_ck.begin() ); +- BOOST_TEST( *prior( itr_ck.end() ) == std::string( "foo" ) ); +- BOOST_TEST( *prior(prior( itr_ck.end() )) == std::string( "/" ) ); +- BOOST_TEST( *prior(prior(prior( itr_ck.end() ))) == std::string( "//net" ) ); ++ BOOST_TEST( *boost::next( itr_ck.begin() ) == std::string( "/" ) ); ++ BOOST_TEST( *boost::next(boost::next( itr_ck.begin() )) == std::string( "foo" ) ); ++ BOOST_TEST( boost::next(boost::next(boost::next( itr_ck.begin() ))) == itr_ck.end() ); ++ BOOST_TEST( boost::prior(boost::prior(boost::prior( itr_ck.end() ))) == itr_ck.begin() ); ++ BOOST_TEST( *boost::prior( itr_ck.end() ) == std::string( "foo" ) ); ++ BOOST_TEST( *boost::prior(boost::prior( itr_ck.end() )) == std::string( "/" ) ); ++ BOOST_TEST( *boost::prior(boost::prior(boost::prior( itr_ck.end() ))) == std::string( "//net" ) ); + + itr_ck = path( "prn:" ); + BOOST_TEST( *itr_ck.begin() == std::string( "prn:" ) ); +- BOOST_TEST( next( itr_ck.begin() ) == itr_ck.end() ); +- BOOST_TEST( prior( itr_ck.end() ) == itr_ck.begin() ); +- BOOST_TEST( *prior( itr_ck.end() ) == std::string( "prn:" ) ); ++ BOOST_TEST( boost::next( itr_ck.begin() ) == itr_ck.end() ); ++ BOOST_TEST( boost::prior( itr_ck.end() ) == itr_ck.begin() ); ++ BOOST_TEST( *boost::prior( itr_ck.end() ) == std::string( "prn:" ) ); + } // Windows + + else diff --git a/boost.spec b/boost.spec index 381d208..e108d8b 100644 --- a/boost.spec +++ b/boost.spec @@ -1,7 +1,7 @@ Name: boost Summary: The Boost C++ Libraries Version: 1.39.0 -Release: 2%{?dist} +Release: 3%{?dist} License: Boost URL: http://www.boost.org/ Group: System Environment/Libraries @@ -23,6 +23,7 @@ Requires: boost-regex = %{version}-%{release} Requires: boost-serialization = %{version}-%{release} Requires: boost-signals = %{version}-%{release} Requires: boost-system = %{version}-%{release} +Requires: boost-thread = %{version}-%{release} Requires: boost-wave = %{version}-%{release} BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -40,6 +41,7 @@ Patch3: boost-soname.patch Patch4: boost-unneccessary_iostreams.patch Patch5: boost-bitset.patch Patch6: boost-function_template.patch +Patch7: boost-fs_gcc44.patch %bcond_with tests %bcond_with docs_generated @@ -175,6 +177,17 @@ Runtime support for the Boost.Wave library, a Standards conformant, and highly configurable implementation of the mandated C99/C++ preprocessor functionality. +%package thread +Summary: Runtime component of boost thread library +Group: System Environment/Libraries + +%description thread + +Runtime component Boost.Thread library, which provides classes and +functions for managing multiple threads of execution, and for +synchronizing data between the threads or providing separate copies of +data specific to individual threads. + %package devel Summary: The Boost C++ headers and shared development libraries Group: Development/Libraries @@ -211,6 +224,7 @@ sed 's/_FEDORA_SONAME/%{sonamever}/' %{PATCH3} | %{__patch} -p0 --fuzz=0 %patch4 -p0 %patch5 -p0 %patch6 -p0 +%patch7 -p0 %build BOOST_ROOT=`pwd` @@ -333,9 +347,6 @@ rm -rf $RPM_BUILD_ROOT %postun -p /sbin/ldconfig %files -%defattr(-, root, root, -) -%{_libdir}/*.so.%{version} -%{_libdir}/*.so.%{sonamever} %files date-time %defattr(-, root, root, -) @@ -401,6 +412,11 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/libboost_system*.so.%{version} %{_libdir}/libboost_system*.so.%{sonamever} +%files thread +%defattr(-, root, root, -) +%{_libdir}/libboost_thread*.so.%{version} +%{_libdir}/libboost_thread*.so.%{sonamever} + %files wave %defattr(-, root, root, -) %{_libdir}/libboost_wave*.so.%{version} @@ -420,6 +436,13 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/*.a %changelog +* Thu Jul 2 2009 Petr Machata - 1.39.0-3 +- Drop file list for main "boost" package, which was inadvertently left in. +- Add thread sub-package to capture omitted boost_thread. +- Add upstream patch to make boost_filesystem compatible with C++0x. +- Resolves: #496188 +- Resolves: #509250 + * Mon May 11 2009 Benjamin Kosnik - 1.39.0-2 - Apply patch from Caolan McNamara - Resolves: #500030 function_template bug is back...