[CVS] OpenPKG: openpkg-src/pkgconfig/ pkgconfig.patch
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Ralf S. Engelschall Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-src Date: 04-Oct-2006 09:29:30 Branch: HEAD Handle: 2006100408292900 Modified files: openpkg-src/pkgconfig pkgconfig.patch Log: Removing duplicate -lxxx from the back or from the front of the list is not always the correct thing as there can be situations constructed where each one fails in case of static library linking. For instance, the auto-generated (because of listed dependencies in *.pc files) "-lpango -lfreetype -lz -lfontconfig -lpango -lfreetype -lz" on remove-from-back results in "-lpango -lfreetype -lz -lfontconfig" and leads to "fontconfig with freetype symbols unresolved" while on remove-from-front results in "-lfontconfig -lpango -lfreetype -lz" and leads to "pango with fontconfig symbols unresolved". The only safe method is either to not remove duplicated at all or just remove them from the middle (keeping first and last occurrences). Hence, let's take the "usual large RSE hammer" ;-) and force pkg-config to do what we wish... Summary: RevisionChanges Path 1.5 +242 -2 openpkg-src/pkgconfig/pkgconfig.patch patch -p0 <<'@@ .' Index: openpkg-src/pkgconfig/pkgconfig.patch $ cvs diff -u -r1.4 -r1.5 pkgconfig.patch --- openpkg-src/pkgconfig/pkgconfig.patch 4 Oct 2006 05:46:46 - 1.4 +++ openpkg-src/pkgconfig/pkgconfig.patch 4 Oct 2006 07:29:29 - 1.5 @@ -1,6 +1,6 @@ Index: main.c --- main.c.orig 2006-08-16 19:54:56 +0200 -+++ main.c 2006-10-03 16:21:58 +0200 main.c 2006-10-04 08:15:25 +0200 @@ -182,7 +182,8 @@ int want_I_cflags = 0; int want_other_cflags = 0; @@ -40,9 +40,35 @@ if (want_static_lib_list) enable_private_libs(); else +@@ -622,7 +636,7 @@ + + if (want_l_libs) + { +- char *str = packages_get_l_libs (packages); ++ char *str = packages_get_l_libs (packages, want_static_lib_list); + printf ("%s ", str); + g_free (str); + need_newline = TRUE; +@@ -636,14 +650,14 @@ + } + else if (want_other_libs) + { +- char *str = packages_get_other_libs (packages); ++ char *str = packages_get_other_libs (packages, want_static_lib_list); + printf ("%s ", str); + g_free (str); + need_newline = TRUE; + } + else if (want_libs) + { +- char *str = packages_get_all_libs (packages); ++ char *str = packages_get_all_libs (packages, want_static_lib_list); + printf ("%s ", str); + g_free (str); + need_newline = TRUE; Index: parse.c --- parse.c.orig 2006-08-16 20:45:45 +0200 -+++ parse.c 2006-10-03 16:17:58 +0200 parse.c 2006-10-04 08:15:25 +0200 @@ -1394,7 +1394,7 @@ return pkg; @@ -63,3 +89,217 @@ +} #endif } +Index: pkg.c +--- pkg.c.orig 2006-08-16 21:01:04 +0200 pkg.c2006-10-04 08:54:57 +0200 +@@ -473,6 +473,58 @@ + return nodups; + } + ++static GSList* ++string_list_strip_duplicates_from_middle (GSList *list) ++{ ++ GHashTable *table_first; ++ GHashTable *table_last; ++ GList *dlist; ++ GList *dlelem; ++ GSList *slist; ++ GSList *selem; ++ ++ /* shuffle from single-linked list to double-linked list ++ in order to be able to go both forward and backward while ++ still having the element (not its data) as the identifier */ ++ dlist = NULL; ++ for (selem = list; selem != NULL; selem = g_slist_next(selem)) ++ dlist = g_list_prepend(dlist, selem->data); ++ dlist = g_list_reverse(dlist); ++ ++ /* determine first and last elements */ ++ table_first = g_hash_table_new (g_str_hash, g_str_equal); ++ table_last = g_hash_table_new (g_str_hash, g_str_equal); ++ for (dlelem = dlist; dlelem != NULL; dlelem = g_list_next(dlelem)) { ++ if (g_hash_table_lookup(table_first, dlelem->data) == NULL) ++ g_hash_table_insert(table_first, dlelem->data, dlelem); ++ } ++ for (dlelem = g_list_last(dlist); dlelem != NULL; dlelem = g_list_previous(dlelem)) { ++ if (g_hash_table_lookup(table_last, dlelem->data) == NULL) ++ g_hash_table_insert(table_last, dlelem->data, dlelem); ++ } ++ ++ /* remove duplicates */ ++ slist = NULL; ++ for (dlelem = dlist; dlelem != NULL; dlelem = g_list_next(dlelem)) { ++ if ( g_hash_table_lookup(table_first, dlelem->data) == dlelem
[CVS] OpenPKG: openpkg-src/pkgconfig/ pkgconfig.patch pkgconfig.spec
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Ralf S. Engelschall Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-src Date: 04-Oct-2006 07:46:47 Branch: HEAD Handle: 2006100406464600 Modified files: openpkg-src/pkgconfig pkgconfig.patch pkgconfig.spec Log: cleanup packaging and fix patch Summary: RevisionChanges Path 1.4 +30 -31 openpkg-src/pkgconfig/pkgconfig.patch 1.37+2 -1 openpkg-src/pkgconfig/pkgconfig.spec patch -p0 <<'@@ .' Index: openpkg-src/pkgconfig/pkgconfig.patch $ cvs diff -u -r1.3 -r1.4 pkgconfig.patch --- openpkg-src/pkgconfig/pkgconfig.patch 24 Oct 2005 13:25:01 - 1.3 +++ openpkg-src/pkgconfig/pkgconfig.patch 4 Oct 2006 05:46:46 - 1.4 @@ -1,30 +1,6 @@ -diff -Nau parse.c.orig parse.c parse.c.orig Fri Nov 7 10:55:19 2003 -+++ parse.c Fri Nov 7 11:37:53 2003 -@@ -1239,7 +1239,7 @@ - - return pkg; - } -- else -+ else if (strncmp (name, "gnome", strlen("gnome")) == 0) - { - /* Check for the module in gnome-config */ - char *output; -@@ -1337,6 +1337,11 @@ - g_free (output); - - return pkg; -+} -+ else -+{ -+ g_free (pkg); -+ return NULL; - } - #endif - } Index: main.c main.c.orig 2005-10-16 20:04:50 +0200 -+++ main.c 2005-10-24 15:13:44 +0200 +--- main.c.orig 2006-08-16 19:54:56 +0200 main.c 2006-10-03 16:21:58 +0200 @@ -182,7 +182,8 @@ int want_I_cflags = 0; int want_other_cflags = 0; @@ -46,9 +22,9 @@ { "short-errors", 0, POPT_ARG_NONE, &want_short_errors, 0, "print short errors" }, { "libs-only-l", 0, POPT_ARG_NONE, &want_l_libs, 0, -@@ -621,6 +624,17 @@ - need_newline = TRUE; - } +@@ -415,6 +418,17 @@ + else + debug_spew ("Error printing disabled\n"); + /* + * if user explicitly specified only --static, then recurse. * @@ -61,6 +37,29 @@ + if (!want_static_lib_list && !want_shared_lib_list) +want_static_lib_list = ENABLE_INDIRECT_DEPS; + - if (want_l_libs) + if (want_static_lib_list) + enable_private_libs(); + else +Index: parse.c +--- parse.c.orig 2006-08-16 20:45:45 +0200 parse.c 2006-10-03 16:17:58 +0200 +@@ -1394,7 +1394,7 @@ + + return pkg; + } +- else ++ else if (strncmp (name, "gnome", strlen("gnome")) == 0) { - char *str = packages_get_l_libs (packages); + /* Check for the module in gnome-config */ + char *output; +@@ -1493,5 +1493,10 @@ + + return pkg; + } ++ else ++{ ++ g_free (pkg); ++ return NULL; ++} + #endif + } @@ . patch -p0 <<'@@ .' Index: openpkg-src/pkgconfig/pkgconfig.spec $ cvs diff -u -r1.36 -r1.37 pkgconfig.spec --- openpkg-src/pkgconfig/pkgconfig.spec 24 Sep 2006 08:32:52 - 1.36 +++ openpkg-src/pkgconfig/pkgconfig.spec 4 Oct 2006 05:46:46 - 1.37 @@ -33,7 +33,7 @@ Group:Building License: GPL Version: 0.21 -Release: 20060924 +Release: 20061004 # list of sources Source0: http://pkgconfig.freedesktop.org/releases/pkg-config-%{version}.tar.gz @@ -64,6 +64,7 @@ %patch -p0 %{l_shtool} subst \ -e '/LINENO: error: C[+]* preprocessor/{N;N;N;N;s/.*/:/;}' \ +-e 's;-Wall;;' \ configure glib-*/configure %build @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-src/pkgconfig/ pkgconfig.patch pkgconfig.spec
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-src Date: 24-Oct-2005 15:25:01 Branch: HEAD Handle: 2005102414250100 Modified files: openpkg-src/pkgconfig pkgconfig.patch pkgconfig.spec Log: upgrading package: pkgconfig 0.19 -> 0.20 Summary: RevisionChanges Path 1.3 +9 -9 openpkg-src/pkgconfig/pkgconfig.patch 1.33+2 -2 openpkg-src/pkgconfig/pkgconfig.spec patch -p0 <<'@@ .' Index: openpkg-src/pkgconfig/pkgconfig.patch $ cvs diff -u -r1.2 -r1.3 pkgconfig.patch --- openpkg-src/pkgconfig/pkgconfig.patch 20 Apr 2005 17:02:39 - 1.2 +++ openpkg-src/pkgconfig/pkgconfig.patch 24 Oct 2005 13:25:01 - 1.3 @@ -22,9 +22,9 @@ } #endif } -diff -Nau main.c.orig main.c main.c.orig 2005-04-12 13:08:13 +0200 -+++ main.c 2005-04-20 18:04:10 +0200 +Index: main.c +--- main.c.orig 2005-10-16 20:04:50 +0200 main.c 2005-10-24 15:13:44 +0200 @@ -182,7 +182,8 @@ int want_I_cflags = 0; int want_other_cflags = 0; @@ -32,10 +32,10 @@ - int want_static_lib_list = ENABLE_INDIRECT_DEPS; + int want_static_lib_list = 0; + int want_shared_lib_list = 0; + int want_short_errors = 0; int result; int want_uninstalled = 0; - char *variable_name = NULL; -@@ -217,7 +218,9 @@ +@@ -218,7 +219,9 @@ { "libs", 0, POPT_ARG_NONE, &want_libs, 0, "output all linker flags" }, { "static", 0, POPT_ARG_NONE, &want_static_lib_list, 0, @@ -43,10 +43,10 @@ + "output explicit linker flags for static linking" }, +{ "shared", 0, POPT_ARG_NONE, &want_shared_lib_list, 0, + "output implicit linker flags for dynamic linking" }, + { "short-errors", 0, POPT_ARG_NONE, &want_short_errors, 0, + "print short errors" }, { "libs-only-l", 0, POPT_ARG_NONE, &want_l_libs, 0, - "output -l flags" }, - { "libs-only-other", 0, POPT_ARG_NONE, &want_other_libs, 0, -@@ -592,6 +595,17 @@ +@@ -621,6 +624,17 @@ need_newline = TRUE; } @@ -63,4 +63,4 @@ + if (want_l_libs) { - char *str = packages_get_l_libs (packages, want_static_lib_list); + char *str = packages_get_l_libs (packages); @@ . patch -p0 <<'@@ .' Index: openpkg-src/pkgconfig/pkgconfig.spec $ cvs diff -u -r1.32 -r1.33 pkgconfig.spec --- openpkg-src/pkgconfig/pkgconfig.spec 29 Aug 2005 06:18:18 - 1.32 +++ openpkg-src/pkgconfig/pkgconfig.spec 24 Oct 2005 13:25:01 - 1.33 @@ -32,8 +32,8 @@ Class:BASE Group:Converter License: GPL -Version: 0.19 -Release: 20050829 +Version: 0.20 +Release: 20051024 # list of sources Source0: http://pkgconfig.freedesktop.org/releases/pkg-config-%{version}.tar.gz @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-src/pkgconfig/ pkgconfig.patch pkgconfig.spec
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Michael Schloh Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-src Date: 20-Apr-2005 19:02:39 Branch: HEAD Handle: 2005042018023900 Modified files: openpkg-src/pkgconfig pkgconfig.patch pkgconfig.spec Log: introduce patch logic to add a new command line argument '--shared', the functional counterpart of the recently added '--static' argument Summary: RevisionChanges Path 1.2 +45 -3 openpkg-src/pkgconfig/pkgconfig.patch 1.27+1 -1 openpkg-src/pkgconfig/pkgconfig.spec patch -p0 <<'@@ .' Index: openpkg-src/pkgconfig/pkgconfig.patch $ cvs diff -u -r1.1 -r1.2 pkgconfig.patch --- openpkg-src/pkgconfig/pkgconfig.patch 7 Nov 2003 10:53:22 - 1.1 +++ openpkg-src/pkgconfig/pkgconfig.patch 20 Apr 2005 17:02:39 - 1.2 @@ -1,6 +1,6 @@ -diff -Naur pkgconfig-0.15.0.orig/parse.c pkgconfig-0.15.0/parse.c pkgconfig-0.15.0.orig/parse.cFri Nov 7 10:55:19 2003 -+++ pkgconfig-0.15.0/parse.c Fri Nov 7 11:37:53 2003 +diff -Nau parse.c.orig parse.c +--- parse.c.orig Fri Nov 7 10:55:19 2003 parse.c Fri Nov 7 11:37:53 2003 @@ -1239,7 +1239,7 @@ return pkg; @@ -22,3 +22,45 @@ } #endif } +diff -Nau main.c.orig main.c +--- main.c.orig 2005-04-12 13:08:13 +0200 main.c 2005-04-20 18:04:10 +0200 +@@ -182,7 +182,8 @@ + int want_I_cflags = 0; + int want_other_cflags = 0; + int want_list = 0; +- int want_static_lib_list = ENABLE_INDIRECT_DEPS; ++ int want_static_lib_list = 0; ++ int want_shared_lib_list = 0; + int result; + int want_uninstalled = 0; + char *variable_name = NULL; +@@ -217,7 +218,9 @@ + { "libs", 0, POPT_ARG_NONE, &want_libs, 0, + "output all linker flags" }, + { "static", 0, POPT_ARG_NONE, &want_static_lib_list, 0, +- "output linker flags for static linking" }, ++ "output explicit linker flags for static linking" }, ++{ "shared", 0, POPT_ARG_NONE, &want_shared_lib_list, 0, ++ "output implicit linker flags for dynamic linking" }, + { "libs-only-l", 0, POPT_ARG_NONE, &want_l_libs, 0, + "output -l flags" }, + { "libs-only-other", 0, POPT_ARG_NONE, &want_other_libs, 0, +@@ -592,6 +595,17 @@ + need_newline = TRUE; + } + ++ /* ++ * if user explicitly specified only --static, then recurse. * ++ * if user explicitly specified both --static and --shared, then recurse. * ++ ** ++ * ...but if user did not explicitly specify either argument, then* ++ * obey the default logic as defined by ENABLE_INDIRECT_DEPS (as set * ++ * by the configure script with the --enable-indirect-deps argument). * ++ */ ++ if (!want_static_lib_list && !want_shared_lib_list) ++want_static_lib_list = ENABLE_INDIRECT_DEPS; ++ + if (want_l_libs) + { + char *str = packages_get_l_libs (packages, want_static_lib_list); @@ . patch -p0 <<'@@ .' Index: openpkg-src/pkgconfig/pkgconfig.spec $ cvs diff -u -r1.26 -r1.27 pkgconfig.spec --- openpkg-src/pkgconfig/pkgconfig.spec 20 Apr 2005 15:22:53 - 1.26 +++ openpkg-src/pkgconfig/pkgconfig.spec 20 Apr 2005 17:02:39 - 1.27 @@ -61,7 +61,7 @@ %prep %setup -q -%patch -p1 +%patch -p0 %build case "%{l_platform -t}" in @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org