openssh: add version 9.4p1 and fix compile issue with new zlib-1.3 (#40174)

The fix for the compile issue was improved by Bernhard Kaindl.
He also added to fix two classes of other build fails:
- add missing openssl dependency version limit to older openssh versions
- add missing -fcommon for new compilers building old openssh versions

Co-authored-by: snehring <snehring@iastate.edu>
This commit is contained in:
Bernhard Kaindl 2023-09-25 08:30:10 +02:00 committed by GitHub
parent b57c2a10d4
commit 3d2c779b87
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -23,6 +23,7 @@ class Openssh(AutotoolsPackage):
tags = ["core-packages"]
version("9.4p1", sha256="3608fd9088db2163ceb3e600c85ab79d0de3d221e59192ea1923e23263866a85")
version("9.3p1", sha256="e9baba7701a76a51f3d85a62c383a3c9dcd97fa900b859bc7db114c1868af8a8")
version("9.2p1", sha256="3f66dbf1655fb45f50e1c56da62ab01218c228807b21338d634ebcdf9d71cf46")
version("9.1p1", sha256="19f85009c7e3e23787f0236fbb1578392ab4d4bf9f8ec5fe6bc1cd7e8bfdd288")
@ -54,6 +55,9 @@ class Openssh(AutotoolsPackage):
depends_on("krb5+shared", when="+gssapi")
depends_on("openssl@:1.0", when="@:7.7p1")
depends_on("openssl@:1.1", when="@:7.9p1")
# 8.7 and earlier don't support openssl@3.1:
depends_on("openssl@:3.0", when="@:8.7p1")
depends_on("openssl")
depends_on("libedit")
depends_on("ncurses")
@ -96,6 +100,8 @@ def determine_version(cls, exe):
def patch(self):
# #29938: skip set-suid (also see man ssh-key-sign: it's not enabled by default)
filter_file(r"\$\(INSTALL\) -m 4711", "$(INSTALL) -m711", "Makefile.in")
# #39599: fix configure to parse zlib 1.3's version number to prevent build fail
filter_file(r"if \(n != 3 && n != 4\)", "if (n < 2)", "configure")
# https://github.com/Homebrew/homebrew-core/blob/7aabdeb30506be9b01708793ae553502c115dfc8/Formula/o/openssh.rb#L71-L77
if self.spec.target.family == "x86_64" and self.spec.platform == "darwin":
@ -127,6 +133,9 @@ def setup_build_environment(self, env):
# to use the MacOS patches
if self.spec.platform == "darwin":
env.append_flags("CPPFLAGS", "-D__APPLE_SANDBOX_NAMED_EXTERNAL__")
# For "@:7": Newer compilers use -fno-common by default and fail on tun_fwd_ifnames:
if self.spec.satisfies("@:7 %gcc@10:") or self.spec.satisfies("@:7 %clang@11:"):
env.append_flags("CFLAGS", "-fcommon")
def setup_test_environment(self, env):
"""Configure the regression test suite like Debian's openssh-tests package"""