THRIFT-4582: Fix Xenial CI build issues (#1563)

* THRIFT-4582: fix xenial build issues

* THRIFT-2913: fix Thrift::ThreadPoolServer should serve inside a thread on xenial

* THRIFT-4478: Move Xenial up to dmd 2.075.1 as that is the new minimum
version that works since the changes for 2.080.0 went in.
diff --git a/.gitignore b/.gitignore
index be07a4e..3de1595 100644
--- a/.gitignore
+++ b/.gitignore
@@ -122,8 +122,9 @@
 /lib/cpp/test/OptionalRequiredTest
 /lib/cpp/test/SecurityTest
 /lib/cpp/test/SpecializationTest
-/lib/cpp/test/ReflectionTest
 /lib/cpp/test/RecursiveTest
+/lib/cpp/test/ReflectionTest
+/lib/cpp/test/RenderedDoubleConstantsTest
 /lib/cpp/test/TFDTransportTest
 /lib/cpp/test/TFileTransportTest
 /lib/cpp/test/TInterruptTest
@@ -241,6 +242,7 @@
 /lib/php/src/ext/thrift_protocol/build/
 /lib/php/src/ext/thrift_protocol/config.*
 /lib/php/src/ext/thrift_protocol/configure
+/lib/php/src/ext/thrift_protocol/configure.ac
 /lib/php/src/ext/thrift_protocol/configure.in
 /lib/php/src/ext/thrift_protocol/install-sh
 /lib/php/src/ext/thrift_protocol/libtool
diff --git a/LANGUAGES.md b/LANGUAGES.md
index ef3bee2..d77496b 100644
--- a/LANGUAGES.md
+++ b/LANGUAGES.md
@@ -101,7 +101,7 @@
 <td align=left><a href="lib/d/README.md">Dlang</a></td>
 <!-- Since -----------------><td>0.9.0</td>
 <!-- Build Systems ---------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td>
-<!-- Language Levels -------><td>2.073.2</td><td>2.080.0</td>
+<!-- Language Levels -------><td>2.075.1</td><td>2.080.0</td>
 <!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td>
 <!-- Transport Wrappers ----><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td>
 <!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td>
diff --git a/build/docker/README.md b/build/docker/README.md
index 324921e..3d65a82 100644
--- a/build/docker/README.md
+++ b/build/docker/README.md
@@ -143,7 +143,7 @@
 | c_glib    | 2.48.2        | 2.54.0        |       |
 | cl (sbcl) |               | 1.4.5         |       |
 | cocoa     |               |               | Not in CI |
-| d         | 2.073.2       | 2.080.0       |       |
+| d         | 2.075.1       | 2.080.0       |       |
 | dart      | 1.22.1        | 1.24.3        |       |
 | delphi    |               |               | Not in CI |
 | dotnet    | 2.1.4         | 2.1.4         | v2.1.4 SDK uses v2.0.5 Runtime |
diff --git a/build/docker/ubuntu-xenial/Dockerfile b/build/docker/ubuntu-xenial/Dockerfile
index 760c501..1e70002 100644
--- a/build/docker/ubuntu-xenial/Dockerfile
+++ b/build/docker/ubuntu-xenial/Dockerfile
@@ -13,7 +13,7 @@
 #
 # Apache Thrift Docker build environment for Ubuntu Xenial
 # Using all stock Ubuntu Xenial packaging except for:
-# - d: does not come with Ubuntu so we're installing 2.073.2 for coverage
+# - d: does not come with Ubuntu so we're installing 2.075.1 for coverage
 # - dart: does not come with Ubuntu so we're installing 1.22.1 for coverage
 # - dotnet: does not come with Ubuntu
 # - go: Xenial comes with 1.6, but we need 1.7 or later
@@ -45,7 +45,6 @@
 RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EBCF975E5BA24D5E && \
     wget http://master.dl.sourceforge.net/project/d-apt/files/d-apt.list -O /etc/apt/sources.list.d/d-apt.list && \
     wget -qO - https://dlang.org/d-keyring.gpg | apt-key add -
-ENV D_VERSION 2.073.2-0
 
 # Dart
 RUN curl https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - && \
@@ -100,11 +99,12 @@
 `# csharp (mono) dependencies` \
       mono-devel
 
+ENV D_VERSION 2.075.1-0
 RUN apt-get install -y --allow-unauthenticated --no-install-recommends \
 `# D dependencies` \
       dmd-bin=$D_VERSION \
       libphobos2-dev=$D_VERSION \
-      dub \
+      dub=1.6.0-0 \
       dfmt \
       dscanner \
       libevent-dev \
diff --git a/lib/erl/rebar.test.config b/lib/erl/rebar.test.config
index 12515b7..2ff2afb 100644
--- a/lib/erl/rebar.test.config
+++ b/lib/erl/rebar.test.config
@@ -1,5 +1,5 @@
 {erl_opts, [{platform_define, "^R.*", otp16_or_less}, debug_info]}.
 
 {deps, [
-  {meck, "", {git, "https://github.com/eproxus/meck.git", {tag, "0.8.2"}}}
+  {meck, "", {git, "https://github.com/eproxus/meck.git", {tag, "0.8.9"}}}
 ]}.
diff --git a/lib/rb/spec/server_spec.rb b/lib/rb/spec/server_spec.rb
index ee58c7c..57f5237 100644
--- a/lib/rb/spec/server_spec.rb
+++ b/lib/rb/spec/server_spec.rb
@@ -144,6 +144,7 @@
         exception_q.push(StandardError.new('ERROR'))
       end
       expect { @server.rescuable_serve }.to(raise_error('ERROR'))
+      sleep(0.15)
     end
 
     it "should avoid running the server twice when retrying rescuable_serve" do
diff --git a/lib/rb/thrift.gemspec b/lib/rb/thrift.gemspec
index fcc344f..0f96c3f 100644
--- a/lib/rb/thrift.gemspec
+++ b/lib/rb/thrift.gemspec
@@ -34,7 +34,7 @@
   s.add_development_dependency 'rack',               '~> 2.0'
   s.add_development_dependency 'rack-test',          '~> 0.8.3'
   s.add_development_dependency 'rake',               '~> 12.3'
-  s.add_development_dependency 'rspec',              '~> 3.5'
+  s.add_development_dependency 'rspec',              '~> 3.7'
   s.add_development_dependency 'thin',               '~> 1.7'
 end