Bug 12393 - Depend on SSL module for LWP, for OverDrive
authorJesse Weaver <pianohacker@gmail.com>
Tue, 10 Jun 2014 01:25:47 +0000 (19:25 -0600)
committerTomas Cohen Arazi <tomascohen@gmail.com>
Sun, 22 Jun 2014 23:35:46 +0000 (20:35 -0300)
The OverDrive integration needs to connect to an authentication server
over HTTPS, and many systems do not install the necessary module
(LWP::Protocol::https) by default.

Test plan (for patch):
  1) Run koha_perl_deps.pl -a, verify that LWP::Protocol::https appears in
     listing.

Test plan (to verify that LWP::Protocol::https is necessary, needs OverDrive access):
  1) Remove LWP::Protocol::https (liblwp-protocol-https-perl under Debian).
  2) Run an OverDrive search on the OPAC, it should fail.
  3) Reinstall LWP::Protocol::https.
  4) Rerun OverDrive search, it should now succeed.

Note: older versions of Debian do not need to install LWP::Protocol::https separately;
the Debian scripts have been updated to reflect this divide.

Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Passes all tests and QA script.

Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>

C4/Installer/PerlDependencies.pm
debian/list-deps

index 8914a6b..e8cf6ff 100644 (file)
@@ -732,6 +732,11 @@ our $PERL_DEPS = {
         'required' => '1',
         'min_ver'  => '0.91',
     },
+    'LWP::Protocol::https' => {
+        'usage'    => 'OverDrive integration',
+        'required' => '0',
+        'min_ver'  => '5.836',
+    },
 };
 
 1;
index 8d50164..f12d088 100755 (executable)
@@ -25,7 +25,9 @@ use C4::Installer::PerlDependencies;
 # These are packages that may not be in the apt archive in a way that
 # apt-file can find, e.g. in the Koha repo rather than the regular
 # debian one.
-my %overrides = ();
+my %overrides = (
+    'LWP::Protocol::https' => 'liblwp-protocol-https-perl|libwww-perl (<6.02), libio-socket-ssl-perl',
+);
 
 # These are packages we're going to ignore
 my %ignore = (
@@ -55,7 +57,10 @@ foreach my $module ( keys %$deps ) {
             @lines = ( @lines, $line );
         }
     }
-    if ( scalar(@lines) == 1 && $lines[0] ne "" ) {
+    if ( exists $overrides{$module} ) {
+        print "$overrides{$module}\n";
+    }
+    elsif ( scalar(@lines) == 1 && $lines[0] ne "" ) {
         my $pkg = $lines[0];
         print "$pkg\n";
     }
@@ -80,9 +85,6 @@ foreach my $module ( keys %$deps ) {
         # commit.)
         # RM note: suspicious?  me?  always!
     }
-    elsif ( exists $overrides{$module} ) {
-        print "$overrides{$module}\n";
-    }
     elsif ( ! $deps->{$module}->{'required'} ) {
         # Ignore because we don't have it and we don't care.
     }