#!/bin/sh # Copyright 2000 BSDi, Inc. Concord, CA, USA # Copyright 2001, 2002 Slackware Linux, Inc. Concord, CA, USA # Copyright 2005, 2006 Patrick J. Volkerding, Sebeka, MN, USA # Copyright 2006 Frederick P. Emmott # 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. # Set initial variables: CWD=$(pwd) TMP=${TMP:-/tmp} VERSION=${VERSION:-0.9.8d} ARCH=${ARCH:-x86_64} BUILD=${BUILD:-1} PKG1=$TMP/package-openssl PKG2=$TMP/package-ossllibs NAME1=openssl-$VERSION-$ARCH-$BUILD NAME2=openssl-solibs-$VERSION-$ARCH-$BUILD # So that ls has the right field counts for parsing... export LC_ALL=C # 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 if [ -r $FILE ]; then ln -sf $FILE $LINK fi } 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.8: zcat $CWD/openssl.soname.diff.gz | patch -p1 --backup --verbose --suffix=.orig || exit 1 # Fix a bug where an uninitialized pointer could be freed: zcat $CWD/openssl-0.9.8.fix.uninitialized.pointer.diff.gz | patch -p1 --backup --verbose --suffix=.orig || exit 1 if [ "$ARCH" = "i486" ]; then # Build with -march=i486 -mtune=i686: zcat $CWD/openssl.optsx86.diff.gz | patch -p1 --backup --verbose --suffix=.orig || exit 1 fi 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 no-mdc2 no-idea no-rc5 shared make depend || exit 1 make || exit 1 make install INSTALL_PREFIX=$PKG1 || exit 1 ( cd $PKG1/usr; mv lib lib64 ) mv $PKG1/etc/ssl/openssl.cnf $PKG1/etc/ssl/openssl.cnf.new strip --strip-unneeded $PKG1/usr/lib64/lib*.so.*.*.* $PKG1/usr/bin/* ( cd $PKG1/usr/lib64 ; ldconfig -l * ) ( cd $PKG1/usr/lib64 ; ln -sf libcrypto.so.0 libcrypto.so ) ( cd $PKG1/usr/lib64 ; ln -sf libssl.so.0 libssl.so ) 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 chmod 755 usr/lib64/pkgconfig mkdir -p install zcat $CWD/doinst.sh.gz > install/doinst.sh cat $CWD/slack-desc.openssl > install/slack-desc makepkg -l y -c n ../${NAME1}.tgz # Make runtime package: mkdir -p $PKG2/usr/lib64 ( cd usr/lib64 ; cp -a lib*.so.*.*.* $PKG2/usr/lib64 ) ( cd $PKG2/usr/lib64 ; ldconfig -l * ) 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 zcat $CWD/doinst.sh.gz > install/doinst.sh cat $CWD/slack-desc.openssl-solibs > install/slack-desc makepkg -l y -c n ../${NAME2}.tgz