openssh: don't download patch from Github
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sun, 2 Jul 2017 16:53:31 +0000 (18:53 +0200)
committerPeter Korsgaard <peter@korsgaard.com>
Sun, 2 Jul 2017 22:05:18 +0000 (00:05 +0200)
Patches downloaded from Github are not stable, so bring them in the
tree.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/openssh/0001-configure-ac-detect-mips-abi.patch [new file with mode: 0644]
package/openssh/0001-fix-pam-uclibc-pthreads-clash.patch [deleted file]
package/openssh/0002-configure-ac-properly-set-seccomp-audit-arch-for-mips64.patch [new file with mode: 0644]
package/openssh/0002-fix-howmany-include.patch [deleted file]
package/openssh/0003-fix-pam-uclibc-pthreads-clash.patch [new file with mode: 0644]
package/openssh/0004-fix-howmany-include.patch [new file with mode: 0644]
package/openssh/openssh.hash
package/openssh/openssh.mk

diff --git a/package/openssh/0001-configure-ac-detect-mips-abi.patch b/package/openssh/0001-configure-ac-detect-mips-abi.patch
new file mode 100644 (file)
index 0000000..0d43e6b
--- /dev/null
@@ -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
diff --git a/package/openssh/0001-fix-pam-uclibc-pthreads-clash.patch b/package/openssh/0001-fix-pam-uclibc-pthreads-clash.patch
deleted file mode 100644 (file)
index d9bc6e5..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-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)
diff --git a/package/openssh/0002-configure-ac-properly-set-seccomp-audit-arch-for-mips64.patch b/package/openssh/0002-configure-ac-properly-set-seccomp-audit-arch-for-mips64.patch
new file mode 100644 (file)
index 0000000..879af5e
--- /dev/null
@@ -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
diff --git a/package/openssh/0002-fix-howmany-include.patch b/package/openssh/0002-fix-howmany-include.patch
deleted file mode 100644 (file)
index 7a2a8e3..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-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>
diff --git a/package/openssh/0003-fix-pam-uclibc-pthreads-clash.patch b/package/openssh/0003-fix-pam-uclibc-pthreads-clash.patch
new file mode 100644 (file)
index 0000000..d9bc6e5
--- /dev/null
@@ -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)
diff --git a/package/openssh/0004-fix-howmany-include.patch b/package/openssh/0004-fix-howmany-include.patch
new file mode 100644 (file)
index 0000000..7a2a8e3
--- /dev/null
@@ -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>
index ed628fa98b97d70f784f1dfff92e894eff8985a5..3685bc0dbf6997c017ac43ba97c3263d54bf9d18 100644 (file)
@@ -1,4 +1,2 @@
 # From http://www.openssh.com/txt/release-7.5 (base64 encoded)
 sha256 9846e3c5fab9f0547400b4d2c017992f914222b3fd1f8eee6c7dc6bc5e59f9f0  openssh-7.5p1.tar.gz
-sha256 310860606c4175cdfd095e724f624df27340c89a916f7a09300bcb7988d5cfbf  afc3e31b637db9dae106d4fad78f7b481c8c24e3.patch
-sha256 395aa1006967713b599555440e09f898781a5559e496223587401768ece10904  f4fcd8c788a4854d4ebae400cf55e3957f906835.patch
index 24d34e8d1591dd9927037511210e23f10a1df589..38a32bf54ddd92d57fb018f978ee65a9202f602b 100644 (file)
@@ -9,11 +9,9 @@ OPENSSH_SITE = http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable
 OPENSSH_LICENSE = BSD-3-Clause, BSD-2-Clause, Public Domain
 OPENSSH_LICENSE_FILES = LICENCE
 # Autoreconf needed due to the following patches modifying configure.ac:
-# f4fcd8c788a4854d4ebae400cf55e3957f906835.patch
-# afc3e31b637db9dae106d4fad78f7b481c8c24e3.patch
+# 0001-configure-ac-detect-mips-abi.patch
+# 0002-configure-ac-properly-set-seccomp-audit-arch-for-mips64.patch
 OPENSSH_AUTORECONF = YES
-OPENSSH_PATCH = https://github.com/openssh/openssh-portable/commit/f4fcd8c788a4854d4ebae400cf55e3957f906835.patch \
-       https://github.com/openssh/openssh-portable/commit/afc3e31b637db9dae106d4fad78f7b481c8c24e3.patch
 OPENSSH_CONF_ENV = LD="$(TARGET_CC)" LDFLAGS="$(TARGET_CFLAGS)"
 OPENSSH_CONF_OPTS = \
        --sysconfdir=/etc/ssh \