Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

document how to use unfree template #135

Open
lizelive opened this issue Apr 11, 2023 · 1 comment
Open

document how to use unfree template #135

lizelive opened this issue Apr 11, 2023 · 1 comment
Labels
documentation Improvements or additions to documentation

Comments

@lizelive
Copy link

lizelive commented Apr 11, 2023

thought i should just add flake-parts.flakeModules.unfree but that doesn't work
also tried moving the allowUnfree into another file but can't figure out where to import nixpkgs

# Definitions can be imported from a separate file like this one

{ self, lib, ... }: {
  perSystem = { config, self', inputs', pkgs, system, ... }: {
    _module.args.pkgs = import nixpkgs {
      inherit system;
      config.allowUnfree = true;
    };
  };
  flake = {
  };
}
{
  description = "mlws";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    devenv.url = "github:cachix/devenv";
    nix2container.url = "github:nlewo/nix2container";
    nix2container.inputs.nixpkgs.follows = "nixpkgs";
    mk-shell-bin.url = "github:rrbutani/nix-mk-shell-bin";
  };

  outputs = inputs@{ flake-parts, nixpkgs, ... }:
  let x = 1;
  in
    flake-parts.lib.mkFlake { inherit inputs; } {
      imports = [
        inputs.devenv.flakeModule
        flake-parts.flakeModules.unfree
      ];
      systems = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ];

      perSystem = { config, self', inputs', pkgs, system, ... }: {
        # Per-system attributes can be defined here. The self' and inputs'
        # module parameters provide easy access to attributes of the same
        # system.
        # _module.args.pkgs = import nixpkgs {
        #   inherit system;
        #   config.allowUnfree = true;
        # };
        # Equivalent to  inputs'.nixpkgs.legacyPackages.hello;
        packages.default = pkgs.hello;

        devenv.shells.default = {
          name = "mlws";
          languages.python.enable = true;
          languages.python.poetry.enable = true;
          # https://devenv.sh/reference/options/
          packages = [ pkgs.cudatoolkit ];

          # enterShell = ''
          #   hello
          # '';
        };

      };
      flake = {
        # The usual flake attributes can be defined here, including system-
        # agnostic ones like nixosModule and system-enumerating ones, although
        # those are more easily expressed in perSystem.

      };
    };
}
@roberth roberth added the documentation Improvements or additions to documentation label Jan 29, 2024
@JosephGoulden
Copy link

I was a bit stuck on this as well. I used moduleWithSystem to fix it. Once you have set config.allowUnfree = true; you can do something like;

{ moduleWithSystem, ... }:
{
  nixosModules.default = moduleWithSystem (
    perSystem@{ pkgs }:  # NOTE: only explicit params will be in perSystem
    nixos@{ ... }:
    {
      services.foo.package = pkgs.foo;
    }
  );
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

3 participants