diff --git a/pkgconfig-0.15.0-reqprov.patch b/pkgconfig-0.15.0-reqprov.patch new file mode 100644 index 0000000..1ce1e76 --- /dev/null +++ b/pkgconfig-0.15.0-reqprov.patch @@ -0,0 +1,71 @@ +diff -ur pkgconfig-0.15.0/main.c pkgconfig-0.15.0/main.c +--- pkgconfig-0.15.0/main.c 2005-02-02 19:12:20.327992745 -0500 ++++ pkgconfig-0.15.0/main.c 2005-02-02 19:15:45.784804237 -0500 +@@ -173,6 +173,8 @@ + static int want_uninstalled = 0; + static char *variable_name = NULL; + static int want_exists = 0; ++ static int want_prov = 0; ++ static int want_req = 0; + static char *required_atleast_version = NULL; + static char *required_exact_version = NULL; + static char *required_max_version = NULL; +@@ -244,6 +246,10 @@ + { "msvc-syntax", 0, POPT_ARG_NONE, &msvc_syntax, 0, + "output -l and -L flags for the Microsoft compiler (cl)" }, + #endif ++ { "print-provides", 0, POPT_ARG_NONE, &want_prov, 0, ++ "print which packages the package provides" }, ++ { "print-requires", 0, POPT_ARG_NONE, &want_req, 0, ++ "print which packages the package requires" }, + POPT_AUTOHELP + { NULL, 0, 0, NULL, 0 } + }; +@@ -521,6 +527,47 @@ + } + } + ++ if (want_prov) ++ { ++ GSList *tmp; ++ tmp = packages; ++ while (tmp != NULL) ++ { ++ Package *pkg = tmp->data; ++ char *key; ++ key = pkg->key; ++ while (*key == '/') ++ key++; ++ if (strlen(key) > 0) ++ printf ("%s = %s\n", key, pkg->version); ++ tmp = g_slist_next (tmp); ++ } ++ } ++ ++ if (want_req) ++ { ++ GSList *pkgtmp = packages; ++ while (pkgtmp != NULL) ++ { ++ Package *pkg = pkgtmp->data; ++ GSList *reqtmp = pkg->requires; ++ while (reqtmp != NULL) ++ { ++ Package *deppkg = reqtmp->data; ++ RequiredVersion *req; ++ req = g_hash_table_lookup(pkg->required_versions, deppkg->key); ++ if ((req == NULL) || (req->comparison == ALWAYS_MATCH)) ++ printf ("%s\n", deppkg->key); ++ else ++ printf ("%s %s %s\n", deppkg->key, ++ comparison_to_str(req->comparison), ++ req->version); ++ reqtmp = g_slist_next (reqtmp); ++ } ++ pkgtmp = g_slist_next (pkgtmp); ++ } ++ } ++ + if (required_exact_version) + { + Package *pkg = packages->data; diff --git a/pkgconfig.spec b/pkgconfig.spec index 8cf97e7..e8908c0 100644 --- a/pkgconfig.spec +++ b/pkgconfig.spec @@ -1,7 +1,7 @@ Summary: A tool for determining compilation options. Name: pkgconfig Version: 0.15.0 -Release: 5 +Release: 6 Epoch: 1 License: GPL Group: Development/Tools @@ -14,6 +14,7 @@ Patch2: pkgconfig-0.14.0-datadir.patch Patch3: pkgconfig-0.15.0-quote.patch # https://bugs.freedesktop.org/show_bug.cgi?id=2661 Patch4: pkgconfig-0.15.0-overflow.patch +Patch5: pkgconfig-0.15.0-reqprov.patch BuildRoot: %{_tmppath}/%{name}-root %description @@ -27,6 +28,7 @@ compiler and linker flags. %patch2 -p1 -b .datadir %patch3 -p1 -b .quote %patch4 -p1 -b .overflow +%patch5 -p1 -b .reqprov autoheader-2.13 autoconf-2.13 automake-1.4 @@ -52,6 +54,9 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/aclocal/* %changelog +* Wed Mar 30 2005 Matthias Clasen 1:0.15.0-6 +- add --print-requires and --print-provide options + * Mon Mar 7 2005 Matthias Clasen 1:0.15.0-5 - fix an overflow