[Buildroot] [PATCH 1/2] libssh2: add support for new package libssh2
Ryan Barnett
rjbarnet at rockwellcollins.com
Thu Aug 29 19:27:02 UTC 2013
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/
Signed-off-by: Ryan Barnett <rjbarnet at rockwellcollins.com>
---
package/Config.in | 1 +
package/libssh2/Config.in | 18 ++++++++++++++++
package/libssh2/libssh2.mk | 49 ++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 68 insertions(+), 0 deletions(-)
create mode 100644 package/libssh2/Config.in
create mode 100644 package/libssh2/libssh2.mk
diff --git a/package/Config.in b/package/Config.in
index 97cd7da..668f550 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -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"
diff --git a/package/libssh2/Config.in b/package/libssh2/Config.in
new file mode 100644
index 0000000..73df86e
--- /dev/null
+++ b/package/libssh2/Config.in
@@ -0,0 +1,18 @@
+config BR2_PACKAGE_LIBSSH2
+ bool "libssh2"
+ 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)
+
+ The package has support to use either OpenSSL or libgcrypt for
+ cryptographic operations. Please select one of these packages in
+ build configuration
+
+ The package will default to selecting OpenSSL if neither libgcrypt
+ or OpenSSL are selected. Also if OpenSSL and libgcrypt are both present,
+ OpenSSL will be used over libgcrypt.
+
+ http://www.libssh2.org/
+
diff --git a/package/libssh2/libssh2.mk b/package/libssh2/libssh2.mk
new file mode 100644
index 0000000..aef391e
--- /dev/null
+++ b/package/libssh2/libssh2.mk
@@ -0,0 +1,49 @@
+#############################################################
+#
+# 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-buildg
+
+# libssh2 must use either libgcrypt or OpenSSL - OpenSSL will take precedence over libgcrypt
+# However, if neither is selected, OpenSSL will be added to the build
+ifeq ($(BR2_PACKAGE_OPENSSL),y)
+LIBSSH2_DEPENDENCIES += openssl
+LIBSSH2_CONF_OPT += --with-openssl --without-libgcrypt
+else ifeq ($(BR2_PACKAGE_LIBGCRYPT),y)
+LIBSSH2_DEPENDENCIES += libgcrypt
+LIBSSH2_CONF_OPT += --with-libgcrypt --without-openssl
+else
+LIBSSH2_DEPENDENCIES += openssl
+LIBSSH2_CONF_OPT += --with-openssl --without-libgcrypt
+endif
+
+# Remove Documentation
+ifneq ($(BR2_HAVE_DOCUMENTATION),y)
+define LIBSSH2_TARGET_REMOVE_DOCUMENTATION
+ rm -f $(TARGET_DIR)/usr/share/man/man3/libssh2*
+endef
+LIBSSH2_POST_INSTALL_TARGET_HOOKS += LIBSSH2_TARGET_REMOVE_DOCUMENTATION
+endif
+
+# Remove unneeded files from target
+LIBSSH2_UNNEEDED_FILES = \
+ usr/include/libssh2.h \
+ usr/include/libssh2_publickey.h \
+ usr/include/libssh2_sftp.h \
+ usr/lib/pkgconfig/libssh2.pc \
+ usr/lib/libssh2.la \
+ usr/lib/libssh2.a
+
+define LIBSSH2_TARGET_REMOVE_UNNEEDED_FILES
+ rm -rf $(addprefix $(TARGET_DIR)/, $(LIBSSH2_UNNEEDED_FILES))
+endef
+LIBSSH2_POST_INSTALL_TARGET_HOOKS += LIBSSH2_TARGET_REMOVE_UNNEEDED_FILES
+
+$(eval $(autotools-package))
--
1.7.1
More information about the buildroot
mailing list