X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=tools%2Fcommon_write.c;h=884b4179639656e8b6d88117f767db25e7409a96;hb=4ccae3859358e9518cb67b101d0b62138f7554eb;hp=a16b1b1ff4f20e4c81920700471ca480707af5ef;hpb=9c39015c9f9b7e31d92adf96a7f7a78a77a5c9b2;p=platform%2Fupstream%2Flibsolv.git diff --git a/tools/common_write.c b/tools/common_write.c index a16b1b1..884b417 100644 --- a/tools/common_write.c +++ b/tools/common_write.c @@ -33,6 +33,7 @@ static char *languagetags[] = { "solvable:description:", "solvable:messageins:", "solvable:messagedel:", + "solvable:eula:", 0 }; @@ -42,11 +43,16 @@ static int keyfilter_solv(Repo *data, Repokey *key, void *kfdata) { int i; + const char *keyname; if (test_separate && key->storage != KEY_STORAGE_SOLVABLE) return KEY_STORAGE_DROPPED; for (i = 0; verticals[i]; i++) if (key->name == verticals[i]) return KEY_STORAGE_VERTICAL_OFFSET; + keyname = id2str(data->pool, key->name); + for (i = 0; languagetags[i] != 0; i++) + if (!strncmp(keyname, languagetags[i], strlen(languagetags[i]))) + return KEY_STORAGE_VERTICAL_OFFSET; return KEY_STORAGE_INCORE; } @@ -54,11 +60,16 @@ static int keyfilter_attr(Repo *data, Repokey *key, void *kfdata) { int i; + const char *keyname; if (key->storage == KEY_STORAGE_SOLVABLE) return KEY_STORAGE_DROPPED; for (i = 0; verticals[i]; i++) if (key->name == verticals[i]) return KEY_STORAGE_VERTICAL_OFFSET; + keyname = id2str(data->pool, key->name); + for (i = 0; languagetags[i] != 0; i++) + if (!strncmp(keyname, languagetags[i], strlen(languagetags[i]))) + return KEY_STORAGE_VERTICAL_OFFSET; return KEY_STORAGE_INCORE; } @@ -158,7 +169,9 @@ tool_write(Repo *repo, const char *basename, const char *attrname) fileinfos = sat_zextend(fileinfos, nfileinfos, 1, sizeof(Repodatafile), REPODATAFILE_BLOCK); pool_addfileprovides_ids(repo->pool, 0, &fileinfos[nfileinfos].addedfileprovides); - if (fileinfos[nfileinfos].addedfileprovides) + if (repo->rpmdbcookie) + fileinfos[nfileinfos].rpmdbcookie = repo->rpmdbcookie; + if (fileinfos[nfileinfos].addedfileprovides || fileinfos[nfileinfos].rpmdbcookie) nfileinfos++; if (basename) @@ -248,7 +261,7 @@ tool_write(Repo *repo, const char *basename, const char *attrname) } kd.languages = languages; kd.nlanguages = nlanguages; - repo_write(repo, fp, keyfilter_other, &kd, fileinfos, nfileinfos); + repo_write(repo, fp, keyfilter_other, &kd, nfileinfos ? fileinfos : 0, nfileinfos); fclose(fp); for (i = 0; i < nlanguages; i++) free(languages[i]); @@ -272,7 +285,7 @@ tool_write(Repo *repo, const char *basename, const char *attrname) fclose(fp); nfileinfos++; } - repo_write(repo, stdout, keyfilter_solv, 0, fileinfos, nfileinfos); + repo_write(repo, stdout, keyfilter_solv, 0, nfileinfos ? fileinfos : 0, nfileinfos); for (i = 0; i < nfileinfos; i++) { sat_free(fileinfos[i].addedfileprovides);