OMEMO is a proposed end-to-end encryption scheme for XMPP that Gajim supports via a plugin. This plugin can be installed into user's home directories with Gajim's built-in plugin manager, but this does not work because the plugin cannot find the needed python modules.
01/05/2017 15:32:08 (E) gajim.plugin_system.omemo No module named google.protobuf
01/05/2017 15:32:08 (E) gajim.plugin_system.omemo No module named axolotl
I was able to get this working by placing
{
packageOverrides = pkgs_: with pkgs_;
{
omemo = python27.withPackages (ps: with ps; [cryptography python-axolotl python-axolotl-gajimcurve25519 qrcode]);
};
}
in ~/.nixpkgs/config.nix
and running nix-env -iA nixpkgs.omemo
. Finally, running PYTHONPATH="$HOME/.nix-profile/lib/python2.7/site-packages" gajim
made the plugin usable.
In Debian, there is a nice package called gajim-omemo
which allows the admin to install the plugin globally and the users need only _enable_ it via Gajim's plugin manager.
Adding such a package to nixpkgs
could make using OMEMO much easier by removing the need for manually setting PYTHONPATH
.
In nixpkgs unstable there is the following build flag:
packageOverrides = pkgs: rec {
gajim = pkgs.gajim.override { enableOmemoPluginDependencies = true; };
}
and then everything works as expected.
That works pretty well, Thanks!
the flag is now enabled by default: https://github.com/NixOS/nixpkgs/commit/98bcca88134be2934b4d4947d880954b46d3f06c
Most helpful comment
the flag is now enabled by default: https://github.com/NixOS/nixpkgs/commit/98bcca88134be2934b4d4947d880954b46d3f06c