From e6e05df77ed9b3228061c336c7a8f729fafcc31f Mon Sep 17 00:00:00 2001
From: h7x4 <h7x4@nani.wtf>
Date: Wed, 10 Jul 2024 17:08:53 +0200
Subject: [PATCH] flake.nix: replace fenix with rust-overlay

---
 flake.lock | 48 +++++++++++++++---------------------------------
 flake.nix  | 30 ++++++++++++++++++------------
 2 files changed, 33 insertions(+), 45 deletions(-)

diff --git a/flake.lock b/flake.lock
index 2e7b2f7..76ca9a5 100644
--- a/flake.lock
+++ b/flake.lock
@@ -1,26 +1,5 @@
 {
   "nodes": {
-    "fenix": {
-      "inputs": {
-        "nixpkgs": [
-          "nixpkgs"
-        ],
-        "rust-analyzer-src": "rust-analyzer-src"
-      },
-      "locked": {
-        "lastModified": 1713421495,
-        "narHash": "sha256-5vVF9W1tJT+WdfpWAEG76KywktKDAW/71mVmNHEHjac=",
-        "owner": "nix-community",
-        "repo": "fenix",
-        "rev": "fd47b1f9404fae02a4f38bd9f4b12bad7833c96b",
-        "type": "github"
-      },
-      "original": {
-        "owner": "nix-community",
-        "repo": "fenix",
-        "type": "github"
-      }
-    },
     "nixpkgs": {
       "locked": {
         "lastModified": 1713297878,
@@ -39,24 +18,27 @@
     },
     "root": {
       "inputs": {
-        "fenix": "fenix",
-        "nixpkgs": "nixpkgs"
+        "nixpkgs": "nixpkgs",
+        "rust-overlay": "rust-overlay"
       }
     },
-    "rust-analyzer-src": {
-      "flake": false,
+    "rust-overlay": {
+      "inputs": {
+        "nixpkgs": [
+          "nixpkgs"
+        ]
+      },
       "locked": {
-        "lastModified": 1713373173,
-        "narHash": "sha256-octd9BFY9G/Gbr4KfwK4itZp4Lx+qvJeRRcYnN+dEH8=",
-        "owner": "rust-lang",
-        "repo": "rust-analyzer",
-        "rev": "46702ffc1a02a2ac153f1d1ce619ec917af8f3a6",
+        "lastModified": 1720577957,
+        "narHash": "sha256-RZuzLdB/8FaXaSzEoWLg3au/mtbuH7MGn2LmXUKT62g=",
+        "owner": "oxalica",
+        "repo": "rust-overlay",
+        "rev": "a434177dfcc53bf8f1f348a3c39bfb336d760286",
         "type": "github"
       },
       "original": {
-        "owner": "rust-lang",
-        "ref": "nightly",
-        "repo": "rust-analyzer",
+        "owner": "oxalica",
+        "repo": "rust-overlay",
         "type": "github"
       }
     }
diff --git a/flake.nix b/flake.nix
index afbd1b5..8484842 100644
--- a/flake.nix
+++ b/flake.nix
@@ -1,37 +1,43 @@
 {
   inputs = {
     nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
-    fenix.url = "github:nix-community/fenix";
-    fenix.inputs.nixpkgs.follows = "nixpkgs";
+
+    rust-overlay.url = "github:oxalica/rust-overlay";
+    rust-overlay.inputs.nixpkgs.follows = "nixpkgs";
   };
 
-
-  outputs = { self, nixpkgs, fenix }@inputs:
+  outputs = { self, nixpkgs, rust-overlay }@inputs:
   let 
     systems = [
       "x86_64-linux"
       "aarch64-linux"
+      "x86_64-darwin"
       "aarch64-darwin"
+      "armv7l-linux"
     ];
     forAllSystems = f: nixpkgs.lib.genAttrs systems (system: let
-      toolchain = fenix.packages.${system}.complete;
       pkgs = import nixpkgs {
         inherit system;
         overlays = [
-          (_: super: let pkgs = fenix.inputs.nixpkgs.legacyPackages.${system}; in fenix.overlays.default pkgs pkgs)
+          (import rust-overlay)
         ];
       };
+
+      rust-bin = rust-overlay.lib.mkRustBin { } pkgs.buildPackages;
+      toolchain = rust-bin.stable.latest.default;
     in f system pkgs toolchain);
   in {
     devShell = forAllSystems (system: pkgs: toolchain: pkgs.mkShell {
-      packages = [
-        (toolchain.withComponents [
-          "cargo" "rustc" "rustfmt" "clippy"
-        ])
-        pkgs.openssl
+      nativeBuildInputs = [
+        toolchain
         pkgs.pkg-config
       ];
-      RUST_SRC_PATH = "${toolchain.rust-src}/lib/rustlib/src/rust/library";
+
+      buildInputs = [
+        pkgs.openssl
+      ];
+
+      RUST_SRC_PATH = "${toolchain}/lib/rustlib/src/rust/library";
     });
   };
 }