diff --git a/openssl/build.sh b/openssl/build.sh index 7ea0516..e24e8ba 100755 --- a/openssl/build.sh +++ b/openssl/build.sh @@ -8,11 +8,11 @@ # # Check the following 4 variables before running the script topdir=openssl -version=0.9.6k +version=0.9.7c pkgver=1 source[0]=$topdir-$version.tar.gz # If there are no patches, simply comment this -patch[0]=openssl-0.9.6k-soversion.patch +patch[0]=openssl-0.9.7c-soversion.patch patch[1]=openssl-0.9.6k-Configure.patch # Source function library @@ -34,13 +34,23 @@ pkgcat_lib="library" pkgvendor_lib="http://www.openssl.org" pkgdesc_lib="Toolkit implementing SSL v2/v3 and TLS v1" -# 0.9.6(a-?) is sover 2 -# 0.9.7(a-?) is sover 4 -baseversion=0.9.6 -sover=2 +# shared library binary compatibility is not guaranteed +# Play it safe and up the soversion with each release +# 0.9.6(a-b) is sover 2 (RH) +# 0.9.6c-j was never built at SB with sh libs +# 0.9.6k is sover 3 (RH uses this for 0.9.6c) +# 0.9.7a is sover 4 (on RH, never built with sh libs on SB) +# 0.9.7b is sover 5 (never built at SB) +# 0.9.7c is sover 6 + +baseversion=0.9.7 +sover=6 +liblist="libssl libcrypto" lib_stage=$BUILDPKG_BASE/$topdir/stage.lib +MV=mv + # Define script functions and register them METHODS="" reg() { @@ -51,6 +61,8 @@ reg prep prep() { generic_prep + # Set correct sover in Makefile.org + perl -i -pe "s/SHLIB_SOVER\=/SHLIB_SOVER\=$sover/g" $srcdir/$topsrcdir/Makefile.org } reg build @@ -59,46 +71,60 @@ build() setdir source ./config --prefix=$prefix --openssldir=$prefix/ssl shared $MAKE_PROG - $MAKE_PROG -C test apps tests +# $MAKE_PROG -C test apps tests } reg install install() { setdir source + clean stage $MAKE_PROG INSTALL_PREFIX=$stagedir install build-shared setdir $stagedir$prefix/lib - liblist="libssl libcrypto" + chmod a+x pkgconfig for i in $liblist do - mv $i.so.$baseversion $i.so.$version + $MV $i.so.$baseversion $i.so.$version rm -f $i.so.$sover rm -f $i.so ln -s $i.so.$version $i.so.$sover ln -s $i.so.$sover $i.so done rmdir $stagedir$prefix/ssl/lib - mv $stagedir$prefix/ssl/man $stagedir$prefix + $MV $stagedir$prefix/ssl/man $stagedir$prefix setdir $stagedir$prefix/man for j in $(ls -1d man?) do cd $j - for x in * + for manpage in * do - mv $x $x"ssl" + if [ -L "${manpage}" ]; then + TARGET=`ls -l "${manpage}" | awk '{ print $NF }'` + ln -snf "${TARGET}"ssl "${manpage}"ssl + rm -f "${manpage}" + else + $MV "$manpage" "$manpage""ssl" + fi done cd .. done + # A few stupid manpages left that pkgproto can't deal with + setdir $stagedir$prefix/man/man3 + mv "EVP_MD_CTX_copy_ex EVP_MD_CTX_copy.3ssl" "EVP_MD_CTX_copy_ex_EVP_MD_CTX_copy.3ssl" + mv "UI_construct_prompt UI_add_user_data.3ssl" "UI_construct_prompt_UI_add_user_data.3ssl" + setdir $stagedir$prefix/man/man7 + mv "Modes of DES.7ssl" "Modes_of_DES.7ssl" } reg pack pack() { - MV=mv # Split up the stagedir - mkdir -p $lib_stage$prefix - $MV $stagedir$prefix/lib $lib_stage$prefix - + # The bare .so and .a used for development should only be available + # if the matching headers etc. is installed so they're not put in the lib package + mkdir -p $lib_stage$prefix/lib + $MV $stagedir$prefix/lib/*.so.* $lib_stage$prefix + # Create runtime package echo "P $pkgname_lib $name_lib" > $metadir/depend generic_pack