Hey all. Fairly new to nix and first time posting! I’ve been using nix-darwin + home-manager for a little while to manage my system. I’ve ran into an issue where the beets
package was updated in nixpkgs and is no longer supported. See `tensoflow-bin: unsupported configuration: x86_64-darwin_312` / `beets-2.0.0` evaluation error · Issue #356030 · NixOS/nixpkgs · GitHub) and:
nix-shell -p beets
error:
… while calling the 'derivationStrict' builtin
at <nix/derivation-internal.nix>:34:12:
33|
34| strict = derivationStrict drvAttrs;
| ^
35|
… while evaluating derivation 'shell'
whose name attribute is located at /nix/store/0z5aw6jjbjq9sqcd03gfa7zkk25nzwgc-source/pkgs/stdenv/generic/make-derivation.nix:336:7
… while evaluating attribute 'buildInputs' of derivation 'shell'
at /nix/store/0z5aw6jjbjq9sqcd03gfa7zkk25nzwgc-source/pkgs/stdenv/generic/make-derivation.nix:383:7:
382| depsHostHost = elemAt (elemAt dependencies 1) 0;
383| buildInputs = elemAt (elemAt dependencies 1) 1;
| ^
384| depsTargetTarget = elemAt (elemAt dependencies 2) 0;
(stack trace truncated; use '--show-trace' to show the full, detailed trace)
error: Package ‘beets-2.0.0’ in /nix/store/0z5aw6jjbjq9sqcd03gfa7zkk25nzwgc-source/pkgs/tools/audio/beets/common.nix:172 is not available on the requested hostPlatform:
I’ve set nixpkgs.url
to unstable. How can I use the nixpkgs-24.05-darwin
nixpkgs for only a single package so that I can set the beets package to use this version? Slimmed down + anonymised version of my nix config below:
{
description = "Example Darwin system flake";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
nix-darwin = {
url = "github:LnL7/nix-darwin";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = inputs@{ self, nixpkgs, nix-darwin, home-manager, ... }:
let
configuration = { pkgs, ... }: {
# Auto upgrade nix package and the daemon service.
services = {
nix-daemon.enable = true;
};
# Necessary for using flakes on this system.
nix.settings.experimental-features = "nix-command flakes";
# List packages installed in system profile. To search by name, run:
# $ nix-env -qaP | grep wget
environment = {
shells = with pkgs; [ zsh ];
systemPackages = with pkgs; [
];
};
# Set Git commit hash for darwin-version.
system.configurationRevision = self.rev or self.dirtyRev or null;
# Used for backwards compatibility, please read the changelog before changing.
# $ darwin-rebuild changelog
system.stateVersion = 4;
# The platform the configuration will be used on.
nixpkgs.hostPlatform = "x86_64-darwin";
nixpkgs.config = {
allowUnsupportedSystem = true;
allowUnfree = true;
};
users = {
# Groups and stuff can go here too.
users = {
me = {
home = "/Users/me";
};
};
};
networking = {
computerName = "MY_SYSTEM";
dns = [];
};
# App config
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
sharedModules = [
mac-app-util.homeManagerModules.default
];
users.me = { pkgs, ... }: {
home.stateVersion = "23.11"; # read below
home.packages = with pkgs; [
snapcast
];
programs = {
beets = {
enable = true;
settings = {
plugins = [
"fetchart"
"embedart"
"convert"
"scrub"
"replaygain"
"lastgenre"
"chroma"
"web"
];
directory = "/Volumes/media/music";
# library = "~/Music/musiclibrary.blb";
art_filename = "folder";
threaded = true;
original_date = false;
per_disc_numbering = false;
asciify_paths = true;
convert = {
auto = false;
ffmpeg = "/usr/bin/ffmpeg";
opts = "-ab 320k -ac 2 -ar 48000";
max_bitrate = 320;
threads = 1;
};
paths = {
default = "$albumartist/$album%aunique{}/$track - $title";
singleton = "Non-Album/$artist - $title";
comp = "Compilations/$album%aunique{}/$track - $title";
albumtype_soundtrack = "Soundtracks/$album/$track $title";
};
import = {
write = true;
copy = false;
move = true;
resume = "ask";
incremental = true;
quiet_fallback = "skip";
timid = false;
};
lastgenre = {
auto = true;
source = "album";
};
embedart = {
auto = false;
remove_art_file = true;
};
fetchart = {
auto = true;
};
replaygain = {
auto = false;
};
scrub = {
auto = true;
};
replace = {
"^\\." = "_";
"[\\x00-\\x1f]" = "_";
"[<>:\"\\?\\*\\|]" = "_";
"[\\xE8-\\xEB]" = "e";
"[\\xEC-\\xEF]" = "i";
"[\\xE2-\\xE6]" = "a";
"[\\xF2-\\xF6]" = "o";
"[\\xF8]" = "o";
"\\.+$" = "";
"\\s+$" = "\"\"";
};
web = {
host = "0.0.0.0";
port = 8337;
};
};
};
};
};
};
};
in
{
# Build darwin flake using:
# $ darwin-rebuild build --flake .#simple
darwinConfigurations."MY_SYSTEM" = nix-darwin.lib.darwinSystem {
modules = [
configuration
home-manager.darwinModules.home-manager
];
};
# Expose the package set, including overlays, for convenience.
darwinPackages = self.darwinConfigurations."MY_SYSTEM".pkgs;
};
}