# $Id$ PNAME="openssl" PVER="1.1.1" PBUILD="r1" PCAT="dev-libs" DESCRIPTION="Provides libraries for SSL v2/3 and TLS v1." HOMEPAGE="http://www.openssl.org/" DEPEND=">= virtual/glibc" SDEPEND=">= dev-lang/perl-5 >= virtual/sed" SRCFILE="${PNAME}-${PVER}.tar.gz" SRCDIR="${BUILDDIR}/${PNAME}-${PVER}" sminclude multilib mbuild mtools msetfeature "!check" MKCERTS_CVS_REV=1.3 SRC_URI=( http://www.openssl.org/source/${SRCFILE} mirror://${PNAME}/${SRCFILE} mirror://${PNAME}/openssl-make-certs.sh-${MKCERTS_CVS_REV} ) UP2DATE="updatecmd http://ftp.openssl.org/source/ | grep '${PNAME}-[0-9]' | highesttarball gz" # pkgs to rebuild: openssh, openvpn, proftpd, dovecot, subversion, neon, nxssh src_compile() { local abi local libdir local myopts local myoptflags for abi in ${MULTILIB_ABIS} do cd ${SRCDIR}-${abi} case ${abi} in m32) libdir="lib" ;; m64) libdir="lib64" ;; esac myopts="linux-${ARCH}" [[ ${ARCH} = i*86 ]] && myopts="linux-elf" if [[ ${ARCH} = x86_64 ]] && [[ ${abi} = m32 ]] then myopts="linux-elf" fi # disable ssl3 myoptflags+=" no-ssl3-method" # enable 64 bit ec_nistp if [[ ${ARCH} = x86_64 ]] && [[ ${abi} = m64 ]] then myoptflags+=" enable-ec_nistp_64_gcc_128" fi echo "Compiler: ${myopts}" abi-${abi} ./Configure \ --openssldir=/etc/ssl \ --prefix=/usr \ --libdir=${libdir} \ shared ${myoptflags} threads zlib ${myopts} || die make depend || die done mmake -j1 MANDIR=/usr/share/man || die } src_install() { cd ${SRCDIR} # needed directories minstalldir /etc/ssl || die mmake -j1 DESTDIR=${BINDIR} MANDIR=/usr/share/man install || die # fix permissions mchmod 0755 /usr/$(mlibdir)/pkgconfig || die # # install certs, make install left them out # cp -r certs ${BINDIR}/etc/ssl || die # rm -r ${BINDIR}/etc/ssl/certs/{demo,expired} || die # keep these directories mkeepdir /etc/ssl/certs || die mkeepdir /etc/ssl/private || die mchmod 0700 /etc/ssl/private || die # install our simple certificate creation script minstalldir /usr/sbin || die minstallexec -s openssl-make-certs.sh-${MKCERTS_CVS_REV} /usr/sbin/openssl-make-certs || die # namespace openssl programs to prevent conflicts with other man pages (from gentoo) cd ${BINDIR}/usr/share/man local m d s for m in $(find . -type f | xargs grep -L '#include') do d=${m%/*} ; d=${d#./} ; m=${m##*/} [[ ${m} == openssl.1* ]] && continue [[ -n $(find -L ${d} -type l) ]] && die "erp, broken links already!" mv ${d}/{,ssl-}${m} # fix up references to renamed man pages sed -i '/^[.]SH "SEE ALSO"/,/^[.]/s:\([^(, ]*(1)\):ssl-\1:g' ${d}/ssl-${m} ln -s ssl-${m} ${d}/openssl-${m} # locate any symlinks that point to this man page ... we assume # that any broken links are due to the above renaming for s in $(find -L ${d} -type l) do s=${s##*/} rm -f ${d}/${s} ln -s ssl-${m} ${d}/ssl-${s} ln -s ssl-${s} ${d}/openssl-${s} done done [[ -n $(find -L ${d} -type l) ]] && die "broken manpage links found :(" # install docs minstalldocs CHANGES* FAQ LICENSE NEWS README doc/*.txt || die }