package/libssh2: Update to newest version
PATCH v3 1/2 package/libssh2: Update to newest version
Update libssh2 to use the newest version from git. This caused a transition from released version number to hash as it has not been version rev'd in over a year (see issue
https://github.com/libssh2/libssh2/issues/220 for bump request).
This brings in changes to the autoconf to correctly pick the crypto library.
--
[v2->v3]
- Remove reconfigure hooks for moving files, carry patch for libssh2 until upstreaming has completed.
- Use '--with-crypto=' configure options of newest libssh2 versions.
[v1->v2]
- Use LIBSSH2_AUTORECONF instead of calling explicitly
--- .../0001-drop-custom-buildconf-script.patch | 121 +++++++++++++++++++++ package/libssh2/libssh2.hash | 3 +- package/libssh2/libssh2.mk | 23 ++-- 3 files changed, 134 insertions(+), 13 deletions(-) create mode 100644 package/libssh2/0001-drop-custom-buildconf-script.patch
package/libssh2/0001-drop-custom-buildconf-script.patch new file +121 -0
@@ -0,0 +1,121 @@ +From 39a2a444a32896bd2dab37c9b247ccfd11ff4693 Mon Sep 17 00:00:00 2001 +From: "Yann E. MORIN" <[email protected]> +Date: Mon, 30 Oct 2017 19:29:12 +0100 +Subject: [PATCH] buildsystem: drop custom buildconf script, rely on autoreconf + +The buildconf script is currently required, because we need to copy a +header around, because it is used both from the library and the examples +sources. + +However, having a custom 'buildconf'-like script is not needed if we can +ensure that the header / exists by the time it is needed. For That, we +can just append the src/ directory to the headers search path for the +examples. + +And then it means we no longer need to generate the same header twice, +so we remove the second one from configure.ac. + +Now, we can just call "autoreconf -fi" to generate the autotools files, +instead of relying on the canned sequence in "buildconf", since +autoreconf has now long known what to do at the correct moment (future +versions of autotools, automake, autopoint, autoheader etc... may +require an other ordering, or other intermediate steps, etc...). + +Eventually, get rid of buildconf now it is no longer needed. In fact, we +really keep it for legacy, but have it just call autoreconf (and print a +nice user-friendly warning). + +Update gitignore accordingly, too. + +Signed-off-by: "Yann E. MORIN" <[email protected]> +Cc: Sam Voss <[email protected]> +--- + .gitignore | 2 ++ + buildconf | 24 +++++------------------- + configure.ac | 2 +- + example/.gitignore | 2 -- + example/Makefile.am | 2 +- + 5 files changed, 9 insertions(+), 23 deletions(-) + +diff --git a/.gitignore b/.gitignore +index 997e51e1..b6d6b5cb 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -13,6 +13,8 @@ Makefile + Makefile.in + aclocal.m4 + autom4te.cache ++compile ++test-driver + config.guess + config.log + config.status +diff --git a/buildconf b/buildconf +index 558dcb66..728b3397 100755 +--- a/buildconf ++++ b/buildconf +@@ -1,22 +1,8 @@ + #!/bin/sh + +-LIBTOOLIZE="libtoolize" ++echo "***" >&2 ++echo "*** Do not use buildconf. Instead, just use: autoreconf -fi" >&2 ++echo "*** Doing it for you now, but buildconf may disapear in the future." >&2 ++echo "***" >&2 + +-if [ "x`which $LIBTOOLIZE`" = "x" ]; then +- LIBTOOLIZE="glibtoolize" +-fi +- +-if [ "x`which $LIBTOOLIZE`" = "x" ]; then +- echo "Neither libtoolize nor glibtoolize could be found!" +- exit 1 +-fi +- +-${LIBTOOLIZE} --copy --automake --force +-${ACLOCAL:-aclocal} -I m4 $ACLOCAL_FLAGS +-${AUTOHEADER:-autoheader} +-# copy the private libssh2_config.h.in to the examples dir so that +-# it can be included without pointing the include path to the private +-# source dir +-cp src/libssh2_config.h.in example/libssh2_config.h.in +-${AUTOCONF:-autoconf} +-${AUTOMAKE:-automake} --add-missing --copy ++${AUTORECONF:-autoreconf} -fi "${@}" +diff --git a/configure.ac b/configure.ac +index c6ff7535..6939d0d6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2,7 +2,7 @@ + AC_INIT(libssh2, [-], libssh2-devel at cool.haxx.se) + AC_CONFIG_MACRO_DIR([m4]) + AC_CONFIG_SRCDIR([src]) +-AC_CONFIG_HEADERS([src/libssh2_config.h example/libssh2_config.h]) ++AC_CONFIG_HEADERS([src/libssh2_config.h]) + AM_MAINTAINER_MODE + m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + +diff --git a/example/.gitignore b/example/.gitignore +index 13448191..cac152b8 100644 +--- a/example/.gitignore ++++ b/example/.gitignore +@@ -20,8 +20,6 @@ sftp_write_nonblock + config.h.in + ssh2_exec + ssh2_agent +-libssh2_config.h +-libssh2_config.h.in + stamp-h2 + sftp_append + sftp_write_sliding +diff --git a/example/Makefile.am b/example/Makefile.am +index 5cf5f071..41f65b12 100644 +--- a/example/Makefile.am ++++ b/example/Makefile.am +@@ -13,5 +13,5 @@ if HAVE_SYS_UN_H + noinst_PROGRAMS += x11 + endif + +-AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/example ++AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/example -I../src + LDADD = $(top_builddir)/src/libssh2.la
package/libssh2/libssh2.hash +1 -2
@@ -1,3 +1,2 @@ # Locally calculated after checking pgp signature -# https://www.libssh2.org/download/libssh2-1.8.0.tar.gz.asc -sha256 39f34e2f6835f4b992cafe8625073a88e5a28ba78f83e8099610a7b3af4676d4 libssh2-1.8.0.tar.gz +sha256 e73d55cd512863aa6423c6e137039e3e1bcbf5ba87f130e7441132c2c78a5425 libssh2-616fd4d1b3e4a55de67c48819fefca83132126b5.tar.gz
package/libssh2/libssh2.mk +12 -11
@@ -4,32 +4,33 @@ # ################################################################################ -LIBSSH2_VERSION = 1.8.0 -LIBSSH2_SITE = http://www.libssh2.org/download +LIBSSH2_VERSION = 616fd4d1b3e4a55de67c48819fefca83132126b5 +LIBSSH2_SITE = $(call github,libssh2,libssh2,$(LIBSSH2_VERSION)) LIBSSH2_LICENSE = BSD LIBSSH2_LICENSE_FILES = COPYING LIBSSH2_INSTALL_STAGING = YES LIBSSH2_CONF_OPTS = --disable-examples-build +# autoreconf must be ran when building off git, as it has not been ran at hash +LIBSSH2_AUTORECONF = YES + # Dependency is one of mbedtls, libgcrypt or openssl, guaranteed in -# Config.in. Favour mbedtls. +# Config.in. ifeq ($(BR2_PACKAGE_MBEDTLS),y) LIBSSH2_DEPENDENCIES += mbedtls -LIBSSH2_CONF_OPTS += --with-mbedtls=$(STAGING_DIR)/usr \ - --without-openssl --without-libgcrypt -LIBSSH2_CONF_ENV += ac_cv_libgcrypt=no +LIBSSH2_CONF_OPTS += --with-libmbedcrypto-prefix=$(STAGING_DIR)/usr \ + --with-crypto=mbedtls else ifeq ($(BR2_PACKAGE_LIBGCRYPT),y) LIBSSH2_DEPENDENCIES += libgcrypt -LIBSSH2_CONF_OPTS += --with-libgcrypt=$(STAGING_DIR)/usr \ - --without-openssl --without-mbedtls +LIBSSH2_CONF_OPTS += --with-libgcrypt-prefix=$(STAGING_DIR)/usr \ + --with-crypto=libgcrypt # configure.ac forgets to link to dependent libraries of gcrypt breaking static # linking LIBSSH2_CONF_ENV += LIBS="`$(STAGING_DIR)/usr/bin/libgcrypt-config --libs`" else LIBSSH2_DEPENDENCIES += openssl -LIBSSH2_CONF_OPTS += --with-openssl \ - --with-libssl-prefix=$(STAGING_DIR)/usr \ - --without-libgcrypt --without-mbedtls +LIBSSH2_CONF_OPTS += --with-libssl-prefix=$(STAGING_DIR)/usr \ + --with-crypto=openssl endif # Add zlib support if enabled
Signature · 1 line
1.9.1
PATCH v3 2/2 package/libssh2: Add selectable crypto libraries
Add functionality to allow crypto libraries for libssh2 to be selectable by a choice instead of a fallback that may not work in all cases. Previous fallback is maintained from within the "defaults" of the choice menu, but can be overridden by making a choice.
This fixes issues where two crypto libraries are present on the system, but the fallback order picks the wrong one.
--
[v1->v2]
- Do not have comments when crypo is not selected, select it instead.
- Do not select OpenSSL by default when libssh2 is selected if no others are chosen
--- package/libssh2/Config.in | 24 +++++++++++++++++++++++- package/libssh2/libssh2.mk | 6 +++--- 2 files changed, 26 insertions(+), 4 deletions(-)
package/libssh2/Config.in +23 -1
@@ -1,6 +1,5 @@ config BR2_PACKAGE_LIBSSH2 bool "libssh2" - select BR2_PACKAGE_OPENSSL if !(BR2_PACKAGE_MBEDTLS || BR2_PACKAGE_LIBGCRYPT) help libssh2 is a client-side C library implementing the SSH2 protocol as defined by Internet Drafts: SECSH-TRANS(22),
@@ -8,3 +7,26 @@ config BR2_PACKAGE_LIBSSH2 SECSH-FILEXFER(06)*, SECSH-DHGEX(04), and SECSH-NUMBERS(10) http://www.libssh2.org/ + +if BR2_PACKAGE_LIBSSH2 + +choice + prompt "Crypto Backend" + help + Select crypto library to be used in libssh2. + +config BR2_PACKAGE_LIBSSH2_MBEDTLS + select BR2_PACKAGE_MBEDTLS + bool "mbedtls" + +config BR2_PACKAGE_LIBSSH2_LIBGCRYPT + select BR2_PACKAGE_LIBGCRYPT + depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt -> libgpg-error + bool "gcrypt" + +config BR2_PACKAGE_LIBSSH2_OPENSSL + select BR2_PACKAGE_OPENSSL + bool "openssl" + +endchoice +endif
package/libssh2/libssh2.mk +3 -3
@@ -16,18 +16,18 @@ LIBSSH2_AUTORECONF = YES # Dependency is one of mbedtls, libgcrypt or openssl, guaranteed in # Config.in. -ifeq ($(BR2_PACKAGE_MBEDTLS),y) +ifeq ($(BR2_PACKAGE_LIBSSH2_MBEDTLS),y) LIBSSH2_DEPENDENCIES += mbedtls LIBSSH2_CONF_OPTS += --with-libmbedcrypto-prefix=$(STAGING_DIR)/usr \ --with-crypto=mbedtls -else ifeq ($(BR2_PACKAGE_LIBGCRYPT),y) +else ifeq ($(BR2_PACKAGE_LIBSSH2_LIBGCRYPT),y) LIBSSH2_DEPENDENCIES += libgcrypt LIBSSH2_CONF_OPTS += --with-libgcrypt-prefix=$(STAGING_DIR)/usr \ --with-crypto=libgcrypt # configure.ac forgets to link to dependent libraries of gcrypt breaking static # linking LIBSSH2_CONF_ENV += LIBS="`$(STAGING_DIR)/usr/bin/libgcrypt-config --libs`" -else +else ifeq ($(BR2_PACKAGE_LIBSSH2_OPENSSL),y) LIBSSH2_DEPENDENCIES += openssl LIBSSH2_CONF_OPTS += --with-libssl-prefix=$(STAGING_DIR)/usr \ --with-crypto=openssl
Signature · 1 line
1.9.1
PATCH v3 2/2 package/libssh2: Add selectable crypto libraries
Hello,
Quoted 2 lines · Sam Voss
Add functionality to allow crypto libraries for libssh2 to be selectable by a choice instead of a fallback that may not work in all cases.
Is it possible to have a better justification that "may not work in all cases" ?
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
PATCH v3 2/2 package/libssh2: Add selectable crypto libraries
In reply to Sam VossHello,
Quoted 2 lines · Sam Voss
Add functionality to allow crypto libraries for libssh2 to be selectable by a choice instead of a fallback that may not work in all cases.
Is it possible to have a better justification than "may not work in all cases" ?
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
PATCH v3 1/2 package/libssh2: Update to newest version
In reply to Sam VossHi Sam,
Quoted 10 lines · Sam Voss
Update libssh2 to use the newest version from git. This caused a transition from released version number to hash as it has not been version rev'd in over a year (see issue
https://github.com/libssh2/libssh2/issues/220 for bump request).This brings in changes to the autoconf to correctly pick the crypto library.
Signed-off-by Sam Voss <[email protected]>--
[...]
package/libssh2/libssh2.hash line 1
Quoted 6 lines
package/libssh2/libssh2.hash +0
-0@@ -1,3 +1,2 @@ # Locally calculated after checking pgp signature
The pgp signature part is no longer true.
Quoted 16 lines
package/libssh2/libssh2.hash +1
-2-# https://www.libssh2.org/download/libssh2-1.8.0.tar.gz.asc -sha256 39f34e2f6835f4b992cafe8625073a88e5a28ba78f83e8099610a7b3af4676d4 libssh2-1.8.0.tar.gz +sha256 e73d55cd512863aa6423c6e137039e3e1bcbf5ba87f130e7441132c2c78a5425 libssh2-616fd4d1b3e4a55de67c48819fefca83132126b5.tar.gzpackage/libssh2/libssh2.mk +2
-2@@ -4,32 +4,33 @@ # ################################################################################ -LIBSSH2_VERSION = 1.8.0 -LIBSSH2_SITE = http://www.libssh2.org/download +LIBSSH2_VERSION = 616fd4d1b3e4a55de67c48819fefca83132126b5 +LIBSSH2_SITE = $(call github,libssh2,libssh2,$(LIBSSH2_VERSION)) LIBSSH2_LICENSE = BSD
package/libssh2/libssh2.mk line 18
Quoted 10 lines
package/libssh2/libssh2.mk +4
-1LIBSSH2_LICENSE_FILES = COPYING LIBSSH2_INSTALL_STAGING = YES LIBSSH2_CONF_OPTS = --disable-examples-build +# autoreconf must be ran when building off git, as it has not been ran at hash +LIBSSH2_AUTORECONF = YES + # Dependency is one of mbedtls, libgcrypt or openssl, guaranteed in -# Config.in. Favour mbedtls. +# Config.in.
This change belongs to the next patch.
Quoted 16 lines
package/libssh2/libssh2.mk +4
-5ifeq ($(BR2_PACKAGE_MBEDTLS),y) LIBSSH2_DEPENDENCIES += mbedtls -LIBSSH2_CONF_OPTS += --with-mbedtls=$(STAGING_DIR)/usr \ - --without-openssl --without-libgcrypt -LIBSSH2_CONF_ENV += ac_cv_libgcrypt=no +LIBSSH2_CONF_OPTS += --with-libmbedcrypto-prefix=$(STAGING_DIR)/usr \ + --with-crypto=mbedtls else ifeq ($(BR2_PACKAGE_LIBGCRYPT),y) LIBSSH2_DEPENDENCIES += libgcrypt -LIBSSH2_CONF_OPTS += --with-libgcrypt=$(STAGING_DIR)/usr \ - --without-openssl --without-mbedtls +LIBSSH2_CONF_OPTS += --with-libgcrypt-prefix=$(STAGING_DIR)/usr \ + --with-crypto=libgcrypt # configure.ac forgets to link to dependent libraries of gcrypt breaking static # linking LIBSSH2_CONF_ENV += LIBS="`$(STAGING_DIR)/usr/bin/libgcrypt-config --libs`"
package/libssh2/libssh2.mk line 36
Quoted 10 lines
package/libssh2/libssh2.mk +2
-3else LIBSSH2_DEPENDENCIES += openssl -LIBSSH2_CONF_OPTS += --with-openssl \ - --with-libssl-prefix=$(STAGING_DIR)/usr \ - --without-libgcrypt --without-mbedtls +LIBSSH2_CONF_OPTS += --with-libssl-prefix=$(STAGING_DIR)/usr \ + --with-crypto=openssl endif # Add zlib support if enabled
baruch
Signature · 3 lines
http://baruch.siach.name/blog/ ~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch at tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -PATCH v3 1/2 package/libssh2: Update to newest version
Baruch, All,
Quoted 11 lines · Baruch Siach
[...]
package/libssh2/libssh2.hash line 1
Quoted 6 lines
package/libssh2/libssh2.hash +0
-0@@ -1,3 +1,2 @@ # Locally calculated after checking pgp signatureThe pgp signature part is no longer true.
I'll remove this
Quoted 20 lines
Quoted 20 lines
package/libssh2/libssh2.hash +1
-2-# https://www.libssh2.org/download/libssh2-1.8.0.tar.gz.asc -sha256 39f34e2f6835f4b992cafe8625073a88e5a28ba78f83e8099610a7b3af4676d4 libssh2-1.8.0.tar.gz +sha256 e73d55cd512863aa6423c6e137039e3e1bcbf5ba87f130e7441132c2c78a5425 libssh2-616fd4d1b3e4a55de67c48819fefca83132126b5.tar.gzpackage/libssh2/libssh2.mk +2
-2@@ -4,32 +4,33 @@ # ################################################################################ -LIBSSH2_VERSION = 1.8.0 -LIBSSH2_SITE = http://www.libssh2.org/download +LIBSSH2_VERSION = 616fd4d1b3e4a55de67c48819fefca83132126b5 +LIBSSH2_SITE = $(call github,libssh2,libssh2,$(LIBSSH2_VERSION)) LIBSSH2_LICENSE = BSD LIBSSH2_LICENSE_FILES = COPYING LIBSSH2_INSTALL_STAGING = YES LIBSSH2_CONF_OPTS = --disable-examples-build
Quoted 8 lines
package/libssh2/libssh2.mk line 18
Quoted 6 lines
package/libssh2/libssh2.mk +4
-1+# autoreconf must be ran when building off git, as it has not been ran at hash +LIBSSH2_AUTORECONF = YES + # Dependency is one of mbedtls, libgcrypt or openssl, guaranteed in -# Config.in. Favour mbedtls. +# Config.in.This change belongs to the next patch.
Missed this when flipping patches around, will fix in v4
Sam