File: //scripts.20110531.215904.25158/fetchgd
#!/usr/bin/perl
# cpanel - fetchgd Copyright(c) 2010 cPanel, Inc.
# All rights Reserved.
# copyright@cpanel.net http://cpanel.net
# This code is subject to the cPanel license. Unauthorized copying is prohibited
BEGIN { unshift @INC, '/usr/local/cpanel'; }
use Cpanel::SafeRun::Simple ();
require '/scripts/HTTPreq.pm';
$|=1;
if ($^O =~ /freebsd/i) {
if (-e '/usr/local/bin/gdlib-config') {
my $pkg =
Cpanel::SafeRun::Simple::saferun("pkg_info","-W","/usr/local/bin/gdlib-config");
if ($pkg eq '') { unlink('/usr/local/bin/gdlib-config'); }
}
if (! -e '/usr/local/lib/libgd.so' && ! -e '/usr/lib/libgd.so') {
exec("/scripts/installpkg","--force","gd");
} else {
exec("/scripts/installpkg","gd");
}
exit();
}
opendir(GDDIR,"/usr/local/cpanel/src/3rdparty/gpl");
my @FILES = readdir(GDDIR);
closedir(GDDIR);
my $maxmajor = 2;
my $maxminor = 0;
my $maxrev = 0;
foreach my $file (@FILES) {
next if ($file !~ m{ \A gd }xms);
$file =~ /(gd-[^\"]+)/;
my $filename = $1;
next if ($filename !~ /\.tar\.gz$/);
my $version = $filename;
$version =~ s/^gd-//g;
$version =~ s/\.tar\.gz$//g;
my($major,$minor,$rev) = split(/\./, $version);
next if ($major ne "2");
if ($maxminor < $minor) {
$maxminor = $minor;
$maxrev = $rev;
} elsif ($maxrev < $rev) {
$maxrev = $rev;
}
}
print "gd-${maxmajor}.${maxminor}.${maxrev}.tar.gz\n";
system("/scripts/checkccompiler");
system("rm","-rf","/home/cpgdbuild");
system("mkdir","/home/cpgdbuild");
chdir("/home/cpgdbuild");
system("cp","-fv","/usr/local/cpanel/src/3rdparty/gpl/gd-${maxmajor}.${maxminor}.${maxrev}.tar.gz",".");
system("tar","xfzv","gd-${maxmajor}.${maxminor}.${maxrev}.tar.gz");
$dir = glob("gd-*");
chdir($dir);
system("pwd");
my $prefix = '/usr';
if ($system =~ /freebsd/i) { $prefix = '/usr/local'; }
my @CONF;
if (-e "/usr/local/lib/libpng.so") {
@CONF = ("./configure","--prefix=${prefix}","--with-png=/usr/local");
} else {
@CONF = ("./configure","--prefix=${prefix}");
}
if (-e "/usr/lib64") {
push(@CONF,"--libdir=/usr/lib64");
}
system(@CONF);
system("make");
system("make","install");
chdir("/");
system("rm","-rf","/home/cpgdbuild");
if ($system =~ /freebsd/i) {
system("cp -fv /usr/local/lib/libgd.so* /usr/lib");
}