#!/bin/sh
# Copyright 2000 BSDi, Inc. Concord, CA, USA
# Copyright 2001, 2002 Slackware Linux, Inc.  Concord, CA, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
#
#  THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
#  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
#  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO
#  EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
#  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
#  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
#  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
#  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
#  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

VERSION=0.9.7a
ARCH=i386
BUILD=2

CWD=`pwd`
PKG1=/tmp/package-openssl
PKG2=/tmp/package-ossllibs
NAME1=openssl-$VERSION-$ARCH-$BUILD
NAME2=openssl-solibs-$VERSION-$ARCH-$BUILD

# This is used to fix manpage links:
relink() {
  ORIGLINE=`/bin/ls -l $1`
  LINK=`echo $ORIGLINE | cut -f 9 -d ' '`.gz
  FILE=`echo $ORIGLINE | cut -f 11 -d ' '`.gz
  rm $1
  ln -sf $FILE $LINK
}

cd /tmp
rm -rf $PKG1 $PKG2 openssl-$VERSION
tar xjvf $CWD/openssl-$VERSION.tar.bz2
cd openssl-$VERSION
# Use .so.0, not .so.0.9.7:
zcat $CWD/openssl-$VERSION-soname.diff.gz | patch -p1 --backup --verbose --suffix=.orig
# Build with -march=i386 -mcpu=i686:
zcat $CWD/openssl-$VERSION-opts.diff.gz | patch -p1 --backup --verbose --suffix=.orig
chown -R root.root .
mkdir -p $PKG1/usr/doc/openssl-$VERSION
cp -a CHANGES CHANGES.SSLeay FAQ INSTALL INSTALL.MacOS INSTALL.VMS INSTALL.W32 \
  LICENSE NEWS README README.ENGINE doc $PKG1/usr/doc/openssl-$VERSION
find $PKG1/usr/doc/openssl-$VERSION -type d -exec chmod 755 {} \;
find $PKG1/usr/doc/openssl-$VERSION -type f -exec chmod 644 {} \;
# These are the known patent issues with OpenSSL:
# name   #         expires
# MDC-2: 4,908,861 13/03/2007, not included.
# IDEA:  5,214,703 25/05/2010, not included.
# RC5:   5,724,428 03/03/2015, not included.
./config --prefix=/usr --openssldir=/etc/ssl 386 no-mdc2 no-idea no-rc5 shared
make
make install INSTALL_PREFIX=$PKG1
strip --strip-unneeded $PKG1/usr/lib/lib*.so.*.*.* $PKG1/usr/bin/*
( cd $PKG1/usr/lib ; ln -sf libcrypto.so.0 libcrypto.so )
( cd $PKG1/usr/lib ; ln -sf libssl.so.0 libssl.so )
chown -R root.bin $PKG1/usr/bin
mv $PKG1/etc/ssl/man $PKG1/usr
( cd $PKG1/usr/man/man1 ; mv passwd.1 ssl_passwd.1 )
( cd $PKG1/usr/man/man3 ; mv rand.3 ssl_rand.3 )
gzip -9 $PKG1/usr/man/man?/*
for mandir in man1 man3 man7 ; do
  ( cd $PKG1/usr/man/$mandir
    for page in *.? ; do
      relink $page
    done
  )
done
cd $PKG1
mkdir -p install
cat $CWD/slack-desc.openssl > install/slack-desc
makepkg -l y -c n ../${NAME1}.tgz

# Make runtime package:
mkdir -p $PKG2/usr/lib
( cd usr/lib ; cp -a lib*.so.*.*.* $PKG2/usr/lib )
( cd $PKG2/usr/lib ; ldconfig . )
mkdir -p $PKG2/etc
( cd $PKG2/etc ; cp -a $PKG1/etc/ssl . )
mkdir -p $PKG2/usr/doc/openssl-$VERSION
( cd /tmp/openssl-$VERSION
  cp -a CHANGES CHANGES.SSLeay FAQ INSTALL INSTALL.MacOS INSTALL.VMS INSTALL.W32 \
  LICENSE NEWS README README.ENGINE $PKG2/usr/doc/openssl-$VERSION
)
find $PKG2/usr/doc/openssl-$VERSION -type d -exec chmod 755 {} \;
find $PKG2/usr/doc/openssl-$VERSION -type f -exec chmod 644 {} \;
cd $PKG2
mkdir -p install
cat $CWD/slack-desc.openssl-solibs > install/slack-desc
makepkg -l y -c n ../${NAME2}.tgz