From nobody Fri Mar 25 17:14:24 2022 X-Original-To: dev-commits-ports-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 713A81A2D7DA; Fri, 25 Mar 2022 17:14:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4KQ7xD2Tm9z3mSk; Fri, 25 Mar 2022 17:14:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1648228464; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eCacGkthPTZvfsZKcSngU5ZiZiayx9q88gFC9BuYWJY=; b=MlagRiIMKsnSFbtXArAvtUWDUgooy1DQ8T9IJLGNs7sagCOUI6GYL9Rht3xTGrAlw68nXN WFnEkOu/3c0i2HfADBRjf83M/5o5QB4xtDr01ZNwkJZZQOH3bIKMmXEzYwHdFLaY/xY85A GFwumeqdtbDB255aBNcORh740HJ8/7r2O55Fz5hLgt/V/CUZY2e6t7wYle6DifrOCILInb 1p9rD1MfAhIW3ZKKCGxBW+km7YD3Yqt2LVdihzkCUwSzmcM8pL5CJPker9nYx2BG3xvm5u c9QgZhzedy4cXPLCbJ0Xavg53U5y5ahMKn4HYuX/05HHlWkFwPIFj6cY5Kp1XQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 368A6109E5; Fri, 25 Mar 2022 17:14:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 22PHEO5E016420; Fri, 25 Mar 2022 17:14:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 22PHEOks016419; Fri, 25 Mar 2022 17:14:24 GMT (envelope-from git) Date: Fri, 25 Mar 2022 17:14:24 GMT Message-Id: <202203251714.22PHEOks016419@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Dave Cottlehuber Subject: git: 30bb70e94e1b - main - lang/crystal: fix broken base SSL usage List-Id: Commit messages for all branches of the ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-all@freebsd.org X-BeenThere: dev-commits-ports-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dch X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 30bb70e94e1bed9b4c2953b7be0e56ba7adc902b Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1648228464; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eCacGkthPTZvfsZKcSngU5ZiZiayx9q88gFC9BuYWJY=; b=aYH1FvltZuqNPi7YKwSUVyR+ddPvvgxYrQOHTDN+v7Ch2kTzSMCbGFPPHjTScmYF74zw/d 5N5TRbfU4sRjmjMWdFz0y7nkDEcDHmXJok8xMq3UZmupGJX7XQJC5FXKj1HfUCNunarYj3 +nO48QkkswxqHrcmQOGkGIiU7RaiXdN45tLXQXbl08G+uLEB8yZxtQtdWvvghWkuXKwzB7 v6Hd/C9xx9nBEG98m8wIajqiPC32r7ulI0+1y5cp57crGeVJtNXaeH4NKBO+ASZx7GHhCP OJ47hkoyRxLksZ0Xf1Ct7q3j3xpy4aeWj6X734kPCn416VcOKiDONKP/1nxFqQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1648228464; a=rsa-sha256; cv=none; b=FXXS7/rK1yVxMiLbvh5TSp7pWA8SADX+eIGn6r2SYO93qKuJplBlTkAzKS4/tu2GjMo6o7 70UR8O4b+59LYEtTNkkByDJ/XY8RBbw5c7H8pgp0sKQKP7yJHG+fcGiOgIKeEG53opwLUz 8NT2+td/Fs4MIO2TAc8eF8uYn8f6Q6KoBReAP67Dipp9pu6CudS9CZkzQ7uSC1dgVXyVRn cCQSZAUbpAvjjdXQtnn5NyKCHBJs7NVgAVSj/rjNzriiBC3M7fnsBitnlbYNrZ/LE7F/LR VUToGGDSMuTX6069GKkr1Xx3J8h8xoDyhSWwvPZB2FVX/K/Cua3ZYI+g6ZGjOA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by dch: URL: https://cgit.FreeBSD.org/ports/commit/?id=30bb70e94e1bed9b4c2953b7be0e56ba7adc902b commit 30bb70e94e1bed9b4c2953b7be0e56ba7adc902b Author: Dave Cottlehuber AuthorDate: 2022-03-25 17:14:19 +0000 Commit: Dave Cottlehuber CommitDate: 2022-03-25 17:14:19 +0000 lang/crystal: fix broken base SSL usage crystal needs pkgconfig to determine precisely which SSL variant is present, and patch itself accordingly, but this is not present in FreeBSD base. Patch directly, what would have been provided by pkgconfig, for currently supported FreeBSD versions. PR: 257658 Approved by: greg@unrelenting.technology (maintainer) Differential Revision: https://reviews.freebsd.org/D31435 --- lang/crystal/Makefile | 21 +++++++++++++++- .../files/extra-patch-src_openssl_lib__crypto.cr | 27 +++++++++++++++++++++ .../files/extra-patch-src_openssl_lib__ssl.cr | 28 ++++++++++++++++++++++ 3 files changed, 75 insertions(+), 1 deletion(-) diff --git a/lang/crystal/Makefile b/lang/crystal/Makefile index 46c942add542..be4aa0c53286 100644 --- a/lang/crystal/Makefile +++ b/lang/crystal/Makefile @@ -1,5 +1,6 @@ PORTNAME= crystal DISTVERSION= 1.2.2 +PORTREVISION= 1 CATEGORIES= lang MASTER_SITES= https://dl.unrelenting.technology/crystal/:bootstrap DISTFILES= ${BOOTSTRAP_PATH}:bootstrap @@ -22,7 +23,7 @@ BUILD_DEPENDS= ${LOCALBASE}/bin/llvm-config${LLVM_VERSION}:devel/llvm${BOOTSTRAP git:devel/git RUN_DEPENDS= pkg-config:devel/pkgconf -USES= compiler gmake pkgconfig +USES= compiler gmake pkgconfig ssl USE_GITHUB= yes GH_ACCOUNT= crystal-lang @@ -52,6 +53,15 @@ OPTIONS_SUB= yes IGNORE= not supported on anything but FreeBSD .endif +# crystal needs pkgconfig to determine SSL variants but these are not +# present in FreeBSD base. We splice in the correct info based on +# FreeBSD version and hope it doesn't change during minor releases. +# See post-patch for the substitutions of these patches. +.if ${SSL_DEFAULT} == "base" +EXTRA_PATCHES= ${PATCHDIR}/extra-patch-src_openssl_lib__crypto.cr \ + ${PATCHDIR}/extra-patch-src_openssl_lib__ssl.cr +.endif + post-extract: ${MKDIR} ${WRKSRC}/.build ${CP} ${DISTDIR}/${DIST_SUBDIR}/${BOOTSTRAP_PATH} ${WRKSRC}/.build/crystal @@ -59,6 +69,15 @@ post-extract: ${LN} -s x86_64-freebsd ${WRKSRC}/src/lib_c/aarch64-portbld-freebsd ${LN} -s x86_64-freebsd ${WRKSRC}/src/lib_c/aarch64-freebsd +post-patch: +.if ${SSL_DEFAULT} == "base" && ${OSREL:R} < 15 + @${REINPLACE_CMD} \ + -e 's|CRYSTAL_SSL_VERSION|1.1.1|g' \ + -e 's|CRYSTAL_SSL_LDFLAGS|${OPENSSLLIB}|g' \ + ${WRKSRC}/src/openssl/lib_ssl.cr \ + ${WRKSRC}/src/openssl/lib_crypto.cr +.endif + do-build-DOCS-on: cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} docs \ CRYSTAL_CACHE_DIR="${WRKDIR}/cache" diff --git a/lang/crystal/files/extra-patch-src_openssl_lib__crypto.cr b/lang/crystal/files/extra-patch-src_openssl_lib__crypto.cr new file mode 100644 index 000000000000..d935d28e2021 --- /dev/null +++ b/lang/crystal/files/extra-patch-src_openssl_lib__crypto.cr @@ -0,0 +1,27 @@ +--- src/openssl/lib_crypto.cr.orig 2021-08-08 15:06:11 UTC ++++ src/openssl/lib_crypto.cr +@@ -1,21 +1,11 @@ + {% begin %} + lib LibCrypto +- {% from_libressl = (`hash pkg-config 2> /dev/null || printf %s false` != "false") && +- (`test -f $(pkg-config --silence-errors --variable=includedir libcrypto)/openssl/opensslv.h || printf %s false` != "false") && +- (`printf "#include \nLIBRESSL_VERSION_NUMBER" | ${CC:-cc} $(pkg-config --cflags --silence-errors libcrypto || true) -E -`.chomp.split('\n').last != "LIBRESSL_VERSION_NUMBER") %} +- {% ssl_version = `hash pkg-config 2> /dev/null && pkg-config --silence-errors --modversion libcrypto || printf %s 0.0.0`.split.last.gsub(/[^0-9.]/, "") %} +- +- {% if from_libressl %} +- LIBRESSL_VERSION = {{ ssl_version }} +- OPENSSL_VERSION = "0.0.0" +- {% else %} +- LIBRESSL_VERSION = "0.0.0" +- OPENSSL_VERSION = {{ ssl_version }} +- {% end %} ++ LIBRESSL_VERSION = "0.0.0" ++ OPENSSL_VERSION = "CRYSTAL_SSL_VERSION" + end + {% end %} + +-@[Link(ldflags: "`command -v pkg-config > /dev/null && pkg-config --libs --silence-errors libcrypto || printf %s '-lcrypto'`")] ++@[Link(ldflags: "-LCRYSTAL_SSL_LDFLAGS -lcrypto")] + lib LibCrypto + alias Char = LibC::Char + alias Int = LibC::Int diff --git a/lang/crystal/files/extra-patch-src_openssl_lib__ssl.cr b/lang/crystal/files/extra-patch-src_openssl_lib__ssl.cr new file mode 100644 index 000000000000..54181f2f4b95 --- /dev/null +++ b/lang/crystal/files/extra-patch-src_openssl_lib__ssl.cr @@ -0,0 +1,28 @@ +--- src/openssl/lib_ssl.cr.orig 2021-08-08 15:06:09 UTC ++++ src/openssl/lib_ssl.cr +@@ -6,22 +6,12 @@ require "./lib_crypto" + + {% begin %} + lib LibSSL +- {% from_libressl = (`hash pkg-config 2> /dev/null || printf %s false` != "false") && +- (`test -f $(pkg-config --silence-errors --variable=includedir libssl)/openssl/opensslv.h || printf %s false` != "false") && +- (`printf "#include \nLIBRESSL_VERSION_NUMBER" | ${CC:-cc} $(pkg-config --cflags --silence-errors libssl || true) -E -`.chomp.split('\n').last != "LIBRESSL_VERSION_NUMBER") %} +- {% ssl_version = `hash pkg-config 2> /dev/null && pkg-config --silence-errors --modversion libssl || printf %s 0.0.0`.split.last.gsub(/[^0-9.]/, "") %} +- +- {% if from_libressl %} +- LIBRESSL_VERSION = {{ ssl_version }} +- OPENSSL_VERSION = "0.0.0" +- {% else %} +- LIBRESSL_VERSION = "0.0.0" +- OPENSSL_VERSION = {{ ssl_version }} +- {% end %} ++ LIBRESSL_VERSION = "0.0.0" ++ OPENSSL_VERSION = "CRYSTAL_SSL_VERSION" + end + {% end %} + +-@[Link(ldflags: "`command -v pkg-config > /dev/null && pkg-config --libs --silence-errors libssl || printf %s '-lssl -lcrypto'`")] ++@[Link(ldflags: "-LCRYSTAL_SSL_LDFLAGS -lssl")] + lib LibSSL + alias Int = LibC::Int + alias Char = LibC::Char