diff mbox series

[V3,1/2] dropbear: bump to version 2018.76

Message ID 20180321160329.20768-1-francois.perrad@gadz.org
State Changes Requested
Headers show
Series [V3,1/2] dropbear: bump to version 2018.76 | expand

Commit Message

Francois Perrad March 21, 2018, 4:03 p.m. UTC
with this new version:
  - "configure --enable-static" should now be used instead of
    "make STATIC=1"
  - any customised options should be put in localoptions.h

Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
---
 package/dropbear/dropbear.hash |  2 +-
 package/dropbear/dropbear.mk   | 27 ++++++++-------------------
 2 files changed, 9 insertions(+), 20 deletions(-)

Comments

Thomas Petazzoni March 26, 2018, 8:18 p.m. UTC | #1
Hello,

On Wed, 21 Mar 2018 17:03:28 +0100, Francois Perrad wrote:
> with this new version:
>   - "configure --enable-static" should now be used instead of
>     "make STATIC=1"
>   - any customised options should be put in localoptions.h
> 
> Signed-off-by: Francois Perrad <francois.perrad@gadz.org>

With this patch applied, the following defconfig:

BR2_arm=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-arm-full-2017.11-rc1.tar.bz2"
BR2_TOOLCHAIN_EXTERNAL_GCC_4_9=y
BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_10=y
BR2_TOOLCHAIN_EXTERNAL_LOCALE=y
# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set
BR2_TOOLCHAIN_EXTERNAL_CXX=y
BR2_INIT_NONE=y
BR2_SYSTEM_BIN_SH_NONE=y
# BR2_PACKAGE_BUSYBOX is not set
BR2_PACKAGE_DROPBEAR=y
# BR2_TARGET_ROOTFS_TAR is not set

fails to build with:

>>> dropbear 2018.76 Building
PATH="/home/thomas/projets/buildroot/output/host/bin:/home/thomas/projets/buildroot/output/host/sbin:/usr/local/bin:/usr/bin:/bin:/home/thomas/.rvm/bin:/usr/local/sbin:/usr/sbin:/home/thomas/.rvm/bin:/home/thomas/sys/bin:/home/thomas/.gem/ruby/2.1.0/bin:/home/thomas/.rvm/bin"  /usr/bin/make -j5 MULTI=1 SCPPROGRESS=1 PROGRAMS="dropbear dropbearkey dropbearconvert scp dbclient ssh dbclient"  -C /home/thomas/projets/buildroot/output/build/dropbear-2018.76/
Creating default_options_guard.h
/home/thomas/projets/buildroot/output/host/bin/arm-linux-gcc -c -I./libtomcrypt/src/headers/ -DLOCALOPTIONS_H_EXISTS -I. -I. -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -W -Wall -Wno-pointer-sign -fno-strict-overflow -fPIE -fstack-protector-strong -D_FORTIFY_SOURCE=2 -DDROPBEAR_SERVER -DDROPBEAR_CLIENT -DPROGRESS_METER -DDBMULTI_dropbear -DDBMULTI_dropbearkey -DDBMULTI_dropbearconvert -DDBMULTI_scp -DDBMULTI_dbclient -DDBMULTI_ssh -DDBMULTI_dbclient -DDROPBEAR_MULTI -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 dbmulti.c -o dbmulti.o
/home/thomas/projets/buildroot/output/host/bin/arm-linux-gcc -c -I./libtomcrypt/src/headers/ -DLOCALOPTIONS_H_EXISTS -I. -I. -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -W -Wall -Wno-pointer-sign -fno-strict-overflow -fPIE -fstack-protector-strong -D_FORTIFY_SOURCE=2 -DDROPBEAR_SERVER -DDROPBEAR_CLIENT -DPROGRESS_METER -DDBMULTI_dropbear -DDBMULTI_dropbearkey -DDBMULTI_dropbearconvert -DDBMULTI_scp -DDBMULTI_dbclient -DDBMULTI_ssh -DDBMULTI_dbclient -DDROPBEAR_MULTI -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 atomicio.c -o atomicio.o
/home/thomas/projets/buildroot/output/host/bin/arm-linux-gcc -c -I./libtomcrypt/src/headers/ -DLOCALOPTIONS_H_EXISTS -I. -I. -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -W -Wall -Wno-pointer-sign -fno-strict-overflow -fPIE -fstack-protector-strong -D_FORTIFY_SOURCE=2 -DDROPBEAR_SERVER -DDROPBEAR_CLIENT -DPROGRESS_METER -DDBMULTI_dropbear -DDBMULTI_dropbearkey -DDBMULTI_dropbearconvert -DDBMULTI_scp -DDBMULTI_dbclient -DDBMULTI_ssh -DDBMULTI_dbclient -DDROPBEAR_MULTI -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 bignum.c -o bignum.o
/home/thomas/projets/buildroot/output/host/bin/arm-linux-gcc -c -I./libtomcrypt/src/headers/ -DLOCALOPTIONS_H_EXISTS -I. -I. -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -W -Wall -Wno-pointer-sign -fno-strict-overflow -fPIE -fstack-protector-strong -D_FORTIFY_SOURCE=2 -DDROPBEAR_SERVER -DDROPBEAR_CLIENT -DPROGRESS_METER -DDBMULTI_dropbear -DDBMULTI_dropbearkey -DDBMULTI_dropbearconvert -DDBMULTI_scp -DDBMULTI_dbclient -DDBMULTI_ssh -DDBMULTI_dbclient -DDROPBEAR_MULTI -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 buffer.c -o buffer.o
/home/thomas/projets/buildroot/output/host/bin/arm-linux-gcc -c -I./libtomcrypt/src/headers/ -DLOCALOPTIONS_H_EXISTS -I. -I. -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -W -Wall -Wno-pointer-sign -fno-strict-overflow -fPIE -fstack-protector-strong -D_FORTIFY_SOURCE=2 -DDROPBEAR_SERVER -DDROPBEAR_CLIENT -DPROGRESS_METER -DDBMULTI_dropbear -DDBMULTI_dropbearkey -DDBMULTI_dropbearconvert -DDBMULTI_scp -DDBMULTI_dbclient -DDBMULTI_ssh -DDBMULTI_dbclient -DDROPBEAR_MULTI -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 circbuffer.c -o circbuffer.o
In file included from options.h:23:0,
                 from includes.h:29,
                 from bignum.c:27:
sysoptions.h:237:3: error: #error "DROPBEAR_SVR_PASSWORD_AUTH requires `crypt()'."
  #error "DROPBEAR_SVR_PASSWORD_AUTH requires `crypt()'."
   ^
In file included from options.h:23:0,
                 from includes.h:29,
                 from buffer.c:27:
sysoptions.h:237:3: error: #error "DROPBEAR_SVR_PASSWORD_AUTH requires `crypt()'."
  #error "DROPBEAR_SVR_PASSWORD_AUTH requires `crypt()'."
   ^
In file included from options.h:23:0,
                 from includes.h:29,
                 from dbmulti.c:25:
sysoptions.h:237:3: error: #error "DROPBEAR_SVR_PASSWORD_AUTH requires `crypt()'."
  #error "DROPBEAR_SVR_PASSWORD_AUTH requires `crypt()'."
   ^
In file included from options.h:23:0,
                 from includes.h:29,
                 from circbuffer.c:25:
sysoptions.h:237:3: error: #error "DROPBEAR_SVR_PASSWORD_AUTH requires `crypt()'."
  #error "DROPBEAR_SVR_PASSWORD_AUTH requires `crypt()'."
   ^
In file included from options.h:23:0,
                 from includes.h:29,
                 from atomicio.c:30:
sysoptions.h:237:3: error: #error "DROPBEAR_SVR_PASSWORD_AUTH requires `crypt()'."
  #error "DROPBEAR_SVR_PASSWORD_AUTH requires `crypt()'."
   ^
In file included from includes.h:119:0,
                 from buffer.c:27:
compat.h:43:7: error: conflicting types for ‘__xpg_basename’
 char *basename(const char* path);
       ^
/home/thomas/projets/buildroot/output/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/libgen.h:34:14: note: previous declaration of ‘__xpg_basename’ was here
 extern char *__xpg_basename (char *__path) __THROW;
              ^
make[2]: *** [Makefile:128: buffer.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from includes.h:119:0,
                 from circbuffer.c:25:
compat.h:43:7: error: conflicting types for ‘__xpg_basename’
 char *basename(const char* path);
       ^
/home/thomas/projets/buildroot/output/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/libgen.h:34:14: note: previous declaration of ‘__xpg_basename’ was here
 extern char *__xpg_basename (char *__path) __THROW;
              ^
make[2]: *** [Makefile:128: circbuffer.o] Error 1
In file included from includes.h:119:0,
                 from bignum.c:27:
compat.h:43:7: error: conflicting types for ‘__xpg_basename’
 char *basename(const char* path);
       ^
/home/thomas/projets/buildroot/output/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/libgen.h:34:14: note: previous declaration of ‘__xpg_basename’ was here
 extern char *__xpg_basename (char *__path) __THROW;
              ^
In file included from includes.h:119:0,
                 from dbmulti.c:25:
compat.h:43:7: error: conflicting types for ‘__xpg_basename’
 char *basename(const char* path);
       ^
/home/thomas/projets/buildroot/output/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/libgen.h:34:14: note: previous declaration of ‘__xpg_basename’ was here
 extern char *__xpg_basename (char *__path) __THROW;
              ^
make[2]: *** [Makefile:128: bignum.o] Error 1
make[2]: *** [Makefile:128: dbmulti.o] Error 1
In file included from includes.h:119:0,
                 from atomicio.c:30:
compat.h:43:7: error: conflicting types for ‘__xpg_basename’
 char *basename(const char* path);
       ^
/home/thomas/projets/buildroot/output/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/libgen.h:34:14: note: previous declaration of ‘__xpg_basename’ was here
 extern char *__xpg_basename (char *__path) __THROW;
              ^
make[2]: *** [Makefile:128: atomicio.o] Error 1
make[1]: *** [package/pkg-generic.mk:224: /home/thomas/projets/buildroot/output/build/dropbear-2018.76/.stamp_built] Error 2
make: *** [Makefile:79: _all] Error 2

Could you have a look ?

Thanks!

Thomas Petazzoni
Francois Perrad March 28, 2018, 7:57 a.m. UTC | #2
2018-03-26 22:18 GMT+02:00 Thomas Petazzoni <thomas.petazzoni@bootlin.com>:

> Hello,
>
> On Wed, 21 Mar 2018 17:03:28 +0100, Francois Perrad wrote:
> > with this new version:
> >   - "configure --enable-static" should now be used instead of
> >     "make STATIC=1"
> >   - any customised options should be put in localoptions.h
> >
> > Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
>
> With this patch applied, the following defconfig:
>
> BR2_arm=y
> BR2_TOOLCHAIN_EXTERNAL=y
> BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
> BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
> BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/
> toolchains/tarballs/br-arm-full-2017.11-rc1.tar.bz2"
> BR2_TOOLCHAIN_EXTERNAL_GCC_4_9=y
> BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_10=y
> BR2_TOOLCHAIN_EXTERNAL_LOCALE=y
> # BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set
> BR2_TOOLCHAIN_EXTERNAL_CXX=y
> BR2_INIT_NONE=y
> BR2_SYSTEM_BIN_SH_NONE=y
> # BR2_PACKAGE_BUSYBOX is not set
> BR2_PACKAGE_DROPBEAR=y
> # BR2_TARGET_ROOTFS_TAR is not set
>
> fails to build with:
>
> >>> dropbear 2018.76 Building
> PATH="/home/thomas/projets/buildroot/output/host/bin:/
> home/thomas/projets/buildroot/output/host/sbin:/usr/local/
> bin:/usr/bin:/bin:/home/thomas/.rvm/bin:/usr/local/
> sbin:/usr/sbin:/home/thomas/.rvm/bin:/home/thomas/sys/bin:/
> home/thomas/.gem/ruby/2.1.0/bin:/home/thomas/.rvm/bin"  /usr/bin/make -j5
> MULTI=1 SCPPROGRESS=1 PROGRAMS="dropbear dropbearkey dropbearconvert scp
> dbclient ssh dbclient"  -C /home/thomas/projets/buildroot/output/build/
> dropbear-2018.76/
> Creating default_options_guard.h
> /home/thomas/projets/buildroot/output/host/bin/arm-linux-gcc -c
> -I./libtomcrypt/src/headers/ -DLOCALOPTIONS_H_EXISTS -I. -I.
> -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -W
> -Wall -Wno-pointer-sign -fno-strict-overflow -fPIE -fstack-protector-strong
> -D_FORTIFY_SOURCE=2 -DDROPBEAR_SERVER -DDROPBEAR_CLIENT -DPROGRESS_METER
> -DDBMULTI_dropbear -DDBMULTI_dropbearkey -DDBMULTI_dropbearconvert
> -DDBMULTI_scp -DDBMULTI_dbclient -DDBMULTI_ssh -DDBMULTI_dbclient
> -DDROPBEAR_MULTI -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
> -D_FILE_OFFSET_BITS=64 dbmulti.c -o dbmulti.o
> /home/thomas/projets/buildroot/output/host/bin/arm-linux-gcc -c
> -I./libtomcrypt/src/headers/ -DLOCALOPTIONS_H_EXISTS -I. -I.
> -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -W
> -Wall -Wno-pointer-sign -fno-strict-overflow -fPIE -fstack-protector-strong
> -D_FORTIFY_SOURCE=2 -DDROPBEAR_SERVER -DDROPBEAR_CLIENT -DPROGRESS_METER
> -DDBMULTI_dropbear -DDBMULTI_dropbearkey -DDBMULTI_dropbearconvert
> -DDBMULTI_scp -DDBMULTI_dbclient -DDBMULTI_ssh -DDBMULTI_dbclient
> -DDROPBEAR_MULTI -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
> -D_FILE_OFFSET_BITS=64 atomicio.c -o atomicio.o
> /home/thomas/projets/buildroot/output/host/bin/arm-linux-gcc -c
> -I./libtomcrypt/src/headers/ -DLOCALOPTIONS_H_EXISTS -I. -I.
> -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -W
> -Wall -Wno-pointer-sign -fno-strict-overflow -fPIE -fstack-protector-strong
> -D_FORTIFY_SOURCE=2 -DDROPBEAR_SERVER -DDROPBEAR_CLIENT -DPROGRESS_METER
> -DDBMULTI_dropbear -DDBMULTI_dropbearkey -DDBMULTI_dropbearconvert
> -DDBMULTI_scp -DDBMULTI_dbclient -DDBMULTI_ssh -DDBMULTI_dbclient
> -DDROPBEAR_MULTI -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
> -D_FILE_OFFSET_BITS=64 bignum.c -o bignum.o
> /home/thomas/projets/buildroot/output/host/bin/arm-linux-gcc -c
> -I./libtomcrypt/src/headers/ -DLOCALOPTIONS_H_EXISTS -I. -I.
> -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -W
> -Wall -Wno-pointer-sign -fno-strict-overflow -fPIE -fstack-protector-strong
> -D_FORTIFY_SOURCE=2 -DDROPBEAR_SERVER -DDROPBEAR_CLIENT -DPROGRESS_METER
> -DDBMULTI_dropbear -DDBMULTI_dropbearkey -DDBMULTI_dropbearconvert
> -DDBMULTI_scp -DDBMULTI_dbclient -DDBMULTI_ssh -DDBMULTI_dbclient
> -DDROPBEAR_MULTI -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
> -D_FILE_OFFSET_BITS=64 buffer.c -o buffer.o
> /home/thomas/projets/buildroot/output/host/bin/arm-linux-gcc -c
> -I./libtomcrypt/src/headers/ -DLOCALOPTIONS_H_EXISTS -I. -I.
> -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -W
> -Wall -Wno-pointer-sign -fno-strict-overflow -fPIE -fstack-protector-strong
> -D_FORTIFY_SOURCE=2 -DDROPBEAR_SERVER -DDROPBEAR_CLIENT -DPROGRESS_METER
> -DDBMULTI_dropbear -DDBMULTI_dropbearkey -DDBMULTI_dropbearconvert
> -DDBMULTI_scp -DDBMULTI_dbclient -DDBMULTI_ssh -DDBMULTI_dbclient
> -DDROPBEAR_MULTI -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
> -D_FILE_OFFSET_BITS=64 circbuffer.c -o circbuffer.o
> In file included from options.h:23:0,
>                  from includes.h:29,
>                  from bignum.c:27:
> sysoptions.h:237:3: error: #error "DROPBEAR_SVR_PASSWORD_AUTH requires
> `crypt()'."
>   #error "DROPBEAR_SVR_PASSWORD_AUTH requires `crypt()'."
>    ^
> In file included from options.h:23:0,
>                  from includes.h:29,
>                  from buffer.c:27:
> sysoptions.h:237:3: error: #error "DROPBEAR_SVR_PASSWORD_AUTH requires
> `crypt()'."
>   #error "DROPBEAR_SVR_PASSWORD_AUTH requires `crypt()'."
>    ^
> In file included from options.h:23:0,
>                  from includes.h:29,
>                  from dbmulti.c:25:
> sysoptions.h:237:3: error: #error "DROPBEAR_SVR_PASSWORD_AUTH requires
> `crypt()'."
>   #error "DROPBEAR_SVR_PASSWORD_AUTH requires `crypt()'."
>    ^
> In file included from options.h:23:0,
>                  from includes.h:29,
>                  from circbuffer.c:25:
> sysoptions.h:237:3: error: #error "DROPBEAR_SVR_PASSWORD_AUTH requires
> `crypt()'."
>   #error "DROPBEAR_SVR_PASSWORD_AUTH requires `crypt()'."
>    ^
> In file included from options.h:23:0,
>                  from includes.h:29,
>                  from atomicio.c:30:
> sysoptions.h:237:3: error: #error "DROPBEAR_SVR_PASSWORD_AUTH requires
> `crypt()'."
>   #error "DROPBEAR_SVR_PASSWORD_AUTH requires `crypt()'."
>    ^
> In file included from includes.h:119:0,
>                  from buffer.c:27:
> compat.h:43:7: error: conflicting types for ‘__xpg_basename’
>  char *basename(const char* path);
>        ^
> /home/thomas/projets/buildroot/output/host/arm-
> buildroot-linux-uclibcgnueabi/sysroot/usr/include/libgen.h:34:14: note:
> previous declaration of ‘__xpg_basename’ was here
>  extern char *__xpg_basename (char *__path) __THROW;
>               ^
> make[2]: *** [Makefile:128: buffer.o] Error 1
> make[2]: *** Waiting for unfinished jobs....
> In file included from includes.h:119:0,
>                  from circbuffer.c:25:
> compat.h:43:7: error: conflicting types for ‘__xpg_basename’
>  char *basename(const char* path);
>        ^
> /home/thomas/projets/buildroot/output/host/arm-
> buildroot-linux-uclibcgnueabi/sysroot/usr/include/libgen.h:34:14: note:
> previous declaration of ‘__xpg_basename’ was here
>  extern char *__xpg_basename (char *__path) __THROW;
>               ^
> make[2]: *** [Makefile:128: circbuffer.o] Error 1
> In file included from includes.h:119:0,
>                  from bignum.c:27:
> compat.h:43:7: error: conflicting types for ‘__xpg_basename’
>  char *basename(const char* path);
>        ^
> /home/thomas/projets/buildroot/output/host/arm-
> buildroot-linux-uclibcgnueabi/sysroot/usr/include/libgen.h:34:14: note:
> previous declaration of ‘__xpg_basename’ was here
>  extern char *__xpg_basename (char *__path) __THROW;
>               ^
> In file included from includes.h:119:0,
>                  from dbmulti.c:25:
> compat.h:43:7: error: conflicting types for ‘__xpg_basename’
>  char *basename(const char* path);
>        ^
> /home/thomas/projets/buildroot/output/host/arm-
> buildroot-linux-uclibcgnueabi/sysroot/usr/include/libgen.h:34:14: note:
> previous declaration of ‘__xpg_basename’ was here
>  extern char *__xpg_basename (char *__path) __THROW;
>               ^
> make[2]: *** [Makefile:128: bignum.o] Error 1
> make[2]: *** [Makefile:128: dbmulti.o] Error 1
> In file included from includes.h:119:0,
>                  from atomicio.c:30:
> compat.h:43:7: error: conflicting types for ‘__xpg_basename’
>  char *basename(const char* path);
>        ^
> /home/thomas/projets/buildroot/output/host/arm-
> buildroot-linux-uclibcgnueabi/sysroot/usr/include/libgen.h:34:14: note:
> previous declaration of ‘__xpg_basename’ was here
>  extern char *__xpg_basename (char *__path) __THROW;
>               ^
> make[2]: *** [Makefile:128: atomicio.o] Error 1
> make[1]: *** [package/pkg-generic.mk:224: /home/thomas/projets/
> buildroot/output/build/dropbear-2018.76/.stamp_built] Error 2
> make: *** [Makefile:79: _all] Error 2
>
> Could you have a look ?
>
>

The presence of crypt() is detected by the configure script.

in dropbear-2017-75/options.h, the logic was :
    /* This requires crypt() */
    #ifdef HAVE_CRYPT
    #define ENABLE_SVR_PASSWORD_AUTH
    #endif

in dropbear-2018-76/sysoptions.h, the logic is now :
    #if DROPBEAR_SVR_PASSWORD_AUTH && !HAVE_CRYPT
        #error "DROPBEAR_SVR_PASSWORD_AUTH requires `crypt()'."
    #endif

So, without something like BR2_TOOLCHAIN_HAS_CRYPT,
we must always disable the option DROPBEAR_SVR_PASSWORD_AUTH in
localoptions.h.

François


> Thanks!
>
> Thomas Petazzoni
> --
> Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
> Embedded Linux and Kernel engineering
> https://bootlin.com
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
>
<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">2018-03-26 22:18 GMT+02:00 Thomas Petazzoni <span dir="ltr">&lt;<a href="mailto:thomas.petazzoni@bootlin.com" target="_blank">thomas.petazzoni@bootlin.com</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello,<br>
<span class="gmail-"><br>
On Wed, 21 Mar 2018 17:03:28 +0100, Francois Perrad wrote:<br>
&gt; with this new version:<br>
&gt;   - &quot;configure --enable-static&quot; should now be used instead of<br>
&gt;     &quot;make STATIC=1&quot;<br>
&gt;   - any customised options should be put in localoptions.h<br>
&gt;<br>
&gt; Signed-off-by: Francois Perrad &lt;<a href="mailto:francois.perrad@gadz.org">francois.perrad@gadz.org</a>&gt;<br>
<br>
</span>With this patch applied, the following defconfig:<br>
<br>
BR2_arm=y<br>
BR2_TOOLCHAIN_EXTERNAL=y<br>
BR2_TOOLCHAIN_EXTERNAL_CUSTOM=<wbr>y<br>
BR2_TOOLCHAIN_EXTERNAL_<wbr>DOWNLOAD=y<br>
BR2_TOOLCHAIN_EXTERNAL_URL=&quot;<a href="http://autobuild.buildroot.org/toolchains/tarballs/br-arm-full-2017.11-rc1.tar.bz2" rel="noreferrer" target="_blank">ht<wbr>tp://autobuild.buildroot.org/<wbr>toolchains/tarballs/br-arm-<wbr>full-2017.11-rc1.tar.bz2</a>&quot;<br>
BR2_TOOLCHAIN_EXTERNAL_GCC_4_<wbr>9=y<br>
BR2_TOOLCHAIN_EXTERNAL_<wbr>HEADERS_3_10=y<br>
BR2_TOOLCHAIN_EXTERNAL_LOCALE=<wbr>y<br>
# BR2_TOOLCHAIN_EXTERNAL_HAS_<wbr>THREADS_DEBUG is not set<br>
BR2_TOOLCHAIN_EXTERNAL_CXX=y<br>
BR2_INIT_NONE=y<br>
BR2_SYSTEM_BIN_SH_NONE=y<br>
# BR2_PACKAGE_BUSYBOX is not set<br>
BR2_PACKAGE_DROPBEAR=y<br>
# BR2_TARGET_ROOTFS_TAR is not set<br>
<br>
fails to build with:<br>
<br>
&gt;&gt;&gt; dropbear 2018.76 Building<br>
PATH=&quot;/home/thomas/projets/<wbr>buildroot/output/host/bin:/<wbr>home/thomas/projets/buildroot/<wbr>output/host/sbin:/usr/local/<wbr>bin:/usr/bin:/bin:/home/<wbr>thomas/.rvm/bin:/usr/local/<wbr>sbin:/usr/sbin:/home/thomas/.<wbr>rvm/bin:/home/thomas/sys/bin:/<wbr>home/thomas/.gem/ruby/2.1.0/<wbr>bin:/home/thomas/.rvm/bin&quot;  /usr/bin/make -j5 MULTI=1 SCPPROGRESS=1 PROGRAMS=&quot;dropbear dropbearkey dropbearconvert scp dbclient ssh dbclient&quot;  -C /home/thomas/projets/<wbr>buildroot/output/build/<wbr>dropbear-2018.76/<br>
Creating default_options_guard.h<br>
/home/thomas/projets/<wbr>buildroot/output/host/bin/arm-<wbr>linux-gcc -c -I./libtomcrypt/src/headers/ -DLOCALOPTIONS_H_EXISTS -I. -I. -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -W -Wall -Wno-pointer-sign -fno-strict-overflow -fPIE -fstack-protector-strong -D_FORTIFY_SOURCE=2 -DDROPBEAR_SERVER -DDROPBEAR_CLIENT -DPROGRESS_METER -DDBMULTI_dropbear -DDBMULTI_dropbearkey -DDBMULTI_dropbearconvert -DDBMULTI_scp -DDBMULTI_dbclient -DDBMULTI_ssh -DDBMULTI_dbclient -DDROPBEAR_MULTI -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 dbmulti.c -o dbmulti.o<br>
/home/thomas/projets/<wbr>buildroot/output/host/bin/arm-<wbr>linux-gcc -c -I./libtomcrypt/src/headers/ -DLOCALOPTIONS_H_EXISTS -I. -I. -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -W -Wall -Wno-pointer-sign -fno-strict-overflow -fPIE -fstack-protector-strong -D_FORTIFY_SOURCE=2 -DDROPBEAR_SERVER -DDROPBEAR_CLIENT -DPROGRESS_METER -DDBMULTI_dropbear -DDBMULTI_dropbearkey -DDBMULTI_dropbearconvert -DDBMULTI_scp -DDBMULTI_dbclient -DDBMULTI_ssh -DDBMULTI_dbclient -DDROPBEAR_MULTI -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 atomicio.c -o atomicio.o<br>
/home/thomas/projets/<wbr>buildroot/output/host/bin/arm-<wbr>linux-gcc -c -I./libtomcrypt/src/headers/ -DLOCALOPTIONS_H_EXISTS -I. -I. -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -W -Wall -Wno-pointer-sign -fno-strict-overflow -fPIE -fstack-protector-strong -D_FORTIFY_SOURCE=2 -DDROPBEAR_SERVER -DDROPBEAR_CLIENT -DPROGRESS_METER -DDBMULTI_dropbear -DDBMULTI_dropbearkey -DDBMULTI_dropbearconvert -DDBMULTI_scp -DDBMULTI_dbclient -DDBMULTI_ssh -DDBMULTI_dbclient -DDROPBEAR_MULTI -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 bignum.c -o bignum.o<br>
/home/thomas/projets/<wbr>buildroot/output/host/bin/arm-<wbr>linux-gcc -c -I./libtomcrypt/src/headers/ -DLOCALOPTIONS_H_EXISTS -I. -I. -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -W -Wall -Wno-pointer-sign -fno-strict-overflow -fPIE -fstack-protector-strong -D_FORTIFY_SOURCE=2 -DDROPBEAR_SERVER -DDROPBEAR_CLIENT -DPROGRESS_METER -DDBMULTI_dropbear -DDBMULTI_dropbearkey -DDBMULTI_dropbearconvert -DDBMULTI_scp -DDBMULTI_dbclient -DDBMULTI_ssh -DDBMULTI_dbclient -DDROPBEAR_MULTI -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 buffer.c -o buffer.o<br>
/home/thomas/projets/<wbr>buildroot/output/host/bin/arm-<wbr>linux-gcc -c -I./libtomcrypt/src/headers/ -DLOCALOPTIONS_H_EXISTS -I. -I. -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -W -Wall -Wno-pointer-sign -fno-strict-overflow -fPIE -fstack-protector-strong -D_FORTIFY_SOURCE=2 -DDROPBEAR_SERVER -DDROPBEAR_CLIENT -DPROGRESS_METER -DDBMULTI_dropbear -DDBMULTI_dropbearkey -DDBMULTI_dropbearconvert -DDBMULTI_scp -DDBMULTI_dbclient -DDBMULTI_ssh -DDBMULTI_dbclient -DDROPBEAR_MULTI -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 circbuffer.c -o circbuffer.o<br>
In file included from options.h:23:0,<br>
                 from includes.h:29,<br>
                 from bignum.c:27:<br>
sysoptions.h:237:3: error: #error &quot;DROPBEAR_SVR_PASSWORD_AUTH requires `crypt()&#39;.&quot;<br>
  #error &quot;DROPBEAR_SVR_PASSWORD_AUTH requires `crypt()&#39;.&quot;<br>
   ^<br>
In file included from options.h:23:0,<br>
                 from includes.h:29,<br>
                 from buffer.c:27:<br>
sysoptions.h:237:3: error: #error &quot;DROPBEAR_SVR_PASSWORD_AUTH requires `crypt()&#39;.&quot;<br>
  #error &quot;DROPBEAR_SVR_PASSWORD_AUTH requires `crypt()&#39;.&quot;<br>
   ^<br>
In file included from options.h:23:0,<br>
                 from includes.h:29,<br>
                 from dbmulti.c:25:<br>
sysoptions.h:237:3: error: #error &quot;DROPBEAR_SVR_PASSWORD_AUTH requires `crypt()&#39;.&quot;<br>
  #error &quot;DROPBEAR_SVR_PASSWORD_AUTH requires `crypt()&#39;.&quot;<br>
   ^<br>
In file included from options.h:23:0,<br>
                 from includes.h:29,<br>
                 from circbuffer.c:25:<br>
sysoptions.h:237:3: error: #error &quot;DROPBEAR_SVR_PASSWORD_AUTH requires `crypt()&#39;.&quot;<br>
  #error &quot;DROPBEAR_SVR_PASSWORD_AUTH requires `crypt()&#39;.&quot;<br>
   ^<br>
In file included from options.h:23:0,<br>
                 from includes.h:29,<br>
                 from atomicio.c:30:<br>
sysoptions.h:237:3: error: #error &quot;DROPBEAR_SVR_PASSWORD_AUTH requires `crypt()&#39;.&quot;<br>
  #error &quot;DROPBEAR_SVR_PASSWORD_AUTH requires `crypt()&#39;.&quot;<br>
   ^<br>
In file included from includes.h:119:0,<br>
                 from buffer.c:27:<br>
compat.h:43:7: error: conflicting types for ‘__xpg_basename’<br>
 char *basename(const char* path);<br>
       ^<br>
/home/thomas/projets/<wbr>buildroot/output/host/arm-<wbr>buildroot-linux-uclibcgnueabi/<wbr>sysroot/usr/include/libgen.h:<wbr>34:14: note: previous declaration of ‘__xpg_basename’ was here<br>
 extern char *__xpg_basename (char *__path) __THROW;<br>
              ^<br>
make[2]: *** [Makefile:128: buffer.o] Error 1<br>
make[2]: *** Waiting for unfinished jobs....<br>
In file included from includes.h:119:0,<br>
                 from circbuffer.c:25:<br>
compat.h:43:7: error: conflicting types for ‘__xpg_basename’<br>
 char *basename(const char* path);<br>
       ^<br>
/home/thomas/projets/<wbr>buildroot/output/host/arm-<wbr>buildroot-linux-uclibcgnueabi/<wbr>sysroot/usr/include/libgen.h:<wbr>34:14: note: previous declaration of ‘__xpg_basename’ was here<br>
 extern char *__xpg_basename (char *__path) __THROW;<br>
              ^<br>
make[2]: *** [Makefile:128: circbuffer.o] Error 1<br>
In file included from includes.h:119:0,<br>
                 from bignum.c:27:<br>
compat.h:43:7: error: conflicting types for ‘__xpg_basename’<br>
 char *basename(const char* path);<br>
       ^<br>
/home/thomas/projets/<wbr>buildroot/output/host/arm-<wbr>buildroot-linux-uclibcgnueabi/<wbr>sysroot/usr/include/libgen.h:<wbr>34:14: note: previous declaration of ‘__xpg_basename’ was here<br>
 extern char *__xpg_basename (char *__path) __THROW;<br>
              ^<br>
In file included from includes.h:119:0,<br>
                 from dbmulti.c:25:<br>
compat.h:43:7: error: conflicting types for ‘__xpg_basename’<br>
 char *basename(const char* path);<br>
       ^<br>
/home/thomas/projets/<wbr>buildroot/output/host/arm-<wbr>buildroot-linux-uclibcgnueabi/<wbr>sysroot/usr/include/libgen.h:<wbr>34:14: note: previous declaration of ‘__xpg_basename’ was here<br>
 extern char *__xpg_basename (char *__path) __THROW;<br>
              ^<br>
make[2]: *** [Makefile:128: bignum.o] Error 1<br>
make[2]: *** [Makefile:128: dbmulti.o] Error 1<br>
In file included from includes.h:119:0,<br>
                 from atomicio.c:30:<br>
compat.h:43:7: error: conflicting types for ‘__xpg_basename’<br>
 char *basename(const char* path);<br>
       ^<br>
/home/thomas/projets/<wbr>buildroot/output/host/arm-<wbr>buildroot-linux-uclibcgnueabi/<wbr>sysroot/usr/include/libgen.h:<wbr>34:14: note: previous declaration of ‘__xpg_basename’ was here<br>
 extern char *__xpg_basename (char *__path) __THROW;<br>
              ^<br>
make[2]: *** [Makefile:128: atomicio.o] Error 1<br>
make[1]: *** [package/<a href="http://pkg-generic.mk:224" rel="noreferrer" target="_blank">pkg-generic.mk:224</a>: /home/thomas/projets/<wbr>buildroot/output/build/<wbr>dropbear-2018.76/.stamp_built] Error 2<br>
make: *** [Makefile:79: _all] Error 2<br>
<br>
Could you have a look ?<br>
<br></blockquote><div><br><br>The presence of crypt() is detected by the configure script.<br><br>in dropbear-2017-75/options.h, the logic was :<br>    /* This requires crypt() */<br>    #ifdef HAVE_CRYPT<br>    #define ENABLE_SVR_PASSWORD_AUTH<br>    #endif<br><br>in dropbear-2018-76/sysoptions.h, the logic is now :<br>    #if DROPBEAR_SVR_PASSWORD_AUTH &amp;&amp; !HAVE_CRYPT<br>        #error &quot;DROPBEAR_SVR_PASSWORD_AUTH requires `crypt()&#39;.&quot;<br>    #endif<br><br>So, without something like BR2_TOOLCHAIN_HAS_CRYPT,<br>we must always disable the option DROPBEAR_SVR_PASSWORD_AUTH in localoptions.h.<br><br></div><div>François<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Thanks!<br>
<span class="gmail-HOEnZb"><font color="#888888"><br>
Thomas Petazzoni<br>
--<br>
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)<br>
Embedded Linux and Kernel engineering<br>
<a href="https://bootlin.com" rel="noreferrer" target="_blank">https://bootlin.com</a><br>
______________________________<wbr>_________________<br>
buildroot mailing list<br>
<a href="mailto:buildroot@busybox.net">buildroot@busybox.net</a><br>
<a href="http://lists.busybox.net/mailman/listinfo/buildroot" rel="noreferrer" target="_blank">http://lists.busybox.net/<wbr>mailman/listinfo/buildroot</a><br>
</font></span></blockquote></div><br></div></div>
Thomas Petazzoni March 28, 2018, 8:01 a.m. UTC | #3
Hello,

On Wed, 28 Mar 2018 09:57:57 +0200, François Perrad wrote:

> > Could you have a look ?
> 
> The presence of crypt() is detected by the configure script.

So, if it's detected by the configure script, there should be no
problem, no ?

> in dropbear-2017-75/options.h, the logic was :
>     /* This requires crypt() */
>     #ifdef HAVE_CRYPT
>     #define ENABLE_SVR_PASSWORD_AUTH
>     #endif
> 
> in dropbear-2018-76/sysoptions.h, the logic is now :
>     #if DROPBEAR_SVR_PASSWORD_AUTH && !HAVE_CRYPT
>         #error "DROPBEAR_SVR_PASSWORD_AUTH requires `crypt()'."
>     #endif
> 
> So, without something like BR2_TOOLCHAIN_HAS_CRYPT,
> we must always disable the option DROPBEAR_SVR_PASSWORD_AUTH in
> localoptions.h.

I don't understand. On one hand, you say that the presence of crypt()
is detected by the configure script, and on the other hand, you say
that we must tell Dropbear explicitly whether crypt() is available or
not.

Could you clarify ?

Thanks!

Thomas
Francois Perrad March 28, 2018, 8:42 a.m. UTC | #4
2018-03-28 10:01 GMT+02:00 Thomas Petazzoni <thomas.petazzoni@bootlin.com>:

> Hello,
>
> On Wed, 28 Mar 2018 09:57:57 +0200, François Perrad wrote:
>
> > > Could you have a look ?
> >
> > The presence of crypt() is detected by the configure script.
>
> So, if it's detected by the configure script, there should be no
> problem, no ?
>
> > in dropbear-2017-75/options.h, the logic was :
> >     /* This requires crypt() */
> >     #ifdef HAVE_CRYPT
> >     #define ENABLE_SVR_PASSWORD_AUTH
> >     #endif
> >
> > in dropbear-2018-76/sysoptions.h, the logic is now :
> >     #if DROPBEAR_SVR_PASSWORD_AUTH && !HAVE_CRYPT
> >         #error "DROPBEAR_SVR_PASSWORD_AUTH requires `crypt()'."
> >     #endif
> >
> > So, without something like BR2_TOOLCHAIN_HAS_CRYPT,
> > we must always disable the option DROPBEAR_SVR_PASSWORD_AUTH in
> > localoptions.h.
>
> I don't understand. On one hand, you say that the presence of crypt()
> is detected by the configure script, and on the other hand, you say
> that we must tell Dropbear explicitly whether crypt() is available or
> not.
>
> Could you clarify ?
>
>
I solve the issue by writing :
    #if !HAVE_CRYPT
    #define DROPBEAR_SVR_PASSWORD_AUTH 0
    #endif
in the localoptions.h file.

François



> Thanks!
>
> Thomas
> --
> Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
> Embedded Linux and Kernel engineering
> https://bootlin.com
>
<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">2018-03-28 10:01 GMT+02:00 Thomas Petazzoni <span dir="ltr">&lt;<a href="mailto:thomas.petazzoni@bootlin.com" target="_blank">thomas.petazzoni@bootlin.com</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello,<br>
<span class="gmail-"><br>
On Wed, 28 Mar 2018 09:57:57 +0200, François Perrad wrote:<br>
<br>
&gt; &gt; Could you have a look ?<br>
&gt;<br>
&gt; The presence of crypt() is detected by the configure script.<br>
<br>
</span>So, if it&#39;s detected by the configure script, there should be no<br>
problem, no ?<br>
<span class="gmail-"><br>
&gt; in dropbear-2017-75/options.h, the logic was :<br>
&gt;     /* This requires crypt() */<br>
&gt;     #ifdef HAVE_CRYPT<br>
&gt;     #define ENABLE_SVR_PASSWORD_AUTH<br>
&gt;     #endif<br>
&gt;<br>
&gt; in dropbear-2018-76/sysoptions.h, the logic is now :<br>
&gt;     #if DROPBEAR_SVR_PASSWORD_AUTH &amp;&amp; !HAVE_CRYPT<br>
&gt;         #error &quot;DROPBEAR_SVR_PASSWORD_AUTH requires `crypt()&#39;.&quot;<br>
&gt;     #endif<br>
&gt;<br>
&gt; So, without something like BR2_TOOLCHAIN_HAS_CRYPT,<br>
&gt; we must always disable the option DROPBEAR_SVR_PASSWORD_AUTH in<br>
&gt; localoptions.h.<br>
<br>
</span>I don&#39;t understand. On one hand, you say that the presence of crypt()<br>
is detected by the configure script, and on the other hand, you say<br>
that we must tell Dropbear explicitly whether crypt() is available or<br>
not.<br>
<br>
Could you clarify ?<br>
<br></blockquote><div><br></div><div>I solve the issue by writing :<br>    #if !HAVE_CRYPT<br>    #define DROPBEAR_SVR_PASSWORD_AUTH 0<br>    #endif<br></div><div>in the localoptions.h file.<br></div><div><br></div><div>François<br></div><div><br> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Thanks!<br>
<span class="gmail-HOEnZb"><font color="#888888"><br>
Thomas<br>
</font></span><div class="gmail-HOEnZb"><div class="gmail-h5">--<br>
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)<br>
Embedded Linux and Kernel engineering<br>
<a href="https://bootlin.com" rel="noreferrer" target="_blank">https://bootlin.com</a><br>
</div></div></blockquote></div><br></div></div>
diff mbox series

Patch

diff --git a/package/dropbear/dropbear.hash b/package/dropbear/dropbear.hash
index 98776e717..ef2011d90 100644
--- a/package/dropbear/dropbear.hash
+++ b/package/dropbear/dropbear.hash
@@ -1,2 +1,2 @@ 
 # From https://matt.ucc.asn.au/dropbear/releases/SHA256SUM.asc
-sha256 6cbc1dcb1c9709d226dff669e5604172a18cf5dbf9a201474d5618ae4465098c dropbear-2017.75.tar.bz2
+sha256 f2fb9167eca8cf93456a5fc1d4faf709902a3ab70dd44e352f3acbc3ffdaea65 dropbear-2018.76.tar.bz2
diff --git a/package/dropbear/dropbear.mk b/package/dropbear/dropbear.mk
index 01a1a07b7..634396dc0 100644
--- a/package/dropbear/dropbear.mk
+++ b/package/dropbear/dropbear.mk
@@ -4,7 +4,7 @@ 
 #
 ################################################################################
 
-DROPBEAR_VERSION = 2017.75
+DROPBEAR_VERSION = 2018.76
 DROPBEAR_SITE = https://matt.ucc.asn.au/dropbear/releases
 DROPBEAR_SOURCE = dropbear-$(DROPBEAR_VERSION).tar.bz2
 DROPBEAR_LICENSE = MIT, BSD-2-Clause-like, BSD-2-Clause
@@ -23,32 +23,22 @@  DROPBEAR_MAKE = \
 	PROGRAMS="$(DROPBEAR_PROGRAMS)"
 
 ifeq ($(BR2_STATIC_LIBS),y)
-DROPBEAR_MAKE += STATIC=1
+DROPBEAR_CONF_OPTS += --enable-static
 endif
 
-define DROPBEAR_FIX_XAUTH
-	$(SED) 's,^#define XAUTH_COMMAND.*/xauth,#define XAUTH_COMMAND "/usr/bin/xauth,g' $(@D)/options.h
-endef
-
-DROPBEAR_POST_EXTRACT_HOOKS += DROPBEAR_FIX_XAUTH
-
 define DROPBEAR_ENABLE_REVERSE_DNS
-	$(SED) 's:.*\(#define DO_HOST_LOOKUP\).*:\1:' $(@D)/options.h
-endef
-
-define DROPBEAR_BUILD_SMALL
-	$(SED) 's:.*\(#define NO_FAST_EXPTMOD\).*:\1:' $(@D)/options.h
+	echo '#define DO_HOST_LOOKUP 1'         >> $(@D)/localoptions.h
 endef
 
 define DROPBEAR_BUILD_FEATURED
-	$(SED) 's:^#define DROPBEAR_SMALL_CODE::' $(@D)/options.h
-	$(SED) 's:.*\(#define DROPBEAR_BLOWFISH\).*:\1:' $(@D)/options.h
-	$(SED) 's:.*\(#define DROPBEAR_TWOFISH128\).*:\1:' $(@D)/options.h
-	$(SED) 's:.*\(#define DROPBEAR_TWOFISH256\).*:\1:' $(@D)/options.h
+	echo '#define DROPBEAR_SMALL_CODE 0'    >> $(@D)/localoptions.h
+	echo '#define DROPBEAR_BLOWFISH 1'      >> $(@D)/localoptions.h
+	echo '#define DROPBEAR_TWOFISH128 1'    >> $(@D)/localoptions.h
+	echo '#define DROPBEAR_TWOFISH256 1'    >> $(@D)/localoptions.h
 endef
 
 define DROPBEAR_DISABLE_STANDALONE
-	$(SED) 's:\(#define NON_INETD_MODE\):/*\1 */:' $(@D)/options.h
+	echo '#define NON_INETD_MODE 0'         >> $(@D)/localoptions.h
 endef
 
 define DROPBEAR_INSTALL_INIT_SYSTEMD
@@ -73,7 +63,6 @@  DROPBEAR_POST_EXTRACT_HOOKS += DROPBEAR_ENABLE_REVERSE_DNS
 endif
 
 ifeq ($(BR2_PACKAGE_DROPBEAR_SMALL),y)
-DROPBEAR_POST_EXTRACT_HOOKS += DROPBEAR_BUILD_SMALL
 DROPBEAR_CONF_OPTS += --disable-zlib
 else
 DROPBEAR_POST_EXTRACT_HOOKS += DROPBEAR_BUILD_FEATURED