diff --git a/.travis.yml b/.travis.yml
index d838cc4fd68163b8bbd3e1aeae42acf223b96b93..67f9de5e8227f64448ab58f88e78ed93b861d3f8 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,6 +1,5 @@
 notifications:
   email: false
-if: tag IS present
 matrix:
   include:
   - sudo: required
diff --git a/doc/misc.rst b/doc/misc.rst
index 4be8e2b2d19e207642dac78797a344beb33f943e..a2b2c9993a6bcf19392c26a754482919d13ce6d4 100644
--- a/doc/misc.rst
+++ b/doc/misc.rst
@@ -95,6 +95,32 @@ On macOS, the packaging of PyOpenCL for Conda Forge relies on the
 and it is packaged so that the OpenCL drivers built into the operating system
 are automatically available, in addition to other ICDs installed manually.
 
+Installing from PyPI with Linux wheels
+--------------------------------------
+
+PyOpenCL distributes manylinux1 wheels in PyPI. These wheels are compatible with
+GLIBC>=2.5 based distributions.
+
+On Linux, type
+
+#.  ``pip install pyopencl``
+
+The wheels comes with OCL-ICD bundled and configured to use any OpenCL implementation
+supporting ICD interface installed in :file:`/etc/OpenCL/vendors`
+
+You can also install the following CPU based OpenCL implementation using pip shipped as binary
+wheels. Note that pyopencl has to be installed using a wheel for pyopencl to recognize these
+wheels.
+
+To install pyopencl with pocl, a CPU based implementation do,
+
+#.  ``pip install pyopencl[pocl]``
+
+To install pyopencl with oclgrind, an OpenCL debugger do,
+
+#.  ``pip install pyopencl[oclgrind]``
+
+
 Installing from source
 ----------------------
 
diff --git a/pyopencl/__init__.py b/pyopencl/__init__.py
index 5f92e136a2f712b12e5a8fdd792db1e123a21ebc..59be64d1d8db45576bed722d2afe3cfd38eb78df 100644
--- a/pyopencl/__init__.py
+++ b/pyopencl/__init__.py
@@ -32,6 +32,9 @@ from pyopencl.version import VERSION, VERSION_STATUS, VERSION_TEXT  # noqa
 import logging
 logger = logging.getLogger(__name__)
 
+import os
+os.environ["PYOPENCL_HOME"] = os.path.dirname(os.path.abspath(__file__))
+
 try:
     import pyopencl._cl as _cl
 except ImportError:
diff --git a/setup.py b/setup.py
index f01702113c5d050d776829e1c2f5e0b1221b08a5..1b71cb57655d47924c14795428a3b489caef6ccd 100644
--- a/setup.py
+++ b/setup.py
@@ -258,7 +258,10 @@ def main():
                 "six>=1.9.0",
                 # "Mako>=0.3.6",
                 ],
-
+            extras_require={
+                'pocl':  ["pocl_binary_distribution>=1.2"],
+                'oclgrind':  ["oclgrind_binary_distribution>=18.3"],
+            },
             include_package_data=True,
             package_data={
                     "pyopencl": [
diff --git a/travis/build-wheels.sh b/travis/build-wheels.sh
index c57e595379ab29423cabcb116bc0a4112701a3c5..6ceb2eefc203b2a8012f937115f99ef221434fe5 100755
--- a/travis/build-wheels.sh
+++ b/travis/build-wheels.sh
@@ -18,6 +18,8 @@ git clone --branch v2.2.12 https://github.com/OCL-dev/ocl-icd
 cd ocl-icd
 curl -L -O https://raw.githubusercontent.com/conda-forge/ocl-icd-feedstock/master/recipe/install-headers.patch
 git apply install-headers.patch
+curl -L -O https://github.com/isuruf/ocl-icd/commit/76fab891c277886ef88af73c57328f8a47bdb6a4.patch
+git apply 76fab891c277886ef88af73c57328f8a47bdb6a4.patch
 autoreconf -i
 chmod +x configure
 ./configure --prefix=/usr
@@ -51,6 +53,11 @@ done
 /opt/python/cp37-cp37m/bin/pip install delocate
 /opt/python/cp37-cp37m/bin/python /io/travis/fix-wheel.py /deps/ocl-icd/COPYING
 
+if [[ "${TWINE_USERNAME}" == "" ]]; then
+    echo "TWINE_USERNAME not set. Skipping uploading wheels"
+    exit 0
+fi
+
 /opt/python/cp37-cp37m/bin/pip install twine
 for WHEEL in /io/wheelhouse/pyopencl*.whl; do
     # dev