From: Simon McVittie Date: Thu, 26 Oct 2017 23:19:45 +0000 (+0100) Subject: Import ostree_2017.12-2.debian.tar.xz X-Git-Tag: archive/raspbian/2017.14-1+rpi1^2^2^2~16^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=72fe5bee8013df24eff713c553fe298d0be1b6cd;p=ostree.git Import ostree_2017.12-2.debian.tar.xz [dgit import tarball ostree 2017.12-2 ostree_2017.12-2.debian.tar.xz] --- 72fe5bee8013df24eff713c553fe298d0be1b6cd diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..910c5bde --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +/*.debhelper +/*.substvars +/gir1.2-ostree-1.0/ +/libostree-1-1/ +/libostree-dev/ +/libostree-doc/ +/ostree-grub2/ +/ostree/ diff --git a/changelog b/changelog new file mode 100644 index 00000000..6f182013 --- /dev/null +++ b/changelog @@ -0,0 +1,562 @@ +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. + + -- Simon McVittie Fri, 27 Oct 2017 00:19:45 +0100 + +ostree (2017.12-1) unstable; urgency=medium + + * New upstream release + - Drop all current patches, applied upstream + - Update symbols file + * Add some post-release bug fix patches + * Simplify autopkgtest now that test-local-pull seems to be stable + * Unexport HTTP proxy variables in autopkgtest to work around lack of + support for no_proxy, which breaks the tests on Ubuntu autopkgtest. + We don't actually need Internet access, so this is OK. + * debian/test.sh: Unexport HTTP proxy variables for build-time tests + too + * Make build-time test failures fatal if they fail at least twice + out of 5 tries (previously they had to fail at least 3 times) + * Add patch to reinstate test-libglnx-shutil.c, which was missed out + of the upstream tarball + + -- Simon McVittie Tue, 03 Oct 2017 22:47:48 +0100 + +ostree (2017.11-2) unstable; urgency=medium + + * Replace patch with the version applied upstream in 2017.12 + * Standards-Version: 4.1.0 (no changes) + * Add a patch to fix FTBFS in non-English locales + * Add a patch to fix FTBFS if building as root with umask != 022, + which for some reason debomatic does (Closes: #876138) + * Add a patch from upstream to fix undefined behaviour with + O_RDONLY|O_CREAT in rofiles-fuse + + -- Simon McVittie Fri, 22 Sep 2017 15:48:24 +0100 + +ostree (2017.11-1) unstable; urgency=medium + + * New upstream release + - Drop all current patches, applied upstream + - Update symbols file + * Adjust Description and Upstream-Name to emphasize libostree + * Classify new ostree-tmpfiles.conf as part of ostree-boot, and so + don't install it yet + * Stop copying an old ostree-trivial-httpd.xml from debian/dist/ + into source tree. Upstream distributes it again, and has since + 2017.8. + * Add a patch to fix JavaScript tests with gjs 1.50.0, which is + more strict about 'let' + * Stop providing "ostree trivial-httpd" CLI, following upstream + default behaviour. flatpak used to use it in its tests, but + the version in stable no longer does. + + -- Simon McVittie Fri, 15 Sep 2017 16:58:15 +0100 + +ostree (2017.10-1) unstable; urgency=medium + + * New upstream release + - Update symbols file + - Install new bash completions + * Use dh_missing --fail-missing instead of dh_install --fail-missing + * Only run tests when building architecture-dependent packages. + The tests aren't so interesting that we want to run them again + when splitting -arch/-indep builds. + * Add patches to make the tests pass again when /var/tmp is on tmpfs, + which does not support user xattrs + * Add patch to remove useless #! from bash completions + * Make build-time test failures fatal again, but only if they are + reproducible (at least 3 times out of 5) for now + + -- Simon McVittie Tue, 29 Aug 2017 18:18:49 +0100 + +ostree (2017.9-1) unstable; urgency=medium + + * New upstream release + - Drop backported patch + - Update symbols file + * debian/rules: Adjust a comment to avoid Lintian thinking this is a + dh_make template + + -- Simon McVittie Fri, 28 Jul 2017 14:43:30 +0100 + +ostree (2017.8-1) unstable; urgency=medium + + * New upstream release + - Update symbols file + - Remove patches that are no longer needed + - Add patch from upstream PR #1016 to fix a regression + * Add a Breaks on flatpak (<< 0.8.7-2~), which rely on libostree to + download the summary and its signature when mirroring. + libostree >= 2017.7 no longer does this. On affected flatpak versions, + this breaks installation of new apps and runtimes system-wide. + * Add Build-Depends-Indep: libglib2.0-doc so gtk-doc can set up + cross-references + + -- Simon McVittie Wed, 19 Jul 2017 22:18:20 +0100 + +ostree (2017.7-1) unstable; urgency=medium + + * New upstream release + - Update symbols file + - Add post-release patches so test-symbols.sh passes again + - debian/dist/: Add ostree-trivial-httpd.xml, which was incorrectly + excluded from the upstream release + * Standards-Version: 4.0.0 + - Use https URL for copyright-format + * Implement build profile + * Upload to unstable + + -- Simon McVittie Wed, 21 Jun 2017 13:06:54 +0100 + +ostree (2017.6-1) experimental; urgency=medium + + * New upstream release + - Update debian/copyright + - Update disabled ostree-boot packaging for new systemd generator + - Add new ABI to symbols file + * Skip build-time tests when nocheck is in DEB_BUILD_OPTIONS + (Closes: #862803). Thanks to Krzesimir Nowak + + -- Simon McVittie Thu, 25 May 2017 10:01:12 +0100 + +ostree (2017.5-1) experimental; urgency=high + + * New upstream release + - This release fixes a regression in 2017.4 that caused symlinks + in Flatpak apps and runtimes to be checked out as regular files. + Any apps or runtimes that were installed or updated with 2017.4 + will need to be removed and reinstalled. + + -- Simon McVittie Wed, 19 Apr 2017 14:18:16 +0100 + +ostree (2017.4-1) experimental; urgency=medium + + * New upstream release + - d/rules: Explicitly enable trivial-httpd: the tests still need it + - Update symbols file for new ABI + + -- Simon McVittie Mon, 17 Apr 2017 17:19:58 +0100 + +ostree (2017.3-2) experimental; urgency=medium + + * d/ostree.maintscript: Clean up obsolete conffiles from before we + started removing what will eventually become ostree-boot + (see #824650) + * libostree-dev: Add missing dependency on libostree-1-1 + (Closes: #860047) + + -- Simon McVittie Mon, 10 Apr 2017 18:52:26 +0100 + +ostree (2017.3-1) experimental; urgency=medium + + * d/watch, d/copyright: upstream project is now named libostree + * New upstream release + - d/copyright: update + - symbols file: update + - tests, ostree-tests.install: update for new location of tests + - d/control: ostree-tests now needs python-yaml + - build-depend on python, python-yaml for tests + + -- Simon McVittie Thu, 16 Mar 2017 06:58:46 +0000 + +ostree (2017.1-1) experimental; urgency=medium + + * Branch to experimental to avoid interfering with the Debian 9 freeze + * Remove an unintended line in the previous changelog + * New upstream release + - trivial-httpd is now a separate binary. Move it to ostree-tests, + so that it doesn't continue to pull in libsoup if the ostree + downloader is ported to libcurl. + - d/copyright: update + - d/patches: drop all patches, applied upstream + * Explicitly depend on autoconf, automake, libtool. This avoids + builds for experimental non-deterministically pulling in an older + version of automake, in my case automake1.11 which is far too old. + + -- Simon McVittie Fri, 27 Jan 2017 10:23:47 +0000 + +ostree (2016.15-3) unstable; urgency=medium + + * debian/control: Don't run gjs tests on sparc64. gjs doesn't seem + to work there at all (#827815) + - d/ostree-tests.lintian-overrides: silence + missing-dep-for-interpreter error on sparc64, where we install + the script but do not attempt to run it + * debian/tests/gnome-desktop-testing: Skip test-local-pull.sh.test + which suffers from a known bug (#842606) + - debian/tests/test-local-pull: Run the unreliable test separately, + repeated 3 times to assess how often it fails + * d/p/Sourced-test-snippets-remove-shebang-and-make-non-executa.patch, + d/p/Make-corrupt-repo-ref.js-executable.patch: + Fix permissions and #! lines for some tests in the upstream build + system + * d/rules: remove workarounds for script permissions. + The upstream build system now uses the intended permissions throughout. + - Retain explicit chmod for *.js, which dh_fixperms assumes should + not be executable. + * d/p/Fix-TAP-syntax-in-test-basic-user.sh-and-run-it.patch: + Run an additional test, which was previously installed but not run + + -- Simon McVittie Thu, 19 Jan 2017 13:23:32 +0000 + +ostree (2016.15-2) unstable; urgency=medium + + * Make all test failures non-fatal at build time, so that intermittent + test failures do not interfere with possible security updates during + Debian stretch-as-stable. + + -- Simon McVittie Tue, 20 Dec 2016 11:28:41 +0000 + +ostree (2016.15-1) unstable; urgency=medium + + * New upstream release + - d/patches: drop all patches, applied upstream + + -- Simon McVittie Tue, 13 Dec 2016 13:13:44 +0000 + +ostree (2016.14-2) unstable; urgency=medium + + * Make build-time test failures non-fatal, as long as at least + 3 out of 5 attempts succeed. + + There are several upstream bugs that cause intermittent test + failures, and can intermittently be reproduced in real use. + However, these are not regressions, so we should not FTBFS just + because we happen to have been unlucky during build. + + * d/p/Terminate-individual-tests-after-10-minutes.patch: + replace d/p/debian/Terminate-individual-tests-after-half-an-hour.patch + with the version that I sent upstream, which uses SIGABRT and + terminates the tests sooner + * d/p/*.patch: import more memory leak fixes from upstream + + -- Simon McVittie Thu, 01 Dec 2016 12:38:54 +0000 + +ostree (2016.14-1) unstable; urgency=medium + + * Switch the build-dependency on libgpgme11-dev (which no longer exists + as a real package) to libgpgme-dev + * Drop the version from versioned build-dependencies where the required + version was already present in oldstable + * New upstream release + - update symbols file for new ABI + * Import various post-release fixes from upstream + + -- Simon McVittie Tue, 29 Nov 2016 11:05:44 +0000 + +ostree (2016.13-1) unstable; urgency=medium + + * New upstream release + - d/p/dist/Retrieve-some-missing-test-files-from-upstream-git.patch: + remove, 2016.13 was released with a fixed "make dist" + - d/p/Filter-bootloader-supplied-kernel-cmdline-options.patch: + remove, merged upstream + * d/copyright: drop copyright and license stanzas for files that are + in upstream git but not in tarballs + + -- Simon McVittie Sun, 20 Nov 2016 21:58:11 +0000 + +ostree (2016.12-2) unstable; urgency=medium + + * d/p/Filter-bootloader-supplied-kernel-cmdline-options.patch: + - Filter out kernel command line parameters set by the bootloading when + deriving the configuration from /proc/cmdline. + * Add myself to uploaders + + -- Sjoerd Simons Thu, 03 Nov 2016 15:48:01 -0600 + +ostree (2016.12-1) unstable; urgency=medium + + * Force LC_ALL=C.UTF-8 during build, so that builds in non-English + locales can pass their build-time tests + * New upstream release + * Build-depend on ca-certificates. glib-networking now generates + warnings if those are missing, causing the build-time tests to fail. + + -- Simon McVittie Wed, 26 Oct 2016 19:11:14 +0100 + +ostree (2016.11-1) unstable; urgency=medium + + * New upstream release + * Relicense debian/ from GPL-2+ to LGPL-2+, with permission from + David King + * Install GObject-Introspection typelibs to multiarch path, + and mark gir1.2-ostree-1.0 as Multi-Arch: same + * libostree-dev: stop depending on ostree. It isn't necessary to + use the library, and would break multiarch installability + * Move to debhelper compat level 10 + - stop using dh --parallel, it's the default now + - don't use autoreconf and systemd addons explicitly, they are + the default now + * d/p/dist/Retrieve-some-missing-test-files-from-upstream-git.patch: + fetch missing test files from upstream git + - debian/rules: make the missing scripts executable + + -- Simon McVittie Fri, 07 Oct 2016 23:39:06 +0100 + +ostree (2016.10-1) unstable; urgency=medium + + * New upstream release + * Make libostree-dev Multi-Arch: same + * Make libostree-doc Multi-Arch: foreign + + -- Simon McVittie Thu, 15 Sep 2016 08:26:51 +0100 + +ostree (2016.9-2) unstable; urgency=medium + + * debian/patches/Terminate-individual-tests-after-half-an-hour.patch: + terminate individual tests after 30 minutes, in an attempt to debug + what happened on the ppc64el buildd + + -- Simon McVittie Fri, 09 Sep 2016 08:23:44 +0100 + +ostree (2016.9-1) unstable; urgency=medium + + * New upstream version + - update symbols file for new ABI + - update copyright file + - update ostree-boot packaging: the utilities in /usr/sbin moved to + /usr/lib/ostree + - drop libgsystem build-dependency + - d/p/Makefile-tests.am-make-check-uses-the-built-binaries.patch: + drop, applied upstream + * Explicitly build-depend on xsltproc, which is directly used + + -- Simon McVittie Tue, 06 Sep 2016 09:59:00 +0100 + +ostree (2016.7-1) unstable; urgency=medium + + * New upstream version + - drop all patches, applied upstream + - build-depend on libsystemd (unconditionally, because this package is + Linux-specific already) + - update symbols file for new ABI + * d/p/Makefile-tests.am-make-check-uses-the-built-binaries.patch: + add patch from upstream to make sure we use the built binaries for + build-time testing + * d/control: mention Flatpak, not its former name xdg-app + + -- Simon McVittie Thu, 28 Jul 2016 07:40:27 +0100 + +ostree (2016.6-4) unstable; urgency=medium + + * Switch sense of check in debian/test.sh so we really ignore test + failures on mipsel, and not on !mipsel. + + -- Simon McVittie Wed, 06 Jul 2016 15:23:31 +0100 + +ostree (2016.6-3) unstable; urgency=medium + + * Ignore build-time test failures on mipsel. "ostree pull" + intermittently fails with a bus error on at least some mipsel CPUs, + and applying gdb to the resulting core dump does not produce any + useful information. Debugging help would be appreciated. + (Mitigates: #827473) + + -- Simon McVittie Wed, 06 Jul 2016 10:17:43 +0100 + +ostree (2016.6-2) unstable; urgency=medium + + * d/p/tests-Improve-check-for-proc-cmdline-kargs.patch: add patch from + upstream fixing FTBFS on host machines without root= in /proc/cmdline, + such as the reproducible builds armhf workers + * d/control, d/copyright: use the GitHub repository as the Homepage + and Source: the GNOME wiki page is less frequently updated + + -- Simon McVittie Tue, 28 Jun 2016 09:29:53 +0100 + +ostree (2016.6-1) unstable; urgency=medium + + [ Jeremy Bicha ] + * Fix debian/watch (Closes: #827440) + + [ Simon McVittie ] + * New upstream release + - drop all patches, included upstream + - update symbols file + - this version is more careful about thread-safety, which appears + to fix the test failures that caused FTBFS on mipsel + (Closes: #827473) + * d/watch: fetch releases from GitHub instead of GNOME + * d/gbp.conf: configure to use upstream/latest for upstream imports + * d/gbp.conf: configure to merge upstream tags into upstream/latest + (add https://github.com/ostreedev/ostree as a remote) + * d/p/libostree.sym-Fix-test-symbols.patch: apply patch from upstream + to fix a build-time test + * d/p/pull-Correctly-handle-repo-parent_repo-when-applying-stat.patch: + apply patch from upstream to fix a bug that flatpak currently works + around + * d/p/tests-fail-the-build-if-symlinking-tests-ostree-fails.patch, + d/p/tests-use-our-own-generated-libtool-not-the-one-in-PATH.patch: + add patches to ensure that the build-time tests act on the copy + of ostree that we just built + * d/p/entry_pathname_test_helper-these-tests-need-extended-attr.patch: + skip more tests if /var/tmp doesn't support extended attributes + * d/control: ostree no longer needs its Suggests on dracut. A stronger + dependency on dracut will be needed in the ostree-boot package when + the boot integration is reinstated (see #824650). + + -- Simon McVittie Sun, 26 Jun 2016 19:51:31 +0100 + +ostree (2016.5-4) unstable; urgency=medium + + * d/p/test-sysroot.js-set-strict-mode-when-sourcing-libtest.sh.patch, + d/p/tests-Use-strict-mode-by-default-for-C-tests.patch: add patches + to make sure the tests fail as soon as something goes wrong + * Build-depend on procps, used to check for leaked processes + * debian/test.sh: factor out our dh_auto_test wrapper, and clean + up any stray processes even if the test fails + * If build-time tests fail, try 4 more times to get an idea of + whether the failure is reproducible (hoping to diagnose #826858) + * Add a patch to link libreaddir-rand to libdl, which should fix + test failures on Ubuntu (Closes: #826857) + + -- Simon McVittie Tue, 14 Jun 2016 15:35:18 -0400 + +ostree (2016.5-3) unstable; urgency=medium + + * Remove ostree-grub2 and the boot-related parts of ostree, leaving + the library and the command-line tool, which are also used by + Flatpak. + When we have documentation for how to use and test OSTree + deployments with a Debian derivative (see #824649), they should be + reinstated in an ostree-boot package (see #824650). + * Upload to unstable. + + -- Simon McVittie Wed, 08 Jun 2016 11:58:01 +0100 + +ostree (2016.5-2) experimental; urgency=medium + + * Add a patch to skip the test-parent test if /var/tmp doesn't support + user xattrs, hopefully fixing FTBFS on x86-csail-02 buildd + + -- Simon McVittie Mon, 25 Apr 2016 12:51:33 +0100 + +ostree (2016.5-1) experimental; urgency=medium + + * New upstream release + - Remove all patches, applied upstream + - debian/libostree-1-1.symbols: update for new versioned symbols + - Build-depend on libmount-dev + - debian/copyright: update + - debian/rules, debian/ostree-tests.install: adjust for new installation + directory for installed-tests + - debian/rules: use Debian's grub2-mkconfig path + * debian/gbp.conf: use DEP-14 branch names; disable numbered patches + * Fix ITP bug number in changelog (was #813308, should have been #697477) + * debian/control: build-depend on attr, for the tests (only required if + /var/tmp supports extended attributes) + * debian/rules: clean up stale gpg-agent processes after testing + * debian/rules: warn if there are leftover daemon processes after testing + * debian/ostree-tests.lintian-overrides: override a couple of false + positives + * Run dh_auto_test with VERBOSE=1, to get logs with older debhelper + * Build-depend on elfutils, for test-abi.sh + * Work around #821235 to avoid undefined macro 'AQ' in some man pages + * Add a patch to put more information in the log if tests fail, + in an attempt to debug a failure in test/pull-resume.sh which + I can no longer reproduce + * Standards-version: 3.9.8 (no changes needed) + + -- Simon McVittie Mon, 25 Apr 2016 07:46:16 +0100 + +ostree (2016.3-1) experimental; urgency=medium + + * Prepare package for Debian (Closes: #697477) + * New upstream release + * Remove -dbg package, rely on automatic dbgsym packages instead + * Extend package descriptions a bit + * debian/.gitignore: add + * debian/copyright: fill in all copyright holders and licenses + * debian/control: set Maintainer to the pkg-utopia team, with packaging + in collab-maint git, and myself and Matthias Klumpp as uploaders + * Normalize packaging via `wrap-and-sort -abst` + * debian/control: move shared library to Section: libs + * debian/control: remove redundant Section + * debian/control: change Section to admin + * Remove unnecessary uses of dh-exec + * debian/patches: remove all patches, no longer needed or applied + * Use dh_install --fail-missing to catch mistakes + * Add a symbols file + * Add missing dependency on libglib2.0-dev + * Add an ostree-tests package, and use it for autopkgtest + * Enable systemd helpers, but do not start the early-boot systemd services + on installation + * Don't override dh_auto_clean to nothing + * ostree-grub2: recommend concrete GRUB packages instead of hard-depending + on a transitional package. This is only a Recommends because you + could be using some other architecture's grub packages. + * Redirect libexecdir to /usr/lib (not /usr/lib/${multiarch}) since we don't + need multiarch for anything that's installed there, fixing a broken + symlink in ostree-grub2 + * Document the limited situations in which ostree-grub2 will work in + practice + * Only build on Linux architectures; this package is specifically + not portable + * Add patch to fix underlinking of test-archive + * Add patch to skip one build-time test if /var/tmp cannot support xattrs, + for example if it is on tmpfs + * Stop dh_makeshlibs thinking that the LD_PRELOAD module libreaddir-rand.so + (part of the tests) is meant to be a shared library + * Add a missing #!/bin/sh to one test + + -- Simon McVittie Sat, 19 Mar 2016 17:56:21 +0000 + +ostree (2016.1-alexlarsson1~wily1) wily; urgency=medium + + * New upstream release + + -- Alexander Larsson Thu, 01 Oct 2015 11:28:39 +0200 + +ostree (2015.11-alexlarsson1~vivid1) vivid; urgency=medium + + * New upstream release + + -- Alexander Larsson Thu, 01 Oct 2015 11:28:39 +0200 + +ostree (2015.9-alexlarsson1) vivid; urgency=medium + + * New upstream release + + -- Alexander Larsson Thu, 01 Oct 2015 11:28:39 +0200 + +ostree (2015.4-0amigadave2) trusty; urgency=low + + [ David King ] + * Add build dependency on libattr1-dev. + + -- David King Wed, 08 Apr 2015 13:10:39 +0100 + +ostree (2015.4-0amigadave1) trusty; urgency=low + + [ David King ] + * Initial packaging. + + -- David King Thu, 02 Apr 2015 15:40:52 +0000 diff --git a/compat b/compat new file mode 100644 index 00000000..f599e28b --- /dev/null +++ b/compat @@ -0,0 +1 @@ +10 diff --git a/control b/control new file mode 100644 index 00000000..b75d4fab --- /dev/null +++ b/control @@ -0,0 +1,167 @@ +Source: ostree +Section: admin +Priority: optional +Maintainer: Utopia Maintenance Team +Uploaders: + Matthias Klumpp , + Simon McVittie , + Sjoerd Simons +Build-Depends: + attr, + autoconf, + automake, + bison, + ca-certificates, + cpio, + debhelper (>= 10~), + dh-exec, + docbook-xml , + docbook-xsl , + e2fslibs-dev, + elfutils, + fuse, + gjs [!sparc64], + gobject-introspection, + gtk-doc-tools , + libarchive-dev, + libattr1-dev, + libcap-dev, + libfuse-dev, + libgirepository1.0-dev, + libglib2.0-dev (>= 2.40.0), + libgpgme-dev, + liblzma-dev, + libmount-dev (>= 2.23), + libselinux1-dev, + libsoup2.4-dev (>= 2.39.1), + libsystemd-dev, + libtool, + procps, + python , + python-yaml , + xsltproc , + zlib1g-dev, +Build-Depends-Indep: + libglib2.0-doc, +Standards-Version: 4.1.0 +Homepage: https://github.com/ostreedev/ostree/ +Vcs-Git: https://anonscm.debian.org/git/collab-maint/ostree.git +Vcs-Browser: https://anonscm.debian.org/cgit/collab-maint/ostree.git + +Package: gir1.2-ostree-1.0 +Architecture: linux-any +Multi-Arch: same +Section: introspection +Depends: + ${gir:Depends}, + ${misc:Depends}, +Description: content-addressed filesystem for operating system binaries (introspection) + libostree provides a library and tools for managing bootable, immutable, + versioned filesystem trees. See the ostree package's description for + more details. + . + This package contains GObject-Introspection metadata, which can be used + to generate dynamic bindings into languages such as Python and JavaScript. + +Package: libostree-1-1 +Architecture: linux-any +Section: libs +Depends: + ${misc:Depends}, + ${shlibs:Depends}, +Pre-Depends: + ${misc:Pre-Depends}, +Breaks: + flatpak (<< 0.8.7-2~), +Multi-arch: same +Description: content-addressed filesystem for operating system binaries (library) + libostree is a library for managing bootable, immutable, versioned + filesystem trees. It is like git in that it checksums individual files + and has a content-addressed object store; unlike git, it "checks out" + the files using hardlinks into an immutable directory tree. This + can be used to provide atomic upgrades with rollback, history and + parallel-installation, particularly useful on "fixed purpose" systems + such as embedded devices. It is also used by the Flatpak application + runtime system. + . + This package contains the shared library. + +Package: libostree-dev +Architecture: linux-any +Multi-Arch: same +Section: libdevel +Depends: + gir1.2-ostree-1.0 (= ${binary:Version}), + libglib2.0-dev, + libostree-1-1 (= ${binary:Version}), + pkg-config, + ${misc:Depends}, +Suggests: + libostree-doc, +Description: Development files for the libostree library + libostree is a library for managing bootable, immutable, versioned + filesystem trees. It is like git in that it checksums individual files + and has a content-addressed object store; unlike git, it "checks out" + the files using hardlinks into an immutable directory tree. This + can be used to provide atomic upgrades with rollback, history and + parallel-installation, particularly useful on "fixed purpose" systems + such as embedded devices. It is also used by the Flatpak application + runtime system. + . + This package contains development headers and the pkg-config file for + libostree. + +Package: libostree-doc +Build-Profiles: +Architecture: all +Multi-Arch: foreign +Section: doc +Depends: + ${misc:Depends}, +Suggests: + devhelp, +Description: Development documentation for the libostree library + libostree provides a library and tools for managing bootable, immutable, + versioned filesystem trees. See the ostree package's description for + more details. + . + This package contains development documentation for libostree. + +Package: ostree +Architecture: linux-any +Depends: + ${misc:Depends}, + ${shlibs:Depends}, +Description: content-addressed filesystem for operating system binaries + libostree provides a library and tools for managing bootable, immutable, + versioned filesystem trees. It is like git in that it checksums + individual files and has a content-addressed object store; unlike git, + it "checks out" the files using hardlinks into an immutable directory + tree. This can be used to provide atomic upgrades with rollback, history + and parallel-installation, particularly useful on "fixed purpose" + systems such as embedded devices. + . + This package contains the executables used to manage and create + filesystem trees. It does not affect the boot process for the system + on which it is installed. + +Package: ostree-tests +Architecture: linux-any +Depends: + attr, + ca-certificates, + cpio, + fuse, + gir1.2-ostree-1.0, + gjs [!sparc64], + ostree, + python, + python-yaml, + ${misc:Depends}, + ${shlibs:Depends}, +Description: content-addressed filesystem for operating system binaries - tests + libostree provides a library and tools for managing bootable, immutable, + versioned filesystem trees. See the ostree package's description for + more details. + . + This package contains automated tests. diff --git a/copyright b/copyright new file mode 100644 index 00000000..e7400336 --- /dev/null +++ b/copyright @@ -0,0 +1,185 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: libostree +Source: https://github.com/ostreedev/ostree/ + +Files: + * +Copyright: + © 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + © 1999-2000, 2002-2005 Free Software Foundation, Inc. + © 1999-2003 Ximian, Inc. + © 2008-2017 Red Hat, Inc + © 2011-2017 Colin Walters + © 2017 Georges Basile Stavracas Neto + © 2011 Avery Pennarun + © 2013 Collabora Ltd. + © 2013 Stef Walter + © 2013 Javier Martinez + © 2013 Jeremy Whiting + © 2013-2016 Sjoerd Simons + © 2014-2016 Alexander Larsson + © 2014 Owen Taylor + © 2015 Dan Nicholson + © 2015 Canonical Ltd. + © 2017 Endless Mobile, Inc. +License: LGPL-2+ + +Files: + libglnx/glnx-lockfile.* + libglnx/glnx-fdio.* + libglnx/glnx-missing-syscall.h + libglnx/glnx-missing.h +Copyright: + © 2010-2011 Lennart Poettering + © 2014-2015 Colin Walters + © 2016 Zbigniew Jędrzejewski-Szmek +License: LGPL-2.1+ + +Files: + src/libostree/ostree-varint.c +Copyright: + © 2008 Google Inc. + © 2013 Colin Walters +License: LGPL-2+ and BSD-3-clause + +Files: + buildutil/attributes.m4 +Copyright: + 2006-2008 Diego Pettenò + 2006-2008 xine project + 2012 Lucas De Marchi +License: GPL-2+ with Autoconf exception + +Files: + bsdiff/* +Copyright: + © 2003-2005 Colin Percival + © 2012 Matthew Endsley +License: BSD-2-clause + +Files: debian/* +Copyright: + © 2015 David King + © 2016 Collabora Ltd. + © 2017 Simon McVittie +License: LGPL-2+ + +License: GPL-2+ with Autoconf exception + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + . + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301, USA. + . + As a special exception, the copyright owners of the + macro gives unlimited permission to copy, distribute and modify the + configure scripts that are the output of Autoconf when processing the + Macro. You need not follow the terms of the GNU General Public + License when using or distributing such scripts, even though portions + of the text of the Macro appear in them. The GNU General Public + License (GPL) does govern all other use of the material that + constitutes the Autoconf Macro. + . + This special exception to the GPL applies to versions of the + Autoconf Macro released by this project. When you make and + distribute a modified version of the Autoconf Macro, you may extend + this special exception to the GPL to apply to your modified version as + well. +Comment: + On Debian systems, the full text of the GNU General Public + License version 2 can be found in the file + '/usr/share/common-licenses/GPL-2'. + +License: LGPL-2+ + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Library General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + . + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Library General Public License for more details. + . + You should have received a copy of the GNU Library General Public License + along with this program. If not, see . +Comment: + On Debian systems, the full text of the GNU Library General Public + License version 2 can be found in the file + '/usr/share/common-licenses/LGPL-2'. + +License: LGPL-2.1+ + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + . + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + . + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . +Comment: + On Debian systems, the full text of the GNU Lesser General Public + License version 2.1 can be found in the file + '/usr/share/common-licenses/LGPL-2.1'. + +License: BSD-2-clause + Redistribution and use in source and binary forms, with or without + modification, are permitted providing that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + . + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +License: BSD-3-clause + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + . + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/docs b/docs new file mode 100644 index 00000000..b43bf86b --- /dev/null +++ b/docs @@ -0,0 +1 @@ +README.md diff --git a/gbp.conf b/gbp.conf new file mode 100644 index 00000000..2bda9c8b --- /dev/null +++ b/gbp.conf @@ -0,0 +1,7 @@ +[DEFAULT] +pristine-tar = True +compression = xz +debian-branch = debian/master +upstream-branch = upstream/latest +patch-numbers = False +upstream-vcs-tag = v%(version)s diff --git a/gir1.2-ostree-1.0.install b/gir1.2-ostree-1.0.install new file mode 100644 index 00000000..49d71c96 --- /dev/null +++ b/gir1.2-ostree-1.0.install @@ -0,0 +1 @@ +usr/lib/*/girepository-1.0 diff --git a/libostree-1-1.install b/libostree-1-1.install new file mode 100644 index 00000000..989a3850 --- /dev/null +++ b/libostree-1-1.install @@ -0,0 +1 @@ +usr/lib/*/libostree-1.so.* diff --git a/libostree-1-1.symbols b/libostree-1-1.symbols new file mode 100644 index 00000000..6b5938cb --- /dev/null +++ b/libostree-1-1.symbols @@ -0,0 +1,345 @@ +libostree-1.so.1 libostree-1-1 #MINVER# +* Build-Depends-Package: libostree-dev + LIBOSTREE_2016.3@LIBOSTREE_2016.3 2016.4 + LIBOSTREE_2016.4@LIBOSTREE_2016.4 2016.4 + LIBOSTREE_2016.5@LIBOSTREE_2016.5 2016.5 + LIBOSTREE_2016.6@LIBOSTREE_2016.6 2016.6 + LIBOSTREE_2016.7@LIBOSTREE_2016.7 2016.7 + LIBOSTREE_2016.8@LIBOSTREE_2016.8 2016.8 + LIBOSTREE_2016.14@LIBOSTREE_2016.14 2016.14 + LIBOSTREE_2017.1@LIBOSTREE_2017.1 2017.1 + LIBOSTREE_2017.2@LIBOSTREE_2017.2 2017.2 + LIBOSTREE_2017.3@LIBOSTREE_2017.3 2017.3 + LIBOSTREE_2017.4@LIBOSTREE_2017.4 2017.4 + LIBOSTREE_2017.6@LIBOSTREE_2017.6 2017.6 + LIBOSTREE_2017.7@LIBOSTREE_2017.7 2017.7 + LIBOSTREE_2017.8@LIBOSTREE_2017.8 2017.8 + LIBOSTREE_2017.9@LIBOSTREE_2017.9 2017.9 + LIBOSTREE_2017.10@LIBOSTREE_2017.10 2017.10 + LIBOSTREE_2017.11@LIBOSTREE_2017.11 2017.11 + LIBOSTREE_2017.12@LIBOSTREE_2017.12 2017.12 + ostree_async_progress_finish@LIBOSTREE_2016.3 2016.4 + ostree_async_progress_get@LIBOSTREE_2017.6 2017.6 + ostree_async_progress_get_status@LIBOSTREE_2016.3 2016.4 + ostree_async_progress_get_type@LIBOSTREE_2016.3 2016.4 + ostree_async_progress_get_uint64@LIBOSTREE_2016.3 2016.4 + ostree_async_progress_get_uint@LIBOSTREE_2016.3 2016.4 + ostree_async_progress_get_variant@LIBOSTREE_2017.6 2017.6 + ostree_async_progress_new@LIBOSTREE_2016.3 2016.4 + ostree_async_progress_new_and_connect@LIBOSTREE_2016.3 2016.4 + ostree_async_progress_set@LIBOSTREE_2017.6 2017.6 + ostree_async_progress_set_status@LIBOSTREE_2016.3 2016.4 + ostree_async_progress_set_uint64@LIBOSTREE_2016.3 2016.4 + ostree_async_progress_set_uint@LIBOSTREE_2016.3 2016.4 + ostree_async_progress_set_variant@LIBOSTREE_2017.6 2017.6 + ostree_bootconfig_parser_clone@LIBOSTREE_2016.3 2016.4 + ostree_bootconfig_parser_get@LIBOSTREE_2016.3 2016.4 + ostree_bootconfig_parser_get_type@LIBOSTREE_2016.3 2016.4 + ostree_bootconfig_parser_new@LIBOSTREE_2016.3 2016.4 + ostree_bootconfig_parser_parse@LIBOSTREE_2016.3 2016.4 + ostree_bootconfig_parser_parse_at@LIBOSTREE_2016.3 2016.4 + ostree_bootconfig_parser_set@LIBOSTREE_2016.3 2016.4 + ostree_bootconfig_parser_write@LIBOSTREE_2016.3 2016.4 + ostree_bootconfig_parser_write_at@LIBOSTREE_2016.3 2016.4 + ostree_chain_input_stream_get_type@LIBOSTREE_2016.3 2016.4 + ostree_chain_input_stream_new@LIBOSTREE_2016.3 2016.4 + ostree_check_version@LIBOSTREE_2017.4 2017.4 + ostree_checksum_b64_from_bytes@LIBOSTREE_2016.8 2016.8 + ostree_checksum_b64_inplace_from_bytes@LIBOSTREE_2016.3 2016.4 + ostree_checksum_b64_inplace_to_bytes@LIBOSTREE_2016.3 2016.4 + ostree_checksum_b64_to_bytes@LIBOSTREE_2016.8 2016.8 + ostree_checksum_bytes_peek@LIBOSTREE_2016.3 2016.4 + ostree_checksum_bytes_peek_validate@LIBOSTREE_2016.3 2016.4 + ostree_checksum_file@LIBOSTREE_2016.3 2016.4 + ostree_checksum_file_async@LIBOSTREE_2016.3 2016.4 + ostree_checksum_file_async_finish@LIBOSTREE_2016.3 2016.4 + ostree_checksum_file_from_input@LIBOSTREE_2016.3 2016.4 + ostree_checksum_from_bytes@LIBOSTREE_2016.3 2016.4 + ostree_checksum_from_bytes_v@LIBOSTREE_2016.3 2016.4 + ostree_checksum_inplace_from_bytes@LIBOSTREE_2016.3 2016.4 + ostree_checksum_inplace_to_bytes@LIBOSTREE_2016.3 2016.4 + ostree_checksum_input_stream_get_type@LIBOSTREE_2016.3 2016.4 + ostree_checksum_input_stream_new@LIBOSTREE_2016.3 2016.4 + ostree_checksum_to_bytes@LIBOSTREE_2016.3 2016.4 + ostree_checksum_to_bytes_v@LIBOSTREE_2016.3 2016.4 + ostree_cmd__private__@LIBOSTREE_2016.3 2016.4 + ostree_cmp_checksum_bytes@LIBOSTREE_2016.3 2016.4 + ostree_commit_get_parent@LIBOSTREE_2016.3 2016.4 + ostree_commit_get_timestamp@LIBOSTREE_2016.3 2016.4 + ostree_content_file_parse@LIBOSTREE_2016.3 2016.4 + ostree_content_file_parse_at@LIBOSTREE_2016.3 2016.4 + ostree_content_stream_parse@LIBOSTREE_2016.3 2016.4 + ostree_create_directory_metadata@LIBOSTREE_2016.3 2016.4 + ostree_deployment_clone@LIBOSTREE_2016.3 2016.4 + ostree_deployment_equal@LIBOSTREE_2016.3 2016.4 + ostree_deployment_get_bootconfig@LIBOSTREE_2016.3 2016.4 + ostree_deployment_get_bootcsum@LIBOSTREE_2016.3 2016.4 + ostree_deployment_get_bootserial@LIBOSTREE_2016.3 2016.4 + ostree_deployment_get_csum@LIBOSTREE_2016.3 2016.4 + ostree_deployment_get_deployserial@LIBOSTREE_2016.3 2016.4 + ostree_deployment_get_index@LIBOSTREE_2016.3 2016.4 + ostree_deployment_get_origin@LIBOSTREE_2016.3 2016.4 + ostree_deployment_get_origin_relpath@LIBOSTREE_2016.3 2016.4 + ostree_deployment_get_osname@LIBOSTREE_2016.3 2016.4 + ostree_deployment_get_type@LIBOSTREE_2016.3 2016.4 + ostree_deployment_get_unlocked@LIBOSTREE_2016.4 2016.4 + ostree_deployment_hash@LIBOSTREE_2016.3 2016.4 + ostree_deployment_new@LIBOSTREE_2016.3 2016.4 + ostree_deployment_set_bootconfig@LIBOSTREE_2016.3 2016.4 + ostree_deployment_set_bootserial@LIBOSTREE_2016.3 2016.4 + ostree_deployment_set_index@LIBOSTREE_2016.3 2016.4 + ostree_deployment_set_origin@LIBOSTREE_2016.3 2016.4 + ostree_deployment_unlocked_state_to_string@LIBOSTREE_2016.4 2016.4 + ostree_diff_dirs@LIBOSTREE_2016.3 2016.4 + ostree_diff_dirs_with_options@LIBOSTREE_2017.4 2017.4 + ostree_diff_item_get_type@LIBOSTREE_2016.3 2016.4 + ostree_diff_item_ref@LIBOSTREE_2016.3 2016.4 + ostree_diff_item_unref@LIBOSTREE_2016.3 2016.4 + ostree_diff_print@LIBOSTREE_2016.3 2016.4 + ostree_fetcher_config_flags_get_type@LIBOSTREE_2016.3 2016.4 + ostree_gpg_error_quark@LIBOSTREE_2017.10 2017.10 + ostree_gpg_verify_result_count_all@LIBOSTREE_2016.3 2016.4 + ostree_gpg_verify_result_count_valid@LIBOSTREE_2016.3 2016.4 + ostree_gpg_verify_result_describe@LIBOSTREE_2016.3 2016.4 + ostree_gpg_verify_result_describe_variant@LIBOSTREE_2016.3 2016.4 + ostree_gpg_verify_result_get@LIBOSTREE_2016.3 2016.4 + ostree_gpg_verify_result_get_all@LIBOSTREE_2016.3 2016.4 + ostree_gpg_verify_result_get_type@LIBOSTREE_2016.3 2016.4 + ostree_gpg_verify_result_lookup@LIBOSTREE_2016.3 2016.4 + ostree_gpg_verify_result_require_valid_signature@LIBOSTREE_2016.6 2016.6 + ostree_hash_object_name@LIBOSTREE_2016.3 2016.4 + ostree_metadata_variant_type@LIBOSTREE_2016.3 2016.4 + ostree_mutable_tree_ensure_dir@LIBOSTREE_2016.3 2016.4 + ostree_mutable_tree_ensure_parent_dirs@LIBOSTREE_2016.3 2016.4 + ostree_mutable_tree_get_contents_checksum@LIBOSTREE_2016.3 2016.4 + ostree_mutable_tree_get_files@LIBOSTREE_2016.3 2016.4 + ostree_mutable_tree_get_metadata_checksum@LIBOSTREE_2016.3 2016.4 + ostree_mutable_tree_get_subdirs@LIBOSTREE_2016.3 2016.4 + ostree_mutable_tree_get_type@LIBOSTREE_2016.3 2016.4 + ostree_mutable_tree_lookup@LIBOSTREE_2016.3 2016.4 + ostree_mutable_tree_new@LIBOSTREE_2016.3 2016.4 + ostree_mutable_tree_replace_file@LIBOSTREE_2016.3 2016.4 + ostree_mutable_tree_set_contents_checksum@LIBOSTREE_2016.3 2016.4 + ostree_mutable_tree_set_metadata_checksum@LIBOSTREE_2016.3 2016.4 + ostree_mutable_tree_walk@LIBOSTREE_2016.3 2016.4 + ostree_object_from_string@LIBOSTREE_2016.3 2016.4 + ostree_object_name_deserialize@LIBOSTREE_2016.3 2016.4 + ostree_object_name_serialize@LIBOSTREE_2016.3 2016.4 + ostree_object_to_string@LIBOSTREE_2016.3 2016.4 + ostree_object_type_from_string@LIBOSTREE_2016.3 2016.4 + ostree_object_type_to_string@LIBOSTREE_2016.3 2016.4 + ostree_parse_refspec@LIBOSTREE_2016.3 2016.4 + ostree_raw_file_to_archive_z2_stream@LIBOSTREE_2016.6 2016.6 + ostree_raw_file_to_archive_z2_stream_with_options@LIBOSTREE_2017.3 2017.3 + ostree_raw_file_to_content_stream@LIBOSTREE_2016.3 2016.4 + ostree_repo_abort_transaction@LIBOSTREE_2016.3 2016.4 + ostree_repo_add_gpg_signature_summary@LIBOSTREE_2016.3 2016.4 + ostree_repo_append_gpg_signature@LIBOSTREE_2016.3 2016.4 + ostree_repo_checkout_at@LIBOSTREE_2016.8 2016.8 + ostree_repo_checkout_gc@LIBOSTREE_2016.3 2016.4 + ostree_repo_checkout_tree@LIBOSTREE_2016.3 2016.4 + ostree_repo_checkout_tree_at@LIBOSTREE_2016.3 2016.4 + ostree_repo_commit_modifier_get_type@LIBOSTREE_2016.3 2016.4 + ostree_repo_commit_modifier_new@LIBOSTREE_2016.3 2016.4 + ostree_repo_commit_modifier_ref@LIBOSTREE_2016.3 2016.4 + ostree_repo_commit_modifier_set_devino_cache@LIBOSTREE_2016.3 2016.4 + ostree_repo_commit_modifier_set_sepolicy@LIBOSTREE_2016.3 2016.4 + ostree_repo_commit_modifier_set_xattr_callback@LIBOSTREE_2016.3 2016.4 + ostree_repo_commit_modifier_unref@LIBOSTREE_2016.3 2016.4 + ostree_repo_commit_transaction@LIBOSTREE_2016.3 2016.4 + ostree_repo_commit_traverse_iter_cleanup@LIBOSTREE_2016.3 2016.4 + ostree_repo_commit_traverse_iter_clear@LIBOSTREE_2016.3 2016.4 + ostree_repo_commit_traverse_iter_get_dir@LIBOSTREE_2016.3 2016.4 + ostree_repo_commit_traverse_iter_get_file@LIBOSTREE_2016.3 2016.4 + ostree_repo_commit_traverse_iter_init_commit@LIBOSTREE_2016.3 2016.4 + ostree_repo_commit_traverse_iter_init_dirtree@LIBOSTREE_2016.3 2016.4 + ostree_repo_commit_traverse_iter_next@LIBOSTREE_2016.3 2016.4 + ostree_repo_copy_config@LIBOSTREE_2016.3 2016.4 + ostree_repo_create@LIBOSTREE_2016.3 2016.4 + ostree_repo_create_at@LIBOSTREE_2017.10 2017.10 + ostree_repo_delete_object@LIBOSTREE_2016.3 2016.4 + ostree_repo_devino_cache_get_type@LIBOSTREE_2016.3 2016.4 + ostree_repo_devino_cache_new@LIBOSTREE_2016.3 2016.4 + ostree_repo_devino_cache_ref@LIBOSTREE_2016.3 2016.4 + ostree_repo_devino_cache_unref@LIBOSTREE_2016.3 2016.4 + ostree_repo_equal@LIBOSTREE_2017.12 2017.12 + ostree_repo_export_tree_to_archive@LIBOSTREE_2016.3 2016.3 + ostree_repo_file_ensure_resolved@LIBOSTREE_2016.3 2016.4 + ostree_repo_file_get_checksum@LIBOSTREE_2016.3 2016.4 + ostree_repo_file_get_repo@LIBOSTREE_2016.3 2016.4 + ostree_repo_file_get_root@LIBOSTREE_2016.3 2016.4 + ostree_repo_file_get_type@LIBOSTREE_2016.3 2016.4 + ostree_repo_file_get_xattrs@LIBOSTREE_2016.3 2016.4 + ostree_repo_file_tree_find_child@LIBOSTREE_2016.3 2016.4 + ostree_repo_file_tree_get_contents@LIBOSTREE_2016.3 2016.4 + ostree_repo_file_tree_get_contents_checksum@LIBOSTREE_2016.3 2016.4 + ostree_repo_file_tree_get_metadata@LIBOSTREE_2016.3 2016.4 + ostree_repo_file_tree_get_metadata_checksum@LIBOSTREE_2016.3 2016.4 + ostree_repo_file_tree_query_child@LIBOSTREE_2016.3 2016.4 + ostree_repo_file_tree_set_metadata@LIBOSTREE_2016.3 2016.4 + ostree_repo_get_config@LIBOSTREE_2016.3 2016.4 + ostree_repo_get_dfd@LIBOSTREE_2016.4 2016.4 + ostree_repo_get_disable_fsync@LIBOSTREE_2016.3 2016.3 + ostree_repo_get_mode@LIBOSTREE_2016.3 2016.4 + ostree_repo_get_parent@LIBOSTREE_2016.3 2016.4 + ostree_repo_get_path@LIBOSTREE_2016.3 2016.4 + ostree_repo_get_remote_boolean_option@LIBOSTREE_2016.5 2016.5 + ostree_repo_get_remote_list_option@LIBOSTREE_2016.5 2016.5 + ostree_repo_get_remote_option@LIBOSTREE_2016.5 2016.5 + ostree_repo_get_type@LIBOSTREE_2016.3 2016.4 + ostree_repo_gpg_verify_data@LIBOSTREE_2016.6 2016.6 + ostree_repo_has_object@LIBOSTREE_2016.3 2016.4 + ostree_repo_hash@LIBOSTREE_2017.12 2017.12 + ostree_repo_import_archive_to_mtree@LIBOSTREE_2016.3 2016.3 + ostree_repo_import_object_from@LIBOSTREE_2016.3 2016.4 + ostree_repo_import_object_from_with_trust@LIBOSTREE_2016.5 2016.5 + ostree_repo_is_system@LIBOSTREE_2016.3 2016.4 + ostree_repo_is_writable@LIBOSTREE_2016.3 2016.4 + ostree_repo_list_commit_objects_starting_with@LIBOSTREE_2016.3 2016.4 + ostree_repo_list_objects@LIBOSTREE_2016.3 2016.4 + ostree_repo_list_refs@LIBOSTREE_2016.3 2016.4 + ostree_repo_list_refs_ext@LIBOSTREE_2016.4 2016.4 + ostree_repo_list_static_delta_names@LIBOSTREE_2016.3 2016.4 + ostree_repo_load_commit@LIBOSTREE_2016.3 2016.4 + ostree_repo_load_file@LIBOSTREE_2016.3 2016.4 + ostree_repo_load_object_stream@LIBOSTREE_2016.3 2016.4 + ostree_repo_load_variant@LIBOSTREE_2016.3 2016.4 + ostree_repo_load_variant_if_exists@LIBOSTREE_2016.3 2016.4 + ostree_repo_mode_from_string@LIBOSTREE_2016.3 2016.4 + ostree_repo_new@LIBOSTREE_2016.3 2016.4 + ostree_repo_new_default@LIBOSTREE_2016.3 2016.4 + ostree_repo_new_for_sysroot_path@LIBOSTREE_2016.3 2016.4 + ostree_repo_open@LIBOSTREE_2016.3 2016.4 + ostree_repo_open_at@LIBOSTREE_2017.10 2017.10 + ostree_repo_prepare_transaction@LIBOSTREE_2016.3 2016.4 + ostree_repo_prune@LIBOSTREE_2016.3 2016.4 + ostree_repo_prune_from_reachable@LIBOSTREE_2017.1 2017.1 + ostree_repo_prune_static_deltas@LIBOSTREE_2016.3 2016.4 + ostree_repo_pull@LIBOSTREE_2016.3 2016.4 + ostree_repo_pull_default_console_progress_changed@LIBOSTREE_2016.3 2016.4 + ostree_repo_pull_one_dir@LIBOSTREE_2016.3 2016.4 + ostree_repo_pull_with_options@LIBOSTREE_2016.3 2016.4 + ostree_repo_query_object_storage_size@LIBOSTREE_2016.3 2016.4 + ostree_repo_read_commit@LIBOSTREE_2016.3 2016.4 + ostree_repo_read_commit_detached_metadata@LIBOSTREE_2016.3 2016.4 + ostree_repo_regenerate_summary@LIBOSTREE_2016.3 2016.4 + ostree_repo_reload_config@LIBOSTREE_2017.2 2017.2 + ostree_repo_remote_add@LIBOSTREE_2016.3 2016.4 + ostree_repo_remote_change@LIBOSTREE_2016.3 2016.4 + ostree_repo_remote_delete@LIBOSTREE_2016.3 2016.4 + ostree_repo_remote_fetch_summary@LIBOSTREE_2016.3 2016.4 + ostree_repo_remote_fetch_summary_with_options@LIBOSTREE_2016.6 2016.6 + ostree_repo_remote_get_gpg_verify@LIBOSTREE_2016.3 2016.4 + ostree_repo_remote_get_gpg_verify_summary@LIBOSTREE_2016.3 2016.4 + ostree_repo_remote_get_url@LIBOSTREE_2016.3 2016.4 + ostree_repo_remote_gpg_import@LIBOSTREE_2016.3 2016.4 + ostree_repo_remote_list@LIBOSTREE_2016.3 2016.4 + ostree_repo_remote_list_refs@LIBOSTREE_2016.3 2016.4 + ostree_repo_resolve_rev@LIBOSTREE_2016.3 2016.4 + ostree_repo_resolve_rev_ext@LIBOSTREE_2016.7 2016.7 + ostree_repo_scan_hardlinks@LIBOSTREE_2016.3 2016.4 + ostree_repo_set_alias_ref_immediate@LIBOSTREE_2017.10 2017.10 + ostree_repo_set_cache_dir@LIBOSTREE_2016.5 2016.5 + ostree_repo_set_disable_fsync@LIBOSTREE_2016.3 2016.4 + ostree_repo_set_ref_immediate@LIBOSTREE_2016.3 2016.4 + ostree_repo_sign_commit@LIBOSTREE_2016.3 2016.4 + ostree_repo_sign_delta@LIBOSTREE_2016.3 2016.4 + ostree_repo_static_delta_execute_offline@LIBOSTREE_2016.3 2016.4 + ostree_repo_static_delta_generate@LIBOSTREE_2016.3 2016.4 + ostree_repo_transaction_set_ref@LIBOSTREE_2016.3 2016.4 + ostree_repo_transaction_set_refspec@LIBOSTREE_2016.3 2016.4 + ostree_repo_transaction_stats_get_type@LIBOSTREE_2016.3 2016.4 + ostree_repo_traverse_commit@LIBOSTREE_2016.3 2016.4 + ostree_repo_traverse_commit_union@LIBOSTREE_2016.3 2016.4 + ostree_repo_traverse_new_reachable@LIBOSTREE_2016.3 2016.4 + ostree_repo_verify_commit@LIBOSTREE_2016.3 2016.4 + ostree_repo_verify_commit_ext@LIBOSTREE_2016.3 2016.4 + ostree_repo_verify_commit_for_remote@LIBOSTREE_2016.14 2016.14 + ostree_repo_verify_summary@LIBOSTREE_2016.3 2016.4 + ostree_repo_write_archive_to_mtree@LIBOSTREE_2016.3 2016.4 + ostree_repo_write_commit@LIBOSTREE_2016.3 2016.4 + ostree_repo_write_commit_detached_metadata@LIBOSTREE_2016.3 2016.4 + ostree_repo_write_commit_with_time@LIBOSTREE_2016.3 2016.4 + ostree_repo_write_config@LIBOSTREE_2016.3 2016.4 + ostree_repo_write_content@LIBOSTREE_2016.3 2016.4 + ostree_repo_write_content_async@LIBOSTREE_2016.3 2016.4 + ostree_repo_write_content_finish@LIBOSTREE_2016.3 2016.4 + ostree_repo_write_content_trusted@LIBOSTREE_2016.3 2016.4 + ostree_repo_write_dfd_to_mtree@LIBOSTREE_2016.3 2016.4 + ostree_repo_write_directory_to_mtree@LIBOSTREE_2016.3 2016.4 + ostree_repo_write_metadata@LIBOSTREE_2016.3 2016.4 + ostree_repo_write_metadata_async@LIBOSTREE_2016.3 2016.4 + ostree_repo_write_metadata_finish@LIBOSTREE_2016.3 2016.4 + ostree_repo_write_metadata_stream_trusted@LIBOSTREE_2016.3 2016.4 + ostree_repo_write_metadata_trusted@LIBOSTREE_2016.3 2016.4 + ostree_repo_write_mtree@LIBOSTREE_2016.3 2016.4 + ostree_sepolicy_fscreatecon_cleanup@LIBOSTREE_2016.3 2016.4 + ostree_sepolicy_get_csum@LIBOSTREE_2016.5 2016.5 + ostree_sepolicy_get_label@LIBOSTREE_2016.3 2016.4 + ostree_sepolicy_get_name@LIBOSTREE_2016.3 2016.4 + ostree_sepolicy_get_path@LIBOSTREE_2016.3 2016.4 + ostree_sepolicy_get_type@LIBOSTREE_2016.3 2016.4 + ostree_sepolicy_new@LIBOSTREE_2016.3 2016.4 + ostree_sepolicy_new_at@LIBOSTREE_2017.4 2017.4 + ostree_sepolicy_restorecon@LIBOSTREE_2016.3 2016.4 + ostree_sepolicy_setfscreatecon@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_cleanup@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_deploy_tree@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_deployment_set_kargs@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_deployment_set_mutable@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_deployment_unlock@LIBOSTREE_2016.4 2016.4 + ostree_sysroot_ensure_initialized@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_get_booted_deployment@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_get_bootversion@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_get_deployment_directory@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_get_deployment_dirpath@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_get_deployment_origin_path@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_get_deployments@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_get_fd@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_get_merge_deployment@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_get_path@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_get_repo@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_get_subbootversion@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_get_type@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_init_osname@LIBOSTREE_2016.4 2016.4 + ostree_sysroot_load@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_load_if_changed@LIBOSTREE_2016.4 2016.4 + ostree_sysroot_lock@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_lock_async@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_lock_finish@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_new@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_new_default@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_origin_new_from_refspec@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_prepare_cleanup@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_query_deployments_for@LIBOSTREE_2017.7 2017.7 + ostree_sysroot_repo@LIBOSTREE_2017.7 2017.7 + ostree_sysroot_simple_write_deployment@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_try_lock@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_unload@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_unlock@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_upgrader_check_timestamps@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_upgrader_deploy@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_upgrader_dup_origin@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_upgrader_flags_get_type@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_upgrader_get_origin@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_upgrader_get_origin_description@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_upgrader_get_type@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_upgrader_new@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_upgrader_new_for_os@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_upgrader_new_for_os_with_flags@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_upgrader_pull@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_upgrader_pull_one_dir@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_upgrader_set_origin@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_write_deployments@LIBOSTREE_2016.3 2016.4 + ostree_sysroot_write_deployments_with_options@LIBOSTREE_2017.4 2017.4 + ostree_sysroot_write_origin_file@LIBOSTREE_2016.3 2016.4 + ostree_validate_checksum_string@LIBOSTREE_2016.3 2016.4 + ostree_validate_remote_name@LIBOSTREE_2017.8 2017.8 + ostree_validate_rev@LIBOSTREE_2016.3 2016.4 + ostree_validate_structureof_checksum_string@LIBOSTREE_2016.3 2016.4 + ostree_validate_structureof_commit@LIBOSTREE_2016.3 2016.4 + ostree_validate_structureof_csum_v@LIBOSTREE_2016.3 2016.4 + ostree_validate_structureof_dirmeta@LIBOSTREE_2016.3 2016.4 + ostree_validate_structureof_dirtree@LIBOSTREE_2016.3 2016.4 + ostree_validate_structureof_file_mode@LIBOSTREE_2016.3 2016.4 + ostree_validate_structureof_objtype@LIBOSTREE_2016.3 2016.4 diff --git a/libostree-dev.install b/libostree-dev.install new file mode 100644 index 00000000..3700ef29 --- /dev/null +++ b/libostree-dev.install @@ -0,0 +1,4 @@ +usr/include/* +usr/lib/*/libostree-1.so +usr/lib/*/pkgconfig +usr/share/gir-1.0/OSTree-1.0.gir diff --git a/libostree-doc.install b/libostree-doc.install new file mode 100644 index 00000000..95af827a --- /dev/null +++ b/libostree-doc.install @@ -0,0 +1 @@ +usr/share/gtk-doc diff --git a/ostree-boot.README.Debian b/ostree-boot.README.Debian new file mode 100644 index 00000000..f156b6a7 --- /dev/null +++ b/ostree-boot.README.Debian @@ -0,0 +1,10 @@ +This package contains configuration snippets for using ostree with GRUB 2. +This integration currently has some limitations: + + - the initramfs must have been made using dracut + - the root filesystem must be one that dracut can mount without a root= + command-line argument (an EFI partition with the GUID defined in + the Discoverable Partitions specification[1]) + - /boot must be a separate partition + +[1] https://www.freedesktop.org/wiki/Specifications/DiscoverablePartitionsSpec/ diff --git a/ostree-boot.control b/ostree-boot.control new file mode 100644 index 00000000..8d51a694 --- /dev/null +++ b/ostree-boot.control @@ -0,0 +1,33 @@ +Package: ostree-boot +Architecture: linux-any +Depends: + dracut, + ostree (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Recommends: + grub-efi-amd64 | grub-pc | extlinux | syslinux | u-boot, +Breaks: + ostree (<< ${binary:Version}), + ostree-grub2 (<< ${binary:Version}), +Replaces: + ostree (<< ${binary:Version}), + ostree-grub2 (<< ${binary:Version}), +Provides: + ostree-grub2 (= ${binary:Version}), +Description: libostree boot loader and initramfs integration + libostree provides a library and tools for managing bootable, immutable, + versioned filesystem trees. See the ostree package's description for + more details. + . + This package contains configuration snippets and executables needed to + boot a Debian derivative from a libostree filesystem deployment. This + integration currently has some limitations: + . + - the initramfs must have been made using dracut + - the root filesystem must be one that dracut can mount without a root= + command-line argument (an EFI partition with the GUID defined in + the Discoverable Partitions specification) + - /boot must be a separate partition + - the boot loader must be one that is supported by libostree, currently + GNU GRUB 2, syslinux/extlinux or Das U-Boot diff --git a/ostree-boot.install b/ostree-boot.install new file mode 100644 index 00000000..097a2627 --- /dev/null +++ b/ostree-boot.install @@ -0,0 +1,10 @@ +etc/dracut.conf.d/ostree.conf +etc/grub.d/15_ostree +lib/systemd/system-generators/ostree-system-generator +lib/systemd/system/ostree-prepare-root.service +lib/systemd/system/ostree-remount.service +usr/lib/dracut/modules.d/98ostree +usr/lib/libostree/grub2-15_ostree +usr/lib/ostree/ostree-prepare-root +usr/lib/ostree/ostree-remount +usr/lib/tmpfiles.d/ostree-tmpfiles.conf diff --git a/ostree-tests.install b/ostree-tests.install new file mode 100644 index 00000000..47ef1484 --- /dev/null +++ b/ostree-tests.install @@ -0,0 +1,3 @@ +usr/lib/installed-tests/libostree +usr/lib/libostree/ostree-trivial-httpd +usr/share/installed-tests/libostree diff --git a/ostree-tests.lintian-overrides b/ostree-tests.lintian-overrides new file mode 100644 index 00000000..2766ed7b --- /dev/null +++ b/ostree-tests.lintian-overrides @@ -0,0 +1,10 @@ +# This is deliberate: it's just some random signed file to be verified, and +# upstream happens to have used the text of the LGPL as the signed file +ostree-tests: extra-license-file usr/lib/installed-tests/libostree/gpg-verify-data/lgpl2 +ostree-tests: extra-license-file usr/lib/installed-tests/libostree/gpg-verify-data/lgpl2.sig + +# This is deliberate, working around the assumption of recursive make +ostree-tests: symlink-is-self-recursive usr/lib/installed-tests/libostree/tests . + +# We won't run this on sparc64 currently +[sparc64]: missing-dep-for-interpreter gjs => gjs (usr/lib/installed-tests/libostree/corrupt-repo-ref.js) diff --git a/ostree.install b/ostree.install new file mode 100755 index 00000000..c686947f --- /dev/null +++ b/ostree.install @@ -0,0 +1,8 @@ +#!/usr/bin/dh-exec + +etc/ostree +usr/bin/ostree +usr/bin/rofiles-fuse +usr/share/bash-completion/completions/ostree +usr/share/man +usr/share/ostree/trusted.gpg.d diff --git a/ostree.maintscript b/ostree.maintscript new file mode 100644 index 00000000..5b1850ba --- /dev/null +++ b/ostree.maintscript @@ -0,0 +1,2 @@ +rm_conffile /etc/dracut.conf.d/ostree.conf 2017.3-2~ ostree +rm_conffile /etc/grub.d/15_ostree 2017.3-2~ ostree diff --git a/patches/2017.13/Cope-with-xattr-syscalls-raising-EOPNOTSUPP.patch b/patches/2017.13/Cope-with-xattr-syscalls-raising-EOPNOTSUPP.patch new file mode 100644 index 00000000..76583ed6 --- /dev/null +++ b/patches/2017.13/Cope-with-xattr-syscalls-raising-EOPNOTSUPP.patch @@ -0,0 +1,66 @@ +From: Simon McVittie +Date: Mon, 16 Oct 2017 12:51:04 +0100 +Subject: Cope with xattr syscalls raising EOPNOTSUPP + +ENOTSUP and EOPNOTSUPP are numerically equal on most Linux ports, +but inexplicably differ on PA-RISC (hppa) and possibly other +rare architectures. + +Signed-off-by: Simon McVittie + +Closes: #1275 +Approved by: cgwalters +Applied-upstream: 2017.13, commit:a4723dafed722008ed1ee3c952b7ff8e3d9b9a45 +--- + src/ostree/ot-builtin-create-usb.c | 2 +- + tests/libostreetest.c | 10 ++++++---- + 2 files changed, 7 insertions(+), 5 deletions(-) + +diff --git a/src/ostree/ot-builtin-create-usb.c b/src/ostree/ot-builtin-create-usb.c +index c77dbcb..742a6c2 100644 +--- a/src/ostree/ot-builtin-create-usb.c ++++ b/src/ostree/ot-builtin-create-usb.c +@@ -113,7 +113,7 @@ ostree_builtin_create_usb (int argc, + OstreeRepoMode mode = OSTREE_REPO_MODE_BARE_USER; + + if (TEMP_FAILURE_RETRY (fgetxattr (mount_root_dfd, "user.test", NULL, 0)) < 0 && +- errno == ENOTSUP) ++ (errno == ENOTSUP || errno == EOPNOTSUPP)) + mode = OSTREE_REPO_MODE_ARCHIVE; + + g_debug ("%s: Creating repository in mode %u", G_STRFUNC, mode); +diff --git a/tests/libostreetest.c b/tests/libostreetest.c +index 496ff74..11949c9 100644 +--- a/tests/libostreetest.c ++++ b/tests/libostreetest.c +@@ -85,8 +85,10 @@ ot_check_relabeling (gboolean *can_relabel, + g_autoptr(GBytes) bytes = glnx_fgetxattr_bytes (tmpf.fd, "security.selinux", &local_error); + if (!bytes) + { +- /* libglnx preserves errno */ +- if (G_IN_SET (errno, ENOTSUP, ENODATA)) ++ /* libglnx preserves errno. The EOPNOTSUPP case can't be part of a ++ * 'case' statement because on most but not all architectures, ++ * it's numerically equal to ENOTSUP. */ ++ if (G_IN_SET (errno, ENOTSUP, ENODATA) || errno == EOPNOTSUPP) + { + *can_relabel = FALSE; + return TRUE; +@@ -99,7 +101,7 @@ ot_check_relabeling (gboolean *can_relabel, + const guint8 *data = g_bytes_get_data (bytes, &data_len); + if (fsetxattr (tmpf.fd, "security.selinux", data, data_len, 0) < 0) + { +- if (errno == ENOTSUP) ++ if (errno == ENOTSUP || errno == EOPNOTSUPP) + { + *can_relabel = FALSE; + return TRUE; +@@ -122,7 +124,7 @@ ot_check_user_xattrs (gboolean *has_user_xattrs, + + if (fsetxattr (tmpf.fd, "user.test", "novalue", strlen ("novalue"), 0) < 0) + { +- if (errno == ENOTSUP) ++ if (errno == ENOTSUP || errno == EOPNOTSUPP) + { + *has_user_xattrs = FALSE; + return TRUE; diff --git a/patches/2017.13/fdio-allow-NULL-for-fstatat_allow_noent-stbuf.patch b/patches/2017.13/fdio-allow-NULL-for-fstatat_allow_noent-stbuf.patch new file mode 100644 index 00000000..2de015c8 --- /dev/null +++ b/patches/2017.13/fdio-allow-NULL-for-fstatat_allow_noent-stbuf.patch @@ -0,0 +1,60 @@ +From: Jonathan Lebon +Date: Fri, 6 Oct 2017 21:26:41 +0000 +Subject: 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. + +Origin: upstream (submodule libglnx), 2017.13, commit:5362f6bc3ff3e30f379e767b203d15c9e56d6f08 +--- + libglnx/glnx-fdio.h | 5 +++-- + libglnx/tests/test-libglnx-fdio.c | 10 ++++++++++ + 2 files changed, 13 insertions(+), 2 deletions(-) + +diff --git a/libglnx/glnx-fdio.h b/libglnx/glnx-fdio.h +index 518135c..1aa0c43 100644 +--- a/libglnx/glnx-fdio.h ++++ b/libglnx/glnx-fdio.h +@@ -299,7 +299,7 @@ glnx_fstatat (int dfd, + * glnx_fstatat_allow_noent: + * @dfd: Directory FD to stat beneath + * @path: Path to stat beneath @dfd +- * @buf: (out caller-allocates): Return location for stat details ++ * @buf: (out caller-allocates) (allow-none): Return location for stat details + * @flags: Flags to pass to fstatat() + * @error: Return location for a #GError, or %NULL + * +@@ -318,7 +318,8 @@ glnx_fstatat_allow_noent (int dfd, + int flags, + GError **error) + { +- if (TEMP_FAILURE_RETRY (fstatat (dfd, path, out_buf, flags)) != 0) ++ struct stat stbuf; ++ if (TEMP_FAILURE_RETRY (fstatat (dfd, path, out_buf ?: &stbuf, flags)) != 0) + { + if (errno != ENOENT) + { +diff --git a/libglnx/tests/test-libglnx-fdio.c b/libglnx/tests/test-libglnx-fdio.c +index bf973b9..350294c 100644 +--- a/libglnx/tests/test-libglnx-fdio.c ++++ b/libglnx/tests/test-libglnx-fdio.c +@@ -161,6 +161,16 @@ test_fstatat (void) + return; + g_assert_cmpint (errno, ==, ENOENT); + g_assert_no_error (local_error); ++ ++ /* test NULL parameter for stat */ ++ if (!glnx_fstatat_allow_noent (AT_FDCWD, ".", NULL, 0, error)) ++ return; ++ g_assert_cmpint (errno, ==, 0); ++ g_assert_no_error (local_error); ++ if (!glnx_fstatat_allow_noent (AT_FDCWD, "nosuchfile", NULL, 0, error)) ++ return; ++ g_assert_cmpint (errno, ==, ENOENT); ++ g_assert_no_error (local_error); + } + + static void diff --git a/patches/2017.13/lib-core-Init-struct-stat-buffer.patch b/patches/2017.13/lib-core-Init-struct-stat-buffer.patch new file mode 100644 index 00000000..57413bcb --- /dev/null +++ b/patches/2017.13/lib-core-Init-struct-stat-buffer.patch @@ -0,0 +1,34 @@ +From: Colin Walters +Date: Wed, 4 Oct 2017 10:22:05 -0400 +Subject: lib/core: Init struct stat buffer + +Regression from d57410a7e62dcb89321807dcb2d91c85f9d26df7 + +Fixes Coverity CID #1457316 + +Closes: #1249 +Approved by: jlebon +Origin: upstream, 2017.13, commit:e80efe0b0668a351361bb0a218a809434dd33d63 +--- + src/libostree/ostree-core.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/src/libostree/ostree-core.c b/src/libostree/ostree-core.c +index 08c2892..7fa051f 100644 +--- a/src/libostree/ostree-core.c ++++ b/src/libostree/ostree-core.c +@@ -1614,10 +1614,13 @@ _ostree_gfileinfo_equal (GFileInfo *a, GFileInfo *b) + return TRUE; + } + ++/* Many parts of libostree only care about mode,uid,gid - this creates ++ * a new GFileInfo with those fields see. ++ */ + GFileInfo * + _ostree_mode_uidgid_to_gfileinfo (mode_t mode, uid_t uid, gid_t gid) + { +- struct stat stbuf; ++ struct stat stbuf = { 0, }; + stbuf.st_mode = mode; + stbuf.st_uid = uid; + stbuf.st_gid = gid; diff --git a/patches/2017.13/lib-deltas-Check-cancellable-during-processing.patch b/patches/2017.13/lib-deltas-Check-cancellable-during-processing.patch new file mode 100644 index 00000000..128f6cd2 --- /dev/null +++ b/patches/2017.13/lib-deltas-Check-cancellable-during-processing.patch @@ -0,0 +1,28 @@ +From: Colin Walters +Date: Thu, 12 Oct 2017 10:46:25 -0400 +Subject: lib/deltas: Check cancellable during processing + +Let's react to `Ctrl-C` faster here. Noticed while I was doing an update on my +desktop and playing with cancellation. + +Closes: #1266 +Approved by: jlebon +Origin: upstream, 2017.13, commit:a1986b1a8083ef4f840973f1c73d932a52e43644 +--- + src/libostree/ostree-repo-static-delta-processing.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/libostree/ostree-repo-static-delta-processing.c b/src/libostree/ostree-repo-static-delta-processing.c +index 844de2c..78bf7e1 100644 +--- a/src/libostree/ostree-repo-static-delta-processing.c ++++ b/src/libostree/ostree-repo-static-delta-processing.c +@@ -229,6 +229,9 @@ _ostree_static_delta_part_execute (OstreeRepo *repo, + state->oplen--; + state->opdata++; + ++ if (g_cancellable_set_error_if_cancelled (cancellable, error)) ++ goto out; ++ + switch (opcode) + { + case OSTREE_STATIC_DELTA_OP_OPEN_SPLICE_AND_CLOSE: diff --git a/patches/2017.13/lib-deploy-Ignore-FIFREEZE-FITHAW-errors-when-already-in-.patch b/patches/2017.13/lib-deploy-Ignore-FIFREEZE-FITHAW-errors-when-already-in-.patch new file mode 100644 index 00000000..d8b634cb --- /dev/null +++ b/patches/2017.13/lib-deploy-Ignore-FIFREEZE-FITHAW-errors-when-already-in-.patch @@ -0,0 +1,60 @@ +From: Dan Nicholson +Date: Wed, 11 Oct 2017 14:03:10 +0000 +Subject: 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. + +Closes: #1260 +Approved by: cgwalters +Origin: upstream, 2017.13, commit:a5b7660c940a200adac1a7d217e4a1cd72719021 +--- + src/libostree/ostree-sysroot-deploy.c | 16 +++++++++++++--- + 1 file changed, 13 insertions(+), 3 deletions(-) + +diff --git a/src/libostree/ostree-sysroot-deploy.c b/src/libostree/ostree-sysroot-deploy.c +index a89711f..e37db39 100644 +--- a/src/libostree/ostree-sysroot-deploy.c ++++ b/src/libostree/ostree-sysroot-deploy.c +@@ -1321,11 +1321,15 @@ fsfreeze_thaw_cycle (OstreeSysroot *self, + /* Do a freeze/thaw cycle; TODO add a FIFREEZETHAW ioctl */ + if (ioctl (rootfs_dfd, FIFREEZE, 0) != 0) + { +- /* Not supported, or we're running in the unit tests (as non-root)? ++ /* Not supported, we're running in the unit tests (as non-root), or ++ * the filesystem is already frozen (EBUSY). + * OK, let's just do a syncfs. + */ +- if (G_IN_SET (errno, EOPNOTSUPP, EPERM)) ++ if (G_IN_SET (errno, EOPNOTSUPP, EPERM, EBUSY)) + { ++ /* Warn if the filesystem was already frozen */ ++ if (errno == EBUSY) ++ g_debug ("Filesystem already frozen, falling back to syncfs"); + if (TEMP_FAILURE_RETRY (syncfs (rootfs_dfd)) != 0) + return glnx_throw_errno_prefix (error, "syncfs"); + /* Write the completion, and return */ +@@ -1338,7 +1342,13 @@ fsfreeze_thaw_cycle (OstreeSysroot *self, + } + /* And finally thaw, then signal our completion to the watchdog */ + if (TEMP_FAILURE_RETRY (ioctl (rootfs_dfd, FITHAW, 0)) != 0) +- return glnx_throw_errno_prefix (error, "ioctl(FITHAW)"); ++ { ++ /* Warn but don't error if the filesystem was already thawed */ ++ if (errno == EINVAL) ++ g_debug ("Filesystem already thawed"); ++ else ++ return glnx_throw_errno_prefix (error, "ioctl(FITHAW)"); ++ } + if (write (sock_parent, &c, sizeof (c)) != sizeof (c)) + return glnx_throw_errno_prefix (error, "write(watchdog FITHAW complete)"); + } diff --git a/patches/2017.13/lib-deploy-Use-_exit-for-FIFREEZE-watchdog.patch b/patches/2017.13/lib-deploy-Use-_exit-for-FIFREEZE-watchdog.patch new file mode 100644 index 00000000..e2a6319c --- /dev/null +++ b/patches/2017.13/lib-deploy-Use-_exit-for-FIFREEZE-watchdog.patch @@ -0,0 +1,35 @@ +From: Colin Walters +Date: Wed, 11 Oct 2017 17:02:02 -0400 +Subject: 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. + +Closes: https://github.com/ostreedev/ostree/issues/1262 + +Closes: #1264 +Approved by: dbnicholson +Origin: upstream, 2017.13, commit:8f6ec62bfb149ec8dfb6076228dd64e5df27a76b +--- + src/libostree/ostree-sysroot-deploy.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/src/libostree/ostree-sysroot-deploy.c b/src/libostree/ostree-sysroot-deploy.c +index e37db39..d46d5c3 100644 +--- a/src/libostree/ostree-sysroot-deploy.c ++++ b/src/libostree/ostree-sysroot-deploy.c +@@ -1291,7 +1291,12 @@ fsfreeze_thaw_cycle (OstreeSysroot *self, + } + if (debug_fifreeze) + g_printerr ("fifreeze watchdog was run\n"); +- exit (EXIT_SUCCESS); ++ /* We use _exit() rather than exit() to avoid tripping over any shared ++ * libraries in process that aren't fork() safe; for example gjs/spidermonkey: ++ * https://github.com/ostreedev/ostree/issues/1262 ++ * This doesn't help for the err()/errx() calls above, but eh... ++ */ ++ _exit (EXIT_SUCCESS); + } + else /* Parent process. */ + { diff --git a/patches/2017.13/lib-pull-Fix-regression-with-pull-local-for-nonexistent-r.patch b/patches/2017.13/lib-pull-Fix-regression-with-pull-local-for-nonexistent-r.patch new file mode 100644 index 00000000..5e66dd93 --- /dev/null +++ b/patches/2017.13/lib-pull-Fix-regression-with-pull-local-for-nonexistent-r.patch @@ -0,0 +1,90 @@ +From: Colin Walters +Date: Mon, 2 Oct 2017 11:24:05 -0400 +Subject: 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. + +Closes: #1238 +Approved by: pwithnall +Origin: upstream, 2017.13, commit:b8c15ae859de7a353b99c98c6266ee626cd94e7e +--- + src/libostree/ostree-repo-pull.c | 13 ++++++------- + tests/pull-test.sh | 10 +++++++++- + 2 files changed, 15 insertions(+), 8 deletions(-) + +diff --git a/src/libostree/ostree-repo-pull.c b/src/libostree/ostree-repo-pull.c +index 8a699ca..d5062e0 100644 +--- a/src/libostree/ostree-repo-pull.c ++++ b/src/libostree/ostree-repo-pull.c +@@ -844,7 +844,7 @@ fetch_ref_contents (OtPullData *pull_data, + { + #ifdef OSTREE_ENABLE_EXPERIMENTAL_API + if (!ostree_repo_resolve_collection_ref (pull_data->remote_repo_local, +- ref, TRUE /* ignore enoent */, ++ ref, FALSE, + OSTREE_REPO_RESOLVE_REV_EXT_NONE, + &ret_contents, cancellable, error)) + return FALSE; +@@ -855,7 +855,7 @@ fetch_ref_contents (OtPullData *pull_data, + else if (pull_data->remote_repo_local != NULL) + { + if (!ostree_repo_resolve_rev_ext (pull_data->remote_repo_local, +- ref->ref_name, TRUE /* ignore enoent */, ++ ref->ref_name, FALSE, + OSTREE_REPO_RESOLVE_REV_EXT_NONE, + &ret_contents, error)) + return FALSE; +@@ -874,14 +874,13 @@ fetch_ref_contents (OtPullData *pull_data, + filename, &ret_contents, + cancellable, error)) + return FALSE; ++ ++ g_strchomp (ret_contents); + } + +- /* Validate and return. */ +- if (ret_contents != NULL) +- g_strchomp (ret_contents); ++ g_assert (ret_contents); + +- if (ret_contents == NULL || +- !ostree_validate_checksum_string (ret_contents, error)) ++ if (!ostree_validate_checksum_string (ret_contents, error)) + return glnx_prefix_error (error, "Fetching checksum for ref (%s, %s)", + ref->collection_id ? ref->collection_id : "(empty)", + ref->ref_name); +diff --git a/tests/pull-test.sh b/tests/pull-test.sh +index 7d4b57f..2afc0ac 100644 +--- a/tests/pull-test.sh ++++ b/tests/pull-test.sh +@@ -35,7 +35,7 @@ function verify_initial_contents() { + assert_file_has_content baz/cow '^moo$' + } + +-echo "1..31" ++echo "1..32" + + # Try both syntaxes + repo_init --no-gpg-verify +@@ -238,6 +238,14 @@ ${CMD_PREFIX} ostree --repo=mirrorrepo-local rev-parse localbranch + ${CMD_PREFIX} ostree --repo=mirrorrepo-local fsck + echo "ok pull-local mirror errors with mixed refs" + ++rm -f otherrepo/summary ++if ${CMD_PREFIX} ostree --repo=mirrorrepo-local pull-local otherrepo nosuchbranch 2>err.txt; then ++ fatal "pulled nonexistent branch" ++fi ++# So true ++assert_file_has_content_literal err.txt "error: Refspec 'nosuchbranch' not found" ++echo "ok pull-local nonexistent branch" ++ + cd ${test_tmpdir} + ${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo commit -b main -s "Metadata string" --add-detached-metadata-string=SIGNATURE=HANCOCK --tree=ref=main + ${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo summary -u diff --git a/patches/2017.13/lib-repo-Fix-loading-commitstate-with-parent-repos.patch b/patches/2017.13/lib-repo-Fix-loading-commitstate-with-parent-repos.patch new file mode 100644 index 00000000..b8812480 --- /dev/null +++ b/patches/2017.13/lib-repo-Fix-loading-commitstate-with-parent-repos.patch @@ -0,0 +1,125 @@ +From: Colin Walters +Date: Wed, 25 Oct 2017 13:13:17 -0400 +Subject: 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. + +Closes: https://github.com/ostreedev/ostree/issues/1306 + +Closes: #1308 +Approved by: alexlarsson +Origin: upstream, 2017.13, commit:90ebd48f6aaf45c47b48c44354359f973dcf22a8 +--- + src/libostree/ostree-repo.c | 52 +++++++++++++++++++-------------------------- + 1 file changed, 22 insertions(+), 30 deletions(-) + +diff --git a/src/libostree/ostree-repo.c b/src/libostree/ostree-repo.c +index 0632ee2..eac5610 100644 +--- a/src/libostree/ostree-repo.c ++++ b/src/libostree/ostree-repo.c +@@ -2807,6 +2807,7 @@ load_metadata_internal (OstreeRepo *self, + GVariant **out_variant, + GInputStream **out_stream, + guint64 *out_size, ++ OstreeRepoCommitState *out_state, + GCancellable *cancellable, + GError **error) + { +@@ -2817,6 +2818,7 @@ load_metadata_internal (OstreeRepo *self, + g_autoptr(GVariant) ret_variant = NULL; + + g_return_val_if_fail (OSTREE_OBJECT_TYPE_IS_META (objtype), FALSE); ++ g_return_val_if_fail (objtype == OSTREE_OBJECT_TYPE_COMMIT || out_state == NULL, FALSE); + + /* Special caching for dirmeta objects, since they're commonly referenced many + * times. +@@ -2904,11 +2906,24 @@ load_metadata_internal (OstreeRepo *self, + + if (out_size) + *out_size = stbuf.st_size; ++ ++ if (out_state) ++ { ++ g_autofree char *commitpartial_path = _ostree_get_commitpartial_path (sha256); ++ *out_state = 0; ++ ++ if (!glnx_fstatat_allow_noent (self->repo_dir_fd, commitpartial_path, NULL, 0, error)) ++ return FALSE; ++ if (errno == 0) ++ *out_state |= OSTREE_REPO_COMMIT_STATE_PARTIAL; ++ } + } + else if (self->parent_repo) + { +- if (!ostree_repo_load_variant (self->parent_repo, objtype, sha256, &ret_variant, error)) +- return FALSE; ++ /* Directly recurse to simplify out parameters */ ++ return load_metadata_internal (self->parent_repo, objtype, sha256, error_if_not_found, ++ out_variant, out_stream, out_size, out_state, ++ cancellable, error); + } + else if (error_if_not_found) + { +@@ -3220,7 +3235,7 @@ ostree_repo_load_object_stream (OstreeRepo *self, + if (OSTREE_OBJECT_TYPE_IS_META (objtype)) + { + if (!load_metadata_internal (self, objtype, checksum, TRUE, NULL, +- &ret_input, &size, ++ &ret_input, &size, NULL, + cancellable, error)) + return FALSE; + } +@@ -3516,7 +3531,7 @@ ostree_repo_load_variant_if_exists (OstreeRepo *self, + GError **error) + { + return load_metadata_internal (self, objtype, sha256, FALSE, +- out_variant, NULL, NULL, NULL, error); ++ out_variant, NULL, NULL, NULL, NULL, error); + } + + /** +@@ -3538,7 +3553,7 @@ ostree_repo_load_variant (OstreeRepo *self, + GError **error) + { + return load_metadata_internal (self, objtype, sha256, TRUE, +- out_variant, NULL, NULL, NULL, error); ++ out_variant, NULL, NULL, NULL, NULL, error); + } + + /** +@@ -3561,31 +3576,8 @@ ostree_repo_load_commit (OstreeRepo *self, + OstreeRepoCommitState *out_state, + GError **error) + { +- if (out_variant) +- { +- if (!load_metadata_internal (self, OSTREE_OBJECT_TYPE_COMMIT, checksum, TRUE, +- out_variant, NULL, NULL, NULL, error)) +- return FALSE; +- } +- +- if (out_state) +- { +- g_autofree char *commitpartial_path = _ostree_get_commitpartial_path (checksum); +- struct stat stbuf; +- +- *out_state = 0; +- +- if (fstatat (self->repo_dir_fd, commitpartial_path, &stbuf, 0) == 0) +- { +- *out_state |= OSTREE_REPO_COMMIT_STATE_PARTIAL; +- } +- else if (errno != ENOENT) +- { +- return glnx_throw_errno_prefix (error, "fstatat(%s)", commitpartial_path); +- } +- } +- +- return TRUE; ++ return load_metadata_internal (self, OSTREE_OBJECT_TYPE_COMMIT, checksum, TRUE, ++ out_variant, NULL, NULL, out_state, NULL, error); + } + + /** diff --git a/patches/2017.13/lib-repo-Properly-handle-NULL-homedir-when-signing-commit.patch b/patches/2017.13/lib-repo-Properly-handle-NULL-homedir-when-signing-commit.patch new file mode 100644 index 00000000..7358d826 --- /dev/null +++ b/patches/2017.13/lib-repo-Properly-handle-NULL-homedir-when-signing-commit.patch @@ -0,0 +1,31 @@ +From: Dan Nicholson +Date: Tue, 24 Oct 2017 19:27:17 +0000 +Subject: lib/repo: Properly handle NULL homedir when signing commit + +Without this, ostree_repo_sign_commit throws a critical message when no +homedir is provided: + +(ostree gpg-sign:5034): GLib-GIO-CRITICAL **: g_file_new_for_path: assertion 'path != NULL' failed + +Closes: #1305 +Approved by: cgwalters +Origin: upstream, 2017.13, commit:63ce86d5977ebfbedd2cdfba1e4f6bd400a3a1b8 +--- + src/libostree/ostree-repo.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/libostree/ostree-repo.c b/src/libostree/ostree-repo.c +index 1e336e9..0632ee2 100644 +--- a/src/libostree/ostree-repo.c ++++ b/src/libostree/ostree-repo.c +@@ -4119,7 +4119,9 @@ ostree_repo_sign_commit (OstreeRepo *self, + * pass the homedir so that the signing key can be imported, allowing + * subkey signatures to be recognised. */ + g_autoptr(GError) local_error = NULL; +- g_autoptr(GFile) verify_keydir = g_file_new_for_path (homedir); ++ g_autoptr(GFile) verify_keydir = NULL; ++ if (homedir != NULL) ++ verify_keydir = g_file_new_for_path (homedir); + g_autoptr(OstreeGpgVerifyResult) result + =_ostree_repo_gpg_verify_with_metadata (self, commit_data, old_metadata, + NULL, verify_keydir, NULL, diff --git a/patches/2017.13/lib-repo-commit-Import-detached-metadata-even-if-hardlink.patch b/patches/2017.13/lib-repo-commit-Import-detached-metadata-even-if-hardlink.patch new file mode 100644 index 00000000..1cded202 --- /dev/null +++ b/patches/2017.13/lib-repo-commit-Import-detached-metadata-even-if-hardlink.patch @@ -0,0 +1,30 @@ +From: Philip Withnall +Date: Tue, 3 Oct 2017 15:45:34 +0100 +Subject: 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. + +Signed-off-by: Philip Withnall + +Closes: #1242 +Approved by: cgwalters +Origin: upstream, 2017.13, commit:86e072bdbe48a4f16efb05c00eb79114e5fdbf61 +--- + src/libostree/ostree-repo-commit.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/libostree/ostree-repo-commit.c b/src/libostree/ostree-repo-commit.c +index c4484f4..76bc187 100644 +--- a/src/libostree/ostree-repo-commit.c ++++ b/src/libostree/ostree-repo-commit.c +@@ -3255,7 +3255,7 @@ import_one_object_direct (OstreeRepo *dest_repo, + if (linkat (src_repo->objects_dir_fd, loose_path_buf, dest_dfd, loose_path_buf, 0) != 0) + { + if (errno == EEXIST) +- return TRUE; ++ did_hardlink = TRUE; + else if (errno == EMLINK || errno == EXDEV || errno == EPERM) + { + /* EMLINK, EXDEV and EPERM shouldn't be fatal; we just can't do diff --git a/patches/2017.13/lib-sysroot-Fix-error-handling-when-mounting-overlayfs-fa.patch b/patches/2017.13/lib-sysroot-Fix-error-handling-when-mounting-overlayfs-fa.patch new file mode 100644 index 00000000..92b07ca3 --- /dev/null +++ b/patches/2017.13/lib-sysroot-Fix-error-handling-when-mounting-overlayfs-fa.patch @@ -0,0 +1,57 @@ +From: Colin Walters +Date: Mon, 16 Oct 2017 15:29:38 -0400 +Subject: 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. + +Closes: https://github.com/ostreedev/ostree/issues/1273 + +Closes: #1279 +Approved by: guyshapiro +Origin: upstream, 2017.13, commit:464965e6b4897f9c6d4487ca10eb5bc60ad9a670 +--- + src/libostree/ostree-sysroot.c | 13 +++++++++---- + 1 file changed, 9 insertions(+), 4 deletions(-) + +diff --git a/src/libostree/ostree-sysroot.c b/src/libostree/ostree-sysroot.c +index 2ee5eb5..16f76f7 100644 +--- a/src/libostree/ostree-sysroot.c ++++ b/src/libostree/ostree-sysroot.c +@@ -22,6 +22,7 @@ + #include "otutil.h" + #include + #include ++#include + #include + + #include "ostree.h" +@@ -1763,11 +1764,15 @@ ostree_sysroot_deployment_unlock (OstreeSysroot *self, + return glnx_throw_errno_prefix (error, "fork"); + else if (mount_child == 0) + { +- /* Child process. Do NOT use any GLib API here. */ ++ /* Child process. Do NOT use any GLib API here; it's not generally fork() safe. ++ * ++ * TODO: report errors across a pipe (or use the journal?) rather than ++ * spewing to stderr. ++ */ + if (fchdir (deployment_dfd) < 0) +- exit (EXIT_FAILURE); ++ err (1, "fchdir"); + if (mount ("overlay", "/usr", "overlay", 0, ovl_options) < 0) +- exit (EXIT_FAILURE); ++ err (1, "mount"); + exit (EXIT_SUCCESS); + } + else +@@ -1778,7 +1783,7 @@ ostree_sysroot_deployment_unlock (OstreeSysroot *self, + if (TEMP_FAILURE_RETRY (waitpid (mount_child, &estatus, 0)) < 0) + return glnx_throw_errno_prefix (error, "waitpid() on mount helper"); + if (!g_spawn_check_exit_status (estatus, error)) +- return glnx_throw_errno_prefix (error, "overlayfs mount helper"); ++ return glnx_prefix_error (error, "Failed overlayfs mount"); + } + } + diff --git a/patches/2017.13/lib-sysroot-Fix-pointer-going-out-of-scope-in-unlock-code.patch b/patches/2017.13/lib-sysroot-Fix-pointer-going-out-of-scope-in-unlock-code.patch new file mode 100644 index 00000000..8c83b46d --- /dev/null +++ b/patches/2017.13/lib-sysroot-Fix-pointer-going-out-of-scope-in-unlock-code.patch @@ -0,0 +1,33 @@ +From: Colin Walters +Date: Wed, 4 Oct 2017 10:24:21 -0400 +Subject: lib/sysroot: Fix pointer going out of scope in unlock code + +Fixes Coverity CID #1457317 + +Closes: #1249 +Approved by: jlebon +Origin: upstream, 2017.13, commit:351ffdb9778436b193ba9d2fbeebe2358e55004f +--- + src/libostree/ostree-sysroot.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/libostree/ostree-sysroot.c b/src/libostree/ostree-sysroot.c +index fe61a12..2ee5eb5 100644 +--- a/src/libostree/ostree-sysroot.c ++++ b/src/libostree/ostree-sysroot.c +@@ -1698,6 +1698,7 @@ ostree_sysroot_deployment_unlock (OstreeSysroot *self, + return FALSE; + + const char *ovl_options = NULL; ++ static const char hotfix_ovl_options[] = "lowerdir=usr,upperdir=.usr-ovl-upper,workdir=.usr-ovl-work"; + switch (unlocked_state) + { + case OSTREE_DEPLOYMENT_UNLOCKED_NONE: +@@ -1705,7 +1706,6 @@ ostree_sysroot_deployment_unlock (OstreeSysroot *self, + break; + case OSTREE_DEPLOYMENT_UNLOCKED_HOTFIX: + { +- const char hotfix_ovl_options[] = "lowerdir=usr,upperdir=.usr-ovl-upper,workdir=.usr-ovl-work"; + /* Create the overlayfs directories in the deployment root + * directly for hotfixes. The ostree-prepare-root.c helper + * is also set up to detect and mount these. diff --git a/patches/2017.13/lib-utils-Check-for-invalid-UTF-8-in-filenames.patch b/patches/2017.13/lib-utils-Check-for-invalid-UTF-8-in-filenames.patch new file mode 100644 index 00000000..a638aa1d --- /dev/null +++ b/patches/2017.13/lib-utils-Check-for-invalid-UTF-8-in-filenames.patch @@ -0,0 +1,58 @@ +From: Simon McVittie +Date: Thu, 26 Oct 2017 12:08:15 +0100 +Subject: 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. + +Closes: #1271 +Approved by: cgwalters +Origin: upstream, 2017.13, commit:2a9c5efe1d10b79681b0ee638994ead375be6597 +--- + src/libotutil/ot-unix-utils.c | 2 ++ + tests/basic-test.sh | 10 +++++++++- + 2 files changed, 11 insertions(+), 1 deletion(-) + +diff --git a/src/libotutil/ot-unix-utils.c b/src/libotutil/ot-unix-utils.c +index d6c5ee6..1446cde 100644 +--- a/src/libotutil/ot-unix-utils.c ++++ b/src/libotutil/ot-unix-utils.c +@@ -50,6 +50,8 @@ ot_util_filename_validate (const char *name, + { + return glnx_throw (error, "Invalid / in filename %s", name); + } ++ if (!g_utf8_validate (name, -1, NULL)) ++ return glnx_throw (error, "Invalid UTF-8 in filename %s", name); + return TRUE; + } + +diff --git a/tests/basic-test.sh b/tests/basic-test.sh +index a01f437..52bbe52 100644 +--- a/tests/basic-test.sh ++++ b/tests/basic-test.sh +@@ -19,7 +19,7 @@ + + set -euo pipefail + +-echo "1..$((73 + ${extra_basic_tests:-0}))" ++echo "1..$((74 + ${extra_basic_tests:-0}))" + + CHECKOUT_U_ARG="" + CHECKOUT_H_ARGS="-H" +@@ -334,6 +334,14 @@ echo "ok commit from ref with modifier" + $OSTREE commit ${COMMIT_ARGS} -b trees/test2 -s 'ref with / in it' --tree=ref=test2 + echo "ok commit ref with /" + ++mkdir badutf8 ++echo "invalid utf8 filename" > badutf8/$(printf '\x80') ++if $OSTREE commit ${COMMIT_ARGS} -b badutf8 --tree=dir=badutf8 2>err.txt; then ++ assert_not_reached "commit filename with invalid UTF-8" ++fi ++assert_file_has_content err.txt "Invalid UTF-8 in filename" ++echo "ok commit bad UTF-8" ++ + old_rev=$($OSTREE rev-parse test2) + $OSTREE ls -R -C test2 + $OSTREE commit ${COMMIT_ARGS} --skip-if-unchanged -b trees/test2 -s 'should not be committed' --tree=ref=test2 diff --git a/patches/2017.13/tests-Add-test-pull-bareuseronly.patch b/patches/2017.13/tests-Add-test-pull-bareuseronly.patch new file mode 100644 index 00000000..01413a18 --- /dev/null +++ b/patches/2017.13/tests-Add-test-pull-bareuseronly.patch @@ -0,0 +1,281 @@ +From: Colin Walters +Date: Fri, 13 Oct 2017 18:14:17 -0400 +Subject: 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. + +Closes: #1270 +Approved by: jlebon +Origin: upstream, 2017.13, commit:95afe2848d65a8062f4a76adb1ab80b6bcc4d79e +--- + Makefile-tests.am | 1 + + tests/pull-test.sh | 69 +++++++++++++++++++++++++++-------------- + tests/test-pull-bareuseronly.sh | 28 +++++++++++++++++ + 3 files changed, 75 insertions(+), 23 deletions(-) + create mode 100755 tests/test-pull-bareuseronly.sh + +diff --git a/Makefile-tests.am b/Makefile-tests.am +index 7cf2b19..42e73fa 100644 +--- a/Makefile-tests.am ++++ b/Makefile-tests.am +@@ -69,6 +69,7 @@ _installed_or_uninstalled_test_scripts = \ + tests/test-parent.sh \ + tests/test-pull-bare.sh \ + tests/test-pull-bareuser.sh \ ++ tests/test-pull-bareuseronly.sh \ + tests/test-pull-commit-only.sh \ + tests/test-pull-depth.sh \ + tests/test-pull-mirror-summary.sh \ +diff --git a/tests/pull-test.sh b/tests/pull-test.sh +index 2afc0ac..b2613fc 100644 +--- a/tests/pull-test.sh ++++ b/tests/pull-test.sh +@@ -27,9 +27,26 @@ function repo_init() { + ${CMD_PREFIX} ostree --repo=repo remote add origin $(cat httpd-address)/ostree/gnomerepo "$@" + } + ++repo_init --no-gpg-verify ++ ++# See also the copy of this in basic-test.sh ++COMMIT_ARGS="" ++CHECKOUT_U_ARG="" ++CHECKOUT_H_ARGS="-H" ++if is_bare_user_only_repo repo; then ++ COMMIT_ARGS="--canonical-permissions" ++ # Also, since we can't check out uid=0 files we need to check out in user mode ++ CHECKOUT_U_ARG="-U" ++ CHECKOUT_H_ARGS="-U -H" ++else ++ if grep -E -q '^mode=bare-user' repo/config; then ++ CHECKOUT_H_ARGS="-U -H" ++ fi ++fi ++ + function verify_initial_contents() { + rm checkout-origin-main -rf +- $OSTREE checkout origin/main checkout-origin-main ++ $OSTREE checkout ${CHECKOUT_H_ARGS} origin/main checkout-origin-main + cd checkout-origin-main + assert_file_has_content firstfile '^first$' + assert_file_has_content baz/cow '^moo$' +@@ -61,7 +78,7 @@ echo "ok pull mirror" + + mkdir otherbranch + echo someothercontent > otherbranch/someothercontent +-${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo commit -b otherbranch --tree=dir=otherbranch ++${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo commit ${COMMIT_ARGS} -b otherbranch --tree=dir=otherbranch + ${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo summary -u + rm mirrorrepo -rf + # All refs +@@ -88,9 +105,9 @@ echo "ok pull mirror (ref subset with summary)" + + cd ${test_tmpdir} + rm checkout-origin-main -rf +-$OSTREE --repo=ostree-srv/gnomerepo checkout main checkout-origin-main ++$OSTREE --repo=ostree-srv/gnomerepo checkout ${CHECKOUT_U_ARG} main checkout-origin-main + echo moomoo > checkout-origin-main/baz/cow +-${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo commit -b main -s "" --tree=dir=checkout-origin-main ++${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo commit ${COMMIT_ARGS} -b main -s "" --tree=dir=checkout-origin-main + ${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo static-delta generate main + ${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo summary -u + ${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo fsck +@@ -115,11 +132,12 @@ ${CMD_PREFIX} ostree --repo=mirrorrepo pull --bareuseronly-files origin main + echo "ok pull (bareuseronly, safe)" + + rm checkout-origin-main -rf +-$OSTREE --repo=ostree-srv/gnomerepo checkout main checkout-origin-main ++$OSTREE --repo=ostree-srv/gnomerepo checkout ${CHECKOUT_U_ARG} main checkout-origin-main + cat > statoverride.txt < checkout-origin-main/some-setuid ++# Don't use ${COMMIT_ARGS} as we don't want --canonical-permissions with bare-user-only + ${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo commit -b content-with-suid --statoverride=statoverride.txt --tree=dir=checkout-origin-main + ${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo summary -u + # Verify we reject it both when unpacking and when mirroring +@@ -140,7 +158,8 @@ echo "ok pull (bareuseronly mirror)" + # Corruption tests + cd ${test_tmpdir} + repo_init --no-gpg-verify +-if ! is_bare_user_only_repo repo && ! skip_one_without_user_xattrs; then ++if ! is_bare_user_only_repo repo; then ++if ! skip_one_without_user_xattrs; then + if is_bare_user_only_repo repo; then + cacherepomode=bare-user-only + else +@@ -193,15 +212,19 @@ if ! is_bare_user_only_repo repo && ! skip_one_without_user_xattrs; then + repo_init --no-gpg-verify + echo "ok corruption" + fi ++else ++# bareuseronly case, we don't mark it as SKIP at the moment ++echo "ok corruption (skipped)" ++fi + + cd ${test_tmpdir} + rm mirrorrepo/refs/remotes/* -rf + ${CMD_PREFIX} ostree --repo=mirrorrepo prune --refs-only + ${CMD_PREFIX} ostree --repo=mirrorrepo pull origin main + rm checkout-origin-main -rf +-$OSTREE --repo=ostree-srv/gnomerepo checkout main checkout-origin-main ++$OSTREE --repo=ostree-srv/gnomerepo checkout ${CHECKOUT_U_ARG} main checkout-origin-main + echo yetmorecontent > checkout-origin-main/baz/cowtest +-${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo commit -b main -s "" --tree=dir=checkout-origin-main ++${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo commit ${COMMIT_ARGS} -b main -s "" --tree=dir=checkout-origin-main + rev=$(${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo rev-parse main) + ${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo static-delta generate main + ${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo summary -u +@@ -223,8 +246,8 @@ cd ${test_tmpdir} + rm otherrepo -rf + ostree_repo_init otherrepo --mode=archive + rm checkout-origin-main -rf +-${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo checkout main checkout-origin-main +-${CMD_PREFIX} ostree --repo=otherrepo commit -b localbranch --tree=dir=checkout-origin-main ++${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo checkout ${CHECKOUT_U_ARG} main checkout-origin-main ++${CMD_PREFIX} ostree --repo=otherrepo commit ${COMMIT_ARGS} -b localbranch --tree=dir=checkout-origin-main + ${CMD_PREFIX} ostree --repo=otherrepo remote add --set=gpg-verify=false origin file://$(pwd)/ostree-srv/gnomerepo + ${CMD_PREFIX} ostree --repo=otherrepo pull origin main + rm mirrorrepo-local -rf +@@ -247,7 +270,7 @@ assert_file_has_content_literal err.txt "error: Refspec 'nosuchbranch' not found + echo "ok pull-local nonexistent branch" + + cd ${test_tmpdir} +-${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo commit -b main -s "Metadata string" --add-detached-metadata-string=SIGNATURE=HANCOCK --tree=ref=main ++${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo commit ${COMMIT_ARGS} -b main -s "Metadata string" --add-detached-metadata-string=SIGNATURE=HANCOCK --tree=ref=main + ${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo summary -u + ${CMD_PREFIX} ostree --repo=repo pull origin main + ${CMD_PREFIX} ostree --repo=repo fsck +@@ -278,13 +301,13 @@ origrev=$(${CMD_PREFIX} ostree --repo=repo rev-parse main) + # Check we can pull the same commit with timestamp checking enabled + ${CMD_PREFIX} ostree --repo=repo pull -T origin main + assert_streq ${origrev} "$(${CMD_PREFIX} ostree --repo=repo rev-parse main)" +-newrev=$(${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo commit -b main --tree=ref=main) ++newrev=$(${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo commit ${COMMIT_ARGS} -b main --tree=ref=main) + ${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo summary -u + # New commit with timestamp checking + ${CMD_PREFIX} ostree --repo=repo pull -T origin main + assert_not_streq "${origrev}" "${newrev}" + assert_streq ${newrev} "$(${CMD_PREFIX} ostree --repo=repo rev-parse main)" +-newrev2=$(${CMD_PREFIX} ostree --timestamp="October 25 1985" --repo=ostree-srv/gnomerepo commit -b main --tree=ref=main) ++newrev2=$(${CMD_PREFIX} ostree --timestamp="October 25 1985" --repo=ostree-srv/gnomerepo commit ${COMMIT_ARGS} -b main --tree=ref=main) + ${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo summary -u + if ${CMD_PREFIX} ostree --repo=repo pull -T origin main 2>err.txt; then + fatal "pulled older commit with timestamp checking enabled?" +@@ -304,12 +327,12 @@ ${CMD_PREFIX} ostree --repo=repo fsck + ${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo static-delta generate main + + rm main-files -rf +-${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo checkout main main-files ++${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo checkout ${CHECKOUT_U_ARG} main main-files + cd main-files + echo "an added file for static deltas" > added-file + echo "modified file for static deltas" > baz/cow + rm baz/saucer +-${CMD_PREFIX} ostree --repo=${test_tmpdir}/ostree-srv/gnomerepo commit -b main -s 'static delta test' ++${CMD_PREFIX} ostree --repo=${test_tmpdir}/ostree-srv/gnomerepo commit ${COMMIT_ARGS} -b main -s 'static delta test' + cd .. + rm main-files -rf + # Generate delta that we'll use +@@ -353,7 +376,7 @@ ${CMD_PREFIX} ostree --repo=repo pull --disable-static-deltas origin main + ${CMD_PREFIX} ostree --repo=repo fsck + + rm checkout-origin-main -rf +-$OSTREE checkout origin:main checkout-origin-main ++$OSTREE checkout ${CHECKOUT_H_ARGS} origin:main checkout-origin-main + cd checkout-origin-main + assert_file_has_content firstfile '^first$' + assert_file_has_content baz/cow "modified file for static deltas" +@@ -405,10 +428,10 @@ echo "ok delta required for revision" + + cd ${test_tmpdir} + rm main-files -rf +-${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo checkout main main-files ++${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo checkout ${CHECKOUT_U_ARG} main main-files + cd main-files + echo "more added files for static deltas" > added-file2 +-${CMD_PREFIX} ostree --repo=${test_tmpdir}/ostree-srv/gnomerepo commit -b main -s 'inline static delta test' ++${CMD_PREFIX} ostree --repo=${test_tmpdir}/ostree-srv/gnomerepo commit ${COMMIT_ARGS} -b main -s 'inline static delta test' + cd .. + rm main-files -rf + # Generate new delta that we'll use +@@ -420,7 +443,7 @@ ${CMD_PREFIX} ostree --repo=repo pull origin main + ${CMD_PREFIX} ostree --repo=repo fsck + + rm checkout-origin-main -rf +-$OSTREE checkout origin:main checkout-origin-main ++$OSTREE checkout ${CHECKOUT_H_ARGS} origin:main checkout-origin-main + cd checkout-origin-main + assert_file_has_content added-file2 "more added files for static deltas" + +@@ -428,12 +451,12 @@ echo "ok inline static delta" + + cd ${test_tmpdir} + rm main-files -rf +-${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo checkout main main-files ++${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo checkout ${CHECKOUT_U_ARG} main main-files + cd main-files + # Make a file larger than 16M for testing + dd if=/dev/zero of=test-bigfile count=1 seek=42678 + echo "further modified file for static deltas" > baz/cow +-${CMD_PREFIX} ostree --repo=${test_tmpdir}/ostree-srv/gnomerepo commit -b main -s '2nd static delta test' ++${CMD_PREFIX} ostree --repo=${test_tmpdir}/ostree-srv/gnomerepo commit ${COMMIT_ARGS} -b main -s '2nd static delta test' + cd .. + rm main-files -rf + ${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo static-delta generate main +@@ -444,7 +467,7 @@ ${CMD_PREFIX} ostree --repo=repo pull origin main + ${CMD_PREFIX} ostree --repo=repo fsck + + rm checkout-origin-main -rf +-$OSTREE checkout origin:main checkout-origin-main ++$OSTREE checkout ${CHECKOUT_H_ARGS} origin:main checkout-origin-main + cd checkout-origin-main + assert_has_file test-bigfile + stat --format=%s test-bigfile > bigfile-size +@@ -496,7 +519,7 @@ echo "ok pull repo 404 on dirtree object" + + cd ${test_tmpdir} + repo_init --set=gpg-verify=true +-${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo commit \ ++${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo commit ${COMMIT_ARGS} \ + --gpg-homedir=${TEST_GPG_KEYHOME} --gpg-sign=${TEST_GPG_KEYID_1} -b main \ + -s "A signed commit" --tree=ref=main + ${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo summary -u +diff --git a/tests/test-pull-bareuseronly.sh b/tests/test-pull-bareuseronly.sh +new file mode 100755 +index 0000000..f5c06c4 +--- /dev/null ++++ b/tests/test-pull-bareuseronly.sh +@@ -0,0 +1,28 @@ ++#!/bin/bash ++# ++# Copyright (C) 2017 Colin Walters ++# ++# This library is free software; you can redistribute it and/or ++# modify it under the terms of the GNU Lesser General Public ++# License as published by the Free Software Foundation; either ++# version 2 of the License, or (at your option) any later version. ++# ++# This library is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# Lesser General Public License for more details. ++# ++# You should have received a copy of the GNU Lesser General Public ++# License along with this library; if not, write to the ++# Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++# Boston, MA 02111-1307, USA. ++ ++set -euo pipefail ++ ++. $(dirname $0)/libtest.sh ++ ++skip_without_user_xattrs ++setup_fake_remote_repo1 "archive" "--canonical-permissions" ++ ++repo_mode=bare-user-only ++. ${test_srcdir}/pull-test.sh diff --git a/patches/dist/Add-missing-test-libglnx-shutil.patch b/patches/dist/Add-missing-test-libglnx-shutil.patch new file mode 100644 index 00000000..9b07e3d5 --- /dev/null +++ b/patches/dist/Add-missing-test-libglnx-shutil.patch @@ -0,0 +1,108 @@ +From: Simon McVittie +Date: Tue, 3 Oct 2017 21:30:36 +0100 +Subject: 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 +--- + libglnx/Makefile-libglnx.am.inc | 6 +++- + libglnx/tests/test-libglnx-shutil.c | 63 +++++++++++++++++++++++++++++++++++++ + 2 files changed, 68 insertions(+), 1 deletion(-) + create mode 100644 libglnx/tests/test-libglnx-shutil.c + +diff --git a/libglnx/Makefile-libglnx.am.inc b/libglnx/Makefile-libglnx.am.inc +index 8766e63..ff2700c 100644 +--- a/libglnx/Makefile-libglnx.am.inc ++++ b/libglnx/Makefile-libglnx.am.inc +@@ -53,7 +53,7 @@ libglnx_la_CFLAGS = $(AM_CFLAGS) $(libglnx_cflags) + libglnx_la_LDFLAGS = -avoid-version -Bsymbolic-functions -export-symbols-regex "^glnx_" -no-undefined -export-dynamic + libglnx_la_LIBADD = $(libglnx_libs) + +-libglnx_tests = test-libglnx-xattrs test-libglnx-fdio test-libglnx-errors test-libglnx-macros ++libglnx_tests = test-libglnx-xattrs test-libglnx-fdio test-libglnx-errors test-libglnx-macros test-libglnx-shutil + TESTS += $(libglnx_tests) + + check_PROGRAMS += $(libglnx_tests) +@@ -72,3 +72,7 @@ test_libglnx_errors_LDADD = $(libglnx_libs) libglnx.la + test_libglnx_macros_SOURCES = libglnx/tests/test-libglnx-macros.c + test_libglnx_macros_CFLAGS = $(AM_CFLAGS) $(libglnx_cflags) + test_libglnx_macros_LDADD = $(libglnx_libs) libglnx.la ++ ++test_libglnx_shutil_SOURCES = libglnx/tests/test-libglnx-shutil.c ++test_libglnx_shutil_CFLAGS = $(AM_CFLAGS) $(libglnx_cflags) ++test_libglnx_shutil_LDADD = $(libglnx_libs) libglnx.la +diff --git a/libglnx/tests/test-libglnx-shutil.c b/libglnx/tests/test-libglnx-shutil.c +new file mode 100644 +index 0000000..39f261b +--- /dev/null ++++ b/libglnx/tests/test-libglnx-shutil.c +@@ -0,0 +1,63 @@ ++/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- ++ * ++ * Copyright © 2017 Endless Mobile, Inc. ++ * ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this library; if not, write to the ++ * Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ * Boston, MA 02111-1307, USA. ++ */ ++ ++#include "config.h" ++#include "libglnx.h" ++#include ++#include ++#include ++#include ++#include ++ ++#include "libglnx-testlib.h" ++ ++static void ++test_mkdir_p_enoent (void) ++{ ++ _GLNX_TEST_DECLARE_ERROR(local_error, error); ++ glnx_fd_close int dfd = -1; ++ ++ if (!glnx_ensure_dir (AT_FDCWD, "test", 0755, error)) ++ return; ++ if (!glnx_opendirat (AT_FDCWD, "test", FALSE, &dfd, error)) ++ return; ++ if (rmdir ("test") < 0) ++ return (void) glnx_throw_errno_prefix (error, "rmdir(%s)", "test"); ++ ++ /* This should fail with ENOENT. */ ++ glnx_shutil_mkdir_p_at (dfd, "blah/baz", 0755, NULL, error); ++ g_assert_error (local_error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND); ++ g_clear_error (&local_error); ++} ++ ++int ++main (int argc, ++ char **argv) ++{ ++ int ret; ++ ++ g_test_init (&argc, &argv, NULL); ++ ++ g_test_add_func ("/mkdir-p/enoent", test_mkdir_p_enoent); ++ ++ ret = g_test_run(); ++ ++ return ret; ++} diff --git a/patches/series b/patches/series new file mode 100644 index 00000000..babcedc9 --- /dev/null +++ b/patches/series @@ -0,0 +1,15 @@ +dist/Add-missing-test-libglnx-shutil.patch +2017.13/lib-pull-Fix-regression-with-pull-local-for-nonexistent-r.patch +2017.13/lib-repo-commit-Import-detached-metadata-even-if-hardlink.patch +2017.13/lib-core-Init-struct-stat-buffer.patch +2017.13/lib-sysroot-Fix-pointer-going-out-of-scope-in-unlock-code.patch +2017.13/lib-deploy-Ignore-FIFREEZE-FITHAW-errors-when-already-in-.patch +2017.13/lib-deploy-Use-_exit-for-FIFREEZE-watchdog.patch +2017.13/lib-deltas-Check-cancellable-during-processing.patch +2017.13/lib-utils-Check-for-invalid-UTF-8-in-filenames.patch +2017.13/Cope-with-xattr-syscalls-raising-EOPNOTSUPP.patch +2017.13/lib-sysroot-Fix-error-handling-when-mounting-overlayfs-fa.patch +2017.13/tests-Add-test-pull-bareuseronly.patch +2017.13/lib-repo-Properly-handle-NULL-homedir-when-signing-commit.patch +2017.13/fdio-allow-NULL-for-fstatat_allow_noent-stbuf.patch +2017.13/lib-repo-Fix-loading-commitstate-with-parent-repos.patch diff --git a/rules b/rules new file mode 100755 index 00000000..60855cbc --- /dev/null +++ b/rules @@ -0,0 +1,95 @@ +#!/usr/bin/make -f + +export DEB_BUILD_MAINT_OPTIONS = hardening=+all +export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed +# Some tests assert that we will see English strings +export LC_ALL=C.UTF-8 + +binaries := $(shell dh_listpackages) + +%: + dh $@ --with=gir + +override_dh_autoreconf: + env NOCONFIGURE=1 dh_autoreconf ./autogen.sh + +configure_options = \ + --enable-installed-tests \ + --libexecdir='$${prefix}/lib' \ + --with-dracut \ + --with-grub2 \ + --with-grub2-mkconfig-path=/usr/sbin/grub-mkconfig \ + --with-systemdsystemgeneratordir=/lib/systemd/system-generators \ + --with-systemdsystemunitdir=/lib/systemd/system \ + $(NULL) + +ifneq ($(filter libostree-doc,$(binaries)),) +configure_options += --enable-gtk-doc +else +configure_options += --disable-gtk-doc +endif + +ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES))) +configure_options += --enable-man +else +configure_options += --disable-man +endif + +override_dh_auto_configure: + dh_auto_configure -- $(configure_options) + +override_dh_auto_test-arch: +ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS))) + chmod +x tests/test-pull-bareuseronly.sh + debian/test.sh +endif + +override_dh_auto_test-indep: + : + +override_dh_auto_install: + dh_auto_install +ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES))) + # docbook-xsl capitalizes the whole heading, including the macro + # used to represent a single quote... https://bugs.debian.org/821235 + sed -i -e 's,\*(AQ,*(Aq,g' \ + debian/tmp/usr/share/man/man1/ostree-remote.1 \ + debian/tmp/usr/share/man/man1/ostree-static-delta.1 \ + $(NULL) +endif + +override_dh_install: + rm -f debian/tmp/usr/lib/*/*.la + rm -f debian/tmp/usr/lib/installed-tests/libostree/*.la + : + # TODO: when someone documents how to test these (#824649) they + # should be installed in a new ostree-boot package: see + # debian/ostree-boot.* and https://bugs.debian.org/824650 + rm -f debian/tmp/etc/dracut.conf.d/ostree.conf + rm -f debian/tmp/etc/grub.d/15_ostree + rm -f debian/tmp/lib/systemd/system-generators/ostree-system-generator + rm -f debian/tmp/lib/systemd/system/ostree-prepare-root.service + rm -f debian/tmp/lib/systemd/system/ostree-remount.service + rm -fr debian/tmp/usr/lib/dracut/modules.d/98ostree/ + rm -f debian/tmp/usr/lib/libostree/grub2-15_ostree + rm -f debian/tmp/usr/lib/ostree/ostree-prepare-root + rm -f debian/tmp/usr/lib/ostree/ostree-remount + rm -f debian/tmp/usr/lib/tmpfiles.d/ostree-tmpfiles.conf + : + dh_install + +override_dh_missing: + dh_missing --fail-missing + +override_dh_makeshlibs: + # this is an LD_PRELOAD, not a real shared library + dh_makeshlibs -Xinstalled-tests/ostree/libreaddir-rand.so + +override_dh_fixperms-arch: + # dh_fixperms assumes *.js are for browsers and makes them 0644. + dh_fixperms -X'*.js' + find debian/tmp -type f -name '*.js' -print0 | \ + xargs -0r chmod -v go=rX,u+rw,a-s + +override_dh_systemd_start: + dh_systemd_start --no-start diff --git a/source/format b/source/format new file mode 100644 index 00000000..163aaf8d --- /dev/null +++ b/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/test.sh b/test.sh new file mode 100755 index 00000000..d0dba67d --- /dev/null +++ b/test.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +set -e + +export VERBOSE=1 + +# Ubuntu autopkgtest infra provides internet access via a proxy, and +# buildds could conceivably do the same, but libostree doesn't need +# that. However, libostree also doesn't support no_proxy, so it will try +# to use Ubuntu's proxy for localhost, and fail to reach itself. +unset ftp_proxy +unset http_proxy +unset https_proxy +unset no_proxy + +failed=0 +make check || failed=1 + +pkill --full "gpg-agent --homedir /var/tmp/tap-test\\.[^/]+/.*" || : +pkill --full '\.libs/ostree-trivial-httpd' || : + +if pgrep lt-ostree || pgrep --full '\.libs/ostree-trivial-httpd' || pgrep --full "gpg-agent --homedir /var/tmp/tap-test."; then \ + echo "WARNING: daemon processes were leaked" + pgrep gpg-agent | xargs --no-run-if-empty ps ww + pgrep --full '\.libs/ostree-trivial-httpd' | xargs --no-run-if-empty ps ww + pgrep lt-ostree | xargs --no-run-if-empty ps ww +fi + +exit $failed + +# vim:set et sw=4 sts=4: diff --git a/tests/build b/tests/build new file mode 100755 index 00000000..594e4f77 --- /dev/null +++ b/tests/build @@ -0,0 +1,22 @@ +#!/bin/sh + +set -e +exec 2>&1 +set -x + +cd "$ADTTMP" + +cat > trivial.c < + +int main (void) +{ + g_object_unref (ostree_repo_new_default ()); + return 0; +} +EOF + +gcc -o trivial trivial.c $(pkg-config --cflags --libs ostree-1 gobject-2.0) +test -x trivial +./trivial +echo "ok 3 run it" diff --git a/tests/control b/tests/control new file mode 100644 index 00000000..88ffde7f --- /dev/null +++ b/tests/control @@ -0,0 +1,5 @@ +Tests: gnome-desktop-testing +Depends: gnome-desktop-testing, ostree-tests + +Tests: build +Depends: build-essential, libostree-dev, pkg-config diff --git a/tests/gnome-desktop-testing b/tests/gnome-desktop-testing new file mode 100755 index 00000000..c85f13cf --- /dev/null +++ b/tests/gnome-desktop-testing @@ -0,0 +1,14 @@ +#!/bin/sh + +set -e +exec 2>&1 + +# Ubuntu provides internet access via a proxy, but libostree doesn't need +# that. However, libostree also doesn't support no_proxy, so it will try +# to use Ubuntu's proxy for localhost, and fail to reach itself. +unset ftp_proxy +unset http_proxy +unset https_proxy +unset no_proxy + +exec gnome-desktop-testing-runner libostree diff --git a/watch b/watch new file mode 100644 index 00000000..048ca2ae --- /dev/null +++ b/watch @@ -0,0 +1,2 @@ +version=4 +https://github.com/ostreedev/ostree/releases .*/libostree-(\d\S*)\.tar\.xz