[libnet-amazon-ec2-perl] 03/03: Fix build by bringing back M::I modules missing in tarball
Florian Schlichting
fsfs at moszumanska.debian.org
Wed Dec 20 00:21:36 UTC 2017
This is an automated email from the git hooks/post-receive script.
fsfs pushed a commit to branch master
in repository libnet-amazon-ec2-perl.
commit e2e2ea3a68e6c705e5e534e13fe8679f6956153a
Author: Florian Schlichting <fsfs at debian.org>
Date: Wed Dec 20 01:13:20 2017 +0100
Fix build by bringing back M::I modules missing in tarball
---
debian/changelog | 1 +
debian/patches/missing-mi-writeall.patch | 402 +++++++++++++++++++++++++++++++
debian/patches/series | 1 +
3 files changed, 404 insertions(+)
diff --git a/debian/changelog b/debian/changelog
index 313b1ff..22dd73e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -5,6 +5,7 @@ libnet-amazon-ec2-perl (0.33-1) unstable; urgency=medium
[ Florian Schlichting ]
* Import upstream version 0.33 (LP: 1739294)
+ * Fix build by bringing back M::I modules missing in tarball
-- Florian Schlichting <fsfs at debian.org> Wed, 20 Dec 2017 00:44:29 +0100
diff --git a/debian/patches/missing-mi-writeall.patch b/debian/patches/missing-mi-writeall.patch
new file mode 100644
index 0000000..2bbf763
--- /dev/null
+++ b/debian/patches/missing-mi-writeall.patch
@@ -0,0 +1,402 @@
+Description: bring back M::I modules needed for configure
+Author: Florian Schlichting <fsfs at debian.org>
+Forwarded: https://github.com/mrallen1/net-amazon-ec2/issues/56
+
+--- /dev/null
++++ b/inc/Module/Install/WriteAll.pm
+@@ -0,0 +1,67 @@
++#line 1
++package Module::Install::WriteAll;
++
++use strict;
++use Module::Install::Base ();
++
++use vars qw{$VERSION @ISA $ISCORE};
++BEGIN {
++ $VERSION = '1.10';
++ @ISA = qw{Module::Install::Base};
++ $ISCORE = 1;
++}
++
++sub WriteAll {
++ my $self = shift;
++ my %args = (
++ meta => 1,
++ sign => 0,
++ inline => 0,
++ check_nmake => 1,
++ @_,
++ );
++
++ $self->sign(1) if $args{sign};
++ $self->admin->WriteAll(%args) if $self->is_admin;
++
++ $self->check_nmake if $args{check_nmake};
++ unless ( $self->makemaker_args->{PL_FILES} ) {
++ # XXX: This still may be a bit over-defensive...
++ unless ($self->makemaker(6.25)) {
++ $self->makemaker_args( PL_FILES => {} ) if -f 'Build.PL';
++ }
++ }
++
++ # Until ExtUtils::MakeMaker support MYMETA.yml, make sure
++ # we clean it up properly ourself.
++ $self->realclean_files('MYMETA.yml');
++
++ if ( $args{inline} ) {
++ $self->Inline->write;
++ } else {
++ $self->Makefile->write;
++ }
++
++ # The Makefile write process adds a couple of dependencies,
++ # so write the META.yml files after the Makefile.
++ if ( $args{meta} ) {
++ $self->Meta->write;
++ }
++
++ # Experimental support for MYMETA
++ if ( $ENV{X_MYMETA} ) {
++ if ( $ENV{X_MYMETA} eq 'JSON' ) {
++ $self->Meta->write_mymeta_json;
++ } else {
++ $self->Meta->write_mymeta_yaml;
++ }
++ }
++
++ return 1;
++}
++
++1;
++
++__END__
++
++#line 79
+--- /dev/null
++++ b/inc/Module/Install/Win32.pm
+@@ -0,0 +1,68 @@
++#line 1
++package Module::Install::Win32;
++
++use strict;
++use Module::Install::Base ();
++
++use vars qw{$VERSION @ISA $ISCORE};
++BEGIN {
++ $VERSION = '1.10';
++ @ISA = 'Module::Install::Base';
++ $ISCORE = 1;
++}
++
++# determine if the user needs nmake, and download it if needed
++sub check_nmake {
++ my $self = shift;
++ $self->load('can_run');
++ $self->load('get_file');
++
++ require Config;
++ return unless (
++ $^O eq 'MSWin32' and
++ $Config::Config{make} and
++ $Config::Config{make} =~ /^nmake\b/i and
++ ! $self->can_run('nmake')
++ );
++
++ print "The required 'nmake' executable not found, fetching it...\n";
++
++ require File::Basename;
++ my $rv = $self->get_file(
++ url => 'http://download.microsoft.com/download/vc15/Patch/1.52/W95/EN-US/Nmake15.exe',
++ ftp_url => 'ftp://ftp.microsoft.com/Softlib/MSLFILES/Nmake15.exe',
++ local_dir => File::Basename::dirname($^X),
++ size => 51928,
++ run => 'Nmake15.exe /o > nul',
++ check_for => 'Nmake.exe',
++ remove => 1,
++ );
++
++ die <<'END_MESSAGE' unless $rv;
++
++-------------------------------------------------------------------------------
++
++Since you are using Microsoft Windows, you will need the 'nmake' utility
++before installation. It's available at:
++
++ http://download.microsoft.com/download/vc15/Patch/1.52/W95/EN-US/Nmake15.exe
++ or
++ ftp://ftp.microsoft.com/Softlib/MSLFILES/Nmake15.exe
++
++Please download the file manually, save it to a directory in %PATH% (e.g.
++C:\WINDOWS\COMMAND\), then launch the MS-DOS command line shell, "cd" to
++that directory, and run "Nmake15.exe" from there; that will create the
++'nmake.exe' file needed by this module.
++
++You may then resume the installation process described in README.
++
++-------------------------------------------------------------------------------
++END_MESSAGE
++
++}
++
++1;
++
++__END__
++
++#line 80
+--- /dev/null
++++ b/inc/Module/Install/Can.pm
+@@ -0,0 +1,154 @@
++#line 1
++package Module::Install::Can;
++
++use strict;
++use Config ();
++use ExtUtils::MakeMaker ();
++use Module::Install::Base ();
++
++use vars qw{$VERSION @ISA $ISCORE};
++BEGIN {
++ $VERSION = '1.10';
++ @ISA = 'Module::Install::Base';
++ $ISCORE = 1;
++}
++
++# check if we can load some module
++### Upgrade this to not have to load the module if possible
++sub can_use {
++ my ($self, $mod, $ver) = @_;
++ $mod =~ s{::|\\}{/}g;
++ $mod .= '.pm' unless $mod =~ /\.pm$/i;
++
++ my $pkg = $mod;
++ $pkg =~ s{/}{::}g;
++ $pkg =~ s{\.pm$}{}i;
++
++ local $@;
++ eval { require $mod; $pkg->VERSION($ver || 0); 1 };
++}
++
++# Check if we can run some command
++sub can_run {
++ my ($self, $cmd) = @_;
++
++ my $_cmd = $cmd;
++ return $_cmd if (-x $_cmd or $_cmd = MM->maybe_command($_cmd));
++
++ for my $dir ((split /$Config::Config{path_sep}/, $ENV{PATH}), '.') {
++ next if $dir eq '';
++ require File::Spec;
++ my $abs = File::Spec->catfile($dir, $cmd);
++ return $abs if (-x $abs or $abs = MM->maybe_command($abs));
++ }
++
++ return;
++}
++
++# Can our C compiler environment build XS files
++sub can_xs {
++ my $self = shift;
++
++ # Ensure we have the CBuilder module
++ $self->configure_requires( 'ExtUtils::CBuilder' => 0.27 );
++
++ # Do we have the configure_requires checker?
++ local $@;
++ eval "require ExtUtils::CBuilder;";
++ if ( $@ ) {
++ # They don't obey configure_requires, so it is
++ # someone old and delicate. Try to avoid hurting
++ # them by falling back to an older simpler test.
++ return $self->can_cc();
++ }
++
++ # Do we have a working C compiler
++ my $builder = ExtUtils::CBuilder->new(
++ quiet => 1,
++ );
++ unless ( $builder->have_compiler ) {
++ # No working C compiler
++ return 0;
++ }
++
++ # Write a C file representative of what XS becomes
++ require File::Temp;
++ my ( $FH, $tmpfile ) = File::Temp::tempfile(
++ "compilexs-XXXXX",
++ SUFFIX => '.c',
++ );
++ binmode $FH;
++ print $FH <<'END_C';
++#include "EXTERN.h"
++#include "perl.h"
++#include "XSUB.h"
++
++int main(int argc, char **argv) {
++ return 0;
++}
++
++int boot_sanexs() {
++ return 1;
++}
++
++END_C
++ close $FH;
++
++ # Can the C compiler access the same headers XS does
++ my @libs = ();
++ my $object = undef;
++ eval {
++ local $^W = 0;
++ $object = $builder->compile(
++ source => $tmpfile,
++ );
++ @libs = $builder->link(
++ objects => $object,
++ module_name => 'sanexs',
++ );
++ };
++ my $result = $@ ? 0 : 1;
++
++ # Clean up all the build files
++ foreach ( $tmpfile, $object, @libs ) {
++ next unless defined $_;
++ 1 while unlink;
++ }
++
++ return $result;
++}
++
++# Can we locate a (the) C compiler
++sub can_cc {
++ my $self = shift;
++ my @chunks = split(/ /, $Config::Config{cc}) or return;
++
++ # $Config{cc} may contain args; try to find out the program part
++ while (@chunks) {
++ return $self->can_run("@chunks") || (pop(@chunks), next);
++ }
++
++ return;
++}
++
++# Fix Cygwin bug on maybe_command();
++if ( $^O eq 'cygwin' ) {
++ require ExtUtils::MM_Cygwin;
++ require ExtUtils::MM_Win32;
++ if ( ! defined(&ExtUtils::MM_Cygwin::maybe_command) ) {
++ *ExtUtils::MM_Cygwin::maybe_command = sub {
++ my ($self, $file) = @_;
++ if ($file =~ m{^/cygdrive/}i and ExtUtils::MM_Win32->can('maybe_command')) {
++ ExtUtils::MM_Win32->maybe_command($file);
++ } else {
++ ExtUtils::MM_Unix->maybe_command($file);
++ }
++ }
++ }
++}
++
++1;
++
++__END__
++
++#line 236
+--- /dev/null
++++ b/inc/Module/Install/Fetch.pm
+@@ -0,0 +1,97 @@
++#line 1
++package Module::Install::Fetch;
++
++use strict;
++use Module::Install::Base ();
++
++use vars qw{$VERSION @ISA $ISCORE};
++BEGIN {
++ $VERSION = '1.10';
++ @ISA = 'Module::Install::Base';
++ $ISCORE = 1;
++}
++
++sub get_file {
++ my ($self, %args) = @_;
++ my ($scheme, $host, $path, $file) =
++ $args{url} =~ m|^(\w+)://([^/]+)(.+)/(.+)| or return;
++
++ if ( $scheme eq 'http' and ! eval { require LWP::Simple; 1 } ) {
++ $args{url} = $args{ftp_url}
++ or (warn("LWP support unavailable!\n"), return);
++ ($scheme, $host, $path, $file) =
++ $args{url} =~ m|^(\w+)://([^/]+)(.+)/(.+)| or return;
++ }
++
++ $|++;
++ print "Fetching '$file' from $host... ";
++
++ unless (eval { require Socket; Socket::inet_aton($host) }) {
++ warn "'$host' resolve failed!\n";
++ return;
++ }
++
++ return unless $scheme eq 'ftp' or $scheme eq 'http';
++
++ require Cwd;
++ my $dir = Cwd::getcwd();
++ chdir $args{local_dir} or return if exists $args{local_dir};
++
++ if (eval { require LWP::Simple; 1 }) {
++ LWP::Simple::mirror($args{url}, $file);
++ }
++ elsif (eval { require Net::FTP; 1 }) { eval {
++ # use Net::FTP to get past firewall
++ my $ftp = Net::FTP->new($host, Passive => 1, Timeout => 600);
++ $ftp->login("anonymous", 'anonymous at example.com');
++ $ftp->cwd($path);
++ $ftp->binary;
++ $ftp->get($file) or (warn("$!\n"), return);
++ $ftp->quit;
++ } }
++ elsif (my $ftp = $self->can_run('ftp')) { eval {
++ # no Net::FTP, fallback to ftp.exe
++ require FileHandle;
++ my $fh = FileHandle->new;
++
++ local $SIG{CHLD} = 'IGNORE';
++ unless ($fh->open("|$ftp -n")) {
++ warn "Couldn't open ftp: $!\n";
++ chdir $dir; return;
++ }
++
++ my @dialog = split(/\n/, <<"END_FTP");
++open $host
++user anonymous anonymous\@example.com
++cd $path
++binary
++get $file $file
++quit
++END_FTP
++ foreach (@dialog) { $fh->print("$_\n") }
++ $fh->close;
++ } }
++ else {
++ warn "No working 'ftp' program available!\n";
++ chdir $dir; return;
++ }
++
++ unless (-f $file) {
++ warn "Fetching failed: $@\n";
++ chdir $dir; return;
++ }
++
++ return if exists $args{size} and -s $file != $args{size};
++ system($args{run}) if exists $args{run};
++ unlink($file) if $args{remove};
++
++ print(((!exists $args{check_for} or -e $args{check_for})
++ ? "done!" : "failed! ($!)"), "\n");
++ chdir $dir; return !$?;
++}
++
++1;
++
++__END__
++
++#line 109
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..284bf89
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1 @@
+missing-mi-writeall.patch
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libnet-amazon-ec2-perl.git
More information about the Pkg-perl-cvs-commits
mailing list