Subject: bin/12198: add support for SSH_CONF_DIR to ssh
To: None <gnats-bugs@gnats.netbsd.org>
From: None <jbernard@mines.edu>
List: netbsd-bugs
Date: 02/12/2001 20:53:58
>Number:         12198
>Category:       bin
>Synopsis:       add support for SSH_CONF_DIR to ssh
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    bin-bug-people
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Mon Feb 12 19:55:01 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     Jim Bernard
>Release:        February 12, 2001
>Organization:
>Environment:
System: NetBSD zoo 1.5R NetBSD 1.5R (ZOO-$Revision: 1.61 $) #0: Sat Feb 3 13:32:09 MST 2001 jim@zoo:/home/tmp/compile/sys/arch/i386/compile/ZOO i386
Architecture: i386
Machine: i386
>Description:
	The collection of configuration and related files needed to operate
	ssh and sshd is large enough to constitute a pretty ugly mess in
	/etc, the default location of the files (ssh.conf, ssh_host_dsa_key,
	ssh_host_dsa_key.pub, ssh_host_key, ssh_host_key.pub, ssh_known_hosts,
	ssh_known_hosts2, sshd.conf, primes).  It's much nicer to put these
	all into a subdirectory, such as /etc/ssh.  The option to do that
	has existed in the packaged versions of ssh for some time, in the
	form of a mk.conf variable called SSH_CONF_DIR.  It would be really
	nice to have that available for the in-tree openssh as well.  A
	pair of patches implementing this is attached below.

>How-To-Repeat:
	Use the in-tree openssh.  Note the mess it makes in /etc.  Wish that
	it were better.

>Fix:
	These patches are to src/crypto/dist/ssh/pathnames.h and
	src/usr.bin/ssh/Makefile.inc.  The default behavior of putting
	all the files in /etc is maintained, though I would think the
	rest of the world would be dying to move these into a subdirectory
	too and would prefer to move the default location instead of
	making this optional change.  I sent a message to Markus Friedl
	(maintainer of openssh) asking if he would consider changing the
	default but received no response.

--- pathnames.h-dist	Mon Feb 12 09:09:43 2001
+++ pathnames.h	Mon Feb 12 15:11:59 2001
@@ -10,11 +10,15 @@
  * software must be clearly marked as such, and if the derived work is
  * incompatible with the protocol description in the RFC file, it must be
  * called by a name other than "ssh" or "Secure Shell".
  */
 
+#ifdef SSH_CONF_DIR
+#define ETCDIR				SSH_CONF_DIR
+#else
 #define ETCDIR				"/etc"
+#endif
 #define _PATH_SSH_PIDDIR		"/var/run"
 
 /*
  * System-wide file containing host keys of known hosts.  This file should be
  * world-readable.
--- Makefile.inc-dist	Mon Feb 12 10:31:24 2001
+++ Makefile.inc	Mon Feb 12 16:11:16 2001
@@ -1,10 +1,13 @@
 #	$NetBSD: Makefile.inc,v 1.5 2001/02/07 17:05:36 itojun Exp $
 
 SSHDIST?= ${.CURDIR}/../../../crypto/dist/ssh
 
 CPPFLAGS+=-I${SSHDIST} -DHAVE_LOGIN_CAP
+.if !empty(SSH_CONF_DIR)
+CPPFLAGS+=-DSSH_CONF_DIR=\"${SSH_CONF_DIR}\"
+.endif
 .PATH: ${SSHDIST}
 
 .if defined(PROG)
 LIBSSHOBJDIR != cd ${.CURDIR}/../libssh && ${PRINTOBJDIR}
 LDADD+= -L${LIBSSHOBJDIR} -lssh
>Release-Note:
>Audit-Trail:
>Unformatted: