Nixpkgs/Reviewing changes: Difference between revisions

From NixOS Wiki
imported>Artturin
No edit summary
imported>Artturin
add flakes vm example
Line 8: Line 8:
== Modules ==
== Modules ==


=== Pre-flakes ===
You may use the rev instead of the branchname, the rev will get redownloaded when changed but the branch wont be redownloaded
You may use the rev instead of the branchname, the rev will get redownloaded when changed but the branch wont be redownloaded


Line 41: Line 42:
   ];
   ];


</syntaxhighlight>
=== Flakes ===
====Vm example====
run with
<syntaxHighlight lang=console>
$ nix run
</syntaxHighlight>
<syntaxhighlight lang="nix">
{
  inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
  inputs.pkgsReview.url = "github:Artturin/nixpkgs/pipewirejackldpath";
  #inputs.pkgsReview.url = "path:../nixgits/my-nixpkgs";
  outputs = inputs@{ self, nixpkgs, pkgsReview }: {
    nixosConfigurations.vm = nixpkgs.lib.nixosSystem {
      system = "x86_64-linux";
      specialArgs = { inherit inputs; };
      modules = [
        ({ pkgs, ... }: {
          disabledModules = [ "services/desktops/pipewire/pipewire.nix" ];
          imports = [ "${inputs.pkgsReview}/nixos/modules/services/desktops/pipewire/pipewire.nix" ];
          services.pipewire.enable = true;
          users.users.user = {
            password = "user";
            isNormalUser = true;
          };
        })
      ];
    };
    # So that we can just run 'nix run' instead of
    # 'nix build ".#nixosConfigurations.vm.config.system.build.vm" && ./result/bin/run-nixos-vm'
    defaultPackage.x86_64-linux = self.nixosConfigurations.vm.config.system.build.vm;
    defaultApp.x86_64-linux = {
      type = "app";
      program = "${self.defaultPackage.x86_64-linux}/bin/run-nixos-vm";
    };
  };
}
</syntaxhighlight>
</syntaxhighlight>

Revision as of 16:17, 3 September 2021

1

Packages

Modules

Pre-flakes

You may use the rev instead of the branchname, the rev will get redownloaded when changed but the branch wont be redownloaded

disabledModules = [ "module.nix" ];

imports = let
  pkgsReview = builtins.fetchTarball {
    url = "https://github.com/USERNAME/nixpkgs/archive/BRANCHNAME.tar.gz";
  };
in [
  (import "${pkgsReview}/nixos/modules/module.nix")
];


for example

disabledModules = [ "config/swap.nix" "tasks/filesystems.nix" ];

imports = let
  pkgsReview = builtins.fetchTarball {
    url = "https://github.com/Artturin/nixpkgs/archive/add-swap-options.tar.gz";
  };
in [
  (import "${pkgsReview}/nixos/modules/config/swap.nix")
  (import "${pkgsReview}/nixos/modules/tasks/filesystems.nix")
];

  swapDevices = [
    { "device" = "/swapfile"; "options" = [ "nofail" "noatime" ]; "priority" =  0; "discardPolicy" = "once"; }
  ];


Flakes

Vm example

run with

$ nix run
{
  inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
  inputs.pkgsReview.url = "github:Artturin/nixpkgs/pipewirejackldpath";
  #inputs.pkgsReview.url = "path:../nixgits/my-nixpkgs";

  outputs = inputs@{ self, nixpkgs, pkgsReview }: {

    nixosConfigurations.vm = nixpkgs.lib.nixosSystem {
      system = "x86_64-linux";
      specialArgs = { inherit inputs; };
      modules = [
        ({ pkgs, ... }: {
          disabledModules = [ "services/desktops/pipewire/pipewire.nix" ];

          imports = [ "${inputs.pkgsReview}/nixos/modules/services/desktops/pipewire/pipewire.nix" ];

          services.pipewire.enable = true;

          users.users.user = {
            password = "user";
            isNormalUser = true;
          };
        })
      ];
    };
    # So that we can just run 'nix run' instead of 
    # 'nix build ".#nixosConfigurations.vm.config.system.build.vm" && ./result/bin/run-nixos-vm'
    defaultPackage.x86_64-linux = self.nixosConfigurations.vm.config.system.build.vm;
    defaultApp.x86_64-linux = {
      type = "app";
      program = "${self.defaultPackage.x86_64-linux}/bin/run-nixos-vm";
    };
  };
}