unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Nam Nguyen <namn@berkeley.edu>
To: 30159@debbugs.gnu.org
Cc: mike.rosset@gmail.com
Subject: [bug#30159] [PATCH 1/2] gnu: Add deluge.
Date: Thu, 22 Nov 2018 00:14:42 -0800	[thread overview]
Message-ID: <20181122081442.GB29686@antelope> (raw)
In-Reply-To: <20180118150351.1671-1-mike.rosset@gmail.com>

Hi all,

I used Mike's work to successfully write a recipe for deluge. I hope this
is the correct place to post these patches.

python2-service-identity is added so that deluge can verify TLS certificates
with pyopenssl.

libtorrent-rasterbar-c++11 needed to be patched to avoid an error while running deluge:
ImportError:
/gnu/store/...-libtorrent-rasterbar-1.1.8/lib/python2.7/site-packages/libtorrent.so:
undefined symbol: libtorrent session_handle wait_for_alert boost chrono duration ratio
(I simplified the output.)

I am worried that adding the c++11 flag to libtorrent-rasterbar might
affect qbitorrent, so I kept it as a new variable/variant.

I used these as references to arrive at a solution.
http://slackbuilds.org/slackbuilds/14.2/network/deluge/deluge.SlackBuild
http://slackbuilds.org/slackbuilds/14.2/libraries/libtorrent-rasterbar/libtorrent-rasterbar.SlackBuild
https://github.com/qbittorrent/qBittorrent/issues/6383#issuecomment-281535787

> Hmm, ok, but for programs, regular inputs would work as well.

Per Danny's suggestion, I had to changed the propagated-inputs into
inputs. Leaving it as propagated-inputs led to a gtk+ conflict:

----8<------------------------------------------------------------
$ guix package -i zathura
The following package will be installed:
   zathura      0.4.0   /gnu/store/1y31a6iqpq74py6msdvgbvkkb76rwj1s-zathura-0.4.0

guix package: error: profile contains conflicting entries for gtk+
guix package: error:   first entry: gtk+@3.22.30 /gnu/store/m2a5...-gtk+-3.22.30
guix package: error:    ... propagated from girara@0.2.9
guix package: error:    ... propagated from zathura@0.4.0
guix package: error:   second entry: gtk+@2.24.32 /gnu/store/68k5...-gtk+-2.24.32
guix package: error:    ... propagated from python2-pygtk@2.24.0
guix package: error:    ... propagated from deluge@1.3.15
hint: Try upgrading both `zathura' and `deluge', or remove one of them from the profile.

$ guix package -i zathura -n
The following package would be installed:
   zathura      0.4.0   /gnu/store/1xr46b5r60g046q2m053mlbkiz96fwfz-zathura-0.4.0

guix package: error: profile contains conflicting entries for cairo
guix package: error:   first entry: cairo@1.14.10 /gnu/store/r7ma8k...-cairo-1.14.10
guix package: error:    ... propagated from zathura@0.4.0
guix package: error:   second entry: cairo@1.14.10 /gnu/store/d8xl...-cairo-1.14.10
guix package: error:    ... propagated from pango@1.42.0
guix package: error:    ... propagated from gtk+@2.24.32
guix package: error:    ... propagated from python2-pygtk@2.24.0
guix package: error:    ... propagated from deluge@1.3.15
hint: Try upgrading both `zathura' and `deluge', or remove one of them from the profile.
----8<------------------------------------------------------------

I have successfully built and tested deluge. The three patches follow.

[PATCH] gnu: Add deluge.

* gnu/packages/bittorrent.scm (deluge): New variable.
---
 gnu/packages/bittorrent.scm | 39 +++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index 59fbd6906..f73488ff1 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -448,3 +448,42 @@ It aims to be a good alternative to all other BitTorrent clients out there.
 qBittorrent is fast, stable and provides unicode support as well as many
 features.")
     (license l:gpl2+)))
+
+(define-public deluge
+  (package
+    (name "deluge")
+    (version "1.3.15")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "http://download.deluge-torrent.org/source/deluge-"
+             version ".tar.xz"))
+       (sha256
+        (base32
+         "0b7rri4x0wrcj7rjghrnw1kfrsd5i7i6aq85dsg5dg1w1qa0ar59"))))
+    (build-system python-build-system)
+    (inputs
+     `(("libtorrent-rasterbar-c++11" ,libtorrent-rasterbar-c++11)
+       ("gnu-gettext" ,gnu-gettext)
+       ("python2-chardet" ,python2-chardet)
+       ("python2-pygtk" ,python2-pygtk)
+       ("python2-pyopenssl" ,python2-pyopenssl)
+       ("python2-pyxdg" ,python2-pyxdg)
+       ("python2-service-identity" ,python2-service-identity)
+       ("python2-setuptools" ,python2-setuptools)
+       ("python2-twisted" ,python2-twisted)))
+    (native-inputs
+     `(("intltool" ,intltool)))
+    (arguments
+     `(#:python ,python-2))
+    (home-page "https://www.deluge-torrent.org/")
+    (synopsis  "Fully-featured cross-platform ​BitTorrent client")
+    (description
+     "Deluge contains the common features to BitTorrent clients such as
+Protocol Encryption, DHT, Local Peer Discovery (LSD), Peer Exchange
+(PEX), UPnP, NAT-PMP, Proxy support, Web seeds, global and per-torrent
+speed limits.  Deluge heavily utilises the ​libtorrent library.  It is
+designed to run as both a normal standalone desktop application and as a
+​client-server.")
+    (license license:gpl3+)))
-- 
2.19.1

[PATCH] gnu: Add libtorrent-rasterbar-c++11.

* gnu/packages/bittorrent.scm (libtorrent-rasterbar-c++11): New variable.
---
 gnu/packages/bittorrent.scm | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index f73488ff1..406176692 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -406,6 +406,21 @@ focusing on efficiency and scalability.  It runs on embedded devices as well as
 desktops.")
     (license l:bsd-2)))
 
+(define-public libtorrent-rasterbar-c++11
+  (package
+    (inherit libtorrent-rasterbar)
+    (name "libtorrent-rasterbar-c++11")
+    (arguments
+     (substitute-keyword-arguments (package-arguments libtorrent-rasterbar)
+       ((#:phases phases '%standard-phases)
+        `(modify-phases ,phases
+           (add-after 'unpack 'compile-args-c++11
+             ;; https://github.com/qbittorrent/qBittorrent/issues/6383#issuecomment-281535787
+             (lambda _
+               (substitute* "bindings/python/setup.py"
+                 (("\\+ target_specific\\(\\)\\,")
+                  "+ target_specific() + ['-std=c++11'],"))))))))))
+
 (define-public qbittorrent
   (package
     (name "qbittorrent")
-- 
2.19.1

[PATCH] gnu: Add python-service-identity.

* gnu/packages/python-crypto.scm (python-service-identity,
  python2-service-identity): New variables.
---
 gnu/packages/python-crypto.scm | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm
index 1a70f943a..438e96822 100644
--- a/gnu/packages/python-crypto.scm
+++ b/gnu/packages/python-crypto.scm
@@ -970,3 +970,33 @@ been constructed to maintain extensive documentation on how to use
     (description "This is a set of Python bindings for the scrypt key
 derivation function.")
     (license license:bsd-2)))
+
+(define-public python-service-identity
+  (package
+    (name "python-service-identity")
+    (version "17.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "service_identity" version))
+       (sha256
+        (base32
+         "1aq24cn3nnsjr9g797dayhx4g653h6bd41ksqhidzq0rvarzn0a0"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-attrs" ,python-attrs)
+       ("python-pyasn1" ,python-pyasn1)
+       ("python-pyasn1-modules" ,python-pyasn1-modules)
+       ("python-pyopenssl" ,python-pyopenssl)))
+    (home-page "https://service-identity.readthedocs.io/")
+    (synopsis "Service identity verification for PyOpenSSL")
+    (description
+     "@code{service_identity} aspires to give you all the tools you need
+for verifying whether a certificate is valid for the intended purposes.
+In the simplest case, this means host name verification.  However,
+service_identity implements RFC 6125 fully and plans to add other
+relevant RFCs too.")
+    (license license:expat)))
+
+(define-public python2-service-identity
+  (package-with-python2 python-service-identity))
-- 
2.19.1

  parent reply	other threads:[~2018-11-22  8:15 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-18 15:03 [bug#30159] [PATCH 1/2] gnu: Add deluge mike rosset
2018-01-18 15:03 ` [bug#30159] [PATCH 2/2] gnu: Add python2-libtorrent mike rosset
2018-01-18 19:13   ` Danny Milosavljevic
2018-01-18 16:56 ` [bug#30159] [PATCH 1/2] gnu: Add deluge Danny Milosavljevic
2018-01-30 21:09   ` Ludovic Courtès
2018-11-22  8:14 ` Nam Nguyen [this message]
2018-11-22  8:30   ` Nam Nguyen
2018-11-24  0:56   ` bug#30159: " Marius Bakke
2018-11-24  2:25     ` [bug#30159] " Nam Nguyen
2018-11-22  9:49 ` [bug#30159] [PATCH] " Nam Nguyen
2018-11-22  9:49   ` [bug#30159] [PATCH] gnu: Add libtorrent-rasterbar-c++11 Nam Nguyen
2018-11-22  9:49   ` [bug#30159] [PATCH] gnu: Add python-service-identity Nam Nguyen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20181122081442.GB29686@antelope \
    --to=namn@berkeley.edu \
    --cc=30159@debbugs.gnu.org \
    --cc=mike.rosset@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).