1# NOTE: mosh-server requires a UTF-8 locale, but there's no way to add
2# an explicit dependency for this so you need to ensure this is in your
3# image yourself when you install mosh-server.
4
5SUMMARY = "Remote shell supporting roaming and high-latency connections"
6DESCRIPTION = "Remote terminal application that allows roaming, supports \
7intermittent connectivity, and provides intelligent local echo and line \
8editing of user keystrokes. Mosh is a replacement for SSH. It's more \
9robust and responsive, especially over Wi-Fi, cellular, and \
10long-distance links."
11HOMEPAGE = "http://mosh.mit.edu"
12LICENSE = "GPL-3.0-or-later"
13LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
14
15DEPENDS = "protobuf-native protobuf ncurses zlib libio-pty-perl openssl libutempter abseil-cpp"
16
17SRC_URI = "https://mosh.org/${BP}.tar.gz \
18           file://0001-configure.ac-add-support-of-protobuf-4.22.x.patch \
19           "
20
21SRC_URI[sha256sum] = "872e4b134e5df29c8933dff12350785054d2fd2839b5ae6b5587b14db1465ddd"
22
23inherit autotools pkgconfig
24
25PACKAGE_BEFORE_PN += "${PN}-server"
26FILES:${PN}-server = "${bindir}/mosh-server"
27
28NEEDED_PERL_MODULES = "\
29    perl-module-socket \
30    perl-module-getopt-long \
31    perl-module-errno \
32    perl-module-io-socket-inet \
33    perl-module-posix \
34"
35
36# mosh uses SSH to authenticate and the client uses OpenSSH-specific features
37RDEPENDS:${PN} += "openssh-ssh ${NEEDED_PERL_MODULES}"
38# The server seemed not to work with dropbear either
39RDEPENDS:${PN}-server += "openssh-sshd"
40
41# Fails to build with thumb-1 (qemuarm)
42#| {standard input}: Assembler messages:
43#| {standard input}:2100: Error: instruction not supported in Thumb16 mode -- `adds r4,r4,r4'
44#| {standard input}:2101: Error: instruction not supported in Thumb16 mode -- `adcs r5,r5,r5'
45#| {standard input}:2102: Error: instruction not supported in Thumb16 mode -- `adcs r6,r6,r6'
46#| {standard input}:2103: Error: instruction not supported in Thumb16 mode -- `adcs r7,r7,r7'
47#| {standard input}:2104: Error: selected processor does not support Thumb mode `it cs'
48ARM_INSTRUCTION_SET = "arm"
49
50CXXFLAGS:append = " -std=c++17"
51