From d97c96fd8179dacccd92a1ad917d6437313e485c Mon Sep 17 00:00:00 2001 From: panxiaohe Date: Fri, 5 Feb 2021 19:48:15 +0800 Subject: [PATCH] fix failed tests about test-pull-summary-sigs.sh --- ...igs-Set-timestamps-to-serve-expected.patch | 101 ++++++++++++++++++ ostree.spec | 9 +- 2 files changed, 109 insertions(+), 1 deletion(-) create mode 100644 backport-test-pull-summary-sigs-Set-timestamps-to-serve-expected.patch diff --git a/backport-test-pull-summary-sigs-Set-timestamps-to-serve-expected.patch b/backport-test-pull-summary-sigs-Set-timestamps-to-serve-expected.patch new file mode 100644 index 0000000..8c4d723 --- /dev/null +++ b/backport-test-pull-summary-sigs-Set-timestamps-to-serve-expected.patch @@ -0,0 +1,101 @@ +From 07c4249a3f6e4c30812bdffe7ee18cd67e23a87e Mon Sep 17 00:00:00 2001 +From: Simon McVittie +Date: Sun, 22 Nov 2020 13:17:24 +0000 +Subject: [PATCH] test-pull-summary-sigs: Set timestamps to serve expected + files + +If this is not done, the test can fail when the temporary directory is +a tmpfs: for example this happens during build-time testing with /var/tmp +on tmpfs or TEST_TMPDIR pointing to a tmpfs, or installed-tests with +gnome-desktop-testing-runner allocating the test directory on a tmpfs. + +In particular, many of Debian's official autobuilders now do the entire +build and test procedure in a chroot hosted on a tmpfs, to improve build +performance and prevent fsync overhead. + +In this situation, it appears that overwriting summary.sig with a copy +of summary.sig.2 is not sufficient for the web server to tell the +libostree client that it needs to be re-downloaded. I'm not completely +sure why, because tmpfs does appear to have sub-second-resolution +timestamps, but forcing a distinct mtime is certainly enough to +resolve it. + +Resolves: https://github.com/ostreedev/ostree/issues/2245 +Bug-Debian: https://bugs.debian.org/975418 +Signed-off-by: Simon McVittie +--- + tests/test-pull-summary-sigs.sh | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/tests/test-pull-summary-sigs.sh b/tests/test-pull-summary-sigs.sh +index 401e88c91..3819cbf3d 100755 +--- a/tests/test-pull-summary-sigs.sh ++++ b/tests/test-pull-summary-sigs.sh +@@ -175,6 +175,8 @@ cd ${test_tmpdir} + # Reset to the old valid summary and pull to cache it + cp ${test_tmpdir}/ostree-srv/gnomerepo/summary{.1,} + cp ${test_tmpdir}/ostree-srv/gnomerepo/summary.sig{.1,} ++touch -t 200101010101 ${test_tmpdir}/ostree-srv/gnomerepo/summary ++touch -t 200101010101 ${test_tmpdir}/ostree-srv/gnomerepo/summary.sig + repo_reinit + ${OSTREE} --repo=repo pull origin main + assert_has_file repo/tmp/cache/summaries/origin +@@ -186,6 +188,7 @@ cmp repo/tmp/cache/summaries/origin.sig ${test_tmpdir}/ostree-srv/gnomerepo/summ + # summary signature since it was generated on the server between the + # requests + cp ${test_tmpdir}/ostree-srv/gnomerepo/summary.sig{.2,} ++touch -t 200202020202 ${test_tmpdir}/ostree-srv/gnomerepo/summary.sig + if ${OSTREE} --repo=repo pull origin main 2>err.txt; then + assert_not_reached "Successful pull with old summary" + fi +@@ -197,6 +200,7 @@ cmp repo/tmp/cache/summaries/origin.sig ${test_tmpdir}/ostree-srv/gnomerepo/summ + + # Publish correct summary and check that subsequent pull succeeds + cp ${test_tmpdir}/ostree-srv/gnomerepo/summary{.2,} ++touch -t 200202020202 ${test_tmpdir}/ostree-srv/gnomerepo/summary + ${OSTREE} --repo=repo pull origin main + assert_has_file repo/tmp/cache/summaries/origin + assert_has_file repo/tmp/cache/summaries/origin.sig +@@ -208,6 +212,8 @@ echo "ok pull with signed summary remote old summary" + # Reset to the old valid summary and pull to cache it + cp ${test_tmpdir}/ostree-srv/gnomerepo/summary{.1,} + cp ${test_tmpdir}/ostree-srv/gnomerepo/summary.sig{.1,} ++touch -t 200101010101 ${test_tmpdir}/ostree-srv/gnomerepo/summary ++touch -t 200101010101 ${test_tmpdir}/ostree-srv/gnomerepo/summary.sig + repo_reinit + ${OSTREE} --repo=repo pull origin main + assert_has_file repo/tmp/cache/summaries/origin +@@ -220,6 +226,7 @@ cmp repo/tmp/cache/summaries/origin.sig ${test_tmpdir}/ostree-srv/gnomerepo/summ + # is caching the old signature. This should succeed because the cached + # old summary is used. + cp ${test_tmpdir}/ostree-srv/gnomerepo/summary{.2,} ++touch -t 200202020202 ${test_tmpdir}/ostree-srv/gnomerepo/summary + ${OSTREE} --repo=repo pull origin main + assert_has_file repo/tmp/cache/summaries/origin + assert_has_file repo/tmp/cache/summaries/origin.sig +@@ -228,6 +235,7 @@ cmp repo/tmp/cache/summaries/origin.sig ${test_tmpdir}/ostree-srv/gnomerepo/summ + + # Publish correct signature and check that subsequent pull succeeds + cp ${test_tmpdir}/ostree-srv/gnomerepo/summary.sig{.2,} ++touch -t 200202020202 ${test_tmpdir}/ostree-srv/gnomerepo/summary.sig + ${OSTREE} --repo=repo pull origin main + assert_has_file repo/tmp/cache/summaries/origin + assert_has_file repo/tmp/cache/summaries/origin.sig +@@ -239,6 +247,8 @@ echo "ok pull with signed summary remote old summary signature" + # Reset to the old valid summary and pull to cache it + cp ${test_tmpdir}/ostree-srv/gnomerepo/summary{.1,} + cp ${test_tmpdir}/ostree-srv/gnomerepo/summary.sig{.1,} ++touch -t 200101010101 ${test_tmpdir}/ostree-srv/gnomerepo/summary ++touch -t 200101010101 ${test_tmpdir}/ostree-srv/gnomerepo/summary.sig + repo_reinit + ${OSTREE} --repo=repo pull origin main + assert_has_file repo/tmp/cache/summaries/origin +@@ -273,6 +283,8 @@ cmp repo/tmp/cache/summaries/origin.sig ${test_tmpdir}/ostree-srv/gnomerepo/summ + # Publish new signature and check that subsequent pull succeeds + cp ${test_tmpdir}/ostree-srv/gnomerepo/summary{.2,} + cp ${test_tmpdir}/ostree-srv/gnomerepo/summary.sig{.2,} ++touch -t 200202020202 ${test_tmpdir}/ostree-srv/gnomerepo/summary ++touch -t 200202020202 ${test_tmpdir}/ostree-srv/gnomerepo/summary.sig + ${OSTREE} --repo=repo pull origin main + assert_has_file repo/tmp/cache/summaries/origin + assert_has_file repo/tmp/cache/summaries/origin.sig diff --git a/ostree.spec b/ostree.spec index c528acf..afb4c1c 100644 --- a/ostree.spec +++ b/ostree.spec @@ -1,12 +1,13 @@ Name: ostree Version: 2020.8 -Release: 1 +Release: 2 Summary: A tool like git for operating system binaries License: LGPLv2+ URL: https://ostree.readthedocs.io/en/latest/ Source0: https://github.com/ostreedev/%{name}/releases/download/v%{version}/libostree-%{version}.tar.xz Patch1: Do-not-run-testcase-test-libarvhive-import-because-selinux-is-off.patch +Patch2: backport-test-pull-summary-sigs-Set-timestamps-to-serve-expected.patch BuildRequires: bison autoconf automake libtool gobject-introspection-devel pkgconfig(liblzma) docbook-xsl BuildRequires: pkgconfig(e2p) pkgconfig(zlib) pkgconfig(libcurl) pkgconfig(libsoup-2.4) gpgme-devel @@ -90,6 +91,12 @@ make check %{_mandir}/man*/{ostree,rofiles}*.gz %changelog +* Fri Feb 5 2021 panxiaohe - 2020.8-2 +- Type:bugfix +- ID:NA +- SUG:NA +- DESC:fix failed tests about test-pull-summary-sigs.sh + * Mon Jan 25 2021 zoulin - 2020.8-1 - Type:enhancement - ID:NA -- Gitee