diff --git a/.gitattributes b/.gitattributes
index b9aecc7eacb022bfcdedb231bcf6b18ef8cb672b..58fe1cfbd995dc0a2fa41f7bbc49b523d0bbaacc 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -5532,6 +5532,7 @@ SubSystems/Online_Cobalt/test/tgenerateStationStreams.sh eol=lf
 SubSystems/Online_Cobalt/test/tstartBGL.in_parset -text
 SubSystems/Online_Cobalt/test/tstartBGL.run eol=lf
 SubSystems/Online_Cobalt/test/tstartBGL.sh eol=lf
+SubSystems/Online_Cobalt/validation/CMakeLists.txt -text
 SubSystems/Online_Cobalt/validation/cep4/docker/9311-cgroupdriver.test -text
 SubSystems/Online_Cobalt/validation/cep4/docker/datalocation.test -text
 SubSystems/Online_Cobalt/validation/cep4/lofarsys/docker.root.test -text
diff --git a/CMake/LofarPackageList.cmake b/CMake/LofarPackageList.cmake
index d1c6d7c1b8c1a30009f5f2473da3213c461621b9..5d619de7242518659be74e96db3d787e8c642b1d 100644
--- a/CMake/LofarPackageList.cmake
+++ b/CMake/LofarPackageList.cmake
@@ -1,7 +1,7 @@
 # - Create for each LOFAR package a variable containing the absolute path to
 # its source directory. 
 #
-# Generated by gen_LofarPackageList_cmake.sh at Do 24. Jan 11:12:48 CET 2019
+# Generated by gen_LofarPackageList_cmake.sh at vr feb 15 11:48:01 UTC 2019
 #
 #                      ---- DO NOT EDIT ----
 #
@@ -221,4 +221,5 @@ if(NOT DEFINED LOFAR_PACKAGE_LIST_INCLUDED)
   set(DataManagement_SOURCE_DIR ${CMAKE_SOURCE_DIR}/SubSystems/DataManagement)
   set(Dragnet_SOURCE_DIR ${CMAKE_SOURCE_DIR}/SubSystems/Dragnet)
   set(LTAIngest_SOURCE_DIR ${CMAKE_SOURCE_DIR}/SubSystems/LTAIngest)
+  set(Cobalt_validation_SOURCE_DIR ${CMAKE_SOURCE_DIR}/SubSystems/Online_Cobalt/validation)
 endif(NOT DEFINED LOFAR_PACKAGE_LIST_INCLUDED)
diff --git a/SubSystems/Online_Cobalt/CMakeLists.txt b/SubSystems/Online_Cobalt/CMakeLists.txt
index 8abfcd665f049998c45fd83129652491cf46cbff..df903f8afabfd4b97bc18390ff0b267a7c507d65 100644
--- a/SubSystems/Online_Cobalt/CMakeLists.txt
+++ b/SubSystems/Online_Cobalt/CMakeLists.txt
@@ -5,4 +5,6 @@
 # PVSSGateway_Stub and Service_Broker are needed for the tRTmetadataToFile test
 lofar_package(Online_Cobalt DEPENDS Cobalt Online_OutputProc APLCommon PVSSGateway_Stub Service_Broker Log_Client)
 
+lofar_add_package(Cobalt_validation validation)
+
 add_subdirectory(test)
diff --git a/SubSystems/Online_Cobalt/validation/CMakeLists.txt b/SubSystems/Online_Cobalt/validation/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..fc28e3c59bd5aefbdff0186e81931ec6d39fc7a4
--- /dev/null
+++ b/SubSystems/Online_Cobalt/validation/CMakeLists.txt
@@ -0,0 +1,33 @@
+# $Id: CMakeLists.txt  $
+
+lofar_package(Cobalt_validation)
+
+# we choose a bit of an odd location for the validation scripts.
+# yes, the scripts validate script and the individual tests are executable, so you could think they belong in bin or sbin...
+# but we do not want the validation test directory tree in bin or sbin
+# We also want the validation "suite" in a self contained folder,
+# so we choose pragmatically for share/validation
+SET(DEST "share/validation")
+
+# add the validate script...
+INSTALL(PROGRAMS validate DESTINATION ${DEST})
+
+# and add convenience symlink in the build dir
+FILE(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/${DEST})
+EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E create_symlink
+                ${CMAKE_CURRENT_SOURCE_DIR}/validate
+                ${CMAKE_BINARY_DIR}/${DEST}/validate)
+
+# and add each and every subdirectory tree as-is.
+FILE(GLOB children RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/*)
+FOREACH(child ${children})
+    IF(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${child})
+        INSTALL(DIRECTORY ${child}
+                USE_SOURCE_PERMISSIONS
+                DESTINATION ${DEST})
+        EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E create_symlink
+                        ${CMAKE_CURRENT_SOURCE_DIR}/${child}
+                        ${CMAKE_BINARY_DIR}/${DEST}/${child})
+    ENDIF()
+ENDFOREACH()
+