Mercurial > dropbear
view INSTALL @ 1499:2d450c1056e3
options: Complete the transition to numeric toggles (`#if')
For the sake of review, this commit alters only the code; the affiliated
comments within the source files also need to be updated, but doing so
now would obscure the operational changes that have been made here.
* All on/off options have been switched to the numeric `#if' variant;
that is the only way to make this `default_options.h.in' thing work
in a reasonable manner.
* There is now some very minor compile-time checking of the user's
choice of options.
* NO_FAST_EXPTMOD doesn't seem to be used, so it has been removed.
* ENABLE_USER_ALGO_LIST was supposed to be renamed DROPBEAR_USER_ALGO_LIST,
and this commit completes that work.
* DROPBEAR_FUZZ seems to be a relatively new, as-yet undocumented option,
which was added by the following commit:
commit 6e0b539e9ca0b5628c6c5a3d118ad6a2e79e8039
Author: Matt Johnston <[email protected]>
Date: Tue May 23 22:29:21 2017 +0800
split out checkpubkey_line() separately
It has now been added to `sysoptions.h' and defined as `0' by default.
* The configuration option `DROPBEAR_PASSWORD_ENV' is no longer listed in
`default_options.h.in'; it is no longer meant to be set by the user, and
is instead left to be defined in `sysoptions.h' (where it was already being
defined) as merely the name of the environment variable in question:
DROPBEAR_PASSWORD
To enable or disable use of that environment variable, the user must now
toggle `DROPBEAR_USE_DROPBEAR_PASSWORD'.
* The sFTP support is now toggled by setting `DROPBEAR_SFTPSERVER', and the
path of the sFTP server program is set independently through the usual
SFTPSERVER_PATH.
author | Michael Witten <mfwitten@gmail.com> |
---|---|
date | Thu, 20 Jul 2017 19:38:26 +0000 |
parents | 72fd994fe7bd |
children | d35cf9a5e0b5 |
line wrap: on
line source
Basic Dropbear build instructions: - Edit localoptions.h to set which features you want. Available options are described in default_options.h.in, these will be overridden by anything set in localoptions.h - If using a Mercurial or Git checkout, "autoconf; autoheader" - Configure for your system: ./configure (optionally with --disable-zlib or --disable-syslog, or --help for other options) - Compile: make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" - Optionally install, or copy the binaries another way make install (/usr/local/bin is usual default): or make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" install (you can leave items out of the PROGRAMS list to avoid compiling them. If you recompile after changing the PROGRAMS list, you *MUST* "make clean" before recompiling - bad things will happen otherwise) See MULTI for instructions on making all-in-one binaries. If you want to compile statically use ./configure --enable-static By default Dropbear adds various build flags that improve robustness against programming bugs (good for security). If these cause problems they can be disabled with ./configure --disable-harden Binaries can be stripped with "make strip" ============================================================================ If you're compiling for a 386-class CPU, you will probably need to add CFLAGS=-DLTC_NO_BSWAP so that libtomcrypt doesn't use 486+ instructions. ============================================================================ Compiling with uClibc: Firstly, make sure you have at least uclibc 0.9.17, as getusershell() in prior versions is broken. Also note that you may get strange issues if your uClibc headers don't match the library you are running with, ie the headers might say that shadow password support exists, but the libraries don't have it. Compiling for uClibc should be the same as normal, just set CC to the magic uClibc toolchain compiler (ie export CC=i386-uclibc-gcc or whatever). You can use "make STATIC=1" to make statically linked binaries, and it is advisable to strip the binaries too. If you're looking to make a small binary, you should remove unneeded ciphers and MD5, by editing options.h It is possible to compile zlib in, by copying zlib.h and zconf.h into a subdirectory (ie zlibincludes), and export CFLAGS="-Izlibincludes -I../zlibincludes" export LDFLAGS=/usr/lib/libz.a before ./configure and make. If you disable zlib, you must explicitly disable compression for the client - OpenSSH is possibly buggy in this regard, it seems you need to disable it globally in ~/.ssh/config, not just in the host entry in that file. You may want to manually disable lastlog recording when using uClibc, configure with --disable-lastlog. One common problem is pty allocation. There are a number of types of pty allocation which can be used -- if they work properly, the end result is the same for each type. Running configure should detect the best type to use automatically, however for some systems, this may be incorrect. Some things to note: If your system expects /dev/pts to be mounted (this is a uClibc option), make sure that it is. Make sure that your libc headers match the library version you are using. If openpty() is being used (HAVE_OPENPTY defined in config.h) and it fails, you can try compiling with --disable-openpty. You will probably then need to create all the /dev/pty?? and /dev/tty?? devices, which can be problematic for devfs. In general, openpty() is the best way to allocate PTYs, so it's best to try and get it working.