From: Charles McGarvey Date: Sun, 20 Jan 2013 02:17:08 +0000 (-0700) Subject: do not bother building the zeromq test programs X-Git-Tag: v0.04~1 X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fp5-Alien-ZMQ;a=commitdiff_plain;h=5aeb13fc6eda81b2a2ef79fb71c66c48c7cb8134 do not bother building the zeromq test programs Some of the tests require pthreads, and the build system isn't always correct about when it shouldn't try to build such tests. --- diff --git a/dist.ini b/dist.ini index c7407a3..38844d0 100644 --- a/dist.ini +++ b/dist.ini @@ -36,5 +36,6 @@ Cwd = 0 Digest::SHA = 0 File::Path = 0 File::Spec::Functions = 0 +IPC::Run = 0 LWP::Simple = 0 diff --git a/files/zeromq-3.2.2-no-tests.patch b/files/zeromq-3.2.2-no-tests.patch new file mode 100644 index 0000000..0c3c57f --- /dev/null +++ b/files/zeromq-3.2.2-no-tests.patch @@ -0,0 +1,13 @@ +--- a/Makefile.in 2012-11-23 00:58:57.000000000 -0700 ++++ b/Makefile.in 2013-01-18 23:08:21.794836073 -0700 +@@ -256,8 +256,8 @@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + ACLOCAL_AMFLAGS = -I config +-@BUILD_PGM_FALSE@SUBDIRS = src doc perf tests +-@BUILD_PGM_TRUE@SUBDIRS = foreign/openpgm src doc perf tests ++@BUILD_PGM_FALSE@SUBDIRS = src doc ++@BUILD_PGM_TRUE@SUBDIRS = foreign/openpgm src doc + DIST_SUBDIRS = foreign/openpgm src doc perf tests builds/msvc + EXTRA_DIST = \ + autogen.sh \ diff --git a/inc/My/Build.pm b/inc/My/Build.pm index ca4a02a..a6a55f4 100644 --- a/inc/My/Build.pm +++ b/inc/My/Build.pm @@ -10,6 +10,7 @@ use Cwd qw/realpath/; use Digest::SHA qw/sha1_hex/; use File::Path qw/remove_tree/; use File::Spec::Functions qw/catdir catfile/; +use IPC::Run qw/run/; use LWP::Simple qw/getstore RC_OK/; use Module::Build; @@ -33,7 +34,7 @@ sub ACTION_code { %vars = $self->probe_zeromq; } - if ($vars{inc_version} && $vars{lib_version}) { + if ($vars{inc_version} && $vars{lib_version} && $vars{inc_dir} && $vars{lib_dir}) { say "Found ØMQ $vars{lib_version}; skipping installation"; } else { say "ØMQ not found; building from source..."; @@ -42,7 +43,7 @@ sub ACTION_code { # write vars to ZMQ.pm my $module = catfile qw/blib lib Alien ZMQ.pm/; - open my $LIB, "<$module" or die "Cannot read module"; + open my $LIB, '<', $module or die "Cannot read module"; my $lib = do { local $/; <$LIB> }; close $LIB; $lib =~ s/^sub inc_dir.*$/sub inc_dir { "$vars{inc_dir}" }/m; @@ -51,12 +52,12 @@ sub ACTION_code { $lib =~ s/^sub lib_version.*$/sub lib_version { v$vars{lib_version} }/m; my @stats = stat $module; chmod 0644, $module; - open $LIB, ">$module" or die "Cannot write config to module"; + open $LIB, '>', $module or die "Cannot write config to module"; print $LIB $lib; close $LIB; chmod $stats[2], $module; - open my $TARGET, ">build-zeromq"; + open my $TARGET, '>', "build-zeromq"; print $TARGET time, "\n"; close $TARGET; } @@ -67,7 +68,7 @@ sub probe_zeromq { my %config = $cb->get_config; my $src = "test-$$.c"; - open my $SRC, ">$src"; + open my $SRC, '>', $src; print $SRC < #include @@ -164,7 +165,7 @@ sub install_zeromq { say "Verifying..."; my $sha1sum = Digest::SHA->new; - open my $ARCHIVE, "<$archive"; + open my $ARCHIVE, '<', $archive or die "Can't open source archive"; binmode $ARCHIVE; $sha1sum->addfile($ARCHIVE); close $ARCHIVE; @@ -178,10 +179,15 @@ sub install_zeromq { my $basedir = $self->base_dir; my $datadir = catdir($basedir, "share"); my $srcdir = catdir($basedir, "zeromq-$version"); + chdir $srcdir; + + say "Patching..."; + for my $patch (glob("$basedir/files/zeromq-$version-*.patch")) { + run ["patch"], '<', $patch or die "Failed to patch ØMQ"; + } say "Configuring..."; my @config = $cb->split_like_shell($self->args('zmq-config') || ""); - chdir $srcdir; $cb->do_system(qw/sh configure CPPFLAGS=-Wno-error/, "--prefix=$prefix", @config) or die "Failed to configure ØMQ";