PageRenderTime 46ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

/KMS/libmikey-sakke/selex/mskms/server/install-deps.pl

https://bitbucket.org/a30151/mikey-sakke
Perl | 62 lines | 48 code | 11 blank | 3 comment | 10 complexity | 18c545df8bb346b77a3641a9a0fe8fdc MD5 | raw file
Possible License(s): Apache-2.0, BSD-3-Clause, LGPL-2.1, GPL-2.0
  1. #!/usr/bin/env perl
  2. use 5.010;
  3. use strict;
  4. use warnings;
  5. use File::Basename;
  6. use Cwd 'abs_path';
  7. use CPAN;
  8. use File::Find;
  9. my $is_windows = $ENV{OS} && $ENV{OS} =~ /Windows/;
  10. our @deps = qw(
  11. Crypt::Blowfish
  12. Crypt::CBC
  13. Crypt::DES_EDE3
  14. Crypt::Rijndael
  15. Data::Compare
  16. Encoding::BER
  17. Digest::SHA
  18. Digest::SHA1
  19. UUID::Tiny
  20. Math::GMPz
  21. Net::SSLeay
  22. IO::Socket::SSL
  23. DBD::SQLite
  24. Mojolicious
  25. Net::SIP
  26. );
  27. push @deps, 'Net::Interface' if not $is_windows;
  28. open SHELL, "|cpan";
  29. printf SHELL "notest install $_\n" for @deps;
  30. close SHELL;
  31. wait;
  32. for (@deps)
  33. {
  34. printf "Checking $_...\n";
  35. eval("use $_; 1;") or
  36. do { die "Failed to install $_: $@" }
  37. }
  38. printf "CPAN packages installed.\n";
  39. CPAN::HandleConfig->load;
  40. my $this_dir = abs_path(dirname($0));
  41. my $build_dir = $CPAN::Config->{build_dir};
  42. my $make = $CPAN::Config->{make} || 'make';
  43. my $make_install_make = $CPAN::Config->{make_install_make_command} || $make;
  44. # Fetch, patch, build and install Crypt::ECDSA (Math::GMPz version)
  45. #
  46. my $ecdsa_dir = "$build_dir/Crypt-ECDSA-ajb1";
  47. system(qq|git clone https://bitbucket.org/abutcher/crypt-ecdsa-gmpz.git $ecdsa_dir|) if not -x $ecdsa_dir;
  48. chdir $ecdsa_dir;
  49. system(qq|perl Makefile.PL|) == 0 or die "Failed to generate makefile";
  50. system(qq|$make|) == 0 or die "Failed to build.";
  51. system(qq|$make_install_make install|) == 0 or die "Failed to install.";