pakfire_unref(packager->pakfire);
}
+static int pakfire_packager_create_reader(struct pakfire_packager* p) {
+ // Open a reader
+ p->reader = archive_read_disk_new();
+ if (!p->reader) {
+ ERROR(p->pakfire, "archive_read_disk_new() failed\n");
+ return 1;
+ }
+
+ // Do not read fflags
+ int r = archive_read_disk_set_behavior(p->reader, ARCHIVE_READDISK_NO_FFLAGS);
+ if (r) {
+ ERROR(p->pakfire, "Could not change behavior of reader: %s\n",
+ archive_error_string(p->reader));
+ return 1;
+ }
+
+ return 0;
+}
+
PAKFIRE_EXPORT int pakfire_packager_create(struct pakfire_packager** packager,
PakfirePackage pkg) {
struct pakfire_packager* p = calloc(1, sizeof(*p));
if (r)
goto ERROR;
- // Start payload
- r = pakfire_packager_create_payload(p, 1);
+ // Create reader
+ r = pakfire_packager_create_reader(p);
if (r)
goto ERROR;
- // Open a reader
- p->reader = archive_read_disk_new();
- if (!p->reader) {
- ERROR(p->pakfire, "archive_read_disk_new() failed\n");
- goto ERROR;
- }
-
- // Do not read fflags
- r = archive_read_disk_set_behavior(p->reader, ARCHIVE_READDISK_NO_FFLAGS);
- if (r) {
- ERROR(p->pakfire, "Could not change behavior of reader: %s\n",
- archive_error_string(p->reader));
+ // Start payload
+ r = pakfire_packager_create_payload(p, 1);
+ if (r)
goto ERROR;
- }
*packager = p;