}
static struct archive_entry* pakfire_packager_create_file(
- struct pakfire_packager* packager, const char* filename, size_t size) {
+ struct pakfire_packager* packager, const char* filename, size_t size, mode_t mode) {
// Create a new file entry
struct archive_entry* entry = archive_entry_new();
if (!entry)
// This is a regular file
archive_entry_set_filetype(entry, AE_IFREG);
- archive_entry_set_perm(entry, 0644);
+ archive_entry_set_perm(entry, mode);
// Set size
archive_entry_set_size(entry, size);
const char buffer[] = TO_STRING(PACKAGE_FORMAT) "\n";
int r = pakfire_packager_write_file_from_buffer(packager, a, NULL,
- PAKFIRE_ARCHIVE_FN_FORMAT, buffer);
+ PAKFIRE_ARCHIVE_FN_FORMAT, 0444, buffer);
if (r)
return r;
// Write buffer
int r = pakfire_packager_write_file_from_buffer(packager, a, mtree,
- PAKFIRE_ARCHIVE_FN_METADATA, buffer);
+ PAKFIRE_ARCHIVE_FN_METADATA, 0444, buffer);
free(buffer);
// Create a new file
struct archive_entry* entry = pakfire_packager_create_file(packager,
- filename, st.st_size);
+ filename, st.st_size, 0444);
if (!entry)
return 1;
const char* data = pakfire_scriptlet_get_data(scriptlet, &size);
// Write file
- return pakfire_packager_write_file_from_buffer(packager, a, mtree, filename, data);
+ return pakfire_packager_write_file_from_buffer(packager, a, mtree, filename, 0544, data);
}
/*