aboutsummaryrefslogtreecommitdiffstats
path: root/security/openssl/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'security/openssl/Makefile')
-rw-r--r--security/openssl/Makefile177
1 files changed, 131 insertions, 46 deletions
diff --git a/security/openssl/Makefile b/security/openssl/Makefile
index 374fe303ec4c..40f4350febf6 100644
--- a/security/openssl/Makefile
+++ b/security/openssl/Makefile
@@ -2,8 +2,10 @@
# $FreeBSD$
PORTNAME= openssl
-PORTVERSION= 1.1.0
-#DISTVERSIONSUFFIX= a
+PORTVERSION= 1.0.2
+DISTVERSIONSUFFIX= h
+PORTREVISION= 14
+PORTEPOCH= 1
CATEGORIES= security devel
MASTER_SITES= http://www.openssl.org/source/ \
ftp://ftp.openssl.org/source/ \
@@ -22,13 +24,8 @@ CONFLICTS= libressl-[0-9]* \
libressl-devel-[0-9]* \
openssl-devel-[0-9]*
-HAS_CONFIGURE= yes
-CONFIGURE_SCRIPT= config
-CONFIGURE_ENV= PERL="${PERL}"
-CONFIGURE_ARGS= --openssldir=${OPENSSLDIR} ${EXTRACONFIGURE}
-
-OPTIONS_DEFINE= SHARED THREADS SSE2 ASM ZLIB SCTP SSL3 RFC3779 RC5 DOCS MAN3
-OPTIONS_DEFAULT=SHARED THREADS SSE2 SCTP MAN3
+OPTIONS_DEFINE= SHARED THREADS SSE2 ASM PADLOCK ZLIB GMP SCTP SSL2 SSL3 RFC3779 MD2 RC5 EXPCIPHERS DOCS MAN3
+OPTIONS_DEFAULT=SHARED THREADS SSE2 SCTP SSL2 SSL3 MD2 MAN3
OPTIONS_DEFINE_i386= I386
.for a in amd64 ia64
OPTIONS_DEFINE_${a}= EC
@@ -44,43 +41,28 @@ OPTIONS_SUB= yes
I386_DESC?= Optimize for i386 (instead of i486+)
SSE2_DESC?= runtime SSE2 detection
ASM_DESC?= optimized Assembler code
+PADLOCK_DESC?= VIA Padlock support
SHARED_DESC?= build of shared libs
ZLIB_DESC?= zlib compression support
GMP_DESC?= gmp support (LGPLv3)
SCTP_DESC?= SCTP protocol support
+SSL2_DESC?= SSLv2 protocol support
SSL3_DESC?= SSLv3 protocol support
RFC3779_DESC?= RFC3779 support (BGP)
+MD2_DESC?= MD2 hash (obsolete)
RC5_DESC?= RC5 cipher (patented)
+EXPCIPHERS_DESC?= Include experimental ciphers
EC_DESC?= Optimize NIST elliptic curves
MAN3_DESC?= Install API manpages (section 3)
-USES= cpe perl5
+GMP_LIB_DEPENDS= libgmp.so:math/gmp
+
+USES= perl5 cpe
USE_PERL5= build
MAKE_ARGS+= WHOLE_ARCHIVE_FLAG=--whole-archive
MAKE_ENV+= LIBRPATH="${PREFIX}/lib" GREP_OPTIONS=
SUB_FILES= pkg-message
-SHARED_CONFIGURE_ON= shared
-SHARED_PLIST_SUB= SHLIBVER=${OPENSSL_SHLIBVER}
-THREADS_CONFIGURE_ON= threads
-THREADS_CONFIGURE_OFF= no-threads
-ZLIB_CONFIGURE_ON= zlib zlib-dynamic
-ZLIB_CONFIGURE_OFF= no-zlib no-zlib-dynamic
-SCTP_CONFIGURE_ON= sctp
-SCTP_CONFIGURE_OFF= no-sctp
-SSE2_CONFIGURE_OFF= no-sse2
-ASM_CONFIGURE_ON= asm
-ASM_CONFIGURE_OFF= no-asm
-SSL3_CONFIGURE_ON= enable-ssl3
-SSL3_CONFIGURE_OFF= no-ssl3 no-ssl3-method
-RFC3779_CONFIGURE_ON= enable-rfc3779
-RFC3779_CONFIGURE_OFF= no-rfc3779
-RC5_CONFIGURE_ON= enable-rc5
-RC5_CONFIGURE_OFF= no-rc5
-I386_CONFIGURE_ON= 386
-EC_CONFIGURE_ON= enable-ec_nistp_64_gcc_128
-EC_CONFIGURE_OFF= no-ec_nistp_64_gcc_128
-
.include <bsd.port.pre.mk>
.if ${PREFIX} == /usr
@@ -93,17 +75,103 @@ PLIST_SUB+= OPENSSLDIR=${OPENSSLDIR:S=^${PREFIX}/==}
OPENSSL_BASE_SONAME!= readlink ${DESTDIR}/usr/lib/libcrypto.so || true
OPENSSL_SHLIBVER_BASE= ${OPENSSL_BASE_SONAME:E}
OPENSSL_BASE_SOPATH= ${OPENSSL_BASE_SONAME:H}
+OPENSSL_SHLIBVER?= 8
+
+.if ${PORT_OPTIONS:MI386}
+.if ${ARCH} == "i386"
+EXTRACONFIGURE+= 386
+.endif
+.endif
-.include "version.mk"
+.if empty(PORT_OPTIONS:MSSE2)
+# disable runtime SSE2 detection
+EXTRACONFIGURE+= no-sse2
+.endif
.if ${PORT_OPTIONS:MASM}
BROKEN_sparc64= option ASM generates illegal instructions
+EXTRACONFIGURE+= enable-asm
+.else
+EXTRACONFIGURE+= no-asm
+.endif
+
+.if ${PORT_OPTIONS:MTHREADS}
+EXTRACONFIGURE+= threads
+.else
+EXTRACONFIGURE+= no-threads
.endif
.if ${PORT_OPTIONS:MSHARED}
+EXTRACONFIGURE+= shared
+MAKE_ENV+= SHLIBVER=${OPENSSL_SHLIBVER}
+PLIST_SUB+= SHLIBVER=${OPENSSL_SHLIBVER}
USE_LDCONFIG= yes
.endif
+.if ${PORT_OPTIONS:MZLIB}
+EXTRACONFIGURE+= zlib zlib-dynamic
+.else
+EXTRACONFIGURE+= no-zlib no-zlib-dynamic
+.endif
+
+.if ${PORT_OPTIONS:MSCTP}
+EXTRACONFIGURE+= sctp
+.else
+EXTRACONFIGURE+= no-sctp
+.endif
+
+.if ${PORT_OPTIONS:MSSL2}
+EXTRACONFIGURE+= enable-ssl2
+.else
+EXTRACONFIGURE+= no-ssl2
+.endif
+
+.if ${PORT_OPTIONS:MSSL3}
+EXTRACONFIGURE+= enable-ssl3
+.else
+EXTRACONFIGURE+= no-ssl3 no-ssl3-method
+.endif
+
+.if ${PORT_OPTIONS:MMD2}
+EXTRACONFIGURE+= enable-md2
+.else
+EXTRACONFIGURE+= no-md2
+.endif
+
+.if ${PORT_OPTIONS:MRC5}
+EXTRACONFIGURE+= enable-rc5
+.else
+EXTRACONFIGURE+= no-rc5
+.endif
+
+.if ${PORT_OPTIONS:MPADLOCK}
+PATCH_DIST_STRIP= -p1
+PATCH_SITES+= http://git.alpinelinux.org/cgit/aports/plain/main/openssl/:padlock
+PATCHFILES+= 1001-crypto-hmac-support-EVP_MD_CTX_FLAG_ONESHOT-and-set-.patch:padlock \
+ 1002-backport-changes-from-upstream-padlock-module.patch:padlock \
+ 1003-engines-e_padlock-implement-sha1-sha224-sha256-accel.patch:padlock \
+ 1004-crypto-engine-autoload-padlock-dynamic-engine.patch:padlock
+.endif
+
+.if ${PORT_OPTIONS:MGMP}
+EXTRACONFIGURE+= enable-gmp -I${LOCALBASE}/include
+IGNORE= can not be linked because GMP is LGPLv3
+.else
+EXTRACONFIGURE+= no-gmp
+.endif
+
+.if ${PORT_OPTIONS:MRFC3779}
+EXTRACONFIGURE+= enable-rfc3779
+.else
+EXTRACONFIGURE+= no-rfc3779
+.endif
+
+.if ${PORT_OPTIONS:MEC}
+EXTRACONFIGURE+= enable-ec_nistp_64_gcc_128
+.else
+EXTRACONFIGURE+= no-ec_nistp_64_gcc_128
+.endif
+
.if ${OPENSSL_SHLIBVER_BASE} > ${OPENSSL_SHLIBVER}
pre-everything::
@${ECHO_CMD} "#"
@@ -116,30 +184,47 @@ pre-everything::
.endif
post-patch:
- ${REINPLACE_CMD} \
- -e 's|^MANDIR=.*$$|MANDIR=$$(INSTALLTOP)/man|' \
- -e 's| install_html_docs$$||' \
- -e 's|$$(LIBDIR)/pkgconfig|libdata/pkgconfig|g' \
- ${WRKSRC}/Configurations/unix-Makefile.tmpl
+ ${REINPLACE_CMD} -e 's|m4 -B 8192|m4|g' \
+ ${WRKSRC}/crypto/des/Makefile
+ ${REINPLACE_CMD} -e 's|SHLIB_VERSION_NUMBER "1.0.0"|SHLIB_VERSION_NUMBER "${OPENSSL_SHLIBVER}"|' \
+ ${WRKSRC}/crypto/opensslv.h
+ ${REINPLACE_CMD} -e 's|ERR_R_MALLOC_ERROR|ERR_R_MALLOC_FAILURE|' \
+ ${WRKSRC}/crypto/bio/bss_dgram.c
+.if ${PORT_OPTIONS:MEXPCIPHERS}
+ ${REINPLACE_CMD} -e 's|TLS1_ALLOW_EXPERIMENTAL_CIPHERSUITES 0|TLS1_ALLOW_EXPERIMENTAL_CIPHERSUITES 1|' \
+ ${WRKSRC}/ssl/tls1.h
+.endif
-post-configure:
+do-configure:
+ ${REINPLACE_CMD} -e "s|options 386|options|" \
+ ${WRKSRC}/config
+ cd ${WRKSRC} \
+ && ${SETENV} CC="${CC}" FREEBSDCC="${CC}" CFLAGS="${CFLAGS}" PERL="${PERL}" \
+ ./config --prefix=${PREFIX} --openssldir=${OPENSSLDIR} \
+ --install_prefix=${STAGEDIR} \
+ -L${PREFIX}/lib ${EXTRACONFIGURE}
${REINPLACE_CMD} \
- -e 's|.(SHLIB_MAJOR)[.].(SHLIB_MINOR)|${OPENSSL_SHLIBVER}|g' \
+ -e 's|^MANDIR=.*$$|MANDIR=$$(PREFIX)/man|' \
+ -e 's|$$(LIBDIR)/pkgconfig|libdata/pkgconfig|g' \
+ -e 's|LIBVERSION=[^ ]* |LIBVERSION=${OPENSSL_SHLIBVER} |' \
${WRKSRC}/Makefile
- ${REINPLACE_CMD} \
- -e 's|SHLIB_VERSION_NUMBER "1.1"|SHLIB_VERSION_NUMBER "${OPENSSL_SHLIBVER}"|' \
- ${WRKSRC}/include/openssl/opensslv.h
post-install:
- ${RM} -f ${STAGEDIR}${OPENSSLDIR}/openssl.cnf
- ${RM} -f ${STAGEDIR}${PREFIX}/man/man7/ct.7.gz
-
-post-install-MAN3-off:
+.if ${PORT_OPTIONS:MSHARED}
+.for i in libcrypto libssl
+ ${INSTALL_DATA} ${WRKSRC}/$i.so.${OPENSSL_SHLIBVER} ${STAGEDIR}${PREFIX}/lib
+ ${LN} -sf $i.so.${OPENSSL_SHLIBVER} ${STAGEDIR}${PREFIX}/lib/$i.so
+.endfor
+.endif
.if empty(PORT_OPTIONS:MMAN3)
${RM} -rf ${STAGEDIR}/${PREFIX}/man/man3
${REINPLACE_CMD} -e 's|^man/man3/.*||' ${TMPPLIST}
.endif
+post-install-DOCS-on:
+ ${MKDIR} ${STAGEDIR}${DOCSDIR}
+ ${INSTALL_DATA} ${WRKSRC}/doc/openssl.txt ${STAGEDIR}${DOCSDIR}/
+
test: build
cd ${WRKSRC} && ${MAKE} test