#include <pakfire/archive.h>
#include <pakfire/constants.h>
-#include <pakfire/file.h>
-#include <pakfire/filelist.h>
#include <pakfire/logging.h>
#include <pakfire/package.h>
#include <pakfire/packager.h>
time_t time_created;
PakfirePackage pkg;
- PakfireFilelist filelist;
// Reader
struct archive* reader;
FILE* fpayload;
struct archive* mtree;
FILE* fmtree;
+ size_t installsize;
};
static int pakfire_packager_create_payload(struct pakfire_packager* p) {
if (packager->reader)
archive_read_free(packager->reader);
- pakfire_filelist_unref(packager->filelist);
pakfire_package_unref(packager->pkg);
pakfire_unref(packager->pakfire);
}
if (!p)
return ENOMEM;
+ int r = 1;
+
// Save creation time
p->time_created = time(NULL);
// Store a reference to the package
p->pkg = pakfire_package_ref(pkg);
- // Create a new filelist
- int r = pakfire_filelist_create(&p->filelist, p->pakfire);
- if (r)
- goto ERROR;
-
// Create reader
p->reader = pakfire_make_archive_disk_reader(p->pakfire, 1);
if (!p->reader)
int r = 1;
// Store total instal size
- pakfire_package_set_installsize(packager->pkg,
- pakfire_filelist_total_filesize(packager->filelist));
+ pakfire_package_set_installsize(packager->pkg, packager->installsize);
// Open a new archive
struct archive* a = archive_write_new();
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);
+ // Increment installsize
+ packager->installsize += archive_entry_size(entry);
// Successful
r = 0;
ERROR:
- pakfire_file_unref(file);
-
if (entry)
archive_entry_free(entry);