struct pakfire_packager* packager = NULL;
PakfirePackage pkg = NULL;
- char* filename = NULL;
char tempfile[PATH_MAX] = "";
// Open the target directory
FILE* f = fdopen(fd, "w");
// Write the finished package
- filename = pakfire_packager_finish(packager, f);
+ const char* filename = pakfire_packager_finish(packager, f);
if (!filename) {
ERROR(pakfire, "pakfire_packager_finish() failed: %s\n", strerror(errno));
goto ERROR;
// Remove the temporary file
if (*tempfile)
unlink(tempfile);
-
- if (filename)
- free(filename);
closedir(d);
if (packager)
struct pakfire_packager* pakfire_packager_ref(struct pakfire_packager* packager);
struct pakfire_packager* pakfire_packager_unref(struct pakfire_packager* packager);
-char* pakfire_packager_finish(struct pakfire_packager* packager, FILE* f);
+const char* pakfire_packager_finish(struct pakfire_packager* packager, FILE* f);
int pakfire_packager_add(struct pakfire_packager* packager, const char* path);
int nrefs;
time_t time_created;
+ char filename[NAME_MAX + 1];
+
PakfirePackage pkg;
PakfireFilelist filelist;
// Store a reference to the package
p->pkg = pakfire_package_ref(pkg);
+ // Create filename
+ snprintf(p->filename, sizeof(p->filename) - 1,
+ "%s.pfm", pakfire_package_get_nevra(p->pkg));
+
// Create a new filelist
int r = pakfire_filelist_create(&p->filelist, p->pakfire);
if (r)
It will create a new archive and write the package to the given file descriptor.
*/
-PAKFIRE_EXPORT char* pakfire_packager_finish(struct pakfire_packager* packager, FILE* f) {
+PAKFIRE_EXPORT const char* pakfire_packager_finish(struct pakfire_packager* packager, FILE* f) {
char* filename = NULL;
// Store total instal size
if (r)
goto ERROR;
- // XXX set filename
+ // Return the filename
+ filename = packager->filename;
ERROR:
if (a)