unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#40663] [PATCH] gnu: libqalculate: Fixes for libcurl gnutls CA cert bundle
@ 2020-04-16 15:19 R Veera Kumar
  2020-04-16 21:47 ` Danny Milosavljevic
  2020-04-17 16:51 ` [bug#40663] [PATCH v2] gnu: libqalculate: Fixes for libcurl gnutls CA cert bundle file R Veera Kumar
  0 siblings, 2 replies; 6+ messages in thread
From: R Veera Kumar @ 2020-04-16 15:19 UTC (permalink / raw)
  To: 40663; +Cc: R Veera Kumar

* gnu/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/maths.scm (libqalculate)[source]: Use it.
---
 gnu/local.mk                                  |  1 +
 gnu/packages/maths.scm                        |  4 ++-
 .../libqalculate-3.8.0-libcurl-ssl-fix.patch  | 29 +++++++++++++++++++
 3 files changed, 33 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 952fc55df4..ece99b892f 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1144,6 +1144,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/libmpeg2-global-symbol-test.patch	\
   %D%/packages/patches/libmygpo-qt-fix-qt-5.11.patch		\
   %D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch	\
+  %D%/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch	\
   %D%/packages/patches/libsndfile-armhf-type-checks.patch	\
   %D%/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch	\
   %D%/packages/patches/libsndfile-CVE-2017-8362.patch		\
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 9930f491a2..7db2b31012 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -5416,7 +5416,9 @@ researchers and developers alike to get started on SAT.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1vbaza9c7159xf2ym90l0xkyj2mp6c3hbghhsqn29yvz08fda9df"))))
+        (base32 "1vbaza9c7159xf2ym90l0xkyj2mp6c3hbghhsqn29yvz08fda9df"))
+       (patches
+        (search-patches "libqalculate-3.8.0-libcurl-ssl-fix.patch"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
diff --git a/gnu/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch b/gnu/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch
new file mode 100644
index 0000000000..d13c9feaf7
--- /dev/null
+++ b/gnu/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch
@@ -0,0 +1,29 @@
+Author: R Veera Kumar 2020 <vkor@vkten.in>
+Desc:
+ 1) Fixes download of exchange rates by specifying SSL CA certificates bundle
+    while using libcurl (Since libcurl in guix is compiled without using a
+    default CA cert bundle file)
+ 2) Like above fix for using https site in another case
+
+diff -uNr libqalculate-3.8.0/libqalculate/Calculator-definitions.cc libqalculate-3.8.0.new/libqalculate/Calculator-definitions.cc
+--- libqalculate-3.8.0/libqalculate/Calculator-definitions.cc	2020-02-16 15:08:29.000000000 +0530
++++ libqalculate-3.8.0.new/libqalculate/Calculator-definitions.cc	2020-04-16 18:07:26.839310304 +0530
+@@ -3610,6 +3610,7 @@
+ 	curl = curl_easy_init();
+ 	if(!curl) {return false;}
+ 	curl_easy_setopt(curl, CURLOPT_URL, getExchangeRatesUrl(1).c_str());
++	curl_easy_setopt(curl, CURLOPT_CAINFO, "/etc/ssl/certs/ca-certificates.crt");
+ 	curl_easy_setopt(curl, CURLOPT_TIMEOUT, timeout);
+ 	curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
+ 	curl_easy_setopt(curl, CURLOPT_WRITEDATA, &sbuffer);
+diff -uNr libqalculate-3.8.0/libqalculate/util.cc libqalculate-3.8.0.new/libqalculate/util.cc
+--- libqalculate-3.8.0/libqalculate/util.cc	2019-12-14 22:56:45.000000000 +0530
++++ libqalculate-3.8.0.new/libqalculate/util.cc	2020-04-16 18:06:55.930816131 +0530
+@@ -769,6 +769,7 @@
+ 	curl = curl_easy_init();
+ 	if(!curl) {return -1;}
+ 	curl_easy_setopt(curl, CURLOPT_URL, "https://qalculate.github.io/CURRENT_VERSIONS");
++	curl_easy_setopt(curl, CURLOPT_CAINFO, "/etc/ssl/certs/ca-certificates.crt");
+ 	curl_easy_setopt(curl, CURLOPT_TIMEOUT, timeout);
+ 	curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
+ 	curl_easy_setopt(curl, CURLOPT_WRITEDATA, &sbuffer);
-- 
2.26.0

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [bug#40663] [PATCH] gnu: libqalculate: Fixes for libcurl gnutls CA cert bundle
  2020-04-16 15:19 [bug#40663] [PATCH] gnu: libqalculate: Fixes for libcurl gnutls CA cert bundle R Veera Kumar
@ 2020-04-16 21:47 ` Danny Milosavljevic
  2020-04-17 16:51 ` [bug#40663] [PATCH v2] gnu: libqalculate: Fixes for libcurl gnutls CA cert bundle file R Veera Kumar
  1 sibling, 0 replies; 6+ messages in thread
From: Danny Milosavljevic @ 2020-04-16 21:47 UTC (permalink / raw)
  To: R Veera Kumar; +Cc: 40663

[-- Attachment #1: Type: text/plain, Size: 213 bytes --]

Hi Veera,

hmm, what about using getenv("SSL_CERT_FILE") ?

The following environment variables have been set automatically:

SSL_CERT_DIR=/etc/ssl/certs
SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [bug#40663] [PATCH v2] gnu: libqalculate: Fixes for libcurl gnutls CA cert bundle file
  2020-04-16 15:19 [bug#40663] [PATCH] gnu: libqalculate: Fixes for libcurl gnutls CA cert bundle R Veera Kumar
  2020-04-16 21:47 ` Danny Milosavljevic
@ 2020-04-17 16:51 ` R Veera Kumar
  2020-04-19 18:30   ` Danny Milosavljevic
  1 sibling, 1 reply; 6+ messages in thread
From: R Veera Kumar @ 2020-04-17 16:51 UTC (permalink / raw)
  To: 40663; +Cc: R Veera Kumar

* gnu/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/maths.scm (libqalculate)[source]: Use it.
---
Changes in v2:
 - Use getenv to get path of CA cert bundle file
 - Include fix for missed exchange urls
---
 gnu/local.mk                                  |  1 +
 gnu/packages/maths.scm                        |  4 +-
 .../libqalculate-3.8.0-libcurl-ssl-fix.patch  | 53 +++++++++++++++++++
 3 files changed, 57 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index af79f9afed..fb0454fd45 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1144,6 +1144,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/libmpeg2-global-symbol-test.patch	\
   %D%/packages/patches/libmygpo-qt-fix-qt-5.11.patch		\
   %D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch	\
+  %D%/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch	\
   %D%/packages/patches/libsndfile-armhf-type-checks.patch	\
   %D%/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch	\
   %D%/packages/patches/libsndfile-CVE-2017-8362.patch		\
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 9930f491a2..7db2b31012 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -5416,7 +5416,9 @@ researchers and developers alike to get started on SAT.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1vbaza9c7159xf2ym90l0xkyj2mp6c3hbghhsqn29yvz08fda9df"))))
+        (base32 "1vbaza9c7159xf2ym90l0xkyj2mp6c3hbghhsqn29yvz08fda9df"))
+       (patches
+        (search-patches "libqalculate-3.8.0-libcurl-ssl-fix.patch"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
diff --git a/gnu/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch b/gnu/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch
new file mode 100644
index 0000000000..b638963874
--- /dev/null
+++ b/gnu/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch
@@ -0,0 +1,53 @@
+Author: R Veera Kumar 2020 <vkor@vkten.in>
+Desc:
+ 1) Fixes download of exchange rates by specifying SSL CA certificates bundle
+    file while using libcurl (Since libcurl in guix is compiled without using
+    a default CA cert bundle file)
+ 2) Like above fix for using https site in another case
+
+diff -uNr libqalculate-3.8.0/libqalculate/Calculator-definitions.cc libqalculate-3.8.0.new/libqalculate/Calculator-definitions.cc
+--- libqalculate-3.8.0/libqalculate/Calculator-definitions.cc	2020-02-16 15:08:29.000000000 +0530
++++ libqalculate-3.8.0.new/libqalculate/Calculator-definitions.cc	2020-04-17 21:27:36.386039369 +0530
+@@ -3610,6 +3610,7 @@
+ 	curl = curl_easy_init();
+ 	if(!curl) {return false;}
+ 	curl_easy_setopt(curl, CURLOPT_URL, getExchangeRatesUrl(1).c_str());
++	curl_easy_setopt(curl, CURLOPT_CAINFO, getenv("SSL_CERT_FILE"));
+ 	curl_easy_setopt(curl, CURLOPT_TIMEOUT, timeout);
+ 	curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
+ 	curl_easy_setopt(curl, CURLOPT_WRITEDATA, &sbuffer);
+@@ -3663,6 +3664,7 @@
+ 
+ 		sbuffer = "";
+ 		curl_easy_setopt(curl, CURLOPT_URL, getExchangeRatesUrl(2).c_str());
++		curl_easy_setopt(curl, CURLOPT_CAINFO, getenv("SSL_CERT_FILE"));
+ 		curl_easy_setopt(curl, CURLOPT_TIMEOUT, timeout);
+ 		curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
+ 		curl_easy_setopt(curl, CURLOPT_WRITEDATA, &sbuffer);
+@@ -3687,6 +3689,7 @@
+ 
+ 		sbuffer = "";
+ 		curl_easy_setopt(curl, CURLOPT_URL, getExchangeRatesUrl(3).c_str());
++		curl_easy_setopt(curl, CURLOPT_CAINFO, getenv("SSL_CERT_FILE"));
+ 		curl_easy_setopt(curl, CURLOPT_TIMEOUT, timeout);
+ 		curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
+ 		curl_easy_setopt(curl, CURLOPT_WRITEDATA, &sbuffer);
+@@ -3710,6 +3713,7 @@
+ 
+ 		sbuffer = "";
+ 		curl_easy_setopt(curl, CURLOPT_URL, getExchangeRatesUrl(4).c_str());
++		curl_easy_setopt(curl, CURLOPT_CAINFO, getenv("SSL_CERT_FILE"));
+ 		curl_easy_setopt(curl, CURLOPT_TIMEOUT, (timeout > 4 && n <= 0) ? 4 : timeout);
+ 		curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
+ 		curl_easy_setopt(curl, CURLOPT_WRITEDATA, &sbuffer);
+diff -uNr libqalculate-3.8.0/libqalculate/util.cc libqalculate-3.8.0.new/libqalculate/util.cc
+--- libqalculate-3.8.0/libqalculate/util.cc	2019-12-14 22:56:45.000000000 +0530
++++ libqalculate-3.8.0.new/libqalculate/util.cc	2020-04-17 21:12:17.259674572 +0530
+@@ -769,6 +769,7 @@
+ 	curl = curl_easy_init();
+ 	if(!curl) {return -1;}
+ 	curl_easy_setopt(curl, CURLOPT_URL, "https://qalculate.github.io/CURRENT_VERSIONS");
++	curl_easy_setopt(curl, CURLOPT_CAINFO, getenv("SSL_CERT_FILE"));
+ 	curl_easy_setopt(curl, CURLOPT_TIMEOUT, timeout);
+ 	curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
+ 	curl_easy_setopt(curl, CURLOPT_WRITEDATA, &sbuffer);
-- 
2.26.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [bug#40663] [PATCH v2] gnu: libqalculate: Fixes for libcurl gnutls CA cert bundle file
  2020-04-17 16:51 ` [bug#40663] [PATCH v2] gnu: libqalculate: Fixes for libcurl gnutls CA cert bundle file R Veera Kumar
@ 2020-04-19 18:30   ` Danny Milosavljevic
  2020-04-20  1:19     ` R Veera Kumar
  0 siblings, 1 reply; 6+ messages in thread
From: Danny Milosavljevic @ 2020-04-19 18:30 UTC (permalink / raw)
  To: R Veera Kumar; +Cc: 40663

[-- Attachment #1: Type: text/plain, Size: 122 bytes --]

Hi Veera,

thanks!

What happens if SSL_CERT_FILE is unset?  Does it crash with a segfault or just
fail regularily?

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [bug#40663] [PATCH v2] gnu: libqalculate: Fixes for libcurl gnutls CA cert bundle file
  2020-04-19 18:30   ` Danny Milosavljevic
@ 2020-04-20  1:19     ` R Veera Kumar
  2020-04-20 18:06       ` bug#40663: " Danny Milosavljevic
  0 siblings, 1 reply; 6+ messages in thread
From: R Veera Kumar @ 2020-04-20  1:19 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: 40663

On Sun, Apr 19, 2020 at 08:30:05PM +0200, Danny Milosavljevic wrote:
> Hi Veera,
> 
> thanks!
> 
> What happens if SSL_CERT_FILE is unset?  Does it crash with a segfault or just
> fail regularily?

If SSL_CERT_FILE is unset, it does not segfaults. It just fails saying unable to download the urls.

So can the patch be accepted?

Veera

^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#40663: [PATCH v2] gnu: libqalculate: Fixes for libcurl gnutls CA cert bundle file
  2020-04-20  1:19     ` R Veera Kumar
@ 2020-04-20 18:06       ` Danny Milosavljevic
  0 siblings, 0 replies; 6+ messages in thread
From: Danny Milosavljevic @ 2020-04-20 18:06 UTC (permalink / raw)
  To: R Veera Kumar; +Cc: 40663-done

[-- Attachment #1: Type: text/plain, Size: 101 bytes --]

Hi Veera,

thanks!

Pushed to guix master as commit 9b3c231e3c144de11d670dff362be3afdd0f4d27.


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2020-04-20 18:07 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-16 15:19 [bug#40663] [PATCH] gnu: libqalculate: Fixes for libcurl gnutls CA cert bundle R Veera Kumar
2020-04-16 21:47 ` Danny Milosavljevic
2020-04-17 16:51 ` [bug#40663] [PATCH v2] gnu: libqalculate: Fixes for libcurl gnutls CA cert bundle file R Veera Kumar
2020-04-19 18:30   ` Danny Milosavljevic
2020-04-20  1:19     ` R Veera Kumar
2020-04-20 18:06       ` bug#40663: " Danny Milosavljevic

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).