summary refs log tree commit diff
path: root/pkgs/development/libraries/boost
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/libraries/boost')
-rw-r--r--pkgs/development/libraries/boost/1.44.nix93
-rw-r--r--pkgs/development/libraries/boost/1.49.nix96
-rw-r--r--pkgs/development/libraries/boost/1.55.nix97
-rw-r--r--pkgs/development/libraries/boost/1.56.nix10
-rw-r--r--pkgs/development/libraries/boost/1.57.nix10
-rw-r--r--pkgs/development/libraries/boost/CVE-2013-0252.patch48
-rw-r--r--pkgs/development/libraries/boost/boost-149-cstdint.patch15
-rw-r--r--pkgs/development/libraries/boost/boost-149-darwin.patch40
-rw-r--r--pkgs/development/libraries/boost/boost-155-clang.patch90
-rw-r--r--pkgs/development/libraries/boost/boost_filesystem_post_1_49_0.patch12
-rw-r--r--pkgs/development/libraries/boost/clang-math-2.patch45
-rw-r--r--pkgs/development/libraries/boost/clang-math.patch65
-rw-r--r--pkgs/development/libraries/boost/generic.nix181
-rw-r--r--pkgs/development/libraries/boost/header-only-wrapper.nix30
-rw-r--r--pkgs/development/libraries/boost/time_utc.patch320
-rw-r--r--pkgs/development/libraries/boost/time_utc_144.patch520
16 files changed, 406 insertions, 1266 deletions
diff --git a/pkgs/development/libraries/boost/1.44.nix b/pkgs/development/libraries/boost/1.44.nix
deleted file mode 100644
index c192acd23bde..000000000000
--- a/pkgs/development/libraries/boost/1.44.nix
+++ /dev/null
@@ -1,93 +0,0 @@
-{ stdenv, fetchurl, icu, expat, zlib, bzip2, python
-, enableRelease ? true
-, enableDebug ? false
-, enableSingleThreaded ? false
-, enableMultiThreaded ? true
-, enableShared ? true
-, enableStatic ? false
-, enablePIC ? false
-, taggedLayout ? false
-}:
-
-let
-
-  variant = stdenv.lib.concatStringsSep ","
-    (stdenv.lib.optional enableRelease "release" ++
-     stdenv.lib.optional enableDebug "debug");
-
-  threading = stdenv.lib.concatStringsSep ","
-    (stdenv.lib.optional enableSingleThreaded "single" ++
-     stdenv.lib.optional enableMultiThreaded "multi");
-
-  link = stdenv.lib.concatStringsSep ","
-    (stdenv.lib.optional enableShared "shared" ++
-     stdenv.lib.optional enableStatic "static");
-
-  # To avoid library name collisions
-  finalLayout = if (taggedLayout || (enableRelease && enableDebug) ||
-    (enableSingleThreaded && enableMultiThreaded) ||
-    (enableShared && enableStatic)) then
-    "tagged" else "system";
-
-  cflags = if enablePIC then "cflags=-fPIC cxxflags=-fPIC linkflags=-fPIC" else "";
-
-in
-
-stdenv.mkDerivation {
-  name = "boost-1.44.0";
-
-  meta = {
-    homepage = "http://boost.org/";
-    description = "Collection of C++ libraries";
-    license = "boost-license";
-
-    maintainers = [ stdenv.lib.maintainers.simons ];
-  };
-
-  src = fetchurl {
-    url = "mirror://sourceforge/boost/boost_1_44_0.tar.bz2";
-    sha256 = "1nvq36mvzr1fr85q0jh86rk3bk65s1y55jgqgzfg3lcpkl12ihs5";
-  };
-
-  enableParallelBuilding = true;
-
-  buildInputs = [icu expat zlib bzip2 python];
-
-  configureScript = "./bootstrap.sh";
-  configureFlags = "--with-icu=${icu} --with-python=${python}/bin/python";
-
-  buildPhase = "./bjam -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat}/include -sEXPAT_LIBPATH=${expat}/lib --layout=${finalLayout} variant=${variant} threading=${threading} link=${link} ${cflags} install";
-
-  installPhase = ":";
-
-  patches = [
-    # Patch to get rid of following error, experienced by some packages like encfs, bitcoin:
-    #    terminate called after throwing an instance of 'std::runtime_error'
-    #    what():  locale::facet::_S_create_c_locale name not valid
-    (fetchurl {
-       url = https://svn.boost.org/trac/boost/raw-attachment/ticket/4688/boost_filesystem.patch ;
-       sha256 = "15k91ihzs6190pnryh4cl0b3c2pjpl9d790mr14x16zq52y7px2d";
-     })
-    ./time_utc_144.patch
-    ./boost-149-cstdint.patch
-  ];
-
-  crossAttrs = rec {
-    buildInputs = [ expat.crossDrv zlib.crossDrv bzip2.crossDrv ];
-    # all buildInputs set previously fell into propagatedBuildInputs, as usual, so we have to
-    # override them.
-    propagatedBuildInputs = buildInputs;
-    # We want to substitute the contents of configureFlags, removing thus the
-    # usual --build and --host added on cross building.
-    preConfigure = ''
-      export configureFlags="--prefix=$out --without-icu"
-    '';
-    buildPhase = ''
-      set -x
-      cat << EOF > user-config.jam
-      using gcc : cross : $crossConfig-g++ ;
-      EOF
-      ./bjam -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat.crossDrv}/include -sEXPAT_LIBPATH=${expat.crossDrv}/lib --layout=${finalLayout} --user-config=user-config.jam toolset=gcc-cross variant=${variant} threading=${threading} link=${link} ${cflags} --without-python install
-    '';
-  };
-}
diff --git a/pkgs/development/libraries/boost/1.49.nix b/pkgs/development/libraries/boost/1.49.nix
deleted file mode 100644
index 9e61683238fa..000000000000
--- a/pkgs/development/libraries/boost/1.49.nix
+++ /dev/null
@@ -1,96 +0,0 @@
-{ stdenv, fetchurl, icu, expat, zlib, bzip2, python
-, enableRelease ? true
-, enableDebug ? false
-, enableSingleThreaded ? false
-, enableMultiThreaded ? true
-, enableShared ? true
-, enableStatic ? false
-, enablePIC ? false
-, enableExceptions ? false
-}:
-
-let
-
-  variant = stdenv.lib.concatStringsSep ","
-    (stdenv.lib.optional enableRelease "release" ++
-     stdenv.lib.optional enableDebug "debug");
-
-  threading = stdenv.lib.concatStringsSep ","
-    (stdenv.lib.optional enableSingleThreaded "single" ++
-     stdenv.lib.optional enableMultiThreaded "multi");
-
-  link = stdenv.lib.concatStringsSep ","
-    (stdenv.lib.optional enableShared "shared" ++
-     stdenv.lib.optional enableStatic "static");
-
-  # To avoid library name collisions
-  finalLayout = if ((enableRelease && enableDebug) ||
-    (enableSingleThreaded && enableMultiThreaded) ||
-    (enableShared && enableStatic)) then
-    "tagged" else "system";
-
-  cflags = if enablePIC && enableExceptions then
-             "cflags=-fPIC -fexceptions cxxflags=-fPIC linkflags=-fPIC"
-           else if enablePIC then
-             "cflags=-fPIC cxxflags=-fPIC linkflags=-fPIC"
-           else if enableExceptions then
-             "cflags=-fexceptions"
-           else
-             "";
-in
-
-stdenv.mkDerivation {
-  name = "boost-1.49.0";
-
-  meta = {
-    homepage = "http://boost.org/";
-    description = "Collection of C++ libraries";
-    license = "boost-license";
-
-    platforms = stdenv.lib.platforms.unix;
-    maintainers = [ stdenv.lib.maintainers.simons ];
-  };
-
-  src = fetchurl {
-    url = "mirror://sourceforge/boost/boost_1_49_0.tar.bz2";
-    sha256 = "0g0d33942rm073jgqqvj3znm3rk45b2y2lplfjpyg9q7amzqlx6x";
-  };
-
-  # See <http://svn.boost.org/trac/boost/ticket/4688>.
-  patches = [
-    ./CVE-2013-0252.patch # https://svn.boost.org/trac/boost/ticket/7743
-    ./boost_filesystem_post_1_49_0.patch
-    ./time_utc.patch
-    ./boost-149-cstdint.patch
-  ] ++ (stdenv.lib.optional stdenv.isDarwin ./boost-149-darwin.patch );
-
-  enableParallelBuilding = true;
-
-  buildInputs = [icu expat zlib bzip2 python];
-
-  configureScript = "./bootstrap.sh";
-  configureFlags = "--with-icu=${icu} --with-python=${python}/bin/python";
-
-  buildPhase = "./b2 -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat}/include -sEXPAT_LIBPATH=${expat}/lib --layout=${finalLayout} variant=${variant} threading=${threading} link=${link} ${cflags} install";
-
-  installPhase = ":";
-
-  crossAttrs = rec {
-    buildInputs = [ expat.crossDrv zlib.crossDrv bzip2.crossDrv ];
-    # all buildInputs set previously fell into propagatedBuildInputs, as usual, so we have to
-    # override them.
-    propagatedBuildInputs = buildInputs;
-    # We want to substitute the contents of configureFlags, removing thus the
-    # usual --build and --host added on cross building.
-    preConfigure = ''
-      export configureFlags="--prefix=$out --without-icu"
-    '';
-    buildPhase = ''
-      set -x
-      cat << EOF > user-config.jam
-      using gcc : cross : $crossConfig-g++ ;
-      EOF
-      ./b2 -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat.crossDrv}/include -sEXPAT_LIBPATH=${expat.crossDrv}/lib --layout=${finalLayout} --user-config=user-config.jam toolset=gcc-cross variant=${variant} threading=${threading} link=${link} ${cflags} --without-python install
-    '';
-  };
-}
diff --git a/pkgs/development/libraries/boost/1.55.nix b/pkgs/development/libraries/boost/1.55.nix
index 1e9d2134d120..a10cd8ce2202 100644
--- a/pkgs/development/libraries/boost/1.55.nix
+++ b/pkgs/development/libraries/boost/1.55.nix
@@ -1,99 +1,12 @@
-{ stdenv, fetchurl, icu, expat, zlib, bzip2, python, fixDarwinDylibNames
-, toolset ? null
-, enableRelease ? true
-, enableDebug ? false
-, enableSingleThreaded ? false
-, enableMultiThreaded ? true
-, enableShared ? true
-, enableStatic ? false
-, enablePIC ? false
-, enableExceptions ? false
-, taggedLayout ? ((enableRelease && enableDebug) || (enableSingleThreaded && enableMultiThreaded) || (enableShared && enableStatic))
-}:
+{ callPackage, fetchurl, ... } @ args:
 
-let
+callPackage ./generic.nix (args // rec {
+  version = "1.55.0";
 
-  variant = stdenv.lib.concatStringsSep ","
-    (stdenv.lib.optional enableRelease "release" ++
-     stdenv.lib.optional enableDebug "debug");
-
-  threading = stdenv.lib.concatStringsSep ","
-    (stdenv.lib.optional enableSingleThreaded "single" ++
-     stdenv.lib.optional enableMultiThreaded "multi");
-
-  link = stdenv.lib.concatStringsSep ","
-    (stdenv.lib.optional enableShared "shared" ++
-     stdenv.lib.optional enableStatic "static");
-
-  # To avoid library name collisions
-  layout = if taggedLayout then "tagged" else "system";
-
-  cflags = if enablePIC && enableExceptions then
-             "cflags=\"-fPIC -fexceptions\" cxxflags=-fPIC linkflags=-fPIC"
-           else if enablePIC then
-             "cflags=-fPIC cxxflags=-fPIC linkflags=-fPIC"
-           else if enableExceptions then
-             "cflags=-fexceptions"
-           else
-             "";
-
-  withToolset = stdenv.lib.optionalString (toolset != null) " --with-toolset=${toolset}";
-in
-
-stdenv.mkDerivation {
-  name = "boost-1.55.0";
-
-  meta = {
-    homepage = "http://boost.org/";
-    description = "Collection of C++ libraries";
-    license = "boost-license";
-
-    platforms = stdenv.lib.platforms.unix;
-    maintainers = [ stdenv.lib.maintainers.simons ];
-  };
+  patches = [ ./clang-math.patch ./clang-math-2.patch ];
 
   src = fetchurl {
     url = "mirror://sourceforge/boost/boost_1_55_0.tar.bz2";
     sha256 = "0lkv5dzssbl5fmh2nkaszi8x9qbj80pr4acf9i26sj3rvlih1w7z";
   };
-
-  enableParallelBuilding = true;
-
-  buildInputs =
-    [ icu expat zlib bzip2 python ]
-    ++ stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames;
-
-  configureScript = "./bootstrap.sh";
-  configureFlags = "--with-icu=${icu} --with-python=${python}/bin/python" + withToolset;
-
-  buildPhase = "${stdenv.lib.optionalString (toolset == "clang") "unset NIX_ENFORCE_PURITY; "}./b2 -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat}/include -sEXPAT_LIBPATH=${expat}/lib --layout=${layout} variant=${variant} threading=${threading} link=${link} ${cflags} install${withToolset}";
-
-  # normal install does not install bjam, this is a separate step
-  installPhase = ''
-    cd tools/build/v2
-    sh bootstrap.sh${withToolset}
-    ./b2 -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat}/include -sEXPAT_LIBPATH=${expat}/lib --layout=${layout} variant=${variant} threading=${threading} link=${link} ${cflags} install${withToolset}
-    rm $out/bin/bjam
-    ln -s $out/bin/b2 $out/bin/bjam
-    rm -rf $out/share/boost-build/example
-  '';
-
-  crossAttrs = rec {
-    buildInputs = [ expat.crossDrv zlib.crossDrv bzip2.crossDrv ];
-    # all buildInputs set previously fell into propagatedBuildInputs, as usual, so we have to
-    # override them.
-    propagatedBuildInputs = buildInputs;
-    # We want to substitute the contents of configureFlags, removing thus the
-    # usual --build and --host added on cross building.
-    preConfigure = ''
-      export configureFlags="--prefix=$out --without-icu"
-    '';
-    buildPhase = ''
-      set -x
-      cat << EOF > user-config.jam
-      using gcc : cross : $crossConfig-g++ ;
-      EOF
-      ./b2 -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat.crossDrv}/include -sEXPAT_LIBPATH=${expat.crossDrv}/lib --layout=${layout} --user-config=user-config.jam toolset=gcc-cross variant=${variant} threading=${threading} link=${link} ${cflags} --without-python install
-    '';
-  };
-}
+})
diff --git a/pkgs/development/libraries/boost/1.56.nix b/pkgs/development/libraries/boost/1.56.nix
new file mode 100644
index 000000000000..fb62c2a07faf
--- /dev/null
+++ b/pkgs/development/libraries/boost/1.56.nix
@@ -0,0 +1,10 @@
+{ callPackage, fetchurl, ... } @ args:
+
+callPackage ./generic.nix (args // rec {
+  version = "1.56.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/boost/boost_1_56_0.tar.bz2";
+    sha256 = "07gz62nj767qzwqm3xjh11znpyph8gcii0cqhnx7wvismyn34iqk";
+  };
+})
diff --git a/pkgs/development/libraries/boost/1.57.nix b/pkgs/development/libraries/boost/1.57.nix
new file mode 100644
index 000000000000..6393c6e0d30f
--- /dev/null
+++ b/pkgs/development/libraries/boost/1.57.nix
@@ -0,0 +1,10 @@
+{ callPackage, fetchurl, ... } @ args:
+
+callPackage ./generic.nix (args // rec {
+  version = "1.57.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/boost/boost_1_57_0.tar.bz2";
+    sha256 = "0rs94vdmg34bwwj23fllva6mhrml2i7mvmlb11zyrk1k5818q34i";
+  };
+})
diff --git a/pkgs/development/libraries/boost/CVE-2013-0252.patch b/pkgs/development/libraries/boost/CVE-2013-0252.patch
deleted file mode 100644
index fce52d479692..000000000000
--- a/pkgs/development/libraries/boost/CVE-2013-0252.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-Index: /boost/locale/utf.hpp

-===================================================================

---- /boost/locale/utf.hpp	(revision 78304)

-+++ /boost/locale/utf.hpp	(revision 81590)

-@@ -220,4 +220,6 @@

-                     return incomplete;

-                 tmp = *p++;

-+                if (!is_trail(tmp))

-+                    return illegal;

-                 c = (c << 6) | ( tmp & 0x3F);

-             case 2:

-@@ -225,4 +227,6 @@

-                     return incomplete;

-                 tmp = *p++;

-+                if (!is_trail(tmp))

-+                    return illegal;

-                 c = (c << 6) | ( tmp & 0x3F);

-             case 1:

-@@ -230,4 +234,6 @@

-                     return incomplete;

-                 tmp = *p++;

-+                if (!is_trail(tmp))

-+                    return illegal;

-                 c = (c << 6) | ( tmp & 0x3F);

-             }

-Index: /libs/locale/test/test_codepage_converter.cpp

-===================================================================

---- /libs/locale/test/test_codepage_converter.cpp	(revision 73786)

-+++ /libs/locale/test/test_codepage_converter.cpp	(revision 81590)

-@@ -140,4 +140,18 @@

-         TEST_TO("\xf8\x90\x80\x80\x80",illegal);  // 400 0000

-         TEST_TO("\xfd\xbf\xbf\xbf\xbf\xbf",illegal);  // 7fff ffff

-+

-+        std::cout << "-- Invalid trail" << std::endl;

-+        TEST_TO("\xC2\x7F",illegal);

-+        TEST_TO("\xdf\x7F",illegal);

-+        TEST_TO("\xe0\x7F\x80",illegal);

-+        TEST_TO("\xef\xbf\x7F",illegal);

-+        TEST_TO("\xe0\x7F\x80",illegal);

-+        TEST_TO("\xef\xbf\x7F",illegal);

-+        TEST_TO("\xf0\x7F\x80\x80",illegal);

-+        TEST_TO("\xf4\x7f\xbf\xbf",illegal);

-+        TEST_TO("\xf0\x90\x7F\x80",illegal);

-+        TEST_TO("\xf4\x8f\x7F\xbf",illegal);

-+        TEST_TO("\xf0\x90\x80\x7F",illegal);

-+        TEST_TO("\xf4\x8f\xbf\x7F",illegal);

- 

-         std::cout << "-- Invalid length" << std::endl;

diff --git a/pkgs/development/libraries/boost/boost-149-cstdint.patch b/pkgs/development/libraries/boost/boost-149-cstdint.patch
deleted file mode 100644
index 94c7b4716664..000000000000
--- a/pkgs/development/libraries/boost/boost-149-cstdint.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -ru -x '*~' boost_1_49_0-orig/boost/cstdint.hpp boost_1_49_0/boost/cstdint.hpp
---- boost_1_49_0-orig/boost/cstdint.hpp	2012-01-29 22:58:13.000000000 +0100
-+++ boost_1_49_0/boost/cstdint.hpp	2013-12-10 11:48:19.304042208 +0100
-@@ -41,7 +41,10 @@
- // so we disable use of stdint.h when GLIBC does not define __GLIBC_HAVE_LONG_LONG.
- // See https://svn.boost.org/trac/boost/ticket/3548 and http://sources.redhat.com/bugzilla/show_bug.cgi?id=10990
- //
--#if defined(BOOST_HAS_STDINT_H) && (!defined(__GLIBC__) || defined(__GLIBC_HAVE_LONG_LONG))
-+#if defined(BOOST_HAS_STDINT_H)					\
-+  && (!defined(__GLIBC__)					\
-+      || defined(__GLIBC_HAVE_LONG_LONG)			\
-+      || (defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 17)))))
- 
- // The following #include is an implementation artifact; not part of interface.
- # ifdef __hpux
diff --git a/pkgs/development/libraries/boost/boost-149-darwin.patch b/pkgs/development/libraries/boost/boost-149-darwin.patch
deleted file mode 100644
index 2485f883afc2..000000000000
--- a/pkgs/development/libraries/boost/boost-149-darwin.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-diff -rc boost_1_49_0/tools/build/v2/tools/darwin.jam boost_1_49_0-new/tools/build/v2/tools/darwin.jam
-*** boost_1_49_0/tools/build/v2/tools/darwin.jam	Mon Jun  6 22:36:21 2011
---- boost_1_49_0-new/tools/build/v2/tools/darwin.jam	Thu May 23 22:07:45 2013
-***************
-*** 498,504 ****
-  flags darwin.compile OPTIONS <link>shared : -dynamic ;
-  
-  # Misc options.
-! flags darwin.compile OPTIONS : -no-cpp-precomp -gdwarf-2 -fexceptions ;
-  #~ flags darwin.link OPTIONS : -fexceptions ;
-  
-  # Add the framework names to use.
---- 498,504 ----
-  flags darwin.compile OPTIONS <link>shared : -dynamic ;
-  
-  # Misc options.
-! flags darwin.compile OPTIONS : -gdwarf-2 -fexceptions ;
-  #~ flags darwin.link OPTIONS : -fexceptions ;
-  
-  # Add the framework names to use.
-diff -rc boost_1_49_0/tools/build/v2/tools/darwin.py boost_1_49_0-new/tools/build/v2/tools/darwin.py
-*** boost_1_49_0/tools/build/v2/tools/darwin.py	Wed Oct 28 08:47:51 2009
---- boost_1_49_0-new/tools/build/v2/tools/darwin.py	Thu May 23 21:58:12 2013
-***************
-*** 37,43 ****
-  feature.feature ('framework', [], ['free'])
-  
-  toolset.flags ('darwin.compile', 'OPTIONS', '<link>shared', ['-dynamic'])
-! toolset.flags ('darwin.compile', 'OPTIONS', None, ['-Wno-long-double', '-no-cpp-precomp'])
-  toolset.flags ('darwin.compile.c++', 'OPTIONS', None, ['-fcoalesce-templates'])
-  
-  toolset.flags ('darwin.link', 'FRAMEWORK', '<framework>')
---- 37,43 ----
-  feature.feature ('framework', [], ['free'])
-  
-  toolset.flags ('darwin.compile', 'OPTIONS', '<link>shared', ['-dynamic'])
-! toolset.flags ('darwin.compile', 'OPTIONS', None, ['-Wno-long-double'])
-  toolset.flags ('darwin.compile.c++', 'OPTIONS', None, ['-fcoalesce-templates'])
-  
-  toolset.flags ('darwin.link', 'FRAMEWORK', '<framework>')
diff --git a/pkgs/development/libraries/boost/boost-155-clang.patch b/pkgs/development/libraries/boost/boost-155-clang.patch
new file mode 100644
index 000000000000..9c4e3a74cd25
--- /dev/null
+++ b/pkgs/development/libraries/boost/boost-155-clang.patch
@@ -0,0 +1,90 @@
+diff --git a/boost/atomic/detail/cas128strong.hpp b/boost/atomic/detail/cas128strong.hpp
+index 906c13e..dcb4d7d 100644
+--- a/boost/atomic/detail/cas128strong.hpp
++++ b/boost/atomic/detail/cas128strong.hpp
+@@ -196,15 +196,17 @@ class base_atomic<T, void, 16, Sign>
+ 
+ public:
+     BOOST_DEFAULTED_FUNCTION(base_atomic(void), {})
+-    explicit base_atomic(value_type const& v) BOOST_NOEXCEPT : v_(0)
++    explicit base_atomic(value_type const& v) BOOST_NOEXCEPT
+     {
++        memset(&v_, 0, sizeof(v_));
+         memcpy(&v_, &v, sizeof(value_type));
+     }
+ 
+     void
+     store(value_type const& value, memory_order order = memory_order_seq_cst) volatile BOOST_NOEXCEPT
+     {
+-        storage_type value_s = 0;
++        storage_type value_s;
++        memset(&value_s, 0, sizeof(value_s));
+         memcpy(&value_s, &value, sizeof(value_type));
+         platform_fence_before_store(order);
+         platform_store128(value_s, &v_);
+@@ -247,7 +249,9 @@ class base_atomic<T, void, 16, Sign>
+         memory_order success_order,
+         memory_order failure_order) volatile BOOST_NOEXCEPT
+     {
+-        storage_type expected_s = 0, desired_s = 0;
++        storage_type expected_s, desired_s;
++        memset(&expected_s, 0, sizeof(expected_s));
++        memset(&desired_s, 0, sizeof(desired_s));
+         memcpy(&expected_s, &expected, sizeof(value_type));
+         memcpy(&desired_s, &desired, sizeof(value_type));
+
+diff --git a/boost/atomic/detail/gcc-atomic.hpp b/boost/atomic/detail/gcc-atomic.hpp
+index a130590..4af99a1 100644
+--- a/boost/atomic/detail/gcc-atomic.hpp
++++ b/boost/atomic/detail/gcc-atomic.hpp
+@@ -958,14 +958,16 @@ class base_atomic<T, void, 16, Sign>
+ 
+ public:
+     BOOST_DEFAULTED_FUNCTION(base_atomic(void), {})
+-    explicit base_atomic(value_type const& v) BOOST_NOEXCEPT : v_(0)
++    explicit base_atomic(value_type const& v) BOOST_NOEXCEPT
+     {
++        memset(&v_, 0, sizeof(v_));
+         memcpy(&v_, &v, sizeof(value_type));
+     }
+ 
+     void store(value_type const& v, memory_order order = memory_order_seq_cst) volatile BOOST_NOEXCEPT
+     {
+-        storage_type tmp = 0;
++        storage_type tmp;
++        memset(&tmp, 0, sizeof(tmp));
+         memcpy(&tmp, &v, sizeof(value_type));
+         __atomic_store_n(&v_, tmp, atomics::detail::convert_memory_order_to_gcc(order));
+     }
+@@ -980,7 +982,8 @@ class base_atomic<T, void, 16, Sign>
+ 
+     value_type exchange(value_type const& v, memory_order order = memory_order_seq_cst) volatile BOOST_NOEXCEPT
+     {
+-        storage_type tmp = 0;
++        storage_type tmp;
++        memset(&tmp, 0, sizeof(tmp));
+         memcpy(&tmp, &v, sizeof(value_type));
+         tmp = __atomic_exchange_n(&v_, tmp, atomics::detail::convert_memory_order_to_gcc(order));
+         value_type res;
+@@ -994,7 +997,9 @@ class base_atomic<T, void, 16, Sign>
+         memory_order success_order,
+         memory_order failure_order) volatile BOOST_NOEXCEPT
+     {
+-        storage_type expected_s = 0, desired_s = 0;
++        storage_type expected_s, desired_s;
++        memset(&expected_s, 0, sizeof(expected_s));
++        memset(&desired_s, 0, sizeof(desired_s));
+         memcpy(&expected_s, &expected, sizeof(value_type));
+         memcpy(&desired_s, &desired, sizeof(value_type));
+         const bool success = __atomic_compare_exchange_n(&v_, &expected_s, desired_s, false,
+@@ -1010,7 +1015,9 @@ class base_atomic<T, void, 16, Sign>
+         memory_order success_order,
+         memory_order failure_order) volatile BOOST_NOEXCEPT
+     {
+-        storage_type expected_s = 0, desired_s = 0;
++        storage_type expected_s, desired_s;
++        memset(&expected_s, 0, sizeof(expected_s));
++        memset(&desired_s, 0, sizeof(desired_s));
+         memcpy(&expected_s, &expected, sizeof(value_type));
+         memcpy(&desired_s, &desired, sizeof(value_type));
+         const bool success = __atomic_compare_exchange_n(&v_, &expected_s, desired_s, true,
diff --git a/pkgs/development/libraries/boost/boost_filesystem_post_1_49_0.patch b/pkgs/development/libraries/boost/boost_filesystem_post_1_49_0.patch
deleted file mode 100644
index 334533d98a65..000000000000
--- a/pkgs/development/libraries/boost/boost_filesystem_post_1_49_0.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ubr boost_1_49_0/libs/filesystem/v2/src/v2_path.cpp boost_1_49_0-patched/libs/filesystem/v2/src/v2_path.cpp
---- boost_1_49_0/libs/filesystem/v2/src/v2_path.cpp	2011-01-11 22:39:33.000000000 +0100
-+++ boost_1_49_0-patched/libs/filesystem/v2/src/v2_path.cpp	2012-02-25 20:00:33.628767485 +0100
-@@ -45,7 +45,7 @@
-   {
- #if !defined(macintosh) && !defined(__APPLE__) && !defined(__APPLE_CC__) 
-     // ISO C calls this "the locale-specific native environment":
--    static std::locale lc("");
-+    static std::locale lc;
- #else  // Mac OS
-     // "All BSD system functions expect their string parameters to be in UTF-8 encoding
-     // and nothing else."
diff --git a/pkgs/development/libraries/boost/clang-math-2.patch b/pkgs/development/libraries/boost/clang-math-2.patch
new file mode 100644
index 000000000000..f819e9bec623
--- /dev/null
+++ b/pkgs/development/libraries/boost/clang-math-2.patch
@@ -0,0 +1,45 @@
+From 6bb71fdd8f7cc346d90fb14beb38b7297fc1ffd9 Mon Sep 17 00:00:00 2001
+From: Andrey Semashev <andrey.semashev@gmail.com>
+Date: Sun, 26 Jan 2014 13:58:48 +0400
+Subject: [PATCH] Fixed incorrect initialization of 128-bit values, when no
+ native support for 128-bit integers is available.
+
+---
+ boost/atomic/detail/cas128strong.hpp | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/boost/atomic/detail/cas128strong.hpp b/boost/atomic/detail/cas128strong.hpp
+index 906c13e..dcb4d7d 100644
+--- a/boost/atomic/detail/cas128strong.hpp
++++ b/boost/atomic/detail/cas128strong.hpp
+@@ -196,15 +196,17 @@ class base_atomic<T, void, 16, Sign>
+ 
+ public:
+     BOOST_DEFAULTED_FUNCTION(base_atomic(void), {})
+-    explicit base_atomic(value_type const& v) BOOST_NOEXCEPT : v_(0)
++    explicit base_atomic(value_type const& v) BOOST_NOEXCEPT
+     {
++        memset(&v_, 0, sizeof(v_));
+         memcpy(&v_, &v, sizeof(value_type));
+     }
+ 
+     void
+     store(value_type const& value, memory_order order = memory_order_seq_cst) volatile BOOST_NOEXCEPT
+     {
+-        storage_type value_s = 0;
++        storage_type value_s;
++        memset(&value_s, 0, sizeof(value_s));
+         memcpy(&value_s, &value, sizeof(value_type));
+         platform_fence_before_store(order);
+         platform_store128(value_s, &v_);
+@@ -247,7 +249,9 @@ class base_atomic<T, void, 16, Sign>
+         memory_order success_order,
+         memory_order failure_order) volatile BOOST_NOEXCEPT
+     {
+-        storage_type expected_s = 0, desired_s = 0;
++        storage_type expected_s, desired_s;
++        memset(&expected_s, 0, sizeof(expected_s));
++        memset(&desired_s, 0, sizeof(desired_s));
+         memcpy(&expected_s, &expected, sizeof(value_type));
+         memcpy(&desired_s, &desired, sizeof(value_type));
+ 
diff --git a/pkgs/development/libraries/boost/clang-math.patch b/pkgs/development/libraries/boost/clang-math.patch
new file mode 100644
index 000000000000..aa3d76af28b2
--- /dev/null
+++ b/pkgs/development/libraries/boost/clang-math.patch
@@ -0,0 +1,65 @@
+From e4bde20f2eec0a51be14533871d2123bd2ab9cf3 Mon Sep 17 00:00:00 2001
+From: Andrey Semashev <andrey.semashev@gmail.com>
+Date: Fri, 28 Feb 2014 12:43:11 +0400
+Subject: [PATCH] More compilation fixes for the case when 128-bit integers are
+ not supported.
+
+---
+ boost/atomic/detail/gcc-atomic.hpp | 17 ++++++++++++-----
+ 1 file changed, 12 insertions(+), 5 deletions(-)
+
+diff --git a/boost/atomic/detail/gcc-atomic.hpp b/boost/atomic/detail/gcc-atomic.hpp
+index a130590..4af99a1 100644
+--- a/boost/atomic/detail/gcc-atomic.hpp
++++ b/boost/atomic/detail/gcc-atomic.hpp
+@@ -958,14 +958,16 @@ class base_atomic<T, void, 16, Sign>
+ 
+ public:
+     BOOST_DEFAULTED_FUNCTION(base_atomic(void), {})
+-    explicit base_atomic(value_type const& v) BOOST_NOEXCEPT : v_(0)
++    explicit base_atomic(value_type const& v) BOOST_NOEXCEPT
+     {
++        memset(&v_, 0, sizeof(v_));
+         memcpy(&v_, &v, sizeof(value_type));
+     }
+ 
+     void store(value_type const& v, memory_order order = memory_order_seq_cst) volatile BOOST_NOEXCEPT
+     {
+-        storage_type tmp = 0;
++        storage_type tmp;
++        memset(&tmp, 0, sizeof(tmp));
+         memcpy(&tmp, &v, sizeof(value_type));
+         __atomic_store_n(&v_, tmp, atomics::detail::convert_memory_order_to_gcc(order));
+     }
+@@ -980,7 +982,8 @@ class base_atomic<T, void, 16, Sign>
+ 
+     value_type exchange(value_type const& v, memory_order order = memory_order_seq_cst) volatile BOOST_NOEXCEPT
+     {
+-        storage_type tmp = 0;
++        storage_type tmp;
++        memset(&tmp, 0, sizeof(tmp));
+         memcpy(&tmp, &v, sizeof(value_type));
+         tmp = __atomic_exchange_n(&v_, tmp, atomics::detail::convert_memory_order_to_gcc(order));
+         value_type res;
+@@ -994,7 +997,9 @@ class base_atomic<T, void, 16, Sign>
+         memory_order success_order,
+         memory_order failure_order) volatile BOOST_NOEXCEPT
+     {
+-        storage_type expected_s = 0, desired_s = 0;
++        storage_type expected_s, desired_s;
++        memset(&expected_s, 0, sizeof(expected_s));
++        memset(&desired_s, 0, sizeof(desired_s));
+         memcpy(&expected_s, &expected, sizeof(value_type));
+         memcpy(&desired_s, &desired, sizeof(value_type));
+         const bool success = __atomic_compare_exchange_n(&v_, &expected_s, desired_s, false,
+@@ -1010,7 +1015,9 @@ class base_atomic<T, void, 16, Sign>
+         memory_order success_order,
+         memory_order failure_order) volatile BOOST_NOEXCEPT
+     {
+-        storage_type expected_s = 0, desired_s = 0;
++        storage_type expected_s, desired_s;
++        memset(&expected_s, 0, sizeof(expected_s));
++        memset(&desired_s, 0, sizeof(desired_s));
+         memcpy(&expected_s, &expected, sizeof(value_type));
+         memcpy(&desired_s, &desired, sizeof(value_type));
+         const bool success = __atomic_compare_exchange_n(&v_, &expected_s, desired_s, true,
diff --git a/pkgs/development/libraries/boost/generic.nix b/pkgs/development/libraries/boost/generic.nix
new file mode 100644
index 000000000000..464f244dda38
--- /dev/null
+++ b/pkgs/development/libraries/boost/generic.nix
@@ -0,0 +1,181 @@
+{ stdenv, icu, expat, zlib, bzip2, python, fixDarwinDylibNames
+, toolset ? if stdenv.isDarwin then "clang" else null
+, enableRelease ? true
+, enableDebug ? false
+, enableSingleThreaded ? false
+, enableMultiThreaded ? true
+, enableShared ? true
+, enableStatic ? false
+, enablePIC ? false
+, enableExceptions ? false
+, taggedLayout ? ((enableRelease && enableDebug) || (enableSingleThreaded && enableMultiThreaded) || (enableShared && enableStatic))
+, patches ? null
+, mpi ? null
+
+# Attributes inherit from specific versions
+, version, src
+, ...
+}:
+
+# We must build at least one type of libraries
+assert !enableShared -> enableStatic;
+
+with stdenv.lib;
+let
+
+  variant = concatStringsSep ","
+    (optional enableRelease "release" ++
+     optional enableDebug "debug");
+
+  threading = concatStringsSep ","
+    (optional enableSingleThreaded "single" ++
+     optional enableMultiThreaded "multi");
+
+  link = concatStringsSep ","
+    (optional enableShared "shared" ++
+     optional enableStatic "static");
+
+  runtime-link = if enableShared then "shared" else "static";
+
+  # To avoid library name collisions
+  layout = if taggedLayout then "tagged" else "system";
+
+  cflags = if enablePIC && enableExceptions then
+             "cflags=\"-fPIC -fexceptions\" cxxflags=-fPIC linkflags=-fPIC"
+           else if enablePIC then
+             "cflags=-fPIC cxxflags=-fPIC linkflags=-fPIC"
+           else if enableExceptions then
+             "cflags=-fexceptions"
+           else
+             "";
+
+  withToolset = stdenv.lib.optionalString (toolset != null) "--with-toolset=${toolset}";
+
+  genericB2Flags = [
+    "--includedir=$dev/include"
+    "--libdir=$lib/lib"
+    "-j$NIX_BUILD_CORES"
+    "--layout=${layout}"
+    "variant=${variant}"
+    "threading=${threading}"
+    "runtime-link=${runtime-link}"
+    "link=${link}"
+    "${cflags}"
+  ] ++ optional (variant == "release") "debug-symbols=off";
+
+  nativeB2Flags = [
+    "-sEXPAT_INCLUDE=${expat}/include"
+    "-sEXPAT_LIBPATH=${expat}/lib"
+  ] ++ optional (toolset != null) "toolset=${toolset}"
+    ++ optional (mpi != null) "--user-config=user-config.jam";
+  nativeB2Args = concatStringsSep " " (genericB2Flags ++ nativeB2Flags);
+
+  crossB2Flags = [
+    "-sEXPAT_INCLUDE=${expat.crossDrv}/include"
+    "-sEXPAT_LIBPATH=${expat.crossDrv}/lib"
+    "--user-config=user-config.jam"
+    "toolset=gcc-cross"
+    "--without-python"
+  ];
+  crossB2Args = concatMapStringsSep " " (genericB2Flags ++ crossB2Flags);
+
+  builder = b2Args: ''
+    ./b2 ${b2Args}
+  '';
+
+  installer = b2Args: ''
+    # boostbook is needed by some applications
+    mkdir -p $dev/share/boostbook
+    cp -a tools/boostbook/{xsl,dtd} $dev/share/boostbook/
+
+    # Let boost install everything else
+    ./b2 ${b2Args} install
+
+    # Create a derivation which encompasses everything, making buildInputs nicer
+    mkdir -p $out/nix-support
+    echo "$dev $lib" > $out/nix-support/propagated-native-build-inputs
+  '';
+
+  commonConfigureFlags = [
+    "--includedir=$(dev)/include"
+    "--libdir=$(lib)/lib"
+  ];
+
+  fixup = ''
+    # Make boost header paths relative so that they are not runtime dependencies
+    (
+      cd "$dev"
+      find include \( -name '*.hpp' -or -name '*.h' -or -name '*.ipp' \) \
+        -exec sed '1i#line 1 "{}"' -i '{}' \;
+    )
+  '';
+
+in
+
+stdenv.mkDerivation {
+  name = "boost-${version}";
+
+  inherit src patches;
+
+  meta = {
+    homepage = "http://boost.org/";
+    description = "Collection of C++ libraries";
+    license = stdenv.lib.licenses.boost;
+
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ simons wkennington ];
+  };
+
+  preConfigure = ''
+    NIX_LDFLAGS="$(echo $NIX_LDFLAGS | sed "s,$out,$lib,g")"
+    if test -f tools/build/src/tools/clang-darwin.jam ; then
+        substituteInPlace tools/build/src/tools/clang-darwin.jam \
+          --replace '$(<[1]:D=)' "$lib/lib/\$(<[1]:D=)";
+    fi;
+  '' + optionalString (mpi != null) ''
+    cat << EOF > user-config.jam
+    using mpi : ${mpi}/bin/mpiCC ;
+    EOF
+  '';
+
+  NIX_CFLAGS_LINK = stdenv.lib.optionalString stdenv.isDarwin
+                      "-headerpad_max_install_names";
+
+  enableParallelBuilding = true;
+
+  buildInputs = [ icu expat zlib bzip2 python ]
+    ++ stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames;
+
+  configureScript = "./bootstrap.sh";
+  configureFlags = commonConfigureFlags ++ [
+    "--with-icu=${icu}"
+    "--with-python=${python}/bin/python"
+  ] ++ optional (toolset != null) "--with-toolset=${toolset}";
+
+  buildPhase = builder nativeB2Args;
+
+  installPhase = installer nativeB2Args;
+
+  postFixup = fixup;
+
+  outputs = [ "out" "dev" "lib" ];
+
+  crossAttrs = rec {
+    buildInputs = [ expat.crossDrv zlib.crossDrv bzip2.crossDrv ];
+    # all buildInputs set previously fell into propagatedBuildInputs, as usual, so we have to
+    # override them.
+    propagatedBuildInputs = buildInputs;
+    # We want to substitute the contents of configureFlags, removing thus the
+    # usual --build and --host added on cross building.
+    preConfigure = ''
+      export configureFlags="--without-icu ${concatStringsSep " " commonConfigureFlags}"
+      set -x
+      cat << EOF > user-config.jam
+      using gcc : cross : $crossConfig-g++ ;
+      EOF
+    '';
+    buildPhase = builder crossB2Args;
+    installPhase = installer crossB2Args;
+    postFixup = fixup;
+  };
+}
diff --git a/pkgs/development/libraries/boost/header-only-wrapper.nix b/pkgs/development/libraries/boost/header-only-wrapper.nix
deleted file mode 100644
index 96c9216a371b..000000000000
--- a/pkgs/development/libraries/boost/header-only-wrapper.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ stdenv, fetchurl, boost }:
-
-let
-  version = stdenv.lib.removePrefix "boost-" boost.name;
-  pkgid = stdenv.lib.replaceChars ["-" "."] ["_" "_"] boost.name;
-in
-
-stdenv.mkDerivation {
-  name = "boost-headers-${version}";
-
-  src = boost.src;
-
-  phases = [ "installPhase" ];
-
-  installPhase = ''
-    mkdir -p $out/include
-    tar xf $src -C $out/include --strip-components=1 ${pkgid}/boost
-  '';
-
-  preferLocalBuild = true;
-
-  meta = {
-    homepage = "http://boost.org/";
-    description = "Boost C++ Library Collection";
-    license = "boost-license";
-
-    platforms = stdenv.lib.platforms.unix;
-    maintainers = [ stdenv.lib.maintainers.viric stdenv.lib.maintainers.simons ];
-  };
-}
diff --git a/pkgs/development/libraries/boost/time_utc.patch b/pkgs/development/libraries/boost/time_utc.patch
deleted file mode 100644
index 3585d0bfc6dd..000000000000
--- a/pkgs/development/libraries/boost/time_utc.patch
+++ /dev/null
@@ -1,320 +0,0 @@
-From: https://build.opensuse.org/package/view_file?file=boost-time_utc.patch&package=boost&project=Application%3AGeo
-
-From: https://svn.boost.org/trac/boost/changeset/78802
-
-Message:
-    Thread: fix TIME_UTC, WINVER, constexpr for tags, and don't use local files
-
-Only the TIME_UTC_ change is taken
- 
-Index: boost_1_49_0/boost/thread/xtime.hpp
-===================================================================
---- boost_1_49_0.orig/boost/thread/xtime.hpp
-+++ boost_1_49_0/boost/thread/xtime.hpp
-@@ -2,7 +2,7 @@
- // William E. Kempf
- // Copyright (C) 2007-8 Anthony Williams
- //
--//  Distributed under the Boost Software License, Version 1.0. (See accompanying 
-+//  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)
- 
- #ifndef BOOST_XTIME_WEK070601_HPP
-@@ -20,7 +20,7 @@ namespace boost {
- 
- enum xtime_clock_types
- {
--    TIME_UTC=1
-+    TIME_UTC_=1
- //    TIME_TAI,
- //    TIME_MONOTONIC,
- //    TIME_PROCESS,
-@@ -53,14 +53,14 @@ struct xtime
-         boost::posix_time::microseconds((nsec+500)/1000);
- #endif
-     }
--    
-+
- };
- 
- inline xtime get_xtime(boost::system_time const& abs_time)
- {
-     xtime res;
-     boost::posix_time::time_duration const time_since_epoch=abs_time-boost::posix_time::from_time_t(0);
--            
-+
-     res.sec=static_cast<xtime::xtime_sec_t>(time_since_epoch.total_seconds());
-     res.nsec=static_cast<xtime::xtime_nsec_t>(time_since_epoch.fractional_seconds()*(1000000000/time_since_epoch.ticks_per_second()));
-     return res;
-@@ -68,7 +68,7 @@ inline xtime get_xtime(boost::system_tim
- 
- inline int xtime_get(struct xtime* xtp, int clock_type)
- {
--    if (clock_type == TIME_UTC)
-+    if (clock_type == TIME_UTC_)
-     {
-         *xtp=get_xtime(get_system_time());
-         return clock_type;
-@@ -81,7 +81,7 @@ inline int xtime_cmp(const xtime& xt1, c
- {
-     if (xt1.sec == xt2.sec)
-         return (int)(xt1.nsec - xt2.nsec);
--    else 
-+    else
-         return (xt1.sec > xt2.sec) ? 1 : -1;
- }
- 
-Index: boost_1_49_0/libs/thread/example/starvephil.cpp
-===================================================================
---- boost_1_49_0.orig/libs/thread/example/starvephil.cpp
-+++ boost_1_49_0/libs/thread/example/starvephil.cpp
-@@ -50,7 +50,7 @@ public:
-                       << "very hot ..." << std::endl;
-         }
-         boost::xtime xt;
--        boost::xtime_get(&xt, boost::TIME_UTC);
-+        boost::xtime_get(&xt, boost::TIME_UTC_);
-         xt.sec += 3;
-         boost::thread::sleep(xt);
-         m_chickens += value;
-@@ -85,7 +85,7 @@ void chef()
-             std::cout << "(" << clock() << ") Chef: cooking ..." << std::endl;
-         }
-         boost::xtime xt;
--        boost::xtime_get(&xt, boost::TIME_UTC);
-+        boost::xtime_get(&xt, boost::TIME_UTC_);
-         xt.sec += 2;
-         boost::thread::sleep(xt);
-         {
-@@ -111,7 +111,7 @@ struct phil
-             if (m_id > 0)
-             {
-                 boost::xtime xt;
--                boost::xtime_get(&xt, boost::TIME_UTC);
-+                boost::xtime_get(&xt, boost::TIME_UTC_);
-                 xt.sec += 3;
-                 boost::thread::sleep(xt);
-             }
-Index: boost_1_49_0/libs/thread/example/tennis.cpp
-===================================================================
---- boost_1_49_0.orig/libs/thread/example/tennis.cpp
-+++ boost_1_49_0/libs/thread/example/tennis.cpp
-@@ -1,7 +1,7 @@
- // Copyright (C) 2001-2003
- // William E. Kempf
- //
--//  Distributed under the Boost Software License, Version 1.0. (See accompanying 
-+//  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)
- 
- #include <boost/thread/mutex.hpp>
-@@ -104,7 +104,7 @@ int main(int argc, char* argv[])
-     boost::thread thrdb(thread_adapter(&player, (void*)PLAYER_B));
- 
-     boost::xtime xt;
--    boost::xtime_get(&xt, boost::TIME_UTC);
-+    boost::xtime_get(&xt, boost::TIME_UTC_);
-     xt.sec += 1;
-     boost::thread::sleep(xt);
-     {
-Index: boost_1_49_0/libs/thread/example/thread.cpp
-===================================================================
---- boost_1_49_0.orig/libs/thread/example/thread.cpp
-+++ boost_1_49_0/libs/thread/example/thread.cpp
-@@ -14,7 +14,7 @@ struct thread_alarm
-     void operator()()
-     {
-         boost::xtime xt;
--        boost::xtime_get(&xt, boost::TIME_UTC);
-+        boost::xtime_get(&xt, boost::TIME_UTC_);
-         xt.sec += m_secs;
- 
-         boost::thread::sleep(xt);
-Index: boost_1_49_0/libs/thread/example/xtime.cpp
-===================================================================
---- boost_1_49_0.orig/libs/thread/example/xtime.cpp
-+++ boost_1_49_0/libs/thread/example/xtime.cpp
-@@ -10,7 +10,7 @@
- int main(int argc, char* argv[])
- {
-     boost::xtime xt;
--    boost::xtime_get(&xt, boost::TIME_UTC);
-+    boost::xtime_get(&xt, boost::TIME_UTC_);
-     xt.sec += 1;
-     boost::thread::sleep(xt); // Sleep for 1 second
- }
-Index: boost_1_49_0/libs/thread/src/pthread/thread.cpp
-===================================================================
---- boost_1_49_0.orig/libs/thread/src/pthread/thread.cpp
-+++ boost_1_49_0/libs/thread/src/pthread/thread.cpp
-@@ -23,7 +23,7 @@
- #include <unistd.h>
- #endif
- 
--#include "timeconv.inl"
-+#include <libs/thread/src/pthread/timeconv.inl>
- 
- namespace boost
- {
-@@ -354,7 +354,7 @@ namespace boost
-                     cond.timed_wait(lock, xt);
- #   endif
-                     xtime cur;
--                    xtime_get(&cur, TIME_UTC);
-+                    xtime_get(&cur, TIME_UTC_);
-                     if (xtime_cmp(xt, cur) <= 0)
-                         return;
-                 }
-@@ -369,7 +369,7 @@ namespace boost
-             BOOST_VERIFY(!pthread_yield());
- #   else
-             xtime xt;
--            xtime_get(&xt, TIME_UTC);
-+            xtime_get(&xt, TIME_UTC_);
-             sleep(xt);
- #   endif
-         }
-Index: boost_1_49_0/libs/thread/src/pthread/timeconv.inl
-===================================================================
---- boost_1_49_0.orig/libs/thread/src/pthread/timeconv.inl
-+++ boost_1_49_0/libs/thread/src/pthread/timeconv.inl
-@@ -20,8 +20,8 @@ const int NANOSECONDS_PER_MICROSECOND =
- inline void to_time(int milliseconds, boost::xtime& xt)
- {
-     int res = 0;
--    res = boost::xtime_get(&xt, boost::TIME_UTC);
--    BOOST_ASSERT(res == boost::TIME_UTC); (void)res;
-+    res = boost::xtime_get(&xt, boost::TIME_UTC_);
-+    BOOST_ASSERT(res == boost::TIME_UTC_); (void)res;
- 
-     xt.sec += (milliseconds / MILLISECONDS_PER_SECOND);
-     xt.nsec += ((milliseconds % MILLISECONDS_PER_SECOND) *
-@@ -56,8 +56,8 @@ inline void to_timespec_duration(const b
- {
-     boost::xtime cur;
-     int res = 0;
--    res = boost::xtime_get(&cur, boost::TIME_UTC);
--    BOOST_ASSERT(res == boost::TIME_UTC); (void)res;
-+    res = boost::xtime_get(&cur, boost::TIME_UTC_);
-+    BOOST_ASSERT(res == boost::TIME_UTC_); (void)res;
- 
-     if (boost::xtime_cmp(xt, cur) <= 0)
-     {
-@@ -87,8 +87,8 @@ inline void to_duration(boost::xtime xt,
- {
-     boost::xtime cur;
-     int res = 0;
--    res = boost::xtime_get(&cur, boost::TIME_UTC);
--    BOOST_ASSERT(res == boost::TIME_UTC); (void)res;
-+    res = boost::xtime_get(&cur, boost::TIME_UTC_);
-+    BOOST_ASSERT(res == boost::TIME_UTC_); (void)res;
- 
-     if (boost::xtime_cmp(xt, cur) <= 0)
-         milliseconds = 0;
-@@ -109,8 +109,8 @@ inline void to_microduration(boost::xtim
- {
-     boost::xtime cur;
-     int res = 0;
--    res = boost::xtime_get(&cur, boost::TIME_UTC);
--    BOOST_ASSERT(res == boost::TIME_UTC); (void)res;
-+    res = boost::xtime_get(&cur, boost::TIME_UTC_);
-+    BOOST_ASSERT(res == boost::TIME_UTC_); (void)res;
- 
-     if (boost::xtime_cmp(xt, cur) <= 0)
-         microseconds = 0;
-Index: boost_1_49_0/libs/thread/src/win32/timeconv.inl
-===================================================================
---- boost_1_49_0.orig/libs/thread/src/win32/timeconv.inl
-+++ boost_1_49_0/libs/thread/src/win32/timeconv.inl
-@@ -17,8 +17,8 @@ const int NANOSECONDS_PER_MICROSECOND =
- inline void to_time(int milliseconds, boost::xtime& xt)
- {
-     int res = 0;
--    res = boost::xtime_get(&xt, boost::TIME_UTC);
--    assert(res == boost::TIME_UTC);
-+    res = boost::xtime_get(&xt, boost::TIME_UTC_);
-+    assert(res == boost::TIME_UTC_);
- 
-     xt.sec += (milliseconds / MILLISECONDS_PER_SECOND);
-     xt.nsec += ((milliseconds % MILLISECONDS_PER_SECOND) *
-@@ -54,8 +54,8 @@ inline void to_timespec_duration(const b
- {
-     boost::xtime cur;
-     int res = 0;
--    res = boost::xtime_get(&cur, boost::TIME_UTC);
--    assert(res == boost::TIME_UTC);
-+    res = boost::xtime_get(&cur, boost::TIME_UTC_);
-+    assert(res == boost::TIME_UTC_);
- 
-     if (boost::xtime_cmp(xt, cur) <= 0)
-     {
-@@ -85,8 +85,8 @@ inline void to_duration(boost::xtime xt,
- {
-     boost::xtime cur;
-     int res = 0;
--    res = boost::xtime_get(&cur, boost::TIME_UTC);
--    assert(res == boost::TIME_UTC);
-+    res = boost::xtime_get(&cur, boost::TIME_UTC_);
-+    assert(res == boost::TIME_UTC_);
- 
-     if (boost::xtime_cmp(xt, cur) <= 0)
-         milliseconds = 0;
-@@ -107,8 +107,8 @@ inline void to_microduration(boost::xtim
- {
-     boost::xtime cur;
-     int res = 0;
--    res = boost::xtime_get(&cur, boost::TIME_UTC);
--    assert(res == boost::TIME_UTC);
-+    res = boost::xtime_get(&cur, boost::TIME_UTC_);
-+    assert(res == boost::TIME_UTC_);
- 
-     if (boost::xtime_cmp(xt, cur) <= 0)
-         microseconds = 0;
-Index: boost_1_49_0/libs/thread/test/test_xtime.cpp
-===================================================================
---- boost_1_49_0.orig/libs/thread/test/test_xtime.cpp
-+++ boost_1_49_0/libs/thread/test/test_xtime.cpp
-@@ -17,8 +17,8 @@ void test_xtime_cmp()
- {
-     boost::xtime xt1, xt2, cur;
-     BOOST_CHECK_EQUAL(
--        boost::xtime_get(&cur, boost::TIME_UTC),
--        static_cast<int>(boost::TIME_UTC));
-+        boost::xtime_get(&cur, boost::TIME_UTC_),
-+        static_cast<int>(boost::TIME_UTC_));
- 
-     xt1 = xt2 = cur;
-     xt1.nsec -= 1;
-@@ -42,14 +42,14 @@ void test_xtime_get()
-     boost::xtime orig, cur, old;
-     BOOST_CHECK_EQUAL(
-         boost::xtime_get(&orig,
--            boost::TIME_UTC), static_cast<int>(boost::TIME_UTC));
-+            boost::TIME_UTC_), static_cast<int>(boost::TIME_UTC_));
-     old = orig;
- 
-     for (int x=0; x < 100; ++x)
-     {
-         BOOST_CHECK_EQUAL(
--            boost::xtime_get(&cur, boost::TIME_UTC),
--            static_cast<int>(boost::TIME_UTC));
-+            boost::xtime_get(&cur, boost::TIME_UTC_),
-+            static_cast<int>(boost::TIME_UTC_));
-         BOOST_CHECK(boost::xtime_cmp(cur, orig) >= 0);
-         BOOST_CHECK(boost::xtime_cmp(cur, old) >= 0);
-         old = cur;
-Index: boost_1_49_0/libs/thread/test/util.inl
-===================================================================
---- boost_1_49_0.orig/libs/thread/test/util.inl
-+++ boost_1_49_0/libs/thread/test/util.inl
-@@ -28,8 +28,8 @@ inline boost::xtime delay(int secs, int
-     const int NANOSECONDS_PER_MILLISECOND = 1000000;
- 
-     boost::xtime xt;
--    if (boost::TIME_UTC != boost::xtime_get (&xt, boost::TIME_UTC))
--        BOOST_ERROR ("boost::xtime_get != boost::TIME_UTC");
-+    if (boost::TIME_UTC_ != boost::xtime_get (&xt, boost::TIME_UTC_))
-+        BOOST_ERROR ("boost::xtime_get != boost::TIME_UTC_");
- 
-     nsecs += xt.nsec;
-     msecs += nsecs / NANOSECONDS_PER_MILLISECOND;
diff --git a/pkgs/development/libraries/boost/time_utc_144.patch b/pkgs/development/libraries/boost/time_utc_144.patch
deleted file mode 100644
index 512832c18295..000000000000
--- a/pkgs/development/libraries/boost/time_utc_144.patch
+++ /dev/null
@@ -1,520 +0,0 @@
-diff -rc boost_1_44_0/boost/thread/xtime.hpp boost_1_44_0-new/boost/thread/xtime.hpp
-*** boost_1_44_0/boost/thread/xtime.hpp	2008-06-18 15:01:08.000000000 +0200
---- boost_1_44_0-new/boost/thread/xtime.hpp	2013-04-12 14:00:27.125713549 +0200
-***************
-*** 20,26 ****
-  
-  enum xtime_clock_types
-  {
-!     TIME_UTC=1
-  //    TIME_TAI,
-  //    TIME_MONOTONIC,
-  //    TIME_PROCESS,
---- 20,26 ----
-  
-  enum xtime_clock_types
-  {
-!     TIME_UTC_=1
-  //    TIME_TAI,
-  //    TIME_MONOTONIC,
-  //    TIME_PROCESS,
-***************
-*** 68,74 ****
-  
-  inline int xtime_get(struct xtime* xtp, int clock_type)
-  {
-!     if (clock_type == TIME_UTC)
-      {
-          *xtp=get_xtime(get_system_time());
-          return clock_type;
---- 68,74 ----
-  
-  inline int xtime_get(struct xtime* xtp, int clock_type)
-  {
-!     if (clock_type == TIME_UTC_)
-      {
-          *xtp=get_xtime(get_system_time());
-          return clock_type;
-diff -rc boost_1_44_0/libs/interprocess/test/condition_test_template.hpp boost_1_44_0-new/libs/interprocess/test/condition_test_template.hpp
-*** boost_1_44_0/libs/interprocess/test/condition_test_template.hpp	2009-10-15 20:45:53.000000000 +0200
---- boost_1_44_0-new/libs/interprocess/test/condition_test_template.hpp	2013-04-12 14:00:20.215658855 +0200
-***************
-*** 49,56 ****
-      const int NANOSECONDS_PER_MILLISECOND = 1000000;
-  
-      boost::xtime xt;
-!     int ret = boost::xtime_get(&xt, boost::TIME_UTC);
-!     assert(ret == static_cast<int>(boost::TIME_UTC));(void)ret;
-      nsecs += xt.nsec;
-      msecs += nsecs / NANOSECONDS_PER_MILLISECOND;
-      secs += msecs / MILLISECONDS_PER_SECOND;
---- 49,56 ----
-      const int NANOSECONDS_PER_MILLISECOND = 1000000;
-  
-      boost::xtime xt;
-!     int ret = boost::xtime_get(&xt, boost::TIME_UTC_);
-!     assert(ret == static_cast<int>(boost::TIME_UTC_));(void)ret;
-      nsecs += xt.nsec;
-      msecs += nsecs / NANOSECONDS_PER_MILLISECOND;
-      secs += msecs / MILLISECONDS_PER_SECOND;
-diff -rc boost_1_44_0/libs/interprocess/test/util.hpp boost_1_44_0-new/libs/interprocess/test/util.hpp
-*** boost_1_44_0/libs/interprocess/test/util.hpp	2009-10-15 20:45:53.000000000 +0200
---- boost_1_44_0-new/libs/interprocess/test/util.hpp	2013-04-12 14:00:20.219658887 +0200
-***************
-*** 71,77 ****
-  boost::xtime xsecs(int secs)
-  {
-     boost::xtime ret;
-!    boost::xtime_get(&ret, boost::TIME_UTC);
-     ret.sec += secs;
-     return ret;
-  }
---- 71,77 ----
-  boost::xtime xsecs(int secs)
-  {
-     boost::xtime ret;
-!    boost::xtime_get(&ret, boost::TIME_UTC_);
-     ret.sec += secs;
-     return ret;
-  }
-diff -rc boost_1_44_0/libs/spirit/classic/test/grammar_mt_tests.cpp boost_1_44_0-new/libs/spirit/classic/test/grammar_mt_tests.cpp
-*** boost_1_44_0/libs/spirit/classic/test/grammar_mt_tests.cpp	2008-06-22 17:05:38.000000000 +0200
---- boost_1_44_0-new/libs/spirit/classic/test/grammar_mt_tests.cpp	2013-04-12 14:00:18.836647940 +0200
-***************
-*** 70,76 ****
-  {
-      static long const nanoseconds_per_second = 1000L*1000L*1000L;
-      boost::xtime xt;
-!     boost::xtime_get(&xt, boost::TIME_UTC);
-      xt.nsec+=1000*1000*milliseconds;
-      while (xt.nsec > nanoseconds_per_second)
-      {
---- 70,76 ----
-  {
-      static long const nanoseconds_per_second = 1000L*1000L*1000L;
-      boost::xtime xt;
-!     boost::xtime_get(&xt, boost::TIME_UTC_);
-      xt.nsec+=1000*1000*milliseconds;
-      while (xt.nsec > nanoseconds_per_second)
-      {
-diff -rc boost_1_44_0/libs/spirit/classic/test/owi_mt_tests.cpp boost_1_44_0-new/libs/spirit/classic/test/owi_mt_tests.cpp
-*** boost_1_44_0/libs/spirit/classic/test/owi_mt_tests.cpp	2008-06-22 17:05:38.000000000 +0200
---- boost_1_44_0-new/libs/spirit/classic/test/owi_mt_tests.cpp	2013-04-12 14:00:18.836647940 +0200
-***************
-*** 86,92 ****
-              return test_size;
-  
-          boost::xtime now;
-!         boost::xtime_get(&now, boost::TIME_UTC);
-          unsigned long seconds = now.sec - start_time.sec;
-          if (seconds < 4)
-          {
---- 86,92 ----
-              return test_size;
-  
-          boost::xtime now;
-!         boost::xtime_get(&now, boost::TIME_UTC_);
-          unsigned long seconds = now.sec - start_time.sec;
-          if (seconds < 4)
-          {
-***************
-*** 187,193 ****
-  void concurrent_creation_of_objects()
-  {
-      {
-!         boost::xtime_get(&start_time, boost::TIME_UTC);
-          boost::thread thread1(callable_ref(test1));
-          boost::thread thread2(callable_ref(test2));
-          boost::thread thread3(callable_ref(test3));
---- 187,193 ----
-  void concurrent_creation_of_objects()
-  {
-      {
-!         boost::xtime_get(&start_time, boost::TIME_UTC_);
-          boost::thread thread1(callable_ref(test1));
-          boost::thread thread2(callable_ref(test2));
-          boost::thread thread3(callable_ref(test3));
-diff -rc boost_1_44_0/libs/thread/example/starvephil.cpp boost_1_44_0-new/libs/thread/example/starvephil.cpp
-*** boost_1_44_0/libs/thread/example/starvephil.cpp	2006-09-14 23:51:01.000000000 +0200
---- boost_1_44_0-new/libs/thread/example/starvephil.cpp	2013-04-12 14:00:19.413652507 +0200
-***************
-*** 50,56 ****
-                        << "very hot ..." << std::endl;
-          }
-          boost::xtime xt;
-!         boost::xtime_get(&xt, boost::TIME_UTC);
-          xt.sec += 3;
-          boost::thread::sleep(xt);
-          m_chickens += value;
---- 50,56 ----
-                        << "very hot ..." << std::endl;
-          }
-          boost::xtime xt;
-!         boost::xtime_get(&xt, boost::TIME_UTC_);
-          xt.sec += 3;
-          boost::thread::sleep(xt);
-          m_chickens += value;
-***************
-*** 85,91 ****
-              std::cout << "(" << clock() << ") Chef: cooking ..." << std::endl;
-          }
-          boost::xtime xt;
-!         boost::xtime_get(&xt, boost::TIME_UTC);
-          xt.sec += 2;
-          boost::thread::sleep(xt);
-          {
---- 85,91 ----
-              std::cout << "(" << clock() << ") Chef: cooking ..." << std::endl;
-          }
-          boost::xtime xt;
-!         boost::xtime_get(&xt, boost::TIME_UTC_);
-          xt.sec += 2;
-          boost::thread::sleep(xt);
-          {
-***************
-*** 111,117 ****
-              if (m_id > 0)
-              {
-                  boost::xtime xt;
-!                 boost::xtime_get(&xt, boost::TIME_UTC);
-                  xt.sec += 3;
-                  boost::thread::sleep(xt);
-              }
---- 111,117 ----
-              if (m_id > 0)
-              {
-                  boost::xtime xt;
-!                 boost::xtime_get(&xt, boost::TIME_UTC_);
-                  xt.sec += 3;
-                  boost::thread::sleep(xt);
-              }
-diff -rc boost_1_44_0/libs/thread/example/tennis.cpp boost_1_44_0-new/libs/thread/example/tennis.cpp
-*** boost_1_44_0/libs/thread/example/tennis.cpp	2009-10-19 11:18:13.000000000 +0200
---- boost_1_44_0-new/libs/thread/example/tennis.cpp	2013-04-12 14:00:19.412652499 +0200
-***************
-*** 104,110 ****
-      boost::thread thrdb(thread_adapter(&player, (void*)PLAYER_B));
-  
-      boost::xtime xt;
-!     boost::xtime_get(&xt, boost::TIME_UTC);
-      xt.sec += 1;
-      boost::thread::sleep(xt);
-      {
---- 104,110 ----
-      boost::thread thrdb(thread_adapter(&player, (void*)PLAYER_B));
-  
-      boost::xtime xt;
-!     boost::xtime_get(&xt, boost::TIME_UTC_);
-      xt.sec += 1;
-      boost::thread::sleep(xt);
-      {
-diff -rc boost_1_44_0/libs/thread/example/thread.cpp boost_1_44_0-new/libs/thread/example/thread.cpp
-*** boost_1_44_0/libs/thread/example/thread.cpp	2006-09-14 23:51:01.000000000 +0200
---- boost_1_44_0-new/libs/thread/example/thread.cpp	2013-04-12 14:00:19.414652515 +0200
-***************
-*** 14,20 ****
-      void operator()()
-      {
-          boost::xtime xt;
-!         boost::xtime_get(&xt, boost::TIME_UTC);
-          xt.sec += m_secs;
-  
-          boost::thread::sleep(xt);
---- 14,20 ----
-      void operator()()
-      {
-          boost::xtime xt;
-!         boost::xtime_get(&xt, boost::TIME_UTC_);
-          xt.sec += m_secs;
-  
-          boost::thread::sleep(xt);
-diff -rc boost_1_44_0/libs/thread/example/xtime.cpp boost_1_44_0-new/libs/thread/example/xtime.cpp
-*** boost_1_44_0/libs/thread/example/xtime.cpp	2006-09-14 23:51:01.000000000 +0200
---- boost_1_44_0-new/libs/thread/example/xtime.cpp	2013-04-12 14:00:19.413652507 +0200
-***************
-*** 10,16 ****
-  int main(int argc, char* argv[])
-  {
-      boost::xtime xt;
-!     boost::xtime_get(&xt, boost::TIME_UTC);
-      xt.sec += 1;
-      boost::thread::sleep(xt); // Sleep for 1 second
-  }
---- 10,16 ----
-  int main(int argc, char* argv[])
-  {
-      boost::xtime xt;
-!     boost::xtime_get(&xt, boost::TIME_UTC_);
-      xt.sec += 1;
-      boost::thread::sleep(xt); // Sleep for 1 second
-  }
-diff -rc boost_1_44_0/libs/thread/src/pthread/thread.cpp boost_1_44_0-new/libs/thread/src/pthread/thread.cpp
-*** boost_1_44_0/libs/thread/src/pthread/thread.cpp	2010-07-09 21:13:09.000000000 +0200
---- boost_1_44_0-new/libs/thread/src/pthread/thread.cpp	2013-04-12 14:00:19.415652523 +0200
-***************
-*** 350,356 ****
-                      cond.timed_wait(lock, xt);
-  #   endif
-                      xtime cur;
-!                     xtime_get(&cur, TIME_UTC);
-                      if (xtime_cmp(xt, cur) <= 0)
-                          return;
-                  }
---- 350,356 ----
-                      cond.timed_wait(lock, xt);
-  #   endif
-                      xtime cur;
-!                     xtime_get(&cur, TIME_UTC_);
-                      if (xtime_cmp(xt, cur) <= 0)
-                          return;
-                  }
-***************
-*** 365,371 ****
-              BOOST_VERIFY(!pthread_yield());
-  #   else
-              xtime xt;
-!             xtime_get(&xt, TIME_UTC);
-              sleep(xt);
-  #   endif
-          }
---- 365,371 ----
-              BOOST_VERIFY(!pthread_yield());
-  #   else
-              xtime xt;
-!             xtime_get(&xt, TIME_UTC_);
-              sleep(xt);
-  #   endif
-          }
-diff -rc boost_1_44_0/libs/thread/src/pthread/timeconv.inl boost_1_44_0-new/libs/thread/src/pthread/timeconv.inl
-*** boost_1_44_0/libs/thread/src/pthread/timeconv.inl	2010-04-01 17:04:15.000000000 +0200
---- boost_1_44_0-new/libs/thread/src/pthread/timeconv.inl	2013-04-12 14:00:19.414652515 +0200
-***************
-*** 20,27 ****
-  inline void to_time(int milliseconds, boost::xtime& xt)
-  {
-      int res = 0;
-!     res = boost::xtime_get(&xt, boost::TIME_UTC);
-!     BOOST_ASSERT(res == boost::TIME_UTC);
-  
-      xt.sec += (milliseconds / MILLISECONDS_PER_SECOND);
-      xt.nsec += ((milliseconds % MILLISECONDS_PER_SECOND) *
---- 20,27 ----
-  inline void to_time(int milliseconds, boost::xtime& xt)
-  {
-      int res = 0;
-!     res = boost::xtime_get(&xt, boost::TIME_UTC_);
-!     BOOST_ASSERT(res == boost::TIME_UTC_);
-  
-      xt.sec += (milliseconds / MILLISECONDS_PER_SECOND);
-      xt.nsec += ((milliseconds % MILLISECONDS_PER_SECOND) *
-***************
-*** 57,64 ****
-  {
-      boost::xtime cur;
-      int res = 0;
-!     res = boost::xtime_get(&cur, boost::TIME_UTC);
-!     BOOST_ASSERT(res == boost::TIME_UTC);
-  
-      if (boost::xtime_cmp(xt, cur) <= 0)
-      {
---- 57,64 ----
-  {
-      boost::xtime cur;
-      int res = 0;
-!     res = boost::xtime_get(&cur, boost::TIME_UTC_);
-!     BOOST_ASSERT(res == boost::TIME_UTC_);
-  
-      if (boost::xtime_cmp(xt, cur) <= 0)
-      {
-***************
-*** 88,95 ****
-  {
-      boost::xtime cur;
-      int res = 0;
-!     res = boost::xtime_get(&cur, boost::TIME_UTC);
-!     BOOST_ASSERT(res == boost::TIME_UTC);
-  
-      if (boost::xtime_cmp(xt, cur) <= 0)
-          milliseconds = 0;
---- 88,95 ----
-  {
-      boost::xtime cur;
-      int res = 0;
-!     res = boost::xtime_get(&cur, boost::TIME_UTC_);
-!     BOOST_ASSERT(res == boost::TIME_UTC_);
-  
-      if (boost::xtime_cmp(xt, cur) <= 0)
-          milliseconds = 0;
-***************
-*** 110,117 ****
-  {
-      boost::xtime cur;
-      int res = 0;
-!     res = boost::xtime_get(&cur, boost::TIME_UTC);
-!     BOOST_ASSERT(res == boost::TIME_UTC);
-  
-      if (boost::xtime_cmp(xt, cur) <= 0)
-          microseconds = 0;
---- 110,117 ----
-  {
-      boost::xtime cur;
-      int res = 0;
-!     res = boost::xtime_get(&cur, boost::TIME_UTC_);
-!     BOOST_ASSERT(res == boost::TIME_UTC_);
-  
-      if (boost::xtime_cmp(xt, cur) <= 0)
-          microseconds = 0;
-diff -rc boost_1_44_0/libs/thread/src/win32/timeconv.inl boost_1_44_0-new/libs/thread/src/win32/timeconv.inl
-*** boost_1_44_0/libs/thread/src/win32/timeconv.inl	2007-11-25 19:38:02.000000000 +0100
---- boost_1_44_0-new/libs/thread/src/win32/timeconv.inl	2013-04-12 14:00:19.416652531 +0200
-***************
-*** 17,24 ****
-  inline void to_time(int milliseconds, boost::xtime& xt)
-  {
-      int res = 0;
-!     res = boost::xtime_get(&xt, boost::TIME_UTC);
-!     assert(res == boost::TIME_UTC);
-  
-      xt.sec += (milliseconds / MILLISECONDS_PER_SECOND);
-      xt.nsec += ((milliseconds % MILLISECONDS_PER_SECOND) *
---- 17,24 ----
-  inline void to_time(int milliseconds, boost::xtime& xt)
-  {
-      int res = 0;
-!     res = boost::xtime_get(&xt, boost::TIME_UTC_);
-!     assert(res == boost::TIME_UTC_);
-  
-      xt.sec += (milliseconds / MILLISECONDS_PER_SECOND);
-      xt.nsec += ((milliseconds % MILLISECONDS_PER_SECOND) *
-***************
-*** 54,61 ****
-  {
-      boost::xtime cur;
-      int res = 0;
-!     res = boost::xtime_get(&cur, boost::TIME_UTC);
-!     assert(res == boost::TIME_UTC);
-  
-      if (boost::xtime_cmp(xt, cur) <= 0)
-      {
---- 54,61 ----
-  {
-      boost::xtime cur;
-      int res = 0;
-!     res = boost::xtime_get(&cur, boost::TIME_UTC_);
-!     assert(res == boost::TIME_UTC_);
-  
-      if (boost::xtime_cmp(xt, cur) <= 0)
-      {
-***************
-*** 85,92 ****
-  {
-      boost::xtime cur;
-      int res = 0;
-!     res = boost::xtime_get(&cur, boost::TIME_UTC);
-!     assert(res == boost::TIME_UTC);
-  
-      if (boost::xtime_cmp(xt, cur) <= 0)
-          milliseconds = 0;
---- 85,92 ----
-  {
-      boost::xtime cur;
-      int res = 0;
-!     res = boost::xtime_get(&cur, boost::TIME_UTC_);
-!     assert(res == boost::TIME_UTC_);
-  
-      if (boost::xtime_cmp(xt, cur) <= 0)
-          milliseconds = 0;
-***************
-*** 107,114 ****
-  {
-      boost::xtime cur;
-      int res = 0;
-!     res = boost::xtime_get(&cur, boost::TIME_UTC);
-!     assert(res == boost::TIME_UTC);
-  
-      if (boost::xtime_cmp(xt, cur) <= 0)
-          microseconds = 0;
---- 107,114 ----
-  {
-      boost::xtime cur;
-      int res = 0;
-!     res = boost::xtime_get(&cur, boost::TIME_UTC_);
-!     assert(res == boost::TIME_UTC_);
-  
-      if (boost::xtime_cmp(xt, cur) <= 0)
-          microseconds = 0;
-diff -rc boost_1_44_0/libs/thread/test/test_xtime.cpp boost_1_44_0-new/libs/thread/test/test_xtime.cpp
-*** boost_1_44_0/libs/thread/test/test_xtime.cpp	2008-07-08 09:44:55.000000000 +0200
---- boost_1_44_0-new/libs/thread/test/test_xtime.cpp	2013-04-12 14:00:19.432652657 +0200
-***************
-*** 17,24 ****
-  {
-      boost::xtime xt1, xt2, cur;
-      BOOST_CHECK_EQUAL(
-!         boost::xtime_get(&cur, boost::TIME_UTC),
-!         static_cast<int>(boost::TIME_UTC));
-  
-      xt1 = xt2 = cur;
-      xt1.nsec -= 1;
---- 17,24 ----
-  {
-      boost::xtime xt1, xt2, cur;
-      BOOST_CHECK_EQUAL(
-!         boost::xtime_get(&cur, boost::TIME_UTC_),
-!         static_cast<int>(boost::TIME_UTC_));
-  
-      xt1 = xt2 = cur;
-      xt1.nsec -= 1;
-***************
-*** 42,55 ****
-      boost::xtime orig, cur, old;
-      BOOST_CHECK_EQUAL(
-          boost::xtime_get(&orig,
-!             boost::TIME_UTC), static_cast<int>(boost::TIME_UTC));
-      old = orig;
-  
-      for (int x=0; x < 100; ++x)
-      {
-          BOOST_CHECK_EQUAL(
-!             boost::xtime_get(&cur, boost::TIME_UTC),
-!             static_cast<int>(boost::TIME_UTC));
-          BOOST_CHECK(boost::xtime_cmp(cur, orig) >= 0);
-          BOOST_CHECK(boost::xtime_cmp(cur, old) >= 0);
-          old = cur;
---- 42,55 ----
-      boost::xtime orig, cur, old;
-      BOOST_CHECK_EQUAL(
-          boost::xtime_get(&orig,
-!             boost::TIME_UTC_), static_cast<int>(boost::TIME_UTC));
-      old = orig;
-  
-      for (int x=0; x < 100; ++x)
-      {
-          BOOST_CHECK_EQUAL(
-!             boost::xtime_get(&cur, boost::TIME_UTC_),
-!             static_cast<int>(boost::TIME_UTC_));
-          BOOST_CHECK(boost::xtime_cmp(cur, orig) >= 0);
-          BOOST_CHECK(boost::xtime_cmp(cur, old) >= 0);
-          old = cur;
-diff -rc boost_1_44_0/libs/thread/test/util.inl boost_1_44_0-new/libs/thread/test/util.inl
-*** boost_1_44_0/libs/thread/test/util.inl	2008-11-03 23:29:39.000000000 +0100
---- boost_1_44_0-new/libs/thread/test/util.inl	2013-04-12 14:00:19.433652665 +0200
-***************
-*** 28,35 ****
-      const int NANOSECONDS_PER_MILLISECOND = 1000000;
-  
-      boost::xtime xt;
-!     if (boost::TIME_UTC != boost::xtime_get (&xt, boost::TIME_UTC))
-!         BOOST_ERROR ("boost::xtime_get != boost::TIME_UTC");
-  
-      nsecs += xt.nsec;
-      msecs += nsecs / NANOSECONDS_PER_MILLISECOND;
---- 28,35 ----
-      const int NANOSECONDS_PER_MILLISECOND = 1000000;
-  
-      boost::xtime xt;
-!     if (boost::TIME_UTC_ != boost::xtime_get (&xt, boost::TIME_UTC))
-!         BOOST_ERROR ("boost::xtime_get != boost::TIME_UTC_");
-  
-      nsecs += xt.nsec;
-      msecs += nsecs / NANOSECONDS_PER_MILLISECOND;