From 5329f1706b2b816f656e5ad4c7661b6fd81f734c Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Fri, 24 Feb 2012 17:50:44 -0500 Subject: [PATCH] core: Further fix fallout from archive mode files Continuing from 16c0cfe9b59e2c619d4c57be9c995849af9f659f, we now have the problem that we're removing the executable bit, which obviously breaks things when we chroot in for a build. Fix this by masking over our bits. --- src/libostree/ostree-core.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/libostree/ostree-core.c b/src/libostree/ostree-core.c index 30bda716..929d8345 100644 --- a/src/libostree/ostree-core.c +++ b/src/libostree/ostree-core.c @@ -687,9 +687,12 @@ ostree_create_file_from_input (GFile *dest_file, if (finfo != NULL) { mode = g_file_info_get_attribute_uint32 (finfo, "unix::mode"); - /* Archived content files should always be 0644 */ + /* Archived content files should always be readable by all and + * read/write by owner. If the base file is executable then + * we're also executable. + */ if (is_archived_content) - mode = (mode & S_IFMT) | 0644; + mode |= 0644; } else {