Simon McVittie [Mon, 30 Jul 2018 15:51:01 +0000 (16:51 +0100)]
Skip test-pull-repeated during CI
This test is expected to fail a small proportion of the time. During
the build of ostree 2018.7-1 in Debian, it seems we were unlucky on
s390x. Non-deterministic tests are also problematic for autopkgtest,
where they can gate migration of our dependencies like GLib, so skip
this test unless the caller has opted-in to non-deterministic tests.
It would be appropriate to enable this test in environments where
failures can easily be retried and are not disruptive to other
packages.
Signed-off-by: Simon McVittie <smcv@debian.org>
Gbp-Pq: Topic debian
Gbp-Pq: Name Skip-test-pull-repeated-during-CI.patch
Simon McVittie [Thu, 4 Oct 2018 13:54:29 +0000 (14:54 +0100)]
ostree (2018.8-2) unstable; urgency=medium
[ Simon McVittie ]
* ostree-tests: Remove gjs dependency on s390x.
mozjs60 doesn't work on s390x, so gjs is in danger of being removed
from that architecture (see #909536). The test that uses JS is
automatically skipped if the interpreter is missing.
(Closes: #910286)
* Standards-Version: 4.2.1 (no changes required)
[ Ondřej Nový ]
* d/tests: Use AUTOPKGTEST_TMP instead of ADTTMP
* d/changelog: Remove trailing whitespaces
Simon McVittie [Mon, 30 Jul 2018 15:51:01 +0000 (16:51 +0100)]
Skip test-pull-repeated during CI
This test is expected to fail a small proportion of the time. During
the build of ostree 2018.7-1 in Debian, it seems we were unlucky on
s390x. Non-deterministic tests are also problematic for autopkgtest,
where they can gate migration of our dependencies like GLib, so skip
this test unless the caller has opted-in to non-deterministic tests.
It would be appropriate to enable this test in environments where
failures can easily be retried and are not disruptive to other
packages.
Signed-off-by: Simon McVittie <smcv@debian.org>
Gbp-Pq: Topic debian
Gbp-Pq: Name Skip-test-pull-repeated-during-CI.patch
Simon McVittie [Mon, 30 Jul 2018 15:51:01 +0000 (16:51 +0100)]
Skip test-pull-repeated during CI
This test is expected to fail a small proportion of the time. During
the build of ostree 2018.7-1 in Debian, it seems we were unlucky on
s390x. Non-deterministic tests are also problematic for autopkgtest,
where they can gate migration of our dependencies like GLib, so skip
this test unless the caller has opted-in to non-deterministic tests.
It would be appropriate to enable this test in environments where
failures can easily be retried and are not disruptive to other
packages.
Signed-off-by: Simon McVittie <smcv@debian.org>
Gbp-Pq: Topic debian
Gbp-Pq: Name Skip-test-pull-repeated-during-CI.patch
Simon McVittie [Mon, 30 Jul 2018 15:52:35 +0000 (16:52 +0100)]
ostree (2018.7-2) unstable; urgency=medium
* d/p/debian/Skip-test-pull-repeated-during-CI.patch:
Skip a test that is non-deterministic and can spuriously fail,
which is not suitable for build-time testing or gating migration in
autopkgtest.
Simon McVittie [Sun, 24 Jun 2018 11:56:49 +0000 (12:56 +0100)]
OstreeRepoFinderConfig: Fix guint/gsize confusion
If a function has a guint "out argument", passing a pointer to a gsize
is not, in general, valid. On an ILP64 platform there is no problem
since guint and gsize are identical, but on an LP64 platform it will
overwrite only the first word of the gsize, leaving the second word
unaffected. On little-endian machines, if the second word is
zero-initialized (as it is here), the result is numerically equal to
the guint, but on big-endian machines the result is around 4 billion
times what it should be, resulting in
ostree_repo_finder_config_resolve_async() reading past the end of
the array and causing undefined behaviour.
In practice this caused assertion failures (and consequently test
failures) on Debian's s390x (z/Architecture), ppc64 (64-bit PowerPC)
and sparc64 (64-bit SPARC) ports.
Bug: https://github.com/ostreedev/ostree/issues/1640
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=902209
Forwarded: https://github.com/ostreedev/ostree/pull/1641 Signed-off-by: Simon McVittie <smcv@debian.org>
Gbp-Pq: Name OstreeRepoFinderConfig-Fix-guint-gsize-confusion.patch
Simon McVittie [Fri, 22 Jun 2018 00:10:55 +0000 (01:10 +0100)]
avahi: Fail immediately if we can't talk to D-Bus or Avahi
We special-case AVAHI_ERR_NO_DAEMON to not cause warnings, but if
we pass AVAHI_CLIENT_NO_FAIL to avahi_client_new, we never actually
see AVAHI_ERR_NO_DAEMON. Instead, we will get AVAHI_ERR_BAD_STATE
when we try to use the client.
Simon McVittie [Sun, 24 Jun 2018 12:04:09 +0000 (13:04 +0100)]
ostree (2018.6-3) unstable; urgency=medium
* d/p/avahi-Fail-immediately-if-we-can-t-talk-to-D-Bus-or-Avahi.patch:
Mark as applied upstream
* d/p/OstreeRepoFinderConfig-Fix-guint-gsize-confusion.patch:
Add patch to fix incorrect type aliasing that caused assertion
failures on 64-bit big-endian platforms (Closes: #902209)
Simon McVittie [Sun, 10 Jun 2018 12:57:19 +0000 (13:57 +0100)]
ostree (2018.5-2) unstable; urgency=medium
* d/tests/gnome-desktop-testing: Skip libostree/test-concurrency.py.test
during autopkgtest. It does not appear to be completely reliable.
(See #901170)
Simon McVittie [Tue, 15 May 2018 10:30:03 +0000 (11:30 +0100)]
ostree (2018.5-1) unstable; urgency=medium
* New upstream release
- d/copyright: Upstream clarified that only doc/ is CC-BY-SA-3.0 or
GFDL-1.3-or-later, and doc/ isn't included in dist tarballs, so
remove those licenses
- d/libostree-1-1.symbols: Update (and sort)
- d/p/Don-t-write-to-parent-repo.patch: Drop, applied upstream
- d/ostree-boot.install: Add new systemd service
lib/systemd/system/ostree-finalize-staged.service
- d/rules: Remove lib/systemd/system/ostree-finalize-staged.service
until we build ostree-boot
* ostree-tests: Add Lintian override for library-not-linked-against-libc.
libreaddir-rand.so genuinely doesn't use any libc ABIs directly, only
via GLib.
* Standards-Version: 4.1.4 (no changes required)
In _try_clone_from_payload_link, don't try to do the clone in the
parent repo, because we don't want to modify that. parent repos are
typically used when you want a shared, immutable base.
For example in flatpak, the parent repo is the system repo which you
don't have write access to, so any modification to it will fail with
EACCES, making it impossible to install via the system helper.
Simon McVittie [Tue, 17 Apr 2018 08:06:42 +0000 (09:06 +0100)]
ostree (2018.4-2) unstable; urgency=medium
* d/p/Don-t-write-to-parent-repo.patch:
Add patch from upstream to prevent trying to write to a parent
repository, fixing installation of Flatpak apps and runtimes into
the system-wide repository (Closes: #895883)
Simon McVittie [Sat, 24 Mar 2018 19:20:08 +0000 (19:20 +0000)]
ostree (2018.4-1) unstable; urgency=medium
* New upstream release
* Update symbols file
* Drop all patches, including one that was previously considered to
be Debian-specific (moving to Python 3 for tests)
* d/copyright: Update
Simon McVittie [Mon, 19 Feb 2018 09:01:47 +0000 (09:01 +0000)]
ostree (2018.2-1) unstable; urgency=medium
* New upstream release
- d/copyright: Update
- d/libostree-1-1.symbols: Update
* Mark patches as forwarded
* Add gnupg to build-time test dependencies (and ostree-tests
dependencies) as it is no longer transitively build-essential
Simon McVittie [Sun, 10 Dec 2017 19:39:38 +0000 (19:39 +0000)]
tests: Don't assume uid == primary gid
Nothing guarantees that each user has a group containing only
themselves. Even if they do, nothing guarantees that its group ID
equals the user ID, particularly if another user earlier in the same
range was created without a corresponding group or vice versa.
Signed-off-by: Simon McVittie <smcv@collabora.com>
Forwarded: https://github.com/ostreedev/ostree/pull/1390
Applied-upstream: 2018.1, commit:https://github.com/ostreedev/ostree/commit/f63e62fbd272edbdd9695a10d841fc6b5eb69df8
Gbp-Pq: Topic 2018.1
Gbp-Pq: Name tests-Don-t-assume-uid-primary-gid.patch
Simon McVittie [Thu, 4 Jan 2018 19:26:16 +0000 (19:26 +0000)]
ostree (2017.15-2) unstable; urgency=medium
* d/p/2018.1/tests-Don-t-assume-uid-primary-gid.patch: Mark as applied
upstream in 2018.1
* d/p/2018.1/tests-Assert-that-byte-order-[etc.].patch:
Add patch to fix test failures on big-endian machines
(Closes: #886218)
* Temporarily disable gjs tests. gjs is not currently installable on
buildds due to the glibc transition and a long dependency chain
involving systemd-shim being preferred over systemd-sysv, which
ends with libnih1 Depends: libc6 (<< 2.26).
Simon McVittie [Sun, 10 Dec 2017 19:39:38 +0000 (19:39 +0000)]
tests: Don't assume uid == primary gid
Nothing guarantees that each user has a group containing only
themselves. Even if they do, nothing guarantees that its group ID
equals the user ID, particularly if another user earlier in the same
range was created without a corresponding group or vice versa.
Signed-off-by: Simon McVittie <smcv@collabora.com>
Gbp-Pq: Name tests-Don-t-assume-uid-primary-gid.patch
Simon McVittie [Sat, 4 Nov 2017 14:05:06 +0000 (14:05 +0000)]
ostree (2017.13-1) unstable; urgency=medium
* New upstream release
- d/patches: Drop all patches
- d/copyright: Update
- Update symbols file
* d/control: Require dh-exec 0.23~, for build-profile support.
Strictly speaking we might only need 0.15, but I'm not going to
test versions older than the jessie backport.
* Set Rules-Requires-Root to no
* Standards-Version: 4.1.1 (no changes required)
Colin Walters [Wed, 25 Oct 2017 17:13:17 +0000 (13:13 -0400)]
lib/repo: Fix loading commitstate with parent repos
This makes the code nicer too. Properly unit testing this though really wants
like a whole set of stuff around parent repos...but we do have coverage of the
non-parent path in the current pull tests.
Jonathan Lebon [Fri, 6 Oct 2017 21:26:41 +0000 (21:26 +0000)]
fdio: allow NULL for fstatat_allow_noent stbuf
Often, the caller doesn't actually care about the details of the stat
struct itself, but just whether the entry exists or not. It does work
to just pass `NULL` directly to glibc in a quick test, but given that
the argument is tagged as `__nonnull` and that the documentation does
not explicitly specify this is supported, let's do this safely.
Colin Walters [Fri, 13 Oct 2017 22:14:17 +0000 (18:14 -0400)]
tests: Add test-pull-bareuseronly
I was going to fix a bug in the static deltas code and I noticed
we were missing `pull-test.sh` coverage for bareuseronly.
Obviously fixing this requires duplicating some of the bits we have in
`basic-test.sh`; need to hoist that into `libtest.sh`. For now though let's get
the coverage.
Colin Walters [Mon, 16 Oct 2017 19:29:38 +0000 (15:29 -0400)]
lib/sysroot: Fix error handling when mounting overlayfs fails
This isn't perfect, but at least we fix an error-overwrite error, and in
practice `ostree admin unlock` isn't wrapped by `rpm-ostree` yet, so spew to
stderr is OK.
Simon McVittie [Thu, 26 Oct 2017 11:08:15 +0000 (12:08 +0100)]
lib/utils: Check for invalid UTF-8 in filenames
In case a filename contains invalid UTF-8 characters, libostree will
pass it to g_variant_builder_add() in create_tree_variant_from_hashes()
anyway, which leads to a critical warning from glib and an invalid
commit. This commit makes ostree print a useful error and exit instead.
Colin Walters [Wed, 11 Oct 2017 21:02:02 +0000 (17:02 -0400)]
lib/deploy: Use _exit() for FIFREEZE watchdog
This works around an (IMO) SpiderMonkey bug - it tries to
clean up in a shared library destructor, but doesn't install a
`pthread_atfork()` handler to unset its state.
Dan Nicholson [Wed, 11 Oct 2017 14:03:10 +0000 (14:03 +0000)]
lib/deploy: Ignore FIFREEZE/FITHAW errors when already in state
If the filesystem is already frozen, FIFREEZE returns EBUSY, and if the
filesystem is already thawed, FITHAW returns EINVAL. It's very unlikely
these issues would arise on a real ostree system since the sysroot would
be locked during the freeze/thaw cycle.
However, when multiple fake sysroots are used during the test suite (run
as root), the tests could race to run the freeze/thaw cycle without
locking. Furthermore, there's no reason why an independent process might
be trying to freeze the filesystem while ostree was deploying. Ignore
but warn for these errors since there's not much ostree can do about it,
anyways.
Philip Withnall [Tue, 3 Oct 2017 14:45:34 +0000 (15:45 +0100)]
lib/repo-commit: Import detached metadata even if hardlink exists
Spotted while reading through the code, it looks like the
copy_detached_metadata() call is accidentally omitted if a hardlink
already exists for the .commit object.
Colin Walters [Mon, 2 Oct 2017 15:24:05 +0000 (11:24 -0400)]
lib/pull: Fix regression with pull-local for nonexistent refs
I was reading the pull code for the last release, and spotted
a bug in commit f923c2e1eaebe0c781f07d34ae1a03f94357bccd - in
the case where the ref doesn't exist, we don't set an error,
tripping an assertion in the main code.
The previous code wanted the ref to always exist, so just flip back the boolean
for "ignore noent". I moved the `g_strchomp()` just into the HTTP path - if a
local repo is corrupted in this way it's something to fix in that repo.
Simon McVittie [Tue, 3 Oct 2017 20:30:36 +0000 (21:30 +0100)]
Add missing test-libglnx-shutil
Because we re-run autogen.sh, we'll regenerate Makefile-libglnx.am.inc
(which results in the version after this patch, including
test-libglnx-shutil, being present) and then try to build
test-libglnx-shutil; but its source code wasn't included in the upstream
tarball, because Makefile-libglnx.am.inc wasn't up to date at
"make dist" time.
Signed-off-by: Simon McVittie <smcv@debian.org>
Gbp-Pq: Topic dist
Gbp-Pq: Name Add-missing-test-libglnx-shutil.patch
Simon McVittie [Thu, 26 Oct 2017 23:19:45 +0000 (00:19 +0100)]
ostree (2017.12-2) unstable; urgency=medium
* Disable gtk-doc if we are not going to build libostree-doc,
in particular for architecture-specific builds. Note that it remains
in Build-Depends (not Build-Depends-Indep) because it is also needed
for gtkdocize during dh_autoreconf.
- In particular this might fix FTBFS on sparc64, where highlight(1)
fails.
* d/p/2017.13/lib-core-Init-struct-stat-buffer.patch,
d/p/2017.13/lib-sysroot-Fix-pointer-going-out-of-scope-in-unlock-code.patch,
d/p/2017.13/lib-deploy-Ignore-FIFREEZE-FITHAW-errors-when-already-in-.patch,
d/p/2017.13/lib-deploy-Use-_exit-for-FIFREEZE-watchdog.patch,
d/p/2017.13/lib-deltas-Check-cancellable-during-processing.patch,
d/p/2017.13/lib-utils-Check-for-invalid-UTF-8-in-filenames.patch,
d/p/2017.13/Cope-with-xattr-syscalls-raising-EOPNOTSUPP.patch,
d/p/2017.13/lib-sysroot-Fix-error-handling-when-mounting-overlayfs-fa.patch,
d/p/2017.13/lib-repo-Properly-handle-NULL-homedir-when-signing-commit.patch,
d/p/2017.13/fdio-allow-NULL-for-fstatat_allow_noent-stbuf.patch,
d/p/2017.13/lib-repo-Fix-loading-commitstate-with-parent-repos.patch:
Add various bugfix patches from upstream
- In particular, dealing with the possibility that EOPNOTSUPP != ENOTSUP
should fix test failures on hppa.
* d/p/2017.13/tests-Add-test-pull-bareuseronly.patch:
Add more test coverage from upstream
- d/rules: Make the new test executable
* d/test.sh: Clean up ostree-trivial-httpd processes
* d/test.sh: Don't repeat build-time tests if they fail once. They seem
to be somewhat reliable now.