From: Michael Schroeder Date: Wed, 19 Sep 2018 10:34:12 +0000 (+0200) Subject: Drop undocumented old cruft from the tools code X-Git-Tag: 0.7.0~39 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=63491bc9c4ff3b9ee23fb8000308d3d7bad9ced6;p=thirdparty%2Flibsolv.git Drop undocumented old cruft from the tools code This is mainly the -b and -n options, which were used to test solv extension files in the long ago past. --- diff --git a/tools/appdata2solv.c b/tools/appdata2solv.c index ce6c98c1..e5a42cf6 100644 --- a/tools/appdata2solv.c +++ b/tools/appdata2solv.c @@ -70,7 +70,7 @@ main(int argc, char **argv) exit(1); } } - tool_write(repo, 0, 0); + tool_write(repo, stdout); pool_free(pool); exit(0); } diff --git a/tools/archpkgs2solv.c b/tools/archpkgs2solv.c index 4ce95a4b..14c3ba4e 100644 --- a/tools/archpkgs2solv.c +++ b/tools/archpkgs2solv.c @@ -57,16 +57,12 @@ main(int argc, char **argv) Repo *repo; FILE *fp; char buf[4096], *p; - const char *basefile = 0; int flags = 0; - while ((c = getopt(argc, argv, "0b:m:i")) >= 0) + while ((c = getopt(argc, argv, "0:m:i")) >= 0) { switch(c) { - case 'b': - basefile = optarg; - break; case 'm': manifest = optarg; break; @@ -124,7 +120,7 @@ main(int argc, char **argv) res = 1; } repo_internalize(repo); - tool_write(repo, basefile, 0); + tool_write(repo, stdout); pool_free(pool); for (c = 0; c < npkgs; c++) solv_free((char *)pkgs[c]); diff --git a/tools/archrepo2solv.c b/tools/archrepo2solv.c index 5f8eade1..e60960fe 100644 --- a/tools/archrepo2solv.c +++ b/tools/archrepo2solv.c @@ -73,7 +73,7 @@ main(int argc, char **argv) fprintf(stderr, "archrepo2solv: %s\n", pool_errstr(pool)); exit(1); } - tool_write(repo, 0, 0); + tool_write(repo, stdout); pool_free(pool); exit(0); } diff --git a/tools/common_write.c b/tools/common_write.c index 6b762480..eb012afc 100644 --- a/tools/common_write.c +++ b/tools/common_write.c @@ -21,340 +21,51 @@ * 1.1: changed PRODUCT_ENDOFLIFE parsing */ -static Id verticals[] = { - SOLVABLE_AUTHORS, - SOLVABLE_DESCRIPTION, - SOLVABLE_MESSAGEDEL, - SOLVABLE_MESSAGEINS, - SOLVABLE_EULA, - SOLVABLE_DISKUSAGE, - SOLVABLE_FILELIST, - SOLVABLE_CHANGELOG_AUTHOR, - SOLVABLE_CHANGELOG_TEXT, - 0 -}; - -static char *languagetags[] = { - "solvable:summary:", - "solvable:description:", - "solvable:messageins:", - "solvable:messagedel:", - "solvable:eula:", - 0 -}; - -static int test_separate = 0; - -struct keyfilter_data { - char **languages; - int nlanguages; - int haveaddedfileprovides; - int haveexternal; -}; - static int -keyfilter_solv(Repo *data, Repokey *key, void *kfdata) +keyfilter_solv(Repo *repo, Repokey *key, void *kfdata) { - struct keyfilter_data *kd = kfdata; - int i; - const char *keyname; - - if (test_separate && key->storage != KEY_STORAGE_SOLVABLE) - return KEY_STORAGE_DROPPED; - if (!kd->haveaddedfileprovides && key->name == REPOSITORY_ADDEDFILEPROVIDES) - return KEY_STORAGE_DROPPED; - if (!kd->haveexternal && key->name == REPOSITORY_EXTERNAL) - return KEY_STORAGE_DROPPED; if (key->name == SUSETAGS_SHARE_NAME || key->name == SUSETAGS_SHARE_EVR || key->name == SUSETAGS_SHARE_ARCH) return KEY_STORAGE_DROPPED; - for (i = 0; verticals[i]; i++) - if (key->name == verticals[i]) - return KEY_STORAGE_VERTICAL_OFFSET; - keyname = pool_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; -} - -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; - /* those must only be in the main solv file */ - if (key->name == REPOSITORY_EXTERNAL || key->name == REPOSITORY_ADDEDFILEPROVIDES || key->name == REPOSITORY_TOOLVERSION) - return KEY_STORAGE_DROPPED; - for (i = 0; verticals[i]; i++) - if (key->name == verticals[i]) - return KEY_STORAGE_VERTICAL_OFFSET; - keyname = pool_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; -} - -static int -keyfilter_language(Repo *repo, Repokey *key, void *kfdata) -{ - Pool *pool = repo->pool; - const char *name, *p; - char *lang = kfdata; - int i; - - name = pool_id2str(repo->pool, key->name); - p = strrchr(name, ':'); - if (!p || strcmp(p + 1, lang) != 0) - return KEY_STORAGE_DROPPED; - for (i = 0; verticals[i]; i++) - { - const char *vname = pool_id2str(pool, verticals[i]); - if (!strncmp(name, vname, p - name) && vname[p - name] == 0) - return KEY_STORAGE_VERTICAL_OFFSET; - } - return KEY_STORAGE_INCORE; -} - -static int -keyfilter_DU(Repo *repo, Repokey *key, void *kfdata) -{ - int i; - if (key->name != SOLVABLE_DISKUSAGE) - return KEY_STORAGE_DROPPED; - for (i = 0; verticals[i]; i++) - if (key->name == verticals[i]) - return KEY_STORAGE_VERTICAL_OFFSET; - return KEY_STORAGE_INCORE; -} - -static int -keyfilter_FL(Repo *repo, Repokey *key, void *kfdata) -{ - int i; - if (key->name != SOLVABLE_FILELIST) - return KEY_STORAGE_DROPPED; - for (i = 0; verticals[i]; i++) - if (key->name == verticals[i]) - return KEY_STORAGE_VERTICAL_OFFSET; - return KEY_STORAGE_INCORE; -} - -static int -keyfilter_other(Repo *repo, Repokey *key, void *kfdata) -{ - const char *name, *p; - struct keyfilter_data *kd = kfdata; - int i; - - if (!kd->haveaddedfileprovides && key->name == REPOSITORY_ADDEDFILEPROVIDES) - return KEY_STORAGE_DROPPED; - if (!kd->haveexternal && key->name == REPOSITORY_EXTERNAL) - return KEY_STORAGE_DROPPED; - - if (key->name == SOLVABLE_FILELIST || key->name == SOLVABLE_DISKUSAGE) - return KEY_STORAGE_DROPPED; - - name = pool_id2str(repo->pool, key->name); - p = strrchr(name, ':'); - if (p) - { - for (i = 0; i < kd->nlanguages; i++) - if (!strcmp(p + 1, kd->languages[i])) - return KEY_STORAGE_DROPPED; - } - for (i = 0; verticals[i]; i++) - if (key->name == verticals[i]) - return KEY_STORAGE_VERTICAL_OFFSET; - return KEY_STORAGE_INCORE; + return repo_write_stdkeyfilter(repo, key, kfdata); } /* - * Write to stdout - * If is given, write attributes to - * If is given, split attributes + * Write to fp */ - -#define REPODATAFILE_BLOCK 15 - -static void -write_info(Repo *repo, FILE *fp, int (*keyfilter)(Repo *repo, Repokey *key, void *kfdata), void *kfdata, Repodata *info, const char *location) -{ - Id h; - Queue keyq; - Repowriter *writer; - - queue_init(&keyq); - writer = repowriter_create(repo); - repowriter_set_keyfilter(writer, keyfilter, kfdata); - repowriter_set_keyqueue(writer, &keyq); - if (repowriter_write(writer, fp) != 0) - { - fprintf(stderr, "repo write failed\n"); - exit(1); - } - repowriter_free(writer); - h = repodata_new_handle(info); - if (keyq.count) - repodata_set_idarray(info, h, REPOSITORY_KEYS, &keyq); - queue_free(&keyq); - repodata_set_str(info, h, REPOSITORY_LOCATION, location); - repodata_add_flexarray(info, SOLVID_META, REPOSITORY_EXTERNAL, h); -} - void -tool_write(Repo *repo, const char *basename, const char *attrname) +tool_write(Repo *repo, FILE *fp) { - Repodata *data; - Repodata *info = 0; - Repokey *key; - char **languages = 0; - int nlanguages = 0; - int i, j, k, l; - struct keyfilter_data kd; + Repodata *info; Queue addedfileprovides; Repowriter *writer; - memset(&kd, 0, sizeof(kd)); - info = repo_add_repodata(repo, 0); + info = repo_add_repodata(repo, 0); /* add new repodata for our meta info */ repodata_set_str(info, SOLVID_META, REPOSITORY_TOOLVERSION, LIBSOLV_TOOLVERSION); + repodata_unset(info, SOLVID_META, REPOSITORY_EXTERNAL); /* do not propagate this */ + queue_init(&addedfileprovides); pool_addfileprovides_queue(repo->pool, &addedfileprovides, 0); if (addedfileprovides.count) - { - kd.haveaddedfileprovides = 1; - repodata_set_idarray(info, SOLVID_META, REPOSITORY_ADDEDFILEPROVIDES, &addedfileprovides); - } + repodata_set_idarray(info, SOLVID_META, REPOSITORY_ADDEDFILEPROVIDES, &addedfileprovides); + else + repodata_unset(info, SOLVID_META, REPOSITORY_ADDEDFILEPROVIDES); queue_free(&addedfileprovides); pool_freeidhashes(repo->pool); /* free some mem */ - if (basename) - { - char fn[4096]; - FILE *fp; - int has_DU = 0; - int has_FL = 0; - - /* find languages and other info */ - FOR_REPODATAS(repo, i, data) - { - for (j = 1, key = data->keys + j; j < data->nkeys; j++, key++) - { - const char *keyname = pool_id2str(repo->pool, key->name); - if (key->name == SOLVABLE_DISKUSAGE) - has_DU = 1; - if (key->name == SOLVABLE_FILELIST) - has_FL = 1; - for (k = 0; languagetags[k] != 0; k++) - if (!strncmp(keyname, languagetags[k], strlen(languagetags[k]))) - break; - if (!languagetags[k]) - continue; - l = strlen(languagetags[k]); - if (strlen(keyname + l) > 5) - continue; - for (k = 0; k < nlanguages; k++) - if (!strcmp(languages[k], keyname + l)) - break; - if (k < nlanguages) - continue; - languages = solv_realloc2(languages, nlanguages + 1, sizeof(char *)); - languages[nlanguages++] = strdup(keyname + l); - } - } - /* write language subfiles */ - for (i = 0; i < nlanguages; i++) - { - sprintf(fn, "%s.%s.solv", basename, languages[i]); - if (!(fp = fopen(fn, "w"))) - { - perror(fn); - exit(1); - } - write_info(repo, fp, keyfilter_language, languages[i], info, fn); - fclose(fp); - kd.haveexternal = 1; - } - /* write DU subfile */ - if (has_DU) - { - sprintf(fn, "%s.DU.solv", basename); - if (!(fp = fopen(fn, "w"))) - { - perror(fn); - exit(1); - } - write_info(repo, fp, keyfilter_DU, 0, info, fn); - fclose(fp); - kd.haveexternal = 1; - } - /* write filelist */ - if (has_FL) - { - sprintf(fn, "%s.FL.solv", basename); - if (!(fp = fopen(fn, "w"))) - { - perror(fn); - exit(1); - } - write_info(repo, fp, keyfilter_FL, 0, info, fn); - fclose(fp); - kd.haveexternal = 1; - } - /* write everything else */ - sprintf(fn, "%s.solv", basename); - if (!(fp = fopen(fn, "w"))) - { - perror(fn); - exit(1); - } - kd.languages = languages; - kd.nlanguages = nlanguages; - repodata_internalize(info); - writer = repowriter_create(repo); - repowriter_set_keyfilter(writer, keyfilter_other, &kd); - if (repowriter_write(writer, fp) != 0) - { - fprintf(stderr, "repo write failed\n"); - exit(1); - } - if (fclose(fp) != 0) - { - perror("fclose"); - exit(1); - } - repowriter_free(writer); - for (i = 0; i < nlanguages; i++) - free(languages[i]); - solv_free(languages); - repodata_free(info); - return; - } - if (attrname) - { - FILE *fp; - test_separate = 1; - fp = fopen(attrname, "w"); - write_info(repo, fp, keyfilter_attr, 0, info, attrname); - fclose(fp); - kd.haveexternal = 1; - } repodata_internalize(info); writer = repowriter_create(repo); - repowriter_set_keyfilter(writer, keyfilter_solv, &kd); - if (repowriter_write(writer, stdout) != 0) + repowriter_set_keyfilter(writer, keyfilter_solv, 0); + if (repowriter_write(writer, fp) != 0) { fprintf(stderr, "repo write failed\n"); exit(1); } - if (fflush(stdout)) + if (fflush(fp)) { perror("fflush"); exit(1); } repowriter_free(writer); - repodata_free(info); + repodata_free(info); /* delete meta info repodata again */ } diff --git a/tools/common_write.h b/tools/common_write.h index 7630edd1..fda1fd57 100644 --- a/tools/common_write.h +++ b/tools/common_write.h @@ -10,6 +10,6 @@ #include "repo.h" -void tool_write(Repo *repo, const char *basename, const char *attrname); +void tool_write(Repo *repo, FILE *fp); #endif diff --git a/tools/comps2solv.c b/tools/comps2solv.c index cdbcf746..ebb39b53 100644 --- a/tools/comps2solv.c +++ b/tools/comps2solv.c @@ -34,7 +34,7 @@ main(int argc, char **argv) fprintf(stderr, "comps2solv: %s\n", pool_errstr(pool)); exit(1); } - tool_write(repo, 0, 0); + tool_write(repo, stdout); pool_free(pool); exit(0); } diff --git a/tools/deb2solv.c b/tools/deb2solv.c index 63b6839b..ad275415 100644 --- a/tools/deb2solv.c +++ b/tools/deb2solv.c @@ -60,13 +60,10 @@ main(int argc, char **argv) const char *basefile = 0; int is_repo = 0; - while ((c = getopt(argc, argv, "0b:m:r")) >= 0) + while ((c = getopt(argc, argv, "0:m:r")) >= 0) { switch(c) { - case 'b': - basefile = optarg; - break; case 'm': manifest = optarg; break; @@ -150,7 +147,7 @@ main(int argc, char **argv) } } repo_internalize(repo); - tool_write(repo, basefile, 0); + tool_write(repo, stdout); pool_free(pool); for (c = 0; c < ndebs; c++) free((char *)debs[c]); diff --git a/tools/deltainfoxml2solv.c b/tools/deltainfoxml2solv.c index 7d6348f0..906b3ad6 100644 --- a/tools/deltainfoxml2solv.c +++ b/tools/deltainfoxml2solv.c @@ -20,10 +20,9 @@ static void usage(int status) { fprintf(stderr, "\nUsage:\n" - "deltainfoxml2solv [-a][-h][-n ]\n" + "deltainfoxml2solv [-h]\n" " reads a 'deltainfo.xml' file from and writes a .solv file to \n" " -h : print help & exit\n" - " -n : save attributes as .attr\n" ); exit(status); } @@ -32,21 +31,17 @@ int main(int argc, char **argv) { int c, flags = 0; - char *attrname = 0; Pool *pool = pool_create(); Repo *repo = repo_create(pool, ""); - while ((c = getopt(argc, argv, "hn:")) >= 0) + while ((c = getopt(argc, argv, "h")) >= 0) { switch(c) { case 'h': usage(0); break; - case 'n': - attrname = optarg; - break; default: usage(1); break; @@ -57,7 +52,7 @@ main(int argc, char **argv) fprintf(stderr, "deltainfoxml2solv: %s\n", pool_errstr(pool)); exit(1); } - tool_write(repo, 0, attrname); + tool_write(repo, stdout); pool_free(pool); exit(0); } diff --git a/tools/diskusagexml2solv.c b/tools/diskusagexml2solv.c index 59ac79ad..850b02cd 100644 --- a/tools/diskusagexml2solv.c +++ b/tools/diskusagexml2solv.c @@ -22,10 +22,9 @@ static void usage(int status) { fprintf(stderr, "\nUsage:\n" - "diskusagexml2solv [-a][-h][-n ]\n" + "diskusagexml2solv [-h]\n" " reads a 'diskusage.xml' file from and writes a .solv file to \n" " -h : print help & exit\n" - " -n : save attributes as .attr\n" ); exit(status); } @@ -34,21 +33,17 @@ int main(int argc, char **argv) { int c, flags = 0; - char *attrname = 0; Pool *pool = pool_create(); Repo *repo = repo_create(pool, ""); - while ((c = getopt(argc, argv, "hn:")) >= 0) + while ((c = getopt(argc, argv, "h")) >= 0) { switch(c) { case 'h': usage(0); break; - case 'n': - attrname = optarg; - break; default: usage(1); break; @@ -59,7 +54,7 @@ main(int argc, char **argv) fprintf(stderr, "diskusagexml2solv: %s\n", pool_errstr(pool)); exit(1); } - tool_write(repo, 0, attrname); + tool_write(repo, stdout); pool_free(pool); exit(0); } diff --git a/tools/helix2solv.c b/tools/helix2solv.c index 04c6b485..8ab531e7 100644 --- a/tools/helix2solv.c +++ b/tools/helix2solv.c @@ -33,7 +33,7 @@ main(int argc, char **argv) fprintf(stderr, "helix2solv: %s\n", pool_errstr(pool)); exit(1); } - tool_write(repo, 0, 0); + tool_write(repo, stdout); pool_free(pool); exit(0); } diff --git a/tools/mdk2solv.c b/tools/mdk2solv.c index bd77fb7f..3a6cf948 100644 --- a/tools/mdk2solv.c +++ b/tools/mdk2solv.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, Novell Inc. + * Copyright (c) 2012, Novell Inc.); * * This program is licensed under the BSD license, read LICENSE.BSD * for further information @@ -104,7 +104,7 @@ main(int argc, char **argv) fclose(fp); } repo_internalize(repo); - tool_write(repo, 0, 0); + tool_write(repo, stdout); pool_free(pool); exit(0); } diff --git a/tools/mergesolv.c b/tools/mergesolv.c index ae6e163a..8746ac60 100644 --- a/tools/mergesolv.c +++ b/tools/mergesolv.c @@ -60,7 +60,6 @@ main(int argc, char **argv) { Pool *pool; Repo *repo; - const char *basefile = 0; int with_attr = 0; #ifdef SUSE int add_auto = 0; @@ -70,7 +69,7 @@ main(int argc, char **argv) pool = pool_create(); repo = repo_create(pool, ""); - while ((c = getopt(argc, argv, "ahb:X")) >= 0) + while ((c = getopt(argc, argv, "ahX")) >= 0) { switch (c) { @@ -80,9 +79,6 @@ main(int argc, char **argv) case 'a': with_attr = 1; break; - case 'b': - basefile = optarg; - break; case 'X': #ifdef SUSE add_auto = 1; @@ -115,7 +111,7 @@ main(int argc, char **argv) if (add_auto) repo_add_autopattern(repo, 0); #endif - tool_write(repo, basefile, 0); + tool_write(repo, stdout); pool_free(pool); return 0; } diff --git a/tools/repo2solv.c b/tools/repo2solv.c index e055e408..20d816cb 100644 --- a/tools/repo2solv.c +++ b/tools/repo2solv.c @@ -827,12 +827,7 @@ main(int argc, char **argv) if (add_auto) repo_add_autopattern(repo, 0); #endif - tool_write(repo, 0, 0); - if (fflush(stdout)) - { - perror("fflush"); - exit(1); - } + tool_write(repo, stdout); pool_free(pool); solv_free(dir); exit(res); diff --git a/tools/repomdxml2solv.c b/tools/repomdxml2solv.c index e3159def..fdf76668 100644 --- a/tools/repomdxml2solv.c +++ b/tools/repomdxml2solv.c @@ -115,7 +115,7 @@ main(int argc, char **argv) if (query) doquery(pool, repo, query); else - tool_write(repo, 0, 0); + tool_write(repo, stdout); pool_free(pool); exit(0); } diff --git a/tools/rpmdb2solv.c b/tools/rpmdb2solv.c index 71fd11c1..58ef5675 100644 --- a/tools/rpmdb2solv.c +++ b/tools/rpmdb2solv.c @@ -43,7 +43,6 @@ usage(int status) fprintf(stderr, "\nUsage:\n" "rpmdb2solv [-n] [-b ] [-p ] [-r ]\n" " -n : No packages, do not read rpmdb, useful to only parse products\n" - " -b : Write .solv to .solv instead of stdout\n" " -p : Scan for .prod files, representing installed products\n" " -r : Prefix rpmdb path and with \n" " -o : Write .solv to file instead of stdout\n" @@ -63,7 +62,6 @@ main(int argc, char **argv) int nopacks = 0; int add_changelog = 0; const char *root = 0; - const char *basefile = 0; const char *refname = 0; #ifdef ENABLE_SUSEREPO char *proddir = 0; @@ -83,7 +81,7 @@ main(int argc, char **argv) * parse arguments */ - while ((c = getopt(argc, argv, "ACPhnkxXb:r:p:o:")) >= 0) + while ((c = getopt(argc, argv, "ACPhnkxXr:p:o:")) >= 0) switch (c) { case 'h': @@ -92,9 +90,6 @@ main(int argc, char **argv) case 'r': root = optarg; break; - case 'b': - basefile = optarg; - break; case 'n': nopacks = 1; break; @@ -229,7 +224,7 @@ main(int argc, char **argv) repo_add_autopattern(repo, ADD_NO_AUTOPRODUCTS); #endif - tool_write(repo, basefile, 0); + tool_write(repo, stdout); pool_free(pool); exit(0); } diff --git a/tools/rpmmd2solv.c b/tools/rpmmd2solv.c index 437c83df..ad75025e 100644 --- a/tools/rpmmd2solv.c +++ b/tools/rpmmd2solv.c @@ -27,11 +27,9 @@ static void usage(int status) { fprintf(stderr, "\nUsage:\n" - "rpmmd2solv [-a][-h][-n ][-l ]\n" + "rpmmd2solv [-h]\n" " reads 'primary' from a 'rpmmd' repository from and writes a .solv file to \n" " -h : print help & exit\n" - " -n : save attributes as .attr\n" - " -l : parse localization data for \n" ); exit(status); } @@ -39,11 +37,7 @@ usage(int status) int main(int argc, char **argv) { - int c, flags = 0; - const char *attrname = 0; - const char *basefile = 0; - const char *dir = 0; - const char *locale = 0; + int c; #ifdef SUSE int add_auto = 0; #endif @@ -51,25 +45,13 @@ main(int argc, char **argv) Pool *pool = pool_create(); Repo *repo = repo_create(pool, ""); - while ((c = getopt (argc, argv, "hn:b:d:l:X")) >= 0) + while ((c = getopt (argc, argv, "hX")) >= 0) { - switch(c) + switch (c) { case 'h': usage(0); break; - case 'n': - attrname = optarg; - break; - case 'b': - basefile = optarg; - break; - case 'd': - dir = optarg; - break; - case 'l': - locale = optarg; - break; case 'X': #ifdef SUSE add_auto = 1; @@ -80,81 +62,16 @@ main(int argc, char **argv) break; } } - if (dir) - { - FILE *fp; - int l; - char *fnp; - l = strlen(dir) + 128; - fnp = solv_malloc(l+1); - snprintf(fnp, l, "%s/primary.xml.gz", dir); - if (!(fp = solv_xfopen(fnp, 0))) - { - perror(fnp); - exit(1); - } - if (repo_add_rpmmd(repo, fp, 0, flags)) - { - fprintf(stderr, "rpmmd2solv: %s: %s\n", fnp, pool_errstr(pool)); - exit(1); - } - fclose(fp); - snprintf(fnp, l, "%s/diskusagedata.xml.gz", dir); - if ((fp = solv_xfopen(fnp, 0))) - { - if (repo_add_rpmmd(repo, fp, 0, flags)) - { - fprintf(stderr, "rpmmd2solv: %s: %s\n", fnp, pool_errstr(pool)); - exit(1); - } - fclose(fp); - } - if (locale) - { - if (snprintf(fnp, l, "%s/translation-%s.xml.gz", dir, locale) >= l) - { - fprintf(stderr, "-l parameter too long\n"); - exit(1); - } - while (!(fp = solv_xfopen(fnp, 0))) - { - fprintf(stderr, "not opened %s\n", fnp); - if (strlen(locale) > 2) - { - if (snprintf(fnp, l, "%s/translation-%.2s.xml.gz", dir, locale) >= l) - { - fprintf(stderr, "-l parameter too long\n"); - exit(1); - } - if ((fp = solv_xfopen(fnp, 0))) - break; - } - perror(fnp); - exit(1); - } - fprintf(stderr, "opened %s\n", fnp); - if (repo_add_rpmmd(repo, fp, 0, flags)) - { - fprintf(stderr, "rpmmd2solv: %s: %s\n", fnp, pool_errstr(pool)); - exit(1); - } - fclose(fp); - } - solv_free(fnp); - } - else + if (repo_add_rpmmd(repo, stdin, 0, 0)) { - if (repo_add_rpmmd(repo, stdin, 0, flags)) - { - fprintf(stderr, "rpmmd2solv: %s\n", pool_errstr(pool)); - exit(1); - } + fprintf(stderr, "rpmmd2solv: %s\n", pool_errstr(pool)); + exit(1); } #ifdef SUSE if (add_auto) repo_add_autopattern(repo, 0); #endif - tool_write(repo, basefile, attrname); + tool_write(repo, stdout); pool_free(pool); exit(0); } diff --git a/tools/rpms2solv.c b/tools/rpms2solv.c index 7852b08d..c012b46c 100644 --- a/tools/rpms2solv.c +++ b/tools/rpms2solv.c @@ -64,7 +64,6 @@ main(int argc, char **argv) Repo *repo; FILE *fp; char buf[4096], *p; - const char *basefile = 0; #ifdef ENABLE_PUBKEY int pubkeys = 0; #endif @@ -73,13 +72,10 @@ main(int argc, char **argv) #endif int filtered_filelist = 0; - while ((c = getopt(argc, argv, "0XkKb:m:F")) >= 0) + while ((c = getopt(argc, argv, "0XkKm:F")) >= 0) { switch(c) { - case 'b': - basefile = optarg; - break; case 'm': manifest = optarg; break; @@ -184,7 +180,7 @@ main(int argc, char **argv) if (add_auto) repo_add_autopattern(repo, 0); #endif - tool_write(repo, basefile, 0); + tool_write(repo, stdout); pool_free(pool); for (c = 0; c < nrpms; c++) free((char *)rpms[c]); diff --git a/tools/susetags2solv.c b/tools/susetags2solv.c index 19278dbf..8963c815 100644 --- a/tools/susetags2solv.c +++ b/tools/susetags2solv.c @@ -29,13 +29,11 @@ static void usage(int status) { fprintf(stderr, "\nUsage:\n" - "susetags2solv [-b ][-c ][-d ][-h][-n ]\n" + "susetags2solv [-c ][-d ][-h][-n ]\n" " reads a 'susetags' repository from and writes a .solv file to \n" - " -b : save as multiple files starting with \n" " -c : parse given contentfile (for product information)\n" " -d : do not read from stdin, but use data in descrdir\n" " -h : print help & exit\n" - " -n : save attributes as .attr\n" ); exit(status); } @@ -61,9 +59,7 @@ int main(int argc, char **argv) { const char *contentfile = 0; - const char *attrname = 0; const char *descrdir = 0; - const char *basefile = 0; const char *query = 0; const char *mergefile = 0; Id defvendor = 0; @@ -75,25 +71,19 @@ main(int argc, char **argv) Pool *pool; Repo *repo; - while ((c = getopt(argc, argv, "hn:c:d:b:q:M:X")) >= 0) + while ((c = getopt(argc, argv, "hc:d:q:M:X")) >= 0) { switch (c) { case 'h': usage(0); break; - case 'n': - attrname = optarg; - break; case 'c': contentfile = optarg; break; case 'd': descrdir = optarg; break; - case 'b': - basefile = optarg; - break; case 'q': query = optarg; break; @@ -132,20 +122,6 @@ main(int argc, char **argv) fclose(fp); } - if (attrname) - { - /* ensure '.attr' suffix */ - const char *dot = strrchr(attrname, '.'); - if (!dot || strcmp(dot, ".attr")) - { - int len = strlen (attrname); - char *newname = (char *)malloc(len + 6); /* alloc for +'.attr'+'\0' */ - strcpy (newname, attrname); - strcpy (newname+len, ".attr"); - attrname = newname; - } - } - /* * descrdir path given, open files and read from there */ @@ -311,7 +287,7 @@ main(int argc, char **argv) if (query) doquery(pool, repo, query); else - tool_write(repo, basefile, attrname); + tool_write(repo, stdout); pool_free(pool); exit(0); } diff --git a/tools/updateinfoxml2solv.c b/tools/updateinfoxml2solv.c index 6a97b0d0..9bc038ef 100644 --- a/tools/updateinfoxml2solv.c +++ b/tools/updateinfoxml2solv.c @@ -20,10 +20,9 @@ static void usage(int status) { fprintf(stderr, "\nUsage:\n" - "updateinfoxml2solv [-h][-n ]\n" + "updateinfoxml2solv [-h]\n" " reads a 'updateinfo.xml' file from and writes a .solv file to \n" " -h : print help & exit\n" - " -n : save attributes as .attr\n" ); exit(status); } @@ -32,21 +31,17 @@ int main(int argc, char **argv) { int c, flags = 0; - char *attrname = 0; Pool *pool = pool_create(); Repo *repo = repo_create(pool, ""); - while ((c = getopt(argc, argv, "hn:")) >= 0) + while ((c = getopt(argc, argv, "h")) >= 0) { switch(c) { case 'h': usage(0); break; - case 'n': - attrname = optarg; - break; default: usage(1); break; @@ -57,7 +52,7 @@ main(int argc, char **argv) fprintf(stderr, "updateinfoxml2solv: %s\n", pool_errstr(pool)); exit(1); } - tool_write(repo, 0, attrname); + tool_write(repo, stdout); pool_free(pool); exit(0); }