"solvable:description:",
"solvable:messageins:",
"solvable:messagedel:",
+ "solvable:eula:",
0
};
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;
}
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;
}
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)
}
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]);
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);