2
0
mirror of https://github.com/m-labs/artiq.git synced 2024-12-19 00:16:29 +08:00

chore: use rust-overlay

- use rust-overlay, a flake-native and preferred alternative to mozilla-overlay

Signed-off-by: Kanyang Ying <lexugeyky@outlook.com>
This commit is contained in:
Harry Ying 2024-06-20 09:07:45 +01:00 committed by Sébastien Bourdeauducq
parent 19132ae0e3
commit 102506d603
2 changed files with 33 additions and 36 deletions

38
flake.lock generated
View File

@ -42,22 +42,6 @@
"type": "github" "type": "github"
} }
}, },
"mozilla-overlay": {
"flake": false,
"locked": {
"lastModified": 1704373101,
"narHash": "sha256-+gi59LRWRQmwROrmE1E2b3mtocwueCQqZ60CwLG+gbg=",
"owner": "mozilla",
"repo": "nixpkgs-mozilla",
"rev": "9b11a87c0cc54e308fa83aac5b4ee1816d5418a2",
"type": "github"
},
"original": {
"owner": "mozilla",
"repo": "nixpkgs-mozilla",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1718437845, "lastModified": 1718437845,
@ -77,14 +61,34 @@
"root": { "root": {
"inputs": { "inputs": {
"artiq-comtools": "artiq-comtools", "artiq-comtools": "artiq-comtools",
"mozilla-overlay": "mozilla-overlay",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"rust-overlay": "rust-overlay",
"sipyco": "sipyco", "sipyco": "sipyco",
"src-migen": "src-migen", "src-migen": "src-migen",
"src-misoc": "src-misoc", "src-misoc": "src-misoc",
"src-pythonparser": "src-pythonparser" "src-pythonparser": "src-pythonparser"
} }
}, },
"rust-overlay": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1718763539,
"narHash": "sha256-JHqQyO5XppLpMSKBaYlxbmPHMc4DpwuavKIch9W+hv4=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "69fcfaebbe564d162a85cadeaadd4dec646be4a2",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"sipyco": { "sipyco": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [

View File

@ -2,7 +2,10 @@
description = "A leading-edge control system for quantum information experiments"; description = "A leading-edge control system for quantum information experiments";
inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-24.05; inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-24.05;
inputs.mozilla-overlay = { url = github:mozilla/nixpkgs-mozilla; flake = false; }; inputs.rust-overlay = {
url = "github:oxalica/rust-overlay";
inputs.nixpkgs.follows = "nixpkgs";
};
inputs.sipyco.url = github:m-labs/sipyco; inputs.sipyco.url = github:m-labs/sipyco;
inputs.sipyco.inputs.nixpkgs.follows = "nixpkgs"; inputs.sipyco.inputs.nixpkgs.follows = "nixpkgs";
inputs.src-pythonparser = { url = github:m-labs/pythonparser; flake = false; }; inputs.src-pythonparser = { url = github:m-labs/pythonparser; flake = false; };
@ -13,9 +16,9 @@
inputs.src-migen = { url = github:m-labs/migen; flake = false; }; inputs.src-migen = { url = github:m-labs/migen; flake = false; };
inputs.src-misoc = { type = "git"; url = "https://github.com/m-labs/misoc.git"; submodules = true; flake = false; }; inputs.src-misoc = { type = "git"; url = "https://github.com/m-labs/misoc.git"; submodules = true; flake = false; };
outputs = { self, nixpkgs, mozilla-overlay, sipyco, src-pythonparser, artiq-comtools, src-migen, src-misoc }: outputs = { self, nixpkgs, rust-overlay, sipyco, src-pythonparser, artiq-comtools, src-migen, src-misoc }:
let let
pkgs = import nixpkgs { system = "x86_64-linux"; overlays = [ (import mozilla-overlay) ]; }; pkgs = import nixpkgs { system = "x86_64-linux"; overlays = [ (import rust-overlay) ]; };
pkgs-aarch64 = import nixpkgs { system = "aarch64-linux"; }; pkgs-aarch64 = import nixpkgs { system = "aarch64-linux"; };
artiqVersionMajor = 9; artiqVersionMajor = 9;
@ -24,24 +27,14 @@
artiqVersion = (builtins.toString artiqVersionMajor) + "." + (builtins.toString artiqVersionMinor) + "+" + artiqVersionId + ".beta"; artiqVersion = (builtins.toString artiqVersionMajor) + "." + (builtins.toString artiqVersionMinor) + "+" + artiqVersionId + ".beta";
artiqRev = self.sourceInfo.rev or "unknown"; artiqRev = self.sourceInfo.rev or "unknown";
rustManifest = pkgs.fetchurl { rust = pkgs.rust-bin.nightly."2021-08-31".default.override {
url = "https://static.rust-lang.org/dist/2021-09-01/channel-rust-nightly.toml"; extensions = [ "rust-src" ];
sha256 = "sha256-KYLZHfOkotnM6BZd7CU+vBA3w/VtiWxth3ngJlmA41U="; targets = [ ];
}; };
rustPlatform = pkgs.makeRustPlatform {
targets = [];
rustChannelOfTargets = _channel: _date: targets:
(pkgs.lib.rustLib.fromManifestFile rustManifest {
inherit (pkgs) stdenv lib fetchurl patchelf;
}).rust.override {
inherit targets;
extensions = ["rust-src"];
};
rust = rustChannelOfTargets "nightly" null targets;
rustPlatform = pkgs.recurseIntoAttrs (pkgs.makeRustPlatform {
rustc = rust; rustc = rust;
cargo = rust; cargo = rust;
}); };
vivadoDeps = pkgs: with pkgs; let vivadoDeps = pkgs: with pkgs; let
# Apply patch from https://github.com/nix-community/nix-environments/pull/54 # Apply patch from https://github.com/nix-community/nix-environments/pull/54
@ -252,7 +245,7 @@
vivado vivado
rustPlatform.cargoSetupHook rustPlatform.cargoSetupHook
]; ];
buildPhase = buildPhase =
'' ''
ARTIQ_PATH=`python -c "import artiq; print(artiq.__path__[0])"` ARTIQ_PATH=`python -c "import artiq; print(artiq.__path__[0])"`
ln -s $ARTIQ_PATH/firmware/Cargo.lock . ln -s $ARTIQ_PATH/firmware/Cargo.lock .