blob: 78f812885b8203384e17ea84d2683c08f50ec082 [file] [log] [blame]
# Copyright 2017 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/package.gni")
package("openssh-tools") {
deps = [
":scp",
":ssh",
":ssh-keygen",
]
binaries = [
{
name = "scp"
shell = true
},
{
name = "ssh"
shell = true
},
{
name = "ssh-keygen"
shell = true
},
]
}
config("fuchsia") {
include_dirs = [
".",
"fuchsia",
]
cflags = [
"-include",
rebase_path("fuchsia/fuchsia-compat.h"),
"-Wno-sign-compare",
"-Wno-pointer-sign",
]
configs = [
"//third_party/boringssl:boringssl_config",
"//third_party/zlib:zlib_config",
"//zircon/public/lib/fdio:fdio.config",
]
}
source_set("fuchsia-compat") {
sources = [ "fuchsia/fuchsia-compat.c" ]
configs += [
":fuchsia",
"//zircon/public/lib/zircon-internal:zircon-internal.config",
]
deps = [
"//sdk/fidl/fuchsia.hardware.pty:fuchsia.hardware.pty_c",
"//zircon/system/ulib/async-loop",
"//zircon/system/ulib/loader-service",
]
}
# This needs to be a static library because some of its symbols are replaced
# when it is linked into executables.
static_library("libopenssh") {
sources = [
"bitmap.c",
"krl.c",
"ssh_api.c",
"sshbuf-getput-basic.c",
"sshbuf-getput-crypto.c",
"sshbuf-misc.c",
"sshbuf.c",
"ssherr.c",
"sshkey.c",
]
configs += [ ":fuchsia" ]
}
# This needs to be a static library because some of its symbols are replaced
# when it is linked into executables.
static_library("libssh") {
sources = [
"addrmatch.c",
"atomicio.c",
"authfd.c",
"authfile.c",
"canohost.c",
"chacha.c",
"channels.c",
"cipher-aes.c",
"cipher-aesctr.c",
"cipher-chachapoly.c",
"cipher-ctr.c",
"cipher.c",
"cleanup.c",
"compat.c",
"dh.c",
"digest-libc.c",
"digest-openssl.c",
"dispatch.c",
"dns.c",
"ed25519.c",
"entropy.c",
"fatal.c",
"fe25519.c",
"ge25519.c",
"gss-genr.c",
"hash.c",
"hmac.c",
"hostfile.c",
"kex.c",
"kexc25519.c",
"kexdh.c",
"kexecdh.c",
"kexgen.c",
"kexgex.c",
"kexgexc.c",
"kexgexs.c",
"kexsntrup4591761x25519.c",
"log.c",
"mac.c",
"match.c",
"misc.c",
"moduli.c",
"monitor_fdpass.c",
"msg.c",
"nchan.c",
"packet.c",
"platform-misc.c",
"platform-pledge.c",
"platform-tracing.c",
"poly1305.c",
"progressmeter.c",
"readpass.c",
"rijndael.c",
"sc25519.c",
"sftp-realpath.c",
"smult_curve25519_ref.c",
"sntrup4591761.c",
"ssh-dss.c",
"ssh-ecdsa-sk.c",
"ssh-ecdsa.c",
"ssh-ed25519-sk.c",
"ssh-ed25519.c",
"ssh-pkcs11.c",
"ssh-rsa.c",
"sshbuf-io.c",
"ttymodes.c",
"umac.c",
"umac128.c",
"utf8.c",
"verify.c",
"xmalloc.c",
]
configs += [ ":fuchsia" ]
deps = [
":fuchsia-compat",
":libopenssh",
":openbsd-compat",
"//third_party/boringssl",
"//third_party/zlib:zlib_static",
]
}
config("openbsd-compat-config") {
include_dirs = [ "openbsd-compat" ]
cflags = [ "-Wno-sizeof-array-div" ]
}
source_set("openbsd-compat") {
sources = [
"openbsd-compat/arc4random.c",
"openbsd-compat/base64.c",
"openbsd-compat/basename.c",
"openbsd-compat/bcrypt_pbkdf.c",
"openbsd-compat/bindresvport.c",
"openbsd-compat/blowfish.c",
"openbsd-compat/bsd-asprintf.c",
"openbsd-compat/bsd-closefrom.c",
"openbsd-compat/bsd-cygwin_util.c",
"openbsd-compat/bsd-err.c",
"openbsd-compat/bsd-flock.c",
"openbsd-compat/bsd-getline.c",
"openbsd-compat/bsd-getpagesize.c",
"openbsd-compat/bsd-getpeereid.c",
"openbsd-compat/bsd-malloc.c",
"openbsd-compat/bsd-misc.c",
"openbsd-compat/bsd-nextstep.c",
"openbsd-compat/bsd-openpty.c",
"openbsd-compat/bsd-poll.c",
"openbsd-compat/bsd-setres_id.c",
"openbsd-compat/bsd-snprintf.c",
"openbsd-compat/bsd-statvfs.c",
"openbsd-compat/bsd-waitpid.c",
"openbsd-compat/daemon.c",
"openbsd-compat/dirname.c",
"openbsd-compat/explicit_bzero.c",
"openbsd-compat/fake-rfc2553.c",
"openbsd-compat/fmt_scaled.c",
"openbsd-compat/fnmatch.c",
"openbsd-compat/freezero.c",
"openbsd-compat/getcwd.c",
"openbsd-compat/getgrouplist.c",
"openbsd-compat/getopt_long.c",
"openbsd-compat/getrrsetbyname-ldns.c",
"openbsd-compat/getrrsetbyname.c",
"openbsd-compat/glob.c",
"openbsd-compat/inet_aton.c",
"openbsd-compat/inet_ntoa.c",
"openbsd-compat/inet_ntop.c",
"openbsd-compat/kludge-fd_set.c",
"openbsd-compat/libressl-api-compat.c",
"openbsd-compat/md5.c",
"openbsd-compat/memmem.c",
"openbsd-compat/mktemp.c",
"openbsd-compat/openssl-compat.c",
"openbsd-compat/port-aix.c",
"openbsd-compat/port-irix.c",
"openbsd-compat/port-linux.c",
"openbsd-compat/port-net.c",
"openbsd-compat/port-solaris.c",
"openbsd-compat/port-uw.c",
"openbsd-compat/pwcache.c",
"openbsd-compat/readpassphrase.c",
"openbsd-compat/reallocarray.c",
"openbsd-compat/recallocarray.c",
"openbsd-compat/rresvport.c",
"openbsd-compat/setenv.c",
"openbsd-compat/setproctitle.c",
"openbsd-compat/sha1.c",
"openbsd-compat/sha2.c",
"openbsd-compat/sigact.c",
"openbsd-compat/strcasestr.c",
"openbsd-compat/strlcat.c",
"openbsd-compat/strlcpy.c",
"openbsd-compat/strmode.c",
"openbsd-compat/strndup.c",
"openbsd-compat/strnlen.c",
"openbsd-compat/strptime.c",
"openbsd-compat/strsep.c",
"openbsd-compat/strtoll.c",
"openbsd-compat/strtonum.c",
"openbsd-compat/strtoul.c",
"openbsd-compat/strtoull.c",
"openbsd-compat/timingsafe_bcmp.c",
"openbsd-compat/vis.c",
]
configs += [
":fuchsia",
":openbsd-compat-config",
]
}
source_set("sk") {
sources = [ "ssh-sk-client.c" ]
configs += [ ":fuchsia" ]
}
executable("ssh") {
sources = [
"clientloop.c",
"mux.c",
"readconf.c",
"ssh.c",
"sshconnect.c",
"sshconnect2.c",
"sshtty.c",
]
configs += [ ":fuchsia" ]
deps = [
":libssh",
":sk",
]
}
executable("sshd") {
sources = [
"audit-bsm.c",
"audit-linux.c",
"audit.c",
"auth-bsdauth.c",
"auth-krb5.c",
"auth-options.c",
"auth-pam.c",
"auth-passwd.c",
"auth-rhosts.c",
"auth-shadow.c",
"auth-sia.c",
"auth.c",
"auth2-chall.c",
"auth2-gss.c",
"auth2-hostbased.c",
"auth2-kbdint.c",
"auth2-none.c",
"auth2-passwd.c",
"auth2-pubkey.c",
"auth2.c",
"groupaccess.c",
"gss-serv-krb5.c",
"gss-serv.c",
"loginrec.c",
"md5crypt.c",
"monitor.c",
"monitor_wrap.c",
"platform.c",
"sandbox-capsicum.c",
"sandbox-darwin.c",
"sandbox-null.c",
"sandbox-pledge.c",
"sandbox-rlimit.c",
"sandbox-seccomp-filter.c",
"sandbox-solaris.c",
"sandbox-systrace.c",
"servconf.c",
"serverloop.c",
"session.c",
"sftp-common.c",
"sftp-server.c",
"sshd.c",
"sshlogin.c",
"sshpty.c",
"uidswap.c",
]
configs += [ ":fuchsia" ]
deps = [
":libssh",
":sk",
"//sdk/fidl/fuchsia.hardware.pty:fuchsia.hardware.pty_c",
]
}
executable("ssh-keygen") {
sources = [
"ssh-keygen.c",
"sshsig.c",
]
configs += [ ":fuchsia" ]
deps = [
":libssh",
":sk",
]
}
executable("hostkeygen") {
configs += [ ":fuchsia" ]
sources = [ "fuchsia/hostkeygen/hostkeygen.c" ]
deps = [
":libssh",
":sk",
]
}
executable("sftp-server") {
sources = [
"sftp-common.c",
"sftp-server-main.c",
"sftp-server.c",
]
configs += [ ":fuchsia" ]
deps = [ ":libssh" ]
}
executable("scp") {
sources = [
"progressmeter.c",
"scp.c",
]
configs += [ ":fuchsia" ]
deps = [ ":libssh" ]
}