From f31062a94aefff64cc193aa3a394fd3a623c2aa7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Manuel=20R=C3=BCger?= <manuel@rueg.eu>
Date: Thu, 29 May 2014 14:23:06 +0200
Subject: [PATCH] Remove Mozilla::CA dependency.


diff --git a/Build.PL b/Build.PL
index 3ea589b..76acdc7 100644
--- a/Build.PL
+++ b/Build.PL
@@ -49,7 +49,6 @@ my $builder = $class->new(
         'IPC::Run3' => 0,
         'List::AllUtils' => 0,
         'List::MoreUtils' => 0,
-        'Mozilla::CA' =>  '20130114',
         'Regexp::Common' => 0,
         'Log::Log4perl' => 0,
         'Unicode::Collate' => '1.04',
diff --git a/META.json b/META.json
index cf91a91..1855294 100644
--- a/META.json
+++ b/META.json
@@ -44,7 +44,6 @@
             "List::AllUtils" : "0",
             "List::MoreUtils" : "0",
             "Log::Log4perl" : "0",
-            "Mozilla::CA" : "20130114",
             "Regexp::Common" : "0",
             "Text::BibTeX" : "0.69",
             "URI" : "0",
diff --git a/META.yml b/META.yml
index 7091ddb..82706ee 100644
--- a/META.yml
+++ b/META.yml
@@ -114,7 +114,6 @@ requires:
   List::AllUtils: 0
   List::MoreUtils: 0
   Log::Log4perl: 0
-  Mozilla::CA: 20130114
   Regexp::Common: 0
   Text::BibTeX: 0.69
   URI: 0
diff --git a/bin/biber b/bin/biber
index 6038535..4c3ea1c 100755
--- a/bin/biber
+++ b/bin/biber
@@ -73,7 +73,6 @@ GetOptions(
            'sortfirstinits=s',
            'sortlocale|l=s',
            'sortupper=s',
-           'ssl-nointernalca',
            'ssl-noverify-host',
            'tool',
            'tool_align|tool-align',                 # legacy alias for output_align
@@ -664,12 +663,6 @@ default sorting (B<--collate|-C>). When
 using B<--fastsort|-f>, your OS collation locale determines
 this and this option is ignored (default is true).
 
-=item B<--ssl-nointernalca>
-
-Don't try to use the default Mozilla CA certificates when using HTTPS to fetch remote data.
-This assumes that the user will set one of the perl LWP::UserAgent module environment variables
-to find the CA certs.
-
 =item B<--ssl-noverify-host>
 
 Turn off host verification when using HTTPS to fetch remote data sources.
diff --git a/data/schemata/config.rnc b/data/schemata/config.rnc
index e798733..5fcce6d 100644
--- a/data/schemata/config.rnc
+++ b/data/schemata/config.rnc
@@ -72,7 +72,6 @@ start = element config {
       map+
     }+
   }? &
-  element ssl-nointernalca     { "0" | "1" }? &
   element ssl-noverify-host    { "0" | "1" }? &
   element tool                 { "0" | "1" }? &
   element tool_config          { text }? &
diff --git a/data/schemata/config.rng b/data/schemata/config.rng
index 185cde6..f7e4176 100644
--- a/data/schemata/config.rng
+++ b/data/schemata/config.rng
@@ -335,14 +335,6 @@
           </element>
         </optional>
         <optional>
-          <element name="ssl-nointernalca">
-            <choice>
-              <value>0</value>
-              <value>1</value>
-            </choice>
-          </element>
-        </optional>
-        <optional>
           <element name="ssl-noverify-host">
             <choice>
               <value>0</value>
diff --git a/lib/Biber/Input/file/biblatexml.pm b/lib/Biber/Input/file/biblatexml.pm
index d3f7377..21b1471 100644
--- a/lib/Biber/Input/file/biblatexml.pm
+++ b/lib/Biber/Input/file/biblatexml.pm
@@ -97,19 +97,6 @@ sub extract_entries {
     else {
       if ($1) {                 # HTTPS
         # use IO::Socket::SSL qw(debug99); # useful for debugging SSL issues
-        # We have to explicitly set the cert path because otherwise the https module
-        # can't find the .pem when PAR::Packer'ed
-        # Have to explicitly try to require Mozilla::CA here to get it into %INC below
-        # It may, however, have been removed by some biber unpacked dists
-        if (not exists($ENV{PERL_LWP_SSL_CA_FILE}) and
-            not exists($ENV{PERL_LWP_SSL_CA_PATH}) and
-            not defined(Biber::Config->getoption('ssl-nointernalca')) and
-            eval {require Mozilla::CA}) {
-          # we assume that the default CA file is in .../Mozilla/CA/cacert.pem
-          (my $vol, my $dir, undef) = File::Spec->splitpath( $INC{"Mozilla/CA.pm"} );
-          $dir =~ s/\/$//;      # splitpath sometimes leaves a trailing '/'
-          $ENV{PERL_LWP_SSL_CA_FILE} = File::Spec->catpath($vol, "$dir/CA", 'cacert.pem');
-        }
 
         # fallbacks for, e.g., linux
         unless (exists($ENV{PERL_LWP_SSL_CA_FILE})) {
diff --git a/lib/Biber/Input/file/bibtex.pm b/lib/Biber/Input/file/bibtex.pm
index 33185a6..f3fd9f2 100644
--- a/lib/Biber/Input/file/bibtex.pm
+++ b/lib/Biber/Input/file/bibtex.pm
@@ -140,19 +140,6 @@ sub extract_entries {
     else {
       if ($1) {                 # HTTPS
         # use IO::Socket::SSL qw(debug99); # useful for debugging SSL issues
-        # We have to explicitly set the cert path because otherwise the https module
-        # can't find the .pem when PAR::Packer'ed
-        # Have to explicitly try to require Mozilla::CA here to get it into %INC below
-        # It may, however, have been removed by some biber unpacked dists
-        if (not exists($ENV{PERL_LWP_SSL_CA_FILE}) and
-            not exists($ENV{PERL_LWP_SSL_CA_PATH}) and
-            not defined(Biber::Config->getoption('ssl-nointernalca')) and
-            eval {require Mozilla::CA}) {
-          # we assume that the default CA file is in .../Mozilla/CA/cacert.pem
-          (my $vol, my $dir, undef) = File::Spec->splitpath( $INC{"Mozilla/CA.pm"} );
-          $dir =~ s/\/$//;      # splitpath sometimes leaves a trailing '/'
-          $ENV{PERL_LWP_SSL_CA_FILE} = File::Spec->catpath($vol, "$dir/CA", 'cacert.pem');
-        }
 
         # fallbacks for, e.g., linux
         unless (exists($ENV{PERL_LWP_SSL_CA_FILE})) {
diff --git a/lib/Biber/Input/file/endnotexml.pm b/lib/Biber/Input/file/endnotexml.pm
index 14adc38..b880e8a 100644
--- a/lib/Biber/Input/file/endnotexml.pm
+++ b/lib/Biber/Input/file/endnotexml.pm
@@ -111,19 +111,6 @@ sub extract_entries {
     $logger->info("Data source '$source' is a remote EndNote XML datasource - fetching ...");
     if ($1) { # HTTPS
       # use IO::Socket::SSL qw(debug99); # useful for debugging SSL issues
-      # We have to explicitly set the cert path because otherwise the https module
-      # can't find the .pem when PAR::Packer'ed
-      # Have to explicitly try to require Mozilla::CA here to get it into %INC below
-      # It may, however, have been removed by some biber unpacked dists
-      if (not exists($ENV{PERL_LWP_SSL_CA_FILE}) and
-          not exists($ENV{PERL_LWP_SSL_CA_PATH}) and
-          not defined(Biber::Config->getoption('ssl-nointernalca')) and
-          eval {require Mozilla::CA}) {
-        # we assume that the default CA file is in .../Mozilla/CA/cacert.pem
-        (my $vol, my $dir, undef) = File::Spec->splitpath( $INC{"Mozilla/CA.pm"} );
-        $dir =~ s/\/$//; # splitpath sometimes leaves a trailing '/'
-        $ENV{PERL_LWP_SSL_CA_FILE} = File::Spec->catpath($vol, "$dir/CA", 'cacert.pem');
-      }
 
       # fallbacks for, e.g., linux
       unless (exists($ENV{PERL_LWP_SSL_CA_FILE})) {
diff --git a/lib/Biber/Input/file/ris.pm b/lib/Biber/Input/file/ris.pm
index 0dbeacc..dda7466 100644
--- a/lib/Biber/Input/file/ris.pm
+++ b/lib/Biber/Input/file/ris.pm
@@ -110,19 +110,6 @@ sub extract_entries {
     else {
       if ($1) {                 # HTTPS
         # use IO::Socket::SSL qw(debug99); # useful for debugging SSL issues
-        # We have to explicitly set the cert path because otherwise the https module
-        # can't find the .pem when PAR::Packer'ed
-        # Have to explicitly try to require Mozilla::CA here to get it into %INC below
-        # It may, however, have been removed by some biber unpacked dists
-        if (not exists($ENV{PERL_LWP_SSL_CA_FILE}) and
-            not exists($ENV{PERL_LWP_SSL_CA_PATH}) and
-            not defined(Biber::Config->getoption('ssl-nointernalca')) and
-            eval {require Mozilla::CA}) {
-          # we assume that the default CA file is in .../Mozilla/CA/cacert.pem
-          (my $vol, my $dir, undef) = File::Spec->splitpath( $INC{"Mozilla/CA.pm"} );
-          $dir =~ s/\/$//;      # splitpath sometimes leaves a trailing '/'
-          $ENV{PERL_LWP_SSL_CA_FILE} = File::Spec->catpath($vol, "$dir/CA", 'cacert.pem');
-        }
 
         # fallbacks for, e.g., linux
         unless (exists($ENV{PERL_LWP_SSL_CA_FILE})) {
diff --git a/lib/Biber/Input/file/zoterordfxml.pm b/lib/Biber/Input/file/zoterordfxml.pm
index 0d05d2b..79ba19e 100644
--- a/lib/Biber/Input/file/zoterordfxml.pm
+++ b/lib/Biber/Input/file/zoterordfxml.pm
@@ -123,19 +123,6 @@ sub extract_entries {
     $logger->info("Data source '$source' is a remote Zotero RDF/XML data source - fetching ...");
     if ($1) { # HTTPS
       # use IO::Socket::SSL qw(debug99); # useful for debugging SSL issues
-      # We have to explicitly set the cert path because otherwise the https module
-      # can't find the .pem when PAR::Packer'ed
-      # Have to explicitly try to require Mozilla::CA here to get it into %INC below
-      # It may, however, have been removed by some biber unpacked dists
-      if (not exists($ENV{PERL_LWP_SSL_CA_FILE}) and
-          not exists($ENV{PERL_LWP_SSL_CA_PATH}) and
-          not defined(Biber::Config->getoption('ssl-nointernalca')) and
-          eval {require Mozilla::CA}) {
-        # we assume that the default CA file is in .../Mozilla/CA/cacert.pem
-        (my $vol, my $dir, undef) = File::Spec->splitpath( $INC{"Mozilla/CA.pm"} );
-        $dir =~ s/\/$//; # splitpath sometimes leaves a trailing '/'
-        $ENV{PERL_LWP_SSL_CA_FILE} = File::Spec->catpath($vol, "$dir/CA", 'cacert.pem');
-      }
 
       # fallbacks for, e.g., linux
       unless (exists($ENV{PERL_LWP_SSL_CA_FILE})) {
-- 
2.0.0

