aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/development/python-modules/bpython
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/python-modules/bpython')
-rw-r--r--nixpkgs/pkgs/development/python-modules/bpython/clipboard-make-which-substitutable.patch27
-rw-r--r--nixpkgs/pkgs/development/python-modules/bpython/default.nix45
2 files changed, 72 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/python-modules/bpython/clipboard-make-which-substitutable.patch b/nixpkgs/pkgs/development/python-modules/bpython/clipboard-make-which-substitutable.patch
new file mode 100644
index 00000000000..685d34228a1
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/bpython/clipboard-make-which-substitutable.patch
@@ -0,0 +1,27 @@
+From 6f544a5bd43446859754cb80e012af933b843db9 Mon Sep 17 00:00:00 2001
+From: Florian Klink <flokli@flokli.de>
+Date: Wed, 3 Jun 2020 22:05:34 +0200
+Subject: [PATCH] clipboard: make which substitutable
+
+This is used to detect the presence of xclip and other clipboard
+handling tools.
+---
+ bpython/clipboard.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/bpython/clipboard.py b/bpython/clipboard.py
+index aee429b..f346429 100644
+--- a/bpython/clipboard.py
++++ b/bpython/clipboard.py
+@@ -58,7 +58,7 @@ class OSXClipboard(object):
+
+ def command_exists(command):
+ process = subprocess.Popen(
+- ["which", command], stderr=subprocess.STDOUT, stdout=subprocess.PIPE
++ ["@which@", command], stderr=subprocess.STDOUT, stdout=subprocess.PIPE
+ )
+ process.communicate()
+
+--
+2.26.2
+
diff --git a/nixpkgs/pkgs/development/python-modules/bpython/default.nix b/nixpkgs/pkgs/development/python-modules/bpython/default.nix
new file mode 100644
index 00000000000..ad7322cbf66
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/bpython/default.nix
@@ -0,0 +1,45 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, curtsies
+, greenlet
+, mock
+, pygments
+, requests
+, substituteAll
+, urwid
+, which }:
+
+buildPythonPackage rec {
+ pname = "bpython";
+ version = "0.19";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "1764ikgj24jjq46s50apwkydqvy5a13adb2nbszk8kbci6df0v27";
+ };
+
+ patches = [ (substituteAll {
+ src = ./clipboard-make-which-substitutable.patch;
+ which = "${which}/bin/which";
+ })];
+
+ propagatedBuildInputs = [ curtsies greenlet pygments requests urwid ];
+
+ postInstall = ''
+ substituteInPlace "$out/share/applications/org.bpython-interpreter.bpython.desktop" \
+ --replace "Exec=/usr/bin/bpython" "Exec=$out/bin/bpython"
+ '';
+
+ checkInputs = [ mock ];
+
+ # tests fail: https://github.com/bpython/bpython/issues/712
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "A fancy curses interface to the Python interactive interpreter";
+ homepage = "https://bpython-interpreter.org/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ flokli ];
+ };
+}