guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/12: gnu: linuxdcpp: Reanimate.


From: guix-commits
Subject: 02/12: gnu: linuxdcpp: Reanimate.
Date: Tue, 4 Jan 2022 23:46:18 -0500 (EST)

nckx pushed a commit to branch master
in repository guix.

commit 14564f5847ae3babdc72da426801032a02334d0d
Author: Tobias Geerinckx-Rice <me@tobias.gr>
AuthorDate: Tue Jan 4 16:01:58 2022 +0100

    gnu: linuxdcpp: Reanimate.
    
    * gnu/packages/direct-connect.scm (linuxdcpp)[source]: Add patch and
    snippet to fix build.
    * gnu/packages/patches/linuxdcpp-openssl-1.1.patch: New file.
    * gnu/local.mk (dist_patch_DATA): Add it.
---
 gnu/local.mk                                     |  1 +
 gnu/packages/direct-connect.scm                  | 18 ++++++++++++++--
 gnu/packages/patches/linuxdcpp-openssl-1.1.patch | 26 ++++++++++++++++++++++++
 3 files changed, 43 insertions(+), 2 deletions(-)

diff --git a/gnu/local.mk b/gnu/local.mk
index c8ec622aa1..be185a0abf 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1427,6 +1427,7 @@ dist_patch_DATA =                                         
\
   %D%/packages/patches/linux-libre-support-for-Pinebook-Pro.patch \
   %D%/packages/patches/linux-libre-arm64-generic-pinebook-lcd.patch \
   %D%/packages/patches/linux-pam-no-setfsuid.patch             \
+  %D%/packages/patches/linuxdcpp-openssl-1.1.patch             \
   %D%/packages/patches/lirc-localstatedir.patch                        \
   %D%/packages/patches/lirc-reproducible-build.patch           \
   %D%/packages/patches/llhttp-bootstrap-CVE-2020-8287.patch    \
diff --git a/gnu/packages/direct-connect.scm b/gnu/packages/direct-connect.scm
index 87bf0a7c8a..d342537122 100644
--- a/gnu/packages/direct-connect.scm
+++ b/gnu/packages/direct-connect.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2022 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -18,9 +19,11 @@
 
 (define-module (gnu packages direct-connect)
   #:use-module (guix build-system scons)
+  #:use-module (guix gexp)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (gnu packages)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages gettext)
@@ -42,8 +45,19 @@
              "https://launchpad.net/linuxdcpp/1.1/1.1.0/+download/linuxdcpp-";
              version ".tar.bz2"))
        (sha256
-        (base32
-         "12i92hirmwryl1qy0n3jfrpziwzb82f61xca9jcjwyilx502f0b6"))))
+        (base32 "12i92hirmwryl1qy0n3jfrpziwzb82f61xca9jcjwyilx502f0b6"))
+       (patches (search-patches "linuxdcpp-openssl-1.1.patch"))
+       (modules '((guix build utils)))
+       (snippet
+        #~(begin
+            (substitute* "SConstruct"
+              ;; This compares single char[]acters in the version string, and
+              ;; broke when GCC went into double digits.
+              (("conf.CheckCXXVersion\\([^\\)]*\\)")
+               "True")
+              ;; Not all valid C++98 code is valid C++14 (and higher) code.
+              (("'-D_REENTRANT'" match)
+               (string-append match ", '-std=gnu++98'")))))))
     (build-system scons-build-system)
     (arguments
      `(#:scons ,scons-python2
diff --git a/gnu/packages/patches/linuxdcpp-openssl-1.1.patch 
b/gnu/packages/patches/linuxdcpp-openssl-1.1.patch
new file mode 100644
index 0000000000..6f9912afd8
--- /dev/null
+++ b/gnu/packages/patches/linuxdcpp-openssl-1.1.patch
@@ -0,0 +1,26 @@
+--- a/dcpp/CryptoManager.cpp.orig      2011-04-17 17:57:09 UTC
++++ b/dcpp/CryptoManager.cpp
+@@ -107,12 +107,20 @@ CryptoManager::CryptoManager()
+                 };
+ 
+               if(dh) {
+-                      dh->p = BN_bin2bn(dh4096_p, sizeof(dh4096_p), 0);
+-                      dh->g = BN_bin2bn(dh4096_g, sizeof(dh4096_g), 0);
++                      BIGNUM *p, *g;
+ 
+-                      if (!dh->p || !dh->g) {
++                      p = BN_bin2bn(dh4096_p, sizeof(dh4096_p), 0);
++                      g = BN_bin2bn(dh4096_g, sizeof(dh4096_g), 0);
++
++                      if (!p || !g) {
+                               dh.reset();
+                       } else {
++#if OPENSSL_VERSION_NUMBER < 0x10100005L
++                              dh->p = p;
++                              dh->g = g;
++#else
++                              DH_set0_pqg(dh, p, NULL, g);
++#endif
+                               SSL_CTX_set_options(serverContext, 
SSL_OP_SINGLE_DH_USE);
+                               SSL_CTX_set_options(serverVerContext, 
SSL_OP_SINGLE_DH_USE);
+                               SSL_CTX_set_tmp_dh(serverContext, (DH*)dh);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]