diff --git a/.ci/scripts/linux/docker.sh b/.ci/scripts/linux/docker.sh
index f538a40817..296b14e560 100644
--- a/.ci/scripts/linux/docker.sh
+++ b/.ci/scripts/linux/docker.sh
@@ -11,4 +11,5 @@ ninja
 
 ccache -s
 
-ctest -VV -C Release
+# Ignore zlib's tests, since they aren't gated behind a CMake option.
+ctest -VV -E "(example|example64)" -C Release
diff --git a/.gitmodules b/.gitmodules
index f3051cca0c..35e0d12404 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -47,8 +47,8 @@
     path = externals/sirit
     url = https://github.com/ReinUsesLisp/sirit
 [submodule "libzip"]
-	path = externals/libzip
-	url = https://github.com/DarkLordZach/libzip
+    path = externals/libzip
+    url = https://github.com/DarkLordZach/libzip
 [submodule "zlib"]
-	path = externals/zlib
-	url = https://github.com/DarkLordZach/zlib
+    path = externals/zlib
+    url = https://github.com/madler/zlib
diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt
index d797d9fc95..3539828b8d 100644
--- a/externals/CMakeLists.txt
+++ b/externals/CMakeLists.txt
@@ -77,11 +77,11 @@ if (ENABLE_VULKAN)
     add_subdirectory(sirit)
 endif()
 
-# libzip
-add_subdirectory(libzip)
-
 # zlib
-add_subdirectory(zlib)
+add_subdirectory(zlib EXCLUDE_FROM_ALL)
+
+# libzip
+add_subdirectory(libzip EXCLUDE_FROM_ALL)
 
 if (ENABLE_WEB_SERVICE)
     # LibreSSL
diff --git a/externals/zlib b/externals/zlib
index 094ed57db3..cacf7f1d4e 160000
--- a/externals/zlib
+++ b/externals/zlib
@@ -1 +1 @@
-Subproject commit 094ed57db392170130bc710293568de7b576306d
+Subproject commit cacf7f1d4e3d44d871b605da3b647f07d718623f