[CVS] OpenPKG: openpkg-src/pkgconfig/ pkgconfig.patch

2006-10-04 Thread Ralf S. Engelschall
  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

2006-10-03 Thread Ralf S. Engelschall
  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

2005-10-24 Thread Thomas Lotterer
  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

2005-04-20 Thread Michael Schloh
  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