Merge pull request #68110 from Ma27/weechat-python3

weechat: build with python3 by default
This commit is contained in:
Linus Heckemann 2019-09-05 20:05:47 +02:00 committed by GitHub
commit 734da72661
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 30 additions and 78 deletions

View File

@ -422,6 +422,12 @@
It was not useful except for debugging purposes and was confusingly set as default in some circumstances. It was not useful except for debugging purposes and was confusingly set as default in some circumstances.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
The WeeChat plugin <literal>pkgs.weechatScripts.weechat-xmpp</literal> has been removed as it doesn't receive
any updates from upstream and depends on outdated Python2-based modules.
</para>
</listitem>
</itemizedlist> </itemizedlist>
</section> </section>
@ -718,7 +724,14 @@
Note: There's been some issues with python-cherrypy, which is used by the dashboard Note: There's been some issues with python-cherrypy, which is used by the dashboard
and prometheus mgr modules (and possibly others), hence 0000-dont-check-cherrypy-version.patch. and prometheus mgr modules (and possibly others), hence 0000-dont-check-cherrypy-version.patch.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
<literal>pkgs.weechat</literal> is now compiled against <literal>pkgs.python3</literal>.
Weechat also recommends <link xlink:href="https://weechat.org/scripts/python3/">to use Python3
in their docs.</link>
</para>
</listitem>
</itemizedlist> </itemizedlist>
</section> </section>
</section> </section>

View File

@ -6,21 +6,21 @@
, guileSupport ? true, guile , guileSupport ? true, guile
, luaSupport ? true, lua5 , luaSupport ? true, lua5
, perlSupport ? true, perl , perlSupport ? true, perl
, pythonSupport ? true, pythonPackages , pythonSupport ? true, python3Packages
, rubySupport ? true, ruby , rubySupport ? true, ruby
, tclSupport ? true, tcl , tclSupport ? true, tcl
, extraBuildInputs ? [] , extraBuildInputs ? []
}: }:
let let
inherit (pythonPackages) python; inherit (python3Packages) python;
plugins = [ plugins = [
{ name = "perl"; enabled = perlSupport; cmakeFlag = "ENABLE_PERL"; buildInputs = [ perl ]; } { name = "perl"; enabled = perlSupport; cmakeFlag = "ENABLE_PERL"; buildInputs = [ perl ]; }
{ name = "tcl"; enabled = tclSupport; cmakeFlag = "ENABLE_TCL"; buildInputs = [ tcl ]; } { name = "tcl"; enabled = tclSupport; cmakeFlag = "ENABLE_TCL"; buildInputs = [ tcl ]; }
{ name = "ruby"; enabled = rubySupport; cmakeFlag = "ENABLE_RUBY"; buildInputs = [ ruby ]; } { name = "ruby"; enabled = rubySupport; cmakeFlag = "ENABLE_RUBY"; buildInputs = [ ruby ]; }
{ name = "guile"; enabled = guileSupport; cmakeFlag = "ENABLE_GUILE"; buildInputs = [ guile ]; } { name = "guile"; enabled = guileSupport; cmakeFlag = "ENABLE_GUILE"; buildInputs = [ guile ]; }
{ name = "lua"; enabled = luaSupport; cmakeFlag = "ENABLE_LUA"; buildInputs = [ lua5 ]; } { name = "lua"; enabled = luaSupport; cmakeFlag = "ENABLE_LUA"; buildInputs = [ lua5 ]; }
{ name = "python"; enabled = pythonSupport; cmakeFlag = "ENABLE_PYTHON"; buildInputs = [ python ]; } { name = "python"; enabled = pythonSupport; cmakeFlag = "ENABLE_PYTHON3"; buildInputs = [ python ]; }
]; ];
enabledPlugins = builtins.filter (p: p.enabled) plugins; enabledPlugins = builtins.filter (p: p.enabled) plugins;

View File

@ -1,21 +1,13 @@
{ callPackage, luaPackages, pythonPackages }: { callPackage, luaPackages }:
{ {
weechat-xmpp = callPackage ./weechat-xmpp {
inherit (pythonPackages) pydns;
};
weechat-matrix-bridge = callPackage ./weechat-matrix-bridge { weechat-matrix-bridge = callPackage ./weechat-matrix-bridge {
inherit (luaPackages) cjson luaffi; inherit (luaPackages) cjson luaffi;
}; };
wee-slack = callPackage ./wee-slack { wee-slack = callPackage ./wee-slack { };
inherit pythonPackages;
};
weechat-autosort = callPackage ./weechat-autosort { }; weechat-autosort = callPackage ./weechat-autosort { };
weechat-otr = callPackage ./weechat-otr { weechat-otr = callPackage ./weechat-otr { };
inherit pythonPackages;
};
} }

View File

@ -1,4 +1,4 @@
{ stdenv, substituteAll, buildEnv, fetchFromGitHub, pythonPackages }: { stdenv, substituteAll, buildEnv, fetchFromGitHub, python3Packages }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "wee-slack"; pname = "wee-slack";
@ -16,8 +16,8 @@ stdenv.mkDerivation rec {
src = ./libpath.patch; src = ./libpath.patch;
env = "${buildEnv { env = "${buildEnv {
name = "wee-slack-env"; name = "wee-slack-env";
paths = with pythonPackages; [ websocket_client six ]; paths = with python3Packages; [ websocket_client six ];
}}/${pythonPackages.python.sitePackages}"; }}/${python3Packages.python.sitePackages}";
}) })
]; ];

View File

@ -1,4 +1,4 @@
{ stdenv, substituteAll, buildEnv, fetchgit, fetchFromGitHub, pythonPackages, gmp }: { stdenv, substituteAll, buildEnv, fetchgit, fetchFromGitHub, python3Packages, gmp }:
let let
# pure-python-otr (potr) requires an older version of pycrypto, which is # pure-python-otr (potr) requires an older version of pycrypto, which is
@ -6,7 +6,7 @@ let
# of pycrypto will be fetched from the Debian project. # of pycrypto will be fetched from the Debian project.
# https://security-tracker.debian.org/tracker/source-package/python-crypto # https://security-tracker.debian.org/tracker/source-package/python-crypto
pycrypto = pythonPackages.buildPythonPackage rec { pycrypto = python3Packages.buildPythonPackage rec {
pname = "pycrypto"; pname = "pycrypto";
version = "2.6.1-10"; version = "2.6.1-10";
@ -24,7 +24,7 @@ let
''; '';
}; };
potr = pythonPackages.potr.overridePythonAttrs (oldAttrs: { potr = python3Packages.potr.overridePythonAttrs (oldAttrs: {
propagatedBuildInputs = [ pycrypto ]; propagatedBuildInputs = [ pycrypto ];
}); });
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
@ -44,7 +44,7 @@ in stdenv.mkDerivation rec {
env = "${buildEnv { env = "${buildEnv {
name = "weechat-otr-env"; name = "weechat-otr-env";
paths = [ potr pycrypto ]; paths = [ potr pycrypto ];
}}/${pythonPackages.python.sitePackages}"; }}/${python3Packages.python.sitePackages}";
}) })
]; ];

View File

@ -1,36 +0,0 @@
{ stdenv, fetchFromGitHub, xmpppy, pydns, substituteAll, buildEnv }:
stdenv.mkDerivation {
name = "weechat-jabber-2017-08-30";
src = fetchFromGitHub {
repo = "weechat-xmpp";
owner = "sleduc";
sha256 = "0s02xs0ynld9cxxzj07al364sfglyc5ir1i82133mq0s8cpphnxv";
rev = "8f6c21f5a160c9318c7a2d8fd5dcac7ab2e0d843";
};
installPhase = ''
mkdir -p $out/share
cp jabber.py $out/share/jabber.py
'';
patches = [
(substituteAll {
src = ./libpath.patch;
env = "${buildEnv {
name = "weechat-xmpp-env";
paths = [ pydns xmpppy ];
}}/lib/python2.7/site-packages";
})
];
passthru.scripts = [ "jabber.py" ];
meta = with stdenv.lib; {
description = "A fork of the jabber plugin for weechat";
homepage = "https://github.com/sleduc/weechat-xmpp";
maintainers = with maintainers; [ ma27 ];
license = licenses.gpl3Plus;
};
}

View File

@ -1,16 +0,0 @@
diff --git a/jabber.py b/jabber.py
index 27006a3..e53c2c0 100644
--- a/jabber.py
+++ b/jabber.py
@@ -95,6 +95,11 @@ SCRIPT_COMMAND = SCRIPT_NAME
import re
import warnings
+import sys
+
+sys.path.append('@env@')
+
+
import_ok = True
try:

View File

@ -1,5 +1,5 @@
{ lib, runCommand, writeScriptBin, buildEnv { lib, runCommand, writeScriptBin, buildEnv
, pythonPackages, perlPackages, runtimeShell , python3Packages, perlPackages, runtimeShell
}: }:
weechat: weechat:
@ -17,11 +17,11 @@ let
in rec { in rec {
python = (simplePlugin "python") // { python = (simplePlugin "python") // {
extraEnv = '' extraEnv = ''
export PATH="${pythonPackages.python}/bin:$PATH" export PATH="${python3Packages.python}/bin:$PATH"
''; '';
withPackages = pkgsFun: (python // { withPackages = pkgsFun: (python // {
extraEnv = '' extraEnv = ''
export PYTHONHOME="${pythonPackages.python.withPackages pkgsFun}" export PYTHONHOME="${python3Packages.python.withPackages pkgsFun}"
''; '';
}); });
}; };

View File

@ -380,7 +380,6 @@ mapAliases ({
virtviewer = virt-viewer; # added 2015-12-24 virtviewer = virt-viewer; # added 2015-12-24
vorbisTools = vorbis-tools; # added 2016-01-26 vorbisTools = vorbis-tools; # added 2016-01-26
webkit = webkitgtk; # added 2019-03-05 webkit = webkitgtk; # added 2019-03-05
weechat-xmpp = weechatScripts.weechat-xmpp; # added 2018-09-06
weechat-matrix-bridge = weechatScripts.weechat-matrix-bridge; # added 2018-09-06 weechat-matrix-bridge = weechatScripts.weechat-matrix-bridge; # added 2018-09-06
wineStaging = wine-staging; # added 2018-01-08 wineStaging = wine-staging; # added 2018-01-08
winusb = woeusb; # added 2017-12-22 winusb = woeusb; # added 2017-12-22