mirror of
https://github.com/ostreedev/ostree.git
synced 2025-02-23 13:57:44 +03:00
repo+tests: Add [core]disable-xattrs=true, use it on overlayfs
There are a lot of things suboptimal about this approach, but on the other hand we need to get our CI back up and running. The basic approach is to - in the test suite, detect if we're on overlayfs. If so, set a flag in the repo, which gets picked up by a few strategic places in the core to turn on "ignore xattrs". I also had to add a variant of this for the sysroot work. The core problem here is while overlayfs will let us read and see the SELinux labels, it won't let us write them. Down the line, we should improve this so that we can selectively ignore e.g. `security.*` attributes but not `user.*` say. Closes: https://github.com/ostreedev/ostree/issues/758 Closes: #759 Approved by: jlebon
This commit is contained in:
parent
4d873389f0
commit
455cc5e892
@ -43,7 +43,7 @@ assert_streq() {
|
||||
|
||||
validate_delta_options() {
|
||||
mkdir testrepo
|
||||
ostree --repo=testrepo init --mode=bare-user
|
||||
ostree_repo_init testrepo --mode=bare-user
|
||||
ostree --repo=testrepo remote add --set=gpg-verify=false local file://${repo}
|
||||
ostree --repo=${repo} static-delta generate $@ --from=${from} --to=${to}
|
||||
ostree --repo=testrepo pull --require-static-deltas local ${branch}@${from}
|
||||
|
@ -24,6 +24,7 @@
|
||||
|
||||
#include "libglnx.h"
|
||||
#include "ostree.h"
|
||||
#include "ostree-repo-private.h"
|
||||
#include "otutil.h"
|
||||
|
||||
static gboolean
|
||||
@ -269,6 +270,19 @@ ostree_diff_dirs_with_options (OstreeDiffFlags flags,
|
||||
if (!options)
|
||||
options = &default_opts;
|
||||
|
||||
/* If we're diffing versus a repo, and either of them have xattrs disabled,
|
||||
* then disable for both.
|
||||
*/
|
||||
OstreeRepo *repo;
|
||||
if (OSTREE_IS_REPO_FILE (a))
|
||||
repo = ostree_repo_file_get_repo ((OstreeRepoFile*)a);
|
||||
else if (OSTREE_IS_REPO_FILE (b))
|
||||
repo = ostree_repo_file_get_repo ((OstreeRepoFile*)b);
|
||||
else
|
||||
repo = NULL;
|
||||
if (repo != NULL && repo->disable_xattrs)
|
||||
flags |= OSTREE_DIFF_FLAGS_IGNORE_XATTRS;
|
||||
|
||||
if (a == NULL)
|
||||
{
|
||||
if (!diff_add_dir_recurse (b, added, cancellable, error))
|
||||
|
@ -2304,7 +2304,8 @@ get_modified_xattrs (OstreeRepo *self,
|
||||
ret_xattrs = modifier->xattr_callback (self, relpath, file_info,
|
||||
modifier->xattr_user_data);
|
||||
}
|
||||
else if (!(modifier && (modifier->flags & OSTREE_REPO_COMMIT_MODIFIER_FLAGS_SKIP_XATTRS) > 0))
|
||||
else if (!(modifier && (modifier->flags & OSTREE_REPO_COMMIT_MODIFIER_FLAGS_SKIP_XATTRS) > 0)
|
||||
&& !self->disable_xattrs)
|
||||
{
|
||||
if (path && OSTREE_IS_REPO_FILE (path))
|
||||
{
|
||||
|
@ -100,6 +100,7 @@ struct OstreeRepo {
|
||||
GError *writable_error;
|
||||
gboolean in_transaction;
|
||||
gboolean disable_fsync;
|
||||
gboolean disable_xattrs;
|
||||
guint zlib_compression_level;
|
||||
GHashTable *loose_object_devino_hash;
|
||||
GHashTable *updated_uncompressed_dirs;
|
||||
|
@ -1584,8 +1584,9 @@ ostree_repo_remote_gpg_import (OstreeRepo *self,
|
||||
|
||||
if (fstatat (self->repo_dir_fd, remote->keyring, &stbuf, AT_SYMLINK_NOFOLLOW) == 0)
|
||||
{
|
||||
GLnxFileCopyFlags copyflags = self->disable_xattrs ? GLNX_FILE_COPY_NOXATTRS : 0;
|
||||
if (!glnx_file_copy_at (self->repo_dir_fd, remote->keyring,
|
||||
&stbuf, target_temp_fd, "pubring.gpg", 0,
|
||||
&stbuf, target_temp_fd, "pubring.gpg", copyflags,
|
||||
cancellable, error))
|
||||
{
|
||||
g_prefix_error (error, "Unable to copy remote's keyring: ");
|
||||
@ -2067,6 +2068,11 @@ reload_core_config (OstreeRepo *self,
|
||||
ostree_repo_set_disable_fsync (self, TRUE);
|
||||
}
|
||||
|
||||
/* See https://github.com/ostreedev/ostree/issues/758 */
|
||||
if (!ot_keyfile_get_boolean_with_default (self->config, "core", "disable-xattrs",
|
||||
TRUE, &self->disable_xattrs, error))
|
||||
return FALSE;
|
||||
|
||||
{ g_autofree char *tmp_expiry_seconds = NULL;
|
||||
|
||||
/* 86400 secs = one day */
|
||||
@ -2920,8 +2926,10 @@ ostree_repo_load_file (OstreeRepo *self,
|
||||
|
||||
if (out_xattrs)
|
||||
{
|
||||
if (!glnx_fd_get_all_xattrs (fd, &ret_xattrs,
|
||||
cancellable, error))
|
||||
if (self->disable_xattrs)
|
||||
ret_xattrs = g_variant_ref_sink (g_variant_new_array (G_VARIANT_TYPE ("(ayay)"), NULL, 0));
|
||||
else if (!glnx_fd_get_all_xattrs (fd, &ret_xattrs,
|
||||
cancellable, error))
|
||||
goto out;
|
||||
}
|
||||
|
||||
@ -2934,15 +2942,17 @@ ostree_repo_load_file (OstreeRepo *self,
|
||||
else if (g_file_info_get_file_type (ret_file_info) == G_FILE_TYPE_SYMBOLIC_LINK
|
||||
&& out_xattrs)
|
||||
{
|
||||
if (!glnx_dfd_name_get_all_xattrs (self->objects_dir_fd, loose_path_buf,
|
||||
&ret_xattrs,
|
||||
cancellable, error))
|
||||
if (self->disable_xattrs)
|
||||
ret_xattrs = g_variant_ref_sink (g_variant_new_array (G_VARIANT_TYPE ("(ayay)"), NULL, 0));
|
||||
else if (!glnx_dfd_name_get_all_xattrs (self->objects_dir_fd, loose_path_buf,
|
||||
&ret_xattrs,
|
||||
cancellable, error))
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (!found)
|
||||
{
|
||||
if (self->parent_repo)
|
||||
|
@ -88,6 +88,15 @@ symlink_at_replace (const char *oldpath,
|
||||
return ret;
|
||||
}
|
||||
|
||||
static GLnxFileCopyFlags
|
||||
sysroot_flags_to_copy_flags (GLnxFileCopyFlags defaults,
|
||||
OstreeSysrootDebugFlags sysrootflags)
|
||||
{
|
||||
if (sysrootflags & OSTREE_SYSROOT_DEBUG_NO_XATTRS)
|
||||
defaults |= GLNX_FILE_COPY_NOXATTRS;
|
||||
return defaults;
|
||||
}
|
||||
|
||||
/* Try a hardlink if we can, otherwise fall back to copying. Used
|
||||
* right now for kernels/initramfs in /boot, where we can just
|
||||
* hardlink if we're on the same partition.
|
||||
@ -97,6 +106,7 @@ hardlink_or_copy_at (int src_dfd,
|
||||
const char *src_subpath,
|
||||
int dest_dfd,
|
||||
const char *dest_subpath,
|
||||
OstreeSysrootDebugFlags flags,
|
||||
GCancellable *cancellable,
|
||||
GError **error)
|
||||
{
|
||||
@ -106,7 +116,8 @@ hardlink_or_copy_at (int src_dfd,
|
||||
{
|
||||
if (errno == EMLINK || errno == EXDEV)
|
||||
{
|
||||
return glnx_file_copy_at (src_dfd, src_subpath, NULL, dest_dfd, dest_subpath, 0,
|
||||
return glnx_file_copy_at (src_dfd, src_subpath, NULL, dest_dfd, dest_subpath,
|
||||
sysroot_flags_to_copy_flags (0, flags),
|
||||
cancellable, error);
|
||||
}
|
||||
else
|
||||
@ -126,6 +137,7 @@ dirfd_copy_attributes_and_xattrs (int src_parent_dfd,
|
||||
const char *src_name,
|
||||
int src_dfd,
|
||||
int dest_dfd,
|
||||
OstreeSysrootDebugFlags flags,
|
||||
GCancellable *cancellable,
|
||||
GError **error)
|
||||
{
|
||||
@ -136,13 +148,16 @@ dirfd_copy_attributes_and_xattrs (int src_parent_dfd,
|
||||
/* Clone all xattrs first, so we get the SELinux security context
|
||||
* right. This will allow other users access if they have ACLs, but
|
||||
* oh well.
|
||||
*/
|
||||
if (!glnx_dfd_name_get_all_xattrs (src_parent_dfd, src_name,
|
||||
&xattrs, cancellable, error))
|
||||
goto out;
|
||||
if (!glnx_fd_set_all_xattrs (dest_dfd, xattrs,
|
||||
cancellable, error))
|
||||
goto out;
|
||||
*/
|
||||
if (!(flags & OSTREE_SYSROOT_DEBUG_NO_XATTRS))
|
||||
{
|
||||
if (!glnx_dfd_name_get_all_xattrs (src_parent_dfd, src_name,
|
||||
&xattrs, cancellable, error))
|
||||
goto out;
|
||||
if (!glnx_fd_set_all_xattrs (dest_dfd, xattrs,
|
||||
cancellable, error))
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (fstat (src_dfd, &src_stbuf) != 0)
|
||||
{
|
||||
@ -169,6 +184,7 @@ static gboolean
|
||||
copy_dir_recurse (int src_parent_dfd,
|
||||
int dest_parent_dfd,
|
||||
const char *name,
|
||||
OstreeSysrootDebugFlags flags,
|
||||
GCancellable *cancellable,
|
||||
GError **error)
|
||||
{
|
||||
@ -190,7 +206,7 @@ copy_dir_recurse (int src_parent_dfd,
|
||||
return FALSE;
|
||||
|
||||
if (!dirfd_copy_attributes_and_xattrs (src_parent_dfd, name, src_dfd_iter.fd, dest_dfd,
|
||||
cancellable, error))
|
||||
flags, cancellable, error))
|
||||
return FALSE;
|
||||
|
||||
while (TRUE)
|
||||
@ -212,14 +228,14 @@ copy_dir_recurse (int src_parent_dfd,
|
||||
if (S_ISDIR (child_stbuf.st_mode))
|
||||
{
|
||||
if (!copy_dir_recurse (src_dfd_iter.fd, dest_dfd, dent->d_name,
|
||||
cancellable, error))
|
||||
flags, cancellable, error))
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!glnx_file_copy_at (src_dfd_iter.fd, dent->d_name, &child_stbuf,
|
||||
dest_dfd, dent->d_name,
|
||||
GLNX_FILE_COPY_OVERWRITE,
|
||||
sysroot_flags_to_copy_flags (GLNX_FILE_COPY_OVERWRITE, flags),
|
||||
cancellable, error))
|
||||
return FALSE;
|
||||
}
|
||||
@ -234,6 +250,7 @@ ensure_directory_from_template (int orig_etc_fd,
|
||||
int new_etc_fd,
|
||||
const char *path,
|
||||
int *out_dfd,
|
||||
OstreeSysrootDebugFlags flags,
|
||||
GCancellable *cancellable,
|
||||
GError **error)
|
||||
{
|
||||
@ -262,7 +279,7 @@ ensure_directory_from_template (int orig_etc_fd,
|
||||
if (strcmp (parent_path, ".") != 0)
|
||||
{
|
||||
if (!ensure_directory_from_template (orig_etc_fd, modified_etc_fd, new_etc_fd,
|
||||
parent_path, NULL, cancellable, error))
|
||||
parent_path, NULL, flags, cancellable, error))
|
||||
goto out;
|
||||
|
||||
/* Loop */
|
||||
@ -286,7 +303,7 @@ ensure_directory_from_template (int orig_etc_fd,
|
||||
goto out;
|
||||
|
||||
if (!dirfd_copy_attributes_and_xattrs (modified_etc_fd, path, src_dfd, target_dfd,
|
||||
cancellable, error))
|
||||
flags, cancellable, error))
|
||||
goto out;
|
||||
|
||||
ret = TRUE;
|
||||
@ -312,6 +329,7 @@ copy_modified_config_file (int orig_etc_fd,
|
||||
int modified_etc_fd,
|
||||
int new_etc_fd,
|
||||
const char *path,
|
||||
OstreeSysrootDebugFlags flags,
|
||||
GCancellable *cancellable,
|
||||
GError **error)
|
||||
{
|
||||
@ -332,7 +350,7 @@ copy_modified_config_file (int orig_etc_fd,
|
||||
g_autofree char *parent = g_path_get_dirname (path);
|
||||
|
||||
if (!ensure_directory_from_template (orig_etc_fd, modified_etc_fd, new_etc_fd,
|
||||
parent, &dest_parent_dfd, cancellable, error))
|
||||
parent, &dest_parent_dfd, flags, cancellable, error))
|
||||
goto out;
|
||||
}
|
||||
else
|
||||
@ -386,7 +404,7 @@ copy_modified_config_file (int orig_etc_fd,
|
||||
|
||||
if (S_ISDIR (modified_stbuf.st_mode))
|
||||
{
|
||||
if (!copy_dir_recurse (modified_etc_fd, new_etc_fd, path,
|
||||
if (!copy_dir_recurse (modified_etc_fd, new_etc_fd, path, flags,
|
||||
cancellable, error))
|
||||
goto out;
|
||||
}
|
||||
@ -394,7 +412,7 @@ copy_modified_config_file (int orig_etc_fd,
|
||||
{
|
||||
if (!glnx_file_copy_at (modified_etc_fd, path, &modified_stbuf,
|
||||
new_etc_fd, path,
|
||||
GLNX_FILE_COPY_OVERWRITE,
|
||||
sysroot_flags_to_copy_flags (GLNX_FILE_COPY_OVERWRITE, flags),
|
||||
cancellable, error))
|
||||
goto out;
|
||||
}
|
||||
@ -426,6 +444,7 @@ static gboolean
|
||||
merge_etc_changes (GFile *orig_etc,
|
||||
GFile *modified_etc,
|
||||
GFile *new_etc,
|
||||
OstreeSysrootDebugFlags flags,
|
||||
GCancellable *cancellable,
|
||||
GError **error)
|
||||
{
|
||||
@ -496,7 +515,7 @@ merge_etc_changes (GFile *orig_etc,
|
||||
g_assert (path);
|
||||
|
||||
if (!copy_modified_config_file (orig_etc_fd, modified_etc_fd, new_etc_fd, path,
|
||||
cancellable, error))
|
||||
flags, cancellable, error))
|
||||
goto out;
|
||||
}
|
||||
for (i = 0; i < added->len; i++)
|
||||
@ -507,7 +526,7 @@ merge_etc_changes (GFile *orig_etc,
|
||||
g_assert (path);
|
||||
|
||||
if (!copy_modified_config_file (orig_etc_fd, modified_etc_fd, new_etc_fd, path,
|
||||
cancellable, error))
|
||||
flags, cancellable, error))
|
||||
goto out;
|
||||
}
|
||||
|
||||
@ -827,7 +846,7 @@ merge_configuration (OstreeSysroot *sysroot,
|
||||
/* TODO - set out labels as we copy files */
|
||||
g_assert (!etc_exists);
|
||||
if (!copy_dir_recurse (deployment_usr_dfd, deployment_dfd, "etc",
|
||||
cancellable, error))
|
||||
sysroot->debug_flags, cancellable, error))
|
||||
goto out;
|
||||
|
||||
/* Here, we initialize SELinux policy from the /usr/etc inside
|
||||
@ -847,8 +866,8 @@ merge_configuration (OstreeSysroot *sysroot,
|
||||
|
||||
if (source_etc_path)
|
||||
{
|
||||
if (!merge_etc_changes (source_etc_pristine_path, source_etc_path, deployment_etc_path,
|
||||
cancellable, error))
|
||||
if (!merge_etc_changes (source_etc_pristine_path, source_etc_path, deployment_etc_path,
|
||||
sysroot->debug_flags, cancellable, error))
|
||||
goto out;
|
||||
}
|
||||
|
||||
@ -1319,6 +1338,7 @@ install_deployment_kernel (OstreeSysroot *sysroot,
|
||||
}
|
||||
if (!hardlink_or_copy_at (tree_boot_dfd, tree_kernel_name,
|
||||
bootcsum_dfd, dest_kernel_name,
|
||||
sysroot->debug_flags,
|
||||
cancellable, error))
|
||||
goto out;
|
||||
}
|
||||
@ -1336,6 +1356,7 @@ install_deployment_kernel (OstreeSysroot *sysroot,
|
||||
}
|
||||
if (!hardlink_or_copy_at (tree_boot_dfd, tree_initramfs_name,
|
||||
bootcsum_dfd, dest_initramfs_name,
|
||||
sysroot->debug_flags,
|
||||
cancellable, error))
|
||||
goto out;
|
||||
}
|
||||
|
@ -30,7 +30,9 @@ G_BEGIN_DECLS
|
||||
typedef enum {
|
||||
|
||||
/* Don't flag deployments as immutable. */
|
||||
OSTREE_SYSROOT_DEBUG_MUTABLE_DEPLOYMENTS = 1 << 0
|
||||
OSTREE_SYSROOT_DEBUG_MUTABLE_DEPLOYMENTS = 1 << 0,
|
||||
/* See https://github.com/ostreedev/ostree/pull/759 */
|
||||
OSTREE_SYSROOT_DEBUG_NO_XATTRS = 1 << 1,
|
||||
|
||||
} OstreeSysrootDebugFlags;
|
||||
|
||||
|
@ -161,9 +161,10 @@ ostree_sysroot_init (OstreeSysroot *self)
|
||||
{
|
||||
const GDebugKey keys[] = {
|
||||
{ "mutable-deployments", OSTREE_SYSROOT_DEBUG_MUTABLE_DEPLOYMENTS },
|
||||
{ "no-xattrs", OSTREE_SYSROOT_DEBUG_NO_XATTRS },
|
||||
};
|
||||
|
||||
self->debug_flags = g_parse_debug_string (g_getenv("OSTREE_SYSROOT_DEBUG"),
|
||||
self->debug_flags = g_parse_debug_string (g_getenv ("OSTREE_SYSROOT_DEBUG"),
|
||||
keys, G_N_ELEMENTS (keys));
|
||||
|
||||
self->sysroot_fd = -1;
|
||||
|
@ -31,7 +31,7 @@ echo "ok content"
|
||||
|
||||
cd ${test_tmpdir}
|
||||
mkdir repo2
|
||||
${CMD_PREFIX} ostree --repo=repo2 init
|
||||
ostree_repo_init repo2
|
||||
${CMD_PREFIX} ostree --repo=repo2 pull-local repo
|
||||
echo "ok local clone"
|
||||
|
||||
|
@ -46,8 +46,8 @@ echo "ok shortened checksum"
|
||||
echo "ok repo-in-cwd"
|
||||
|
||||
rm test-repo -rf
|
||||
$OSTREE --repo=test-repo init --mode=bare-user
|
||||
$OSTREE --repo=test-repo init --mode=bare-user
|
||||
ostree_repo_init test-repo --mode=bare-user
|
||||
ostree_repo_init test-repo --mode=bare-user
|
||||
rm test-repo -rf
|
||||
echo "ok repo-init on existing repo"
|
||||
|
||||
@ -197,7 +197,7 @@ echo "ok diff file changing type"
|
||||
|
||||
cd ${test_tmpdir}
|
||||
mkdir repo2
|
||||
${CMD_PREFIX} ostree --repo=repo2 init
|
||||
ostree_repo_init repo2
|
||||
${CMD_PREFIX} ostree --repo=repo2 pull-local repo
|
||||
echo "ok pull-local"
|
||||
|
||||
@ -315,7 +315,7 @@ echo "ok checkout union add"
|
||||
cd ${test_tmpdir}
|
||||
rm -rf shadow-repo
|
||||
mkdir shadow-repo
|
||||
${CMD_PREFIX} ostree --repo=shadow-repo init
|
||||
ostree_repo_init shadow-repo
|
||||
${CMD_PREFIX} ostree --repo=shadow-repo config set core.parent $(pwd)/repo
|
||||
rm -rf test2-checkout
|
||||
parent_rev_test2=$(${CMD_PREFIX} ostree --repo=repo rev-parse test2)
|
||||
@ -335,7 +335,7 @@ echo "ok subdir noent"
|
||||
|
||||
cd ${test_tmpdir}
|
||||
mkdir repo3
|
||||
${CMD_PREFIX} ostree --repo=repo3 init
|
||||
ostree_repo_init repo3
|
||||
${CMD_PREFIX} ostree --repo=repo3 pull-local --remote=aremote repo test2
|
||||
${CMD_PREFIX} ostree --repo=repo3 rev-parse aremote/test2
|
||||
echo "ok pull-local with --remote arg"
|
||||
@ -354,7 +354,7 @@ echo "ok prune"
|
||||
|
||||
cd ${test_tmpdir}
|
||||
rm repo3 -rf
|
||||
${CMD_PREFIX} ostree --repo=repo3 init --mode=archive
|
||||
ostree_repo_init repo3 --mode=archive
|
||||
${CMD_PREFIX} ostree --repo=repo3 pull-local --remote=aremote repo test2
|
||||
rm repo3/refs/remotes -rf
|
||||
mkdir repo3/refs/remotes
|
||||
@ -437,7 +437,7 @@ echo "ok metadata commit with strings"
|
||||
cd ${test_tmpdir}
|
||||
rm repo2 -rf
|
||||
mkdir repo2
|
||||
${CMD_PREFIX} ostree --repo=repo2 init
|
||||
ostree_repo_init repo2
|
||||
${CMD_PREFIX} ostree --repo=repo2 pull-local repo
|
||||
${CMD_PREFIX} ostree --repo=repo2 show --print-detached-metadata-key=SIGNATURE test2 > test2-meta
|
||||
assert_file_has_content test2-meta "HANCOCK"
|
||||
@ -481,7 +481,7 @@ echo "ok commit of fifo was rejected"
|
||||
cd ${test_tmpdir}
|
||||
rm repo2 -rf
|
||||
mkdir repo2
|
||||
${CMD_PREFIX} ostree --repo=repo2 init --mode=archive
|
||||
ostree_repo_init repo2 --mode=archive
|
||||
${CMD_PREFIX} ostree --repo=repo2 pull-local repo
|
||||
rm -rf test2-checkout
|
||||
${CMD_PREFIX} ostree --repo=repo2 checkout -U --disable-cache test2 test2-checkout
|
||||
|
@ -21,6 +21,8 @@
|
||||
#include "config.h"
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <linux/magic.h>
|
||||
#include <sys/vfs.h>
|
||||
|
||||
#include "libglnx.h"
|
||||
#include "libostreetest.h"
|
||||
@ -90,12 +92,26 @@ ot_test_setup_sysroot (GCancellable *cancellable,
|
||||
gboolean ret = FALSE;
|
||||
g_autoptr(GFile) sysroot_path = g_file_new_for_path ("sysroot");
|
||||
glnx_unref_object OstreeSysroot *ret_sysroot = NULL;
|
||||
struct statfs stbuf;
|
||||
|
||||
if (!ot_test_run_libtest ("setup_os_repository \"archive-z2\" \"syslinux\"", error))
|
||||
goto out;
|
||||
|
||||
/* Make sure deployments are mutable */
|
||||
g_setenv ("OSTREE_SYSROOT_DEBUG", "mutable-deployments", TRUE);
|
||||
{ g_autoptr(GString) buf = g_string_new ("mutable-deployments");
|
||||
if (statfs ("/", &stbuf) < 0)
|
||||
return glnx_throw_errno (error), NULL;
|
||||
/* Keep this in sync with the overlayfs bits in libtest.sh */
|
||||
#ifndef OVERLAYFS_SUPER_MAGIC
|
||||
#define OVERLAYFS_SUPER_MAGIC 0x794c7630
|
||||
#endif
|
||||
if (stbuf.f_type == OVERLAYFS_SUPER_MAGIC)
|
||||
{
|
||||
g_print ("libostreetest: detected overlayfs\n");
|
||||
g_string_append (buf, ",no-xattrs");
|
||||
}
|
||||
/* Make sure deployments are mutable */
|
||||
g_setenv ("OSTREE_SYSROOT_DEBUG", buf->str, TRUE);
|
||||
}
|
||||
|
||||
ret_sysroot = ostree_sysroot_new (sysroot_path);
|
||||
|
||||
|
@ -86,6 +86,18 @@ chmod -R u+w "${test_tmpdir}"
|
||||
export TEST_GPG_KEYHOME=${test_tmpdir}/gpghome
|
||||
export OSTREE_GPG_HOME=${test_tmpdir}/gpghome/trusted
|
||||
|
||||
# See comment in ot-builtin-commit.c and https://github.com/ostreedev/ostree/issues/758
|
||||
# Also keep this in sync with the bits in libostreetest.c
|
||||
echo evaluating for overlayfs...
|
||||
case $(stat -f --printf '%T' /) in
|
||||
overlayfs)
|
||||
echo "overlayfs found; enabling OSTREE_NO_XATTRS"
|
||||
export OSTREE_SYSROOT_DEBUG="${OSTREE_SYSROOT_DEBUG},no-xattrs"
|
||||
export OSTREE_NO_XATTRS=1 ;;
|
||||
*) ;;
|
||||
esac
|
||||
echo done
|
||||
|
||||
if test -n "${OT_TESTS_DEBUG:-}"; then
|
||||
set -x
|
||||
fi
|
||||
@ -195,15 +207,13 @@ setup_test_repository () {
|
||||
oldpwd=`pwd`
|
||||
|
||||
cd ${test_tmpdir}
|
||||
mkdir repo
|
||||
cd repo
|
||||
ot_repo="--repo=`pwd`"
|
||||
export OSTREE="${CMD_PREFIX} ostree ${ot_repo}"
|
||||
if test -n "$mode"; then
|
||||
$OSTREE init --mode=${mode}
|
||||
if test -n "${mode}"; then
|
||||
ostree_repo_init repo --mode=${mode}
|
||||
else
|
||||
$OSTREE init
|
||||
ostree_repo_init repo
|
||||
fi
|
||||
ot_repo="--repo=$(pwd)/repo"
|
||||
export OSTREE="${CMD_PREFIX} ostree ${ot_repo}"
|
||||
|
||||
cd ${test_tmpdir}
|
||||
mkdir files
|
||||
@ -232,6 +242,16 @@ setup_test_repository () {
|
||||
cd $oldpwd
|
||||
}
|
||||
|
||||
# A wrapper which also possibly disables xattrs for CI testing
|
||||
ostree_repo_init() {
|
||||
repo=$1
|
||||
shift
|
||||
${CMD_PREFIX} ostree --repo=${repo} init "$@"
|
||||
if test -n "${OSTREE_NO_XATTRS:-}"; then
|
||||
echo -e 'disable-xattrs=true\n' >> ${repo}/config
|
||||
fi
|
||||
}
|
||||
|
||||
setup_fake_remote_repo1() {
|
||||
mode=$1
|
||||
commit_opts=${2:-}
|
||||
@ -241,7 +261,7 @@ setup_fake_remote_repo1() {
|
||||
mkdir ostree-srv
|
||||
cd ostree-srv
|
||||
mkdir gnomerepo
|
||||
${CMD_PREFIX} ostree --repo=gnomerepo init --mode=$mode
|
||||
ostree_repo_init gnomerepo --mode=$mode
|
||||
mkdir gnomerepo-files
|
||||
cd gnomerepo-files
|
||||
echo first > firstfile
|
||||
@ -284,8 +304,8 @@ setup_exampleos_repo() {
|
||||
mkdir -p ostree-srv/exampleos/{repo,build-repo}
|
||||
export ORIGIN_REPO=ostree-srv/exampleos/repo
|
||||
export ORIGIN_BUILD_REPO=ostree-srv/exampleos/build-repo
|
||||
${CMD_PREFIX} ostree --repo=${ORIGIN_REPO} init --mode=archive
|
||||
${CMD_PREFIX} ostree --repo=${ORIGIN_BUILD_REPO} init --mode=bare-user
|
||||
ostree_repo_init ${ORIGIN_REPO} --mode=archive
|
||||
ostree_repo_init ${ORIGIN_BUILD_REPO} --mode=bare-user
|
||||
cd ${test_tmpdir}
|
||||
rm main -rf
|
||||
mkdir main
|
||||
@ -365,7 +385,7 @@ setup_exampleos_repo() {
|
||||
|
||||
cd ${test_tmpdir}
|
||||
rm repo -rf
|
||||
${CMD_PREFIX} ostree --repo=repo init --mode=bare-user
|
||||
ostree_repo_init repo --mode=bare-user
|
||||
${CMD_PREFIX} ostree --repo=repo remote add --set=gpg-verify=false origin $(cat ostree-srv/httpd/address)/exampleos/repo
|
||||
export OSTREE="${CMD_PREFIX} ostree --repo=repo"
|
||||
}
|
||||
@ -413,9 +433,9 @@ setup_os_repository () {
|
||||
cd ${test_tmpdir}
|
||||
mkdir testos-repo
|
||||
if test -n "$mode"; then
|
||||
${CMD_PREFIX} ostree --repo=testos-repo init --mode=${mode}
|
||||
ostree_repo_init testos-repo --mode=${mode}
|
||||
else
|
||||
${CMD_PREFIX} ostree --repo=testos-repo init
|
||||
ostree_repo_init testos-repo
|
||||
fi
|
||||
|
||||
cd ${test_tmpdir}
|
||||
|
@ -23,7 +23,7 @@ function repo_init() {
|
||||
cd ${test_tmpdir}
|
||||
rm repo -rf
|
||||
mkdir repo
|
||||
${CMD_PREFIX} ostree --repo=repo init
|
||||
ostree_repo_init repo
|
||||
${CMD_PREFIX} ostree --repo=repo remote add --set=gpg-verify=false origin $(cat httpd-address)/ostree/gnomerepo
|
||||
}
|
||||
|
||||
@ -50,7 +50,7 @@ echo "ok pull contents"
|
||||
|
||||
cd ${test_tmpdir}
|
||||
mkdir mirrorrepo
|
||||
${CMD_PREFIX} ostree --repo=mirrorrepo init --mode=archive-z2
|
||||
ostree_repo_init mirrorrepo --mode=archive-z2
|
||||
${CMD_PREFIX} ostree --repo=mirrorrepo remote add --set=gpg-verify=false origin $(cat httpd-address)/ostree/gnomerepo
|
||||
${CMD_PREFIX} ostree --repo=mirrorrepo pull --mirror origin main
|
||||
${CMD_PREFIX} ostree --repo=mirrorrepo fsck
|
||||
@ -96,7 +96,7 @@ echo "ok pull commit metadata only (should not apply deltas)"
|
||||
|
||||
cd ${test_tmpdir}
|
||||
mkdir mirrorrepo-local
|
||||
${CMD_PREFIX} ostree --repo=mirrorrepo-local init --mode=archive-z2
|
||||
ostree_repo_init mirrorrepo-local --mode=archive-z2
|
||||
${CMD_PREFIX} ostree --repo=mirrorrepo-local remote add --set=gpg-verify=false origin file://$(pwd)/ostree-srv/gnomerepo
|
||||
${CMD_PREFIX} ostree --repo=mirrorrepo-local pull --mirror origin main
|
||||
${CMD_PREFIX} ostree --repo=mirrorrepo-local fsck
|
||||
@ -114,7 +114,7 @@ echo "ok pull detached metadata"
|
||||
|
||||
cd ${test_tmpdir}
|
||||
mkdir parentpullrepo
|
||||
${CMD_PREFIX} ostree --repo=parentpullrepo init --mode=archive-z2
|
||||
ostree_repo_init parentpullrepo --mode=archive-z2
|
||||
${CMD_PREFIX} ostree --repo=parentpullrepo remote add --set=gpg-verify=false origin file://$(pwd)/ostree-srv/gnomerepo
|
||||
parent_rev=$(ostree --repo=ostree-srv/gnomerepo rev-parse main^)
|
||||
rev=$(ostree --repo=ostree-srv/gnomerepo rev-parse main)
|
||||
|
@ -29,7 +29,7 @@ setup_test_repository "archive-z2"
|
||||
|
||||
cd ${test_tmpdir}
|
||||
mkdir repo2
|
||||
${CMD_PREFIX} ostree --repo=repo2 init
|
||||
ostree_repo_init repo2
|
||||
${CMD_PREFIX} ostree --repo=repo2 remote add --set=gpg-verify=false aremote file://$(pwd)/repo test2
|
||||
${CMD_PREFIX} ostree --repo=repo2 pull aremote
|
||||
${CMD_PREFIX} ostree --repo=repo2 rev-parse aremote/test2
|
||||
|
@ -33,7 +33,7 @@ oldpwd=`pwd`
|
||||
mkdir ostree-srv
|
||||
cd ostree-srv
|
||||
mkdir gnomerepo
|
||||
${CMD_PREFIX} ostree --repo=gnomerepo init --mode="archive-z2"
|
||||
ostree_repo_init gnomerepo --mode="archive-z2"
|
||||
mkdir gnomerepo-files
|
||||
cd gnomerepo-files
|
||||
echo first > firstfile
|
||||
@ -67,7 +67,7 @@ cp -a ${repopath} ${repopath}.orig
|
||||
# Set OSTREE_GPG_HOME to a place with no keyrings, we shouldn't trust the signature
|
||||
cd ${test_tmpdir}
|
||||
mkdir repo
|
||||
${CMD_PREFIX} ostree --repo=repo init
|
||||
ostree_repo_init repo
|
||||
${CMD_PREFIX} ostree --repo=repo remote add origin $(cat httpd-address)/ostree/gnomerepo
|
||||
if env OSTREE_GPG_HOME=${test_tmpdir} ${CMD_PREFIX} ostree --repo=repo pull origin main; then
|
||||
assert_not_reached "pull with no trusted GPG keys unexpectedly succeeded!"
|
||||
@ -77,7 +77,7 @@ rm repo -rf
|
||||
# And a test case with valid signature
|
||||
cd ${test_tmpdir}
|
||||
mkdir repo
|
||||
${CMD_PREFIX} ostree --repo=repo init
|
||||
ostree_repo_init repo
|
||||
${CMD_PREFIX} ostree --repo=repo remote add origin $(cat httpd-address)/ostree/gnomerepo
|
||||
${CMD_PREFIX} ostree --repo=repo pull origin main
|
||||
${CMD_PREFIX} ostree --repo=repo show --gpg-verify-remote=origin main | grep -o 'Found [[:digit:]] signature' > show-verify-remote
|
||||
@ -90,7 +90,7 @@ find ${test_tmpdir}/ostree-srv/gnomerepo -name '*.commitmeta' | while read fname
|
||||
echo borkborkbork > ${fname};
|
||||
done
|
||||
mkdir repo
|
||||
${CMD_PREFIX} ostree --repo=repo init
|
||||
ostree_repo_init repo
|
||||
${CMD_PREFIX} ostree --repo=repo remote add origin $(cat httpd-address)/ostree/gnomerepo
|
||||
if ${CMD_PREFIX} ostree --repo=repo pull origin main; then
|
||||
assert_not_reached "pull with corrupted signature unexpectedly succeeded!"
|
||||
@ -101,7 +101,7 @@ rm repo -rf
|
||||
# verification off
|
||||
cd ${test_tmpdir}
|
||||
mkdir repo
|
||||
${CMD_PREFIX} ostree --repo=repo init
|
||||
ostree_repo_init repo
|
||||
${CMD_PREFIX} ostree --repo=repo remote add --set=gpg-verify=false origin $(cat httpd-address)/ostree/gnomerepo
|
||||
${CMD_PREFIX} ostree --repo=repo pull origin main
|
||||
rm repo -rf
|
||||
@ -114,7 +114,7 @@ echo secret > signme
|
||||
${CMD_PREFIX} ostree --repo=${test_tmpdir}/ostree-srv/gnomerepo commit -b main -s "Don't forget to sign me!"
|
||||
cd ${test_tmpdir}
|
||||
mkdir repo
|
||||
${CMD_PREFIX} ostree --repo=repo init
|
||||
ostree_repo_init repo
|
||||
${CMD_PREFIX} ostree --repo=repo remote add --set=gpg-verify=false origin $(cat httpd-address)/ostree/gnomerepo
|
||||
${CMD_PREFIX} ostree --repo=repo pull origin main
|
||||
if ${CMD_PREFIX} ostree --repo=repo show main | grep -o 'Found [[:digit:]] signature'; then
|
||||
|
@ -29,7 +29,7 @@ morebindatafiles="false ls"
|
||||
echo '1..12'
|
||||
|
||||
mkdir repo
|
||||
${CMD_PREFIX} ostree --repo=repo init --mode=archive-z2
|
||||
ostree_repo_init repo --mode=archive-z2
|
||||
|
||||
mkdir files
|
||||
for bin in ${bindatafiles}; do
|
||||
@ -121,7 +121,7 @@ if ${CMD_PREFIX} ostree --repo=repo static-delta generate --from=${origrev} --to
|
||||
assert_not_reached "static-delta generate --from=${origrev} --empty unexpectedly succeeded"
|
||||
fi
|
||||
|
||||
${CMD_PREFIX} ostree --repo=temp-repo init --mode=archive
|
||||
ostree_repo_init temp-repo --mode=archive
|
||||
${CMD_PREFIX} ostree --repo=temp-repo pull-local repo
|
||||
${CMD_PREFIX} ostree --repo=temp-repo static-delta generate --empty --to=${newrev} --filename=some.delta
|
||||
assert_has_file some.delta
|
||||
@ -168,7 +168,7 @@ echo 'ok heuristic endian detection'
|
||||
|
||||
${CMD_PREFIX} ostree --repo=repo summary -u
|
||||
|
||||
mkdir repo2 && ${CMD_PREFIX} ostree --repo=repo2 init --mode=bare-user
|
||||
mkdir repo2 && ostree_repo_init repo2 --mode=bare-user
|
||||
${CMD_PREFIX} ostree --repo=repo2 pull-local --require-static-deltas repo ${newrev}
|
||||
${CMD_PREFIX} ostree --repo=repo2 fsck
|
||||
${CMD_PREFIX} ostree --repo=repo2 ls ${newrev} >/dev/null
|
||||
@ -176,7 +176,7 @@ ${CMD_PREFIX} ostree --repo=repo2 ls ${newrev} >/dev/null
|
||||
echo 'ok pull delta'
|
||||
|
||||
rm repo2 -rf
|
||||
mkdir repo2 && ${CMD_PREFIX} ostree --repo=repo2 init --mode=bare-user
|
||||
mkdir repo2 && ostree_repo_init repo2 --mode=bare-user
|
||||
mkdir deltadir
|
||||
|
||||
deltaprefix=$(get_assert_one_direntry_matching repo/deltas '.')
|
||||
@ -194,7 +194,7 @@ ${CMD_PREFIX} ostree --repo=repo static-delta generate --from=${origrev} --to=${
|
||||
assert_not_has_file repo/deltas/${deltaprefix}/${deltadir}/0
|
||||
|
||||
rm repo2 -rf
|
||||
mkdir repo2 && ostree --repo=repo2 init --mode=bare-user
|
||||
ostree_repo_init repo2 --mode=bare-user
|
||||
|
||||
${CMD_PREFIX} ostree --repo=repo2 pull-local repo ${origrev}
|
||||
${CMD_PREFIX} ostree --repo=repo2 ls ${origrev} >/dev/null
|
||||
@ -236,7 +236,7 @@ echo 'ok generate + show empty delta part'
|
||||
${CMD_PREFIX} ostree --repo=repo summary -u
|
||||
|
||||
rm -rf repo2
|
||||
mkdir repo2 && ${CMD_PREFIX} ostree --repo=repo2 init --mode=bare-user
|
||||
mkdir repo2 && ostree_repo_init repo2 --mode=bare-user
|
||||
${CMD_PREFIX} ostree --repo=repo2 pull-local repo ${newrev}
|
||||
${CMD_PREFIX} ostree --repo=repo2 pull-local --require-static-deltas repo ${samerev}
|
||||
${CMD_PREFIX} ostree --repo=repo2 fsck
|
||||
|
@ -66,9 +66,9 @@ exampleos_recompose() {
|
||||
packages="bash systemd"
|
||||
|
||||
mkdir build-repo
|
||||
${CMD_PREFIX} ostree --repo=build-repo init --mode=bare-user
|
||||
ostree_repo_init build-repo --mode=bare-user
|
||||
mkdir repo
|
||||
${CMD_PREFIX} ostree --repo=repo init --mode=archive-z2
|
||||
ostree_repo_init repo --mode=archive-z2
|
||||
# Our FUSE mount point
|
||||
mkdir mnt
|
||||
|
||||
|
@ -27,7 +27,7 @@ echo "1..1"
|
||||
|
||||
cd ${test_tmpdir}
|
||||
mkdir repo2
|
||||
${CMD_PREFIX} ostree --repo=repo2 init --mode="archive-z2"
|
||||
ostree_repo_init repo2 --mode="archive-z2"
|
||||
|
||||
${CMD_PREFIX} ostree --repo=repo2 pull-local repo
|
||||
find repo2/objects -name '*.commit' | wc -l > commitcount
|
||||
|
@ -33,14 +33,14 @@ echo "ok setup"
|
||||
|
||||
cd ${test_tmpdir}
|
||||
mkdir repo2
|
||||
${CMD_PREFIX} ostree --repo=repo2 init --mode="bare-user"
|
||||
ostree_repo_init repo2 --mode="bare-user"
|
||||
|
||||
${CMD_PREFIX} ostree --repo=repo2 pull-local repo
|
||||
${CMD_PREFIX} ostree --repo=repo2 fsck
|
||||
echo "ok pull-local z2 to bare-user"
|
||||
|
||||
mkdir repo3
|
||||
${CMD_PREFIX} ostree --repo=repo3 init --mode="archive-z2"
|
||||
ostree_repo_init repo3 --mode="archive-z2"
|
||||
${CMD_PREFIX} ostree --repo=repo3 pull-local repo2
|
||||
${CMD_PREFIX} ostree --repo=repo3 fsck
|
||||
echo "ok pull-local bare-user to z2"
|
||||
@ -62,7 +62,7 @@ cmp checkout1.files checkout3.files
|
||||
echo "ok checkouts same"
|
||||
|
||||
mkdir repo4
|
||||
${CMD_PREFIX} ostree --repo=repo4 init --mode="archive-z2"
|
||||
ostree_repo_init repo4 --mode="archive-z2"
|
||||
${CMD_PREFIX} ostree --repo=repo4 remote add --gpg-import ${test_tmpdir}/gpghome/key1.asc origin repo
|
||||
if ${CMD_PREFIX} ostree --repo=repo4 pull-local --remote=origin --gpg-verify repo test2 2>&1; then
|
||||
assert_not_reached "GPG verification unexpectedly succeeded"
|
||||
@ -72,13 +72,13 @@ echo "ok --gpg-verify with no signature"
|
||||
${OSTREE} gpg-sign --gpg-homedir=${TEST_GPG_KEYHOME} test2 ${TEST_GPG_KEYID_1}
|
||||
|
||||
mkdir repo5
|
||||
${CMD_PREFIX} ostree --repo=repo5 init --mode="archive-z2"
|
||||
ostree_repo_init repo5 --mode="archive-z2"
|
||||
${CMD_PREFIX} ostree --repo=repo5 remote add --gpg-import ${test_tmpdir}/gpghome/key1.asc origin repo
|
||||
${CMD_PREFIX} ostree --repo=repo5 pull-local --remote=origin --gpg-verify repo test2
|
||||
echo "ok --gpg-verify"
|
||||
|
||||
mkdir repo6
|
||||
${CMD_PREFIX} ostree --repo=repo6 init --mode="archive-z2"
|
||||
ostree_repo_init repo6 --mode="archive-z2"
|
||||
${CMD_PREFIX} ostree --repo=repo6 remote add --gpg-import ${test_tmpdir}/gpghome/key1.asc origin repo
|
||||
if ${CMD_PREFIX} ostree --repo=repo6 pull-local --remote=origin --gpg-verify-summary repo test2 2>&1; then
|
||||
assert_not_reached "GPG summary verification with no summary unexpectedly succeeded"
|
||||
@ -97,7 +97,7 @@ ${CMD_PREFIX} ostree --repo=repo6 pull-local --remote=origin --gpg-verify-summar
|
||||
echo "ok --gpg-verify-summary"
|
||||
|
||||
mkdir repo7
|
||||
${CMD_PREFIX} ostree --repo=repo7 init --mode="archive-z2"
|
||||
ostree_repo_init repo7 --mode="archive-z2"
|
||||
${CMD_PREFIX} ostree --repo=repo7 pull-local repo
|
||||
${CMD_PREFIX} ostree --repo=repo7 fsck
|
||||
for src_object in `find repo/objects -name '*.filez'`; do
|
||||
|
@ -28,7 +28,7 @@ echo '1..1'
|
||||
cd ${test_tmpdir}
|
||||
rm repo -rf
|
||||
mkdir repo
|
||||
${CMD_PREFIX} ostree --repo=repo init
|
||||
ostree_repo_init repo
|
||||
${CMD_PREFIX} ostree --repo=repo remote add --set=gpg-verify=false origin $(cat httpd-address)/ostree/gnomerepo
|
||||
|
||||
${CMD_PREFIX} ostree --repo=repo pull origin main --subpath /baz
|
||||
|
@ -32,7 +32,7 @@ export OSTREE_GPG_SIGN="${OSTREE} gpg-sign --gpg-homedir=${TEST_GPG_KEYHOME}"
|
||||
cd ${test_tmpdir}
|
||||
|
||||
# Create a repo
|
||||
${CMD_PREFIX} ostree --repo=repo2 init
|
||||
ostree_repo_init repo2
|
||||
${CMD_PREFIX} ostree --repo=repo2 remote add --gpg-import=${test_tmpdir}/gpghome/trusted/pubring.gpg --set=gpg-verify=true aremote file://$(pwd)/repo test2
|
||||
|
||||
# Create a repo with repo2 as parent
|
||||
|
@ -29,7 +29,7 @@ echo '1..5'
|
||||
|
||||
cd ${test_tmpdir}
|
||||
mkdir repo
|
||||
${CMD_PREFIX} ostree --repo=repo init
|
||||
ostree_repo_init repo
|
||||
${CMD_PREFIX} ostree --repo=repo remote add --set=gpg-verify=false origin $(cat httpd-address)/ostree/gnomerepo
|
||||
|
||||
mkdir -p tree/root
|
||||
@ -142,7 +142,7 @@ assert_file_has_content deltascount "^1$"
|
||||
echo "ok prune"
|
||||
|
||||
rm repo -rf
|
||||
${CMD_PREFIX} ostree --repo=repo init --mode=bare-user
|
||||
ostree_repo_init repo --mode=bare-user
|
||||
${CMD_PREFIX} ostree --repo=repo remote add --set=gpg-verify=false origin $(cat httpd-address)/ostree/gnomerepo
|
||||
${CMD_PREFIX} ostree --repo=repo pull --depth=-1 --commit-metadata-only origin test
|
||||
${CMD_PREFIX} ostree --repo=repo prune
|
||||
@ -158,7 +158,7 @@ assert_has_n_objects() {
|
||||
cd ${test_tmpdir}
|
||||
for repo in repo child-repo tmp-repo; do
|
||||
rm ${repo} -rf
|
||||
${CMD_PREFIX} ostree --repo=${repo} init --mode=archive
|
||||
ostree_repo_init ${repo} --mode=archive
|
||||
done
|
||||
echo parent=${test_tmpdir}/repo >> child-repo/config
|
||||
mkdir files
|
||||
@ -189,7 +189,7 @@ echo "ok prune with parent repo"
|
||||
# would interact. We make a new repo test suite, then clone it
|
||||
# for "subtests" below with reinitialize_datesnap_repo()
|
||||
rm repo datetest-snapshot-repo -rf
|
||||
${CMD_PREFIX} ostree --repo=datetest-snapshot-repo init --mode=archive
|
||||
ostree_repo_init datetest-snapshot-repo --mode=archive
|
||||
# Some ancient commits on the both a stable/dev branch
|
||||
for day in $(seq 5); do
|
||||
${CMD_PREFIX} ostree --repo=datetest-snapshot-repo commit --branch=stable -m test -s "old stable build $day" tree --timestamp="October $day 1985"
|
||||
@ -206,7 +206,7 @@ assert_file_has_content commitcount "^16$"
|
||||
# Snapshot the above
|
||||
reinitialize_datesnap_repo() {
|
||||
rm repo -rf
|
||||
${CMD_PREFIX} ostree --repo=repo init --mode=archive
|
||||
ostree_repo_init repo --mode=archive
|
||||
${CMD_PREFIX} ostree --repo=repo pull-local --depth=-1 datetest-snapshot-repo
|
||||
}
|
||||
|
||||
|
@ -27,7 +27,7 @@ echo '1..1'
|
||||
|
||||
cd ${test_tmpdir}
|
||||
mkdir repo
|
||||
${CMD_PREFIX} ostree --repo=repo init
|
||||
ostree_repo_init repo
|
||||
${CMD_PREFIX} ostree --repo=repo remote add --set=gpg-verify=false origin $(cat httpd-address)/ostree/gnomerepo
|
||||
|
||||
${CMD_PREFIX} ostree --repo=repo pull --commit-metadata-only origin main
|
||||
|
@ -57,7 +57,7 @@ echo "http://127.0.0.1:${content_port}" > ${test_tmpdir}/httpd-content-address
|
||||
|
||||
cd ${test_tmpdir}
|
||||
mkdir repo
|
||||
${CMD_PREFIX} ostree --repo=repo init
|
||||
ostree_repo_init repo
|
||||
if has_gpgme; then VERIFY=true; else VERIFY=false; fi
|
||||
${CMD_PREFIX} ostree --repo=repo remote add origin \
|
||||
--set=gpg-verify=$VERIFY --set=gpg-verify-summary=$VERIFY \
|
||||
|
@ -38,7 +38,7 @@ do_corrupt_pull_test() {
|
||||
cd ${test_tmpdir}
|
||||
rm repo -rf
|
||||
mkdir repo
|
||||
${CMD_PREFIX} ostree --repo=repo init
|
||||
ostree_repo_init repo
|
||||
${CMD_PREFIX} ostree --repo=repo remote add --set=gpg-verify=false origin $(cat httpd-address)/ostree/gnomerepo
|
||||
if ${CMD_PREFIX} ostree --repo=repo pull origin main; then
|
||||
assert_not_reached "pull unexpectedly succeeded!"
|
||||
|
@ -27,7 +27,7 @@ echo '1..1'
|
||||
|
||||
cd ${test_tmpdir}
|
||||
mkdir repo
|
||||
${CMD_PREFIX} ostree --repo=repo init
|
||||
ostree_repo_init repo
|
||||
${CMD_PREFIX} ostree --repo=repo remote add --set=gpg-verify=false origin $(cat httpd-address)/ostree/gnomerepo
|
||||
|
||||
${CMD_PREFIX} ostree --repo=repo pull --depth=0 origin main
|
||||
|
@ -32,7 +32,7 @@ dd if=/dev/zero bs=1M count=20 of=ostree-srv/gnomerepo/objects/$(echo $rev | cut
|
||||
|
||||
cd ${test_tmpdir}
|
||||
mkdir repo
|
||||
${CMD_PREFIX} ostree --repo=repo init
|
||||
ostree_repo_init repo
|
||||
${CMD_PREFIX} ostree --repo=repo remote add --set=gpg-verify=false origin $(cat httpd-address)/ostree/gnomerepo
|
||||
|
||||
if ${CMD_PREFIX} ostree --repo=repo pull origin main 2>pulllog.txt 1>&2; then
|
||||
|
@ -68,7 +68,7 @@ EOF
|
||||
|
||||
cd ${test_tmpdir}
|
||||
mkdir repo
|
||||
${CMD_PREFIX} ostree --repo=repo init
|
||||
ostree_repo_init repo
|
||||
${CMD_PREFIX} ostree --repo=repo remote add --set=gpg-verify=false origin metalink=$(cat metalink-httpd-address)/metalink.xml
|
||||
${CMD_PREFIX} ostree --repo=repo pull origin:main
|
||||
${CMD_PREFIX} ostree --repo=repo rev-parse origin:main
|
||||
@ -87,7 +87,7 @@ test_metalink_pull_error() {
|
||||
msg=$1
|
||||
rm repo -rf
|
||||
mkdir repo
|
||||
${CMD_PREFIX} ostree --repo=repo init
|
||||
ostree_repo_init repo
|
||||
${CMD_PREFIX} ostree --repo=repo remote add --set=gpg-verify=false origin metalink=$(cat metalink-httpd-address)/metalink.xml
|
||||
if ${CMD_PREFIX} ostree --repo=repo pull origin:main 2>err.txt; then
|
||||
assert_not_reached "pull unexpectedly succeeded"
|
||||
@ -157,7 +157,7 @@ EOF
|
||||
cd ${test_tmpdir}
|
||||
rm repo -rf
|
||||
mkdir repo
|
||||
${CMD_PREFIX} ostree --repo=repo init
|
||||
ostree_repo_init repo
|
||||
${CMD_PREFIX} ostree --repo=repo remote add --set=gpg-verify=false origin metalink=$(cat metalink-httpd-address)/metalink.xml
|
||||
${CMD_PREFIX} ostree --repo=repo pull origin:main
|
||||
${CMD_PREFIX} ostree --repo=repo rev-parse origin:main
|
||||
|
@ -41,7 +41,7 @@ ${CMD_PREFIX} ostree --repo=${test_tmpdir}/ostree-srv/gnomerepo summary -u
|
||||
|
||||
prev_dir=`pwd`
|
||||
cd ${test_tmpdir}
|
||||
${CMD_PREFIX} ostree --repo=repo init --mode=archive-z2
|
||||
ostree_repo_init repo --mode=archive-z2
|
||||
${CMD_PREFIX} ostree --repo=repo remote add --set=gpg-verify=false origin $(cat httpd-address)/ostree/gnomerepo
|
||||
${CMD_PREFIX} ostree --repo=repo pull --mirror origin
|
||||
assert_has_file repo/summary
|
||||
@ -69,15 +69,13 @@ cd $prev_dir
|
||||
|
||||
cd ${test_tmpdir}
|
||||
rm -rf repo
|
||||
mkdir repo
|
||||
${OSTREE} --repo=repo init --mode=archive-z2
|
||||
ostree_repo_init repo --mode=archive-z2
|
||||
${OSTREE} --repo=repo remote add origin $(cat httpd-address)/ostree/gnomerepo
|
||||
echo "ok pull mirror without checking signed summary"
|
||||
|
||||
cd ${test_tmpdir}
|
||||
rm -rf repo
|
||||
mkdir repo
|
||||
${OSTREE} --repo=repo init --mode=archive-z2
|
||||
ostree_repo_init repo --mode=archive-z2
|
||||
${OSTREE} --repo=repo remote add --set=gpg-verify-summary=true origin $(cat httpd-address)/ostree/gnomerepo
|
||||
if ${OSTREE} --repo=repo pull --mirror origin 2>err.txt; then
|
||||
assert_not_reached "Mirroring unexpectedly succeeded"
|
||||
@ -88,8 +86,7 @@ ${OSTREE} --repo=${test_tmpdir}/ostree-srv/gnomerepo summary -u ${COMMIT_SIGN}
|
||||
|
||||
cd ${test_tmpdir}
|
||||
rm -rf repo
|
||||
mkdir repo
|
||||
${OSTREE} --repo=repo init --mode=archive-z2
|
||||
ostree_repo_init repo --mode=archive-z2
|
||||
${OSTREE} --repo=repo remote add --set=gpg-verify-summary=true origin $(cat httpd-address)/ostree/gnomerepo
|
||||
${OSTREE} --repo=repo pull --mirror origin
|
||||
assert_has_file repo/summary
|
||||
@ -102,7 +99,7 @@ truncate --size=1 ${test_tmpdir}/ostree-srv/gnomerepo/summary.sig
|
||||
cd ${test_tmpdir}
|
||||
rm -rf repo
|
||||
mkdir repo
|
||||
${OSTREE} --repo=repo init --mode=archive-z2
|
||||
ostree_repo_init repo --mode=archive-z2
|
||||
${OSTREE} --repo=repo remote add origin $(cat httpd-address)/ostree/gnomerepo
|
||||
${OSTREE} --repo=repo pull --mirror origin
|
||||
assert_has_file repo/summary
|
||||
|
@ -72,7 +72,7 @@ EOF
|
||||
|
||||
cd ${test_tmpdir}
|
||||
mkdir repo
|
||||
${CMD_PREFIX} ostree --repo=repo init
|
||||
ostree_repo_init repo
|
||||
${CMD_PREFIX} ostree --repo=repo remote add origin --no-gpg-verify \
|
||||
mirrorlist=$(cat httpd-address)/ostree/mirrorlist
|
||||
${CMD_PREFIX} ostree --repo=repo pull origin:main
|
||||
@ -84,7 +84,7 @@ echo "ok pull objects from mirrorlist"
|
||||
cd ${test_tmpdir}
|
||||
rm -rf repo
|
||||
mkdir repo
|
||||
${CMD_PREFIX} ostree --repo=repo init
|
||||
ostree_repo_init repo
|
||||
${CMD_PREFIX} ostree --repo=repo remote add origin --no-gpg-verify \
|
||||
--contenturl=mirrorlist=$(cat httpd-address)/ostree/mirrorlist \
|
||||
$(cat httpd-address)/ostree/gnomerepo
|
||||
@ -97,7 +97,7 @@ echo "ok pull objects from contenturl mirrorlist"
|
||||
cd ${test_tmpdir}
|
||||
rm -rf repo
|
||||
mkdir repo
|
||||
${CMD_PREFIX} ostree --repo=repo init
|
||||
ostree_repo_init repo
|
||||
${CMD_PREFIX} ostree --repo=repo remote add origin --no-gpg-verify \
|
||||
--contenturl=mirrorlist=$(cat httpd-address)/ostree/mirrorlist \
|
||||
mirrorlist=$(cat httpd-address)/ostree/mirrorlist
|
||||
|
@ -34,7 +34,7 @@ gnomerepo_url="$(cat httpd-address)/ostree/gnomerepo"
|
||||
mkdir mirror-srv
|
||||
cd mirror-srv
|
||||
mkdir gnomerepo
|
||||
${CMD_PREFIX} ostree --repo=gnomerepo init --mode "archive-z2"
|
||||
ostree_repo_init gnomerepo --mode "archive-z2"
|
||||
${CMD_PREFIX} ostree --repo=gnomerepo remote add --set=gpg-verify=false origin ${gnomerepo_url}
|
||||
${CMD_PREFIX} ostree --repo=gnomerepo pull --mirror --depth=-1 origin main
|
||||
|
||||
@ -57,7 +57,7 @@ echo "http://127.0.0.1:${port}" > ${test_tmpdir}/mirror-httpd-address
|
||||
cd ${test_tmpdir}
|
||||
mirrorrepo_url="$(cat mirror-httpd-address)/ostree/gnomerepo"
|
||||
mkdir repo
|
||||
${CMD_PREFIX} ostree --repo=repo init
|
||||
ostree_repo_init repo
|
||||
${CMD_PREFIX} ostree --repo=repo remote add --set=gpg-verify=false origin ${gnomerepo_url}
|
||||
rm -rf ${test_tmpdir}/ostree-srv/gnomerepo
|
||||
if ${CMD_PREFIX} ostree --repo=repo pull --depth=-1 origin main
|
||||
|
@ -27,7 +27,7 @@ COMMIT_SIGN="--gpg-homedir=${TEST_GPG_KEYHOME} --gpg-sign=${TEST_GPG_KEYID_1}"
|
||||
setup_fake_remote_repo1 "archive-z2" "${COMMIT_SIGN}" --random-500s=50
|
||||
|
||||
cd ${test_tmpdir}
|
||||
${CMD_PREFIX} ostree --repo=repo init --mode=archive-z2
|
||||
ostree_repo_init repo --mode=archive-z2
|
||||
${CMD_PREFIX} ostree --repo=repo remote add --set=gpg-verify=false origin $(cat httpd-address)/ostree/gnomerepo
|
||||
for x in $(seq 200); do
|
||||
if ${CMD_PREFIX} ostree --repo=repo pull --mirror origin main 2>err.txt; then
|
||||
|
@ -31,7 +31,7 @@ cp -a ${repopath} ${repopath}.orig
|
||||
cd ${test_tmpdir}
|
||||
rm repo -rf
|
||||
mkdir repo
|
||||
${CMD_PREFIX} ostree --repo=repo init
|
||||
ostree_repo_init repo
|
||||
${CMD_PREFIX} ostree --repo=repo remote add --set=gpg-verify=false origin $(cat httpd-address)/ostree/gnomerepo
|
||||
|
||||
maxtries=`find ${repopath}/objects | wc -l`
|
||||
|
@ -33,7 +33,7 @@ for remoteurl in $(cat httpd-address)/ostree/gnomerepo \
|
||||
cd ${test_tmpdir}
|
||||
rm repo -rf
|
||||
mkdir repo
|
||||
${CMD_PREFIX} ostree --repo=repo init
|
||||
ostree_repo_init repo
|
||||
${CMD_PREFIX} ostree --repo=repo remote add --set=gpg-verify=false origin ${remoteurl}
|
||||
|
||||
${CMD_PREFIX} ostree --repo=repo pull --subpath=/baz/deeper --subpath=/baz/another origin main
|
||||
@ -58,7 +58,7 @@ echo "ok subpaths"
|
||||
|
||||
rm -rf repo
|
||||
|
||||
${CMD_PREFIX} ostree --repo=repo init
|
||||
ostree_repo_init repo
|
||||
${CMD_PREFIX} ostree --repo=repo remote add --set=gpg-verify=false origin ${remoteurl}
|
||||
|
||||
# Pull a directory which is not the first in the commit (/baz/another is before)
|
||||
|
@ -41,7 +41,7 @@ ${CMD_PREFIX} ostree --repo=${test_tmpdir}/ostree-srv/gnomerepo summary -u
|
||||
|
||||
prev_dir=`pwd`
|
||||
cd ${test_tmpdir}
|
||||
${CMD_PREFIX} ostree --repo=repo init --mode=archive-z2
|
||||
ostree_repo_init repo --mode=archive-z2
|
||||
${CMD_PREFIX} ostree --repo=repo remote add --set=gpg-verify=false origin $(cat httpd-address)/ostree/gnomerepo
|
||||
${CMD_PREFIX} ostree --repo=repo pull --mirror origin
|
||||
assert_has_file repo/summary
|
||||
@ -66,7 +66,7 @@ repo_reinit () {
|
||||
cd ${test_tmpdir}
|
||||
rm -rf repo
|
||||
mkdir repo
|
||||
${OSTREE} --repo=repo init --mode=archive-z2
|
||||
ostree_repo_init repo --mode=archive-z2
|
||||
${OSTREE} --repo=repo remote add --set=gpg-verify-summary=true origin $(cat httpd-address)/ostree/gnomerepo
|
||||
}
|
||||
|
||||
|
@ -28,7 +28,7 @@ setup_test_repository "bare"
|
||||
|
||||
cd ${test_tmpdir}
|
||||
mkdir repo2
|
||||
${CMD_PREFIX} ostree --repo=repo2 init --mode="bare"
|
||||
ostree_repo_init repo2 --mode="bare"
|
||||
|
||||
${CMD_PREFIX} ostree --repo=repo2 --untrusted pull-local repo
|
||||
|
||||
@ -52,7 +52,7 @@ done
|
||||
|
||||
rm -rf repo2
|
||||
mkdir repo2
|
||||
${CMD_PREFIX} ostree --repo=repo2 init --mode="bare"
|
||||
ostree_repo_init repo2 --mode="bare"
|
||||
if ${CMD_PREFIX} ostree --repo=repo2 pull-local repo; then
|
||||
echo "ok trusted pull with corruption succeeded"
|
||||
else
|
||||
@ -61,7 +61,7 @@ fi
|
||||
|
||||
rm -rf repo2
|
||||
mkdir repo2
|
||||
${CMD_PREFIX} ostree --repo=repo2 init --mode="bare"
|
||||
ostree_repo_init repo2 --mode="bare"
|
||||
if ${CMD_PREFIX} ostree --repo=repo2 pull-local --untrusted repo; then
|
||||
assert_not_reached "corrupted untrusted pull unexpectedly failed!"
|
||||
else
|
||||
|
@ -27,7 +27,7 @@ echo '1..1'
|
||||
|
||||
cd ${test_tmpdir}
|
||||
mkdir repo
|
||||
${CMD_PREFIX} ostree --repo=repo init
|
||||
ostree_repo_init repo
|
||||
|
||||
mkdir -p tree/root
|
||||
touch tree/root/a
|
||||
|
@ -36,7 +36,7 @@ assert_fail (){
|
||||
cd ${test_tmpdir}
|
||||
rm repo -rf
|
||||
mkdir repo
|
||||
${CMD_PREFIX} ostree --repo=repo init
|
||||
ostree_repo_init repo
|
||||
${CMD_PREFIX} ostree --repo=repo remote add --set=gpg-verify=false origin $(cat httpd-address)/ostree/gnomerepo
|
||||
|
||||
# Sanity check the setup, without cookies the pull should fail
|
||||
|
@ -38,7 +38,7 @@ assert_fail (){
|
||||
cd ${test_tmpdir}
|
||||
rm repo -rf
|
||||
mkdir repo
|
||||
${CMD_PREFIX} ostree --repo=repo init
|
||||
ostree_repo_init repo
|
||||
${CMD_PREFIX} ostree --repo=repo remote add --set=gpg-verify=false origin $(cat httpd-address)/ostree/gnomerepo
|
||||
|
||||
# Sanity check the setup, without headers the pull should fail
|
||||
|
@ -21,6 +21,9 @@ set -euo pipefail
|
||||
|
||||
. $(dirname $0)/libtest.sh
|
||||
|
||||
skip "We don't really have a use case for committing user. xattrs right now. See also https://github.com/ostreedev/ostree/issues/758"
|
||||
|
||||
# Dead code below
|
||||
skip_without_user_xattrs
|
||||
|
||||
echo "1..2"
|
||||
|
Loading…
x
Reference in New Issue
Block a user