Import ostree_2016.12-2.debian.tar.xz
authorSjoerd Simons <sjoerd@debian.org>
Thu, 3 Nov 2016 21:48:01 +0000 (21:48 +0000)
committerSjoerd Simons <sjoerd@debian.org>
Thu, 3 Nov 2016 21:48:01 +0000 (21:48 +0000)
[dgit import tarball ostree 2016.12-2 ostree_2016.12-2.debian.tar.xz]

28 files changed:
changelog [new file with mode: 0644]
compat [new file with mode: 0644]
control [new file with mode: 0644]
copyright [new file with mode: 0644]
docs [new file with mode: 0644]
gbp.conf [new file with mode: 0644]
gir1.2-ostree-1.0.install [new file with mode: 0644]
libostree-1-1.install [new file with mode: 0644]
libostree-1-1.symbols [new file with mode: 0644]
libostree-dev.install [new file with mode: 0644]
libostree-doc.install [new file with mode: 0644]
ostree-boot.README.Debian [new file with mode: 0644]
ostree-boot.control [new file with mode: 0644]
ostree-boot.install [new file with mode: 0644]
ostree-tests.install [new file with mode: 0644]
ostree-tests.lintian-overrides [new file with mode: 0644]
ostree.install [new file with mode: 0644]
patches/Filter-bootloader-supplied-kernel-cmdline-options.patch [new file with mode: 0644]
patches/Terminate-individual-tests-after-half-an-hour.patch [new file with mode: 0644]
patches/dist/Retrieve-some-missing-test-files-from-upstream-git.patch [new file with mode: 0644]
patches/series [new file with mode: 0644]
rules [new file with mode: 0755]
source/format [new file with mode: 0644]
test.sh [new file with mode: 0755]
tests/build [new file with mode: 0755]
tests/control [new file with mode: 0644]
tests/gnome-desktop-testing [new file with mode: 0755]
watch [new file with mode: 0644]

diff --git a/changelog b/changelog
new file mode 100644 (file)
index 0000000..208d98c
--- /dev/null
+++ b/changelog
@@ -0,0 +1,277 @@
+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 <sjoerd@debian.org>  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 <smcv@debian.org>  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 <smcv@debian.org>  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 <smcv@debian.org>  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 <smcv@debian.org>  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 <smcv@debian.org>  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 <smcv@debian.org>  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 <smcv@debian.org>  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 <smcv@debian.org>  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 <smcv@debian.org>  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 <smcv@debian.org>  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 <smcv@debian.org>  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 <smcv@debian.org>  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 <smcv@debian.org>  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 <smcv@debian.org>  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 <smcv@debian.org>  Sat, 19 Mar 2016 17:56:21 +0000
+
+ostree (2016.1-alexlarsson1~wily1) wily; urgency=medium
+
+  * New upstream release
+
+ -- Alexander Larsson <alexander.larsson@gmail.com>  Thu, 01 Oct 2015 11:28:39 +0200
+
+ostree (2015.11-alexlarsson1~vivid1) vivid; urgency=medium
+
+  * New upstream release
+
+ -- Alexander Larsson <alexander.larsson@gmail.com>  Thu, 01 Oct 2015 11:28:39 +0200
+
+ostree (2015.9-alexlarsson1) vivid; urgency=medium
+
+  * New upstream release
+
+ -- Alexander Larsson <alexander.larsson@gmail.com>  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 <amigadave@amigadave.com>  Wed, 08 Apr 2015 13:10:39 +0100
+
+ostree (2015.4-0amigadave1) trusty; urgency=low
+
+  [ David King ]
+  * Initial packaging.
+
+ -- David King <amigadave@amigadave.com>  Thu, 02 Apr 2015 15:40:52 +0000
diff --git a/compat b/compat
new file mode 100644 (file)
index 0000000..f599e28
--- /dev/null
+++ b/compat
@@ -0,0 +1 @@
+10
diff --git a/control b/control
new file mode 100644 (file)
index 0000000..ae5b273
--- /dev/null
+++ b/control
@@ -0,0 +1,150 @@
+Source: ostree
+Section: admin
+Priority: optional
+Maintainer: Utopia Maintenance Team <pkg-utopia-maintainers@lists.alioth.debian.org>
+Uploaders:
+ Matthias Klumpp <mak@debian.org>,
+ Simon McVittie <smcv@debian.org>,
+ Sjoerd Simons <sjoerd@debian.org>
+Build-Depends:
+ attr,
+ bison,
+ ca-certificates,
+ cpio,
+ debhelper (>= 10~),
+ docbook-xml,
+ docbook-xsl,
+ e2fslibs-dev,
+ elfutils,
+ fuse,
+ gjs,
+ gobject-introspection,
+ gtk-doc-tools (>= 1.15),
+ libarchive-dev (>= 2.8.0),
+ libattr1-dev,
+ libcap-dev,
+ libfuse-dev,
+ libgirepository1.0-dev (>= 1.34.0),
+ libglib2.0-dev (>= 2.40.0),
+ libgpgme11-dev (>= 1.1.8),
+ liblzma-dev (>= 5.0.5),
+ libmount-dev (>= 2.23),
+ libselinux1-dev,
+ libsoup2.4-dev (>= 2.39.1),
+ libsystemd-dev,
+ procps,
+ xsltproc,
+ zlib1g-dev,
+Standards-Version: 3.9.8
+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)
+ OSTree is a tool 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},
+Multi-arch: same
+Description: content-addressed filesystem for operating system binaries (library)
+ OSTree is a tool and 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,
+ pkg-config,
+ ${misc:Depends},
+Suggests:
+ libostree-doc,
+Description: Development files for the ostree library
+ OSTree is a tool and 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 ostree.
+
+Package: libostree-doc
+Architecture: all
+Multi-Arch: foreign
+Section: doc
+Depends:
+ ${misc:Depends},
+Suggests:
+ devhelp,
+Description: Development documentation for the ostree library
+ OSTree is a tool for managing bootable, immutable, versioned filesystem
+ trees. See the ostree package's description for more details.
+ .
+ This package contains development documentation for ostree.
+
+Package: ostree
+Architecture: linux-any
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+Description: content-addressed filesystem for operating system binaries
+ OSTree is a tool and 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.
+ .
+ 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,
+ ostree,
+ python,
+ ${misc:Depends},
+ ${shlibs:Depends},
+Description: content-addressed filesystem for operating system binaries - tests
+ OSTree is a tool 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 (file)
index 0000000..d97db4b
--- /dev/null
+++ b/copyright
@@ -0,0 +1,237 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: OSTree
+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.
+ Â© 2010-2016 Red Hat, Inc
+ Â© 2011-2016 Colin Walters <walters@verbum.org>
+ Â© 2011 Avery Pennarun
+ Â© 2013 Collabora Ltd.
+ Â© 2013 Stef Walter <stef@redhat.com>
+ Â© 2013 Javier Martinez <javier.martinez@collabora.co.uk>
+ Â© 2013 Jeremy Whiting <jeremy.whiting@collabora.com>
+ Â© 2013 Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+ Â© 2014-2016 Alexander Larsson <alexl@redhat.com>
+ Â© 2014 Owen Taylor <otaylor@redhat.com>
+ Â© 2015 Dan Nicholson <nicholson@endlessm.com>
+ Â© 2015 Canonical Ltd.
+License: LGPL-2+
+
+Files:
+ git.mk
+Copyright:
+ Â© 2009 Red Hat, Inc.
+ Â© 2010-2013 Behdad Esfahbod
+License: GNU-permissive
+
+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 <walters@verbum.org>
+ Â© 2016 Zbigniew JÄ™drzejewski-Szmek
+License: LGPL-2.1+
+
+Files:
+ src/libostree/ostree-varint.c
+Copyright:
+ Â© 2008 Google Inc.
+ Â© 2013 Colin Walters <walters@verbum.org>
+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:
+ GNUmakefile
+ build-aux/useless-if-before-free
+ build-aux/vc-list-files
+Copyright:
+ 2001-2014 Free Software Foundation, Inc.
+License: GPL-3+
+
+Files:
+ bsdiff/*
+Copyright:
+ Â© 2003-2005 Colin Percival
+ Â© 2012 Matthew Endsley
+License: BSD-2-clause
+
+Files:
+ contrib/golang/*
+Copyright:
+ Â© 2013 Conformal Systems LLC
+License: ISC
+
+Files: debian/*
+Copyright:
+ Â© 2015 David King <amigadave@amigadave.com>
+ Â© 2016 Collabora Ltd.
+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: GPL-3+
+ 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 3 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 General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with this program.  If not, see <http://www.gnu.org/licenses/>.
+Comment:
+ On Debian systems, the full text of the GNU General Public
+ License version 3 can be found in the file
+ '/usr/share/common-licenses/GPL-3'.
+
+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 <http://www.gnu.org/licenses/>.
+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 <http://www.gnu.org/licenses/>.
+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.
+
+License: ISC
+ Permission to use, copy, modify, and distribute this software for any
+ purpose with or without fee is hereby granted, provided that the above
+ copyright notice and this permission notice appear in all copies.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+License: GNU-permissive
+ Copying and distribution of this file, with or without modification,
+ is permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved.
diff --git a/docs b/docs
new file mode 100644 (file)
index 0000000..b43bf86
--- /dev/null
+++ b/docs
@@ -0,0 +1 @@
+README.md
diff --git a/gbp.conf b/gbp.conf
new file mode 100644 (file)
index 0000000..2bda9c8
--- /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 (file)
index 0000000..49d71c9
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/*/girepository-1.0
diff --git a/libostree-1-1.install b/libostree-1-1.install
new file mode 100644 (file)
index 0000000..989a385
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/*/libostree-1.so.*
diff --git a/libostree-1-1.symbols b/libostree-1-1.symbols
new file mode 100644 (file)
index 0000000..bcc7c6c
--- /dev/null
@@ -0,0 +1,312 @@
+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
+ ostree_async_progress_finish@LIBOSTREE_2016.3 2016.4
+ 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_new@LIBOSTREE_2016.3 2016.4
+ ostree_async_progress_new_and_connect@LIBOSTREE_2016.3 2016.4
+ 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_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_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_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_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_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_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_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_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_prepare_transaction@LIBOSTREE_2016.3 2016.4
+ ostree_repo_prune@LIBOSTREE_2016.3 2016.4
+ 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_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_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_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_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_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_origin_file@LIBOSTREE_2016.3 2016.4
+ ostree_validate_checksum_string@LIBOSTREE_2016.3 2016.4
+ 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 (file)
index 0000000..3700ef2
--- /dev/null
@@ -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 (file)
index 0000000..95af827
--- /dev/null
@@ -0,0 +1 @@
+usr/share/gtk-doc
diff --git a/ostree-boot.README.Debian b/ostree-boot.README.Debian
new file mode 100644 (file)
index 0000000..f156b6a
--- /dev/null
@@ -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 (file)
index 0000000..ac76885
--- /dev/null
@@ -0,0 +1,32 @@
+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: ostree boot loader and initramfs integration
+ OSTree is a tool 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 using OSTree. 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 ostree, currently
+    GNU GRUB 2, syslinux/extlinux or Das U-Boot
diff --git a/ostree-boot.install b/ostree-boot.install
new file mode 100644 (file)
index 0000000..7701a27
--- /dev/null
@@ -0,0 +1,8 @@
+etc/dracut.conf.d/ostree.conf
+etc/grub.d/15_ostree
+lib/systemd/system/ostree-prepare-root.service
+lib/systemd/system/ostree-remount.service
+usr/lib/dracut/modules.d/98ostree
+usr/lib/ostree/grub2-15_ostree
+usr/lib/ostree/ostree-prepare-root
+usr/lib/ostree/ostree-remount
diff --git a/ostree-tests.install b/ostree-tests.install
new file mode 100644 (file)
index 0000000..42a2987
--- /dev/null
@@ -0,0 +1,2 @@
+usr/lib/installed-tests/ostree
+usr/share/installed-tests/ostree
diff --git a/ostree-tests.lintian-overrides b/ostree-tests.lintian-overrides
new file mode 100644 (file)
index 0000000..97b8f0c
--- /dev/null
@@ -0,0 +1,7 @@
+# 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/ostree/gpg-verify-data/lgpl2
+ostree-tests: extra-license-file usr/lib/installed-tests/ostree/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/ostree/tests .
diff --git a/ostree.install b/ostree.install
new file mode 100644 (file)
index 0000000..4e555f9
--- /dev/null
@@ -0,0 +1,5 @@
+etc/ostree
+usr/bin/ostree
+usr/bin/rofiles-fuse
+usr/share/man
+usr/share/ostree/trusted.gpg.d
diff --git a/patches/Filter-bootloader-supplied-kernel-cmdline-options.patch b/patches/Filter-bootloader-supplied-kernel-cmdline-options.patch
new file mode 100644 (file)
index 0000000..8ffe864
--- /dev/null
@@ -0,0 +1,145 @@
+From f0e493bf2992d752ec3cf517542e60d9ea376be4 Mon Sep 17 00:00:00 2001
+From: Sjoerd Simons <sjoerd@luon.net>
+Date: Sun, 30 Oct 2016 21:06:27 +0100
+Subject: [PATCH] Filter bootloader supplied kernel cmdline options
+
+Various bootloader add kernel commandline options dynamically, filter
+these out when grabbing boot options from /proc/cmdline. Specifically
+grub adds BOOT_IMAGE and systemd-boot adds initrd.
+
+Closes: #560
+Approved by: cgwalters
+---
+ src/libostree/ostree-kernel-args.c     | 43 ++++++++++++++++++++++++++++++----
+ src/libostree/ostree-kernel-args.h     |  3 +++
+ tests/test-admin-deploy-karg.sh        |  2 ++
+ tests/test-admin-instutil-set-kargs.sh |  2 ++
+ 4 files changed, 46 insertions(+), 4 deletions(-)
+
+diff --git a/src/libostree/ostree-kernel-args.c b/src/libostree/ostree-kernel-args.c
+index ec189fc..22b5caa 100644
+--- a/src/libostree/ostree-kernel-args.c
++++ b/src/libostree/ostree-kernel-args.c
+@@ -53,6 +53,23 @@ split_keyeq (char *arg)
+     }
+ }
++static gboolean
++_arg_has_prefix (const char *arg,
++                 char      **prefixes)
++{
++  char **strviter;
++
++  for (strviter = prefixes; strviter && *strviter; strviter++)
++    {
++      const char *prefix = *strviter;
++
++      if (g_str_has_prefix (arg, prefix))
++        return TRUE;
++    }
++
++  return FALSE;
++}
++
+ OstreeKernelArgs *
+ _ostree_kernel_args_new (void)
+ {
+@@ -154,18 +171,28 @@ _ostree_kernel_args_replace_argv (OstreeKernelArgs  *kargs,
+ }
+ void
+-_ostree_kernel_args_append_argv (OstreeKernelArgs  *kargs,
+-                                 char            **argv)
++_ostree_kernel_args_append_argv_filtered (OstreeKernelArgs  *kargs,
++                                          char             **argv,
++                                          char             **prefixes)
+ {
+   char **strviter;
+   for (strviter = argv; strviter && *strviter; strviter++)
+     {
+       const char *arg = *strviter;
+-      _ostree_kernel_args_append (kargs, arg);
++
++      if (!_arg_has_prefix (arg, prefixes))
++        _ostree_kernel_args_append (kargs, arg);
+     }
+ }
++void
++_ostree_kernel_args_append_argv (OstreeKernelArgs  *kargs,
++                                 char             **argv)
++{
++  _ostree_kernel_args_append_argv_filtered (kargs, argv, NULL);
++}
++
+ gboolean
+ _ostree_kernel_args_append_proc_cmdline (OstreeKernelArgs *kargs,
+                                          GCancellable     *cancellable,
+@@ -175,6 +202,13 @@ _ostree_kernel_args_append_proc_cmdline (OstreeKernelArgs *kargs,
+   g_autofree char *proc_cmdline = NULL;
+   gsize proc_cmdline_len = 0;
+   g_auto(GStrv) proc_cmdline_args = NULL;
++  /* When updating the filter list don't forget to update the list in the tests
++   * e.g. tests/test-admin-deploy-karg.sh and
++   * tests/test-admin-instutil-set-kargs.sh
++   */
++  char *filtered_prefixes[] = { "BOOT_IMAGE=", /* GRUB 2 */
++                                "initrd=", /* sd-boot */
++                                NULL };
+   if (!g_file_load_contents (proc_cmdline_path, cancellable,
+                              &proc_cmdline, &proc_cmdline_len,
+@@ -184,7 +218,8 @@ _ostree_kernel_args_append_proc_cmdline (OstreeKernelArgs *kargs,
+   g_strchomp (proc_cmdline);
+   proc_cmdline_args = g_strsplit (proc_cmdline, " ", -1);
+-  _ostree_kernel_args_append_argv (kargs, proc_cmdline_args);
++  _ostree_kernel_args_append_argv_filtered (kargs, proc_cmdline_args,
++                                            filtered_prefixes);
+   return TRUE;
+ }
+diff --git a/src/libostree/ostree-kernel-args.h b/src/libostree/ostree-kernel-args.h
+index 18710d7..ceaa1ca 100644
+--- a/src/libostree/ostree-kernel-args.h
++++ b/src/libostree/ostree-kernel-args.h
+@@ -39,6 +39,9 @@ void _ostree_kernel_args_append (OstreeKernelArgs  *kargs,
+                                  const char     *key);
+ void _ostree_kernel_args_append_argv (OstreeKernelArgs  *kargs,
+                                       char **argv);
++void _ostree_kernel_args_append_argv_filtered (OstreeKernelArgs  *kargs,
++                                               char **argv,
++                                               char **prefixes);
+ gboolean _ostree_kernel_args_append_proc_cmdline (OstreeKernelArgs *kargs,
+                                                   GCancellable     *cancellable,
+diff --git a/tests/test-admin-deploy-karg.sh b/tests/test-admin-deploy-karg.sh
+index b7305f4..643aef7 100755
+--- a/tests/test-admin-deploy-karg.sh
++++ b/tests/test-admin-deploy-karg.sh
+@@ -46,6 +46,8 @@ ${CMD_PREFIX} ostree admin deploy --karg-proc-cmdline --os=testos testos:testos/
+ for arg in $(cat /proc/cmdline); do
+     case "$arg" in
+       ostree=*) # Skip ostree arg that gets stripped out
++        ;;
++      initrd=*|BOOT_IMAGE=*) # Skip options set by bootloader that gets filtered out
+          ;;
+       *) assert_file_has_content sysroot/boot/loader/entries/ostree-testos-0.conf "options.*$arg"
+          ;;
+diff --git a/tests/test-admin-instutil-set-kargs.sh b/tests/test-admin-instutil-set-kargs.sh
+index 40f4b74..132c933 100755
+--- a/tests/test-admin-instutil-set-kargs.sh
++++ b/tests/test-admin-instutil-set-kargs.sh
+@@ -58,6 +58,8 @@ for arg in $(cat /proc/cmdline); do
+     case "$arg" in
+       ostree=*) # Skip ostree arg that gets stripped out
+          ;;
++      initrd=*|BOOT_IMAGE=*) # Skip options set by bootloader that gets filtered out
++         ;;
+       *) assert_file_has_content sysroot/boot/loader/entries/ostree-testos-0.conf "options.*$arg"
+          ;;
+     esac
+-- 
+2.10.2
+
diff --git a/patches/Terminate-individual-tests-after-half-an-hour.patch b/patches/Terminate-individual-tests-after-half-an-hour.patch
new file mode 100644 (file)
index 0000000..3b279bb
--- /dev/null
@@ -0,0 +1,25 @@
+From: Simon McVittie <smcv@debian.org>
+Date: Fri, 9 Sep 2016 08:23:36 +0100
+Subject: Terminate individual tests after half an hour
+
+While using the Automake parallel test harness, if a test hangs for
+long enough for an external watchdog to kill the entire build process
+(as happens in Debian sbuild after 150 minutes with no activity on
+stdout/stderr), the logs will not be shown. If we make an individual
+test time out sooner, logs are more likely to be shown.
+
+Signed-off-by: Simon McVittie <smcv@debian.org>
+---
+ buildutil/tap-test | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/buildutil/tap-test b/buildutil/tap-test
+index 6b2eb5c..4971f0b 100755
+--- a/buildutil/tap-test
++++ b/buildutil/tap-test
+@@ -20,4 +20,4 @@ function cleanup () {
+ }
+ trap cleanup EXIT
+ cd ${tempdir}
+-${srcd}/${bn} -k --tap
++timeout --kill-after=60 1800 ${srcd}/${bn} -k --tap
diff --git a/patches/dist/Retrieve-some-missing-test-files-from-upstream-git.patch b/patches/dist/Retrieve-some-missing-test-files-from-upstream-git.patch
new file mode 100644 (file)
index 0000000..5ff1ed1
--- /dev/null
@@ -0,0 +1,946 @@
+From: Simon McVittie <smcv@debian.org>
+Date: Fri, 7 Oct 2016 23:14:40 +0100
+Subject: Retrieve some missing test files from upstream git
+
+These were missing from "make dist".
+---
+ tests/glib.supp          | 562 +++++++++++++++++++++++++++++++++++++++++++++++
+ tests/ostree.supp        |   1 +
+ tests/test-core.js       |  55 +++++
+ tests/test-corruption.sh |  43 ++++
+ tests/test-sizes.js      |  82 +++++++
+ tests/test-sysroot.js    | 147 +++++++++++++
+ 6 files changed, 890 insertions(+)
+ create mode 100644 tests/glib.supp
+ create mode 100644 tests/ostree.supp
+ create mode 100644 tests/test-core.js
+ create mode 100755 tests/test-corruption.sh
+ create mode 100644 tests/test-sizes.js
+ create mode 100644 tests/test-sysroot.js
+
+diff --git a/tests/glib.supp b/tests/glib.supp
+new file mode 100644
+index 0000000..7ac6ed8
+--- /dev/null
++++ b/tests/glib.supp
+@@ -0,0 +1,562 @@
++# This GLib suppressions file is known to be used at least by:
++#
++#  - rpm-software-management/libhif
++#
++# Please use the upstream verison in libhif for changes.
++{
++   gobject_init_1
++   Memcheck:Leak
++   ...
++   fun:gobject_init
++}
++{
++   g_type_register_static_1
++   Memcheck:Leak
++   ...
++   fun:g_type_register_static
++}
++{
++   g_type_register_dynamic
++   Memcheck:Leak
++   ...
++   fun:g_type_register_dynamic
++}
++{
++   g_type_register_fundamental
++   Memcheck:Leak
++   ...
++   fun:g_type_register_fundamental
++}
++{
++   g_type_init_with_debug_flags
++   Memcheck:Leak
++   ...
++   fun:g_type_init_with_debug_flags
++}
++{
++   g_type_class_ref_1
++   Memcheck:Leak
++   ...
++   fun:type_iface_vtable_base_init_Wm
++   ...
++   fun:g_type_class_ref
++}
++{
++   g_type_class_ref_2
++   Memcheck:Leak
++   ...
++   fun:type_class_init_Wm
++   ...
++   fun:g_type_class_ref
++}
++{
++   g_type_add_interface_static
++   Memcheck:Leak
++   ...
++   fun:g_type_add_interface_static
++}
++{
++   g_type_add_interface_dynamic
++   Memcheck:Leak
++   ...
++   fun:g_type_add_interface_dynamic
++}
++{
++   g_param_spec_internal
++   Memcheck:Leak
++   ...
++   fun:g_type_class_ref
++   fun:g_type_create_instance
++   fun:g_param_spec_internal
++}
++{
++   g_param_spec_enum
++   Memcheck:Leak
++   ...
++   fun:g_type_class_ref
++   fun:g_param_spec_enum
++}
++{
++   g_param_spec_flags
++   Memcheck:Leak
++   ...
++   fun:g_type_class_ref
++   fun:g_param_spec_flags
++}
++{
++   g_quark_from_static_string
++   Memcheck:Leak
++   ...
++   fun:g_quark_from_static_string
++}
++{
++   g_quark_from_string
++   Memcheck:Leak
++   ...
++   fun:g_quark_from_string
++}
++{
++   g_value_register_transform_func
++   Memcheck:Leak
++   ...
++   fun:g_value_register_transform_func
++}
++{
++   test_run_seed
++   Memcheck:Leak
++   ...
++   fun:g_rand_new_with_seed_array
++   fun:test_run_seed
++   ...
++   fun:g_test_run_suite
++}
++{
++   g_test_init
++   Memcheck:Leak
++   ...
++   fun:g_rand_new_with_seed_array
++   ...
++   fun:g_test_init
++}
++{
++   g_intern_static_string
++   Memcheck:Leak
++   ...
++   fun:g_intern_static_string
++}
++{
++   g_main_context_push_thread_default
++   Memcheck:Leak
++   ...
++   fun:g_queue_new
++   fun:g_main_context_push_thread_default
++}
++{
++   g_main_context_push_thread_default_inlined
++   Memcheck:Leak
++   ...
++   fun:g_slice_alloc0
++   fun:g_main_context_push_thread_default
++}
++{
++   g_dbus_error_register_error
++   Memcheck:Leak
++   ...
++   fun:g_dbus_error_register_error
++}
++{
++   g_param_spec_pool_insert
++   Memcheck:Leak
++   ...
++   fun:g_param_spec_pool_insert
++}
++{
++   g_main_context_default
++   Memcheck:Leak
++   ...
++   fun:g_main_context_default
++}
++{
++   g_main_context_check
++   Memcheck:Leak
++   ...
++   fun:g_ptr_array_add
++   fun:g_main_context_check
++}
++{
++   g_test_run_suite
++   Memcheck:Leak
++   ...
++   fun:g_slist_copy
++   fun:g_test_run_suite_internal
++   fun:g_test_run_suite
++}
++{
++   g_dbus_interface_info_cache_build
++   Memcheck:Leak
++   ...
++   fun:g_dbus_interface_info_cache_build
++}
++{
++   g_cancellable_push_current
++   Memcheck:Leak
++   ...
++   fun:thread_memory_from_self
++   ...
++   fun:g_cancellable_push_current
++}
++{
++   _g_io_module_get_default
++   Memcheck:Leak
++   ...
++   fun:g_io_module_new
++   fun:g_io_modules_scan_all_in_directory_with_scope
++   fun:_g_io_modules_ensure_loaded
++   fun:_g_io_module_get_default
++}
++{
++   g_io_scheduler_push_job
++   Memcheck:Leak
++   ...
++   fun:init_scheduler
++   fun:g_once_impl
++   fun:g_io_scheduler_push_job
++}
++{
++   g_io_scheduler_push_job_2
++   Memcheck:Leak
++   ...
++   fun:g_system_thread_new
++   ...
++   fun:g_io_scheduler_push_job
++}
++{
++   g_bus_get_sync__available_connections
++   Memcheck:Leak
++   ...
++   fun:g_hash_table_new
++   fun:initable_init
++   fun:g_initable_init
++   fun:g_bus_get_sync
++}
++{
++   g_socket_connection_factory_register_type
++   Memcheck:Leak
++   ...
++   fun:g_socket_connection_factory_register_type
++}
++{
++   g_test_add_vtable
++   Memcheck:Leak
++   ...
++   fun:g_test_add_vtable
++}
++{
++   g_mutex_lock
++   Memcheck:Leak
++   ...
++   fun:g_mutex_impl_new
++   fun:g_mutex_get_impl
++   fun:g_mutex_lock
++}
++{
++   g_thread_self
++   Memcheck:Leak
++   ...
++   fun:g_thread_self
++}
++{
++   g_rec_mutex_lock
++   Memcheck:Leak
++   ...
++   fun:g_rec_mutex_impl_new
++   fun:g_rec_mutex_get_impl
++   fun:g_rec_mutex_lock
++}
++{
++   test_case_run
++   Memcheck:Leak
++   ...
++   fun:g_malloc0
++   fun:test_case_run
++   ...
++   fun:g_test_run_suite
++}
++{
++   g_get_charset
++   Memcheck:Leak
++   ...
++   fun:g_get_charset
++}
++{
++   g_test_run_suite__timer_new
++   Memcheck:Leak
++   ...
++   fun:g_timer_new
++   fun:test_case_run
++   ...
++   fun:g_test_run_suite
++}
++{
++   g_test_run_suite__timer_new2
++   Memcheck:Leak
++   ...
++   fun:g_timer_new
++   fun:test_case_run_suite_internal
++   ...
++   fun:g_test_run_suite
++}
++{
++   g_test_run_suite__strconcat
++   Memcheck:Leak
++   ...
++   fun:g_strconcat
++   fun:test_case_run
++   ...
++   fun:g_test_run_suite
++   fun:g_test_run
++}
++{
++   g_type_interface_add_prerequisite
++   Memcheck:Leak
++   ...
++   fun:g_type_interface_add_prerequisite
++}
++{
++   <insert_a_suppression_name_here>
++   Memcheck:Leak
++   ...
++   fun:g_slist_copy
++   fun:g_test_run_suite_internal
++   ...
++   fun:g_test_run_suite
++}
++{
++   g_set_prgname
++   Memcheck:Leak
++   ...
++   fun:g_set_prgname
++}
++{
++   g_test_run_suite__strconcat_2
++   Memcheck:Leak
++   ...
++   fun:g_strconcat
++   fun:g_test_run_suite_internal
++}
++{
++   g_test_run_suite__strdup
++   Memcheck:Leak
++   ...
++   fun:g_strdup
++   fun:g_test_run_suite_internal
++}
++{
++   g_private_get
++   Memcheck:Leak
++   ...
++   fun:g_private_get
++}
++{
++   g_private_set
++   Memcheck:Leak
++   ...
++   fun:g_private_set
++}
++{
++   g_static_mutex_get_mutex_impl
++   Memcheck:Leak
++   ...
++   fun:g_static_mutex_get_mutex_impl
++}
++{
++   g_variant_type_info_unref
++   Memcheck:Leak
++   ...
++   fun:g_hash_table_remove
++   fun:g_variant_type_info_unref
++}
++{
++   g_rw_lock_reader_lock
++   Memcheck:Leak
++   ...
++   fun:g_rw_lock_impl_new
++   fun:g_rw_lock_get_impl
++   fun:g_rw_lock_reader_lock
++}
++{
++   g_child_watch_finalize__rt_sigaction
++   Memcheck:Param
++   rt_sigaction(act->sa_flags)
++   fun:__libc_sigaction
++   ...
++   fun:g_child_watch_finalize
++}
++{
++   g_dbus_worker_new
++   Memcheck:Leak
++   fun:calloc
++   ...
++   fun:_g_dbus_worker_new
++}
++{
++   gdbus_shared_thread_func
++   Memcheck:Leak
++   match-leak-kinds: definite
++   ...
++   fun:g_malloc
++   ...
++   fun:gdbus_shared_thread_func
++}
++{
++   g_task_start_task_thread
++   Memcheck:Leak
++   match-leak-kinds: definite
++   fun:malloc
++   fun:g_malloc
++   fun:g_slice_alloc
++   fun:g_slice_alloc0
++   ...
++   fun:g_thread_pool_push
++   fun:g_task_start_task_thread
++}
++{
++   g_task_to_pool
++   Memcheck:Leak
++   ...
++   fun:g_thread_pool_start_thread
++   ...
++   fun:g_task_run_in_thread
++}
++{
++   g_get_language_names
++   Memcheck:Leak
++   match-leak-kinds: definite
++   fun:calloc
++   fun:g_malloc0
++   fun:g_get_language_names
++}
++{
++   g_get_filename_charsets
++   Memcheck:Leak
++   match-leak-kinds: definite
++   ...
++   fun:g_get_filename_charsets
++   fun:g_filename_display_name
++}
++{
++   g_main_current_source
++   Memcheck:Leak
++   match-leak-kinds: definite
++   fun:malloc
++   fun:g_malloc
++   ...
++   fun:g_main_current_source
++   fun:g_task_return
++   fun:g_task_thread_pool_thread
++}
++{
++   g_once_init_enter
++   Memcheck:Leak
++   match-leak-kinds: definite
++   ...
++   fun:g_once_init_enter
++}
++{
++   g_child_watch_source_new
++   Memcheck:Leak
++   match-leak-kinds: definite
++   ...
++   fun:g_thread_new
++   ...
++   fun:g_child_watch_source_new
++}
++{
++   continue_writing_in_idle_cb
++   Memcheck:Leak
++   match-leak-kinds: definite
++   ...
++   fun:g_task_new
++   ...
++   fun:continue_writing_in_idle_cb
++   fun:g_main_context_dispatch
++}
++{
++   g_main_current_source
++   Memcheck:Leak
++   match-leak-kinds: definite
++   fun:malloc
++   ...
++   fun:g_main_current_source
++}
++{
++   g_thread_pool_push
++   Memcheck:Leak
++   match-leak-kinds: definite
++   fun:malloc
++   ...
++   fun:g_thread_pool_push
++}
++{
++   leak_test_dbus_dispose
++   Memcheck:Leak
++   match-leak-kinds: definite
++   fun:malloc
++   ...
++   fun:g_main_loop_run
++   fun:g_test_dbus_down
++}
++{
++   leak_test_dbus_down
++   Memcheck:Leak
++   match-leak-kinds: definite
++   fun:calloc
++   fun:g_malloc0
++   fun:g_main_loop_new
++   fun:g_test_dbus_down
++}
++{
++   leak_socket_client_connect
++   Memcheck:Leak
++   match-leak-kinds: definite
++   fun:malloc
++   fun:g_malloc
++   fun:g_slice_alloc
++   fun:g_slice_alloc0
++   fun:g_socket_client_connect_async
++   fun:g_socket_client_connect_to_uri_async
++}
++{
++   leak_signal_handlers_disconnect_matched
++   Memcheck:Leak
++   match-leak-kinds: definite
++   fun:calloc
++   fun:g_malloc0
++   ...
++   fun:g_slice_alloc
++   ...
++   fun:g_signal_handlers_disconnect_matched
++}
++{
++   g_tls_connection_gnutls_init_priorities
++   Memcheck:Leak
++   match-leak-kinds: definite
++   fun:malloc
++   fun:g_malloc
++   fun:g_strdup
++   fun:g_tls_connection_gnutls_init_priorities
++}
++{
++   g_tls_connection_gnutls_heisenbug_likely_same_as_above
++   Memcheck:Leak
++   match-leak-kinds: definite
++   fun:malloc
++   fun:g_malloc
++   fun:g_strdup
++   ...
++   fun:g_tls_client_connection_new
++}
++{
++   g_unix_signal_add_full
++   Memcheck:Leak
++   match-leak-kinds: definite
++   fun:malloc
++   fun:g_malloc
++   ...
++   fun:g_thread_new
++   ...
++   fun:g_unix_signal_add_full
++}
++{
++   glib_worker_1
++   Memcheck:Leak
++   ...
++   fun:glib_worker_main
++}
++{
++   glib_worker_2
++   Memcheck:Leak
++   ...
++   fun:g_thread_new
++   fun:g_get_worker_context
++}
+diff --git a/tests/ostree.supp b/tests/ostree.supp
+new file mode 100644
+index 0000000..b81ea51
+--- /dev/null
++++ b/tests/ostree.supp
+@@ -0,0 +1 @@
++# Use this to suppress "possibly lost" for global statics
+diff --git a/tests/test-core.js b/tests/test-core.js
+new file mode 100644
+index 0000000..e9ace6e
+--- /dev/null
++++ b/tests/test-core.js
+@@ -0,0 +1,55 @@
++#!/usr/bin/env gjs
++//
++// Copyright (C) 2013 Colin Walters <walters@verbum.org>
++//
++// 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.
++
++const Gio = imports.gi.Gio;
++const OSTree = imports.gi.OSTree;
++
++function assertEquals(a, b) {
++    if (a != b)
++      throw new Error("assertion failed " + JSON.stringify(a) + " == " + JSON.stringify(b));
++}
++
++let testDataDir = Gio.File.new_for_path('test-data');
++testDataDir.make_directory(null);
++testDataDir.get_child('some-file').replace_contents("hello world!", null, false, 0, null);
++
++let repoPath = Gio.File.new_for_path('repo');
++let repo = OSTree.Repo.new(repoPath);
++repo.create(OSTree.RepoMode.ARCHIVE_Z2, null);
++
++repo.open(null);
++
++assertEquals(repo.get_mode(), OSTree.RepoMode.ARCHIVE_Z2);
++
++repo.prepare_transaction(null);
++
++let mtree = OSTree.MutableTree.new();
++repo.write_directory_to_mtree(testDataDir, mtree, null, null);
++let [,dirTree] = repo.write_mtree(mtree, null);
++let [,commit] = repo.write_commit(null, 'Some subject', 'Some body', null, dirTree, null);
++print("commit => " + commit);
++
++repo.commit_transaction(null, null);
++
++let [,root,checksum] = repo.read_commit(commit, null);
++let child = root.get_child('some-file');
++let info = child.query_info("standard::name,standard::type,standard::size", 0, null);
++assertEquals(info.get_size(), 12);
++
++print("test-core complete");
+diff --git a/tests/test-corruption.sh b/tests/test-corruption.sh
+new file mode 100755
+index 0000000..ef0e94e
+--- /dev/null
++++ b/tests/test-corruption.sh
+@@ -0,0 +1,43 @@
++#!/bin/bash
++#
++# Copyright (C) 2011 Colin Walters <walters@verbum.org>
++#
++# 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
++
++echo "1..2"
++
++. $(dirname $0)/libtest.sh
++
++setup_test_repository "bare"
++$OSTREE checkout test2 checkout-test2
++cd checkout-test2
++chmod o+x firstfile
++$OSTREE fsck -q && (echo 1>&2 "fsck unexpectedly succeeded"; exit 1)
++chmod o-x firstfile
++$OSTREE fsck -q
++
++echo "ok chmod"
++
++cd ${test_tmpdir}
++rm checkout-test2 -rf
++$OSTREE checkout test2 checkout-test2
++cd checkout-test2
++chmod o+x firstfile
++$OSTREE fsck -q --delete && (echo 1>&2 "fsck unexpectedly succeeded"; exit 1)
++
++echo "ok chmod"
+diff --git a/tests/test-sizes.js b/tests/test-sizes.js
+new file mode 100644
+index 0000000..5cf765f
+--- /dev/null
++++ b/tests/test-sizes.js
+@@ -0,0 +1,82 @@
++#!/usr/bin/env gjs
++//
++// Copyright (C) 2013 Colin Walters <walters@verbum.org>
++//
++// 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.
++
++const GLib = imports.gi.GLib;
++const Gio = imports.gi.Gio;
++const OSTree = imports.gi.OSTree;
++
++function assertEquals(a, b) {
++    if (a != b)
++      throw new Error("assertion failed " + JSON.stringify(a) + " == " + JSON.stringify(b));
++}
++
++let testDataDir = Gio.File.new_for_path('test-data');
++testDataDir.make_directory(null);
++testDataDir.get_child('some-file').replace_contents("hello world!", null, false, 0, null);
++testDataDir.get_child('another-file').replace_contents("hello world again!", null, false, 0, null);
++
++let repoPath = Gio.File.new_for_path('repo');
++let repo = OSTree.Repo.new(repoPath);
++repo.create(OSTree.RepoMode.ARCHIVE_Z2, null);
++
++repo.open(null);
++
++let commitModifier = OSTree.RepoCommitModifier.new(OSTree.RepoCommitModifierFlags.GENERATE_SIZES, null);
++
++assertEquals(repo.get_mode(), OSTree.RepoMode.ARCHIVE_Z2);
++
++repo.prepare_transaction(null);
++
++let mtree = OSTree.MutableTree.new();
++repo.write_directory_to_mtree(testDataDir, mtree, commitModifier, null);
++let [,dirTree] = repo.write_mtree(mtree, null);
++let [,commit] = repo.write_commit(null, 'Some subject', 'Some body', null, dirTree, null);
++print("commit => " + commit);
++
++repo.commit_transaction(null, null);
++
++// Test the sizes metadata
++let [,commitVariant] = repo.load_variant(OSTree.ObjectType.COMMIT, commit);
++let metadata = commitVariant.get_child_value(0);
++let sizes = metadata.lookup_value('ostree.sizes', GLib.VariantType.new('aay'));
++let nSizes = sizes.n_children();
++assertEquals(nSizes, 2);
++let expectedUncompressedSizes = [12, 18];
++let foundExpectedUncompressedSizes = 0;
++for (let i = 0; i < nSizes; i++) {
++    let sizeEntry = sizes.get_child_value(i).deep_unpack();
++    assertEquals(sizeEntry.length, 34);
++    let compressedSize = sizeEntry[32];
++    let uncompressedSize = sizeEntry[33];
++    print("compressed = " + compressedSize);
++    print("uncompressed = " + uncompressedSize);
++    for (let j = 0; j < expectedUncompressedSizes.length; j++) {
++      let expected = expectedUncompressedSizes[j];
++      if (expected == uncompressedSize) {
++          print("Matched expected uncompressed size " + expected);
++          expectedUncompressedSizes.splice(j, 1);
++          break;
++      }
++    }
++}
++if (expectedUncompressedSizes.length > 0) {
++    throw new Error("Failed to match expectedUncompressedSizes: " + JSON.stringify(expectedUncompressedSizes));
++}
++
++print("test-sizes complete");
+diff --git a/tests/test-sysroot.js b/tests/test-sysroot.js
+new file mode 100644
+index 0000000..7e8fcf7
+--- /dev/null
++++ b/tests/test-sysroot.js
+@@ -0,0 +1,147 @@
++#!/usr/bin/env gjs
++//
++// Copyright (C) 2013 Colin Walters <walters@verbum.org>
++//
++// 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.
++
++const GLib = imports.gi.GLib;
++const Gio = imports.gi.Gio;
++const OSTree = imports.gi.OSTree;
++
++function assertEquals(a, b) {
++    if (a != b)
++      throw new Error("assertion failed " + JSON.stringify(a) + " == " + JSON.stringify(b));
++}
++
++function assertNotEquals(a, b) {
++    if (a == b)
++      throw new Error("assertion failed " + JSON.stringify(a) + " != " + JSON.stringify(b));
++}
++
++function libtestExec(shellCode) {
++    let testdatadir = GLib.getenv("G_TEST_SRCDIR");
++    let libtestPath = GLib.build_filenamev([testdatadir, 'libtest.sh'])
++    let proc = Gio.Subprocess.new(['bash', '-c', 'set -xeuo pipefail; . ' + GLib.shell_quote(libtestPath) + '; ' + shellCode], 0);
++    proc.wait_check(null);
++}
++
++libtestExec('setup_os_repository archive-z2 syslinux');
++
++let upstreamRepo = OSTree.Repo.new(Gio.File.new_for_path('testos-repo'));
++upstreamRepo.open(null);
++
++let runtimeRef = 'testos/buildmaster/x86_64-runtime';
++let [,rev] = upstreamRepo.resolve_rev(runtimeRef, false);
++
++print("testos => " + rev);
++
++//// TEST: We should have no deployments
++
++let sysroot = OSTree.Sysroot.new(Gio.File.new_for_path('sysroot'));
++sysroot.load(null);
++let deployments = sysroot.get_deployments();
++assertEquals(deployments.length, 0);
++
++//// Add the remote, and do a pull
++
++let [,sysrootRepo] = sysroot.get_repo(null);
++sysrootRepo.remote_add('testos', 'file://' + upstreamRepo.get_path().get_path(),
++                     GLib.Variant.new('a{sv}', {'gpg-verify': GLib.Variant.new('b', false),
++                                                'branches': GLib.Variant.new('as', [runtimeRef])}), null);
++sysrootRepo.pull('testos', null, 0, null, null);
++
++//// TEST: We can deploy one tree
++
++let mergeDeployment = sysroot.get_merge_deployment('testos');
++
++let origin = sysroot.origin_new_from_refspec(runtimeRef);
++let [,deployment] = sysroot.deploy_tree('testos', rev, origin,
++                                      mergeDeployment, null,
++                                      null);
++let newDeployments = deployments;
++deployments = null;
++newDeployments.unshift(deployment);
++sysroot.write_deployments(newDeployments, null);
++deployments = sysroot.get_deployments();
++assertEquals(deployments.length, newDeployments.length);
++assertEquals(deployments[0].get_csum(), deployment.get_csum());
++
++let deploymentPath = sysroot.get_deployment_directory(deployment);
++assertEquals(deploymentPath.query_exists(null), true);
++
++print("OK one deployment");
++
++/// TEST: We can delete the deployment, going back to empty
++sysroot.write_deployments([], null);
++
++print("OK empty deployments");
++
++assertEquals(deploymentPath.query_exists(null), false);
++
++//// Ok, redeploy, then add a new revision upstream and pull it
++
++let [,deployment] = sysroot.deploy_tree('testos', rev, origin,
++                                      mergeDeployment, null,
++                                      null);
++newDeployments = deployments;
++deployments = null;
++newDeployments.unshift(deployment);
++print(JSON.stringify(newDeployments));
++sysroot.write_deployments(newDeployments, null);
++
++libtestExec('os_repository_new_commit');
++
++sysrootRepo.pull('testos', null, 0, null, null);
++
++let [,newRev] = upstreamRepo.resolve_rev(runtimeRef, false);
++
++print("testos => " + newRev);
++assertNotEquals(rev, newRev);
++
++mergeDeployment = sysroot.get_merge_deployment('testos');
++assertEquals(mergeDeployment.get_csum(), deployment.get_csum());
++let [,newDeployment] = sysroot.deploy_tree('testos', newRev, origin,
++                                         mergeDeployment, null,
++                                         null);
++newDeployments = [newDeployment, mergeDeployment];
++assertNotEquals(mergeDeployment.get_bootcsum(), newDeployment.get_bootcsum());
++assertNotEquals(mergeDeployment.get_csum(), newDeployment.get_csum());
++sysroot.write_deployments(newDeployments, null);
++deployments = sysroot.get_deployments();
++assertEquals(deployments.length, 2);
++assertEquals(deploymentPath.query_exists(null), true);
++let newDeploymentPath = sysroot.get_deployment_directory(newDeployment);
++assertEquals(newDeploymentPath.query_exists(null), true);
++
++print("OK two deployments");
++
++libtestExec('os_repository_new_commit 0 1');
++
++sysrootRepo.pull('testos', null, 0, null, null);
++
++let [,thirdRev] = sysrootRepo.resolve_rev(runtimeRef, false);
++assertNotEquals(newRev, thirdRev);
++
++mergeDeployment = sysroot.get_merge_deployment('testos');
++let [,thirdDeployment] = sysroot.deploy_tree('testos', thirdRev, origin,
++                                           mergeDeployment, null,
++                                           null);
++assertEquals(mergeDeployment.get_bootcsum(), thirdDeployment.get_bootcsum());
++assertNotEquals(mergeDeployment.get_csum(), thirdDeployment.get_csum());
++newDeployments = [deployment, newDeployment, thirdDeployment];
++sysroot.write_deployments(newDeployments, null);
++deployments = sysroot.get_deployments();
++assertEquals(deployments.length, 3);
diff --git a/patches/series b/patches/series
new file mode 100644 (file)
index 0000000..0b5a666
--- /dev/null
@@ -0,0 +1,3 @@
+Terminate-individual-tests-after-half-an-hour.patch
+dist/Retrieve-some-missing-test-files-from-upstream-git.patch
+Filter-bootloader-supplied-kernel-cmdline-options.patch
diff --git a/rules b/rules
new file mode 100755 (executable)
index 0000000..a0edd3e
--- /dev/null
+++ b/rules
@@ -0,0 +1,74 @@
+#!/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
+
+%:
+       dh $@ --with=gir
+
+override_dh_auto_clean:
+       if [ -e Makefile ]; then dh_auto_clean; fi
+
+override_dh_autoreconf:
+       env NOCONFIGURE=1 dh_autoreconf ./autogen.sh
+
+override_dh_auto_configure:
+       dh_auto_configure -- \
+               --disable-silent-rules \
+               --enable-gtk-doc \
+               --enable-installed-tests \
+               --libexecdir='$${prefix}/lib' \
+               --with-dracut \
+               --with-grub2 \
+               --with-grub2-mkconfig-path=/usr/sbin/grub-mkconfig \
+               --with-systemdsystemunitdir=/lib/systemd/system \
+               $(NULL)
+       chmod +x tests/*.js
+       chmod +x tests/*.sh
+
+override_dh_auto_test:
+       debian/test.sh
+
+override_dh_auto_install:
+       dh_auto_install
+       # 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)
+
+override_dh_install:
+       rm -f debian/tmp/usr/lib/*/*.la
+       rm -f debian/tmp/usr/lib/installed-tests/ostree/*.la
+       :
+       # FIXME: 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/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/ostree/grub2-15_ostree
+       rm -f debian/tmp/usr/lib/ostree/ostree-prepare-root
+       rm -f debian/tmp/usr/lib/ostree/ostree-remount
+       :
+       dh_install --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 -X'*.js'
+       chmod -v 0755 debian/ostree-tests/usr/lib/installed-tests/ostree/*.js
+       chmod -v 0755 debian/ostree-tests/usr/lib/installed-tests/ostree/*.py
+       chmod -v 0755 debian/ostree-tests/usr/lib/installed-tests/ostree/*.sh
+       # this one is a library, not a script
+       chmod -v 0644 debian/ostree-tests/usr/lib/installed-tests/ostree/libtest.sh
+
+override_dh_systemd_start:
+       dh_systemd_start --no-start
diff --git a/source/format b/source/format
new file mode 100644 (file)
index 0000000..163aaf8
--- /dev/null
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/test.sh b/test.sh
new file mode 100755 (executable)
index 0000000..dc8eed2
--- /dev/null
+++ b/test.sh
@@ -0,0 +1,48 @@
+#!/bin/sh
+
+set -e
+
+ignore=
+
+case "$DEB_HOST_ARCH" in
+    (mipsel)
+        ignore=yes
+        ;;
+esac
+
+export VERBOSE=1
+
+try_tests=5
+
+failed=0
+make check || failed=1
+
+if [ "$failed" -gt 0 ] || [ -n "$ignore" ]; then
+    [ "$failed" -eq 0 ] || echo "Test failed! Checking how reproducible it is..."
+    for i in $(seq 1 "$(( $try_tests - 1 ))"); do
+        if ! make check; then
+            failed=$(( $failed + 1 ))
+        fi
+    done
+fi
+
+pkill --full "gpg-agent --homedir /var/tmp/tap-test\\.[^/]+/.*" || :
+
+if pgrep lt-ostree || 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 lt-ostree | xargs --no-run-if-empty ps ww
+fi
+
+if [ "$failed" -gt 0 ]; then
+    echo "Failed $failed out of $try_tests test runs"
+    if [ -z "$ignore" ]; then
+        exit 1
+    else
+        echo "Ignoring test failure for this architecture"
+    fi
+fi
+
+exit 0
+
+# vim:set et sw=4 sts=4:
diff --git a/tests/build b/tests/build
new file mode 100755 (executable)
index 0000000..594e4f7
--- /dev/null
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+set -e
+exec 2>&1
+set -x
+
+cd "$ADTTMP"
+
+cat > trivial.c <<EOF
+#include <ostree.h>
+
+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 (file)
index 0000000..88ffde7
--- /dev/null
@@ -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 (executable)
index 0000000..e3015cc
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+set -e
+exec 2>&1
+
+exec gnome-desktop-testing-runner ostree
diff --git a/watch b/watch
new file mode 100644 (file)
index 0000000..0d9ef4e
--- /dev/null
+++ b/watch
@@ -0,0 +1,2 @@
+version=4
+https://github.com/ostreedev/ostree/releases .*/ostree-(\d\S*)\.tar\.xz