!QhvgabMQzwEQeWehhZ:lossy.network

NixOS Home Automation

509 Members
Declarative Home Automation and other Sidequests | https://wiki.nixos.org/wiki/Home_Assistant130 Servers

Load older messages


SenderMessageTime
20 Nov 2024
@netpleb:matrix.orgnetpleb
In reply to @hexa:lossy.network
that will only put ${libedgetpu.out}/bin into PATH
sorry, I am dumb when it comes to these things, please bear with me. So do I not even need to have libedgetpu included in environment.systemPackages at all?
23:55:06
@hexa:lossy.network@hexa:lossy.networkload_delegate is a function provided by tensorflow that wants to load a shared library at runtime23:55:43
@hexa:lossy.network@hexa:lossy.networkbut since nixos does not store libraries in easily discoverable paths like /usr/lib or similar, we need some patching23:56:13
@netpleb:matrix.orgnetplebI see. That makes sense. So I need to apply the patch to frigate? (I'm using the nixos unstable module)23:57:32
@hexa:lossy.network@hexa:lossy.networkone minute23:57:51
@hexa:lossy.network@hexa:lossy.networkhttps://github.com/NixOS/nixpkgs/pull/35771723:59:41
@hexa:lossy.network@hexa:lossy.networkuntested23:59:48
21 Nov 2024
@netpleb:matrix.orgnetpleb
In reply to @hexa:lossy.network
https://github.com/NixOS/nixpkgs/pull/357717
whoa, you are amazing!!! ok I will test it and see what happens!
00:01:14
@netpleb:matrix.orgnetplebreally dumb question -- when you test something like this, what is you usual method? I figured I would just change my nixpkgs input from nixos-unstable over to that PR branch you just published. That pretty much what you do?00:02:30
@netpleb:matrix.orgnetplebsorry, maybe the better question is this: for home automation things, do you end up with multiple version of nixpkgs as inputs? Such as "nixpkgs-frigate" and "nixpkgs-home-assistant" so that you're able to bump along and pull in latest things?00:04:06
@hexa:lossy.network@hexa:lossy.networkI would probably override the package00:04:14
@hexa:lossy.network@hexa:lossy.networkhttps://search.nixos.org/options?channel=unstable&show=services.frigate.package&from=0&size=50&sort=relevance&type=packages&query=frigate.package00:04:47
@hexa:lossy.network@hexa:lossy.network so this option defaults to pkgs.frigate 00:04:52
@hexa:lossy.network@hexa:lossy.networkand you could in theory do the following00:04:59
@hexa:lossy.network@hexa:lossy.network
{ lib, pkgs, ... }:
{
  services.frigate.package = pkgs.frigate.overrideAttrs (oldAttrs: {
    patches = oldAttrs.patches or [ ] ++ [
      (substituteAll {
        src = ./libedgetpu.patch;
        libedgetpu = "${lib.getLib pkgs.libedgetpu}/lib/libedgetpu.so.1.0";
       })
    ];
  });
}
00:06:29
@hexa:lossy.network@hexa:lossy.networkand then drop the patch into the same directory00:06:47
@netpleb:matrix.orgnetpleb
In reply to @hexa:lossy.network
and then drop the patch into the same directory
ok, I will try that, thanks! I have never done this type of patching. I presume I download the patch file from your github PR branch?
00:08:36
@netpleb:matrix.orgnetpleb oh, I am dumb, you mean that actual libedgetpu.patch file that you included within that PR 00:09:16
@hexa:lossy.network@hexa:lossy.networkyep00:11:34
@netpleb:matrix.orgnetpleb

hmm, close but we are missing something:

error:
       … while calling the 'seq' builtin
         at /nix/store/hfz1qqd0z8amlgn8qwich1dvkmldik36-source/lib/modules.nix:334:18:
          333|         options = checked options;
          334|         config = checked (removeAttrs config [ "_module" ]);
             |                  ^
          335|         _module = checked (config._module);

       … while evaluating a branch condition
         at /nix/store/hfz1qqd0z8amlgn8qwich1dvkmldik36-source/lib/modules.nix:273:9:
          272|       checkUnmatched =
          273|         if config._module.check && config._module.freeformType == null && merged.unmatchedDefns != [] then
             |         ^
          274|           let

       (stack trace truncated; use '--show-trace' to show the full, detailed trace)

       error: undefined variable 'substituteAll'
       at /nix/store/zh6ixwqp7n0xv469hdqrmir0v82q21rx-source/home-assistant.nix:83:10:
           82|       patches = oldAttrs.patches or [ ] ++ [
           83|         (substituteAll {
             |          ^
           84|           src = ./patches/libedgetpu.patch;
00:16:08
@hexa:lossy.network@hexa:lossy.network *
{ lib, pkgs, ... }:
{
  services.frigate.package = pkgs.frigate.overrideAttrs (oldAttrs: {
    patches = oldAttrs.patches or [ ] ++ [
      (pkgs.substituteAll {
        src = ./libedgetpu.patch;
        libedgetpu = "${lib.getLib pkgs.libedgetpu}/lib/libedgetpu.so.1.0";
       })
    ];
  });
}
00:16:36
@hexa:lossy.network@hexa:lossy.networkupdated00:16:38
@netpleb:matrix.orgnetpleb
In reply to @netpleb:matrix.org

hmm, close but we are missing something:

error:
       … while calling the 'seq' builtin
         at /nix/store/hfz1qqd0z8amlgn8qwich1dvkmldik36-source/lib/modules.nix:334:18:
          333|         options = checked options;
          334|         config = checked (removeAttrs config [ "_module" ]);
             |                  ^
          335|         _module = checked (config._module);

       … while evaluating a branch condition
         at /nix/store/hfz1qqd0z8amlgn8qwich1dvkmldik36-source/lib/modules.nix:273:9:
          272|       checkUnmatched =
          273|         if config._module.check && config._module.freeformType == null && merged.unmatchedDefns != [] then
             |         ^
          274|           let

       (stack trace truncated; use '--show-trace' to show the full, detailed trace)

       error: undefined variable 'substituteAll'
       at /nix/store/zh6ixwqp7n0xv469hdqrmir0v82q21rx-source/home-assistant.nix:83:10:
           82|       patches = oldAttrs.patches or [ ] ++ [
           83|         (substituteAll {
             |          ^
           84|           src = ./patches/libedgetpu.patch;
should it be lib.substituteAll?
00:17:07
@hexa:lossy.network@hexa:lossy.networkno, pkgs.substituteAll00:17:43
@netpleb:matrix.orgnetpleb
In reply to @hexa:lossy.network
no, pkgs.substituteAll
interesting, apparently there is a lib.substituteAll as well ;)
00:18:54
@hexa:lossy.network@hexa:lossy.network
nix-repl> lib.substituteAll
error: attribute 'substituteAll' missing
00:20:00
@netpleb:matrix.orgnetpleb
In reply to @hexa:lossy.network
{ lib, pkgs, ... }:
{
  services.frigate.package = pkgs.frigate.overrideAttrs (oldAttrs: {
    patches = oldAttrs.patches or [ ] ++ [
      (pkgs.substituteAll {
        src = ./libedgetpu.patch;
        libedgetpu = "${lib.getLib pkgs.libedgetpu}/lib/libedgetpu.so.1.0";
       })
    ];
  });
}

unfortunately this did not work:

Nov 20 16:18:59 aleph0 frigate[5661]: OSError: libedgetpu.so.1.0: cannot open shared object file: No such file or directory
Nov 20 16:18:59 aleph0 frigate[5661]: Exception ignored in: <function Delegate.__del__ at 0x7f93e7ef0540>
Nov 20 16:18:59 aleph0 frigate[5661]: Traceback (most recent call last):
Nov 20 16:18:59 aleph0 frigate[5661]:   File "/nix/store/y7wsnapb7w8pqkifah4v7s271n30d84z-python3.12-tensorflow-2.18.0/lib/python3.12/site-packages/tensorflow/lite/python/interpreter.py", line 109, in __del__
Nov 20 16:18:59 aleph0 frigate[5661]:     if self._library is not None:
Nov 20 16:18:59 aleph0 frigate[5661]:        ^^^^^^^^^^^^^
Nov 20 16:18:59 aleph0 frigate[5661]: AttributeError: 'Delegate' object has no attribute '_library'

00:24:54
@hexa:lossy.network@hexa:lossy.networkhttps://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/python/interpreter.py#L13300:26:11
@hexa:lossy.network@hexa:lossy.networkhttps://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/python/interpreter.py#L8000:27:17
@hexa:lossy.network@hexa:lossy.networkLoadLibrary doesn't seem to want a path00:28:09

Show newer messages


Back to Room ListRoom Version: 6