&& !_ostree_sign_summary_at (sign, self, summary_tmpdir.fd, sign_keys, cancellable, error))
return FALSE;
+ /* If a signature was made, sync the summary times to it. This way an
+ * HTTP client will consider the files expired at the same time.
+ */
+ if (gpg_key_ids != NULL || sign_keys != NULL)
+ {
+ struct stat stbuf;
+ if (!glnx_fstatat (summary_tmpdir.fd, "summary.sig", &stbuf, AT_SYMLINK_NOFOLLOW, error))
+ return glnx_prefix_error (error, "Unable to get summary.sig status");
+
+ struct timespec ts[2];
+ ts[0] = stbuf.st_atim;
+ ts[1] = stbuf.st_mtim;
+ if (TEMP_FAILURE_RETRY (utimensat (summary_tmpdir.fd, "summary", ts, AT_SYMLINK_NOFOLLOW))
+ != 0)
+ return glnx_throw_errno_prefix (error, "Unable to change summary timestamps");
+ }
+
/* Rename them into place */
if (!glnx_renameat (summary_tmpdir.fd, "summary", self->repo_dir_fd, "summary", error))
return glnx_prefix_error (error, "Unable to rename summary file: ");
# Generate a signed summary file.
${CMD_PREFIX} ostree --repo=repo summary --update ${COMMIT_SIGN}
+# If the signature file was created, it should have the same
+# modification time as the summary file.
+if [ -n "${COMMIT_SIGN}" ]; then
+ stat -c '%y' repo/summary > summary-mtime
+ stat -c '%y' repo/summary.sig > summary.sig-mtime
+ assert_files_equal summary-mtime summary.sig-mtime
+fi
+
# Try various ways of adding additional data.
${CMD_PREFIX} ostree --repo=repo summary --update --add-metadata key="'value'" --add-metadata=key2=true
${CMD_PREFIX} ostree --repo=repo summary --update -m some-int='@t 123'
# Generate a signed summary file.
${CMD_PREFIX} ostree --repo=repo summary --update ${COMMIT_SIGN}
+# If the signature file was created, it should have the same
+# modification time as the summary file.
+if [ -n "${COMMIT_SIGN}" ]; then
+ stat -c '%y' repo/summary > summary-mtime
+ stat -c '%y' repo/summary.sig > summary.sig-mtime
+ assert_files_equal summary-mtime summary.sig-mtime
+fi
+
# Try various ways of adding additional data.
${CMD_PREFIX} ostree --repo=repo summary --update --add-metadata key="'value'" --add-metadata=key2=true
${CMD_PREFIX} ostree --repo=repo summary --update -m some-int='@t 123'