Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
pkg-scripts/perl-5.18.2-0.build.sh
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
executable file
592 lines (548 sloc)
16.2 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /bin/sh | |
set -xe | |
# COOKIE=$(mcookie); grep -v V_GREP_ME $0 > /dev/shm/runme-$COOKIE.sh ; sleep 1; exec bash /dev/shm/runme-$COOKIE.sh | |
PKG=perl | |
VERSION=5.18.2 | |
BUILD=0 | |
PREFIX=/pkg/$PKG-$VERSION-$BUILD | |
if [ -n "$TESTING" ]; then PREFIX=/dev/shm/$PKG-$VERSION-$BUILD ; fi | |
if false; then | |
# force complete rebuild, but keep downloads | |
cd $PREFIX | |
# sanity check before we go berserk | |
test -e build/perl-$VERSION.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 | |
PATH=/bin:/usr/bin:/usr/sbin:/usr/local/package/bin:/usr/local/bin | |
mkdir -p $PREFIX | |
cat >$PREFIX/profile <<-EOF | |
PATH=$PREFIX/bin:\$PATH | |
LD_LIBRARY_PATH=$PREFIX/lib\${LD_LIBRARY_PATH:+:\$LD_LIBRARY_PATH} | |
if [ -d $PREFIX/.compatlibs ]; then export LD_LIBRARY_PATH=$PREFIX/.compatlibs\${LD_LIBRARY_PATH:+:\$LD_LIBRARY_PATH} ; fi | |
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 | |
# Tk test needs display | |
# | |
if [ -z "$DISPLAY" ]; then | |
echo "DISPLAY not set. Required for Tk tests." >&2 | |
exit 1 | |
fi | |
function plaininstall() { | |
local dir=$1 | |
local tar=$2 | |
local url=$3 | |
local flags=$4 | |
( | |
cd $PREFIX/build | |
test -e $tar || wget $url | |
test -d $dir || tar xvf $tar | |
cd $dir | |
./configure --prefix=$PREFIX $flags || ./config --prefix=$PREFIX $flags | |
make -j $(nproc) | |
make install | |
) | |
} | |
# If you hit errors and want to rerun from where you failed, | |
# use "if false","fi" to avoid rebuilding everything before | |
# the error. | |
# | |
# A good point to place the "if false" is here. | |
# | |
# Just uncomment and move the "fi" line to where | |
# you want to restart. | |
# | |
#if false; then ######################################################### DEBUG | |
#fi ######################################################### DEBUG | |
mkdir -p $PREFIX/build | |
cd $PREFIX/build | |
# Net::SSLeay-1.85 stumbles with openssl-1.1.* | |
# so install the previous openssl release in the package. | |
# an onther option would have been the current devel version | |
# https://cpan.metacpan.org/authors/id/R/RA/RADIATOR/Net-SSLeay-1.86_07.tar.gz | |
# but I have no clue how close this one is to a stable module. | |
plaininstall \ | |
openssl-1.0.2q \ | |
openssl-1.0.2q.tar.gz \ | |
https://www.openssl.org/source/openssl-1.0.2q.tar.gz \ | |
"--openssldir=$PREFIX/share shared" | |
rm $PREFIX/share/man/man3/* # ~ 4000 pages that no one will read | |
# 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 | |
# Note: make test below would fail with: | |
# ext/Errno/t/Errno ........... FAILED--Further testing stopped: No errno's are exported | |
# Cure: | |
# https://rt.perl.org/Public/Bug/Display.html?id=123784 | |
# ... caused by a change in GCC 5.0's preprocesor | |
# ... Simple work-around is to call the preprocessor with -P option | |
sed -i -e '/"$cppstdin $Config/ s/cppstdin/cppstdin -P/' ext/Errno/Errno_pm.PL | |
# and from the same thread, fix a h2ph error | |
patch --read-only=ignore --verbose -p1 < /src/mariux/patches/0001-h2ph-correct-handling-of-hex-constants-for-the-pream.patch | |
# -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 \ | |
-Dusethreads \ | |
-Duseithreads \ | |
-Duselongdouble \ | |
-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 | |
# cpan -i CPAN | |
# 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 YAML # avoid "'YAML' not installed, will not store persistent state" messages | |
OPENSSL_PREFIX=$PREFIX cpan Net::SSLeay | |
cpan -u # now update everything we already have, do this after the initial install of Net::SSLeay (otherwise cpan will go for it...) | |
# 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 | |
# Bug in HTTP-Message-6.17.tar.gz: | |
# | |
# https://github.com/libwww-perl/HTTP-Message/issues/107 | |
# https://github.com/libwww-perl/HTTP-Message/pull/108 | |
# Until fixed use 6.16 | |
# | |
cpan O/OA/OALDERS/HTTP-Message-6.16.tar.gz | |
# 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 -T Cache::Memcached # test fails with ver. 1.30 | |
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 | |
PERL5LIB=".${PERL5LIB:+:$PERL5LIB}" cpan Class::Trigger | |
cpan Clone | |
cpan Config::General | |
cpan Config::Tiny | |
cpan Crypt::OpenSSL::RSA | |
cpan Crypt::OpenSSL::Random | |
cpan Crypt::RC4 | |
cpan DBD::SQLite | |
cpan DBD::mysql | |
cpan DBI | |
cpan File::Flock # required by Daemon::Generic | |
cpan Daemon::Generic | |
cpan Data::Grove | |
cpan Data::ObjectDriver | |
cpan Data::OptList | |
cpan Data::Stag | |
cpan Date::Calendar | |
cpan Date::Parse | |
PERL5LIB=".${PERL5LIB:+:$PERL5LIB}" cpan Test::utf8 # required by Test::File::ShareDir::Dist | |
cpan Test::File::ShareDir::Dist # required by DateTime::Locale | |
cpan DateTime::Locale # required by DateTime | |
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 -f IO::Event # for File::Flock | |
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::Graph::histogram | |
cpan GD::SVG | |
cpan GD::Text | |
cpan Glib | |
cpan Graph | |
cpan Graphics::ColorNames | |
cpan Graphics::ColorNames::HTML | |
cpan Graphics::ColorNames::Windows | |
cpan Graphics::ColorNames::Netscape | |
cpan Graphics::ColorNames::Mozilla | |
cpan Graphics::ColorNames::IE | |
cpan Graphics::ColorNames::SVG | |
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 # note: tests fail if cpan build dir is on nfs | |
cpan HTTP::Daemon | |
cpan HTTP::Date | |
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 | |
# Wants Plack, the other moose-alike monster! (s.a.) | |
# PERL5LIB=".${PERL5LIB:+:$PERL5LIB}" cpan Class::Accessor::Lite # required by JSON::RPC | |
# cpan JSON::RPC | |
cpan JSON::XS | |
cpan LWP | |
cpan LWP::Protocol::https # replaces Crypt::SSL | |
cpan Lingua::EN::Inflect | |
cpan Linux::Inotify2 | |
PERL5LIB=".${PERL5LIB:+:$PERL5LIB}" 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 # doesn't build and is obsolete | |
# cpan Net::SSLeay # the SSLeay-stuff is done at the very beginning (s.a.) | |
cpan Net::Server | |
cpan NetAddr::IP | |
cpan OLE::Storage_Lite | |
cpan Object::Accessor | |
cpan Object::Realize::Later | |
cpan PDF::API2 | |
# cpan PDL # fails in install: "can't write to symdb", weird. | |
cpan PPITerm::UI | |
PERL5LIB=".${PERL5LIB:+:$PERL5LIB}" cpan PPI::Document # required by PPIx::Regexp | |
PERL5LIB=".${PERL5LIB:+:$PERL5LIB}" cpan Task::Weaken # required by PPIx::Regexp | |
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 | |
# Plack - Perl Superglue for Web frameworks and Web Servers (PSGI toolkit) (Holy Moses, does anybody use this) | |
# cpan Plack # Fails, since this is a vintage build, skip this showstopper too. | |
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 Statistics::Distributions | |
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 -f Test::Taint # test sometimes fail, because Test::More sets untainted environment variable TEST_ACTIVE | |
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 -T 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.05.tar.gz || wget https://github.molgen.mpg.de/donald/Donald/archive/1.05.tar.gz -O Donald-1.05.tar.gz | |
test -d Donald-1.05 || tar xf Donald-1.05.tar.gz | |
cd Donald-1.05 | |
cpan . | |
) | |
# cpan PDL::Stats # don't let PDL creep in again (s.a.) | |
( | |
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 https://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 . | |
) | |
# the recent Net-SNMP from sourceforge is dropped from this package | |
# 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 -f XML::DOM::XPath # test fails , install anyway for Bio::FeatureIO | |
cpan Bio::FeatureIO | |
cpan Bio::Tools::EUtilities | |
# Devel::IPerl - Perl language kernel for Jupyter, pulls also moose, takes ages to build -- nope, *NOT* in this package | |
cpan Text::NSP # galonska 29.01.2018 -> helpdesk | |
cpan Excel::Writer::XLSX # klages 20.03.2018, helpdesk | |
# defeat "Can't locate Makefile.PL in @INC", when Build.PL is used | |
PERL5LIB=".${PERL5LIB:+:$PERL5LIB}" cpan Convert::Morse # serious fun, kreitler | |
cpan Math::Amoeba # Multidimensional Function Minimisation (oldie but goldie:), kreitler | |
cpan Crypt::OpenSSL::PBKDF2 # some more crypto stuff, kreitler | |
cpan Crypt::OpenSSL::AES | |
cpan Crypt::Blowfish | |
cpan Crypt::Blowfish_PP | |
cpan Crypt::CAST5 | |
cpan Crypt::DES | |
cpan Crypt::TripleDES | |
cpan Crypt::TripleDES::CBC | |
cpan Crypt::IDEA | |
cpan Crypt::Rijndael | |
cpan Crypt::CBC | |
cpan Crypt::MCrypt | |
cpan OpenOffice::OODoc # The Open OpenDocument Connector | |
# helpdesk Evgeny Muzychenko <muzychen@molgen.mpg.de> 01/10/19 | |
# see https://bionanogenomics.com/support-page/bionano-solve/ | |
# remaining dependencies | |
cpan Config::Simple | |
cpan DateTime::Format::Human::Duration | |
exit |