diff -rc pkg-config-0.23-orig/main.c pkg-config-0.23/main.c
*** pkg-config-0.23-orig/main.c	2008-01-16 23:06:48.000000000 +0100
--- pkg-config-0.23/main.c	2008-10-14 13:04:04.000000000 +0200
***************
*** 431,436 ****
--- 431,454 ----
    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 static libs wanted */
+   if (want_static_lib_list)
+     enable_requires_private();
+   else
+     disable_requires_private();
+ 
    if (want_my_version)
      {
        printf ("%s\n", VERSION);
diff -rc pkg-config-0.23-orig/parse.c pkg-config-0.23/parse.c
*** pkg-config-0.23-orig/parse.c	2008-01-16 21:42:49.000000000 +0100
--- pkg-config-0.23/parse.c	2008-10-13 14:41:42.000000000 +0200
***************
*** 913,919 ****
  #endif
  
  static void
! parse_line (Package *pkg, const char *untrimmed, const char *path, gboolean ignore_requires, gboolean ignore_private_libs)
  {
    char *str;
    char *p;
--- 913,921 ----
  #endif
  
  static void
! 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,970 ****
          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, "Libs.private") == 0) && 
                 ignore_private_libs == FALSE)
          parse_libs_private (pkg, p, path);
--- 958,969 ----
          parse_description (pkg, p, path);
        else if (strcmp (tag, "Version") == 0)
          parse_version (pkg, p, path);
!       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,1073 ****
  }
  
  Package*
! parse_package_file (const char *path, gboolean ignore_requires, gboolean ignore_private_libs)
  {
    FILE *f;
    Package *pkg;
--- 1066,1074 ----
  }
  
  Package*
! parse_package_file (const char *path, gboolean ignore_requires,
!                     gboolean ignore_requires_private,
!                     gboolean ignore_private_libs)
  {
    FILE *f;
    Package *pkg;
***************
*** 1104,1110 ****
      {
        one_line = TRUE;
        
!       parse_line (pkg, str->str, path, ignore_requires, ignore_private_libs);
  
        g_string_truncate (str, 0);
      }
--- 1105,1112 ----
      {
        one_line = TRUE;
        
!       parse_line (pkg, str->str, path, ignore_requires,
!                   ignore_requires_private, ignore_private_libs);
  
        g_string_truncate (str, 0);
      }
diff -rc pkg-config-0.23-orig/parse.h pkg-config-0.23/parse.h
*** pkg-config-0.23-orig/parse.h	2008-01-16 21:42:49.000000000 +0100
--- pkg-config-0.23/parse.h	2008-10-13 14:41:42.000000000 +0200
***************
*** 23,28 ****
--- 23,29 ----
  #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);
diff -rc pkg-config-0.23-orig/pkg.c pkg-config-0.23/pkg.c
*** pkg-config-0.23-orig/pkg.c	2008-01-16 22:59:49.000000000 +0100
--- pkg-config-0.23/pkg.c	2008-10-13 14:41:42.000000000 +0200
***************
*** 55,60 ****
--- 55,61 ----
  
  gboolean disable_uninstalled = FALSE;
  gboolean ignore_requires = FALSE;
+ gboolean ignore_requires_private = FALSE;
  gboolean ignore_private_libs = TRUE;
  
  void
***************
*** 337,343 ****
      }
  
    debug_spew ("Reading '%s' from file '%s'\n", name, location);
!   pkg = parse_package_file (location, ignore_requires, ignore_private_libs);
    
    if (pkg == NULL)
      {
--- 338,345 ----
      }
  
    debug_spew ("Reading '%s' from file '%s'\n", name, location);
!   pkg = parse_package_file (location, ignore_requires, ignore_requires_private,
!                             ignore_private_libs);
    
    if (pkg == NULL)
      {
***************
*** 1506,1511 ****
--- 1508,1514 ----
    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));
***************
*** 1522,1524 ****
--- 1525,1551 ----
  {
    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;
+ }
diff -rc pkg-config-0.23-orig/pkg.h pkg-config-0.23/pkg.h
*** pkg-config-0.23-orig/pkg.h	2008-01-16 22:27:19.000000000 +0100
--- pkg-config-0.23/pkg.h	2008-10-13 14:41:42.000000000 +0200
***************
*** 120,125 ****
--- 120,131 ----
  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;
  
