diff --git a/flake.lock b/flake.lock index 5b4ac87..9e64f67 100644 --- a/flake.lock +++ b/flake.lock @@ -4,7 +4,7 @@ "inputs": { "devshell": "devshell", "flake-utils": "flake-utils_7", - "nixpkgs": "nixpkgs_7" + "nixpkgs": "nixpkgs_6" }, "locked": { "lastModified": 1638562808, @@ -480,21 +480,6 @@ "type": "github" } }, - "my-log": { - "inputs": { - "nixpkgs": "nixpkgs_2" - }, - "locked": { - "lastModified": 1712193044, - "narHash": "sha256-0e3gIDBHxmhAB5euNqOuf4i2LfWqKRSXPDX/HxaCJIs=", - "path": "/home/me/work/log/new", - "type": "path" - }, - "original": { - "path": "/home/me/work/log/new", - "type": "path" - } - }, "networkmanager": { "locked": { "lastModified": 1700593965, @@ -525,7 +510,7 @@ "flake-utils": "flake-utils_4", "format-all": "format-all", "nix-straight": "nix-straight", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_2", "nose": "nose", "ob-racket": "ob-racket", "org": "org", @@ -642,7 +627,7 @@ "inputs": { "flake-compat": "flake-compat_3", "flake-utils": "flake-utils_5", - "nixpkgs": "nixpkgs_4" + "nixpkgs": "nixpkgs_3" }, "locked": { "lastModified": 1714355896, @@ -805,22 +790,6 @@ } }, "nixpkgs_2": { - "locked": { - "lastModified": 1702830618, - "narHash": "sha256-lvhwIvRwhOLgzbRuYkqHy4M5cQHYs4ktL6/hyuBS6II=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "91a00709aebb3602f172a0bf47ba1ef013e34835", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { "locked": { "lastModified": 1695806987, "narHash": "sha256-fX5kGs66NZIxCMcpAGIpxuftajHL8Hil1vjHmjjl118=", @@ -835,7 +804,7 @@ "type": "indirect" } }, - "nixpkgs_4": { + "nixpkgs_3": { "locked": { "lastModified": 1714272655, "narHash": "sha256-3/ghIWCve93ngkx5eNPdHIKJP/pMzSr5Wc4rNKE1wOc=", @@ -851,7 +820,7 @@ "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_4": { "locked": { "lastModified": 1714564312, "narHash": "sha256-+Pu+QmY5u33E+PMulmvLiyAgZDi2bgbV5LEtiVXa0c4=", @@ -867,7 +836,7 @@ "type": "github" } }, - "nixpkgs_6": { + "nixpkgs_5": { "locked": { "lastModified": 1613434981, "narHash": "sha256-Q6JRyPs5g2AXov/yEof//jOOiQ/VZVxrSYC7jiCEhSE=", @@ -881,7 +850,7 @@ "type": "indirect" } }, - "nixpkgs_7": { + "nixpkgs_6": { "locked": { "lastModified": 1637841632, "narHash": "sha256-QYqiKHdda0EOnLGQCHE+GluD/Lq2EJj4hVTooPM55Ic=", @@ -897,7 +866,7 @@ "type": "github" } }, - "nixpkgs_8": { + "nixpkgs_7": { "locked": { "lastModified": 1638371214, "narHash": "sha256-0kE6KhgH7n0vyuX4aUoGsGIQOqjIx2fJavpCWtn73rc=", @@ -977,6 +946,21 @@ "type": "github" } }, + "nur": { + "locked": { + "lastModified": 1715935062, + "narHash": "sha256-Y55ZtqyO1S/iwqWk/heGVxX3kH6gYBn1ZvzLkUpYnx0=", + "owner": "nix-community", + "repo": "NUR", + "rev": "1fc89eca191b0a6240a43a2e2bc46627b1593a30", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "NUR", + "type": "github" + } + }, "ob-racket": { "flake": false, "locked": { @@ -1060,7 +1044,7 @@ "podman": { "inputs": { "flake-utils": "flake-utils_6", - "nixpkgs": "nixpkgs_6" + "nixpkgs": "nixpkgs_5" }, "locked": { "lastModified": 1661906180, @@ -1095,7 +1079,7 @@ "robotnix": { "inputs": { "androidPkgs": "androidPkgs", - "nixpkgs": "nixpkgs_8", + "nixpkgs": "nixpkgs_7", "nixpkgsUnstable": "nixpkgsUnstable" }, "locked": { @@ -1118,7 +1102,6 @@ "firefox-addons": "firefox-addons", "flake-utils": "flake-utils_3", "home-manager": "home-manager", - "my-log": "my-log", "networkmanager": "networkmanager", "nix-doom-emacs": "nix-doom-emacs", "nix-index-database": "nix-index-database", @@ -1126,9 +1109,10 @@ "nix-wsl": "nix-wsl", "nixos-generators": "nixos-generators", "nixos-hardware": "nixos-hardware", - "nixpkgs": "nixpkgs_5", + "nixpkgs": "nixpkgs_4", "nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap_2", "nixpkgs-unstable": "nixpkgs-unstable", + "nur": "nur", "podman": "podman", "robotnix": "robotnix", "systems": "systems_5" diff --git a/flake.nix b/flake.nix index a950469..1b2e225 100644 --- a/flake.nix +++ b/flake.nix @@ -1,14 +1,14 @@ { description = "Sebastian (c2vi)'s NixOS"; + ################################### INPUTS ######################################### inputs = { - # don't forget to also change the hash of the used nixpkgs in programs/bash.nix the export nip nixpkgs.url = "github:NixOS/nixpkgs/release-23.11"; #nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; - #old-nixpkgs.url = "github:NixOS/nixpkgs/release-22.11"; + nur.url = "github:nix-community/NUR"; firefox.url = "github:nix-community/flake-firefox-nightly"; firefox-addons = { @@ -17,26 +17,21 @@ inputs.nixpkgs.follows = "nixpkgs"; }; - home-manager = { url = "github:nix-community/home-manager/release-23.11"; inputs.nixpkgs.follows = "nixpkgs"; }; - nix-doom-emacs.url = "github:nix-community/nix-doom-emacs"; - nix-index-database.url = "github:Mic92/nix-index-database"; nix-index-database.inputs.nixpkgs.follows = "nixpkgs"; - nixos-generators = { url = "github:nix-community/nixos-generators"; inputs.nixpkgs.follows = "nixpkgs"; }; - nixos-hardware.url = "github:nixos/nixos-hardware"; networkmanager.url = "github:c2vi/nixos-networkmanager-profiles"; @@ -60,17 +55,18 @@ nix-wsl.url = "github:nix-community/NixOS-WSL"; - my-log.url = "path:/home/me/work/log/new"; + #my-log.url = "path:/home/me/work/log/new"; #my-log.inputs.nixpkgs.follows = "nixpkgs"; podman.url = "github:ES-Nix/podman-rootless"; flake-utils.url = "github:numtide/flake-utils"; systems.url = "github:nix-systems/default"; - }; - outputs = { self, nixpkgs, nixos-generators, flake-utils, systems, ... }@inputs: + outputs = { self, nixpkgs, nixpkgs-unstable, nixos-generators, flake-utils, systems, ... }@inputs: + + ################################### LET FOR OUPUTS ######################################### let confDir = "/home/me/work/config"; workDir = "/home/me/work"; @@ -112,8 +108,117 @@ system = "x86_64-linux"; pkgs = mypkgs; }; + eachSystem = inputs.flake-utils.outputs.lib.eachSystem; + allSystems = inputs.flake-utils.outputs.lib.allSystems; in + + ################################### EACH SYSTEM OUPUTS ######################################### + eachSystem allSystems (system: { + + ############ packages ################ + packages = { + + pkgsOverlay = import nixpkgs { + inherit system; + overlays = [ (import ./overlays/static-overlay.nix) (import ./overlays/my-overlay.nix) ]; + }; + + pkgsOverlayUnstable = import nixpkgs-unstable { + inherit system; + overlays = [ (import ./overlays/static-overlay.nix) (import ./overlays/my-overlay.nix) ]; + }; + + acern = self.nixosConfigurations.acern.config.system.build.tarballBuilder; + lush = self.nixosConfigurations.lush.config.system.build.sdImage; + rpi = self.nixosConfigurations.rpi.config.system.build.sdImage; + + # collection of only my nur pkgs + # my nur is unstable by default + mynurPkgs = inputs.nixpkgs-unstable.legacyPackages.${system}.callPackage ./nur.nix {}; + mynurPkgsStable = inputs.nixpkgs.legacyPackages.${system}.callPackage ./nur.nix {}; + + nurPkgs = let tmp = import inputs.nixpkgs-unstable { + inherit system; + overlays = [ inputs.nur.overlay ]; + }; in tmp.nur.repos; + + nurPkgsStable = let tmp = import inputs.nixpkgs { + inherit system; + overlays = [ inputs.nur.overlay ]; + }; in tmp.nur.repos; + + nurSrcs = let tmp = import inputs.nixpkgs-unstable { + inherit system; + overlays = [ inputs.nur.overlay ]; + }; in tmp.nur.repo-sources; + + nurSrcUrls = let tmp = import inputs.nixpkgs-unstable { + inherit system; + overlays = [ inputs.nur.overlay ]; + }; in builtins.mapAttrs (name: value: value.inputDerivation.urls) tmp.nur.repo-sources; + + # collection of random things I played around with /built once + # in seperate path to keep this flake cleaner + random = import ./random-pkgs.nix { + inherit system; + # inherit all inputs + inherit self nixpkgs nixpkgs-unstable nixos-generators flake-utils systems inputs; + # inherit all my let bindings + # inherit all my let bindings + inherit confDir workDir secretsDir persistentDir tunepkgs mypkgs specialArgs eachSystem allSystems; + }; + + } + // # include nur packages from ./nur.nix + # my nur is unstable by default + (import ./nur.nix {pkgs = nixpkgs-unstable.legacyPackages.${system};}) + ; + + ############ apps ################ + apps = { + test = inputs.nix-on-droid.outputs.apps.x86_64-linux.deploy; + + wsl = { + type = "app"; + program = "${self.nixosConfigurations.acern.config.system.build.tarballBuilder}/bin/nixos-wsl-tarball-builder"; + }; + default = { + type = "app"; + program = "${self.packages.x86_64-linux.run-vm}/bin/run-vm"; + }; + }; + + + }) # end of each-system-outputs + + // # combine with other-outputs + + ################################### OTHER OUPUTS ######################################### { + top = builtins.mapAttrs (name: value: value.config.system.build.toplevel) (self.nixOnDroidConfigurations // self.nixosConfigurations); + + # this is my nur repo, that you can import and call with pkgs + nur = import ./nur.nix; + + tunepkgs = tunepkgs; + pkgs = mypkgs; + + overlays = { + static = import ./overlays/static-overlay.nix; + }; + + # I want to be able to referency my inputs as an output as well + # eg usefull for nix eval github:c2vi/nixos#inputs.nixpkgs.rev to get the current pinned nixpkgs version + inherit inputs; + + ############ homeModules ################ + homeModules = { + #me-headless = import ./users/me/headless.nix; + me-headless = import ./users/common/home.nix; + me = import ./users/me/gui-home.nix; + }; + + ############ nixosConfigurations ################ nixosConfigurations = rec { "main" = nixpkgs.lib.nixosSystem { inherit specialArgs; @@ -319,6 +424,7 @@ }; }; + ############ robotnixConfigurations ################ robotnixConfigurations = rec { "phone" = inputs.robotnix.lib.robotnixSystem (import ./hosts/phone/default.nix); "phone-emulator" = inputs.robotnix.lib.robotnixSystem { @@ -346,6 +452,7 @@ }; }; + ############ nixOnDroidConfigurations ################ nixOnDroidConfigurations = rec { "phone" = inputs.nix-on-droid.lib.nixOnDroidConfiguration { modules = [ @@ -379,104 +486,5 @@ }; }; - - homeModules = { - #me-headless = import ./users/me/headless.nix; - me-headless = import ./users/common/home.nix; - }; - - packages.aarch64-linux = { - cbm = nixpkgs.legacyPackages.aarch64-linux.callPackage ./mods/cbm.nix { }; - }; - - packages.x86_64-linux = { - tunefox = mypkgs.firefox-unwrapped.overrideAttrs (final: prev: { - NIX_CFLAGS_COMPILE = [ (prev.NIX_CFLAGS_COMPILE or "") ] ++ [ "-O3" "-march=native" "-fPIC" ]; - requireSigning = false; - }); - - pkgsWithOverlays = import nixpkgs { - system = "x86_64-linux"; - overlays = [ (import ./overlays/static-overlay.nix) (import ./overlays/my-overlay.nix) ]; - }; - - hi = self.nixosConfigurations.the-most-default.config.system.build.toplevel; - #testing = nixpkgs.legacyPackages.x86_64-linux; - testing = (nixpkgs.legacyPackages.x86_64-linux.writeShellApplication { - name = "log"; - #runtimeInputs = [ inputs.my-log.packages.${system}.pythonForLog ]; - #text = "cd /home/me/work/log/new; nix develop -c 'python ${workDir}/log/new/client.py'"; - text = ''${inputs.my-log.packages.x86_64-linux.pythonForLog}/bin/python ${workDir}/log/new/client.py "$@"''; - }); - - - hello-container = mypkgs.dockerTools.buildImage { - name = "hello-docker"; - config = { - Cmd = [ "${mypkgs.hello}/bin/hello" ]; - }; - }; - - #test = inputs.firefox.packages.${nixpkgs.legacyPackages.x86_64-linux.pkgs.system}; #.firefox-nightly-bin.overrideAttrs (old: { - #NIX_CFLAGS_COMPILE = [ (old.NIX_CFLAGS_COMPILE or "") ] ++ [ "-O3" "-march=native" "-fPIC" ]; - #}); - - cbm = nixpkgs.legacyPackages.x86_64-linux.callPackage ./mods/cbm.nix { }; - mac-telnet = nixpkgs.legacyPackages.x86_64-linux.callPackage ./mods/mac-telnet.nix { }; - run-vm = specialArgs.pkgs.writeScriptBin "run-vm" '' - ${self.nixosConfigurations.hpm.config.system.build.vm}/bin/run-hpm-vm -m 4G -cpu host -smp 4 - ''; - #luna = (self.nixosConfigurations.luna.extendModules { - #modules = [ "${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64-new-kernel-no-zfs-installer.nix" ]; - #}).config.system.build.sdImage; - - acern = self.nixosConfigurations.acern.config.system.build.tarballBuilder; - lush = self.nixosConfigurations.lush.config.system.build.sdImage; - rpi = self.nixosConfigurations.rpi.config.system.build.sdImage; - - hec-img = nixos-generators.nixosGenerate { - system = "x86_64-linux"; - modules = [ - ./hosts/hpm.nix - ]; - format = "raw"; - inherit specialArgs; - }; - - - prootTermux = inputs.nix-on-droid.outputs.packages.x86_64-linux.prootTermux; - docker = let pkgs = nixpkgs.legacyPackages.x86_64-linux.pkgs; in pkgs.dockerTools.buildImage { - name = "hello"; - tag = "0.1.0"; - - config = { Cmd = [ "${pkgs.bash}/bin/bash" ]; }; - - created = "now"; - }; - - }; - - apps.x86_64-linux = { - test = inputs.nix-on-droid.outputs.apps.x86_64-linux.deploy; - - wsl = { - type = "app"; - program = "${self.nixosConfigurations.acern.config.system.build.tarballBuilder}/bin/nixos-wsl-tarball-builder"; - }; - default = { - type = "app"; - program = "${self.packages.x86_64-linux.run-vm}/bin/run-vm"; - }; - }; - - tunepkgs = tunepkgs; - pkgs = mypkgs; - home.me = import ./users/me/gui-home.nix; - top = builtins.mapAttrs (name: value: value.config.system.build.toplevel) (self.nixOnDroidConfigurations // self.nixosConfigurations); - #nur = let nur-systems = [ "x86_64-linux" "aarch64-linux" ]; in flake-utils.eachDefaultSystem (system: inputs.nixpkgs-unstable.legacyPackages.${system}.callPackage ./nur.nix {}); - overlays = { - static = import ./overlays/static-overlay.nix; - }; - inherit inputs; }; } diff --git a/random-pkgs.nix b/random-pkgs.nix new file mode 100644 index 0000000..e826fea --- /dev/null +++ b/random-pkgs.nix @@ -0,0 +1,33 @@ +{ mypkgs, specialArgs, nixos-generators, + system, inputs, nixpkgs, self, + ... +}:{ + tunefox = mypkgs.firefox-unwrapped.overrideAttrs (final: prev: { + NIX_CFLAGS_COMPILE = [ (prev.NIX_CFLAGS_COMPILE or "") ] ++ [ "-O3" "-march=native" "-fPIC" ]; + requireSigning = false; + }); + + run-vm = specialArgs.pkgs.writeScriptBin "run-vm" '' + ${self.nixosConfigurations.hpm.config.system.build.vm}/bin/run-hpm-vm -m 4G -cpu host -smp 4 + ''; + + hec-img = nixos-generators.nixosGenerate { + inherit system; + modules = [ + ./hosts/hpm.nix + ]; + format = "raw"; + inherit specialArgs; + }; + + prootTermux = inputs.nix-on-droid.outputs.packages.${system}.prootTermux; + + hello-container = let pkgs = nixpkgs.legacyPackages.${system}.pkgs; in pkgs.dockerTools.buildImage { + name = "hello"; + tag = "0.1.0"; + + config = { Cmd = [ "${pkgs.bash}/bin/bash" ]; }; + + created = "now"; + }; +}