diff --git a/baselibs.conf b/baselibs.conf
index 7aaa5ba..46c1c5b 100644
--- a/baselibs.conf
+++ b/baselibs.conf
@@ -1,21 +1,24 @@
package boost-devel
requires -boost-
-libboost_atomic1_54_0
-libboost_context1_54_0
-libboost_date_time1_54_0
-libboost_filesystem1_54_0
-libboost_graph1_54_0
-libboost_graph_parallel1_54_0
-libboost_iostreams1_54_0
-libboost_math1_54_0
-libboost_mpi1_54_0
-libboost_test1_54_0
-libboost_program_options1_54_0
-libboost_python1_54_0
-libboost_random1_54_0
-libboost_serialization1_54_0
-libboost_signals1_54_0
-libboost_system1_54_0
-libboost_thread1_54_0
-libboost_wave1_54_0
-libboost_regex1_54_0
+libboost_atomic1_56_0
+libboost_container1_56_0
+libboost_context1_56_0
+libboost_coroutine1_56_0
+libboost_date_time1_56_0
+libboost_filesystem1_56_0
+libboost_graph1_56_0
+libboost_graph_parallel1_56_0
+libboost_iostreams1_56_0
+libboost_math1_56_0
+libboost_mpi1_56_0
+libboost_test1_56_0
+libboost_program_options1_56_0
+libboost_python1_56_0
+libboost_python3-1_56_0
+libboost_random1_56_0
+libboost_serialization1_56_0
+libboost_signals1_56_0
+libboost_system1_56_0
+libboost_thread1_56_0
+libboost_wave1_56_0
+libboost_regex1_56_0
diff --git a/bjam-alignment.patch b/bjam-alignment.patch
index f6a8688..5f54823 100644
--- a/bjam-alignment.patch
+++ b/bjam-alignment.patch
@@ -1,7 +1,7 @@
-Index: boost_1_54_0/tools/build/v2/engine/function.c
+Index: boost_1_56_0/tools/build/src/engine/function.c
===================================================================
---- boost_1_54_0.orig/tools/build/v2/engine/function.c
-+++ boost_1_54_0/tools/build/v2/engine/function.c
+--- boost_1_56_0.orig/tools/build/src/engine/function.c
++++ boost_1_56_0/tools/build/src/engine/function.c
@@ -230,7 +230,7 @@ STACK * stack_global()
static void check_alignment( STACK * s )
diff --git a/boost-1.54-001-coroutine.patch b/boost-1.54-001-coroutine.patch
deleted file mode 100644
index 8b98de6..0000000
--- a/boost-1.54-001-coroutine.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-------------------------------------------------------------------------
-r84947 | danieljames | 2013-07-03 22:57:56 +0100 (Wed, 03 Jul 2013) | 4 lines
-
-coroutine: fix typo in Jamfile
-
-From [84622], by olli
-
-------------------------------------------------------------------------
---- 1_54_0/libs/coroutine/build/Jamfile.v2 (revision 84946)
-+++ 1_54_0/libs/coroutine/build/Jamfile.v2 (revision 84947)
-@@ -40,7 +40,7 @@
- : detail/standard_stack_allocator_posix.cpp
- ;
-
--explicit yield_sources ;
-+explicit allocator_sources ;
-
- lib boost_coroutine
- : allocator_sources
diff --git a/boost-1.54-002-date-time.patch b/boost-1.54-002-date-time.patch
deleted file mode 100644
index 38dc8c7..0000000
--- a/boost-1.54-002-date-time.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-------------------------------------------------------------------------
-r84948 | danieljames | 2013-07-03 23:02:30 +0100 (Wed, 03 Jul 2013) | 4 lines
-
-In C++11 the shared_ptr -> bool conversion is explicit. In custom time zone code, make the cast explicit. Fixes compilation failure in C++11
-
-From [84626], by marshall.
-
-------------------------------------------------------------------------
---- 1_54_0/boost/date_time/local_time/custom_time_zone.hpp (revision 84947)
-+++ 1_54_0/boost/date_time/local_time/custom_time_zone.hpp (revision 84948)
-@@ -64,7 +64,7 @@
- //! True if zone uses daylight savings adjustments
- virtual bool has_dst() const
- {
-- return (dst_calc_rules_); //if calc_rule is set the tz has dst
-+ return (bool) dst_calc_rules_; //if calc_rule is set the tz has dst
- }
- //! Local time that DST starts -- NADT if has_dst is false
- virtual posix_time::ptime dst_local_start_time(gregorian::greg_year y) const
diff --git a/boost-1.54-003-log.patch b/boost-1.54-003-log.patch
deleted file mode 100644
index 842d1e2..0000000
--- a/boost-1.54-003-log.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-------------------------------------------------------------------------
-r84966 | andysem | 2013-07-07 11:43:20 +0100 (Sun, 07 Jul 2013) | 1 line
-
-Backported fix for BOOST_LOG_ONCE_BLOCK_FLAG macro definition.
-------------------------------------------------------------------------
---- 1_54_0/boost/log/utility/once_block.hpp (revision 84965)
-+++ 1_54_0/boost/log/utility/once_block.hpp (revision 84966)
-@@ -176,7 +176,7 @@
- * been executed.
- */
- #define BOOST_LOG_ONCE_BLOCK_FLAG(flag_var)\
-- BOOST_LOG_ONCE_BLOCK_INTERNAL(\
-+ BOOST_LOG_ONCE_BLOCK_FLAG_INTERNAL(\
- flag_var,\
- BOOST_LOG_UNIQUE_IDENTIFIER_NAME(_boost_log_once_block_sentry_))
-
diff --git a/boost-1.54-change85160.patch b/boost-1.54-change85160.patch
deleted file mode 100644
index 0e2a0ef..0000000
--- a/boost-1.54-change85160.patch
+++ /dev/null
@@ -1,237 +0,0 @@
-Index: boost/lexical_cast.hpp
-===================================================================
---- boost/lexical_cast.hpp (revision 84183)
-+++ boost/lexical_cast.hpp (revision 85160)
-@@ -69,9 +69,4 @@
- throw_exception(bad_lexical_cast(typeid(Source), typeid(Target)))
- #endif
--
--#if (defined(BOOST_LCAST_HAS_INT128) && !defined(__GNUC__)) || GCC_VERSION > 40700
--#define BOOST_LCAST_HAS_INT128
--#endif
--
-
- namespace boost
-@@ -317,5 +312,5 @@
- #endif
-
--#ifdef BOOST_LCAST_HAS_INT128
-+#ifdef BOOST_HAS_INT128
- template <> struct stream_char_common< boost::int128_type >: public boost::mpl::identity< char > {};
- template <> struct stream_char_common< boost::uint128_type >: public boost::mpl::identity< char > {};
-@@ -614,5 +609,5 @@
- BOOST_LCAST_DEF( __int64)
- #endif
--#ifdef BOOST_LCAST_HAS_INT128
-+#ifdef BOOST_HAS_INT128
- BOOST_LCAST_DEF(boost::int128_type)
- BOOST_LCAST_DEF(boost::uint128_type)
-@@ -880,4 +875,13 @@
- #ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
- BOOST_STATIC_ASSERT(!std::numeric_limits::is_signed);
-+
-+ // GCC when used with flag -std=c++0x may not have std::numeric_limits
-+ // specializations for __int128 and unsigned __int128 types.
-+ // Try compilation with -std=gnu++0x or -std=gnu++11.
-+ //
-+ // http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40856
-+ BOOST_STATIC_ASSERT_MSG(std::numeric_limits::is_specialized,
-+ "std::numeric_limits are not specialized for integral type passed to boost::lexical_cast"
-+ );
- #endif
- CharT const czero = lcast_char_constants::zero;
-@@ -1828,5 +1832,5 @@
- #endif
-
--#ifdef BOOST_LCAST_HAS_INT128
-+#ifdef BOOST_HAS_INT128
- bool operator<<(const boost::uint128_type& n) { start = lcast_put_unsigned(n, finish); return true; }
- bool operator<<(const boost::int128_type& n) { return shl_signed(n); }
-@@ -2040,5 +2044,5 @@
- #endif
-
--#ifdef BOOST_LCAST_HAS_INT128
-+#ifdef BOOST_HAS_INT128
- bool operator>>(boost::uint128_type& output) { return shr_unsigned(output); }
- bool operator>>(boost::int128_type& output) { return shr_signed(output); }
-@@ -2554,5 +2558,5 @@
- }
- #endif
--#ifndef BOOST_NO_CHAR16_T
-+#ifndef BOOST_NO_CXX11_CHAR16_T
- template
- inline Target lexical_cast(const char16_t* chars, std::size_t count)
-@@ -2563,5 +2567,5 @@
- }
- #endif
--#ifndef BOOST_NO_CHAR32_T
-+#ifndef BOOST_NO_CXX11_CHAR32_T
- template
- inline Target lexical_cast(const char32_t* chars, std::size_t count)
-@@ -2720,5 +2724,4 @@
- #undef BOOST_LCAST_THROW_BAD_CAST
- #undef BOOST_LCAST_NO_WCHAR_T
--#undef BOOST_LCAST_HAS_INT128
-
- #endif // BOOST_LEXICAL_CAST_INCLUDED
-Index: libs/conversion/test/lexical_cast_integral_types_test.cpp
-===================================================================
---- libs/conversion/test/lexical_cast_integral_types_test.cpp (revision 83764)
-+++ libs/conversion/test/lexical_cast_integral_types_test.cpp (revision 85160)
-@@ -49,8 +49,4 @@
- #endif
-
--#if (defined(BOOST_LCAST_HAS_INT128) && !defined(__GNUC__)) || GCC_VERSION > 40700
--#define BOOST_LCAST_HAS_INT128
--#endif
--
- // Test all 65536 values if true:
- bool const lcast_test_small_integral_types_completely = false;
-@@ -76,5 +72,5 @@
- void test_conversion_from_to_ulonglong();
- #endif
--#ifdef BOOST_LCAST_HAS_INT128
-+#ifdef BOOST_HAS_INT128
- void test_conversion_from_to_int128();
- void test_conversion_from_to_uint128();
-@@ -100,5 +96,5 @@
- suite->add(BOOST_TEST_CASE(&test_conversion_from_to_ulonglong));
- #endif
--#ifdef BOOST_LCAST_HAS_INT128
-+#ifdef BOOST_HAS_INT128
- suite->add(BOOST_TEST_CASE(&test_conversion_from_to_int128));
- suite->add(BOOST_TEST_CASE(&test_conversion_from_to_uint128));
-@@ -445,6 +441,6 @@
-
- // Overflow test case from David W. Birdsall
-- std::string must_owerflow_str = "160000000000000000000";
-- std::string must_owerflow_negative_str = "-160000000000000000000";
-+ std::string must_owerflow_str = (sizeof(T) < 16 ? "160000000000000000000" : "1600000000000000000000000000000000000000");
-+ std::string must_owerflow_negative_str = (sizeof(T) < 16 ? "-160000000000000000000" : "-1600000000000000000000000000000000000000");
- for (int i = 0; i < 15; ++i) {
- BOOST_CHECK_THROW(lexical_cast(must_owerflow_str), bad_lexical_cast);
-@@ -558,13 +554,32 @@
-
-
--#ifdef BOOST_LCAST_HAS_INT128
-+#ifdef BOOST_HAS_INT128
-+
-+template
-+struct test_if_specialized {
-+ static void test() {}
-+};
-+
-+template
-+struct test_if_specialized {
-+ static void test() {
-+ test_conversion_from_to_integral_minimal();
-+ }
-+};
-+
- void test_conversion_from_to_int128()
- {
-- test_conversion_from_to_integral_minimal();
-+ test_if_specialized<
-+ std::numeric_limits::is_specialized,
-+ boost::int128_type
-+ >::test();
- }
-
- void test_conversion_from_to_uint128()
- {
-- test_conversion_from_to_integral_minimal();
-+ test_if_specialized<
-+ std::numeric_limits::is_specialized,
-+ boost::uint128_type
-+ >::test();
- }
- #endif
-@@ -603,5 +618,5 @@
- #endif
-
--#ifdef BOOST_LCAST_HAS_INT128
-+#ifdef BOOST_HAS_INT128
- test_integral_conversions_on_min_max_impl();
- #endif
-Index: libs/conversion/test/Jamfile.v2
-===================================================================
---- libs/conversion/test/Jamfile.v2 (revision 83689)
-+++ libs/conversion/test/Jamfile.v2 (revision 85160)
-@@ -1,4 +1,4 @@
- # Copyright (C) 2001-2003 Douglas Gregor
--# Copyright (C) 2011-2012 Antony Polukhin
-+# Copyright (C) 2011-2013 Antony Polukhin
- #
- # Distributed under the Boost Software License, Version 1.0. (See accompanying
-@@ -16,4 +16,9 @@
- gcc-4.6:-ftrapv
- clang:-ftrapv
-+ # default to all warnings on:
-+ all
-+ # set warnings as errors for those compilers we know we get warning free:
-+ gcc:-Wextra
-+ gcc:-Wno-uninitialized
- ;
-
-Index: libs/conversion/test/implicit_cast_fail.cpp
-===================================================================
---- libs/conversion/test/implicit_cast_fail.cpp (revision 79364)
-+++ libs/conversion/test/implicit_cast_fail.cpp (revision 85160)
-@@ -20,5 +20,7 @@
- {
- foo x = implicit_cast("foobar");
-- (void)x; // warning suppression.
-+ (void)x; // warning suppression.
-+ BOOST_CHECK(false); // suppressing warning about 'boost::unit_test::{anonymous}::unit_test_log' defined but not used
- return 0;
- }
-+
-Index: libs/conversion/test/lexical_cast_to_pointer_test.cpp
-===================================================================
---- libs/conversion/test/lexical_cast_to_pointer_test.cpp (revision 83689)
-+++ libs/conversion/test/lexical_cast_to_pointer_test.cpp (revision 85160)
-@@ -18,4 +18,6 @@
- {
- boost::lexical_cast("Hello");
-+ BOOST_CHECK(false); // suppressing warning about 'boost::unit_test::{anonymous}::unit_test_log' defined but not used
- return 0;
- }
-+
-Index: libs/conversion/index.html
-===================================================================
---- libs/conversion/index.html (revision 73851)
-+++ libs/conversion/index.html (revision 85160)
-@@ -7,4 +7,11 @@
-
- Boost Conversion Library
-+
-
-
-@@ -33,5 +40,9 @@
- S-Format="%d %B, %Y" startspan -->June 23, 2005
-
--
-+
-+ Copyright 2001 Beman Dawes.
-+ Distributed under the Boost Software License, Version 1.0. (See accompanying
-+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-+
-