From 8c87a8ab75e35fc858d9477e2d500a1670e7ff06 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Fri, 10 Nov 2023 13:17:10 +0100 Subject: [PATCH 1/2] python311Packages.bash-kernel: rename from bash_kernel --- .../python-modules/{bash_kernel => bash-kernel}/default.nix | 5 +++-- pkgs/top-level/python-aliases.nix | 1 + pkgs/top-level/python-packages.nix | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) rename pkgs/development/python-modules/{bash_kernel => bash-kernel}/default.nix (94%) diff --git a/pkgs/development/python-modules/bash_kernel/default.nix b/pkgs/development/python-modules/bash-kernel/default.nix similarity index 94% rename from pkgs/development/python-modules/bash_kernel/default.nix rename to pkgs/development/python-modules/bash-kernel/default.nix index 5956d52de861..a9ef9615411f 100644 --- a/pkgs/development/python-modules/bash_kernel/default.nix +++ b/pkgs/development/python-modules/bash-kernel/default.nix @@ -11,13 +11,14 @@ }: buildPythonPackage rec { - pname = "bash_kernel"; + pname = "bash-kernel"; version = "0.9.1"; format = "flit"; disabled = isPy27; src = fetchPypi { - inherit pname version; + pname = "bash_kernel"; + inherit version; sha256 = "sha256-AYPVPjYP+baEcQUqmiiagWIXMlFrA04njpcgtdFaFis="; }; diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix index 4f843ef4a891..d84b7b3a439b 100644 --- a/pkgs/top-level/python-aliases.nix +++ b/pkgs/top-level/python-aliases.nix @@ -58,6 +58,7 @@ mapAliases ({ backports_tempfile = throw "backports_tempfile has been removed, since we no longer need to backport to python3.3"; # added 2023-07-28 backports_unittest-mock = throw "backports_unittest-mock has been removed, since we no longer need to backport to python3.2"; # added 2023-07-28 backports_weakref = throw "backports_weakref has been removed, since we no longer need to backport to python3.3"; # added 2023-07-28 + bash_kernel = bash-kernel; # added 2023-11-10 beancount_docverif = beancount-docverif; # added 2023-10-08 bedup = throw "bedup was removed because it was broken and abandoned upstream"; # added 2023-02-04 bip_utils = bip-utils; # 2023-10-08 diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 53d451ec6f11..c2bc8983251c 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1321,7 +1321,7 @@ self: super: with self; { basemap-data = callPackage ../development/python-modules/basemap-data { }; - bash_kernel = callPackage ../development/python-modules/bash_kernel { }; + bash-kernel = callPackage ../development/python-modules/bash-kernel { }; bashlex = callPackage ../development/python-modules/bashlex { }; From 403a240615f2c98c768f4c43d93961d077700d19 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Fri, 10 Nov 2023 13:19:08 +0100 Subject: [PATCH 2/2] python311Packages.bash-kernel: fix build Substitute the bash path more carefully, as not all quoted bash strings are meant to be paths. --- .../bash-kernel/bash-path.patch | 22 ++++++++++++ .../python-modules/bash-kernel/default.nix | 34 +++++++++---------- 2 files changed, 38 insertions(+), 18 deletions(-) create mode 100644 pkgs/development/python-modules/bash-kernel/bash-path.patch diff --git a/pkgs/development/python-modules/bash-kernel/bash-path.patch b/pkgs/development/python-modules/bash-kernel/bash-path.patch new file mode 100644 index 000000000000..98c3cc511ab7 --- /dev/null +++ b/pkgs/development/python-modules/bash-kernel/bash-path.patch @@ -0,0 +1,22 @@ +diff --git a/bash_kernel/kernel.py b/bash_kernel/kernel.py +index 0496f1e..bd13c4f 100644 +--- a/bash_kernel/kernel.py ++++ b/bash_kernel/kernel.py +@@ -88,7 +88,7 @@ class BashKernel(Kernel): + @property + def banner(self): + if self._banner is None: +- self._banner = check_output(['bash', '--version']).decode('utf-8') ++ self._banner = check_output(['@bash@', '--version']).decode('utf-8') + return self._banner + + language_info = {'name': 'bash', +@@ -116,7 +116,7 @@ class BashKernel(Kernel): + # source code there for comments and context for + # understanding the code here. + bashrc = os.path.join(os.path.dirname(pexpect.__file__), 'bashrc.sh') +- child = pexpect.spawn("bash", ['--rcfile', bashrc], echo=False, ++ child = pexpect.spawn("@bash@", ['--rcfile', bashrc], echo=False, + encoding='utf-8', codec_errors='replace') + # Following comment stolen from upstream's REPLWrap: + # If the user runs 'env', the value of PS1 will be in the output. To avoid diff --git a/pkgs/development/python-modules/bash-kernel/default.nix b/pkgs/development/python-modules/bash-kernel/default.nix index a9ef9615411f..1c50b151f01e 100644 --- a/pkgs/development/python-modules/bash-kernel/default.nix +++ b/pkgs/development/python-modules/bash-kernel/default.nix @@ -4,43 +4,38 @@ , fetchpatch , flit-core , ipykernel -, isPy27 , python , pexpect , bash +, substituteAll }: buildPythonPackage rec { pname = "bash-kernel"; version = "0.9.1"; - format = "flit"; - disabled = isPy27; + pyproject = true; src = fetchPypi { pname = "bash_kernel"; inherit version; - sha256 = "sha256-AYPVPjYP+baEcQUqmiiagWIXMlFrA04njpcgtdFaFis="; + hash = "sha256-AYPVPjYP+baEcQUqmiiagWIXMlFrA04njpcgtdFaFis="; }; patches = [ - (fetchpatch { - url = "https://patch-diff.githubusercontent.com/raw/takluyver/bash_kernel/pull/69.diff"; - sha256 = "1qd7qjjmcph4dk6j0bl31h2fdmfiyyazvrc9xqqj8y21ki2sl33j"; + (substituteAll { + src = ./bash-path.patch; + bash = lib.getExe bash; }) ]; - postPatch = '' - substituteInPlace bash_kernel/kernel.py \ - --replace "'bash'" "'${bash}/bin/bash'" \ - --replace "\"bash\"" "'${bash}/bin/bash'" - ''; + nativeBuildInputs = [ + flit-core + ]; - nativeBuildInputs = [ flit-core ]; - - propagatedBuildInputs = [ ipykernel pexpect ]; - - # no tests - doCheck = false; + propagatedBuildInputs = [ + ipykernel + pexpect + ]; preBuild = '' export HOME=$TMPDIR @@ -50,6 +45,9 @@ buildPythonPackage rec { ${python.pythonOnBuildForHost.interpreter} -m bash_kernel.install --prefix $out ''; + # no tests + doCheck = false; + meta = with lib; { description = "Bash Kernel for Jupyter"; homepage = "https://github.com/takluyver/bash_kernel";