Add support for libssh2 in buildroot
v2 cover Add support for libssh2 in buildroot
Adding support for libssh2 to buildroot to allow for its use with libcurl. By having libcurl use libssh2, features like SCP and SFTP become possible when using libcurl.
For more detailed information about options enabled with libssh2 in libcurl see the following website: http://curl.haxx.se/docs/features.html
Change from v1 -> v2:
* All the following changes were noted by Arnout Vandecappelle
* updated commit comments for libssh2
* removed details from libssh2/Config.in
* added libssh2 to select libgcrypt by default
* fixed up configuration options libssh2 in libssh.mk
* removed removal of documentation and static libraries since the target finalize step takes care of this
* added check for zlib dependancy (myself)
Ryan Barnett (2):
libssh2: add support for new package libssh2
libcurl: add support for compiling with libssh2
package/Config.in | 1 + package/libcurl/libcurl.mk | 8 ++++++++ package/libssh2/Config.in | 11 +++++++++++ package/libssh2/libssh2.mk | 32 ++++++++++++++++++++++++++++++++ 4 files changed, 52 insertions(+), 0 deletions(-) create mode 100644 package/libssh2/Config.in create mode 100644 package/libssh2/libssh2.mk
PATCH v2 1/2 libssh2: add support for new package libssh2
Adding new package - libssh2 - under
Target packages > Libraries > Crypto > libssh2
libssh2 is a client-side C library implementing the SSH2 protocol.
For more information on this package - see their website:
http://www.libssh2.org/
---
Changes v1 -> v2:
* removed details from libssh2/Config.in (suggested by Arnout)
* added libssh2 to select libgcrypt by default (suggested by Arnout)
* fixed up configuration options libssh2 in libssh.mk (suggested by Arnout)
* removed removal of documentation and static libraries since the target finalize step takes care of this (suggested by Arnout)
* added check for zlib dependancy
package/Config.in | 1 + package/libssh2/Config.in | 11 +++++++++++ package/libssh2/libssh2.mk | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 44 insertions(+), 0 deletions(-) create mode 100644 package/libssh2/Config.in create mode 100644 package/libssh2/libssh2.mk
package/Config.in +1 -0
@@ -424,6 +424,7 @@ source "package/libmcrypt/Config.in" source "package/libmhash/Config.in" source "package/libnss/Config.in" source "package/libsha1/Config.in" +source "package/libssh2/Config.in" source "package/nettle/Config.in" source "package/openssl/Config.in" source "package/polarssl/Config.in"
package/libssh2/Config.in new file +11 -0
@@ -0,0 +1,11 @@ +config BR2_PACKAGE_LIBSSH2 + bool "libssh2" + select BR2_PACKAGE_LIBGCRYPT if !BR2_PACKAGE_OPENSSL + help + libssh2 is a client-side C library implementing the SSH2 protocol + as defined by Internet Drafts: SECSH-TRANS(22), SECSH-USERAUTH(25), + SECSH-CONNECTION(23), SECSH-ARCH(20), SECSH-FILEXFER(06)*, + SECSH-DHGEX(04), and SECSH-NUMBERS(10) + + http://www.libssh2.org/ +
package/libssh2/libssh2.mk new file +32 -0
@@ -0,0 +1,32 @@ +############################################################# +# +# libssh2 +# +############################################################# + +LIBSSH2_VERSION = 1.4.3 +LIBSSH2_SITE = http://www.libssh2.org/download/ +LIBSSH2_LICENSE = BSD +LIBSSH2_LICENSE_FILES = COPYING +LIBSSH2_INSTALL_STAGING = YES +LIBSSH2_CONF_OPT = --disable-examples-build + +# libssh2 must use either libgcrypt or OpenSSL +ifeq ($(BR2_PACKAGE_OPENSSL),y) +LIBSSH2_DEPENDENCIES += openssl +LIBSSH2_CONF_OPT += --with-openssl --without-libgcrypt +endif +ifeq ($(BR2_PACKAGE_LIBGCRYPT),y) +LIBSSH2_DEPENDENCIES += libgcrypt +LIBSSH2_CONF_OPT += --with-libgcrypt --without-openssl +endif + +# Add zlib support if enabled +ifeq ($(BR2_PACKAGE_ZLIB),y) +LIBSSH2_DEPENDENCIES += zlib +LIBSSH2_CONF_OPT += --with-libz +else +LIBSSH2_CONF_OPT += --without-libz +endif + +$(eval $(autotools-package))
Signature · 1 line
1.7.1
PATCH v2 1/2 libssh2: add support for new package libssh2
Hi Ryan,
Quoted 10 lines · Ryan Barnett
Adding new package - libssh2 - under
Target packages > Libraries > Crypto > libssh2libssh2 is a client-side C library implementing the SSH2 protocol.
For more information on this package - see their website:
http://www.libssh2.org/Signed-off-by Ryan Barnett <[email protected]>---
[...]
package/libssh2/libssh2.mk line 18
Quoted 5 lines
package/libssh2/libssh2.mk new file +5
-0+# libssh2 must use either libgcrypt or OpenSSL +ifeq ($(BR2_PACKAGE_OPENSSL),y) +LIBSSH2_DEPENDENCIES += openssl +LIBSSH2_CONF_OPT += --with-openssl --without-libgcrypt +endif
You should probably use 'else' here. What if both BR2_PACKAGE_OPENSSL and BR2_PACKAGE_LIBGCRYPT ares selected? You end up with
LIBSSH2_CONF_OPT ~= --with-openssl --without-libgcrypt --with-libgcrypt \
--without-openssl
which is not what you want. You might also want to reverse the order since libgcrypt is considered the default.
baruch
Quoted 14 lines
package/libssh2/libssh2.mk new file +14
-0+ifeq ($(BR2_PACKAGE_LIBGCRYPT),y) +LIBSSH2_DEPENDENCIES += libgcrypt +LIBSSH2_CONF_OPT += --with-libgcrypt --without-openssl +endif + +# Add zlib support if enabled +ifeq ($(BR2_PACKAGE_ZLIB),y) +LIBSSH2_DEPENDENCIES += zlib +LIBSSH2_CONF_OPT += --with-libz +else +LIBSSH2_CONF_OPT += --without-libz +endif + +$(eval $(autotools-package))
Signature · 3 lines
http://baruch.siach.name/blog/ ~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -PATCH v2 2/2 libcurl: add support for compiling with libssh2
In reply to Ryan BarnettAdding configuration options that if libssh2 is selected, compile libcurl with --with-ssh config flag.
--- package/libcurl/libcurl.mk | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-)
package/libcurl/libcurl.mk +8 -0
@@ -34,6 +34,14 @@ else LIBCURL_CONF_OPT += --without-ssl endif +# Configure curl to support libssh2 +ifeq ($(BR2_PACKAGE_LIBSSH2),y) +LIBCURL_DEPENDENCIES += libssh2 +LIBCURL_CONF_OPT += --with-libssh2 +else +LIBCURL_CONF_OPT += --without-libssh2 +endif + define LIBCURL_FIX_DOT_PC printf 'Requires: openssl\n' >>$(@D)/libcurl.pc.in endef
Signature · 1 line
1.7.1