summaryrefslogtreecommitdiff
path: root/dev-libs/openssl/openssl-1.1.1o.ebuild
diff options
context:
space:
mode:
Diffstat (limited to 'dev-libs/openssl/openssl-1.1.1o.ebuild')
-rw-r--r--dev-libs/openssl/openssl-1.1.1o.ebuild46
1 files changed, 33 insertions, 13 deletions
diff --git a/dev-libs/openssl/openssl-1.1.1o.ebuild b/dev-libs/openssl/openssl-1.1.1o.ebuild
index 5b19fd948893..730dfb22685e 100644
--- a/dev-libs/openssl/openssl-1.1.1o.ebuild
+++ b/dev-libs/openssl/openssl-1.1.1o.ebuild
@@ -3,20 +3,21 @@
EAPI="7"
-inherit flag-o-matic toolchain-funcs multilib-minimal verify-sig
+inherit edo flag-o-matic toolchain-funcs multilib-minimal verify-sig
MY_P=${P/_/-}
DESCRIPTION="full-strength general purpose cryptography library (including SSL and TLS)"
HOMEPAGE="https://www.openssl.org/"
SRC_URI="mirror://openssl/source/${MY_P}.tar.gz
+ https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-test-fixes-expiry.patch.xz
verify-sig? ( mirror://openssl/source/${MY_P}.tar.gz.asc )"
VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/openssl.org.asc
LICENSE="openssl"
SLOT="0/1.1" # .so version of libssl/libcrypto
[[ "${PV}" = *_pre* ]] || \
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
IUSE="+asm rfc3779 sctp cpu_flags_x86_sse2 sslv3 static-libs test tls-compression tls-heartbeat vanilla verify-sig weak-ssl-ciphers"
RESTRICT="!test? ( test )"
@@ -34,11 +35,6 @@ BDEPEND="
verify-sig? ( sec-keys/openpgp-keys-openssl )"
PDEPEND="app-misc/ca-certificates"
-PATCHES=(
- "${FILESDIR}"/${PN}-1.1.0j-parallel_install_fix.patch #671602
- "${FILESDIR}"/${PN}-1.1.1i-riscv32.patch
-)
-
S="${WORKDIR}/${MY_P}"
# force upgrade to prevent broken login, bug 696950
@@ -48,6 +44,12 @@ MULTILIB_WRAPPED_HEADERS=(
usr/include/openssl/opensslconf.h
)
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.1.0j-parallel_install_fix.patch #671602
+ "${FILESDIR}"/${PN}-1.1.1i-riscv32.patch
+ "${WORKDIR}"/${P}-test-fixes-expiry.patch
+)
+
pkg_setup() {
[[ ${MERGE_TYPE} == binary ]] && return
@@ -62,6 +64,16 @@ pkg_setup() {
fi
}
+src_unpack() {
+ # Can delete this once test fix patch is dropped
+ if use verify-sig ; then
+ # Needed for downloaded patch (which is unsigned, which is fine)
+ verify-sig_verify_detached "${DISTDIR}"/${P}.tar.gz{,.asc}
+ fi
+
+ default
+}
+
src_prepare() {
# allow openssl to be cross-compiled
cp "${FILESDIR}"/gentoo.config-1.0.2 gentoo.config || die
@@ -106,10 +118,20 @@ src_prepare() {
# and 'make depend' uses -Werror for added fun (#417795 again)
[[ ${CC} == *clang* ]] && append-flags -Qunused-arguments
+ # We really, really need to build OpenSSL w/ strict aliasing disabled.
+ # It's filled with violations and it *will* result in miscompiled
+ # code. This has been in the ebuild for > 10 years but even in 2022,
+ # it's still relevant:
+ # - https://github.com/llvm/llvm-project/issues/55255
+ # - https://github.com/openssl/openssl/issues/18225
+ # Don't remove the no strict aliasing bits below!
+ filter-flags -fstrict-aliasing
append-flags -fno-strict-aliasing
- append-flags $(test-flags-CC -Wa,--noexecstack)
+
append-cppflags -DOPENSSL_NO_BUF_FREELISTS
+ append-flags $(test-flags-CC -Wa,--noexecstack)
+
# Prefixify Configure shebang (#141906)
sed \
-e "1s,/usr/bin/env,${EPREFIX}&," \
@@ -150,7 +172,6 @@ multilib_src_configure() {
tc-export CC AR RANLIB RC
use_ssl() { usex $1 "enable-${2:-$1}" "no-${2:-$1}" " ${*:3}" ; }
- echoit() { echo "$@" ; "$@" ; }
local krb5=$(has_version app-crypt/mit-krb5 && echo "MIT" || echo "Heimdal")
@@ -172,8 +193,7 @@ multilib_src_configure() {
# Don't set it without thorough revdeps testing.
# Make sure user flags don't get added *yet* to avoid duplicated
# flags.
- CFLAGS= LDFLAGS= echoit \
- ./${config} \
+ CFLAGS= LDFLAGS= edo ./${config} \
${sslout} \
$(use cpu_flags_x86_sse2 || echo "no-sse2") \
enable-camellia \
@@ -191,14 +211,14 @@ multilib_src_configure() {
$(use_ssl asm) \
$(use_ssl rfc3779) \
$(use_ssl sctp) \
+ $(use test || echo "no-tests") \
$(use_ssl tls-compression zlib) \
$(use_ssl tls-heartbeat heartbeats) \
$(use_ssl weak-ssl-ciphers) \
--prefix="${EPREFIX}"/usr \
--openssldir="${EPREFIX}"${SSL_CNF_DIR} \
--libdir=$(get_libdir) \
- shared threads \
- || die
+ shared threads
# Clean out hardcoded flags that openssl uses
local DEFAULT_CFLAGS=$(grep ^CFLAGS= Makefile | LC_ALL=C sed \