This PR makes the plex derivation leverage buildFHSUserEnv. As far as I can tell, buildFHSUserEnv is built to handle x86 and x86_64, but not other architectures. Trying to use Plex on aarch64 like this:
{ config, pkgs, lib, ... }:
let
# ... other config elided ...
in {
# ... other stanzas elided ...
services.plex = {
enable = true;
};
}
… leads to this:
# nixos-rebuild switch
building Nix...
building the system configuration...
error: i686 Linux package set can only be used with the x86 family.
(use '--show-trace' to show detailed location information)
I’ve tried masking/overriding either pkgsi686Linux or buildFHSEnv like this:
{ config, pkgs, lib, ... }:
let
# ...
pkgsi686Linux = abort "fail on pkgsi686Linux";
buildFHSEnv = abort "fail on buildFHSEnv";
in {
# ... other stanzas elided ...
services.plex = {
enable = true;
};
}
… in the hopes that I could actually define something like this (rather than just abort):
… to bypass the multi-arch logic, but it always seems to use the real/underlying implementation during the package installation (whether I just try to abort or actually define something that might do something useful). What am I doing wrong here? Should I be trying to redefine/wrap buildFHSEnv, or is there a better approach?
This would probably be nice to sort out for other derivations that make use of buildFHSEnv; but alas, I haven’t hit any of those other cases on aarch64 yet.
I’ve been trying to get services.plex.enable = true; to work, with the same error (error: i686 Linux package set can only be used with the x86 family.). Any pointers is appreciated.