core: Fix regression when committing symlinks in archive mode
Commit 802959f398 broke this because it
made all archived content files be S_IFREG, which is clearly wrong.
This commit is contained in:
parent
f14ea4b2bf
commit
16c0cfe9b5
|
|
@ -684,9 +684,12 @@ ostree_create_file_from_input (GFile *dest_file,
|
||||||
if (g_cancellable_set_error_if_cancelled (cancellable, error))
|
if (g_cancellable_set_error_if_cancelled (cancellable, error))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
if (finfo != NULL && !is_archived_content)
|
if (finfo != NULL)
|
||||||
{
|
{
|
||||||
mode = g_file_info_get_attribute_uint32 (finfo, "unix::mode");
|
mode = g_file_info_get_attribute_uint32 (finfo, "unix::mode");
|
||||||
|
/* Archived content files should always be 0644 */
|
||||||
|
if (is_archived_content)
|
||||||
|
mode = (mode & S_IFMT) | 0644;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -938,8 +938,9 @@ impl_stage_archive_file_object_from_raw (OstreeRepo *self,
|
||||||
cancellable, error))
|
cancellable, error))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
if (ret_checksum)
|
if (out_checksum)
|
||||||
{
|
{
|
||||||
|
g_assert (ret_checksum);
|
||||||
ostree_checksum_update_stat (ret_checksum,
|
ostree_checksum_update_stat (ret_checksum,
|
||||||
g_file_info_get_attribute_uint32 (file_info, "unix::uid"),
|
g_file_info_get_attribute_uint32 (file_info, "unix::uid"),
|
||||||
g_file_info_get_attribute_uint32 (file_info, "unix::gid"),
|
g_file_info_get_attribute_uint32 (file_info, "unix::gid"),
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue