From d828723d1a3e8ca5ef74c05f6acdf8257b25404c Mon Sep 17 00:00:00 2001 From: John Klug Date: Wed, 13 Nov 2019 09:40:06 -0600 Subject: add openldap and python3-pip to the build --- scripts/build-feed-extras.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/build-feed-extras.sh b/scripts/build-feed-extras.sh index 8a50f59..ce0826c 100755 --- a/scripts/build-feed-extras.sh +++ b/scripts/build-feed-extras.sh @@ -2,9 +2,9 @@ # Extra packages to build for mLinux feed FS_PACKAGES="sshfs-fuse fuse-exfat exfat-utils" -NET_PACKAGES="wget netcat ipsec-tools openvpn iftop dnsmasq strongswan stunnel tunctl ethtool openobex obexftp socat" +NET_PACKAGES="wget netcat ipsec-tools openvpn iftop dnsmasq strongswan stunnel tunctl ethtool openobex obexftp socat openldap" UTIL_PACKAGES="logrotate fatrace stressapptest gawk rsyslog zip gnupg rrdtool" -DEV_PACKAGES="strace mono gdb git vim python-pip python-pyopenssl python-pygobject openjdk-8 node-red strace python-gatt-server" +DEV_PACKAGES="strace mono gdb git vim python-pip python3-pip python-pyopenssl python-pygobject openjdk-8 node-red strace python-gatt-server" SUP_PACKAGES="pps-tools setserial boost diffutils" bitbake linux-firmware $FS_PACKAGES $NET_PACKAGES $UTIL_PACKAGES $DEV_PACKAGES $SUP_PACKAGES -- cgit v1.2.3 From 7454b299f9c5d13f7c1415b3fbffcda5a4bf4726 Mon Sep 17 00:00:00 2001 From: David Marcaccini Date: Wed, 4 Dec 2019 12:08:27 -0600 Subject: add openssh8.1p1 to meta-mlinux --- ...ial-signed-overflow-in-pointer-arithmatic.patch | 99 +++++++++++++ recipes-connectivity/openssh/openssh/init | 153 ++++++++++++++++++++ ...penssh-8.1p1-add-test-support-for-busybox.patch | 48 +++++++ ...h-8.1p1-conditional-compile-des-in-cipher.patch | 13 ++ ...h-8.1p1-conditional-compile-des-in-pkcs11.patch | 52 +++++++ recipes-connectivity/openssh/openssh/run-ptest | 44 ++++++ recipes-connectivity/openssh/openssh/ssh_config | 48 +++++++ recipes-connectivity/openssh/openssh/sshd | 11 ++ recipes-connectivity/openssh/openssh/sshd.socket | 10 ++ recipes-connectivity/openssh/openssh/sshd@.service | 13 ++ recipes-connectivity/openssh/openssh/sshd_config | 132 +++++++++++++++++ .../openssh/openssh/sshdgenkeys.service | 22 +++ .../openssh/openssh/volatiles.99_sshd | 2 + recipes-connectivity/openssh/openssh_8.1p1.bb | 160 +++++++++++++++++++++ 14 files changed, 807 insertions(+) create mode 100644 recipes-connectivity/openssh/openssh/fix-potential-signed-overflow-in-pointer-arithmatic.patch create mode 100644 recipes-connectivity/openssh/openssh/init create mode 100644 recipes-connectivity/openssh/openssh/openssh-8.1p1-add-test-support-for-busybox.patch create mode 100644 recipes-connectivity/openssh/openssh/openssh-8.1p1-conditional-compile-des-in-cipher.patch create mode 100644 recipes-connectivity/openssh/openssh/openssh-8.1p1-conditional-compile-des-in-pkcs11.patch create mode 100755 recipes-connectivity/openssh/openssh/run-ptest create mode 100644 recipes-connectivity/openssh/openssh/ssh_config create mode 100644 recipes-connectivity/openssh/openssh/sshd create mode 100644 recipes-connectivity/openssh/openssh/sshd.socket create mode 100644 recipes-connectivity/openssh/openssh/sshd@.service create mode 100644 recipes-connectivity/openssh/openssh/sshd_config create mode 100644 recipes-connectivity/openssh/openssh/sshdgenkeys.service create mode 100644 recipes-connectivity/openssh/openssh/volatiles.99_sshd create mode 100644 recipes-connectivity/openssh/openssh_8.1p1.bb diff --git a/recipes-connectivity/openssh/openssh/fix-potential-signed-overflow-in-pointer-arithmatic.patch b/recipes-connectivity/openssh/openssh/fix-potential-signed-overflow-in-pointer-arithmatic.patch new file mode 100644 index 0000000..7e043a2 --- /dev/null +++ b/recipes-connectivity/openssh/openssh/fix-potential-signed-overflow-in-pointer-arithmatic.patch @@ -0,0 +1,99 @@ +From 3328e98bcbf2930cd7eea3e6c92ad5dcbdf4794f Mon Sep 17 00:00:00 2001 +From: Yuanjie Huang +Date: Wed, 24 Aug 2016 03:15:43 +0000 +Subject: [PATCH] Fix potential signed overflow in pointer arithmatic + +Pointer arithmatic results in implementation defined signed integer +type, so that 's - src' in strlcpy and others may trigger signed overflow. +In case of compilation by gcc or clang with -ftrapv option, the overflow +would lead to program abort. + +Upstream-Status: Submitted [http://bugzilla.mindrot.org/show_bug.cgi?id=2608] + +Signed-off-by: Yuanjie Huang +--- + openbsd-compat/strlcat.c | 8 ++++++-- + openbsd-compat/strlcpy.c | 8 ++++++-- + openbsd-compat/strnlen.c | 8 ++++++-- + 3 files changed, 18 insertions(+), 6 deletions(-) + +diff --git a/openbsd-compat/strlcat.c b/openbsd-compat/strlcat.c +index bcc1b61..e758ebf 100644 +--- a/openbsd-compat/strlcat.c ++++ b/openbsd-compat/strlcat.c +@@ -23,6 +23,7 @@ + + #include + #include ++#include + + /* + * Appends src to string dst of size siz (unlike strncat, siz is the +@@ -55,8 +56,11 @@ strlcat(char *dst, const char *src, size_t siz) + s++; + } + *d = '\0'; +- +- return(dlen + (s - src)); /* count does not include NUL */ ++ /* ++ * Cast pointers to unsigned type before calculation, to avoid signed ++ * overflow when the string ends where the MSB has changed. ++ */ ++ return (dlen + ((uintptr_t)s - (uintptr_t)src)); /* count does not include NUL */ + } + + #endif /* !HAVE_STRLCAT */ +diff --git a/openbsd-compat/strlcpy.c b/openbsd-compat/strlcpy.c +index b4b1b60..b06f374 100644 +--- a/openbsd-compat/strlcpy.c ++++ b/openbsd-compat/strlcpy.c +@@ -23,6 +23,7 @@ + + #include + #include ++#include + + /* + * Copy src to string dst of size siz. At most siz-1 characters +@@ -51,8 +52,11 @@ strlcpy(char *dst, const char *src, size_t siz) + while (*s++) + ; + } +- +- return(s - src - 1); /* count does not include NUL */ ++ /* ++ * Cast pointers to unsigned type before calculation, to avoid signed ++ * overflow when the string ends where the MSB has changed. ++ */ ++ return ((uintptr_t)s - (uintptr_t)src - 1); /* count does not include NUL */ + } + + #endif /* !HAVE_STRLCPY */ +diff --git a/openbsd-compat/strnlen.c b/openbsd-compat/strnlen.c +index 93d5155..9b8de5d 100644 +--- a/openbsd-compat/strnlen.c ++++ b/openbsd-compat/strnlen.c +@@ -23,6 +23,7 @@ + #include + + #include ++#include + + size_t + strnlen(const char *str, size_t maxlen) +@@ -31,7 +32,10 @@ strnlen(const char *str, size_t maxlen) + + for (cp = str; maxlen != 0 && *cp != '\0'; cp++, maxlen--) + ; +- +- return (size_t)(cp - str); ++ /* ++ * Cast pointers to unsigned type before calculation, to avoid signed ++ * overflow when the string ends where the MSB has changed. ++ */ ++ return (size_t)((uintptr_t)cp - (uintptr_t)str); + } + #endif +-- +1.9.1 + diff --git a/recipes-connectivity/openssh/openssh/init b/recipes-connectivity/openssh/openssh/init new file mode 100644 index 0000000..386628a --- /dev/null +++ b/recipes-connectivity/openssh/openssh/init @@ -0,0 +1,153 @@ +#! /bin/sh +set -e + +PIDFILE=/var/run/sshd.pid + +# source function library +. /etc/init.d/functions + +# /etc/init.d/ssh: start and stop the OpenBSD "secure shell" daemon + +test -x /usr/sbin/sshd || exit 0 +( /usr/sbin/sshd -\? 2>&1 | grep -q OpenSSH ) 2>/dev/null || exit 0 + +# /etc/default/ssh may set SYSCONFDIR and SSHD_OPTS +if test -f /etc/default/ssh; then + . /etc/default/ssh +fi + +[ -z "$SYSCONFDIR" ] && SYSCONFDIR=/etc/ssh +mkdir -p $SYSCONFDIR + +parse_sshd_opts() { + set -- ${SSHD_OPTS} -- + sshd_config=/etc/ssh/sshd_config + while true ; do + case "$1" in + -f*) if [ "$1" = "-f" ] ; then + sshd_config="$2" + shift + else + sshd_config="${1#-f}" + fi + shift + ;; + --) shift; break;; + *) shift;; + esac + done +} + +check_for_no_start() { + # forget it if we're trying to start, and /etc/ssh/sshd_not_to_be_run exists + if [ -e $SYSCONFDIR/sshd_not_to_be_run ]; then + echo "OpenBSD Secure Shell server not in use ($SYSCONFDIR/sshd_not_to_be_run)" + exit 0 + fi +} + +check_privsep_dir() { + # Create the PrivSep empty dir if necessary + if [ ! -d /var/run/sshd ]; then + mkdir /var/run/sshd + chmod 0755 /var/run/sshd + fi +} + +check_config() { + /usr/sbin/sshd -t $SSHD_OPTS || exit 1 +} + +check_keys() { + # parse location of keys + local HOST_KEY_RSA + local HOST_KEY_DSA + local HOST_KEY_ECDSA + local HOST_KEY_ED25519 + + parse_sshd_opts + HOST_KEY_RSA=$(grep ^HostKey "${sshd_config}" | grep _rsa_ | tail -1 | awk ' { print $2 } ') + [ -z "${HOST_KEY_RSA}" ] && HOST_KEY_RSA=$(grep HostKey "${sshd_config}" | grep _rsa_ | tail -1 | awk ' { print $2 } ') + [ -z "${HOST_KEY_RSA}" ] && HOST_KEY_RSA=$SYSCONFDIR/ssh_host_rsa_key + HOST_KEY_DSA=$(grep ^HostKey "${sshd_config}" | grep _dsa_ | tail -1 | awk ' { print $2 } ') + [ -z "${HOST_KEY_DSA}" ] && HOST_KEY_DSA=$(grep HostKey "${sshd_config}" | grep _dsa_ | tail -1 | awk ' { print $2 } ') + [ -z "${HOST_KEY_DSA}" ] && HOST_KEY_DSA=$SYSCONFDIR/ssh_host_dsa_key + HOST_KEY_ECDSA=$(grep ^HostKey "${sshd_config}" | grep _ecdsa_ | tail -1 | awk ' { print $2 } ') + [ -z "${HOST_KEY_ECDSA}" ] && HOST_KEY_ECDSA=$(grep HostKey "${sshd_config}" | grep _ecdsa_ | tail -1 | awk ' { print $2 } ') + [ -z "${HOST_KEY_ECDSA}" ] && HOST_KEY_ECDSA=$SYSCONFDIR/ssh_host_ecdsa_key + HOST_KEY_ED25519=$(grep ^HostKey "${sshd_config}" | grep _ed25519_ | tail -1 | awk ' { print $2 } ') + [ -z "${HOST_KEY_ED25519}" ] && HOST_KEY_ED25519=$(grep HostKey "${sshd_config}" | grep _ed25519_ | tail -1 | awk ' { print $2 } ') + [ -z "${HOST_KEY_ED25519}" ] && HOST_KEY_ED25519=$SYSCONFDIR/ssh_host_ed25519_key + + # create keys if necessary + if [ ! -f $HOST_KEY_RSA ]; then + echo " generating ssh RSA key..." + mkdir -p $(dirname $HOST_KEY_RSA) + ssh-keygen -q -f $HOST_KEY_RSA -N '' -t rsa + fi + if [ ! -f $HOST_KEY_ECDSA ]; then + echo " generating ssh ECDSA key..." + mkdir -p $(dirname $HOST_KEY_ECDSA) + ssh-keygen -q -f $HOST_KEY_ECDSA -N '' -t ecdsa + fi + if [ ! -f $HOST_KEY_DSA ]; then + echo " generating ssh DSA key..." + mkdir -p $(dirname $HOST_KEY_DSA) + ssh-keygen -q -f $HOST_KEY_DSA -N '' -t dsa + fi + if [ ! -f $HOST_KEY_ED25519 ]; then + echo " generating ssh ED25519 key..." + mkdir -p $(dirname $HOST_KEY_ED25519) + ssh-keygen -q -f $HOST_KEY_ED25519 -N '' -t ed25519 + fi +} + +export PATH="${PATH:+$PATH:}/usr/sbin:/sbin" + +case "$1" in + start) + check_for_no_start + echo "Starting OpenBSD Secure Shell server: sshd" + check_keys + check_privsep_dir + start-stop-daemon -S -p $PIDFILE -x /usr/sbin/sshd -- $SSHD_OPTS + echo "done." + ;; + stop) + echo -n "Stopping OpenBSD Secure Shell server: sshd" + start-stop-daemon -K -p $PIDFILE -x /usr/sbin/sshd + echo "." + ;; + + reload|force-reload) + check_for_no_start + check_keys + check_config + echo -n "Reloading OpenBSD Secure Shell server's configuration" + start-stop-daemon -K -p $PIDFILE -s 1 -x /usr/sbin/sshd + echo "." + ;; + + restart) + check_keys + check_config + echo -n "Restarting OpenBSD Secure Shell server: sshd" + start-stop-daemon -K -p $PIDFILE --oknodo -x /usr/sbin/sshd + check_for_no_start + check_privsep_dir + sleep 2 + start-stop-daemon -S -p $PIDFILE -x /usr/sbin/sshd -- $SSHD_OPTS + echo "." + ;; + + status) + status /usr/sbin/sshd + exit $? + ;; + + *) + echo "Usage: /etc/init.d/ssh {start|stop|status|reload|force-reload|restart}" + exit 1 +esac + +exit 0 diff --git a/recipes-connectivity/openssh/openssh/openssh-8.1p1-add-test-support-for-busybox.patch b/recipes-connectivity/openssh/openssh/openssh-8.1p1-add-test-support-for-busybox.patch new file mode 100644 index 0000000..d6fbd3b --- /dev/null +++ b/recipes-connectivity/openssh/openssh/openssh-8.1p1-add-test-support-for-busybox.patch @@ -0,0 +1,48 @@ +diff -ruN a/regress/cipher-speed.sh b/regress/cipher-speed.sh +--- a/regress/cipher-speed.sh 2019-12-03 13:16:36.091896387 -0600 ++++ b/regress/cipher-speed.sh 2019-12-03 13:28:29.726275955 -0600 +@@ -17,7 +17,7 @@ + printf "%-60s" "$c/$m:" + ( ${SSH} -o 'compression no' \ + -F $OBJ/ssh_proxy -m $m -c $c somehost \ +- exec sh -c \'"dd of=/dev/null obs=32k"\' \ ++ exec sh -c \'"dd of=/dev/null bs=32k"\' \ + < ${DATA} ) 2>&1 | getbytes + + if [ $? -ne 0 ]; then +diff -ruN a/regress/key-options.sh b/regress/key-options.sh +--- a/regress/key-options.sh 2019-12-03 13:24:44.164243780 -0600 ++++ b/regress/key-options.sh 2019-12-03 13:33:14.447235791 -0600 +@@ -84,7 +84,7 @@ + fi + + sed 's/.*/from="'"$f"'" &/' $origkeys >$authkeys +- from=`head -1 $authkeys | cut -f1 -d ' '` ++ from=`head -n 1 $authkeys | cut -f1 -d ' '` + verbose "key option $from" + r=`${SSH} -q -F $OBJ/ssh_proxy somehost 'echo true'` + if [ "$r" = "true" ]; then +diff -ruN a/regress/transfer.sh b/regress/transfer.sh +--- a/regress/transfer.sh 2019-12-03 13:16:58.342857354 -0600 ++++ b/regress/transfer.sh 2019-12-03 13:29:08.733267753 -0600 +@@ -13,7 +13,7 @@ + for s in 10 100 1k 32k 64k 128k 256k; do + trace "dd-size ${s}" + rm -f ${COPY} +- dd if=$DATA obs=${s} 2> /dev/null | \ ++ dd if=$DATA bs=${s} 2> /dev/null | \ + ${SSH} -q -F $OBJ/ssh_proxy somehost "cat > ${COPY}" + if [ $? -ne 0 ]; then + fail "ssh cat $DATA failed" +diff -ruN a/regress/yes-head.sh b/regress/yes-head.sh +--- a/regress/yes-head.sh 2019-12-03 13:17:11.682259074 -0600 ++++ b/regress/yes-head.sh 2019-12-03 13:32:47.699869866 -0600 +@@ -3,7 +3,7 @@ + + tid="yes pipe head" + +-lines=`${SSH} -F $OBJ/ssh_proxy thishost 'sh -c "while true;do echo yes;done | _POSIX2_VERSION=199209 head -2000"' | (sleep 3 ; wc -l)` ++lines=`${SSH} -F $OBJ/ssh_proxy thishost 'sh -c "while true;do echo yes;done | _POSIX2_VERSION=199209 head -n 2000"' | (sleep 3 ; wc -l)` + if [ $? -ne 0 ]; then + fail "yes|head test failed" + lines = 0; diff --git a/recipes-connectivity/openssh/openssh/openssh-8.1p1-conditional-compile-des-in-cipher.patch b/recipes-connectivity/openssh/openssh/openssh-8.1p1-conditional-compile-des-in-cipher.patch new file mode 100644 index 0000000..507026c --- /dev/null +++ b/recipes-connectivity/openssh/openssh/openssh-8.1p1-conditional-compile-des-in-cipher.patch @@ -0,0 +1,13 @@ +--- a/cipher.c 2019-12-03 12:46:22.282290586 -0600 ++++ b/cipher.c 2019-12-03 12:45:19.273805437 -0600 +@@ -158,8 +158,10 @@ + u_int + cipher_seclen(const struct sshcipher *c) + { ++#ifndef OPENSSL_NO_DES + if (strcmp("3des-cbc", c->name) == 0) + return 14; ++#endif + return cipher_keylen(c); + } + diff --git a/recipes-connectivity/openssh/openssh/openssh-8.1p1-conditional-compile-des-in-pkcs11.patch b/recipes-connectivity/openssh/openssh/openssh-8.1p1-conditional-compile-des-in-pkcs11.patch new file mode 100644 index 0000000..46b60b5 --- /dev/null +++ b/recipes-connectivity/openssh/openssh/openssh-8.1p1-conditional-compile-des-in-pkcs11.patch @@ -0,0 +1,52 @@ +--- a/pkcs11.h 2019-12-03 12:52:10.920974412 -0600 ++++ b/pkcs11.h 2019-12-03 12:56:56.383171416 -0600 +@@ -342,9 +342,11 @@ + #define CKK_GENERIC_SECRET (0x10) + #define CKK_RC2 (0x11) + #define CKK_RC4 (0x12) ++#ifndef OPENSSL_NO_DES + #define CKK_DES (0x13) + #define CKK_DES2 (0x14) + #define CKK_DES3 (0x15) ++#endif /* OPENSSL_NO_DES */ + #define CKK_CAST (0x16) + #define CKK_CAST3 (0x17) + #define CKK_CAST128 (0x18) +@@ -512,6 +514,7 @@ + #define CKM_RC2_CBC_PAD (0x105) + #define CKM_RC4_KEY_GEN (0x110) + #define CKM_RC4 (0x111) ++#ifndef OPENSSL_NO_DES + #define CKM_DES_KEY_GEN (0x120) + #define CKM_DES_ECB (0x121) + #define CKM_DES_CBC (0x122) +@@ -525,6 +528,7 @@ + #define CKM_DES3_MAC (0x134) + #define CKM_DES3_MAC_GENERAL (0x135) + #define CKM_DES3_CBC_PAD (0x136) ++#endif /* OPENSSL_NO_DES */ + #define CKM_CDMF_KEY_GEN (0x140) + #define CKM_CDMF_ECB (0x141) + #define CKM_CDMF_CBC (0x142) +@@ -610,8 +614,10 @@ + #define CKM_MD5_KEY_DERIVATION (0x390) + #define CKM_MD2_KEY_DERIVATION (0x391) + #define CKM_SHA1_KEY_DERIVATION (0x392) ++#ifndef OPENSSL_NO_DES + #define CKM_PBE_MD2_DES_CBC (0x3a0) + #define CKM_PBE_MD5_DES_CBC (0x3a1) ++#endif /* OPENSSL_NO_DES */ + #define CKM_PBE_MD5_CAST_CBC (0x3a2) + #define CKM_PBE_MD5_CAST3_CBC (0x3a3) + #define CKM_PBE_MD5_CAST5_CBC (0x3a4) +@@ -620,8 +626,10 @@ + #define CKM_PBE_SHA1_CAST128_CBC (0x3a5) + #define CKM_PBE_SHA1_RC4_128 (0x3a6) + #define CKM_PBE_SHA1_RC4_40 (0x3a7) ++#ifndef OPENSSL_NO_DES + #define CKM_PBE_SHA1_DES3_EDE_CBC (0x3a8) + #define CKM_PBE_SHA1_DES2_EDE_CBC (0x3a9) ++#endif /* OPENSSL_NO_DES */ + #define CKM_PBE_SHA1_RC2_128_CBC (0x3aa) + #define CKM_PBE_SHA1_RC2_40_CBC (0x3ab) + #define CKM_PKCS5_PBKD2 (0x3b0) diff --git a/recipes-connectivity/openssh/openssh/run-ptest b/recipes-connectivity/openssh/openssh/run-ptest new file mode 100755 index 0000000..36a3d2a --- /dev/null +++ b/recipes-connectivity/openssh/openssh/run-ptest @@ -0,0 +1,44 @@ +#!/bin/sh + +export TEST_SHELL=sh + +cd regress +sed -i "/\t\tagent-ptrace /d" Makefile +make -k .OBJDIR=`pwd` .CURDIR=`pwd` SUDO="sudo" tests \ + | sed -e 's/^skipped/SKIP: /g' -e 's/^ok /PASS: /g' -e 's/^failed/FAIL: /g' + +SSHAGENT=`which ssh-agent` +GDB=`which gdb` + +if [ -z "${SSHAGENT}" -o -z "${GDB}" ]; then + echo "SKIP: agent-ptrace" + exit +fi + +useradd openssh-test + +eval `su -c "${SSHAGENT} -s" openssh-test` > /dev/null +r=$? +if [ $r -ne 0 ]; then + echo "FAIL: could not start ssh-agent: exit code $r" +else + su -c "gdb -p ${SSH_AGENT_PID}" openssh-test > /tmp/gdb.out 2>&1 << EOF + quit +EOF + r=$? + if [ $r -ne 0 ]; then + echo "gdb failed: exit code $r" + fi + egrep 'ptrace: Operation not permitted.|procfs:.*Permission denied.|ttrace.*Permission denied.|procfs:.*: Invalid argument.|Unable to access task ' >/dev/null /tmp/gdb.out + r=$? + rm -f /tmp/gdb.out + if [ $r -ne 0 ]; then + echo "FAIL: ptrace agent" + else + echo "PASS: ptrace agent" + fi + + ${SSHAGENT} -k > /dev/null +fi +userdel openssh-test + diff --git a/recipes-connectivity/openssh/openssh/ssh_config b/recipes-connectivity/openssh/openssh/ssh_config new file mode 100644 index 0000000..9e91915 --- /dev/null +++ b/recipes-connectivity/openssh/openssh/ssh_config @@ -0,0 +1,48 @@ +# $OpenBSD: ssh_config,v 1.28 2013/09/16 11:35:43 sthen Exp $ + +# This is the ssh client system-wide configuration file. See +# ssh_config(5) for more information. This file provides defaults for +# users, and the values can be changed in per-user configuration files +# or on the command line. + +# Configuration data is parsed as follows: +# 1. command line options +# 2. user-specific file +# 3. system-wide file +# Any configuration value is only changed the first time it is set. +# Thus, host-specific definitions should be at the beginning of the +# configuration file, and defaults at the end. + +# Site-wide defaults for some commonly used options. For a comprehensive +# list of available options, their meanings and defaults, please see the +# ssh_config(5) man page. + +Host * + ForwardAgent yes + ForwardX11 yes +# RhostsRSAAuthentication no +# RSAAuthentication yes +# PasswordAuthentication yes +# HostbasedAuthentication no +# GSSAPIAuthentication no +# GSSAPIDelegateCredentials no +# BatchMode no +# CheckHostIP yes +# AddressFamily any +# ConnectTimeout 0 +# StrictHostKeyChecking ask +# IdentityFile ~/.ssh/identity +# IdentityFile ~/.ssh/id_rsa +# IdentityFile ~/.ssh/id_dsa +# Port 22 +# Protocol 2,1 +# Cipher 3des +# Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc +# MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160 +# EscapeChar ~ +# Tunnel no +# TunnelDevice any:any +# PermitLocalCommand no +# VisualHostKey no +# ProxyCommand ssh -q -W %h:%p gateway.example.com +# RekeyLimit 1G 1h diff --git a/recipes-connectivity/openssh/openssh/sshd b/recipes-connectivity/openssh/openssh/sshd new file mode 100644 index 0000000..182650b --- /dev/null +++ b/recipes-connectivity/openssh/openssh/sshd @@ -0,0 +1,11 @@ +#%PAM-1.0 + +auth include common-auth +account required pam_nologin.so +account include common-account +password include common-password +session optional pam_keyinit.so force revoke +session optional pam_radauth.so +session include common-session +session required pam_loginuid.so + diff --git a/recipes-connectivity/openssh/openssh/sshd.socket b/recipes-connectivity/openssh/openssh/sshd.socket new file mode 100644 index 0000000..12c39b2 --- /dev/null +++ b/recipes-connectivity/openssh/openssh/sshd.socket @@ -0,0 +1,10 @@ +[Unit] +Conflicts=sshd.service + +[Socket] +ExecStartPre=@BASE_BINDIR@/mkdir -p /var/run/sshd +ListenStream=22 +Accept=yes + +[Install] +WantedBy=sockets.target diff --git a/recipes-connectivity/openssh/openssh/sshd@.service b/recipes-connectivity/openssh/openssh/sshd@.service new file mode 100644 index 0000000..9d83dfb --- /dev/null +++ b/recipes-connectivity/openssh/openssh/sshd@.service @@ -0,0 +1,13 @@ +[Unit] +Description=OpenSSH Per-Connection Daemon +Wants=sshdgenkeys.service +After=sshdgenkeys.service + +[Service] +Environment="SSHD_OPTS=" +EnvironmentFile=-/etc/default/ssh +ExecStart=-@SBINDIR@/sshd -i $SSHD_OPTS +ExecReload=@BASE_BINDIR@/kill -HUP $MAINPID +StandardInput=socket +StandardError=syslog +KillMode=process diff --git a/recipes-connectivity/openssh/openssh/sshd_config b/recipes-connectivity/openssh/openssh/sshd_config new file mode 100644 index 0000000..31fe5d9 --- /dev/null +++ b/recipes-connectivity/openssh/openssh/sshd_config @@ -0,0 +1,132 @@ +# $OpenBSD: sshd_config,v 1.80 2008/07/02 02:24:18 djm Exp $ + +# This is the sshd server system-wide configuration file. See +# sshd_config(5) for more information. + +# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin + +# The strategy used for options in the default sshd_config shipped with +# OpenSSH is to specify options with their default value where +# possible, but leave them commented. Uncommented options change a +# default value. + +#Port 22 +#AddressFamily any +#ListenAddress 0.0.0.0 +#ListenAddress :: + +# The default requires explicit activation of protocol 1 +Protocol 2 + +# HostKey for protocol version 1 +#HostKey /etc/ssh/ssh_host_key +# HostKeys for protocol version 2 +#HostKey /etc/ssh/ssh_host_rsa_key +#HostKey /etc/ssh/ssh_host_dsa_key +#HostKey /etc/ssh/ssh_host_ecdsa_key +#HostKey /etc/ssh/ssh_host_ed25519_key + +# Lifetime and size of ephemeral version 1 server key +#KeyRegenerationInterval 1h +#ServerKeyBits 1024 + +# Ciphers and keying +#RekeyLimit default none + +# Logging +# obsoletes QuietMode and FascistLogging +#SyslogFacility AUTH +#LogLevel INFO + +# Authentication: + +#LoginGraceTime 2m +#PermitRootLogin yes +#StrictModes yes +#MaxAuthTries 6 +#MaxSessions 10 + +#RSAAuthentication yes +#PubkeyAuthentication yes + +# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2 +# but this is overridden so installations will only check .ssh/authorized_keys +AuthorizedKeysFile .ssh/authorized_keys + +#AuthorizedPrincipalsFile none + +#AuthorizedKeysCommand none +#AuthorizedKeysCommandUser nobody + +# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts +#RhostsRSAAuthentication no +# similar for protocol version 2 +#HostbasedAuthentication no +# Change to yes if you don't trust ~/.ssh/known_hosts for +# RhostsRSAAuthentication and HostbasedAuthentication +#IgnoreUserKnownHosts no +# Don't read the user's ~/.rhosts and ~/.shosts files +#IgnoreRhosts yes + +# To disable tunneled clear text passwords, change to no here! +#PasswordAuthentication yes +#PermitEmptyPasswords no + +# Change to no to disable s/key passwords +ChallengeResponseAuthentication no + +# Kerberos options +#KerberosAuthentication no +#KerberosOrLocalPasswd yes +#KerberosTicketCleanup yes +#KerberosGetAFSToken no + +# GSSAPI options +#GSSAPIAuthentication no +#GSSAPICleanupCredentials yes + +# Set this to 'yes' to enable PAM authentication, account processing, +# and session processing. If this is enabled, PAM authentication will +# be allowed through the ChallengeResponseAuthentication and +# PasswordAuthentication. Depending on your PAM configuration, +# PAM authentication via ChallengeResponseAuthentication may bypass +# the setting of "PermitRootLogin without-password". +# If you just want the PAM account and session checks to run without +# PAM authentication, then enable this but set PasswordAuthentication +# and ChallengeResponseAuthentication to 'no'. +#UsePAM no + +#AllowAgentForwarding yes +#AllowTcpForwarding yes +#GatewayPorts no +#X11Forwarding no +#X11DisplayOffset 10 +#X11UseLocalhost yes +#PermitTTY yes +#PrintMotd yes +#PrintLastLog yes +#TCPKeepAlive yes +#UseLogin no +#PermitUserEnvironment no +Compression no +ClientAliveInterval 15 +ClientAliveCountMax 4 +#UseDNS yes +#PidFile /var/run/sshd.pid +#MaxStartups 10:30:100 +#PermitTunnel no +#ChrootDirectory none +#VersionAddendum none + +# no default banner path +#Banner none + +# override default of no subsystems +Subsystem sftp /usr/libexec/sftp-server + +# Example of overriding settings on a per-user basis +#Match User anoncvs +# X11Forwarding no +# AllowTcpForwarding no +# PermitTTY no +# ForceCommand cvs server diff --git a/recipes-connectivity/openssh/openssh/sshdgenkeys.service b/recipes-connectivity/openssh/openssh/sshdgenkeys.service new file mode 100644 index 0000000..148e6ad --- /dev/null +++ b/recipes-connectivity/openssh/openssh/sshdgenkeys.service @@ -0,0 +1,22 @@ +[Unit] +Description=OpenSSH Key Generation +RequiresMountsFor=/var /run +ConditionPathExists=!/var/run/ssh/ssh_host_rsa_key +ConditionPathExists=!/var/run/ssh/ssh_host_dsa_key +ConditionPathExists=!/var/run/ssh/ssh_host_ecdsa_key +ConditionPathExists=!/var/run/ssh/ssh_host_ed25519_key +ConditionPathExists=!/etc/ssh/ssh_host_rsa_key +ConditionPathExists=!/etc/ssh/ssh_host_dsa_key +ConditionPathExists=!/etc/ssh/ssh_host_ecdsa_key +ConditionPathExists=!/etc/ssh/ssh_host_ed25519_key + +[Service] +Environment="SYSCONFDIR=/etc/ssh" +EnvironmentFile=-/etc/default/ssh +ExecStart=@BASE_BINDIR@/mkdir -p $SYSCONFDIR +ExecStart=@BINDIR@/ssh-keygen -q -f ${SYSCONFDIR}/ssh_host_rsa_key -N '' -t rsa +ExecStart=@BINDIR@/ssh-keygen -q -f ${SYSCONFDIR}/ssh_host_dsa_key -N '' -t dsa +ExecStart=@BINDIR@/ssh-keygen -q -f ${SYSCONFDIR}/ssh_host_ecdsa_key -N '' -t ecdsa +ExecStart=@BINDIR@/ssh-keygen -q -f ${SYSCONFDIR}/ssh_host_ed25519_key -N '' -t ed25519 +Type=oneshot +RemainAfterExit=yes diff --git a/recipes-connectivity/openssh/openssh/volatiles.99_sshd b/recipes-connectivity/openssh/openssh/volatiles.99_sshd new file mode 100644 index 0000000..a0d2af3 --- /dev/null +++ b/recipes-connectivity/openssh/openssh/volatiles.99_sshd @@ -0,0 +1,2 @@ +d root root 0755 /var/run/sshd none +f root root 0644 /var/log/lastlog none diff --git a/recipes-connectivity/openssh/openssh_8.1p1.bb b/recipes-connectivity/openssh/openssh_8.1p1.bb new file mode 100644 index 0000000..5bfd8e3 --- /dev/null +++ b/recipes-connectivity/openssh/openssh_8.1p1.bb @@ -0,0 +1,160 @@ +SUMMARY = "A suite of security-related network utilities based on \ +the SSH protocol including the ssh client and sshd server" +DESCRIPTION = "Secure rlogin/rsh/rcp/telnet replacement (OpenSSH) \ +Ssh (Secure Shell) is a program for logging into a remote machine \ +and for executing commands on a remote machine." +HOMEPAGE = "http://www.openssh.com/" +SECTION = "console/network" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENCE;md5=18d9e5a8b3dd1790d73502f50426d4d3" + +DEPENDS = "zlib openssl" +DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" + +SRC_URI = "http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-${PV}.tar.gz \ + file://sshd_config \ + file://ssh_config \ + file://init \ + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \ + file://sshd.socket \ + file://sshd@.service \ + file://sshdgenkeys.service \ + file://volatiles.99_sshd \ + file://openssh-8.1p1-add-test-support-for-busybox.patch \ + file://run-ptest \ + file://openssh-8.1p1-conditional-compile-des-in-cipher.patch \ + file://openssh-8.1p1-conditional-compile-des-in-pkcs11.patch \ + file://fix-potential-signed-overflow-in-pointer-arithmatic.patch \ + " + +PAM_SRC_URI = "file://sshd" + +SRC_URI[md5sum] = "513694343631a99841e815306806edf0" +SRC_URI[sha256sum] = "02f5dbef3835d0753556f973cd57b4c19b6b1f6cd24c03445e23ac77ca1b93ff" + +inherit useradd update-rc.d update-alternatives systemd + +USERADD_PACKAGES = "${PN}-sshd" +USERADD_PARAM_${PN}-sshd = "--system --no-create-home --home-dir /var/run/sshd --shell /bin/false --user-group sshd" +INITSCRIPT_PACKAGES = "${PN}-sshd" +INITSCRIPT_NAME_${PN}-sshd = "sshd" +INITSCRIPT_PARAMS_${PN}-sshd = "defaults 9" + +SYSTEMD_PACKAGES = "${PN}-sshd" +SYSTEMD_SERVICE_${PN}-sshd = "sshd.socket" + +inherit autotools-brokensep ptest + +# LFS support: +CFLAGS += "-D__FILE_OFFSET_BITS=64" + +# login path is hardcoded in sshd +EXTRA_OECONF = "'LOGIN_PROGRAM=${base_bindir}/login' \ + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--with-pam', '--without-pam', d)} \ + --without-zlib-version-check \ + --with-privsep-path=/var/run/sshd \ + --sysconfdir=${sysconfdir}/ssh \ + --with-xauth=/usr/bin/xauth \ + --disable-strip \ + " + +# Since we do not depend on libbsd, we do not want configure to use it +# just because it finds libutil.h. But, specifying --disable-libutil +# causes compile errors, so... +CACHED_CONFIGUREVARS += "ac_cv_header_bsd_libutil_h=no ac_cv_header_libutil_h=no" + +# passwd path is hardcoded in sshd +CACHED_CONFIGUREVARS += "ac_cv_path_PATH_PASSWD_PROG=${bindir}/passwd" + +# We don't want to depend on libblockfile +CACHED_CONFIGUREVARS += "ac_cv_header_maillock_h=no" + +do_configure_prepend () { + export LD="${CC}" + install -m 0644 ${WORKDIR}/sshd_config ${B}/ + install -m 0644 ${WORKDIR}/ssh_config ${B}/ + if [ ! -e acinclude.m4 -a -e aclocal.m4 ]; then + cp aclocal.m4 acinclude.m4 + fi +} + +do_compile_ptest() { + # skip regress/unittests/ binaries: this will silently skip + # unittests in run-ptests which is good because they are so slow. + oe_runmake regress/modpipe regress/setuid-allowed regress/netcat +} + +do_install_append () { + if [ "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}" = "pam" ]; then + install -D -m 0644 ${WORKDIR}/sshd ${D}${sysconfdir}/pam.d/sshd + sed -i -e 's:#UsePAM no:UsePAM yes:' ${D}${sysconfdir}/ssh/sshd_config + fi + + if [ "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}" = "x11" ]; then + sed -i -e 's:#X11Forwarding no:X11Forwarding yes:' ${D}${sysconfdir}/ssh/sshd_config + fi + + install -d ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/sshd + rm -f ${D}${bindir}/slogin ${D}${datadir}/Ssh.bin + rmdir ${D}${localstatedir}/run/sshd ${D}${localstatedir}/run ${D}${localstatedir} + install -d ${D}/${sysconfdir}/default/volatiles + install -m 644 ${WORKDIR}/volatiles.99_sshd ${D}/${sysconfdir}/default/volatiles/99_sshd + install -m 0755 ${S}/contrib/ssh-copy-id ${D}${bindir} + + # Create config files for read-only rootfs + install -d ${D}${sysconfdir}/ssh + install -m 644 ${D}${sysconfdir}/ssh/sshd_config ${D}${sysconfdir}/ssh/sshd_config_readonly + sed -i '/HostKey/d' ${D}${sysconfdir}/ssh/sshd_config_readonly + echo "HostKey /var/run/ssh/ssh_host_rsa_key" >> ${D}${sysconfdir}/ssh/sshd_config_readonly + echo "HostKey /var/run/ssh/ssh_host_dsa_key" >> ${D}${sysconfdir}/ssh/sshd_config_readonly + echo "HostKey /var/run/ssh/ssh_host_ecdsa_key" >> ${D}${sysconfdir}/ssh/sshd_config_readonly + echo "HostKey /var/run/ssh/ssh_host_ed25519_key" >> ${D}${sysconfdir}/ssh/sshd_config_readonly + + install -d ${D}${systemd_unitdir}/system + install -c -m 0644 ${WORKDIR}/sshd.socket ${D}${systemd_unitdir}/system + install -c -m 0644 ${WORKDIR}/sshd@.service ${D}${systemd_unitdir}/system + install -c -m 0644 ${WORKDIR}/sshdgenkeys.service ${D}${systemd_unitdir}/system + sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \ + -e 's,@SBINDIR@,${sbindir},g' \ + -e 's,@BINDIR@,${bindir},g' \ + ${D}${systemd_unitdir}/system/sshd.socket ${D}${systemd_unitdir}/system/*.service +} + +do_install_ptest () { + sed -i -e "s|^SFTPSERVER=.*|SFTPSERVER=${libexecdir}/sftp-server|" regress/test-exec.sh + cp -r regress ${D}${PTEST_PATH} +} + +ALLOW_EMPTY_${PN} = "1" + +PACKAGES =+ "${PN}-keygen ${PN}-scp ${PN}-ssh ${PN}-sshd ${PN}-sftp ${PN}-misc ${PN}-sftp-server" +FILES_${PN}-scp = "${bindir}/scp.${BPN}" +FILES_${PN}-ssh = "${bindir}/ssh.${BPN} ${sysconfdir}/ssh/ssh_config" +FILES_${PN}-sshd = "${sbindir}/sshd ${sysconfdir}/init.d/sshd ${systemd_unitdir}/system" +FILES_${PN}-sshd += "${sysconfdir}/ssh/moduli ${sysconfdir}/ssh/sshd_config ${sysconfdir}/ssh/sshd_config_readonly ${sysconfdir}/default/volatiles/99_sshd ${sysconfdir}/pam.d/sshd" +FILES_${PN}-sftp = "${bindir}/sftp" +FILES_${PN}-sftp-server = "${libexecdir}/sftp-server" +FILES_${PN}-misc = "${bindir}/ssh* ${libexecdir}/ssh*" +FILES_${PN}-keygen = "${bindir}/ssh-keygen" + +RDEPENDS_${PN} += "${PN}-scp ${PN}-ssh ${PN}-sshd ${PN}-keygen" +RDEPENDS_${PN}-sshd += "${PN}-keygen ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-keyinit pam-plugin-loginuid', '', d)}" +RDEPENDS_${PN}-ptest += "${PN}-sftp ${PN}-misc ${PN}-sftp-server make" + +RPROVIDES_${PN}-ssh = "ssh" +RPROVIDES_${PN}-sshd = "sshd" + +RCONFLICTS_${PN} = "dropbear" +RCONFLICTS_${PN}-sshd = "dropbear" +RCONFLICTS_${PN}-keygen = "ssh-keygen" + +CONFFILES_${PN}-sshd = "${sysconfdir}/ssh/sshd_config" +CONFFILES_${PN}-ssh = "${sysconfdir}/ssh/ssh_config" + +ALTERNATIVE_PRIORITY = "90" +ALTERNATIVE_${PN}-scp = "scp" +ALTERNATIVE_${PN}-ssh = "ssh" + +do_rm_work () { +} -- cgit v1.2.3 From 1ccad4b98b412197ef72a2bb978cf26327b54fd6 Mon Sep 17 00:00:00 2001 From: John Klug Date: Wed, 4 Dec 2019 13:35:28 -0600 Subject: Create mlinux-basetest-image which has no login for console --- recipes-core/images/mlinux-basetest-image.bb | 72 ++++++++++++++++++++++ recipes-core/images/mlinux-minimal-image.bb | 3 + recipes-core/sysvinit/files/start_getty_open | 6 ++ .../sysvinit/sysvinit-inittab_2.88dsf.bbappend | 23 +++++++ 4 files changed, 104 insertions(+) create mode 100644 recipes-core/images/mlinux-basetest-image.bb create mode 100644 recipes-core/sysvinit/files/start_getty_open diff --git a/recipes-core/images/mlinux-basetest-image.bb b/recipes-core/images/mlinux-basetest-image.bb new file mode 100644 index 0000000..6e000c1 --- /dev/null +++ b/recipes-core/images/mlinux-basetest-image.bb @@ -0,0 +1,72 @@ +# Conduit 0.0 or 0.1 without RS9113 +DESCRIPTION = "mLinux base image" +LICENSE = "MIT" + +require mlinux-minimal-image.bb + +# Open console for test image +CONSOLE = "sysvinit-inittab-start-open" + +FILESYSTEM_FEATURES = "dosfstools \ + cifs-utils \ + lsof \ + " + +NETWORKING_FEATURES += "bridge-utils \ + inetutils-ftp \ + openssl \ + rsync \ + iperf \ + lldpd \ + mii-diag \ + tcpdump \ + netcat \ + wget \ + strongswan \ + busybox-ifplugd \ + " + +WIFI_FEATURES = " \ + libnl \ + wpa-supplicant \ + wireless-tools \ + iw \ + hostap-daemon hostap-utils \ + " + +BLUETOOTH_FEATURES = "bluez5" + +# Add all timezones available +# ntpdate will sync time every 30 min by default via cron +TIME_FEATURES = "tzdata tzdata-africa tzdata-americas tzdata-antarctica tzdata-arctic \ + tzdata-asia tzdata-atlantic tzdata-australia tzdata-europe tzdata-pacific \ + tzdata-misc \ + cronie \ + ntpdate \ + " + +# u-boot-linux-utils: U-Boot environment access from Linux +# mlinux-scripts: sample scripts for setting up Conduit for various tasks +# reset-handler: default reset button handler +# radio-cmd: supports cellular radio activation and other configuration commands +# radio-query: queries cellular radio for common info (IMEI, RSSI, etc) +# jsparser: command line tool to parse JSON files +MULTITECH_FEATURES += " \ + u-boot-linux-utils \ + mlinux-scripts \ + reset-handler \ + radio-cmd radio-query \ + jsparser \ + " + +MISC_FEATURES = "minicom lrzsz nano" + +# Extra stuff to install +IMAGE_INSTALL += " \ + kernel-modules \ + ${WIFI_FEATURES} \ + ${BLUETOOTH_FEATURES} \ + ${FILESYSTEM_FEATURES} \ + ${TIME_FEATURES} \ + ${MISC_FEATURES} \ + " diff --git a/recipes-core/images/mlinux-minimal-image.bb b/recipes-core/images/mlinux-minimal-image.bb index 8090f57..0e1d4a3 100644 --- a/recipes-core/images/mlinux-minimal-image.bb +++ b/recipes-core/images/mlinux-minimal-image.bb @@ -57,10 +57,13 @@ MULTITECH_MTAC = "kernel-module-mtac \ UPGRADE_FEATURES = "upgrade-reboot mtd-utils-static" +CONSOLE = "sysvinit-inittab-start" + IMAGE_INSTALL = "${CORE_FEATURES} \ ${NETWORKING_FEATURES} \ ${UPGRADE_FEATURES} \ ${MULTITECH_FEATURES} \ ${MULTITECH_MTAC} \ + ${CONSOLE} \ " diff --git a/recipes-core/sysvinit/files/start_getty_open b/recipes-core/sysvinit/files/start_getty_open new file mode 100644 index 0000000..3afce00 --- /dev/null +++ b/recipes-core/sysvinit/files/start_getty_open @@ -0,0 +1,6 @@ +#!/bin/sh +# Open console for testing +if [ -c /dev/$2 ] +then + /sbin/getty -L $1 $2 xterm -n -l /bin/bash +fi diff --git a/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bbappend b/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bbappend index 6c79846..be33f10 100644 --- a/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bbappend +++ b/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bbappend @@ -1,2 +1,25 @@ # enable gadget serial console for supported hardware +SUMMARY_${PN}-start-open = "Open debug console for development only" +SUMMARY_${PN}-start = "Production console" SERIAL_CONSOLES_append_mtcdt = " 115200;ttyGS0" +PACKAGES =+ "${PN}-start ${PN}-start-open" +FILESEXTRAPATHS_prepend := "${THISDIR}/files:" +SRC_URI += "file://start_getty_open" + +FILES_${PN} = "${sysconfdir}/inittab" +FILES_${PN}-start = "${base_bindir}/start_getty" +FILES_${PN}-start-open = "${base_bindir}/start_getty_open" +RCONFLICTS_${PN}-start = "${PN}-start-open" +RCONFLICTS_${PN}-start-open = "${PN}-start" +RDEPENDS_${PN}-start-open = "${PN}" + +do_install_append() { + install -m 0755 ${WORKDIR}/start_getty_open ${D}${base_bindir}/start_getty_open +} +pkg_postinst_${PN}-start-open() { + sed -i 's?^S0:.*?S0:12345:respawn:/bin/start_getty_open 115200 ttyS0?' $D/etc/inittab +} + +pkg_prerm_${PN}-start-open() { + sed -i 's?^S0:.*?S0:12345:respawn:/bin/start_getty 115200 ttyS0?' $D/etc/inittab +} -- cgit v1.2.3 From f6569e52373440b6416b5fcb0f8d300e8b655030 Mon Sep 17 00:00:00 2001 From: John Klug Date: Wed, 4 Dec 2019 13:39:42 -0600 Subject: Clean up base test image recipe --- recipes-core/images/mlinux-basetest-image.bb | 67 +--------------------------- 1 file changed, 2 insertions(+), 65 deletions(-) diff --git a/recipes-core/images/mlinux-basetest-image.bb b/recipes-core/images/mlinux-basetest-image.bb index 6e000c1..807b16e 100644 --- a/recipes-core/images/mlinux-basetest-image.bb +++ b/recipes-core/images/mlinux-basetest-image.bb @@ -1,72 +1,9 @@ # Conduit 0.0 or 0.1 without RS9113 -DESCRIPTION = "mLinux base image" +DESCRIPTION = "mLinux base test image" LICENSE = "MIT" -require mlinux-minimal-image.bb +require mlinux-base-image.bb # Open console for test image CONSOLE = "sysvinit-inittab-start-open" -FILESYSTEM_FEATURES = "dosfstools \ - cifs-utils \ - lsof \ - " - -NETWORKING_FEATURES += "bridge-utils \ - inetutils-ftp \ - openssl \ - rsync \ - iperf \ - lldpd \ - mii-diag \ - tcpdump \ - netcat \ - wget \ - strongswan \ - busybox-ifplugd \ - " - -WIFI_FEATURES = " \ - libnl \ - wpa-supplicant \ - wireless-tools \ - iw \ - hostap-daemon hostap-utils \ - " - -BLUETOOTH_FEATURES = "bluez5" - -# Add all timezones available -# ntpdate will sync time every 30 min by default via cron -TIME_FEATURES = "tzdata tzdata-africa tzdata-americas tzdata-antarctica tzdata-arctic \ - tzdata-asia tzdata-atlantic tzdata-australia tzdata-europe tzdata-pacific \ - tzdata-misc \ - cronie \ - ntpdate \ - " - -# u-boot-linux-utils: U-Boot environment access from Linux -# mlinux-scripts: sample scripts for setting up Conduit for various tasks -# reset-handler: default reset button handler -# radio-cmd: supports cellular radio activation and other configuration commands -# radio-query: queries cellular radio for common info (IMEI, RSSI, etc) -# jsparser: command line tool to parse JSON files -MULTITECH_FEATURES += " \ - u-boot-linux-utils \ - mlinux-scripts \ - reset-handler \ - radio-cmd radio-query \ - jsparser \ - " - -MISC_FEATURES = "minicom lrzsz nano" - -# Extra stuff to install -IMAGE_INSTALL += " \ - kernel-modules \ - ${WIFI_FEATURES} \ - ${BLUETOOTH_FEATURES} \ - ${FILESYSTEM_FEATURES} \ - ${TIME_FEATURES} \ - ${MISC_FEATURES} \ - " -- cgit v1.2.3 From b71f5e51f91d3262a91ebd8a9f8433e3a43b1969 Mon Sep 17 00:00:00 2001 From: John Klug Date: Fri, 6 Dec 2019 18:50:47 -0600 Subject: Commissioning recipe with php --- recipes-core/multitech/commissioning_1.0.0.bb | 33 +++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 recipes-core/multitech/commissioning_1.0.0.bb diff --git a/recipes-core/multitech/commissioning_1.0.0.bb b/recipes-core/multitech/commissioning_1.0.0.bb new file mode 100644 index 0000000..22369dc --- /dev/null +++ b/recipes-core/multitech/commissioning_1.0.0.bb @@ -0,0 +1,33 @@ +inherit update-rc.d + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=593c81e8a2bd8b4c4e310d8792372b13" + +PACKAGE_ARCH = "all" + +RDEPENDS_${PN} += "lighttpd lighttpd-module-fastcgi lighttpd-module-redirect bash" +RDEPENDS_${PN}-php-fpm += "php-fpm ${PN}" +PACKAGES =+ "${PN}-php-fpm" +INITSCRIPT_PACKAGES = "${PN} ${PN}-php-fpm" +INITSCRIPT_NAME_${PN} = "commission" +INITSCRIPT_PARAMS_${PN} = "start 9 2 3 4 5 ." +INITSCRIPT_NAME_${PN}-php-fpm = "commission-php-fpm" +INITSCRIPT_PARAMS_${PN}-php-fpm = "start 9 2 3 4 5 ." + +PR = "r1" +SRCREV = "${PV}" + +FILES_${PN}-php-fpm = "/etc/init.d/commission-php-fpm" +FILES_${PN} += "/www/" + +SRC_URI = "git://git@${MTS_INTERNAL_GIT}/mirrors/commissioning.git;protocol=ssh" + +S = "${WORKDIR}/git" +do_install() { + cp -a ${S}/${sysconfdir}/ ${D}/ + cp -a ${S}/www/ ${D}/ + cp -a ${S}/${prefix} ${D}/ + chmod 755 ${D}/etc/init.d/* + chmod 755 ${D}/${libexecdir}/commission/* + chown -R root:root ${D}/ +} -- cgit v1.2.3 From 2ca44c76f6d3b3f120c8e8c7cd0387c66d9a7157 Mon Sep 17 00:00:00 2001 From: John Klug Date: Wed, 11 Dec 2019 12:22:55 -0600 Subject: mLinux 5.2 with Commissioning --- conf/distro/mlinux.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conf/distro/mlinux.conf b/conf/distro/mlinux.conf index dce4a35..b3155f0 100644 --- a/conf/distro/mlinux.conf +++ b/conf/distro/mlinux.conf @@ -1,7 +1,7 @@ DISTRO = "mlinux" DISTRO_NAME = "mLinux" -DISTRO_BASE_VERSION = "5.1" -DISTRO_VERSION = "${DISTRO_BASE_VERSION}.8" +DISTRO_BASE_VERSION = "5.2" +DISTRO_VERSION = "${DISTRO_BASE_VERSION}.0" DISTRO_CODENAME = "" SDK_VENDOR = "-mlinux" SDK_VERSION := "${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot')}" -- cgit v1.2.3 From e1d699cac9b3ead2da7c7904a873fca6674e9e4d Mon Sep 17 00:00:00 2001 From: John Klug Date: Fri, 20 Dec 2019 17:04:22 -0600 Subject: Correct new gpsd_settime script in case status is missing from gpspipe output --- recipes-navigation/gpsd/gpsd/gpsd_settime.sh | 2 +- recipes-navigation/gpsd/gpsd_3.16.bb | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/recipes-navigation/gpsd/gpsd/gpsd_settime.sh b/recipes-navigation/gpsd/gpsd/gpsd_settime.sh index 578013b..e8e8f26 100755 --- a/recipes-navigation/gpsd/gpsd/gpsd_settime.sh +++ b/recipes-navigation/gpsd/gpsd/gpsd_settime.sh @@ -63,7 +63,7 @@ fi ) & # Get the ISO8601 time from GPSD -ISO8601=$(gpspipe -w | grep -m1 '{"class":"TPV","device":"/dev/gps0","status":.*,"time":"' | sed -e 's/.*,"time":"//' -e 's/Z",.*//') +ISO8601=$(gpspipe -w | egrep -m1 '\{"class":"TPV","device":"/dev/gps0"(,"status":[0-9])*,"mode":3,"time":"' | sed -e 's/.*,"time":"//' -e 's/Z",.*//') if (( ${#ISO8601} > 18 )) ; then LG -p user.warn "Updating time to time, ${ISO8601}." diff --git a/recipes-navigation/gpsd/gpsd_3.16.bb b/recipes-navigation/gpsd/gpsd_3.16.bb index 2111399..704a928 100644 --- a/recipes-navigation/gpsd/gpsd_3.16.bb +++ b/recipes-navigation/gpsd/gpsd_3.16.bb @@ -4,7 +4,7 @@ LICENSE = "BSD" LIC_FILES_CHKSUM = "file://COPYING;md5=d217a23f408e91c94359447735bc1800" DEPENDS = "dbus dbus-glib ncurses python libusb1 chrpath-replacement-native pps-tools" PROVIDES = "virtual/gpsd" -PR="m13" +PR="m14" EXTRANATIVEPATH += "chrpath-native" @@ -21,6 +21,8 @@ SRC_URI = "${SAVANNAH_GNU_MIRROR}/${BPN}/${BP}.tar.gz \ file://gpsd \ file://gpsd_ubx_fixed.sh \ file://gpsd_ubx_settime.sh \ + file://gpsd_settime.sh \ + file://gpsd_fixed.sh \ file://gpsd.rules \ file://gpsd.service \ " @@ -122,6 +124,8 @@ do_install_append() { install -d ${D}${sbindir} install -m 0755 ${WORKDIR}/gpsd_ubx_fixed.sh ${D}${sbindir}/gpsd_ubx_fixed install -m 0755 ${WORKDIR}/gpsd_ubx_settime.sh ${D}${sbindir}/gpsd_ubx_settime + install -m 0755 ${WORKDIR}/gpsd_fixed.sh ${D}${sbindir}/gpsd_fixed + install -m 0755 ${WORKDIR}/gpsd_settime.sh ${D}${sbindir}/gpsd_settime #support for udev install -d ${D}/${sysconfdir}/udev/rules.d @@ -168,7 +172,7 @@ PACKAGES =+ "libgps libgpsd python-pygps-dbg python-pygps gpsd-udev gpsd-conf gp # FILES_${PN}-dev += "${libdir}/pkgconfdir/libgpsd.pc ${libdir}/pkgconfdir/libgps.pc \ # ${includedir}/gps.h ${includedir}/libgpsmm.h ${includedir}/gps" -FILES_${PN} += "${sbindir}/gpsd_ubx_fixed ${sbindir}/gpsd_ubx_settime" +FILES_${PN} += "${sbindir}/gpsd_*" FILES_python-pygps-dbg += " ${libdir}/python*/site-packages/gps/.debug" -- cgit v1.2.3 From 63517b9a1cc2bae8280ae7f977c545f58f2d86c1 Mon Sep 17 00:00:00 2001 From: John Klug Date: Fri, 20 Dec 2019 17:08:27 -0600 Subject: Do not start ntpd without GPS unless configured --- recipes-support/ntp/files/ntpd-init.patch | 31 ++++++++++++++++++++++++++----- recipes-support/ntp/ntp_%.bbappend | 4 +++- 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/recipes-support/ntp/files/ntpd-init.patch b/recipes-support/ntp/files/ntpd-init.patch index e3107e1..3f8129a 100644 --- a/recipes-support/ntp/files/ntpd-init.patch +++ b/recipes-support/ntp/files/ntpd-init.patch @@ -1,6 +1,6 @@ diff -Naru orig/ntpd new/ntpd ---- orig/ntpd 2019-03-18 10:49:41.255374972 -0500 -+++ new/ntpd 2019-03-18 11:36:56.635291031 -0500 +--- orig/ntpd 2019-12-20 15:28:43.002031942 -0600 ++++ new/ntpd 2019-12-20 15:32:59.138024359 -0600 @@ -1,4 +1,4 @@ -#! /bin/sh +#! /bin/bash @@ -17,7 +17,28 @@ diff -Naru orig/ntpd new/ntpd DAEMON=/usr/sbin/ntpd PIDFILE=/var/run/ntpd.pid -@@ -34,13 +36,40 @@ +@@ -22,6 +24,20 @@ + + # Source function library. + . /etc/init.d/functions ++has_gps=0 ++if [[ -f /sys/devices/platform/mts-io/capability/gps ]] ; then ++ has_gps=$(cat /sys/devices/platform/mts-io/capability/gps) ++fi ++ ++if (( has_gps == 0 )) ; then ++ if [[ -n ${CONFIGFILE_sha256} ]] ; then ++ NEWCONFIGFILE_sha256=$(sha256sum $CONFIGFILE) ++ if [[ $NEWCONFIGFILE_sha256 =~ $CONFIGFILE_sha256 ]] ; then ++ logger -p daemon.notice -s -t etc_ntpd "No GPS, need to configure /etc/ntp.conf" ++ exit 0 ++ fi ++ fi ++fi + + # Functions to do individual actions + settick(){ +@@ -34,13 +50,40 @@ } } startdaemon(){ @@ -30,7 +51,7 @@ diff -Naru orig/ntpd new/ntpd - echo "done" + /usr/sbin/start-stop-daemon -N -20 --start -x /usr/sbin/ntpd --test -- -u ntp:ntp -p /var/run/ntp.pid "$@" \ + || return 1 -+ if [[ -x /usr/sbin/gpsd_settime ]] && ((GPSD_REQUIRED == 1)) && (( $(/usr/sbin/mts-io-sysfs show capability/gps) == 1 )) && [[ -f "${GNSSRST}" ]]; then ++ if [[ -x /usr/sbin/gpsd_settime ]] && ((GPSD_REQUIRED == 1)) && (( has_gps == 1 )) && [[ -f "${GNSSRST}" ]]; then + . /etc/default/gpsd + [[ ${VERBOSE} != no ]] && logger -t 'etc_ntpd' -p daemon.info 'Have a GPS and it is required' + if ((SET_SYSTEM_CLOCK == 1)) && /usr/sbin/gpsd_settime ; then @@ -65,7 +86,7 @@ diff -Naru orig/ntpd new/ntpd } stopdaemon(){ echo -n "Stopping ntpd: " -@@ -50,8 +79,22 @@ +@@ -50,8 +93,22 @@ case "$1" in start) diff --git a/recipes-support/ntp/ntp_%.bbappend b/recipes-support/ntp/ntp_%.bbappend index c69eff0..436164a 100644 --- a/recipes-support/ntp/ntp_%.bbappend +++ b/recipes-support/ntp/ntp_%.bbappend @@ -1,4 +1,4 @@ -PR .= ".mlinux5" +PR .= ".mlinux6" SRC_URI += " file://ntpd-default \ file://ntp.conf.patch;patchdir=.. \ @@ -23,6 +23,8 @@ do_install_append() { touch ${drfile} chmod 664 ${drfile} chown -R ntp:ntp ${drdir} + tmp=$(sha256sum ${D}${sysconfdir}/ntp.conf | sed 's/ .*//') + echo "CONFIGFILE_sha256=${tmp}" >> ${D}${sysconfdir}/default/ntpd.default } pkg_postinst_${PN}_append() { update-alternatives --install ${sysconfdir}/default/ntpd ntpd-defaults ${sysconfdir}/default/ntpd.default 10 -- cgit v1.2.3 From 3542c2c2aa647132fb0f5a17d7bafcfb43779c29 Mon Sep 17 00:00:00 2001 From: Jason Reiss Date: Mon, 30 Dec 2019 08:09:50 -0600 Subject: lora: update LNS to 2.3.2 --- .../lora/lora-network-server_2.2.30.bb | 48 ---------------------- .../lora/lora-network-server_2.3.2.bb | 48 ++++++++++++++++++++++ 2 files changed, 48 insertions(+), 48 deletions(-) delete mode 100644 recipes-connectivity/lora/lora-network-server_2.2.30.bb create mode 100644 recipes-connectivity/lora/lora-network-server_2.3.2.bb diff --git a/recipes-connectivity/lora/lora-network-server_2.2.30.bb b/recipes-connectivity/lora/lora-network-server_2.2.30.bb deleted file mode 100644 index 6c05481..0000000 --- a/recipes-connectivity/lora/lora-network-server_2.2.30.bb +++ /dev/null @@ -1,48 +0,0 @@ -DESCRIPTION = "MultiTech LoRa Network Server" -PRIORITY = "optional" -SECTION = "console/utils" -LICENSE = "Proprietary" -LIC_FILES_CHKSUM = "file://LICENSE;md5=2b9a30a3082ddccd2c695a4dbeeab80d" -DEPENDS = "jsoncpp libmts mosquitto sqlite3 curl gnutls" -RDEPENDS_${PN} += "lora-packet-forwarder logrotate bash lora-logging" -PR = "r0" -CONFFILES_${PN} += "${sysconfdir}/default/lora-network-server ${sysconfdir}/init.d/lora-network-server" - -SRC_URI = "http://multitech.net/downloads/lora-network-server_${PV}.tar.gz \ - file://lora-network-server.init \ - file://lora-network-server.default \ - " - -SRC_URI[md5sum] = "c8b1589023b413e16fc3939d01a01e35" -SRC_URI[sha256sum] = "70bc0f6e703ec346efa195922ce2392a53f2069aa1a0fa63f2998af8e9a22922" - -# binaries are already stripped, so suppress warning -INSANE_SKIP_${PN} = "already-stripped" - -S = "${WORKDIR}" - -LORA_DIR = "/opt/lora" - -do_compile() { -} - -inherit update-rc.d - -INITSCRIPT_NAME = "lora-network-server" -INITSCRIPT_PARAMS = "defaults 80 30" - -do_install() { - install -d ${D}${LORA_DIR} - install -m 0755 lora-network-server-mlinux-4 ${D}${LORA_DIR}/lora-network-server - install -m 0755 lora-v21-keygen ${D}${LORA_DIR}/lora-v21-keygen - install -m 0644 config/lora-network-server.conf.sample ${D}${LORA_DIR}/lora-network-server.conf.sample - install -m 0644 config/lora-network-server.conf.full ${D}${LORA_DIR}/lora-network-server.conf.full - - install -d ${D}${sysconfdir}/default - install -m 0644 ${WORKDIR}/lora-network-server.default ${D}${sysconfdir}/default/lora-network-server - install -d ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/lora-network-server.init ${D}${sysconfdir}/init.d/lora-network-server -} - -FILES_${PN} += "${LORA_DIR}" -FILES_${PN}-dbg += "${LORA_DIR}/.debug" diff --git a/recipes-connectivity/lora/lora-network-server_2.3.2.bb b/recipes-connectivity/lora/lora-network-server_2.3.2.bb new file mode 100644 index 0000000..5afeb62 --- /dev/null +++ b/recipes-connectivity/lora/lora-network-server_2.3.2.bb @@ -0,0 +1,48 @@ +DESCRIPTION = "MultiTech LoRa Network Server" +PRIORITY = "optional" +SECTION = "console/utils" +LICENSE = "Proprietary" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2b9a30a3082ddccd2c695a4dbeeab80d" +DEPENDS = "jsoncpp libmts mosquitto sqlite3 curl gnutls" +RDEPENDS_${PN} += "lora-packet-forwarder logrotate bash lora-logging" +PR = "r0" +CONFFILES_${PN} += "${sysconfdir}/default/lora-network-server ${sysconfdir}/init.d/lora-network-server" + +SRC_URI = "http://multitech.net/downloads/lora-network-server_${PV}.tar.gz \ + file://lora-network-server.init \ + file://lora-network-server.default \ + " + +SRC_URI[md5sum] = "781eedf0ca284adb3a921a1ed2e745d2" +SRC_URI[sha256sum] = "06f3a1eabbb41289ac40792e2a0f60dcd5b86ba2bfd827db0a43c4777e43458c" + +# binaries are already stripped, so suppress warning +INSANE_SKIP_${PN} = "already-stripped" + +S = "${WORKDIR}" + +LORA_DIR = "/opt/lora" + +do_compile() { +} + +inherit update-rc.d + +INITSCRIPT_NAME = "lora-network-server" +INITSCRIPT_PARAMS = "defaults 80 30" + +do_install() { + install -d ${D}${LORA_DIR} + install -m 0755 lora-network-server-mlinux-4 ${D}${LORA_DIR}/lora-network-server + install -m 0755 lora-v21-keygen ${D}${LORA_DIR}/lora-v21-keygen + install -m 0644 config/lora-network-server.conf.sample ${D}${LORA_DIR}/lora-network-server.conf.sample + install -m 0644 config/lora-network-server.conf.full ${D}${LORA_DIR}/lora-network-server.conf.full + + install -d ${D}${sysconfdir}/default + install -m 0644 ${WORKDIR}/lora-network-server.default ${D}${sysconfdir}/default/lora-network-server + install -d ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/lora-network-server.init ${D}${sysconfdir}/init.d/lora-network-server +} + +FILES_${PN} += "${LORA_DIR}" +FILES_${PN}-dbg += "${LORA_DIR}/.debug" -- cgit v1.2.3 From 89f4bd5d090a0934c709405eb90dd241339626a9 Mon Sep 17 00:00:00 2001 From: Jason Reiss Date: Tue, 31 Dec 2019 14:32:12 -0600 Subject: lora: update to LNS 2.3.3, requires mosquitto 1.5.1 and jsoncpp changes --- .../lora/lora-network-server_2.3.2.bb | 48 ------------- .../lora/lora-network-server_2.3.3.bb | 48 +++++++++++++ .../mosquitto/mosquitto/config_mk.patch | 17 ++++- recipes-connectivity/mosquitto/mosquitto_1.5.1.bb | 81 ++++++++++++++++++++++ recipes-support/jsoncpp/jsoncpp-1.6.0/Makefile | 21 +++--- recipes-support/jsoncpp/jsoncpp_1.6.0.bb | 19 +++-- 6 files changed, 166 insertions(+), 68 deletions(-) delete mode 100644 recipes-connectivity/lora/lora-network-server_2.3.2.bb create mode 100644 recipes-connectivity/lora/lora-network-server_2.3.3.bb create mode 100644 recipes-connectivity/mosquitto/mosquitto_1.5.1.bb diff --git a/recipes-connectivity/lora/lora-network-server_2.3.2.bb b/recipes-connectivity/lora/lora-network-server_2.3.2.bb deleted file mode 100644 index 5afeb62..0000000 --- a/recipes-connectivity/lora/lora-network-server_2.3.2.bb +++ /dev/null @@ -1,48 +0,0 @@ -DESCRIPTION = "MultiTech LoRa Network Server" -PRIORITY = "optional" -SECTION = "console/utils" -LICENSE = "Proprietary" -LIC_FILES_CHKSUM = "file://LICENSE;md5=2b9a30a3082ddccd2c695a4dbeeab80d" -DEPENDS = "jsoncpp libmts mosquitto sqlite3 curl gnutls" -RDEPENDS_${PN} += "lora-packet-forwarder logrotate bash lora-logging" -PR = "r0" -CONFFILES_${PN} += "${sysconfdir}/default/lora-network-server ${sysconfdir}/init.d/lora-network-server" - -SRC_URI = "http://multitech.net/downloads/lora-network-server_${PV}.tar.gz \ - file://lora-network-server.init \ - file://lora-network-server.default \ - " - -SRC_URI[md5sum] = "781eedf0ca284adb3a921a1ed2e745d2" -SRC_URI[sha256sum] = "06f3a1eabbb41289ac40792e2a0f60dcd5b86ba2bfd827db0a43c4777e43458c" - -# binaries are already stripped, so suppress warning -INSANE_SKIP_${PN} = "already-stripped" - -S = "${WORKDIR}" - -LORA_DIR = "/opt/lora" - -do_compile() { -} - -inherit update-rc.d - -INITSCRIPT_NAME = "lora-network-server" -INITSCRIPT_PARAMS = "defaults 80 30" - -do_install() { - install -d ${D}${LORA_DIR} - install -m 0755 lora-network-server-mlinux-4 ${D}${LORA_DIR}/lora-network-server - install -m 0755 lora-v21-keygen ${D}${LORA_DIR}/lora-v21-keygen - install -m 0644 config/lora-network-server.conf.sample ${D}${LORA_DIR}/lora-network-server.conf.sample - install -m 0644 config/lora-network-server.conf.full ${D}${LORA_DIR}/lora-network-server.conf.full - - install -d ${D}${sysconfdir}/default - install -m 0644 ${WORKDIR}/lora-network-server.default ${D}${sysconfdir}/default/lora-network-server - install -d ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/lora-network-server.init ${D}${sysconfdir}/init.d/lora-network-server -} - -FILES_${PN} += "${LORA_DIR}" -FILES_${PN}-dbg += "${LORA_DIR}/.debug" diff --git a/recipes-connectivity/lora/lora-network-server_2.3.3.bb b/recipes-connectivity/lora/lora-network-server_2.3.3.bb new file mode 100644 index 0000000..8b75ea6 --- /dev/null +++ b/recipes-connectivity/lora/lora-network-server_2.3.3.bb @@ -0,0 +1,48 @@ +DESCRIPTION = "MultiTech LoRa Network Server" +PRIORITY = "optional" +SECTION = "console/utils" +LICENSE = "Proprietary" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2b9a30a3082ddccd2c695a4dbeeab80d" +DEPENDS = "jsoncpp libmts mosquitto sqlite3 curl gnutls" +RDEPENDS_${PN} += "lora-packet-forwarder logrotate bash lora-logging" +PR = "r0" +CONFFILES_${PN} += "${sysconfdir}/default/lora-network-server ${sysconfdir}/init.d/lora-network-server" + +SRC_URI = "http://multitech.net/downloads/lora-network-server_${PV}.tar.gz \ + file://lora-network-server.init \ + file://lora-network-server.default \ + " + +SRC_URI[md5sum] = "b0bc859e1f60b1a92b06c4bb97f70109" +SRC_URI[sha256sum] = "f8ba944a024531dbf58f2de462cb7ccfb5e3cb8d8dedb51077e7719f32f9adc4" + +# binaries are already stripped, so suppress warning +INSANE_SKIP_${PN} = "already-stripped" + +S = "${WORKDIR}" + +LORA_DIR = "/opt/lora" + +do_compile() { +} + +inherit update-rc.d + +INITSCRIPT_NAME = "lora-network-server" +INITSCRIPT_PARAMS = "defaults 80 30" + +do_install() { + install -d ${D}${LORA_DIR} + install -m 0755 lora-network-server-arm926ejste-mlinux-5.2 ${D}${LORA_DIR}/lora-network-server + install -m 0755 lora-v21-keygen-arm926ejste-mlinux-5.2 ${D}${LORA_DIR}/lora-v21-keygen + install -m 0644 config/lora-network-server.conf.sample ${D}${LORA_DIR}/lora-network-server.conf.sample + install -m 0644 config/lora-network-server.conf.full ${D}${LORA_DIR}/lora-network-server.conf.full + + install -d ${D}${sysconfdir}/default + install -m 0644 ${WORKDIR}/lora-network-server.default ${D}${sysconfdir}/default/lora-network-server + install -d ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/lora-network-server.init ${D}${sysconfdir}/init.d/lora-network-server +} + +FILES_${PN} += "${LORA_DIR}" +FILES_${PN}-dbg += "${LORA_DIR}/.debug" diff --git a/recipes-connectivity/mosquitto/mosquitto/config_mk.patch b/recipes-connectivity/mosquitto/mosquitto/config_mk.patch index 8c0494e..437022c 100644 --- a/recipes-connectivity/mosquitto/mosquitto/config_mk.patch +++ b/recipes-connectivity/mosquitto/mosquitto/config_mk.patch @@ -1,7 +1,18 @@ diff -Naur old/config.mk new/config.mk --- old/config.mk 2017-04-17 14:33:32.504351936 -0500 +++ new/config.mk 2017-04-17 14:34:27.061557282 -0500 -@@ -240,7 +240,7 @@ +@@ -83,9 +83,9 @@ + # Strip executables and shared libraries on install. + WITH_STRIP:=no + + # Build static libraries +-WITH_STATIC_LIBRARIES:=no ++WITH_STATIC_LIBRARIES:=yes + + # Build with async dns lookup support for bridges (temporary). Requires glibc. + #WITH_ADNS:=yes + +@@ -272,7 +272,7 @@ endif INSTALL?=install @@ -10,3 +21,7 @@ diff -Naur old/config.mk new/config.mk mandir=${prefix}/share/man localedir=${prefix}/share/locale STRIP?=strip + + + + diff --git a/recipes-connectivity/mosquitto/mosquitto_1.5.1.bb b/recipes-connectivity/mosquitto/mosquitto_1.5.1.bb new file mode 100644 index 0000000..947dcdf --- /dev/null +++ b/recipes-connectivity/mosquitto/mosquitto_1.5.1.bb @@ -0,0 +1,81 @@ +# This recipe was a merger of the Multitech Daisy 3.5 Recipe with the +# reciped found at: +# http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel-iot-middleware/plain/recipes-connectivity/mosquitto/mosquitto_1.4.10.bb +inherit autotools-brokensep +SUMMARY = "Open source MQTT v3.5 implemention" +DESCRIPTION = "Mosquitto is an open source (BSD licensed) message broker that implements the MQ Telemetry Transport protocol version 3.5. MQTT provides a lightweight method of carrying out messaging using a publish/subscribe model. " +HOMEPAGE = "http://mosquitto.org/" +SECTION = "console/network" +LICENSE = "EPL-1.0 & EDL-1.0" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=62ddc846179e908dc0c8efec4a42ef20" + +# util-linux is needed to provide libuuid dependancy +DEPENDS = "c-ares openssl util-linux" + +PR = "r3" + +SRC_URI = "http://mosquitto.org/files/source/${PN}-${PV}.tar.gz \ + file://mosquitto.init \ + file://mosquitto.conf \ + file://mosquitto.default \ + file://mosquitto.logrotate.conf \ + file://config_mk.patch \ + " +SRC_URI[md5sum] = "f98c99998a36a234f3a9d9b402b991db" +SRC_URI[sha256sum] = "8557bc7ae34dfaf32a0fb56d2491b7a7f731269c88337227233013502df4d5b0" + +export LIB_SUFFIX="${@d.getVar('baselib', True).replace('lib', '')}" +inherit autotools update-rc.d + +INITSCRIPT_NAME = "mosquitto" +INITSCRIPT_PARAMS = "defaults 70 30" +do_compile() { + WITH_STATIC_LIBRARIES=1 oe_runmake PREFIX=/usr WITH_STATIC_LIBRARIES=1 +} +do_install() { + # oe_runmake DESTDIR=${D} prefix=/usr install + oe_runmake install DESTDIR=${D} + install -m 0755 -d ${D}/usr/lib + install -m 0644 lib/libmosquitto.a ${D}${libdir}/ + + install -d ${D}${sysconfdir}/init.d + install -d ${D}${sysconfdir}/default + install -m 0755 ${WORKDIR}/mosquitto.init ${D}${sysconfdir}/init.d/mosquitto + install -m 0644 ${WORKDIR}/mosquitto.conf ${D}${sysconfdir}/mosquitto/ + install -m 0644 ${WORKDIR}/mosquitto.default ${D}${sysconfdir}/default/mosquitto + + install -d ${D}${sysconfdir}/logrotate.d + install -m 0644 ${WORKDIR}/mosquitto.logrotate.conf ${D}${sysconfdir}/logrotate.d/mosquitto.conf +} + +do_rm_work() { + echo "skipping" +} + + +PACKAGES += "libmosquitto1 libmosquittopp1 ${PN}-clients ${PN}-python" + +CONFFILES_${PN} = "${sysconfdir}/mosquitto.conf ${sysconfdir}/default/mosquitto" +FILES_${PN} = "${sbindir}/mosquitto \ + ${bindir}/mosquitto_passwd \ + ${sysconfdir}/mosquitto \ + ${systemd_unitdir}/system/mosquitto.service \ + ${sysconfdir}/ \ +" + +FILES_libmosquitto1 = "${libdir}/libmosquitto.so.1" + +FILES_libmosquittopp1 = "${libdir}/libmosquittopp.so.1" + +FILES_${PN}-clients = "${bindir}/mosquitto_pub \ + ${bindir}/mosquitto_sub \ +" + +FILES_${PN}-staticdev += "${libdir}/libmosquitto.a" + +FILES_${PN}-python = "/usr/lib/python2.7/site-packages" + +inherit systemd + +SYSTEMD_SERVICE_${PN} = "mosquitto.service" + diff --git a/recipes-support/jsoncpp/jsoncpp-1.6.0/Makefile b/recipes-support/jsoncpp/jsoncpp-1.6.0/Makefile index 3be3743..7df3d63 100644 --- a/recip