mmmrrr
Nix with elixir-desktop
I’m trying to get GitHub - elixir-desktop/desktop: Building Local-First apps for Windows, MacOS, Linux, iOS and Android using Phoenix LiveView & Elixir! · GitHub running.
To get it running one needs erlang compiled against wxwidgets - which I think nix already does, since I can run :observer.start() in iex. But it seems that wxWebView is missing somehow.
I have the following shell.nix:
let
pkgs = import <nixpkgs> {};
unstable = import <nixos-unstable> { config = { allowUnfree = true; }; };
in with pkgs;
stdenv.mkDerivation {
name = "elixir-project";
buildInputs = [
];
nativeBuildInputs = [
unstable.erlang
unstable.elixir
unstable.wxGTK
unstable.gtk3
unstable.webkitgtk
unstable.gcc
unstable.sqlite
];
shellHook = let
in ''
'';
}
Where nixos-unstable is: unstable https://nixos.org/channels/nixos-unstable
Any ideas what’s missing here?
Version: Erlang/OTP 24 [erts-12.1.3] [source] [64-bit] [smp:32:32] [ds:32:32:10] [async-threads:1] [jit] / 24.1.4
Error message becaus of course I forgot posting it:
** (Mix) Could not start application todo_app: exited in: TodoApp.start(:normal, [])
** (EXIT) an exception was raised:
** (MatchError) no match of right hand side value: {:error, {{:EXIT, {{:badmatch, {:error, {{:undefined_function, {:wxWebView, :new, 0}}, [{:wxe_util, :rec, 1, [file: 'wxe_util.erl', line: 110]}, {Desktop.Fallback, :webview_new, 1, [file: 'lib/desktop/fallback.ex', line: 47]}, {Desktop.Window, :init, 1, [file: 'lib/desktop/window.ex', line: 189]}, {:wx_object, :init_it, 6, [file: 'wx_object.erl', line: 404]}, {:proc_lib, :init_p_do_apply, 3, [file: 'proc_lib.erl', line: 226]}]}}}, [{Desktop.Window, :start_link, 1, [file: 'lib/desktop/window.ex', line: 104]}, {:supervisor, :do_start_child_i, 3, [file: 'supervisor.erl', line: 414]}, {:supervisor, :do_start_child, 2, [file: 'supervisor.erl', line: 400]}, {:supervisor, :handle_start_child, 2, [file: 'supervisor.erl', line: 706]}, {:supervisor, :handle_call, 3, [file: 'supervisor.erl', line: 455]}, {:gen_server, :try_handle_call, 4, [file: 'gen_server.erl', line: 721]}, {:gen_server, :handle_msg, 6, [file: 'gen_server.erl', line: 750]}, {:proc_lib, :init_p_do_apply, 3, [file: 'proc_lib.erl', line: 226]}]}}, {:child, :undefined, TodoWindow, {Desktop.Window, :start_link, [[app: :todo_app, id: TodoWindow, title: "TodoApp", size: {600, 500}, icon: "icon.png", menubar: TodoApp.MenuBar, icon_menu: TodoApp.Menu, url: &TodoWeb.Endpoint.url/0, app: :todo_app, id: TodoWindow]]}, :permanent, false, 5000, :worker, [Desktop.Window]}}}
(todo_app 1.0.0) lib/todo_app.ex:35: TodoApp.start/2
(kernel 8.1.2) application_master.erl:293: :application_master.start_it_old/4
Most Liked
mmmrrr
Maybe and definitively not 
The cool thing about nix is that you can relatively easily overwrite package definitions and use your own. I’ll try to make it work and report back if I get it working.
At least I now have a starting point for what might be wrong - thanks ^.^







