diff options
author | Jan Tojnar <jtojnar@gmail.com> | 2022-01-03 21:51:26 +0100 |
---|---|---|
committer | Jan Tojnar <jtojnar@gmail.com> | 2022-01-03 22:25:03 +0100 |
commit | 3c1b474e44c01d49a79b6b9eaa49a1eccb736b09 (patch) | |
tree | d286b25a0877671c768d783256ff428c49961ce0 /nixos/modules/services/desktops/gnome | |
parent | 18c84ea816348e2a098390101b92d1e39a9dbd45 (diff) | |
download | nixpkgs-3c1b474e44c01d49a79b6b9eaa49a1eccb736b09.tar nixpkgs-3c1b474e44c01d49a79b6b9eaa49a1eccb736b09.tar.gz nixpkgs-3c1b474e44c01d49a79b6b9eaa49a1eccb736b09.tar.bz2 nixpkgs-3c1b474e44c01d49a79b6b9eaa49a1eccb736b09.tar.lz nixpkgs-3c1b474e44c01d49a79b6b9eaa49a1eccb736b09.tar.xz nixpkgs-3c1b474e44c01d49a79b6b9eaa49a1eccb736b09.tar.zst nixpkgs-3c1b474e44c01d49a79b6b9eaa49a1eccb736b09.zip |
nixos/tracker: Define env var so it can find miners’ subcommands
tracker looks in its directory tree for executable files to make available as subcommands. Users expect to find subcommands from tracker-miners package but that fails as they are in different tree. We also cannot change the lookup path since tracker-miners also depends on a library from tracker package. Until we can break the dependency cycle on package level: tracker -> tracker-miners -> tracker-sparql (tracker) we need to work around it. I chose to set an environment variable that overrides the subcommands lookup to a tree symlinking files from both packages in GNOME NixOS module. https://gitlab.gnome.org/GNOME/tracker/-/issues/341 Fixes: https://github.com/NixOS/nixpkgs/issues/153378
Diffstat (limited to 'nixos/modules/services/desktops/gnome')
-rw-r--r-- | nixos/modules/services/desktops/gnome/tracker-miners.nix | 2 | ||||
-rw-r--r-- | nixos/modules/services/desktops/gnome/tracker.nix | 25 |
2 files changed, 26 insertions, 1 deletions
diff --git a/nixos/modules/services/desktops/gnome/tracker-miners.nix b/nixos/modules/services/desktops/gnome/tracker-miners.nix index c9101f0caa6..9351007d30b 100644 --- a/nixos/modules/services/desktops/gnome/tracker-miners.nix +++ b/nixos/modules/services/desktops/gnome/tracker-miners.nix @@ -47,6 +47,8 @@ with lib; systemd.packages = [ pkgs.tracker-miners ]; + services.gnome.tracker.subcommandPackages = [ pkgs.tracker-miners ]; + }; } diff --git a/nixos/modules/services/desktops/gnome/tracker.nix b/nixos/modules/services/desktops/gnome/tracker.nix index 29d9662b0b8..fef399d0112 100644 --- a/nixos/modules/services/desktops/gnome/tracker.nix +++ b/nixos/modules/services/desktops/gnome/tracker.nix @@ -4,6 +4,9 @@ with lib; +let + cfg = config.services.gnome.tracker; +in { meta = { @@ -33,6 +36,15 @@ with lib; ''; }; + subcommandPackages = mkOption { + type = types.listOf types.package; + default = [ ]; + internal = true; + description = '' + List of packages containing tracker3 subcommands. + ''; + }; + }; }; @@ -40,7 +52,7 @@ with lib; ###### implementation - config = mkIf config.services.gnome.tracker.enable { + config = mkIf cfg.enable { environment.systemPackages = [ pkgs.tracker ]; @@ -48,6 +60,17 @@ with lib; systemd.packages = [ pkgs.tracker ]; + environment.variables = { + TRACKER_CLI_SUBCOMMANDS_DIR = + let + subcommandPackagesTree = pkgs.symlinkJoin { + name = "tracker-with-subcommands-${pkgs.tracker.version}"; + paths = [ pkgs.tracker ] ++ cfg.subcommandPackages; + }; + in + "${subcommandPackagesTree}/libexec/tracker3"; + }; + }; } |