From c73fa4536ad61df5801d83012eabf8d3dc8c3959 Mon Sep 17 00:00:00 2001
From: thomas <kreitler@molgen.mpg.de>
Date: Tue, 30 May 2017 16:27:41 +0200
Subject: [PATCH] Extend perl-5.24.1

Adding SVG XML2 and Log4perl
---
 perl-5.24.1-1.build.sh | 498 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 498 insertions(+)
 create mode 100755 perl-5.24.1-1.build.sh

diff --git a/perl-5.24.1-1.build.sh b/perl-5.24.1-1.build.sh
new file mode 100755
index 0000000..af2ea60
--- /dev/null
+++ b/perl-5.24.1-1.build.sh
@@ -0,0 +1,498 @@
+#! /bin/sh
+set -xe
+
+PKG=perl
+VERSION=5.24.1
+BUILD=1
+
+PREFIX=/pkg/$PKG-$VERSION-$BUILD
+PREFIX=/dev/shm/$PKG-$VERSION-$BUILD
+
+if false; then
+	# force complete rebuild, but keep downloads
+	cd $PREFIX
+	# sanity check before we go berserk
+	test -e build/perl-$VERSION.tar.gz && test -e build/Donald-1.04.tar.gz || exit 1
+	find .     -maxdepth 1 -not -name .     -not -name build    -exec rm -rf {} \;
+	find build -maxdepth 1 -not -name build -not -name "*.tar*" -exec rm -rf {} \;
+fi
+
+mkdir -p $PREFIX
+cat >$PREFIX/profile <<-EOF
+	PATH=$PREFIX/bin:\$PATH
+EOF
+. $PREFIX/profile
+
+# Some cpan mopdule tests fail when build directory is on
+# nfs, because they try to remove directories with unlinked
+# but opened files in it.
+# Additionally we want a clean envirnoment and a local cpan scratch
+#
+HOME=/dev/shm/$PKG-$VERSION-$BUILD.build.home.tmp
+mkdir -p $HOME
+
+exec </dev/null		# to many cpan modules might ask something
+
+mkdir -p $PREFIX/build
+cd $PREFIX/build
+
+# The problem with a git checkout is, that the perl build system does many things
+# differentily when is sees .git - e.g. run additional developer checks.
+#test -d perl || git clone https://perl5.git.perl.org/perl.git
+#cd perl
+#git checkout "v$VERSION" ; git reset --hard
+
+test -e perl-$VERSION.tar.gz || wget http://www.cpan.org/src/5.0/perl-$VERSION.tar.gz
+test -d perl-$VERSION || tar xf perl-$VERSION.tar.gz
+cd perl-$VERSION
+
+# -d : use defaults for all answers.
+# -e : go on without questioning past the production of config.sh.
+# -s : silent mode, only echoes questions and essential information.
+# -Dusedevel : allow devel (uneven minor) versions. Prevents bin/perl->bin/perlVERSION symlink
+# -Duseshrplib : build shared perl library (required when perl is to be included in a shared library)
+# -DEBUGGING : add debugging code (perl -D)
+#
+./Configure -des -Duseshrplib -Dprefix=$PREFIX
+
+make -j$(nproc)
+
+# Note: If you get a failure in porting/utils test here, it might be, that we are
+# running cpan somewhere else which leads to an extra and unexpected "\n" being
+# emitted by CPAN.pm BEGIN and a failure of the test (which does "perl -c CPAN.pm")
+#
+make test
+make install
+
+cd $PREFIX;
+
+test -e $HOME/.cpan/CPAN/MyConfig.pm && rm $HOME/.cpan/CPAN/MyConfig.pm
+cpan</dev/null
+
+# Too many modules "recommend" stupid things like mod_perl
+# do not auto install recommended modules
+perl -MCPAN <<'_EOF_'
+  CPAN::HandleConfig->load();
+  CPAN::Shell->o('conf','recommends_policy',0);
+  CPAN::Shell->o('conf','commit');
+_EOF_
+
+cpan -u			# update everything we already have
+
+# After the update we have a new ExtUtils::MakeMaker.
+# Patch this version to avoid stomping on a perl bug
+# We've got this when building net-snmp (down below).
+# Errors:
+#    "panic: attempt to copy freed scalar"
+#    "Bizarre copy of HASH in list assignment#
+# this is from perl bug:
+#    https://rt.perl.org/Public/Bug/Display.html?id=77706
+# triggered by ExtUtils::MakeMaker.
+# This patch prevents this
+#
+
+(cd lib/site_perl/$VERSION/ExtUtils; patch -N -p1 < /src/mariux/patches/MakeMaker-0001-MakeMaker.pm-Avoid-triggering-perl-bug.patch) || true
+
+# These two with -T (without test), because the tests are interactive and access /dev/tty
+# Do these first, because they are required by Bundle::CPAN
+#
+cpan -T Term::ReadLine::Perl
+cpan -T Term::ReadLine::Gnu
+
+# Now the rest of Bundle::CPAN first, so that we use latest code for the following
+# installations
+#
+cpan Bundle::CPAN
+
+# mod_perl (Apache::*, Bundle::Apache, mod_perl, modPerl_hooks) is broken.
+# Usually it wants Apache httpd source to compile and keeps asking for it forever if it
+# doesn't find it.
+# we could install it without Access to sources
+#     perl -MCPAN <<'_EOF_'
+#       CPAN::HandleConfig->load;
+#       $CPAN::Config->{'makepl_arg'}='NO_HTTPD=1';
+#       CPAN::Shell->install('Apache');
+#     _EOF_
+# but its broken anyway (needs a patch to compile against
+# current perl) and the version 1.* branch has not been updated
+# for a long time. leave it out and everything which depends on it
+#cpan Bundle::Apache
+
+# Tests for GD fail
+# The seventh image in den GD.t test looks slightly
+# different. Maybe small difference in TrueType font.
+#
+# Do it first, otherwise we are pulled by Chart::Base
+#
+cpan -T GD
+
+# Now  modules (from autobundle of /usr/local/ installation and manual cleanup and some deduplication)
+#
+cpan AE
+cpan Algorithm::Diff
+cpan Algorithm::DiffOld
+cpan AnyEvent
+cpan AppConfig
+cpan Archive::Extract
+cpan Archive::Zip
+cpan Attribute::Params::Validate
+cpan Authen::SASL
+cpan B::Keywords
+cpan BerkeleyDB
+cpan Bit::Vector
+cpan CGI
+cpan CGI::Fast
+cpan CPAN::Admin
+cpan CPANPLUS
+cpan Cache::Memcached
+cpan Capture::Tiny
+cpan Carp::Clan
+cpan Chart::Base
+cpan Class::Accessor
+cpan Class::Data::Inheritable
+cpan Class::ISA
+cpan Class::Inspector
+cpan Class::Load
+cpan Class::Singleton
+cpan Class::Tiny
+cpan Class::Trigger
+cpan Clone
+cpan Config::General
+cpan Config::Tiny
+cpan Crypt::OpenSSL::RSA
+cpan Crypt::OpenSSL::Random
+cpan Crypt::RC4
+cpan Crypt::SSLeay
+cpan DBD::SQLite
+cpan DBD::mysql
+cpan DBI
+cpan Daemon::Generic
+cpan Data::Grove
+cpan Data::ObjectDriver
+cpan Data::OptList
+cpan Data::Stag
+cpan Date::Calendar
+cpan Date::Parse
+cpan DateTime
+cpan DateTime::Locale
+cpan DateTime::TimeZone
+cpan Devel::CheckLib
+cpan Devel::GlobalDestruction
+cpan Devel::InnerPackage
+cpan Devel::SelfStubber
+cpan Devel::StackTrace
+cpan Devel::StackTrace::AsHTML
+cpan Devel::Symdump
+cpan Device::SerialPort
+cpan Digest::HMAC
+cpan Digest::Perl::MD5
+cpan Digest::SHA1
+cpan Dist::CheckConflicts
+cpan Email::Abstract
+cpan Email::Address
+cpan Email::Date::Format
+cpan Email::FolderType
+cpan Email::LocalDelivery
+cpan Email::MIME
+cpan Email::MIME::Attachment::Stripper
+cpan Email::MIME::ContentType
+cpan Email::MIME::Encodings
+cpan Email::MessageID
+cpan Email::Outlook::Message
+cpan Email::Reply
+cpan Email::Send
+cpan Email::Simple
+cpan Encode::Detect
+cpan Encode::Locale
+cpan Eval::LineNumbers
+cpan Event
+cpan Exception::Class
+cpan ExtUtils::PkgConfig
+cpan FCGI
+cpan File::CheckTree
+cpan File::Copy::Recursive
+cpan File::Flock
+cpan File::FnMatch
+cpan File::HomeDir
+cpan File::Listing
+cpan File::Path::Expand
+cpan File::Remove
+cpan File::ShareDir
+cpan File::Slurp
+cpan File::Which
+cpan Filesys::Notify::Simple
+cpan Filter::Util::Exec
+cpan Font::AFM
+cpan Font::TTF
+cpan GD::Graph
+cpan GD::SVG
+cpan GD::Text
+cpan Glib
+cpan Graph
+cpan Graphics::ColorNames
+cpan Graphics::ColorObject
+cpan HTML::Tree
+cpan HTML::Parser
+cpan HTML::Form
+cpan HTML::Formatter
+cpan HTML::Scrubber
+cpan HTML::TableParser
+cpan HTML::Tagset
+cpan HTML::TreeBuilder
+cpan HTTP::Body
+cpan HTTP::Cookies
+cpan HTTP::DAV
+cpan HTTP::Daemon
+cpan HTTP::Date
+cpan HTTP::Message
+cpan HTTP::Negotiate
+cpan HTTP::Server::Simple
+cpan Hash::MultiValue
+cpan Hook::LexWrap
+cpan IO::All
+cpan IO::CaptureOutput
+cpan IO::Multiplex
+cpan IO::Pty
+cpan IO::Socket::SSL
+cpan IO::String
+cpan IO::Stringy
+cpan IPC::Run
+cpan IPC::Run3
+cpan Inline
+cpan Inline::C
+cpan JSON
+cpan JSON::PP::Compat5006
+cpan JSON::RPC
+cpan JSON::XS
+cpan LWP
+cpan Lingua::EN::Inflect
+cpan Linux::Inotify2
+cpan Linux::USBKeyboard
+cpan List::MoreUtils
+cpan Log::Message
+cpan Log::Log4perl
+cpan MIME::Tools
+cpan MRO::Compat
+cpan Mail::Box
+cpan Mail::Box::IMAP4
+cpan Mail::Box::POP3
+cpan Mail::DKIM
+cpan Mail::Util
+cpan Mail::IMAPClient
+cpan Mail::Identity
+cpan Mail::Message
+cpan Mail::Transport
+cpan Math::Bezier
+cpan Math::Calc::Units
+cpan Math::Interpolate
+cpan Math::IntervalSearch
+cpan Math::Random::ISAAC
+cpan Math::Random::ISAAC::PP
+cpan Math::Round
+cpan Math::VecStat
+cpan Module::Build
+cpan Module::Implementation
+cpan Module::Pluggable
+cpan Module::Runtime
+cpan Mojo
+cpan Mozilla::CA
+cpan Net::DNS
+cpan Net::HTTP
+cpan Net::IMAP::Client
+cpan Net::IMAP::Simple
+cpan Net::SNMP
+cpan Net::SSL
+cpan Net::SSLeay
+cpan Net::Server
+cpan NetAddr::IP
+cpan OLE::Storage_Lite
+cpan Object::Accessor
+cpan Object::Realize::Later
+cpan PDF::API2
+cpan PDL
+cpan PPITerm::UI
+cpan PPIx::Regexp
+cpan Package::Constants
+cpan Package::DeprecationManager
+cpan Package::Stash
+cpan Package::Stash::XS
+cpan Params::Util
+cpan Params::Validate
+cpan Parse::RecDescent
+cpan PatchReader
+cpan Path::FindDev
+cpan Path::FindDev::Object
+cpan Path::IsDev
+cpan Path::Tiny
+cpan Pegex
+cpan Perl::Critic
+cpan Perl::Tidy
+cpan Plack
+cpan Pod::Coverage
+cpan Pod::LaTeX
+cpan Pod::Plainer
+cpan Pod::Spell
+cpan Probe::Perl
+cpan Readonly
+cpan Regexp::Common
+cpan Return::Value
+cpan Role::Tiny
+cpan Router::Simple
+cpan SVG
+cpan Set::IntSpan
+cpan Shell
+cpan Spreadsheet::ParseExcel
+cpan Starlink::AST
+cpan Statistics::Descriptive
+cpan Stream::Buffered
+cpan String::CRC32
+cpan String::Format
+cpan Sub::Exporter
+cpan Sub::Exporter::Progressive
+cpan Sub::Install
+cpan Sub::Uplevel
+cpan Switch
+cpan Task::Weaken
+cpan Template
+cpan Template::Plugin::GD
+cpan Term::UI
+cpan Test::Deep
+cpan Test::Differences
+cpan Test::Exception
+cpan Test::Fatal
+cpan Test::Inter
+cpan Test::Most
+cpan Test::NoWarnings
+cpan Test::Number::Delta
+cpan Test::Object
+cpan Test::Output
+cpan Test::Pod
+cpan Test::Pod::Coverage
+cpan Test::Requires
+cpan Test::Script
+cpan Test::SharedFork
+cpan Test::SubCalls
+cpan Test::TCP
+cpan Test::Taint
+cpan Test::Warn
+cpan Test::YAML
+cpan Text::CSV
+cpan Text::Diff
+cpan Text::Format
+cpan Text::Soundex
+cpan TheSchwartz
+cpan Tie::DBI
+cpan Tie::RDBM
+cpan Tie::Watch
+cpan Time::Date
+cpan Time::Period
+cpan Tk
+cpan Tree::DAG_Node
+cpan Try::Tiny
+cpan URI
+cpan Unix::Syslog
+cpan User::Identity
+cpan Version::Requirements
+cpan WWW::Dict::Leo::Org
+cpan WWW::Mechanize
+cpan WWW::RobotRules
+cpan XML::DOM
+cpan XML::LibXML
+cpan XML::LibXSLT
+cpan XML::NamespaceSupport
+cpan XML::Parser
+cpan XML::Parser::Lite
+cpan XML::Quote
+cpan XML::RegExp
+cpan XML::SAX
+cpan XML::SAX::Base
+cpan XML::SAX::Expat
+cpan XML::Simple
+cpan XML::Twig
+cpan XML::XPath
+cpan YAML
+cpan YAML::LibYAML
+
+cpan common::sense
+cpan inc::latest
+cpan install
+cpan local::lib
+
+cpan Apache::SOAP
+cpan Date::Manip
+(
+	cd $PREFIX/build
+	test -e Donald-1.04.tar.gz || cp /home/buczek/cluster/Donald/Donald-1.04.tar.gz .
+	test -d Donald-1.04 || tar xf Donald-1.04.tar.gz
+	cd Donald-1.04
+	cpan .
+)
+cpan PDL::Stats
+(
+	cd $PREFIX/build
+	test -e Pcap-0.02.tar.gz || cp /home/buczek/build/Pcap/Pcap-0.02.tar.gz .
+	test -d Pcap-0.02 || tar xf Pcap-0.02.tar.gz
+	cd Pcap-0.02
+	cpan .
+)
+(
+	cd $PREFIX/build
+	test -e rrdtool-1.6.0.tar.gz || wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.6.0.tar.gz
+	test -d rrdtool-1.6.0 || tar xf rrdtool-1.6.0.tar.gz
+	cd rrdtool-1.6.0
+	./configure --prefix $PREFIX
+	make -j $(nproc)
+	cd bindings/perl-shared/
+	cpan .
+	cd ../perl-piped
+	cpan .
+)
+
+# http://net-snmp.sourceforge.net/ (Net-SNMP : SNMP.pm, NetSNMP::*)
+# should match exact version of net-snmp packages
+# install everything here to avoid dependency.
+#
+# cpan has 5.0404 of Net-SNMP so use latest version from its home.
+#
+# If you get errors
+#    "panic: attempt to copy freed scalar"
+#    "Bizarre copy of HASH in list assignment#
+# this is from perl bug:
+#    https://rt.perl.org/Public/Bug/Display.html?id=77706
+# triggered by ExtUtils::MakeMaker. The patch
+#    /src/mariux/patches/0001-Carp.pm-continue-with-screwed-up-perl-stack.patch
+# at the top of this file is there to prevent this.
+#
+(
+	cd $PREFIX/build
+	test -e net-snmp-5.7.3.tar.gz || wget https://downloads.sourceforge.net/project/net-snmp/net-snmp/5.7.3/net-snmp-5.7.3.tar.gz
+	test -d net-snmp-5.7.3 || tar xvf net-snmp-5.7.3.tar.gz
+	cd net-snmp-5.7.3
+	patch -N -p1 < /src/mariux/patches/net-snmp-0001-Fix-incompatible-definitions-of-U64-type.patch || true
+	./configure --prefix $PREFIX
+	make -j $(nproc)
+	make install
+)
+
+# Do bioperl last, because it doesn't declare all dependencies correctly
+#
+cpan Bio::Perl
+# cpan -T Bio::Biblio    # "ERROR 11 Unable to connect to database [medline" instead of xml file from net
+cpan Bio::Coordinate
+#cpan Bio::Graphics::Browser2	# GBrowse - requires Bio::DB::Sam
+#cpan Bio::DB::Sam		# Bio-SamTools   'Please enter the location of the bam.h and compiled libbam.a files'
+cpan Bio::FeatureIO
+cpan Bio::Tools::EUtilities
+#cpan Bio::Tools::Run::StandAloneBlast	# seeveral tests fail - tools not availanle in required version
+#cpan Bio::Network::IO			# tests fail (whatever)
+
+#still missing (found by: /home/buczek/libcheck/perlcompare.pl)
+#
+#Alien::SVN		# Alien-SVN: wants SVN install, assumed obsolete
+#Apache::XMLRPC::Lite	# SOAP-Lite-1.01 : obsolete
+#B::Lint*		# B-Lint-1.20-0 : I dont think we need this
+#CGI::Apache		# mod_perl - requires Apache source and asks for it endlessly
+#UDDI::Lite		# 17 years old junk
+#XMLRPC*		# XMLRPC-Lite: dont think we still need that
+
+exit