update buildroot to 2017.02.11
This commit is contained in:
@@ -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
|
||||
@@ -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
|
||||
@@ -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)
|
||||
@@ -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>
|
||||
@@ -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
|
||||
|
||||
10
bsp/buildroot-2017.02.11/package/openssh/Config.in
Normal file
10
bsp/buildroot-2017.02.11/package/openssh/Config.in
Normal 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/
|
||||
47
bsp/buildroot-2017.02.11/package/openssh/S50sshd
Normal file
47
bsp/buildroot-2017.02.11/package/openssh/S50sshd
Normal 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 $?
|
||||
|
||||
4
bsp/buildroot-2017.02.11/package/openssh/openssh.hash
Normal file
4
bsp/buildroot-2017.02.11/package/openssh/openssh.hash
Normal 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
|
||||
69
bsp/buildroot-2017.02.11/package/openssh/openssh.mk
Normal file
69
bsp/buildroot-2017.02.11/package/openssh/openssh.mk
Normal 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))
|
||||
11
bsp/buildroot-2017.02.11/package/openssh/sshd.service
Normal file
11
bsp/buildroot-2017.02.11/package/openssh/sshd.service
Normal 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
|
||||
Reference in New Issue
Block a user