about summary refs log tree commit diff
path: root/pkgs/development/tools/misc/pkgconfig
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2008-03-06 16:22:24 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2008-03-06 16:22:24 +0000
commit92f6176390a9f9f7ec893f08d07203621b7de75b (patch)
treed13752e13eebece6f48eea8515e7fa82cba406b7 /pkgs/development/tools/misc/pkgconfig
parent328da81b30144523dfcc47878c0c527124a3ac6d (diff)
downloadnixlib-92f6176390a9f9f7ec893f08d07203621b7de75b.tar
nixlib-92f6176390a9f9f7ec893f08d07203621b7de75b.tar.gz
nixlib-92f6176390a9f9f7ec893f08d07203621b7de75b.tar.bz2
nixlib-92f6176390a9f9f7ec893f08d07203621b7de75b.tar.lz
nixlib-92f6176390a9f9f7ec893f08d07203621b7de75b.tar.xz
nixlib-92f6176390a9f9f7ec893f08d07203621b7de75b.tar.zst
nixlib-92f6176390a9f9f7ec893f08d07203621b7de75b.zip
* pkg-config (note name change): updated to 0.23. Also, look in
  share/pkgconfig in addition to lib/pkgconfig.

svn path=/nixpkgs/branches/stdenv-updates/; revision=10993
Diffstat (limited to 'pkgs/development/tools/misc/pkgconfig')
-rw-r--r--pkgs/development/tools/misc/pkgconfig/default.nix22
-rw-r--r--pkgs/development/tools/misc/pkgconfig/private.patch177
-rw-r--r--pkgs/development/tools/misc/pkgconfig/setup-hook.sh1
3 files changed, 191 insertions, 9 deletions
diff --git a/pkgs/development/tools/misc/pkgconfig/default.nix b/pkgs/development/tools/misc/pkgconfig/default.nix
index 41a61f600e04..f5912438d6be 100644
--- a/pkgs/development/tools/misc/pkgconfig/default.nix
+++ b/pkgs/development/tools/misc/pkgconfig/default.nix
@@ -1,21 +1,25 @@
 {stdenv, fetchurl}:
 
 stdenv.mkDerivation {
-  name = "pkgconfig-0.22";
+  name = "pkg-config-0.23";
+  
   setupHook = ./setup-hook.sh;
+  
   src = fetchurl {
-    url = http://pkgconfig.freedesktop.org/releases/pkg-config-0.22.tar.gz;
-    sha256 = "1rpb5wygmp0f8nal7y3ga4556i7hkjdslv3wdq04fj30gns621vy";
+    url = http://pkgconfig.freedesktop.org/releases/pkg-config-0.23.tar.gz;
+    sha256 = "0lrvk17724mc2nzpaa0vwybarrl50r7qdnr4h6jijm50srrf1808";
   };
 
   patches = [
     # Process Requires.private properly, see
     # http://bugs.freedesktop.org/show_bug.cgi?id=4738.
-    (fetchurl {
-      name = "pkgconfig-8494.patch";
-      url = http://bugs.freedesktop.org/attachment.cgi?id=8494;
-      sha256 = "1pcrdbb7dypg2biy0yqc7bdxak5zii8agqljdvk7j4wbyghpqzws";
-    })
+    ./private.patch
   ];
-}
 
+  patchFlags = "-p0";
+
+  meta = {
+    description = "A tool that allows packages to find out information about other packages";
+    homepage = http://pkg-config.freedesktop.org/wiki/;
+  };  
+}
diff --git a/pkgs/development/tools/misc/pkgconfig/private.patch b/pkgs/development/tools/misc/pkgconfig/private.patch
new file mode 100644
index 000000000000..4eb6555b4c98
--- /dev/null
+++ b/pkgs/development/tools/misc/pkgconfig/private.patch
@@ -0,0 +1,177 @@
+=== modified file 'main.c'
+--- main.c	2006-08-16 17:57:14 +0000
++++ main.c	2007-12-18 23:40:46 +0000
+@@ -420,6 +420,27 @@
+   else
+     disable_private_libs();
+ 
++  /* Only process Requires field if cflags or libs wanted */
++  if (want_libs ||
++      want_cflags ||
++      want_l_libs ||
++      want_L_libs ||
++      want_other_libs ||
++      want_I_cflags ||
++      want_other_cflags)
++    enable_requires();
++  else
++    disable_requires();
++
++  /* Only process Requires.private if cflags or static libs wanted */
++  if (want_cflags ||
++      want_I_cflags ||
++      want_other_cflags ||
++      want_static_lib_list)
++    enable_requires_private();
++  else
++    disable_requires_private();
++
+   if (want_my_version)
+     {
+       printf ("%s\n", VERSION);
+
+=== modified file 'parse.c'
+--- parse.c	2007-05-30 11:24:42 +0000
++++ parse.c	2007-12-18 23:40:46 +0000
+@@ -913,7 +913,9 @@
+ #endif
+ 
+ static void
+-parse_line (Package *pkg, const char *untrimmed, const char *path, gboolean ignore_requires, gboolean ignore_private_libs)
++parse_line (Package *pkg, const char *untrimmed, const char *path,
++            gboolean ignore_requires, gboolean ignore_requires_private,
++            gboolean ignore_private_libs)
+ {
+   char *str;
+   char *p;
+@@ -956,15 +958,12 @@
+         parse_description (pkg, p, path);
+       else if (strcmp (tag, "Version") == 0)
+         parse_version (pkg, p, path);
+-      else if (strcmp (tag, "Requires.private") == 0)
+-	parse_requires_private (pkg, p, path);
+-      else if (strcmp (tag, "Requires") == 0)
+-	{
+-          if (ignore_requires == FALSE)
+-	    parse_requires (pkg, p, path);
+-          else
+-	    goto cleanup;
+-        }
++      else if ((strcmp (tag, "Requires.private") == 0) &&
++               ignore_requires_private == FALSE)
++        parse_requires_private (pkg, p, path);
++      else if ((strcmp (tag, "Requires") == 0) &&
++               ignore_requires == FALSE)
++        parse_requires (pkg, p, path);
+       else if ((strcmp (tag, "Libs.private") == 0) && 
+                ignore_private_libs == FALSE)
+         parse_libs_private (pkg, p, path);
+@@ -1067,7 +1066,9 @@
+ }
+ 
+ Package*
+-parse_package_file (const char *path, gboolean ignore_requires, gboolean ignore_private_libs)
++parse_package_file (const char *path, gboolean ignore_requires,
++                    gboolean ignore_requires_private,
++                    gboolean ignore_private_libs)
+ {
+   FILE *f;
+   Package *pkg;
+@@ -1104,7 +1105,8 @@
+     {
+       one_line = TRUE;
+       
+-      parse_line (pkg, str->str, path, ignore_requires, ignore_private_libs);
++      parse_line (pkg, str->str, path, ignore_requires,
++                  ignore_requires_private, ignore_private_libs);
+ 
+       g_string_truncate (str, 0);
+     }
+
+=== modified file 'parse.h'
+--- parse.h	2005-07-14 13:07:18 +0000
++++ parse.h	2007-12-18 23:40:46 +0000
+@@ -23,6 +23,7 @@
+ #include "pkg.h"
+ 
+ Package *parse_package_file (const char *path, gboolean ignore_requires,
++                             gboolean ignore_requires_private,
+                              gboolean ignore_private_libs);
+ 
+ Package *get_compat_package (const char *name);
+
+=== modified file 'pkg.c'
+--- pkg.c	2007-06-18 21:19:27 +0000
++++ pkg.c	2007-12-18 23:40:46 +0000
+@@ -55,6 +55,7 @@
+ 
+ gboolean disable_uninstalled = FALSE;
+ gboolean ignore_requires = FALSE;
++gboolean ignore_requires_private = FALSE;
+ gboolean ignore_private_libs = TRUE;
+ 
+ static Package pkg_config_package = {
+@@ -349,7 +350,8 @@
+     }
+ 
+   debug_spew ("Reading '%s' from file '%s'\n", name, location);
+-  pkg = parse_package_file (location, ignore_requires, ignore_private_libs);
++  pkg = parse_package_file (location, ignore_requires, ignore_requires_private,
++                            ignore_private_libs);
+   
+   if (pkg == NULL)
+     {
+@@ -1503,6 +1505,7 @@
+   int mlen = 0;
+   
+   ignore_requires = TRUE;
++  ignore_requires_private = TRUE;
+ 
+   g_hash_table_foreach (locations, max_len_foreach, &mlen);
+   g_hash_table_foreach (locations, packages_foreach, GINT_TO_POINTER (mlen + 1));
+@@ -1519,3 +1522,27 @@
+ {
+   ignore_private_libs = TRUE;
+ }
++
++void
++enable_requires(void)
++{
++  ignore_requires = FALSE;
++}
++
++void
++disable_requires(void)
++{
++  ignore_requires = TRUE;
++}
++
++void
++enable_requires_private(void)
++{
++  ignore_requires_private = FALSE;
++}
++
++void
++disable_requires_private(void)
++{
++  ignore_requires_private = TRUE;
++}
+
+=== modified file 'pkg.h'
+--- pkg.h	2005-10-16 17:31:41 +0000
++++ pkg.h	2007-12-18 23:40:46 +0000
+@@ -120,6 +120,12 @@
+ void enable_private_libs(void);
+ void disable_private_libs(void);
+ 
++void enable_requires(void);
++void disable_requires(void);
++
++void enable_requires_private(void);
++void disable_requires_private(void);
++
+ /* If TRUE, do not automatically prefer uninstalled versions */
+ extern gboolean disable_uninstalled;
+ 
+
diff --git a/pkgs/development/tools/misc/pkgconfig/setup-hook.sh b/pkgs/development/tools/misc/pkgconfig/setup-hook.sh
index c137fb0e96c5..ccb48c129e7c 100644
--- a/pkgs/development/tools/misc/pkgconfig/setup-hook.sh
+++ b/pkgs/development/tools/misc/pkgconfig/setup-hook.sh
@@ -1,5 +1,6 @@
 addPkgConfigPath () {
     addToSearchPath PKG_CONFIG_PATH /lib/pkgconfig "" $1
+    addToSearchPath PKG_CONFIG_PATH /share/pkgconfig "" $1
 }
 
 envHooks=(${envHooks[@]} addPkgConfigPath)