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.26.1-1.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
528 lines (494 sloc)
13.8 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 | |
PKG=perl | |
VERSION=5.26.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 || 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 | |
# 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. | |
# | |
# | |
#DEBUG#if false; then #################################################### | |
#DEBUG#fi ################################################################ | |
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 | |
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 | |
PERL5LIB=".${PERL5LIB:+:$PERL5LIB}" cpan Crypt::SSLeay | |
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 | |
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::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::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 | |
PERL5LIB=".${PERL5LIB:+:$PERL5LIB}" cpan Class::Accessor::Lite # required by JSON::RPC | |
cpan JSON::RPC | |
cpan JSON::XS | |
cpan LWP | |
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 | |
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 | |
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 | |
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 -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 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 | |
( | |
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 sometimes fails "ranlib: .libs/libnetsnmpmibs.a: Malformed archive" | |
make | |
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 -f XML::DOM::XPath # test fails , install anyway for Bio::FeatureIO | |
cpan Bio::FeatureIO | |
cpan Bio::Tools::EUtilities | |
#cpan Bio::Tools::Run::StandAloneBlast # several tests fail - tools not available 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 | |
# Devel::IPerl -> Markdown::Pod -> Markdent | |
# Markdown::Pod (0.006) does not work with Markdent 0.27 or 0.28 because of this change: | |
# https://github.com/houseabsolute/Markdent/commit/b570af7820aa2358263b5eaf403ec96674edfe58 | |
# | |
PERL5LIB=".${PERL5LIB:+:$PERL5LIB}" cpan ZMQ::Constants # for Devel::IPerl | |
PERL5LIB=".${PERL5LIB:+:$PERL5LIB}" cpan ZMQ::LibZMQ3 # for Devel::IPerl | |
cpan DROLSKY/Markdent-0.26.tar.gz # required by Devel::IPerl - Markdown::Pod -> Markdent. | |
cpan Devel::IPerl | |
exit |