#!/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 # 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.7l ARCH=${ARCH:-i486} BUILD=1_slack10.1 CWD=`pwd` 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.7: zcat $CWD/openssl.soname.diff.gz | patch -p1 --backup --verbose --suffix=.orig || exit # Fix a bug where an uninitialized pointer could be freed: zcat $CWD/openssl-0.9.7.fix.uninitialized.pointer.diff.gz | patch -p1 --backup --verbose --suffix=.orig || exit 1 if [ "$ARCH" = "i486" ]; then # Build with -march=i486 -mcpu=i686: zcat $CWD/openssl.opts.diff.gz | patch -p1 --backup --verbose --suffix=.orig 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 -j4 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 chmod 755 usr/lib/pkgconfig 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 -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 cat $CWD/slack-desc.openssl-solibs > install/slack-desc makepkg -l y -c n ../${NAME2}.tgz