Blame Alien-Build-2.65-Remove-redundant-pkgconfig-implementations.patch

267f7d3
From 343c582db332d07f831420372ef8eab1eead0718 Mon Sep 17 00:00:00 2001
e2e8b15
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
e2e8b15
Date: Fri, 8 Sep 2017 11:31:02 +0200
e2e8b15
Subject: [PATCH] Remove redundant pkgconfig implementations
e2e8b15
MIME-Version: 1.0
e2e8b15
Content-Type: text/plain; charset=UTF-8
e2e8b15
Content-Transfer-Encoding: 8bit
e2e8b15
e2e8b15
Only one implementation is required, we selected
e2e8b15
Alien::Build::Plugin::PkgConfig::LibPkgConf. This patch removes other
e2e8b15
ones to decrease number of dependencies.
e2e8b15
e2e8b15
Signed-off-by: Petr Písař <ppisar@redhat.com>
e2e8b15
---
beef961
 MANIFEST                                      |   4 -
beef961
 Makefile.PL                                   |   4 +-
beef961
 lib/Alien/Build/Plugin/PkgConfig/Negotiate.pm |  25 +--
beef961
 t/01_use.t                                    |   4 -
beef961
 t/alien_build_plugin_pkgconfig_negotiate.t    |   2 +-
4458411
 ...n_build_plugin_pkgconfig_negotiate__pick.t | 176 +-----------------
4458411
 6 files changed, 11 insertions(+), 204 deletions(-)
e2e8b15
e2e8b15
diff --git a/MANIFEST b/MANIFEST
267f7d3
index 6f507b0..b9335ad 100644
e2e8b15
--- a/MANIFEST
e2e8b15
+++ b/MANIFEST
267f7d3
@@ -243,11 +243,9 @@ lib/Alien/Build/Plugin/Fetch/Wget.pm
267f7d3
 lib/Alien/Build/Plugin/Gather.pod
e2e8b15
 lib/Alien/Build/Plugin/Gather/IsolateDynamic.pm
267f7d3
 lib/Alien/Build/Plugin/PkgConfig.pod
e2e8b15
-lib/Alien/Build/Plugin/PkgConfig/CommandLine.pm
e2e8b15
 lib/Alien/Build/Plugin/PkgConfig/LibPkgConf.pm
e2e8b15
 lib/Alien/Build/Plugin/PkgConfig/MakeStatic.pm
e2e8b15
 lib/Alien/Build/Plugin/PkgConfig/Negotiate.pm
e2e8b15
-lib/Alien/Build/Plugin/PkgConfig/PP.pm
e2e8b15
 lib/Alien/Build/Plugin/Prefer.pod
e2e8b15
 lib/Alien/Build/Plugin/Prefer/BadVersion.pm
ef0b670
 lib/Alien/Build/Plugin/Prefer/GoodVersion.pm
267f7d3
@@ -336,12 +334,10 @@ t/alien_build_plugin_fetch_netftp.t
0d5ea32
 t/alien_build_plugin_fetch_wget.t
e2e8b15
 t/alien_build_plugin_gather_isolatedynamic.t
e2e8b15
 t/alien_build_plugin_meta.t
e2e8b15
-t/alien_build_plugin_pkgconfig_commandline.t
e2e8b15
 t/alien_build_plugin_pkgconfig_libpkgconf.t
e2e8b15
 t/alien_build_plugin_pkgconfig_makestatic.t
e2e8b15
 t/alien_build_plugin_pkgconfig_negotiate.t
e2e8b15
 t/alien_build_plugin_pkgconfig_negotiate__pick.t
e2e8b15
-t/alien_build_plugin_pkgconfig_pp.t
e2e8b15
 t/alien_build_plugin_prefer_badversion.t
ef0b670
 t/alien_build_plugin_prefer_goodversion.t
e2e8b15
 t/alien_build_plugin_prefer_sortversions.t
e2e8b15
diff --git a/Makefile.PL b/Makefile.PL
267f7d3
index 27b442e..4c4c147 100644
e2e8b15
--- a/Makefile.PL
e2e8b15
+++ b/Makefile.PL
267f7d3
@@ -95,11 +95,9 @@ my %WriteMakefileArgs = (
267f7d3
     "lib/Alien/Build/Plugin/Gather.pod"                  => "\$(INST_LIB)/Alien/Build/Plugin/Gather.pod",
73ea060
     "lib/Alien/Build/Plugin/Gather/IsolateDynamic.pm"    => "\$(INST_LIB)/Alien/Build/Plugin/Gather/IsolateDynamic.pm",
267f7d3
     "lib/Alien/Build/Plugin/PkgConfig.pod"               => "\$(INST_LIB)/Alien/Build/Plugin/PkgConfig.pod",
73ea060
-    "lib/Alien/Build/Plugin/PkgConfig/CommandLine.pm"    => "\$(INST_LIB)/Alien/Build/Plugin/PkgConfig/CommandLine.pm",
73ea060
     "lib/Alien/Build/Plugin/PkgConfig/LibPkgConf.pm"     => "\$(INST_LIB)/Alien/Build/Plugin/PkgConfig/LibPkgConf.pm",
73ea060
     "lib/Alien/Build/Plugin/PkgConfig/MakeStatic.pm"     => "\$(INST_LIB)/Alien/Build/Plugin/PkgConfig/MakeStatic.pm",
73ea060
     "lib/Alien/Build/Plugin/PkgConfig/Negotiate.pm"      => "\$(INST_LIB)/Alien/Build/Plugin/PkgConfig/Negotiate.pm",
73ea060
-    "lib/Alien/Build/Plugin/PkgConfig/PP.pm"             => "\$(INST_LIB)/Alien/Build/Plugin/PkgConfig/PP.pm",
73ea060
     "lib/Alien/Build/Plugin/Prefer.pod"                  => "\$(INST_LIB)/Alien/Build/Plugin/Prefer.pod",
73ea060
     "lib/Alien/Build/Plugin/Prefer/BadVersion.pm"        => "\$(INST_LIB)/Alien/Build/Plugin/Prefer/BadVersion.pm",
ef0b670
     "lib/Alien/Build/Plugin/Prefer/GoodVersion.pm"       => "\$(INST_LIB)/Alien/Build/Plugin/Prefer/GoodVersion.pm",
267f7d3
@@ -218,4 +216,4 @@ sub requires { goto &runtime_requires }
e2e8b15
 sub runtime_requires {
73ea060
   my ( $module, $version_or_range ) = @_;
73ea060
   _add_prereq( PREREQ_PM => $module, $version_or_range );
e2e8b15
-}
e2e8b15
\ No newline at end of file
e2e8b15
+}
e2e8b15
diff --git a/lib/Alien/Build/Plugin/PkgConfig/Negotiate.pm b/lib/Alien/Build/Plugin/PkgConfig/Negotiate.pm
267f7d3
index fd4cb62..de10c7c 100644
e2e8b15
--- a/lib/Alien/Build/Plugin/PkgConfig/Negotiate.pm
e2e8b15
+++ b/lib/Alien/Build/Plugin/PkgConfig/Negotiate.pm
80062c6
@@ -4,9 +4,7 @@ use strict;
e2e8b15
 use warnings;
80062c6
 use 5.008004;
e2e8b15
 use Alien::Build::Plugin;
e2e8b15
-use Alien::Build::Plugin::PkgConfig::PP;
c444d96
 use Alien::Build::Plugin::PkgConfig::LibPkgConf;
c444d96
-use Alien::Build::Plugin::PkgConfig::CommandLine;
e2e8b15
 use Alien::Build::Util qw( _perl_config );
e2e8b15
 use Carp ();
e2e8b15
 
80062c6
@@ -42,27 +40,6 @@ sub pick
e2e8b15
     return 'PkgConfig::LibPkgConf';
e2e8b15
   }
beef961
 
e2e8b15
-  if(Alien::Build::Plugin::PkgConfig::CommandLine->available)
e2e8b15
-  {
5df0a8b
-    # TODO: determine environment or flags necessary for using pkg-config
5df0a8b
-    # on solaris 64 bit.
dd51efc
-    # Some advice on pkg-config and 64 bit Solaris
dd51efc
-    # https://docs.oracle.com/cd/E53394_01/html/E61689/gplhi.html
beef961
-    my $is_solaris64 = (_perl_config('osname') eq 'solaris' && _perl_config('ptrsize') == 8);
beef961
-
beef961
-    # PkgConfig.pm is more reliable on windows
beef961
-    my $is_windows = _perl_config('osname') eq 'MSWin32';
beef961
-
beef961
-    if(!$is_solaris64 && !$is_windows)
e2e8b15
-    {
e2e8b15
-      return 'PkgConfig::CommandLine';
e2e8b15
-    }
e2e8b15
-  }
beef961
-
e2e8b15
-  if(Alien::Build::Plugin::PkgConfig::PP->available)
e2e8b15
-  {
e2e8b15
-    return 'PkgConfig::PP';
e2e8b15
-  }
e2e8b15
   else
e2e8b15
   {
3dbb29e
     # this is a fata error.  because we check for a pkg-config implementation
80062c6
@@ -70,7 +47,7 @@ sub pick
3dbb29e
     # fallback on installing PkgConfig.pm as a prereq if nothing else is avail).
3dbb29e
     # we therefore expect at least one of these to work, if not, then the configuration
3dbb29e
     # of the system has shifted from underneath us.
c444d96
-    Carp::croak("Could not find an appropriate pkg-config or pkgconf implementation, please install PkgConfig.pm, PkgConfig::LibPkgConf, pkg-config or pkgconf");
c444d96
+    Carp::croak("Could not find an appropriate pkg-config or pkgconf implementation, please install PkgConfig::LibPkgConf");
e2e8b15
   }
e2e8b15
 }
e2e8b15
 
e2e8b15
diff --git a/t/01_use.t b/t/01_use.t
267f7d3
index 0275da2..46875d0 100644
e2e8b15
--- a/t/01_use.t
e2e8b15
+++ b/t/01_use.t
80062c6
@@ -46,11 +46,9 @@ require_ok 'Alien::Build::Plugin::Fetch::LocalDir';
e2e8b15
 require_ok 'Alien::Build::Plugin::Fetch::NetFTP';
0d5ea32
 require_ok 'Alien::Build::Plugin::Fetch::Wget';
e2e8b15
 require_ok 'Alien::Build::Plugin::Gather::IsolateDynamic';
e2e8b15
-require_ok 'Alien::Build::Plugin::PkgConfig::CommandLine';
e2e8b15
 require_ok 'Alien::Build::Plugin::PkgConfig::LibPkgConf';
e2e8b15
 require_ok 'Alien::Build::Plugin::PkgConfig::MakeStatic';
e2e8b15
 require_ok 'Alien::Build::Plugin::PkgConfig::Negotiate';
e2e8b15
-require_ok 'Alien::Build::Plugin::PkgConfig::PP';
e2e8b15
 require_ok 'Alien::Build::Plugin::Prefer::BadVersion';
ef0b670
 require_ok 'Alien::Build::Plugin::Prefer::GoodVersion';
e2e8b15
 require_ok 'Alien::Build::Plugin::Prefer::SortVersions';
267f7d3
@@ -116,11 +114,9 @@ ok -f 't/alien_build_plugin_fetch_localdir.t',                'test for Alien::B
1489e91
 ok -f 't/alien_build_plugin_fetch_netftp.t',                  'test for Alien::Build::Plugin::Fetch::NetFTP';
1489e91
 ok -f 't/alien_build_plugin_fetch_wget.t',                    'test for Alien::Build::Plugin::Fetch::Wget';
1489e91
 ok -f 't/alien_build_plugin_gather_isolatedynamic.t',         'test for Alien::Build::Plugin::Gather::IsolateDynamic';
1489e91
-ok -f 't/alien_build_plugin_pkgconfig_commandline.t',         'test for Alien::Build::Plugin::PkgConfig::CommandLine';
1489e91
 ok -f 't/alien_build_plugin_pkgconfig_libpkgconf.t',          'test for Alien::Build::Plugin::PkgConfig::LibPkgConf';
1489e91
 ok -f 't/alien_build_plugin_pkgconfig_makestatic.t',          'test for Alien::Build::Plugin::PkgConfig::MakeStatic';
1489e91
 ok -f 't/alien_build_plugin_pkgconfig_negotiate.t',           'test for Alien::Build::Plugin::PkgConfig::Negotiate';
1489e91
-ok -f 't/alien_build_plugin_pkgconfig_pp.t',                  'test for Alien::Build::Plugin::PkgConfig::PP';
1489e91
 ok -f 't/alien_build_plugin_prefer_badversion.t',             'test for Alien::Build::Plugin::Prefer::BadVersion';
ef0b670
 ok -f 't/alien_build_plugin_prefer_goodversion.t',            'test for Alien::Build::Plugin::Prefer::GoodVersion';
1489e91
 ok -f 't/alien_build_plugin_prefer_sortversions.t',           'test for Alien::Build::Plugin::Prefer::SortVersions';
e2e8b15
diff --git a/t/alien_build_plugin_pkgconfig_negotiate.t b/t/alien_build_plugin_pkgconfig_negotiate.t
80062c6
index 1c2c71d..071a7b0 100644
e2e8b15
--- a/t/alien_build_plugin_pkgconfig_negotiate.t
e2e8b15
+++ b/t/alien_build_plugin_pkgconfig_negotiate.t
80062c6
@@ -16,7 +16,7 @@ subtest 'pick' => sub {
e2e8b15
 
e2e8b15
 subtest 'override' => sub {
e2e8b15
 
c444d96
-  foreach my $name (qw( PP LibPkgConf CommandLine ))
e2e8b15
+  foreach my $name (qw( LibPkgConf ))
e2e8b15
   {
e2e8b15
     local $ENV{ALIEN_BUILD_PKG_CONFIG} = "PkgConfig::$name";
e2e8b15
     subtest $ENV{ALIEN_BUILD_PKG_CONFIG} => sub {
e2e8b15
diff --git a/t/alien_build_plugin_pkgconfig_negotiate__pick.t b/t/alien_build_plugin_pkgconfig_negotiate__pick.t
267f7d3
index 9862014..54fb83d 100644
e2e8b15
--- a/t/alien_build_plugin_pkgconfig_negotiate__pick.t
e2e8b15
+++ b/t/alien_build_plugin_pkgconfig_negotiate__pick.t
267f7d3
@@ -27,9 +27,10 @@ subtest 'LibPkgConf' => sub {
cd276bc
 
3dbb29e
       local $PkgConfig::LibPkgConf::VERSION = '0.01';
3dbb29e
 
3dbb29e
-      isnt(
3dbb29e
-        Alien::Build::Plugin::PkgConfig::Negotiate->pick,
3dbb29e
-        'PkgConfig::LibPkgConf',
3dbb29e
+      eval { Alien::Build::Plugin::PkgConfig::Negotiate->pick };
3dbb29e
+      ok(
3dbb29e
+        $@,
3dbb29e
+        'PkgConfig::LibPkgConf "0.1" is too old',
3dbb29e
       );
3dbb29e
 
3dbb29e
     };
267f7d3
@@ -42,9 +43,10 @@ subtest 'LibPkgConf' => sub {
3dbb29e
     # cannot be loaded for the rest of this .t file
3dbb29e
     note scalar capture_merged { Devel::Hide->import(qw( PkgConfig::LibPkgConf )) };
cd276bc
 
3dbb29e
-    isnt(
3dbb29e
-      Alien::Build::Plugin::PkgConfig::Negotiate->pick,
3dbb29e
-      'PkgConfig::LibPkgConf',
3dbb29e
+    eval { Alien::Build::Plugin::PkgConfig::Negotiate->pick };
3dbb29e
+    ok(
3dbb29e
+      $@,
3dbb29e
+      'Missing PkgConfig::LibPkgConf triggers an exception',
3dbb29e
     );
3dbb29e
 
3dbb29e
   };
267f7d3
@@ -57,167 +59,5 @@ my $make_pkgconfig_libpkgconf_unavailable = mock 'Alien::Build::Plugin::PkgConfi
e2e8b15
   ],
e2e8b15
 );
e2e8b15
 
e2e8b15
-subtest 'CommandLine' => sub {
e2e8b15
-
e2e8b15
-  local $INC{'PkgConfig.pm'} = __FILE__;
e2e8b15
-  local $PkgConfig::VERSION = '0.14026';
e2e8b15
-
e2e8b15
-  my %which;
e2e8b15
-
4458411
-  my $mock = mock 'File::Which' => (
e2e8b15
-    override => [
e2e8b15
-      which => sub {
e2e8b15
-        my($prog) = @_;
e2e8b15
-        if(defined $prog)
e2e8b15
-        {
e2e8b15
-          if($which{$prog})
e2e8b15
-          {
e2e8b15
-            note "which: $prog => $which{$prog}";
e2e8b15
-            return $which{$prog};
e2e8b15
-          }
e2e8b15
-          else
e2e8b15
-          {
e2e8b15
-            note "which: $prog N/A";
e2e8b15
-          }
e2e8b15
-        }
e2e8b15
-        else
e2e8b15
-        {
e2e8b15
-          note "which: undef";
e2e8b15
-        }
e2e8b15
-      },
e2e8b15
-    ],
e2e8b15
-  );
cd276bc
-
4458411
-  my $mock2 = mock 'Alien::Build::Plugin::PkgConfig::Negotiate';
cd276bc
-
beef961
-  if($^O =~ /^(solaris|MSWin32)$/) {
0d5ea32
-    $mock2->override(
0d5ea32
-      _perl_config => sub {
0d5ea32
-        my($key) = @_;
0d5ea32
-        if($key eq 'osname')
0d5ea32
-        { return 'linux' }
0d5ea32
-        else
0d5ea32
-        { return $Config{$key} }
0d5ea32
-      },
0d5ea32
-    );
0d5ea32
-  }
0d5ea32
-
e2e8b15
-  subtest 'no command line' => sub {
e2e8b15
-
e2e8b15
-    %which = ();
e2e8b15
-
e2e8b15
-    is(
e2e8b15
-      Alien::Build::Plugin::PkgConfig::Negotiate->pick,
e2e8b15
-      'PkgConfig::PP',
e2e8b15
-    );
cd276bc
-
e2e8b15
-  };
e2e8b15
-
e2e8b15
-  subtest 'pkg-config' => sub {
cd276bc
-
e2e8b15
-    %which = ( 'pkg-config' => '/usr/bin/pkg-config' );
cd276bc
-
e2e8b15
-    is(
e2e8b15
-      Alien::Build::Plugin::PkgConfig::Negotiate->pick,
e2e8b15
-      'PkgConfig::CommandLine',
e2e8b15
-    );
e2e8b15
-
e2e8b15
-  };
e2e8b15
-
e2e8b15
-  subtest 'pkgconf' => sub {
cd276bc
-
e2e8b15
-    %which = ( 'pkgconf' => '/usr/bin/pkgconf' );
cd276bc
-
e2e8b15
-    is(
e2e8b15
-      Alien::Build::Plugin::PkgConfig::Negotiate->pick,
e2e8b15
-      'PkgConfig::CommandLine',
e2e8b15
-    );
e2e8b15
-
e2e8b15
-  };
e2e8b15
-
e2e8b15
-  subtest 'PKG_CONFIG' => sub {
cd276bc
-
e2e8b15
-    local $ENV{PKG_CONFIG} = 'foo-pkg-config';
e2e8b15
-    %which = ( 'foo-pkg-config' => '/usr/bin/foo-pkg-config' );
cd276bc
-
e2e8b15
-    is(
e2e8b15
-      Alien::Build::Plugin::PkgConfig::Negotiate->pick,
e2e8b15
-      'PkgConfig::CommandLine',
cd276bc
-    );
cd276bc
-
e2e8b15
-  };
e2e8b15
-
e2e8b15
-  subtest 'PP' => sub {
e2e8b15
-
e2e8b15
-    subtest '64 bit solaris' => sub {
cd276bc
-
e2e8b15
-      %which = ( 'pkg-config' => '/usr/bin/pkg-config' );
e2e8b15
-
e2e8b15
-      # From the old AB::MB days we prefer PkgConfig.pm
e2e8b15
-      # for 64 bit solaris over the command line pkg-config
cd276bc
-
4458411
-      my $mock2 = mock 'Alien::Build::Plugin::PkgConfig::Negotiate' => (
e2e8b15
-        override => [
e2e8b15
-          _perl_config => sub {
e2e8b15
-            my($key) = @_;
e2e8b15
-            if($key eq 'ptrsize')
e2e8b15
-            { return 8 }
e2e8b15
-            elsif($key eq 'osname')
e2e8b15
-            { return 'solaris' }
e2e8b15
-            else
e2e8b15
-            { return $Config{$key} }
e2e8b15
-          },
e2e8b15
-        ],
e2e8b15
-      );
cd276bc
-
e2e8b15
-      is(
e2e8b15
-        Alien::Build::Plugin::PkgConfig::Negotiate->pick,
e2e8b15
-        'PkgConfig::PP',
e2e8b15
-      );
e2e8b15
-
e2e8b15
-    };
beef961
-
beef961
-
beef961
-    subtest 'Windows' => sub {
cd276bc
-
beef961
-      %which = ( 'pkg-config' => '/usr/bin/pkg-config' );
beef961
-
beef961
-      # From the old AB::MB days we prefer PkgConfig.pm
beef961
-      # for 64 bit solaris over the command line pkg-config
cd276bc
-
4458411
-      my $mock2 = mock 'Alien::Build::Plugin::PkgConfig::Negotiate' => (
beef961
-        override => [
beef961
-          _perl_config => sub {
beef961
-            my($key) = @_;
beef961
-            if($key eq 'osname')
beef961
-            { return 'MSWin32' }
beef961
-            else
beef961
-            { return $Config{$key} }
beef961
-          },
beef961
-        ],
beef961
-      );
cd276bc
-
beef961
-      is(
beef961
-        Alien::Build::Plugin::PkgConfig::Negotiate->pick,
beef961
-        'PkgConfig::PP',
beef961
-      );
beef961
-
beef961
-    };
beef961
-
e2e8b15
-    subtest 'PP is fallback' => sub {
e2e8b15
-
e2e8b15
-      %which = ();
e2e8b15
-
e2e8b15
-      is(
e2e8b15
-        Alien::Build::Plugin::PkgConfig::Negotiate->pick,
e2e8b15
-        'PkgConfig::PP',
e2e8b15
-      );
e2e8b15
-
e2e8b15
-    };
e2e8b15
-
e2e8b15
-  };
e2e8b15
-
e2e8b15
-};
0d5ea32
-
e2e8b15
 done_testing;
e2e8b15
 
e2e8b15
-- 
267f7d3
2.37.2
e2e8b15