mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-22 06:57:51 +00:00
Noux: add noux-pkg/openssh
This commit is contained in:
parent
5c413929ef
commit
46597d3b17
22
ports/ports/openssh.mk
Normal file
22
ports/ports/openssh.mk
Normal file
@ -0,0 +1,22 @@
|
||||
OPENSSH = openssh-6.1p1
|
||||
OPENSSH_TGZ = $(OPENSSH).tar.gz
|
||||
OPENSSH_URL = ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/$(OPENSSH).tar.gz
|
||||
|
||||
#
|
||||
# Interface to top-level prepare Makefile
|
||||
#
|
||||
PORTS += $(OPENSSH)
|
||||
|
||||
prepare:: $(CONTRIB_DIR)/$(OPENSSH)
|
||||
|
||||
#
|
||||
# Port-specific local rules
|
||||
#
|
||||
$(DOWNLOAD_DIR)/$(OPENSSH_TGZ):
|
||||
$(VERBOSE)wget -c -P $(DOWNLOAD_DIR) $(OPENSSH_URL) && touch $@
|
||||
|
||||
$(CONTRIB_DIR)/$(OPENSSH): $(DOWNLOAD_DIR)/$(OPENSSH_TGZ)
|
||||
$(VERBOSE)tar xfz $< -C $(CONTRIB_DIR) && touch $@
|
||||
$(VERBOSE)patch -d contrib/ -N -p0 < src/noux-pkg/openssh/monitor_fdpass.c.patch
|
||||
$(VERBOSE)patch -d contrib/ -N -p0 < src/noux-pkg/openssh/sshconnect.h.patch
|
||||
$(VERBOSE)patch -d contrib/ -N -p0 < src/noux-pkg/openssh/includes_h.patch
|
12
ports/src/noux-pkg/openssh/includes_h.patch
Normal file
12
ports/src/noux-pkg/openssh/includes_h.patch
Normal file
@ -0,0 +1,12 @@
|
||||
--- openssh-6.1p1/includes.h.orig 2012-11-14 16:18:25.970072293 +0100
|
||||
+++ openssh-6.1p1/includes.h 2012-11-14 16:18:48.860209365 +0100
|
||||
@@ -18,7 +18,8 @@
|
||||
|
||||
#include "config.h"
|
||||
|
||||
-#define _GNU_SOURCE /* activate extra prototypes for glibc */
|
||||
+/* already defined by noux.mk */
|
||||
+//#define _GNU_SOURCE /* activate extra prototypes for glibc */
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h> /* For CMSG_* */
|
16
ports/src/noux-pkg/openssh/monitor_fdpass.c.patch
Normal file
16
ports/src/noux-pkg/openssh/monitor_fdpass.c.patch
Normal file
@ -0,0 +1,16 @@
|
||||
We do not have poll.h and since struct pollfd etc. pp is defined in
|
||||
sys/poll.h we use it instead.
|
||||
|
||||
--- openssh-6.1p1/monitor_fdpass.c.orig
|
||||
+++ openssh-6.1p1/monitor_fdpass.c
|
||||
@@ -36,6 +36,10 @@
|
||||
#include <errno.h>
|
||||
#ifdef HAVE_POLL_H
|
||||
#include <poll.h>
|
||||
+#else
|
||||
+# ifdef HAVE_SYS_POLL_H
|
||||
+# include <sys/poll.h>
|
||||
+# endif
|
||||
#endif
|
||||
#include <string.h>
|
||||
#include <stdarg.h>
|
20
ports/src/noux-pkg/openssh/sshconnect.h.patch
Normal file
20
ports/src/noux-pkg/openssh/sshconnect.h.patch
Normal file
@ -0,0 +1,20 @@
|
||||
set*uid() is not implemented but it does not matter anyway because there
|
||||
is only one user per noux instance.
|
||||
|
||||
--- openssh-6.1p1/sshconnect.h.orig
|
||||
+++ openssh-6.1p1/sshconnect.h
|
||||
@@ -55,6 +55,7 @@ void ssh_userauth2(const char *, const char *, char *, Sensitive *);
|
||||
void ssh_put_password(char *);
|
||||
int ssh_local_cmd(const char *);
|
||||
|
||||
+#if 0
|
||||
/*
|
||||
* Macros to raise/lower permissions.
|
||||
*/
|
||||
@@ -73,3 +74,6 @@ int ssh_local_cmd(const char *);
|
||||
strerror(errno)); \
|
||||
errno = save_errno; \
|
||||
} while (0)
|
||||
+#endif
|
||||
+#define PRIV_START
|
||||
+#define PRIV_END
|
64
ports/src/noux-pkg/openssh/target.mk
Normal file
64
ports/src/noux-pkg/openssh/target.mk
Normal file
@ -0,0 +1,64 @@
|
||||
TARGET = openssh
|
||||
|
||||
#
|
||||
# This prefix 'magic' is needed because OpenSSH uses $exec_prefix
|
||||
# while compiling (e.g. -DSSH_PATH) and in the end the $prefix and
|
||||
# $exec_prefix path differ.
|
||||
#
|
||||
NOUX_CONFIGURE_ARGS += --disable-ip6 \
|
||||
--with-md5-passwords \
|
||||
--without-zlib-version-check \
|
||||
--with-ssl-engine \
|
||||
--disable-finger \
|
||||
--disable-gopher \
|
||||
--disable-news \
|
||||
--disable-ftp \
|
||||
--disable-rpath-hack \
|
||||
--disable-utmpx \
|
||||
--disable-strip \
|
||||
--exec-prefix= \
|
||||
--bindir=/bin \
|
||||
--sbindir=/bin \
|
||||
--libexecdir=/bin
|
||||
|
||||
LIBS += libcrypto libssl zlib libc_resolv
|
||||
|
||||
noux_built.tag: Makefile Makefile_patch
|
||||
|
||||
Makefile_patch: Makefile
|
||||
@#
|
||||
@# Our $(LDFLAGS) contain options which are usable by gcc(1)
|
||||
@# only. So instead of using ld(1) to link the binary, we have
|
||||
@# to use gcc(1).
|
||||
@#
|
||||
$(VERBOSE)sed -i 's|^LD=.*|LD=$(CC)|' Makefile
|
||||
@#
|
||||
@# We do not want to generate host-keys because we are crosscompiling
|
||||
@# and we can not run Genode binaries on the build system.
|
||||
@#
|
||||
$(VERBOSE)sed -i 's|^install:.*||' Makefile
|
||||
$(VERBOSE)sed -i 's|^install-nokeys:|install:|' Makefile
|
||||
@#
|
||||
@# The path of ssh(1) is hardcoded to $(bindir)/ssh which in our
|
||||
@# case is insufficient.
|
||||
@#
|
||||
$(VERBOSE)sed -i 's|^SSH_PROGRAM=.*|SSH_PROGRAM=/bin/ssh|' Makefile
|
||||
|
||||
|
||||
#
|
||||
# Make the zlib linking test succeed
|
||||
#
|
||||
Makefile: dummy_libs
|
||||
|
||||
NOUX_LDFLAGS += -L$(PWD)
|
||||
|
||||
dummy_libs: libz.a libcrypto.a libssl.a
|
||||
|
||||
libcrypto.a:
|
||||
$(VERBOSE)$(AR) -rc $@
|
||||
libssl.a:
|
||||
$(VERBOSE)$(AR) -rc $@
|
||||
libz.a:
|
||||
$(VERBOSE)$(AR) -rc $@
|
||||
|
||||
include $(REP_DIR)/mk/noux.mk
|
Loading…
Reference in New Issue
Block a user