diff mbox

[02/10] add openssl as a dependency to certain packages

Message ID 20170804185521.12320-3-Adamduskett@outlook.com
State Superseded, archived
Headers show

Commit Message

Adam Duskett Aug. 4, 2017, 6:55 p.m. UTC
The following packages only work with OpenSSL.  In anticipation for the next
patch, these packages must explicitly rely on OpenSSL in thier Config.in
files.

The reason for each package is as follows:

luvi:
  Uses TS_RESP_CTX_set_time_cb which is removed from LibreSSL.
  This is the only package that currently uses this API in
  BuildRoot.

nodejs:
  Bundles it's own OpenSSL variant, which is tightly intigrated
  with node.  There is a ongoing effort to make the SSL library
  agnostic.  Gentoo has provided a patch to make NodeJS work with
  LibreSSL, but I haven't been able to test it.

python-cryptography:
  Newer versions compile against LibreSSL, however there
  are some issues running the latest version when
  cross compiling.

rauc:
   Rauc uses smc exclusively, which LibreSSL does not support.

stunnel:
  The author of stunnel has on two occasions said he will now
  allow Stunnel to be compiled against LibreSSL.
Signed-off-by: Adam Duskett <Adamduskett@outlook.com>
---
 package/luvi/Config.in                | 5 +++--
 package/nodejs/Config.in              | 6 +++++-
 package/python-cryptography/Config.in | 5 ++++-
 package/rauc/Config.in                | 5 ++++-
 package/stunnel/Config.in             | 5 ++++-
 5 files changed, 20 insertions(+), 6 deletions(-)

Comments

Arnout Vandecappelle Aug. 4, 2017, 9:16 p.m. UTC | #1
On 04-08-17 20:55, Adam Duskett wrote:
[snip]
> diff --git a/package/luvi/Config.in b/package/luvi/Config.in
> index c9fd41739..c8921c320 100644
> --- a/package/luvi/Config.in
> +++ b/package/luvi/Config.in
> @@ -5,6 +5,7 @@ config BR2_PACKAGE_LUVI
>  	depends on !BR2_STATIC_LIBS # libuv
>  	depends on BR2_PACKAGE_LUAJIT
>  	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libuv
> +	depends on BR2_PACKAGE_OPENSSL

 This makes no sense to me. luvi can be built without openssl, so why should it
depend on it? In fact, the only thing you should do is NOT modify the .mk file,
then lua-openssl will not be used if libressl is selected.

[snip]
> diff --git a/package/nodejs/Config.in b/package/nodejs/Config.in
> index 345fe1047..921f3c609 100644
> --- a/package/nodejs/Config.in
> +++ b/package/nodejs/Config.in
> @@ -13,6 +13,9 @@ comment "nodejs needs a toolchain w/ C++, dynamic library, NPTL, gcc >= 4.8, wch
>  	depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \
>  		!BR2_HOST_GCC_AT_LEAST_4_8 || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || !BR2_USE_WCHAR
>  
> +comment "nodejs needs OpenSSL"
> +	depends on !BR2_PACKAGE_OPENSSL
> +
>  config BR2_PACKAGE_NODEJS
>  	bool "nodejs"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # libuv
> @@ -21,6 +24,7 @@ config BR2_PACKAGE_NODEJS
>  	depends on BR2_HOST_GCC_AT_LEAST_4_8
>  	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
>  	depends on BR2_USE_WCHAR
> +	depends on BR2_PACKAGE_OPENSSL

 Similar situation here, I think.


 Regards,
 Arnout

[snip]
Marcus Hoffmann Aug. 4, 2017, 10:30 p.m. UTC | #2
Hello Adam,

On 04.08.2017 20:55, Adam Duskett wrote:
> The following packages only work with OpenSSL.  In anticipation for the next
> patch, these packages must explicitly rely on OpenSSL in thier Config.in
> files.
> 
> The reason for each package is as follows:
> 
> luvi:
>   Uses TS_RESP_CTX_set_time_cb which is removed from LibreSSL.
>   This is the only package that currently uses this API in
>   BuildRoot.
> 
> nodejs:
>   Bundles it's own OpenSSL variant, which is tightly intigrated
>   with node.  There is a ongoing effort to make the SSL library
>   agnostic.  Gentoo has provided a patch to make NodeJS work with
>   LibreSSL, but I haven't been able to test it.
> 
> python-cryptography:
>   Newer versions compile against LibreSSL, however there
>   are some issues running the latest version when
>   cross compiling.
> 
> rauc:
>    Rauc uses smc exclusively, which LibreSSL does not support.
> 
> stunnel:
>   The author of stunnel has on two occasions said he will now

'not' instead of 'now' I think.

[snip]

Best wishes,
Marcus
diff mbox

Patch

diff --git a/package/luvi/Config.in b/package/luvi/Config.in
index c9fd41739..c8921c320 100644
--- a/package/luvi/Config.in
+++ b/package/luvi/Config.in
@@ -5,6 +5,7 @@  config BR2_PACKAGE_LUVI
 	depends on !BR2_STATIC_LIBS # libuv
 	depends on BR2_PACKAGE_LUAJIT
 	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libuv
+	depends on BR2_PACKAGE_OPENSSL
 	select BR2_PACKAGE_LIBUV
 	select BR2_PACKAGE_LUV
 	help
@@ -29,5 +30,5 @@  comment "luvi needs a toolchain w/ NPTL, dynamic library"
 	depends on BR2_USE_MMU
 	depends on BR2_TOOLCHAIN_HAS_SYNC_4
 
-comment "luvi needs LuaJIT"
-	depends on !BR2_PACKAGE_LUAJIT
+comment "luvi needs LuaJIT and OpenSSL"
+	depends on !BR2_PACKAGE_LUAJIT || BR2_PACKAGE_LIBRESSL
diff --git a/package/nodejs/Config.in b/package/nodejs/Config.in
index 345fe1047..921f3c609 100644
--- a/package/nodejs/Config.in
+++ b/package/nodejs/Config.in
@@ -13,6 +13,9 @@  comment "nodejs needs a toolchain w/ C++, dynamic library, NPTL, gcc >= 4.8, wch
 	depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \
 		!BR2_HOST_GCC_AT_LEAST_4_8 || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || !BR2_USE_WCHAR
 
+comment "nodejs needs OpenSSL"
+	depends on !BR2_PACKAGE_OPENSSL
+
 config BR2_PACKAGE_NODEJS
 	bool "nodejs"
 	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # libuv
@@ -21,6 +24,7 @@  config BR2_PACKAGE_NODEJS
 	depends on BR2_HOST_GCC_AT_LEAST_4_8
 	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
 	depends on BR2_USE_WCHAR
+	depends on BR2_PACKAGE_OPENSSL
 	# uses fork()
 	depends on BR2_USE_MMU
 	# uses dlopen(). On ARMv5, we could technically support static
@@ -39,7 +43,7 @@  if BR2_PACKAGE_NODEJS
 
 config BR2_PACKAGE_NODEJS_NPM
 	bool "NPM for the target"
-	select BR2_PACKAGE_OPENSSL
+	depends on BR2_PACKAGE_OPENSSL
 	help
 	  NPM is the package manager for the Node JavaScript platform.
 	  Note that enabling NPM on the target also selects OpenSSL for the
diff --git a/package/python-cryptography/Config.in b/package/python-cryptography/Config.in
index 9827cf82b..19389d1bc 100644
--- a/package/python-cryptography/Config.in
+++ b/package/python-cryptography/Config.in
@@ -1,7 +1,7 @@ 
 config BR2_PACKAGE_PYTHON_CRYPTOGRAPHY
 	bool "python-cryptography"
 	depends on BR2_INSTALL_LIBSTDCPP # python-pyasn
-	select BR2_PACKAGE_OPENSSL
+	depends on BR2_PACKAGE_OPENSSL
 	select BR2_PACKAGE_PYTHON_CFFI # runtime
 	select BR2_PACKAGE_PYTHON_IDNA # runtime
 	select BR2_PACKAGE_PYTHON_PYASN # runtime
@@ -21,3 +21,6 @@  config BR2_PACKAGE_PYTHON_CRYPTOGRAPHY
 
 comment "python-cryptography needs a toolchain w/ C++"
 	depends on !BR2_INSTALL_LIBSTDCPP
+	
+comment "python-cryptography needs OpenSSL"
+	depends on !BR2_PACKAGE_OPENSSL
diff --git a/package/rauc/Config.in b/package/rauc/Config.in
index 6433b827d..7fe4b9b7c 100644
--- a/package/rauc/Config.in
+++ b/package/rauc/Config.in
@@ -3,8 +3,8 @@  config BR2_PACKAGE_RAUC
 	depends on BR2_TOOLCHAIN_HAS_THREADS # glib2
 	depends on BR2_USE_MMU # glib2
 	depends on BR2_USE_WCHAR # glib2
+	depends on BR2_PACKAGE_OPENSSL
 	select BR2_PACKAGE_LIBGLIB2
-	select BR2_PACKAGE_OPENSSL
 	select BR2_PACKAGE_DBUS # run-time dependency
 	help
 	  RAUC is the Robust Auto-Update Controller developed by
@@ -35,3 +35,6 @@  endif
 comment "rauc needs a toolchain w/ wchar, threads"
 	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
 	depends on BR2_USE_MMU
+
+comment "rauc needs OpenSSL"
+	depends on !BR2_PACKAGE_OPENSSL
diff --git a/package/stunnel/Config.in b/package/stunnel/Config.in
index e4a956770..e9bc48f6c 100644
--- a/package/stunnel/Config.in
+++ b/package/stunnel/Config.in
@@ -1,9 +1,12 @@ 
 config BR2_PACKAGE_STUNNEL
 	bool "stunnel"
 	depends on BR2_USE_MMU # fork()
-	select BR2_PACKAGE_OPENSSL
+	depends on BR2_PACKAGE_OPENSSL
 	help
 	  Stunnel is a program that wraps any TCP connection with an SSL
 	  connection.
 
 	  http://www.stunnel.org/
+
+comment "stunnel needs OpenSSL"
+	depends on !BR2_PACKAGE_OPENSSL