]> git.ipfire.org Git - pakfire.git/commitdiff
packager: Import all file attributes from archive entry
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 8 Mar 2021 12:47:07 +0000 (12:47 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 8 Mar 2021 12:47:07 +0000 (12:47 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/packager.c

index 23f94771418d7072d8078e3731f94506ce0260b1..0e04d0f3e32869be38ec796ef10b041770863cb0 100644 (file)
@@ -455,12 +455,6 @@ PAKFIRE_EXPORT int pakfire_packager_add(struct pakfire_packager* packager,
                return r;
        }
 
-       // Create a file
-       PakfireFile file;
-       r = pakfire_file_create(&file, packager->pakfire);
-       if (r)
-               return r;
-
        // Create a new file entry
        struct archive_entry* entry = archive_entry_new();
        if (!entry)
@@ -468,11 +462,9 @@ PAKFIRE_EXPORT int pakfire_packager_add(struct pakfire_packager* packager,
 
        // Set path in archive
        archive_entry_set_pathname(entry, path);
-       pakfire_file_set_name(file, path);
 
        // Copy all attributes from stat()
        archive_entry_copy_stat(entry, &st);
-       pakfire_file_copy_stat(file, &st);
 
        // Write the header
        r = archive_write_header(packager->payload, entry);
@@ -496,6 +488,16 @@ PAKFIRE_EXPORT int pakfire_packager_add(struct pakfire_packager* packager,
                        goto ERROR;
        }
 
+       // Create a file
+       PakfireFile file;
+       r = pakfire_file_create(&file, packager->pakfire);
+       if (r)
+               goto ERROR;
+
+       r = pakfire_file_copy_archive_entry(file, entry);
+       if (r)
+               goto ERROR;
+
        // Append the file to the filelist
        pakfire_filelist_append(packager->filelist, file);