diff --git a/scripts/functions b/scripts/functions
index 17384476..168f8101 100644
--- a/scripts/functions
+++ b/scripts/functions
@@ -720,6 +720,12 @@ CT_DoGetFile()
         T="${CT_CONNECT_TIMEOUT}"
     fi
 
+    if [ "${CT_COLLECT_SOURCES_FOR_NIXOS}" = "y" ]; then
+        echo "DoGetFile: ${url} -> ${dest}" >>"$out"
+        touch "${dest}"
+        return 0
+    fi
+
     CT_DoLog DEBUG "Trying '${url}'"
     if [ "${CT_DOWNLOAD_AGENT_WGET}" = "y" ]; then
         if CT_DoExecLog ALL wget ${CT_DOWNLOAD_WGET_OPTIONS} \
@@ -782,6 +788,12 @@ CT_DoVerifyDigest()
         CT_DoLog WARN "Not verifying '${file}': digest missing"
         return 0
     fi
+
+    if [ "${CT_COLLECT_SOURCES_FOR_NIXOS}" = "y" ]; then
+        echo "DoVerifyDigest: ${alg}, ${pkgdir}/chksum, ${file}" >>"$out"
+        return 0
+    fi
+
     CT_DoLog EXTRA "Verifying ${alg^^} checksum for '${file}'"
     chksum=`"${alg}sum" "${path}"`
     chksum="${chksum%%[[:space:]]*}"
@@ -846,6 +858,11 @@ CT_DoVerifySignature()
     local sigfile
     local cat
 
+    if [ "${CT_COLLECT_SOURCES_FOR_NIXOS}" = "y" ]; then
+        echo "DoVerifySignature: ${path}, ${url}, ${format}" >>"$out"
+        return 0
+    fi
+
     CT_DoLog EXTRA "Verifying detached signature for '${file}'"
     case "${method}" in
     packed)
@@ -1970,7 +1987,12 @@ CT_DoFetch()
         # this would override empty (default) values with "default branch name" and
         # "most current revision", respectively.
 
-        CT_GetVersion_${devel_vcs}
+        if [ "${CT_COLLECT_SOURCES_FOR_NIXOS}" = "y" ]; then
+            echo "CT_GetVersion_${devel_vcs}: url=${devel_url}, branch=${devel_branch}, revision=${devel_revision}" >>"$out"
+            unique_id=fake
+        else
+            CT_GetVersion_${devel_vcs}
+        fi
         if [ -z "${unique_id}" ]; then
             CT_Abort "${pkg_name}: ${devel_vcs} did not set unique ID for branch/revision"
         fi
@@ -1994,7 +2016,11 @@ CT_DoFetch()
         CT_DoLog EXTRA "Retrieving '${basename}' (${devel_vcs} ${devel_url} ${devel_branch} ${devel_revision})"
         CT_MktempDir tmp_dir
         CT_Pushd "${tmp_dir}"
-        CT_Download_${devel_vcs}
+        if [ "${CT_COLLECT_SOURCES_FOR_NIXOS}" = "y" ]; then
+            echo "CT_Download_${devel_vcs}: ${devel_vcs} ${devel_url} ${devel_branch} ${devel_revision}" >>"$out"
+        else
+            CT_Download_${devel_vcs}
+        fi
 
         # First setting above may not have determined the version (e.g. with Mercurial)
         # Set the final, downloaded version.