mirror of
https://github.com/ostreedev/ostree.git
synced 2025-02-07 05:57:58 +03:00
Merge pull request #3233 from dbnicholson/sync-summary-times
Sync summary times
This commit is contained in:
commit
fa720d1540
@ -6092,6 +6092,23 @@ regenerate_metadata (OstreeRepo *self, gboolean do_metadata_commit, GVariant *ad
|
||||
&& !_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: ");
|
||||
|
@ -208,5 +208,5 @@ if fsverity enable checkout-test2/nonhardlinked 2>err.txt; then
|
||||
assert_not_streq "${orig_inode}" "${new_inode}"
|
||||
echo "ok copyup fsverity"
|
||||
else
|
||||
skip "no fsverity support: $(cat err.txt)"
|
||||
fi
|
||||
echo "ok copyup fsverity # SKIP no fsverity support: $(cat err.txt)"
|
||||
fi
|
||||
|
@ -51,6 +51,14 @@ ${CMD_PREFIX} ostree --repo=repo summary --update
|
||||
# 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'
|
||||
@ -87,6 +95,14 @@ ${CMD_PREFIX} ostree --repo=repo summary --update
|
||||
# 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'
|
||||
|
Loading…
x
Reference in New Issue
Block a user