From: Michael Tremer Date: Tue, 9 Mar 2021 18:10:52 +0000 (+0000) Subject: packager: Set creation time and ownership for files X-Git-Tag: 0.9.28~1285^2~588 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=05cfc2c9e3f788886c889a5035e3b10bb54fa567;p=pakfire.git packager: Set creation time and ownership for files Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/packager.c b/src/libpakfire/packager.c index acdfec9fb..51f064320 100644 --- a/src/libpakfire/packager.c +++ b/src/libpakfire/packager.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include @@ -46,6 +47,7 @@ struct pakfire_packager { Pakfire pakfire; int nrefs; + time_t time_created; PakfirePackage pkg; PakfireFilelist filelist; @@ -204,6 +206,9 @@ PAKFIRE_EXPORT int pakfire_packager_create(struct pakfire_packager** packager, if (!p) return ENOMEM; + // Save creation time + p->time_created = time(NULL); + // Initialize reference counting p->nrefs = 1; @@ -295,6 +300,18 @@ static int pakfire_packager_write_file_from_buffer(struct pakfire_packager* pack archive_entry_set_filetype(entry, AE_IFREG); archive_entry_set_perm(entry, 0644); + // Set ownership + archive_entry_set_uname(entry, "root"); + archive_entry_set_uid(entry, 0); + archive_entry_set_gname(entry, "root"); + archive_entry_set_gid(entry, 0); + + // Set times + archive_entry_set_birthtime(entry, packager->time_created, 0); + archive_entry_set_ctime(entry, packager->time_created, 0); + archive_entry_set_mtime(entry, packager->time_created, 0); + archive_entry_set_atime(entry, packager->time_created, 0); + // Set length archive_entry_set_size(entry, strlen(buffer));