You've already forked macports-ports
mirror of
https://github.com/macports/macports-ports.git
synced 2026-07-12 18:20:25 -07:00
199 lines
7.5 KiB
Tcl
199 lines
7.5 KiB
Tcl
# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
|
|
|
|
PortSystem 1.0
|
|
|
|
name pkixssh
|
|
version 13.4.1
|
|
revision 2
|
|
categories net
|
|
maintainers {@sstallion gmail.com:sstallion} openmaintainer
|
|
license BSD
|
|
installs_libs no
|
|
conflicts lsh openssh ssh-copy-id
|
|
|
|
description PKIX-SSH - an advanced secure shell implementation
|
|
|
|
long_description Implementation includes some of functionality provided by OpenSSH. OpenSSH \
|
|
itself is derivative of the original and free ssh 1.2.12 release by Tatu Ylonen. \
|
|
Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt, and Dug \
|
|
Song removed many bugs, re-added newer features and created OpenSSH. Roumen \
|
|
Petrov adds X.509 certificate support, modernize use of cryptography library \
|
|
including FIPS mode and creates PKIX-SSH.
|
|
|
|
homepage https://roumenpetrov.info/secsh/
|
|
|
|
checksums rmd160 1a5d09524567912f15877859d5e3885425e4851c \
|
|
sha256 ff76f3c467512c6e83b908386beaffb6472fdfc0f877d1653404b8f13cdca8d8 \
|
|
size 1711233
|
|
|
|
master_sites https://roumenpetrov.info/secsh/src/
|
|
|
|
depends_lib path:lib/libssl.dylib:openssl \
|
|
port:libedit \
|
|
port:ncurses \
|
|
port:zlib
|
|
|
|
platform darwin 10 {
|
|
# /usr/bin/ranlib: object: libopenbsd-compat.a(base64.o) malformed object (unknown load command 2)
|
|
depends_build-append port:cctools
|
|
}
|
|
|
|
patch.pre_args-replace -p0 -p1
|
|
patchfiles launchd.patch \
|
|
agent.patch \
|
|
pam.patch \
|
|
patch-sandbox-darwin.c-apple-sandbox-named-external.diff \
|
|
patch-sshd.c-apple-sandbox-named-external.diff \
|
|
macports-config.patch
|
|
|
|
# We need a couple of patches
|
|
# - pam.patch
|
|
# getpwnam(3) on OS X always returns "*********" in the pw_passwd field even
|
|
# when run as root, so it can't be used for authentication. This patch just
|
|
# forces the use of PAM regardless of the configuration.
|
|
# - patch-*-apple-sandbox-named-external.diff
|
|
# Use Apple's sandbox_init(3) in addition to standard privilege separation.
|
|
# This requires a sandbox profile (which we provide) and the sandbox_init(3)
|
|
# call before the chroot(2) to privsep-path (${prefix}/var/empty), or it will
|
|
# fail to load the sandbox description and libsandbox.1.dylib.
|
|
# - macports-config.patch
|
|
# Changes the default configuration from the upstream-provided one by popular
|
|
# request.
|
|
# - agent.patch
|
|
# Adds -l flag to ssh-agent to work with launchd.
|
|
|
|
post-patch {
|
|
# reinplace prefix in path to sandbox definition added by
|
|
# patch-sandbox-darwin.c-apple-sandbox-named-external.diff
|
|
reinplace "s|@PREFIX@|${prefix}|g" ${worksrcpath}/sandbox-darwin.c
|
|
}
|
|
|
|
use_autoreconf yes
|
|
|
|
# strnvis(3) isn't actually "broken". OpenBSD decided to be special and flip
|
|
# the order of arguments to strnvis and considers everyone else to be broken.
|
|
configure.cppflags-append -DBROKEN_STRNVIS=1
|
|
|
|
# Use Apple's sandboxing feature
|
|
configure.cppflags-append -D__APPLE_SANDBOX_NAMED_EXTERNAL__ \
|
|
-D__APPLE_API_STRICT_CONFORMANCE
|
|
|
|
# Support Apple's launchd in ssh-agent
|
|
configure.cppflags-append -D__APPLE_LAUNCHD__
|
|
|
|
configure.ldflags-append -Wl,-search_paths_first
|
|
|
|
configure.args --with-ssl-dir=${prefix} \
|
|
--sysconfdir=${prefix}/etc/ssh \
|
|
--with-privsep-path=/var/empty \
|
|
--with-md5-passwords \
|
|
--with-pid-dir=${prefix}/var/run \
|
|
--with-pam \
|
|
--mandir=${prefix}/share/man \
|
|
--with-zlib=${prefix} \
|
|
--without-kerberos5 \
|
|
--with-libedit \
|
|
--with-pie \
|
|
--without-xauth \
|
|
--without-ldns \
|
|
--with-audit=bsm
|
|
|
|
compiler.blacklist-append {clang < 421}
|
|
|
|
platform macosx {
|
|
# See: https://trac.macports.org/ticket/60385
|
|
variant apple_keychain description "Enable Apple Keychain integration" {
|
|
configure.args-append \
|
|
--with-keychain=apple
|
|
}
|
|
|
|
if {${os.major} > 9 && [string match *clang* ${configure.compiler}]} {
|
|
# At the moment this variant requires clang due
|
|
# to its Object Subscripting feature, c.f. #59397.
|
|
default_variants-append \
|
|
+apple_keychain
|
|
}
|
|
}
|
|
|
|
destroot.target install-nokeys
|
|
|
|
test.run yes
|
|
test.target tests
|
|
|
|
post-destroot {
|
|
destroot.keepdirs ${destroot}${prefix}/var/run
|
|
|
|
# switch default port to avoid conflict with system sshd
|
|
reinplace "s|#Port 22|Port 2222|g" ${destroot}${prefix}/etc/ssh/sshd_config
|
|
|
|
# install sandbox definition
|
|
xinstall -m 755 -d ${destroot}${prefix}/share/${name}
|
|
xinstall -m 644 ${filespath}/info.roumenpetrov.sshd.sb ${destroot}${prefix}/share/${name}
|
|
|
|
file rename "${destroot}${prefix}/etc/ssh/sshd_config" "${destroot}${prefix}/etc/ssh/sshd_config.example"
|
|
file rename "${destroot}${prefix}/etc/ssh/ssh_config" "${destroot}${prefix}/etc/ssh/ssh_config.example"
|
|
|
|
# install ssh-copy-id
|
|
xinstall -m 755 ${worksrcpath}/contrib/ssh-copy-id ${destroot}${prefix}/bin
|
|
xinstall -m 644 ${worksrcpath}/contrib/ssh-copy-id.1 ${destroot}${prefix}/share/man/man1
|
|
}
|
|
|
|
post-activate {
|
|
if {![file exists "${prefix}/etc/ssh/sshd_config"]} {
|
|
copy "${prefix}/etc/ssh/sshd_config.example" "${prefix}/etc/ssh/sshd_config"
|
|
}
|
|
if {![file exists "${prefix}/etc/ssh/ssh_config"]} {
|
|
copy "${prefix}/etc/ssh/ssh_config.example" "${prefix}/etc/ssh/ssh_config"
|
|
}
|
|
}
|
|
|
|
platform darwin {
|
|
# create link to /usr/include/pam because 'security' was renamed to 'pam'
|
|
# in OS X.
|
|
# And then again back to security in 10.6.
|
|
if {${os.major} < 10} {
|
|
pre-configure {
|
|
xinstall -d ${workpath}/include
|
|
file delete ${workpath}/include/security
|
|
ln -s /usr/include/pam ${workpath}/include/security
|
|
configure.cppflags-append "-I${workpath}/include"
|
|
}
|
|
}
|
|
}
|
|
|
|
platform darwin 9 {
|
|
# 10.5/ppc doesn't like the sandbox file we supply
|
|
configure.cppflags-delete -D__APPLE_SANDBOX_NAMED_EXTERNAL__
|
|
}
|
|
|
|
startupitem.create yes
|
|
startupitem.name OpenSSH
|
|
startupitem.start \
|
|
"if \[ -x ${prefix}/sbin/sshd \]; then
|
|
if \[ ! -f ${prefix}/etc/ssh/ssh_host_dsa_key \]; then
|
|
${prefix}/bin/ssh-keygen -t dsa -f \\
|
|
${prefix}/etc/ssh/ssh_host_dsa_key -N \"\" -C `hostname`
|
|
fi
|
|
if \[ ! -f ${prefix}/etc/ssh/ssh_host_rsa_key \]; then
|
|
${prefix}/bin/ssh-keygen -t rsa -f \\
|
|
${prefix}/etc/ssh/ssh_host_rsa_key -N \"\" -C `hostname`
|
|
fi
|
|
if \[ ! -f ${prefix}/etc/ssh/ssh_host_ecdsa_key \]; then
|
|
${prefix}/bin/ssh-keygen -t ecdsa -f \\
|
|
${prefix}/etc/ssh/ssh_host_ecdsa_key -N \"\" -C `hostname`
|
|
fi
|
|
if \[ ! -f ${prefix}/etc/ssh/ssh_host_ed25519_key \]; then
|
|
${prefix}/bin/ssh-keygen -t ed25519 -f \\
|
|
${prefix}/etc/ssh/ssh_host_ed25519_key -N \"\" -C `hostname`
|
|
fi
|
|
${prefix}/sbin/sshd
|
|
fi"
|
|
startupitem.stop \
|
|
"if \[ -r ${prefix}/var/run/sshd.pid \]; then
|
|
kill `cat ${prefix}/var/run/sshd.pid`
|
|
fi"
|
|
|
|
livecheck.type regex
|
|
livecheck.url ${homepage}
|
|
livecheck.regex "Official version x509-(\\d+(?:\\.\\d+)*)"
|