From 676e68e3394eeb07a02745d1cf191db9fee9e610 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isma=C3=ABl=20Bouya?= Date: Fri, 26 Apr 2019 13:52:30 +0200 Subject: Use overlays for package overrides --- overlays/default.nix | 20 +++++++ overlays/dwm/default.nix | 7 +++ overlays/dwm/dwm_config.h | 98 ++++++++++++++++++++++++++++++++++ overlays/elinks/default.nix | 14 +++++ overlays/elinks/elinks.json | 15 ++++++ overlays/goaccess/default.nix | 13 +++++ overlays/ldapvi/default.nix | 3 ++ overlays/ldapvi/ldapvi.json | 14 +++++ overlays/lesspipe/default.nix | 5 ++ overlays/neomutt/default.nix | 8 +++ overlays/nixops/default.nix | 7 +++ overlays/pass/default.nix | 8 +++ overlays/pass/pass-fix-pass-init.patch | 42 +++++++++++++++ overlays/pass/pass.json | 14 +++++ overlays/pelican/default.nix | 6 +++ overlays/pelican/pelican.json | 15 ++++++ overlays/profanity/default.nix | 9 ++++ overlays/sc-im/default.nix | 9 ++++ overlays/slrn/default.nix | 11 ++++ overlays/taskwarrior/default.nix | 13 +++++ overlays/vit/default.nix | 8 +++ overlays/vit/vit.json | 15 ++++++ overlays/weboob/default.nix | 15 ++++++ overlays/weechat/default.nix | 14 +++++ 24 files changed, 383 insertions(+) create mode 100644 overlays/default.nix create mode 100644 overlays/dwm/default.nix create mode 100644 overlays/dwm/dwm_config.h create mode 100644 overlays/elinks/default.nix create mode 100644 overlays/elinks/elinks.json create mode 100644 overlays/goaccess/default.nix create mode 100644 overlays/ldapvi/default.nix create mode 100644 overlays/ldapvi/ldapvi.json create mode 100644 overlays/lesspipe/default.nix create mode 100644 overlays/neomutt/default.nix create mode 100644 overlays/nixops/default.nix create mode 100644 overlays/pass/default.nix create mode 100644 overlays/pass/pass-fix-pass-init.patch create mode 100644 overlays/pass/pass.json create mode 100644 overlays/pelican/default.nix create mode 100644 overlays/pelican/pelican.json create mode 100644 overlays/profanity/default.nix create mode 100644 overlays/sc-im/default.nix create mode 100644 overlays/slrn/default.nix create mode 100644 overlays/taskwarrior/default.nix create mode 100644 overlays/vit/default.nix create mode 100644 overlays/vit/vit.json create mode 100644 overlays/weboob/default.nix create mode 100644 overlays/weechat/default.nix (limited to 'overlays') diff --git a/overlays/default.nix b/overlays/default.nix new file mode 100644 index 0000000..a2d9927 --- /dev/null +++ b/overlays/default.nix @@ -0,0 +1,20 @@ +{ + mylibs = self: super: { mylibs = import ../libs.nix { nixpkgs = self; }; }; + + dwm = import ./dwm; + elinks = import ./elinks; + goaccess = import ./goaccess; + ldapvi = import ./ldapvi; + lesspipe = import ./lesspipe; + neomutt = import ./neomutt; + nixops = import ./nixops; + pass = import ./pass; + pelican = import ./pelican; + profanity = import ./profanity; + sc-im = import ./sc-im; + slrn = import ./slrn; + taskwarrior = import ./taskwarrior; + vit = import ./vit; + weboob = import ./weboob; + weechat = import ./weechat; +} diff --git a/overlays/dwm/default.nix b/overlays/dwm/default.nix new file mode 100644 index 0000000..96ed3ff --- /dev/null +++ b/overlays/dwm/default.nix @@ -0,0 +1,7 @@ +self: super: { + dwm = super.dwm.overrideAttrs(old: rec { + postPatch = '' + cp ${./dwm_config.h} ./config.h + ''; + }); +} diff --git a/overlays/dwm/dwm_config.h b/overlays/dwm/dwm_config.h new file mode 100644 index 0000000..b1587e8 --- /dev/null +++ b/overlays/dwm/dwm_config.h @@ -0,0 +1,98 @@ +/* See LICENSE file for copyright and license details. */ + +/* appearance */ +static const unsigned int borderpx = 1; /* border pixel of windows */ +static const unsigned int snap = 32; /* snap pixel */ +static const int showbar = 1; /* 0 means no bar */ +static const int topbar = 1; /* 0 means bottom bar */ +static const char *fonts[] = { "monospace:size=10" }; +static const char dmenufont[] = "monospace:size=10"; +static const char col_gray1[] = "#222222"; +static const char col_gray2[] = "#444444"; +static const char col_gray3[] = "#bbbbbb"; +static const char col_gray4[] = "#eeeeee"; +static const char col_cyan[] = "#005577"; +static const char *colors[][3] = { + /* fg bg border */ + [SchemeNorm] = { col_gray3, col_gray1, col_gray2 }, + [SchemeSel] = { col_gray4, col_cyan, col_cyan }, +}; + +/* tagging */ +static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; + +static const Rule rules[] = { + /* xprop(1): + * WM_CLASS(STRING) = instance, class + * WM_NAME(STRING) = title + */ + /* class instance title tags mask isfloating monitor */ + { "Nextcloud", NULL, NULL, 9 << 8, 0, -1 }, +}; + +/* layout(s) */ +static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */ +static const int nmaster = 1; /* number of clients in master area */ +static const int resizehints = 1; /* 1 means respect size hints in tiled resizals */ + +static const Layout layouts[] = { + /* symbol arrange function */ + { "[M]", monocle }, /* first entry is default */ + { "[]=", tile }, + { "><>", NULL }, /* no layout function means floating behavior */ +}; + +/* key definitions */ +#define MODKEY Mod1Mask +#define TAGKEYS(KEY,TAG) \ + { MODKEY, KEY, view, {.ui = 1 << TAG} }, \ + { MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \ + { MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \ + { MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} }, + +/* helper for spawning shell commands in the pre dwm-5.0 fashion */ +#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } } + +/* commands */ +static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */ +static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL }; +static const char *termcmd[] = { "st", NULL }; + +static Key keys[] = { + /* modifier key function argument */ + { MODKEY, XK_p, spawn, {.v = dmenucmd } }, + { MODKEY, XK_t, spawn, {.v = termcmd } }, + { MODKEY, XK_Tab, view, {0} }, + { MODKEY|ShiftMask, XK_c, killclient, {0} }, + { MODKEY, XK_j, focusstack, {.i = +1 } }, + { MODKEY, XK_k, focusstack, {.i = -1 } }, + { MODKEY, XK_Return, zoom, {0} }, + TAGKEYS( XK_1, 0) + TAGKEYS( XK_2, 1) + TAGKEYS( XK_3, 2) + TAGKEYS( XK_4, 3) + TAGKEYS( XK_5, 4) + TAGKEYS( XK_6, 5) + TAGKEYS( XK_7, 6) + TAGKEYS( XK_8, 7) + TAGKEYS( XK_9, 8) + { MODKEY|ShiftMask, XK_q, quit, {0} }, +}; + +/* button definitions */ +/* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */ +static Button buttons[] = { + /* click event mask button function argument */ + { ClkLtSymbol, 0, Button1, setlayout, {0} }, + { ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} }, + { ClkWinTitle, 0, Button2, zoom, {0} }, + { ClkStatusText, 0, Button2, spawn, {.v = termcmd } }, + { ClkClientWin, MODKEY, Button1, movemouse, {0} }, + { ClkClientWin, MODKEY, Button2, togglefloating, {0} }, + { ClkClientWin, MODKEY, Button3, resizemouse, {0} }, + { ClkTagBar, 0, Button1, view, {0} }, + { ClkTagBar, 0, Button3, toggleview, {0} }, + { ClkTagBar, MODKEY, Button1, tag, {0} }, + { ClkTagBar, MODKEY, Button3, toggletag, {0} }, +}; + diff --git a/overlays/elinks/default.nix b/overlays/elinks/default.nix new file mode 100644 index 0000000..1744dc0 --- /dev/null +++ b/overlays/elinks/default.nix @@ -0,0 +1,14 @@ +self: super: { + elinks = super.elinks.overrideAttrs (old: + self.mylibs.fetchedGithub ./elinks.json // rec { + preConfigure = ''sh autogen.sh''; + buildInputs = old.buildInputs ++ (with self; [ gettext automake autoconf ]); + configureFlags = [ + "--disable-smb" "--without-x" "--enable-cgi" + "--enable-leds" "--enable-256-colors" + "--enable-html-highlight" "--with-zlib" + ]; + patches = []; + } + ); +} diff --git a/overlays/elinks/elinks.json b/overlays/elinks/elinks.json new file mode 100644 index 0000000..ea13b1f --- /dev/null +++ b/overlays/elinks/elinks.json @@ -0,0 +1,15 @@ +{ + "tag": "f86be65-master", + "meta": { + "name": "elinks", + "url": "https://github.com/nabetaro/elinks", + "branch": "master" + }, + "github": { + "owner": "nabetaro", + "repo": "elinks", + "rev": "f86be659718c0cd0a67f88b42f07044c23d0d028", + "sha256": "1jxb7xgawcjkb3gw4gqyw26g02709wwdbhyczfckh3l4njxhy14m", + "fetchSubmodules": true + } +} diff --git a/overlays/goaccess/default.nix b/overlays/goaccess/default.nix new file mode 100644 index 0000000..12b28f3 --- /dev/null +++ b/overlays/goaccess/default.nix @@ -0,0 +1,13 @@ +self: super: { + goaccess = super.goaccess.overrideAttrs(old: rec { + name = "goaccess-${version}"; + version = "1.3"; + src = self.fetchurl { + url = "https://tar.goaccess.io/${name}.tar.gz"; + sha256 = "16vv3pj7pbraq173wlxa89jjsd279004j4kgzlrsk1dz4if5qxwc"; + }; + configureFlags = old.configureFlags ++ [ "--enable-tcb=btree" ]; + buildInputs = old.buildInputs ++ [ self.tokyocabinet self.bzip2 ]; + }); + +} diff --git a/overlays/ldapvi/default.nix b/overlays/ldapvi/default.nix new file mode 100644 index 0000000..030e676 --- /dev/null +++ b/overlays/ldapvi/default.nix @@ -0,0 +1,3 @@ +self: super: { + ldapvi = super.ldapvi.overrideAttrs (old: self.mylibs.fetchedGit ./ldapvi.json); +} diff --git a/overlays/ldapvi/ldapvi.json b/overlays/ldapvi/ldapvi.json new file mode 100644 index 0000000..ceaff71 --- /dev/null +++ b/overlays/ldapvi/ldapvi.json @@ -0,0 +1,14 @@ +{ + "tag": "f1d42ba-master", + "meta": { + "name": "ldapvi", + "url": "http://www.lichteblau.com/git/ldapvi.git", + "branch": "master" + }, + "git": { + "url": "http://www.lichteblau.com/git/ldapvi.git", + "rev": "f1d42bad66cc4623d1ff21fbd5dddbf5009d3e40", + "sha256": "0c2h4b1spp9z6a16gy9azf0wyxq397yy7001x1zlvc7c60q11wry", + "fetchSubmodules": true + } +} diff --git a/overlays/lesspipe/default.nix b/overlays/lesspipe/default.nix new file mode 100644 index 0000000..e53feae --- /dev/null +++ b/overlays/lesspipe/default.nix @@ -0,0 +1,5 @@ +self: super: { + lesspipe = super.lesspipe.overrideAttrs(old: { + configureFlags = (old.configureFlags or []) ++ [ "--yes" ]; + }); +} diff --git a/overlays/neomutt/default.nix b/overlays/neomutt/default.nix new file mode 100644 index 0000000..c8578c9 --- /dev/null +++ b/overlays/neomutt/default.nix @@ -0,0 +1,8 @@ +self: super: { + neomutt = super.neomutt.overrideAttrs (old: + { + buildInputs = old.buildInputs ++ [ self.gdbm ]; + configureFlags = old.configureFlags ++ [ "--gdbm" ]; + } + ); +} diff --git a/overlays/nixops/default.nix b/overlays/nixops/default.nix new file mode 100644 index 0000000..eb29ecd --- /dev/null +++ b/overlays/nixops/default.nix @@ -0,0 +1,7 @@ +self: super: { + nixops = super.nixops.overrideAttrs (old: { + preConfigure = (old.preConfigure or "") + '' + sed -i -e "/'keyFile'/s/'path'/'string'/" nixops/backends/__init__.py + ''; + }); +} diff --git a/overlays/pass/default.nix b/overlays/pass/default.nix new file mode 100644 index 0000000..df42cf1 --- /dev/null +++ b/overlays/pass/default.nix @@ -0,0 +1,8 @@ +self: super: { + pass = (super.pass.withExtensions (exts: [ exts.pass-otp ])).overrideAttrs (old: + self.mylibs.fetchedGit ./pass.json // { + patches = old.patches ++ [ ./pass-fix-pass-init.patch ]; + } + ); + +} diff --git a/overlays/pass/pass-fix-pass-init.patch b/overlays/pass/pass-fix-pass-init.patch new file mode 100644 index 0000000..10a76c1 --- /dev/null +++ b/overlays/pass/pass-fix-pass-init.patch @@ -0,0 +1,42 @@ +From 33e8f1cd0065639a948d7b5ba3f93d43bdf7f3be Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Isma=C3=ABl=20Bouya?= +Date: Sun, 11 Nov 2018 19:47:33 +0100 +Subject: [PATCH] Fix pass init for some gpg keys + +This fixes the pass init for gpg keys which have their main key as +encryption key. This may happen for instance with RSA keys and specific +configuration. +--- + src/password-store.sh | 2 +- + tests/t0300-reencryption.sh | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/password-store.sh b/src/password-store.sh +index d89d455..44d122e 100755 +--- a/src/password-store.sh ++++ b/src/password-store.sh +@@ -124,7 +124,7 @@ reencrypt_path() { + IFS=";" eval 'GPG_RECIPIENTS+=( $group )' # http://unix.stackexchange.com/a/92190 + unset "GPG_RECIPIENTS[$index]" + done +- gpg_keys="$($GPG $PASSWORD_STORE_GPG_OPTS --list-keys --with-colons "${GPG_RECIPIENTS[@]}" | sed -n 's/^sub:[^:]*:[^:]*:[^:]*:\([^:]*\):[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[a-zA-Z]*e[a-zA-Z]*:.*/\1/p' | LC_ALL=C sort -u)" ++ gpg_keys="$($GPG $PASSWORD_STORE_GPG_OPTS --list-keys --with-colons "${GPG_RECIPIENTS[@]}" | sed -n 's/^[ps]ub:[^:]*:[^:]*:[^:]*:\([^:]*\):[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[a-zA-Z]*e[a-zA-Z]*:.*/\1/p' | LC_ALL=C sort -u)" + fi + current_keys="$(LC_ALL=C $GPG $PASSWORD_STORE_GPG_OPTS -v --no-secmem-warning --no-permission-warning --decrypt --list-only --keyid-format long "$passfile" 2>&1 | sed -n 's/^gpg: public key is \([A-F0-9]\+\)$/\1/p' | LC_ALL=C sort -u)" + +diff --git a/tests/t0300-reencryption.sh b/tests/t0300-reencryption.sh +index 3c88987..57d873f 100755 +--- a/tests/t0300-reencryption.sh ++++ b/tests/t0300-reencryption.sh +@@ -7,7 +7,7 @@ cd "$(dirname "$0")" + INITIAL_PASSWORD="will this password live? a big question indeed..." + + canonicalize_gpg_keys() { +- $GPG --list-keys --with-colons "$@" | sed -n 's/sub:[^:]*:[^:]*:[^:]*:\([^:]*\):[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[a-zA-Z]*e[a-zA-Z]*:.*/\1/p' | LC_ALL=C sort -u ++ $GPG --list-keys --with-colons "$@" | sed -n 's/[ps]ub:[^:]*:[^:]*:[^:]*:\([^:]*\):[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[a-zA-Z]*e[a-zA-Z]*:.*/\1/p' | LC_ALL=C sort -u + } + gpg_keys_from_encrypted_file() { + $GPG -v --no-secmem-warning --no-permission-warning --decrypt --list-only --keyid-format long "$1" 2>&1 | grep "public key is" | cut -d ' ' -f 5 | LC_ALL=C sort -u +-- +2.19.1 + diff --git a/overlays/pass/pass.json b/overlays/pass/pass.json new file mode 100644 index 0000000..a4638c1 --- /dev/null +++ b/overlays/pass/pass.json @@ -0,0 +1,14 @@ +{ + "tag": "d29a389-master", + "meta": { + "name": "password-store", + "url": "https://git.zx2c4.com/password-store/", + "branch": "master" + }, + "git": { + "url": "https://git.zx2c4.com/password-store/", + "rev": "d29a389a40524c684595f51bb937f66958bc14ea", + "sha256": "17g43i0if9nggcq6005iyxxy9my8s15ihc2nzwjgqzhy3svh5xvn", + "fetchSubmodules": true + } +} diff --git a/overlays/pelican/default.nix b/overlays/pelican/default.nix new file mode 100644 index 0000000..5f60b8f --- /dev/null +++ b/overlays/pelican/default.nix @@ -0,0 +1,6 @@ +self: super: { + pelican = with self.python3Packages; + pelican.overrideAttrs(old: self.mylibs.fetchedGithub ./pelican.json // { + propagatedBuildInputs = old.propagatedBuildInputs ++ [ pyyaml ]; + }); +} diff --git a/overlays/pelican/pelican.json b/overlays/pelican/pelican.json new file mode 100644 index 0000000..d8f4425 --- /dev/null +++ b/overlays/pelican/pelican.json @@ -0,0 +1,15 @@ +{ + "tag": "4.0.1", + "meta": { + "name": "pelican", + "url": "https://github.com/getpelican/pelican", + "branch": "refs/tags/4.0.1" + }, + "github": { + "owner": "getpelican", + "repo": "pelican", + "rev": "24d6efa9fda4ad45649ddf88c1c596193d589bf8", + "sha256": "09fcwnnfln0cl5v0qpxzrllj27znrg6dbhaksxrl0192c3mbyjvl", + "fetchSubmodules": true + } +} diff --git a/overlays/profanity/default.nix b/overlays/profanity/default.nix new file mode 100644 index 0000000..33861f1 --- /dev/null +++ b/overlays/profanity/default.nix @@ -0,0 +1,9 @@ +self: super: { + profanity = (super.profanity.override { + notifySupport = true; + inherit (self) libnotify gpgme gdk_pixbuf; + python = self.python3; + }).overrideAttrs (old: rec { + configureFlags = old.configureFlags ++ [ "--enable-plugins" ]; + }); +} diff --git a/overlays/sc-im/default.nix b/overlays/sc-im/default.nix new file mode 100644 index 0000000..f728655 --- /dev/null +++ b/overlays/sc-im/default.nix @@ -0,0 +1,9 @@ +self: super: { + sc-im = super.sc-im.overrideAttrs (old: { + buildPhase = '' + cd src + sed -i Makefile -e 's@\...name.info@.local/state/$(name)info@' + cd .. + '' + old.buildPhase; + }); +} diff --git a/overlays/slrn/default.nix b/overlays/slrn/default.nix new file mode 100644 index 0000000..6caef55 --- /dev/null +++ b/overlays/slrn/default.nix @@ -0,0 +1,11 @@ +self: super: { + slrn = super.slrn.overrideAttrs (old: rec { + version = "1.0.3a"; + name = "slrn-${version}"; + src = self.fetchurl { + url = "http://www.jedsoft.org/releases/slrn/slrn-${version}.tar.bz2"; + sha256 = "1b1d9iikr60w0vq86y9a0l4gjl0jxhdznlrdp3r405i097as9a1v"; + }; + configureFlags = old.configureFlags ++ [ "--with-slrnpull" ]; + }); +} diff --git a/overlays/taskwarrior/default.nix b/overlays/taskwarrior/default.nix new file mode 100644 index 0000000..64ea690 --- /dev/null +++ b/overlays/taskwarrior/default.nix @@ -0,0 +1,13 @@ +self: super: +{ + taskwarrior = super.taskwarrior.overrideAttrs (old: { + postInstall = ''${old.postInstall} + mkdir -p "$out/share/vim/vimfiles/ftdetect" + mkdir -p "$out/share/vim/vimfiles/syntax" + ln -s "../../../../share/doc/task/scripts/vim/ftdetect/task.vim" "$out/share/vim/vimfiles/ftdetect/" + ln -s "../../../../share/doc/task/scripts/vim/syntax/taskrc.vim" "$out/share/vim/vimfiles/syntax/" + ln -s "../../../../share/doc/task/scripts/vim/syntax/taskdata.vim" "$out/share/vim/vimfiles/syntax/" + ln -s "../../../../share/doc/task/scripts/vim/syntax/taskedit.vim" "$out/share/vim/vimfiles/syntax/" + ''; + }); +} diff --git a/overlays/vit/default.nix b/overlays/vit/default.nix new file mode 100644 index 0000000..4624284 --- /dev/null +++ b/overlays/vit/default.nix @@ -0,0 +1,8 @@ +self: super: +{ + vit = (super.vit.override { inherit (self) taskwarrior; }).overrideAttrs (old: + self.mylibs.fetchedGithub ./vit.json // { + buildInputs = old.buildInputs ++ (with self.perlPackages; [ TryTiny TextCharWidth ]); + } + ); +} diff --git a/overlays/vit/vit.json b/overlays/vit/vit.json new file mode 100644 index 0000000..d062f68 --- /dev/null +++ b/overlays/vit/vit.json @@ -0,0 +1,15 @@ +{ + "tag": "dbacada-1.3", + "meta": { + "name": "vit", + "url": "https://github.com/scottkosty/vit", + "branch": "1.3" + }, + "github": { + "owner": "scottkosty", + "repo": "vit", + "rev": "dbacada5867b238fdf35dbf00a3ca0daf7703038", + "sha256": "1wlk62cv6dc0dqv8265xcx2l7ydzg40xf6l4qbrf6h5156ncc90l", + "fetchSubmodules": true + } +} diff --git a/overlays/weboob/default.nix b/overlays/weboob/default.nix new file mode 100644 index 0000000..d0a15a7 --- /dev/null +++ b/overlays/weboob/default.nix @@ -0,0 +1,15 @@ +self: super: { + weboob = (self.pythonPackages.weboob.overridePythonAttrs { + setupPyBuildFlags = [ "--no-qt" "--xdg" ]; + }).overrideAttrs (old: rec { + version = "1.5"; + src = self.fetchurl { + url = "https://git.weboob.org/weboob/weboob/-/archive/${version}/${old.pname}-${version}.tar.gz"; + sha256 = "0l6q5nm5g0zn6gmf809059kddrbds27wgygxsfkqja9blks5vq7z"; + }; + postInstall = ''${old.postInstall or ""} + mkdir -p $out/share/bash-completion/completions/ + cp tools/weboob_bash_completion $out/share/bash-completion/completions/weboob + ''; + }); +} diff --git a/overlays/weechat/default.nix b/overlays/weechat/default.nix new file mode 100644 index 0000000..07c6d89 --- /dev/null +++ b/overlays/weechat/default.nix @@ -0,0 +1,14 @@ +self: super: { + weechat = super.weechat.override { + configure = { availablePlugins, ... }: { + plugins = with self; with availablePlugins; [ + # Make sure websocket_client is not 0.55.0, it provokes + # regular crashes + (python.withPackages (ps: with ps; [websocket_client emoji])) + perl + ruby + ]; + }; + }; + +} -- cgit v1.2.3