components/perl_modules/perl-tk/patches/002-system-png.patch
author mahmood.ali@oracle.com <mahmood.ali@oracle.com>
Thu, 30 Jan 2014 09:31:17 -0800
changeset 1677 e41bbf0b1631
child 4746 8e237ffd0a48
permissions -rw-r--r--
PSARC 2013/271 perl-tk version 804.031 17672127 Need CPAN perl-tk module for cssh dependency

In-House patch. 
Making sure Perl-Tk does not build its own copy of libpng and libz, instead links against these libraries already present in Solaris in /usr/lib.

--- Tk-804.031/PNG/Makefile.PL.orig	Tue Nov 12 22:36:34 2013
+++ Tk-804.031/PNG/Makefile.PL	Tue Nov 12 22:36:41 2013
@@ -2,19 +2,7 @@
 use strict;
 use Tk::MMutil;
 use Tk::Config ();
-use Tk::MMtry;
-use File::Copy;
 
-my $l = $Config::Config{'lib_ext'};
-my $cc = $Config::Config{'cc'};
-my $zlib = "libz$l";
-
-foreach my $file (qw(zlib/Makefile.PL libpng/Makefile.PL))
- {
-  chmod(0666,$file) unless -w $file;
-  unlink($file);
- }
-
 my $libpng_cflags;
 my $libpng_libs;
 system('pkg-config --exists libpng');
@@ -21,74 +9,17 @@
 if ($? == 0) {
     chomp($libpng_cflags = `pkg-config --cflags libpng`);
     chomp($libpng_libs   = `pkg-config --libs libpng`);
-} else {
-    warn "'pkg-config libpng' failed, continue with fallback values for cflags and libs...\n";
-    $libpng_cflags = '-I/usr/local/include';
-    $libpng_libs   = '-lpng -lz -lm';
 }
 
-if ($Tk::MMtry::VERSION ge '4.007' &&
-    try_run("config/has_png.c",[$libpng_cflags],[$libpng_libs]))
- {
-  Tk::MMutil::TkExtMakefile(
-       NAME         => 'Tk::PNG',
-       VERSION_FROM => 'PNG.pm',
-       XS_VERSION   => $Tk::Config::VERSION,
-       dist         => { COMPRESS => 'gzip -f9', SUFFIX => '.gz' },
-       OBJECT       => '$(O_FILES)',
-       INC          => $libpng_cflags,
-       LIBS         => [$libpng_libs],
-     );
- }
-else
- {
-  my $ok = 1;
-  foreach my $file ("libpng/Makefile.PL","zlib/Makefile.PL")
-   {
-    next unless -f $file;
-    chmod(0666,$file);
-    unlink($file);
-   }
-  unless (copy("Makefile.libpng.maybe","libpng/Makefile.PL"))
-   {
-    warn "Cannot copy Makefile.libpng.maybe => libpng/Makefile.PL ($!)";
-    $ok = 0;
-   }
-  unless (copy("Makefile.zlib.maybe","zlib/Makefile.PL"))
-   {
-    warn "Cannot copy Makefile.zlib.maybe => zlib/Makefile.PL ($!)";
-    $ok = 0;
-   }
-  if ($ok)
-   {
-    warn "Building libpng$l\n";
-    my $extlib = "libpng/libpng$l";
-    if ($cc eq 'cl')
-     {
-      $extlib .= " zlib/zlib$l";
-      $zlib   = "zlib$l";
-     }
-    else
-     {
-      $extlib .= " zlib/libz$l";
-     }
-    Tk::MMutil::TkExtMakefile(
-           NAME         => 'Tk::PNG',
-           VERSION_FROM => 'PNG.pm',
-           XS_VERSION   => $Tk::Config::VERSION,
-           dist         => { COMPRESS => 'gzip -f9', SUFFIX => '.gz' },
-           OBJECT       => '$(O_FILES)',
-           INC          => '-Ilibpng -Izlib',
-           MYEXTLIB     => $extlib,
-           LIBS         => ['-lm'],
-         );
-    }
-   else
-    {
-     warn "Cannot build libpng$l\n";
-     ExtUtils::MakeMaker::WriteEmptyMakefile();
-    }
- }
+Tk::MMutil::TkExtMakefile(
+     NAME         => 'Tk::PNG',
+     VERSION_FROM => 'PNG.pm',
+     XS_VERSION   => $Tk::Config::VERSION,
+     dist         => { COMPRESS => 'gzip -f9', SUFFIX => '.gz' },
+     OBJECT       => '$(O_FILES)',
+     INC          => $libpng_cflags,
+     LIBS         => [$libpng_libs],
+   );
 
 sub MY::test_via_harness
 {
@@ -98,63 +29,3 @@
 }
 
 package MY;
-
-sub pasthru {
-  if ($^O eq 'MSWin32' && $Config::Config{cc} =~ /gcc/)
-   {
-    # gcc usually has ranlib, also dmake does not understand "rem"
-    # which is default setting for $Config::Config{ranlib} under
-    # Windows, unless .USE_SHELL: is specified (see also special_targets
-    # in ExtUtils::MM_Win32)
-    qq[PASTHRU="CC=$Config::Config{cc} $Config::Config{cccdlflags}"];
-   }
-  else
-   {
-    qq[PASTHRU="CC=$Config::Config{cc} $Config::Config{cccdlflags}" RANLIB=\"$Config::Config{ranlib}\"];
-   }
-}
-
-sub postamble {
-  my $s = '';
-  if (-f "libpng/Makefile.PL")
-   {
-    $s .=
-"
-libpng/libpng$l : zlib/$zlib
-	cd libpng && \$(MAKE) libpng".$l.' $(PASTHRU)
-';
-
-   }
-  if (-f "zlib/Makefile.PL")
-   {
-    $s .=
-"
-zlib/$zlib : FORCE
-	cd zlib && \$(MAKE) $zlib".' $(PASTHRU)
-';
-
-   }
- return $s;
-}
-
-sub realclean {
-  my $self = shift;
-  my $str  = $self->MM::realclean(@_);
-  $str =~ s/(::\s*clean)/$1 realclean2/;
-  $str .= "\nrealclean2 ::\n";
-  $str .= "\t\$(RM_F) ".join(" \\\n\t","libpng/Makefile","libpng/Makefile.PL","zlib/Makefile","zlib/Makefile.PL")."\n";
-  $str .= "\t\$(RM_F) ".join(" \\\n\t", map { "libpng/$_" } qw(
-								  config.h
-								  config.log
-								  config.status
-								  libpng-config
-								  libpng.pc
-								  libtool
-								  stamp-h1
-							     ))."\n";
-  $str .= "\t\$(RM_RF) ".join(" \\\n\t","libpng/.deps")."\n";
-  return $str;
-}
-
-
-