update buildroot to 2017.02.11

This commit is contained in:
jbnadal
2018-05-22 15:35:47 +02:00
parent 4bf1f5e091
commit a3c10bd762
9257 changed files with 433426 additions and 1701 deletions

View File

@@ -0,0 +1,44 @@
From f4fcd8c788a4854d4ebae400cf55e3957f906835 Mon Sep 17 00:00:00 2001
From: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Date: Tue, 20 Jun 2017 16:42:11 +0100
Subject: [PATCH] configure.ac: detect MIPS ABI
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
[Upstream commit: ttps://github.com/openssh/openssh-portable/commit/f4fcd8c788a4854d4ebae400cf55e3957f906835]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
configure.ac | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/configure.ac b/configure.ac
index 18079acba..f990cfe08 100644
--- a/configure.ac
+++ b/configure.ac
@@ -746,6 +746,27 @@ main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16))
fi
AC_CHECK_HEADERS([linux/seccomp.h linux/filter.h linux/audit.h], [],
[], [#include <linux/types.h>])
+ # Obtain MIPS ABI
+ case "$host" in
+ mips*)
+ AC_COMPILE_IFELSE([
+#if _MIPS_SIM != _ABIO32
+#error
+#endif
+ ],[mips_abi="o32"],[AC_COMPILE_IFELSE([
+#if _MIPS_SIM != _ABIN32
+#error
+#endif
+ ],[mips_abi="n32"],[AC_COMPILE_IFELSE([
+#if _MIPS_SIM != _ABI64
+#error
+#endif
+ ],[mips_abi="n64"],[AC_MSG_ERROR([unknown MIPS ABI])
+ ])
+ ])
+ ])
+ ;;
+ esac
AC_MSG_CHECKING([for seccomp architecture])
seccomp_audit_arch=
case "$host" in

View File

@@ -0,0 +1,63 @@
From afc3e31b637db9dae106d4fad78f7b481c8c24e3 Mon Sep 17 00:00:00 2001
From: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Date: Tue, 20 Jun 2017 16:42:28 +0100
Subject: [PATCH] configure.ac: properly set seccomp_audit_arch for MIPS64
Currently seccomp_audit_arch is set to AUDIT_ARCH_MIPS64 or
AUDIT_ARCH_MIPSEL64 (depending on the endinness) when openssh is built
for MIPS64. However, that's only valid for n64 ABI. The right macros for
n32 ABI defined in seccomp.h are AUDIT_ARCH_MIPS64N32 and
AUDIT_ARCH_MIPSEL64N32, for big and little endian respectively.
Because of that an sshd built for MIPS64 n32 rejects connection attempts
and the output of strace reveals that the problem is related to seccomp
audit:
[pid 194] prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, {len=57,
filter=0x555d5da0}) = 0
[pid 194] write(7, "\0\0\0]\0\0\0\5\0\0\0Ulist_hostkey_types: "..., 97) = ?
[pid 193] <... poll resumed> ) = 2 ([{fd=5, revents=POLLIN|POLLHUP},
{fd=6, revents=POLLHUP}])
[pid 194] +++ killed by SIGSYS +++
This patch fixes that problem by setting the right value to
seccomp_audit_arch taking into account the MIPS64 ABI.
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
[Upstream commit: https://github.com/openssh/openssh-portable/commit/afc3e31b637db9dae106d4fad78f7b481c8c24e3]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
configure.ac | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index f990cfe08..5d640f679 100644
--- a/configure.ac
+++ b/configure.ac
@@ -801,10 +801,24 @@ main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16))
seccomp_audit_arch=AUDIT_ARCH_MIPSEL
;;
mips64-*)
- seccomp_audit_arch=AUDIT_ARCH_MIPS64
+ case "$mips_abi" in
+ "n32")
+ seccomp_audit_arch=AUDIT_ARCH_MIPS64N32
+ ;;
+ "n64")
+ seccomp_audit_arch=AUDIT_ARCH_MIPS64
+ ;;
+ esac
;;
mips64el-*)
- seccomp_audit_arch=AUDIT_ARCH_MIPSEL64
+ case "$mips_abi" in
+ "n32")
+ seccomp_audit_arch=AUDIT_ARCH_MIPSEL64N32
+ ;;
+ "n64")
+ seccomp_audit_arch=AUDIT_ARCH_MIPSEL64
+ ;;
+ esac
;;
esac
if test "x$seccomp_audit_arch" != "x" ; then

View File

@@ -0,0 +1,44 @@
When PAM is enabled, openssh makes its own static versions of pthreads
functions. But when built with a uclibc toolchain, pthreads.h gets
indirectly included. The clashing exported and static definitions of
the pthreads functions then cause a compile error. This patch fixes
the problem by changing the static pthread function names with macros
when the static functions are defined.
Signed-off-by: Danomi Manchego <danomimanchego123@gmail.com>
diff -urN openssh-6.1p1.orig/auth-pam.c openssh-6.1p1/auth-pam.c
--- openssh-6.1p1.orig/auth-pam.c 2009-07-12 08:07:21.000000000 -0400
+++ openssh-6.1p1/auth-pam.c 2012-09-15 19:49:47.677288199 -0400
@@ -166,6 +166,7 @@
sigdie("PAM: authentication thread exited uncleanly");
}
+#define pthread_exit pthread_exit_AVOID_UCLIBC_PTHREAD_CLASH
/* ARGSUSED */
static void
pthread_exit(void *value)
@@ -173,6 +174,7 @@
_exit(0);
}
+#define pthread_create pthread_create_AVOID_UCLIBC_PTHREAD_CLASH
/* ARGSUSED */
static int
pthread_create(sp_pthread_t *thread, const void *attr,
@@ -200,6 +202,7 @@
}
}
+#define pthread_cancel pthread_cancel_AVOID_UCLIBC_PTHREAD_CLASH
static int
pthread_cancel(sp_pthread_t thread)
{
@@ -207,6 +210,7 @@
return (kill(thread, SIGTERM));
}
+#define pthread_join pthread_join_AVOID_UCLIBC_PTHREAD_CLASH
/* ARGSUSED */
static int
pthread_join(sp_pthread_t thread, void **value)

View File

@@ -0,0 +1,49 @@
Update patch from 2fea21799223d41605556858a95b55e69e9960ca to openssh
version 6.8p1
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
diff -Nura openssh-6.8p1.orig/openbsd-compat/bsd-poll.c openssh-6.8p1/openbsd-compat/bsd-poll.c
--- openssh-6.8p1.orig/openbsd-compat/bsd-poll.c 2015-03-18 07:11:46.184620677 -0300
+++ openssh-6.8p1/openbsd-compat/bsd-poll.c 2015-03-18 07:12:29.120094555 -0300
@@ -19,6 +19,7 @@
#include "includes.h"
#if !defined(HAVE_POLL)
+#include <sys/param.h>
#include <sys/types.h>
#include <sys/time.h>
#ifdef HAVE_SYS_SELECT_H
diff -Nura openssh-6.8p1.orig/sshd.c openssh-6.8p1/sshd.c
--- openssh-6.8p1.orig/sshd.c 2015-03-18 07:11:46.187620780 -0300
+++ openssh-6.8p1/sshd.c 2015-03-18 07:13:11.889562735 -0300
@@ -44,6 +44,7 @@
#include "includes.h"
+#include <sys/param.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
diff -Nura openssh-6.8p1.orig/ssh-keyscan.c openssh-6.8p1/ssh-keyscan.c
--- openssh-6.8p1.orig/ssh-keyscan.c 2015-03-18 07:11:46.180620539 -0300
+++ openssh-6.8p1/ssh-keyscan.c 2015-03-18 07:13:32.092256248 -0300
@@ -9,6 +9,7 @@
#include "includes.h"
+#include <sys/param.h>
#include <sys/types.h>
#include "openbsd-compat/sys-queue.h"
#include <sys/resource.h>
diff -Nura openssh-6.8p1.orig/ssh-pkcs11-helper.c openssh-6.8p1/ssh-pkcs11-helper.c
--- openssh-6.8p1.orig/ssh-pkcs11-helper.c 2015-03-18 07:11:46.182620608 -0300
+++ openssh-6.8p1/ssh-pkcs11-helper.c 2015-03-18 07:13:43.620651993 -0300
@@ -17,6 +17,7 @@
#include "includes.h"
+#include <sys/param.h>
#include <sys/types.h>
#ifdef HAVE_SYS_TIME_H
# include <sys/time.h>

View File

@@ -0,0 +1,35 @@
From 9a43657a3dcb868b4f36ade3aba5dcf0871fb412 Mon Sep 17 00:00:00 2001
From: Peter Korsgaard <peter@korsgaard.com>
Date: Mon, 30 Oct 2017 23:36:56 +0100
Subject: [PATCH] openbsd-compat/bsd-getpagesize.c: include includes.h for
config.h defines
The configure script checks for getpagesize() and sets HAVE_GETPAGESIZE in
config.h, but bsd-getpagesize.c forgot to include includes.h (which
indirectly includes config.h) so the checks always fails, causing linker
issues when linking statically on systems with getpagesize():
http://autobuild.buildroot.net/results/8cc/8cc30818a400c7a392a3de787cabc9cd8425495f/build-end.log
Fix it by including includes.h
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
---
openbsd-compat/bsd-getpagesize.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/openbsd-compat/bsd-getpagesize.c b/openbsd-compat/bsd-getpagesize.c
index 9daddfbd..416a8d4c 100644
--- a/openbsd-compat/bsd-getpagesize.c
+++ b/openbsd-compat/bsd-getpagesize.c
@@ -1,5 +1,7 @@
/* Placed in the public domain */
+#include "includes.h"
+
#ifndef HAVE_GETPAGESIZE
#include <unistd.h>
--
2.11.0

View File

@@ -0,0 +1,10 @@
config BR2_PACKAGE_OPENSSH
bool "openssh"
depends on BR2_USE_MMU # fork()
select BR2_PACKAGE_OPENSSL
select BR2_PACKAGE_ZLIB
help
A free version of the SSH protocol suite of network connectivity
tools. The standard 'ssh', 'sshd', 'scp', and friends.
http://www.openssh.com/

View File

@@ -0,0 +1,47 @@
#!/bin/sh
#
# sshd Starts sshd.
#
# Make sure the ssh-keygen progam exists
[ -f /usr/bin/ssh-keygen ] || exit 0
umask 077
start() {
# Create any missing keys
/usr/bin/ssh-keygen -A
printf "Starting sshd: "
/usr/sbin/sshd
touch /var/lock/sshd
echo "OK"
}
stop() {
printf "Stopping sshd: "
killall sshd
rm -f /var/lock/sshd
echo "OK"
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
restart
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit $?

View File

@@ -0,0 +1,4 @@
# From http://www.openssh.com/txt/release-7.6 (base64 encoded)
sha256 a323caeeddfe145baaa0db16e98d784b1fbc7dd436a6bf1f479dfd5cd1d21723 openssh-7.6p1.tar.gz
# Locally calculated
sha256 05a4c25ef464e19656c5259bd4f4da8428efab01044f3541b79fbb3ff209350f LICENCE

View File

@@ -0,0 +1,69 @@
################################################################################
#
# openssh
#
################################################################################
OPENSSH_VERSION = 7.6p1
OPENSSH_SITE = http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable
OPENSSH_LICENSE = BSD-3c, BSD-2c, Public Domain
OPENSSH_LICENSE_FILES = LICENCE
# Autoreconf needed due to the following patches modifying configure.ac:
# 0001-configure-ac-detect-mips-abi.patch
# 0002-configure-ac-properly-set-seccomp-audit-arch-for-mips64.patch
OPENSSH_AUTORECONF = YES
OPENSSH_CONF_ENV = LD="$(TARGET_CC)" LDFLAGS="$(TARGET_CFLAGS)"
OPENSSH_CONF_OPTS = \
--sysconfdir=/etc/ssh \
--disable-lastlog \
--disable-utmp \
--disable-utmpx \
--disable-wtmp \
--disable-wtmpx \
--disable-strip
define OPENSSH_USERS
sshd -1 sshd -1 * - - - SSH drop priv user
endef
ifeq ($(BR2_TOOLCHAIN_SUPPORTS_PIE),)
OPENSSH_CONF_OPTS += --without-pie
endif
OPENSSH_DEPENDENCIES = zlib openssl
ifeq ($(BR2_PACKAGE_LINUX_PAM),y)
define OPENSSH_INSTALL_PAM_CONF
$(INSTALL) -D -m 644 $(@D)/contrib/sshd.pam.generic $(TARGET_DIR)/etc/pam.d/sshd
$(SED) '\%password required /lib/security/pam_cracklib.so%d' $(TARGET_DIR)/etc/pam.d/sshd
$(SED) 's/\#UsePAM no/UsePAM yes/' $(TARGET_DIR)/etc/ssh/sshd_config
endef
OPENSSH_DEPENDENCIES += linux-pam
OPENSSH_CONF_OPTS += --with-pam
OPENSSH_POST_INSTALL_TARGET_HOOKS += OPENSSH_INSTALL_PAM_CONF
else
OPENSSH_CONF_OPTS += --without-pam
endif
ifeq ($(BR2_PACKAGE_LIBSELINUX),y)
OPENSSH_DEPENDENCIES += libselinux
OPENSSH_CONF_OPTS += --with-selinux
else
OPENSSH_CONF_OPTS += --without-selinux
endif
define OPENSSH_INSTALL_INIT_SYSTEMD
$(INSTALL) -D -m 644 package/openssh/sshd.service \
$(TARGET_DIR)/usr/lib/systemd/system/sshd.service
mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
ln -fs ../../../../usr/lib/systemd/system/sshd.service \
$(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/sshd.service
endef
define OPENSSH_INSTALL_INIT_SYSV
$(INSTALL) -D -m 755 package/openssh/S50sshd \
$(TARGET_DIR)/etc/init.d/S50sshd
endef
$(eval $(autotools-package))

View File

@@ -0,0 +1,11 @@
[Unit]
Description=OpenSSH server daemon
After=syslog.target network.target auditd.service
[Service]
ExecStartPre=/usr/bin/ssh-keygen -A
ExecStart=/usr/sbin/sshd -D -e
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target