#include "repo.h"
#include "repo_write.h"
#include "common_write.h"
+#include "solvversion.h"
-#define LIBSOLV_TOOLVERSION "1.0"
+/* toolversion history
+ * 1.0: initial tool version
+ * 1.1: changed PRODUCT_ENDOFLIFE parsing
+*/
static Id verticals[] = {
SOLVABLE_AUTHORS,
SOLVABLE_EULA,
SOLVABLE_DISKUSAGE,
SOLVABLE_FILELIST,
+ SOLVABLE_CHANGELOG_AUTHOR,
+ SOLVABLE_CHANGELOG_TEXT,
0
};
Queue keyq;
queue_init(&keyq);
- repo_write(repo, fp, keyfilter, kfdata, &keyq);
+ if (repo_write_filtered(repo, fp, keyfilter, kfdata, &keyq) != 0)
+ {
+ fprintf(stderr, "repo_write failed\n");
+ exit(1);
+ }
h = repodata_new_handle(info);
if (keyq.count)
repodata_set_idarray(info, h, REPOSITORY_KEYS, &keyq);
repodata_add_flexarray(info, SOLVID_META, REPOSITORY_EXTERNAL, h);
}
-int
+void
tool_write(Repo *repo, const char *basename, const char *attrname)
{
Repodata *data;
info = repo_add_repodata(repo, 0);
repodata_set_str(info, SOLVID_META, REPOSITORY_TOOLVERSION, LIBSOLV_TOOLVERSION);
queue_init(&addedfileprovides);
- pool_addfileprovides_queue(repo->pool, &addedfileprovides);
+ pool_addfileprovides_queue(repo->pool, &addedfileprovides, 0);
if (addedfileprovides.count)
{
kd.haveaddedfileprovides = 1;
kd.languages = languages;
kd.nlanguages = nlanguages;
repodata_internalize(info);
- repo_write(repo, fp, keyfilter_other, &kd, 0);
- fclose(fp);
+ if (repo_write_filtered(repo, fp, keyfilter_other, &kd, 0) != 0)
+ {
+ fprintf(stderr, "repo_write failed\n");
+ exit(1);
+ }
+ if (fclose(fp) != 0)
+ {
+ perror("fclose");
+ exit(1);
+ }
for (i = 0; i < nlanguages; i++)
free(languages[i]);
solv_free(languages);
repodata_free(info);
- return 0;
}
if (attrname)
{
kd.haveexternal = 1;
}
repodata_internalize(info);
- repo_write(repo, stdout, keyfilter_solv, &kd, 0);
+ if (repo_write_filtered(repo, stdout, keyfilter_solv, &kd, 0) != 0)
+ {
+ fprintf(stderr, "repo_write failed\n");
+ exit(1);
+ }
repodata_free(info);
- return 0;
}