#!/bin/sh
# Build and install Perl on Slackware
# originally by:  David Cantrell <david@slackware.com>
# maintained by:  <volkerdi@slackware.com>

CWD=`pwd`
TMP=/tmp
PKG=/

VERSION=5.8.0
ARCH=i486
BUILD=2

DBI=1.37
DBDMYSQL=2.9002

# We remove the old Perl from the system before building
rm -rf /usr/lib/perl5

# Extract the source code:
cd $TMP
rm -rf perl-$VERSION
tar xvzf $CWD/perl-$VERSION.tar.gz

# Configure the source code:
cd perl-$VERSION

# Adjust owner/perms to standard values:
chown -R root.root .
find . -perm 555 -exec chmod 755 {} \;
find . -perm 444 -exec chmod 644 {} \;

# It is often suggested that we add this to the ./Configure:
#            -Dusethreads \
# However, this option is considered experimental, and is not
# recommended for production systems.  As such, we can't add
# to our default perl build.  If you want the option anyway,
# just add it below and rebuild perl.

# We no longer include suidperl.  To quote the INSTALL file:
#
#   Because of the buggy history of suidperl, and the difficulty
#   of properly security auditing as large and complex piece of
#   software as Perl, we cannot recommend using suidperl and the feature
#   should be considered deprecated.
#   Instead use for example 'sudo': http://www.courtesan.com/sudo/

# Configure perl:
            # -Dinstallprefix=/tmp/package-perl/usr
./Configure -de \
            -Dprefix=/usr \
            -Dcccdlflags='-fPIC' \
            -Darchname=i486-linux 

# Build perl
make
make test

# Install perl
make install

# There are also miniperl and microperl.
# I haven't had any requests for them, but would be willing
# to consider adding one or both to the package if anyone
# actually needs them for some reason.
#make microperl

# Symlinks that replace hard links
( cd $PKG/usr/bin
  ln -sf perl$VERSION perl
  ln -sf c2ph pstruct
  ln -sf s2p psed )

# Install documentation
mkdir -p $PKG/usr/doc/perl-$VERSION
cp -a \
  AUTHORS Artistic Copying INSTALL MANIFEST README README.Y2K README.cn README.jp README.ko README.micro README.tw Todo.micro \
  $PKG/usr/doc/perl-$VERSION

## We follow LSB with symlinks in /usr/share:
#( cd $PKG/usr/share
#  mv man .. )
#( cd $PKG/usr/man/man1
#  mkdir foo
#  cp *.1 foo
#  rm *.1
#  mv foo/* .
#  rmdir foo
#  gzip -9 *
#  ln -sf c2ph.1.gz pstruct.1.gz
#  ln -sf s2p.1.gz psed.1.gz )
#( cd $PKG/usr/man/man3
#  gzip -9 * )

( cd $PKG/usr/man/man1
  rm -f pstruct.1 psed.1
  gzip -9 --force c2ph.1 s2p.1
  ln -sf c2ph.1.gz pstruct.1.gz
  ln -sf s2p.1.gz psed.1.gz
)

## Strip everything:
#( cd $PKG
#  find . -type f | xargs file | grep "not strip" | cut -f 1 -d : | xargs strip --strip-unneeded )

#chown -R root.bin $PKG/usr/bin
#rmdir $PKG/usr/share

# Install DBD and DBI-mysql:
cd $TMP
tar xzf $CWD/DBI-${DBI}.tar.gz
cd DBI-${DBI}
chown -R root.root .
perl Makefile.PL
make
make install
cp -a README $PKG/usr/doc/perl-$VERSION/README.DBI-${DBI}
chmod 644 $PKG/usr/doc/perl-$VERSION/README.DBI-${DBI}
cd $TMP
tar xzf $CWD/DBD-mysql-${DBDMYSQL}.tar.gz
cd DBD-mysql-${DBDMYSQL}
chown -R root.root .
perl Makefile.PL
make
make install
cp -a README $PKG/usr/doc/perl-$VERSION/README.DBD-mysql-${DBDMYSQL}
chmod 644 $PKG/usr/doc/perl-$VERSION/README.DBD-mysql-${DBDMYSQL}

# Insert the slack-desc:
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc

