forked from M-Labs/artiq-extrapkg
Compare commits
59 Commits
|
@ -2,6 +2,6 @@ ARTIQ extrapkg
|
||||||
==============
|
==============
|
||||||
|
|
||||||
This contains additional packages and infrastructure for ARTIQ:
|
This contains additional packages and infrastructure for ARTIQ:
|
||||||
* Conda packages
|
* MSYS2 and Conda packages
|
||||||
* Controllers/NDSPs
|
* Controllers/NDSPs
|
||||||
* Windows tests
|
* Windows tests
|
||||||
|
|
206
flake.lock
206
flake.lock
|
@ -1,6 +1,61 @@
|
||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"artiq": {
|
"artiq-comtools": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": [
|
||||||
|
"artiqpkgs",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"sipyco": [
|
||||||
|
"artiqpkgs",
|
||||||
|
"sipyco"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1693473687,
|
||||||
|
"narHash": "sha256-BdLddCWbvoEyakcGwhph9b5dIU1iA0hCQV7KYgU8nos=",
|
||||||
|
"owner": "m-labs",
|
||||||
|
"repo": "artiq-comtools",
|
||||||
|
"rev": "f522ef3dbc65961f17b2d3d41e927409d970fd79",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "m-labs",
|
||||||
|
"repo": "artiq-comtools",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"artiq-stubs": {
|
||||||
|
"inputs": {
|
||||||
|
"artiqpkgs": [
|
||||||
|
"daxpkgs",
|
||||||
|
"artiqpkgs"
|
||||||
|
],
|
||||||
|
"flake8-artiq": [
|
||||||
|
"daxpkgs",
|
||||||
|
"flake8-artiq"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"daxpkgs",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1670448913,
|
||||||
|
"narHash": "sha256-ZCg7Rd5qpYl5Y8FEtLObnFRUiSJVZuSBdpa57SMVoNE=",
|
||||||
|
"ref": "refs/heads/master",
|
||||||
|
"rev": "d592ccd1db4d9a97331d5397560d25b59c7820bb",
|
||||||
|
"revCount": 26,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://gitlab.com/duke-artiq/artiq-stubs.git"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://gitlab.com/duke-artiq/artiq-stubs.git"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"artiqpkgs": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"artiq-comtools": "artiq-comtools",
|
"artiq-comtools": "artiq-comtools",
|
||||||
"mozilla-overlay": "mozilla-overlay",
|
"mozilla-overlay": "mozilla-overlay",
|
||||||
|
@ -11,53 +66,60 @@
|
||||||
"src-pythonparser": "src-pythonparser"
|
"src-pythonparser": "src-pythonparser"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1688960188,
|
"lastModified": 1697528226,
|
||||||
"narHash": "sha256-Gjb79sBLqqLOdtfkfHFFDVKex3PvoxSmkBgMOsgMgHE=",
|
"narHash": "sha256-BweM2hd8O255qbLJCdM841CtsXXYqk0r90riim1KgS8=",
|
||||||
"ref": "release-7",
|
"ref": "refs/heads/master",
|
||||||
"rev": "6fbfa12e88786ff65c31da0298d8f501dbb0bab0",
|
"rev": "6705c9fbfb05d1be464a99bd1cc9e6a4e0f4724f",
|
||||||
"revCount": 8176,
|
"revCount": 8572,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/m-labs/artiq.git"
|
"url": "https://github.com/m-labs/artiq.git"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"ref": "release-7",
|
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/m-labs/artiq.git"
|
"url": "https://github.com/m-labs/artiq.git"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"artiq-comtools": {
|
"daxpkgs": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils",
|
"artiq-stubs": "artiq-stubs",
|
||||||
|
"artiqpkgs": [
|
||||||
|
"artiqpkgs"
|
||||||
|
],
|
||||||
|
"flake8-artiq": "flake8-artiq",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"artiq",
|
"artiqpkgs",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"sipyco": [
|
"sipyco": [
|
||||||
"artiq",
|
"artiqpkgs",
|
||||||
"sipyco"
|
"sipyco"
|
||||||
]
|
],
|
||||||
|
"trap-dac-utils": "trap-dac-utils"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1664405593,
|
"lastModified": 1697496471,
|
||||||
"narHash": "sha256-yP441NerlLGig7n+9xHsx8yCtZ+Ggd0VqfBSzc20E04=",
|
"narHash": "sha256-8PoxSCQpXTbnqKN7BijWrPfgFrInND/mrVAu6HRMfvg=",
|
||||||
"owner": "m-labs",
|
"ref": "refs/heads/master",
|
||||||
"repo": "artiq-comtools",
|
"rev": "921e2904f925777cb453f3be5b926d5648515320",
|
||||||
"rev": "15ddac62813ef623a076ccf982b3bc63d314e651",
|
"revCount": 1221,
|
||||||
"type": "github"
|
"type": "git",
|
||||||
|
"url": "https://gitlab.com/duke-artiq/dax.git"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "m-labs",
|
"type": "git",
|
||||||
"repo": "artiq-comtools",
|
"url": "https://gitlab.com/duke-artiq/dax.git"
|
||||||
"type": "github"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils": {
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1659877975,
|
"lastModified": 1692799911,
|
||||||
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
|
"narHash": "sha256-3eihraek4qL744EvQXsK1Ha6C3CR7nnT8X2qWap4RNk=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
|
"rev": "f9e7cf818399d17d347f847525c5a5a8032e4e44",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -66,14 +128,35 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake8-artiq": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"daxpkgs",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681932181,
|
||||||
|
"narHash": "sha256-DffFqCG/xWb7KGuKYCUH8ItnaqgjcSpVy3g2bI/bIgs=",
|
||||||
|
"ref": "refs/heads/master",
|
||||||
|
"rev": "8247f653ffc643ad8db00fd7fb52663aff4a48ef",
|
||||||
|
"revCount": 97,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://gitlab.com/duke-artiq/flake8-artiq.git"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://gitlab.com/duke-artiq/flake8-artiq.git"
|
||||||
|
}
|
||||||
|
},
|
||||||
"mozilla-overlay": {
|
"mozilla-overlay": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1687771476,
|
"lastModified": 1695805681,
|
||||||
"narHash": "sha256-TSpqz6qYVRoqkEdOCawEQ4/cWt/4pracmvw17HK1tgE=",
|
"narHash": "sha256-1ElPLD8eFfnuIk0G52HGGpRtQZ4QPCjChRlEOfkZ5ro=",
|
||||||
"owner": "mozilla",
|
"owner": "mozilla",
|
||||||
"repo": "nixpkgs-mozilla",
|
"repo": "nixpkgs-mozilla",
|
||||||
"rev": "3a44b8783514e7d6db4b63df96071b6c2b014b07",
|
"rev": "6eabade97bc28d707a8b9d82ad13ef143836736e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -84,38 +167,39 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1685573264,
|
"lastModified": 1697226376,
|
||||||
"narHash": "sha256-Zffu01pONhs/pqH07cjlF10NnMDLok8ix5Uk4rhOnZQ=",
|
"narHash": "sha256-cumLLb1QOUtWieUnLGqo+ylNt3+fU8Lcv5Zl+tYbRUE=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "380be19fbd2d9079f677978361792cb25e8a3635",
|
"rev": "898cb2064b6e98b8c5499f37e81adbdf2925f7c5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-22.05",
|
"ref": "nixos-23.05",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"artiq": "artiq"
|
"artiqpkgs": "artiqpkgs",
|
||||||
|
"daxpkgs": "daxpkgs"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sipyco": {
|
"sipyco": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"artiq",
|
"artiqpkgs",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1685540542,
|
"lastModified": 1697528004,
|
||||||
"narHash": "sha256-wQJwL3xc6QVQbiJrt71/Z9tp4Eq1yqdGddcEiv7sPCw=",
|
"narHash": "sha256-FFa2MbhAJEjwY58uOs0swvgymfjubHyWba6Q0X6CbB0=",
|
||||||
"owner": "m-labs",
|
"owner": "m-labs",
|
||||||
"repo": "sipyco",
|
"repo": "sipyco",
|
||||||
"rev": "f5bf2ba875340a31a135aea14ad184575ca800ac",
|
"rev": "c0a7ed350ccfb85474217057fc47b3f258ca8d99",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -127,11 +211,11 @@
|
||||||
"src-migen": {
|
"src-migen": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1674045327,
|
"lastModified": 1697013661,
|
||||||
"narHash": "sha256-oYdeY0MbTReKbAwmSznnqw0wNawdInJoFJVWW3tesFA=",
|
"narHash": "sha256-qNCqgWyE4vTDmyjE2XMJqW1djuBxT25A36AzQfZqluU=",
|
||||||
"owner": "m-labs",
|
"owner": "m-labs",
|
||||||
"repo": "migen",
|
"repo": "migen",
|
||||||
"rev": "ccaee68e14d3636e1d8fb2e0864dd89b1b1f7384",
|
"rev": "aadc19df93b7aa9ca761aaebbb98a11e0cf2d7c7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -143,11 +227,11 @@
|
||||||
"src-misoc": {
|
"src-misoc": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1685415268,
|
"lastModified": 1693709836,
|
||||||
"narHash": "sha256-g4+yeSV+HtWjcllM5wk4vNBUVCXtDOzUSKhxXPT7Fyc=",
|
"narHash": "sha256-YiCk05RYLzZu1CYkQ2r7XtjwVEqkUGTQn388uOls9tI=",
|
||||||
"ref": "refs/heads/master",
|
"ref": "refs/heads/master",
|
||||||
"rev": "6d48ce77b6746d3226a682790fbc95b90340986e",
|
"rev": "58dc4ee60d165ce9145cf3d904241fc154b6407f",
|
||||||
"revCount": 2440,
|
"revCount": 2448,
|
||||||
"submodules": true,
|
"submodules": true,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/m-labs/misoc.git"
|
"url": "https://github.com/m-labs/misoc.git"
|
||||||
|
@ -173,6 +257,42 @@
|
||||||
"repo": "pythonparser",
|
"repo": "pythonparser",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"trap-dac-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"daxpkgs",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1683582901,
|
||||||
|
"narHash": "sha256-+5k6RVNlQf10XieTH6Viwy7jKMbiMaxB9lYbZIwnvA0=",
|
||||||
|
"ref": "refs/heads/master",
|
||||||
|
"rev": "e87064de6edc49237e09968fbd004d08e877b4a5",
|
||||||
|
"revCount": 283,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://gitlab.com/duke-artiq/trap-dac-utils.git"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://gitlab.com/duke-artiq/trap-dac-utils.git"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
|
283
flake.nix
283
flake.nix
|
@ -1,21 +1,32 @@
|
||||||
{
|
{
|
||||||
description = "Additional packages for ARTIQ";
|
description = "Additional packages for ARTIQ";
|
||||||
|
|
||||||
inputs.artiq.url = git+https://github.com/m-labs/artiq.git?ref=release-7;
|
inputs.artiqpkgs.url = git+https://github.com/m-labs/artiq.git;
|
||||||
|
|
||||||
outputs = { self, artiq }:
|
inputs.daxpkgs = {
|
||||||
|
url = git+https://gitlab.com/duke-artiq/dax.git;
|
||||||
|
inputs = {
|
||||||
|
artiqpkgs.follows = "artiqpkgs";
|
||||||
|
nixpkgs.follows = "artiqpkgs/nixpkgs";
|
||||||
|
sipyco.follows = "artiqpkgs/sipyco";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = { self, artiqpkgs, daxpkgs }:
|
||||||
let
|
let
|
||||||
pkgs = import artiq.inputs.nixpkgs { system = "x86_64-linux"; };
|
pkgs = import artiqpkgs.inputs.nixpkgs { system = "x86_64-linux"; };
|
||||||
|
msys2 = import ./msys2 { inherit pkgs; };
|
||||||
|
|
||||||
condaDeps = with pkgs; [ zlib xorg.libSM xorg.libICE xorg.libX11 xorg.libXau xorg.libXi xorg.libXrender libselinux libGL ];
|
condaDeps = with pkgs; [ zlib xorg.libSM xorg.libICE xorg.libX11 xorg.libXau xorg.libXi xorg.libXrender libselinux libGL ];
|
||||||
# Use the full Anaconda distribution, which already contains conda-build and its many dependencies.
|
# Use the full Anaconda distribution, which already contains conda-build and its many dependencies.
|
||||||
condaInstaller = pkgs.fetchurl {
|
condaInstaller = pkgs.fetchurl {
|
||||||
url = "https://repo.anaconda.com/archive/Anaconda3-2021.11-Linux-x86_64.sh";
|
url = "https://repo.anaconda.com/archive/Anaconda3-2023.07-2-Linux-x86_64.sh";
|
||||||
sha256 = "sha256-/t+eNAA5VX97XoqKhq/6nSmfXpggFEvXuSrp9+4IrGA=";
|
sha256 = "sha256-WJ+zT+c7wwM3mrvOulDzExJU6Fzk582Bm6Qna6KcrRY=";
|
||||||
};
|
};
|
||||||
condaInstallerEnv = pkgs.buildFHSUserEnv {
|
condaInstallerEnv = pkgs.buildFHSEnv {
|
||||||
name = "conda-installer-env";
|
name = "conda-installer-env";
|
||||||
targetPkgs = pkgs: condaDeps;
|
targetPkgs = pkgs: condaDeps;
|
||||||
|
extraBwrapArgs = [ "--bind" "/nix" "/nix" ];
|
||||||
};
|
};
|
||||||
condaInstalled = pkgs.stdenvNoCC.mkDerivation {
|
condaInstalled = pkgs.stdenvNoCC.mkDerivation {
|
||||||
name = "conda-installed";
|
name = "conda-installed";
|
||||||
|
@ -32,13 +43,14 @@
|
||||||
installPhase =
|
installPhase =
|
||||||
''
|
''
|
||||||
conda-installer-env -c "./conda-installer.sh -p $out -b"
|
conda-installer-env -c "./conda-installer.sh -p $out -b"
|
||||||
substituteInPlace $out/lib/python3.9/site-packages/conda/gateways/disk/__init__.py \
|
substituteInPlace $out/lib/python3.11/site-packages/conda/gateways/disk/__init__.py \
|
||||||
--replace "os.chmod(path, 0o2775)" "pass"
|
--replace "os.chmod(path, 0o2775)" "pass"
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
condaBuilderEnv = pkgs.buildFHSUserEnv {
|
condaBuilderEnv = pkgs.buildFHSEnv {
|
||||||
name = "conda-builder-env";
|
name = "conda-builder-env";
|
||||||
targetPkgs = pkgs: condaDeps ++ [ condaInstalled ];
|
targetPkgs = pkgs: condaDeps ++ [ condaInstalled ];
|
||||||
|
extraBwrapArgs = [ "--bind" "/nix" "/nix" ];
|
||||||
};
|
};
|
||||||
makeCondaRecipe = (constituent:
|
makeCondaRecipe = (constituent:
|
||||||
''
|
''
|
||||||
|
@ -112,8 +124,11 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
in rec {
|
in rec {
|
||||||
|
inherit pkgs;
|
||||||
inherit makeCondaChannel;
|
inherit makeCondaChannel;
|
||||||
|
inherit (msys2) makeMsys2Package makeMsys2Repos;
|
||||||
packages.x86_64-linux = rec {
|
packages.x86_64-linux = rec {
|
||||||
|
inherit (artiqpkgs.packages.x86_64-linux) artiq openocd-bscanspi;
|
||||||
korad_ka3005p = pkgs.python3Packages.buildPythonPackage {
|
korad_ka3005p = pkgs.python3Packages.buildPythonPackage {
|
||||||
pname = "korad_ka3005p";
|
pname = "korad_ka3005p";
|
||||||
version = "1.1";
|
version = "1.1";
|
||||||
|
@ -123,7 +138,7 @@
|
||||||
rev = "a1898409cb188b388ed1cf84e76ca69e9c8a74eb";
|
rev = "a1898409cb188b388ed1cf84e76ca69e9c8a74eb";
|
||||||
sha256 = "0h20qss70nssqiagc2fx75mravq1pji7rizhag3nq8xrcz2w20nc";
|
sha256 = "0h20qss70nssqiagc2fx75mravq1pji7rizhag3nq8xrcz2w20nc";
|
||||||
};
|
};
|
||||||
propagatedBuildInputs = [ artiq.inputs.sipyco.packages.x86_64-linux.sipyco artiq.packages.x86_64-linux.asyncserial ];
|
propagatedBuildInputs = [ artiqpkgs.inputs.sipyco.packages.x86_64-linux.sipyco artiqpkgs.packages.x86_64-linux.asyncserial ];
|
||||||
};
|
};
|
||||||
novatech409b = pkgs.python3Packages.buildPythonPackage {
|
novatech409b = pkgs.python3Packages.buildPythonPackage {
|
||||||
pname = "novatech409b";
|
pname = "novatech409b";
|
||||||
|
@ -134,7 +149,7 @@
|
||||||
rev = "3bd559753972f07d881df66b7c6819afc5436053";
|
rev = "3bd559753972f07d881df66b7c6819afc5436053";
|
||||||
sha256 = "1g9qv6fn5h7d393mb1v7w8sg6fimqg34blqdj22qnayb4agw1wyg";
|
sha256 = "1g9qv6fn5h7d393mb1v7w8sg6fimqg34blqdj22qnayb4agw1wyg";
|
||||||
};
|
};
|
||||||
propagatedBuildInputs = [ artiq.inputs.sipyco.packages.x86_64-linux.sipyco artiq.packages.x86_64-linux.asyncserial ];
|
propagatedBuildInputs = [ artiqpkgs.inputs.sipyco.packages.x86_64-linux.sipyco artiqpkgs.packages.x86_64-linux.asyncserial ];
|
||||||
};
|
};
|
||||||
lda = pkgs.python3Packages.buildPythonPackage {
|
lda = pkgs.python3Packages.buildPythonPackage {
|
||||||
name = "lda";
|
name = "lda";
|
||||||
|
@ -145,7 +160,7 @@
|
||||||
rev = "2d8af1e9080a4c1ab4a32370b3f926bfba8c00b2";
|
rev = "2d8af1e9080a4c1ab4a32370b3f926bfba8c00b2";
|
||||||
sha256 = "sha256-bImAsQiGmMauasltUrlkCRU3+p40d41DTlJvOjCfrP0=";
|
sha256 = "sha256-bImAsQiGmMauasltUrlkCRU3+p40d41DTlJvOjCfrP0=";
|
||||||
};
|
};
|
||||||
propagatedBuildInputs = [ artiq.inputs.sipyco.packages.x86_64-linux.sipyco ];
|
propagatedBuildInputs = [ artiqpkgs.inputs.sipyco.packages.x86_64-linux.sipyco ];
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
substituteInPlace lda/hidapi.py \
|
substituteInPlace lda/hidapi.py \
|
||||||
--replace "hidapi_lib_path = None"\
|
--replace "hidapi_lib_path = None"\
|
||||||
|
@ -161,7 +176,7 @@
|
||||||
rev = "0cb0c15fc7e660a150e193245f5338d48f8b97db";
|
rev = "0cb0c15fc7e660a150e193245f5338d48f8b97db";
|
||||||
sha256 = "1n4zmjcj2kpd97217y602pq6x8s80w39fgyi6qjmal92aicqdg07";
|
sha256 = "1n4zmjcj2kpd97217y602pq6x8s80w39fgyi6qjmal92aicqdg07";
|
||||||
};
|
};
|
||||||
propagatedBuildInputs = [ artiq.inputs.sipyco.packages.x86_64-linux.sipyco artiq.packages.x86_64-linux.asyncserial ];
|
propagatedBuildInputs = [ artiqpkgs.inputs.sipyco.packages.x86_64-linux.sipyco artiqpkgs.packages.x86_64-linux.asyncserial ];
|
||||||
};
|
};
|
||||||
newfocus8742 = pkgs.python3Packages.buildPythonPackage {
|
newfocus8742 = pkgs.python3Packages.buildPythonPackage {
|
||||||
pname = "newfocus8742";
|
pname = "newfocus8742";
|
||||||
|
@ -172,7 +187,7 @@
|
||||||
rev = "9f6092b724b33b934aa4d3a1d6a20c295cd1d02d";
|
rev = "9f6092b724b33b934aa4d3a1d6a20c295cd1d02d";
|
||||||
sha256 = "0qf05ghylnqf3l5vjx5dc748wi84xn6p6lb6f9r8p6f1z7z67fb8";
|
sha256 = "0qf05ghylnqf3l5vjx5dc748wi84xn6p6lb6f9r8p6f1z7z67fb8";
|
||||||
};
|
};
|
||||||
propagatedBuildInputs = [ artiq.inputs.sipyco.packages.x86_64-linux.sipyco pkgs.python3Packages.pyusb ];
|
propagatedBuildInputs = [ artiqpkgs.inputs.sipyco.packages.x86_64-linux.sipyco pkgs.python3Packages.pyusb ];
|
||||||
# no unit tests so do a simple smoke test
|
# no unit tests so do a simple smoke test
|
||||||
checkPhase = "python -m newfocus8742.aqctl_newfocus8742 -h";
|
checkPhase = "python -m newfocus8742.aqctl_newfocus8742 -h";
|
||||||
};
|
};
|
||||||
|
@ -185,7 +200,7 @@
|
||||||
rev = "68369d5d63d233827840a9a752d90454a4e03baa";
|
rev = "68369d5d63d233827840a9a752d90454a4e03baa";
|
||||||
sha256 = "0r832c0icz8v3w27ci13024bqfslj1gx6dwhjv11ksw229xdcghd";
|
sha256 = "0r832c0icz8v3w27ci13024bqfslj1gx6dwhjv11ksw229xdcghd";
|
||||||
};
|
};
|
||||||
propagatedBuildInputs = [ artiq.inputs.sipyco.packages.x86_64-linux.sipyco ];
|
propagatedBuildInputs = [ artiqpkgs.inputs.sipyco.packages.x86_64-linux.sipyco ];
|
||||||
# no unit tests without hardware so do a simple smoke test
|
# no unit tests without hardware so do a simple smoke test
|
||||||
checkPhase = "python -m hut2.aqctl_hut2 -h";
|
checkPhase = "python -m hut2.aqctl_hut2 -h";
|
||||||
};
|
};
|
||||||
|
@ -203,36 +218,13 @@
|
||||||
postFixup = ''
|
postFixup = ''
|
||||||
wrapQtApp "$out/bin/wand_gui"
|
wrapQtApp "$out/bin/wand_gui"
|
||||||
'';
|
'';
|
||||||
propagatedBuildInputs = [ artiq.packages.x86_64-linux.artiq artiq.packages.x86_64-linux.qasync ]
|
propagatedBuildInputs = [ artiqpkgs.packages.x86_64-linux.artiq artiqpkgs.packages.x86_64-linux.qasync ]
|
||||||
++ [ artiq.inputs.sipyco.packages.x86_64-linux.sipyco ]
|
++ [ artiqpkgs.inputs.sipyco.packages.x86_64-linux.sipyco ]
|
||||||
++ (with pkgs.python3Packages; [ numpy scipy influxdb pyqtgraph setuptools ]);
|
++ (with pkgs.python3Packages; [ numpy scipy influxdb pyqtgraph setuptools ]);
|
||||||
};
|
};
|
||||||
flake8-artiq = pkgs.python3Packages.buildPythonPackage {
|
flake8-artiq = daxpkgs.packages.x86_64-linux.flake8-artiq;
|
||||||
pname = "flake8-artiq";
|
dax = daxpkgs.packages.x86_64-linux.dax.overridePythonAttrs (oa: { doCheck = false; });
|
||||||
version = "0.1.0";
|
trap-dac-utils = daxpkgs.packages.x86_64-linux.trap-dac-utils;
|
||||||
src = pkgs.fetchgit {
|
|
||||||
url = "https://gitlab.com/duke-artiq/flake8-artiq.git";
|
|
||||||
rev = "1216092974140a561850905734fc22fdacdc2cde";
|
|
||||||
sha256 = "0rkab2qdwyzms6nxc44jzb5grvkkbpjwwmfv2zj96cm6cm8d9pdr";
|
|
||||||
};
|
|
||||||
propagatedBuildInputs = [ pkgs.python3Packages.flake8 ];
|
|
||||||
checkInputs = [ pkgs.python3Packages.pytestCheckHook ];
|
|
||||||
};
|
|
||||||
dax = pkgs.python3Packages.buildPythonPackage rec {
|
|
||||||
pname = "dax";
|
|
||||||
version = "6.7";
|
|
||||||
src = pkgs.fetchgit {
|
|
||||||
url = "https://gitlab.com/duke-artiq/dax.git";
|
|
||||||
rev = "v${version}";
|
|
||||||
sha256 = "0rgvqqiypqvxjzrsixn3h7dn93isqw5vc2wrmpkxhzvw9lh5ihm7";
|
|
||||||
};
|
|
||||||
VERSIONEER_OVERRIDE = version;
|
|
||||||
inherit (pkgs.python3Packages.pygit2) SSL_CERT_FILE;
|
|
||||||
doCheck = false; # tests only pass for the latest stable ARTIQ version
|
|
||||||
propagatedBuildInputs = [ artiq.packages.x86_64-linux.artiq artiq.inputs.sipyco.packages.x86_64-linux.sipyco ]
|
|
||||||
++ (with pkgs.python3Packages; [ numpy scipy pyvcd natsort pygit2 matplotlib graphviz h5py networkx sortedcontainers ]);
|
|
||||||
checkInputs = [ pkgs.python3Packages.pytestCheckHook ];
|
|
||||||
};
|
|
||||||
dax-applets = pkgs.python3Packages.buildPythonPackage rec {
|
dax-applets = pkgs.python3Packages.buildPythonPackage rec {
|
||||||
pname = "dax-applets";
|
pname = "dax-applets";
|
||||||
version = "0.0.0";
|
version = "0.0.0";
|
||||||
|
@ -241,37 +233,93 @@
|
||||||
rev = "0f0196b6941b0c44a33c85d8c02047ca65466463";
|
rev = "0f0196b6941b0c44a33c85d8c02047ca65466463";
|
||||||
sha256 = "0mx6yjvprhdnkdigwns8mg6v5daqxpgbv7mf63fa76i1iv2wvak4";
|
sha256 = "0mx6yjvprhdnkdigwns8mg6v5daqxpgbv7mf63fa76i1iv2wvak4";
|
||||||
};
|
};
|
||||||
propagatedBuildInputs = [ artiq.packages.x86_64-linux.artiq ]
|
propagatedBuildInputs = [ artiqpkgs.packages.x86_64-linux.artiq ]
|
||||||
++ (with pkgs.python3Packages; [ numpy pyqt5 pyqtgraph ]);
|
++ (with pkgs.python3Packages; [ numpy pyqt5 pyqtgraph ]);
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
};
|
};
|
||||||
|
linien-client = pkgs.python3Packages.buildPythonPackage rec {
|
||||||
|
pname = "linien-client";
|
||||||
|
version = "0.5.3";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "linien-org";
|
||||||
|
repo = "linien";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "sha256-VOT/mw4o9dbkrtMxL0Ar5UcnxsZ7CYcoTj+VVrWADR4=";
|
||||||
|
};
|
||||||
|
propagatedBuildInputs = (with pkgs.python3Packages; [ numpy paramiko plumbum rpyc scipy ]);
|
||||||
|
doCheck = false; # tests ask for pyqt, migen, etc.
|
||||||
|
patchPhase =
|
||||||
|
''
|
||||||
|
echo ${version} > linien/VERSION
|
||||||
|
substituteInPlace setup_client.py --replace "\"uuid>=1.30\"," ""
|
||||||
|
substituteInPlace setup_client.py --replace "rpyc>=4.0,<5.0" "rpyc>=4.0"
|
||||||
|
ln -s setup_client.py setup.py
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
linien-gui-internal = pkgs.python3Packages.buildPythonPackage rec {
|
||||||
|
pname = "linien-gui-internal";
|
||||||
|
inherit (linien-client) version src;
|
||||||
|
propagatedBuildInputs = (with pkgs.python3Packages; [ click numpy paramiko plumbum pyqtgraph pyqt5 rpyc scipy superqt appdirs ]) ++ [ linien-client ];
|
||||||
|
doCheck = false;
|
||||||
|
patchPhase =
|
||||||
|
''
|
||||||
|
echo ${version} > linien/VERSION
|
||||||
|
substituteInPlace setup_gui.py --replace "rpyc>=4.0,<5.0" "rpyc>=4.0"
|
||||||
|
ln -s setup_gui.py setup.py
|
||||||
|
'';
|
||||||
|
postInstall =
|
||||||
|
''
|
||||||
|
# conflicts with linien-client
|
||||||
|
rm -rf $out/lib/python3.10/site-packages/linien/__pycache__
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
# replace broken (as usual) setuptools launcher
|
||||||
|
linien-gui = pkgs.stdenvNoCC.mkDerivation {
|
||||||
|
name = "linien-gui";
|
||||||
|
phases = [ "installPhase" "fixupPhase" ];
|
||||||
|
installPhase =
|
||||||
|
''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cat > $out/bin/linien << EOF
|
||||||
|
#!${pkgs.python3.withPackages(ps: [ linien-gui-internal ])}/bin/python
|
||||||
|
import linien.gui.app
|
||||||
|
linien.gui.app.run_application()
|
||||||
|
EOF
|
||||||
|
chmod 755 $out/bin/linien
|
||||||
|
'';
|
||||||
|
nativeBuildInputs = [ pkgs.qt5.wrapQtAppsHook ];
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
postFixup = ''
|
||||||
|
wrapQtApp "$out/bin/linien"
|
||||||
|
'';
|
||||||
|
};
|
||||||
conda-channel = makeCondaChannel [
|
conda-channel = makeCondaChannel [
|
||||||
{
|
{
|
||||||
name = "sipyco";
|
name = "sipyco";
|
||||||
version = artiq.inputs.sipyco.packages.x86_64-linux.sipyco.version;
|
version = artiqpkgs.inputs.sipyco.packages.x86_64-linux.sipyco.version;
|
||||||
src = artiq.inputs.sipyco.packages.x86_64-linux.sipyco.src;
|
src = artiqpkgs.inputs.sipyco.packages.x86_64-linux.sipyco.src;
|
||||||
dependencies = [ "numpy" "pybase64" ];
|
dependencies = [ "numpy" "pybase64" ];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "pythonparser";
|
name = "pythonparser";
|
||||||
version = artiq.packages.x86_64-linux.pythonparser.version;
|
version = artiqpkgs.packages.x86_64-linux.pythonparser.version;
|
||||||
src = artiq.packages.x86_64-linux.pythonparser.src;
|
src = artiqpkgs.packages.x86_64-linux.pythonparser.src;
|
||||||
dependencies = [ "regex" ];
|
dependencies = [ "regex" ];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "artiq-comtools";
|
name = "artiq-comtools";
|
||||||
version = artiq.inputs.artiq-comtools.packages.x86_64-linux.artiq-comtools.version;
|
version = artiqpkgs.inputs.artiq-comtools.packages.x86_64-linux.artiq-comtools.version;
|
||||||
src = artiq.inputs.artiq-comtools.packages.x86_64-linux.artiq-comtools.src;
|
src = artiqpkgs.inputs.artiq-comtools.packages.x86_64-linux.artiq-comtools.src;
|
||||||
dependencies = [ "numpy" "aiohttp" "sipyco" ];
|
dependencies = [ "numpy" "aiohttp" "sipyco" ];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "artiq";
|
name = "artiq";
|
||||||
version = artiq.packages.x86_64-linux.artiq.version;
|
version = artiqpkgs.packages.x86_64-linux.artiq.version;
|
||||||
src = artiq.packages.x86_64-linux.artiq.src;
|
src = artiqpkgs.packages.x86_64-linux.artiq.src;
|
||||||
preSetup =
|
preSetup =
|
||||||
''
|
''
|
||||||
export VERSIONEER_OVERRIDE=${artiq.packages.x86_64-linux.artiq.version}
|
export VERSIONEER_OVERRIDE=${artiqpkgs.packages.x86_64-linux.artiq.version}
|
||||||
export VERSIONEER_REV=${artiq.sourceInfo.rev}
|
export VERSIONEER_REV=${artiqpkgs.sourceInfo.rev}
|
||||||
'';
|
'';
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"pythonparser"
|
"pythonparser"
|
||||||
|
@ -286,10 +334,11 @@
|
||||||
"pygit2"
|
"pygit2"
|
||||||
"python-levenshtein"
|
"python-levenshtein"
|
||||||
"sipyco"
|
"sipyco"
|
||||||
"llvmlite <0.40.0"
|
"llvmlite"
|
||||||
"llvm-tools"
|
"llvm-tools"
|
||||||
"lld"
|
"lld"
|
||||||
"tqdm"
|
"tqdm"
|
||||||
|
"python-lmdb"
|
||||||
"artiq-comtools"
|
"artiq-comtools"
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -342,11 +391,17 @@
|
||||||
src = flake8-artiq.src;
|
src = flake8-artiq.src;
|
||||||
dependencies = [ "flake8" ];
|
dependencies = [ "flake8" ];
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
name = "trap-dac-utils";
|
||||||
|
version = trap-dac-utils.version;
|
||||||
|
src = trap-dac-utils.src;
|
||||||
|
dependencies = trap-dac-utils.condaDependencies;
|
||||||
|
}
|
||||||
{
|
{
|
||||||
name = "dax";
|
name = "dax";
|
||||||
version = dax.version;
|
version = dax.version;
|
||||||
src = dax.src;
|
src = dax.src;
|
||||||
dependencies = [ "python>=3.7" "artiq" "sipyco" "numpy" "scipy" "pyvcd" "natsort" "pygit2" "matplotlib" "python-graphviz" "h5py" "networkx" "sortedcontainers" ];
|
dependencies = dax.condaDependencies;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "dax-applets";
|
name = "dax-applets";
|
||||||
|
@ -355,8 +410,126 @@
|
||||||
dependencies = [ "python>=3.5" "artiq" "numpy" "pyqt" "pyqtgraph" ];
|
dependencies = [ "python>=3.5" "artiq" "numpy" "pyqt" "pyqtgraph" ];
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
msys2-pythonparser = msys2.makeMsys2Package rec {
|
||||||
|
name = "python-pythonparser";
|
||||||
|
version = artiqpkgs.packages.x86_64-linux.pythonparser.version;
|
||||||
|
src = artiqpkgs.packages.x86_64-linux.pythonparser.src;
|
||||||
|
depends = [ "mingw-w64-x86_64-python-regex" ];
|
||||||
|
};
|
||||||
|
msys2-sipyco = msys2.makeMsys2Package {
|
||||||
|
name = "python-sipyco";
|
||||||
|
src = artiqpkgs.inputs.sipyco.packages.x86_64-linux.sipyco.src;
|
||||||
|
inherit (artiqpkgs.inputs.sipyco.packages.x86_64-linux.sipyco) version;
|
||||||
|
depends = [ "mingw-w64-x86_64-python" "mingw-w64-x86_64-python-numpy" "mingw-w64-x86_64-python-pybase64" ];
|
||||||
|
};
|
||||||
|
msys2-artiq-comtools = msys2.makeMsys2Package {
|
||||||
|
name = "artiq-comtools";
|
||||||
|
src = artiqpkgs.inputs.artiq-comtools.packages.x86_64-linux.artiq-comtools.src;
|
||||||
|
inherit (artiqpkgs.inputs.artiq-comtools.packages.x86_64-linux.artiq-comtools) version;
|
||||||
|
depends = [ "mingw-w64-x86_64-python" "mingw-w64-x86_64-python-sipyco" "mingw-w64-x86_64-python-numpy" "mingw-w64-x86_64-python-aiohttp" ];
|
||||||
|
};
|
||||||
|
msys2-artiq = msys2.makeMsys2Package {
|
||||||
|
name = "artiq";
|
||||||
|
inherit (artiqpkgs.packages.x86_64-linux.artiq) version src;
|
||||||
|
prepare =
|
||||||
|
''
|
||||||
|
export VERSIONEER_OVERRIDE=${artiqpkgs.packages.x86_64-linux.artiq.version}
|
||||||
|
export VERSIONEER_REV=${artiqpkgs.sourceInfo.rev}
|
||||||
|
'';
|
||||||
|
depends = [
|
||||||
|
"mingw-w64-x86_64-python"
|
||||||
|
"mingw-w64-x86_64-python-h5py"
|
||||||
|
"mingw-w64-x86_64-python-pyqt5"
|
||||||
|
"mingw-w64-x86_64-qt5-svg"
|
||||||
|
"mingw-w64-x86_64-python-qasync"
|
||||||
|
"mingw-w64-x86_64-python-pyqtgraph"
|
||||||
|
"mingw-w64-x86_64-python-numpy"
|
||||||
|
"mingw-w64-x86_64-python-scipy"
|
||||||
|
"mingw-w64-x86_64-python-dateutil"
|
||||||
|
"mingw-w64-x86_64-python-prettytable"
|
||||||
|
"mingw-w64-x86_64-python-tqdm"
|
||||||
|
"mingw-w64-x86_64-python-pygit2"
|
||||||
|
"mingw-w64-x86_64-python-sipyco"
|
||||||
|
"mingw-w64-x86_64-python-llvmlite"
|
||||||
|
"mingw-w64-x86_64-python-pythonparser"
|
||||||
|
"mingw-w64-x86_64-python-levenshtein"
|
||||||
|
"mingw-w64-x86_64-python-lmdb"
|
||||||
|
"mingw-w64-x86_64-lld"
|
||||||
|
"mingw-w64-x86_64-artiq-comtools"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
msys2-asyncserial = msys2.makeMsys2Package {
|
||||||
|
name = "python-asyncserial";
|
||||||
|
version = artiqpkgs.packages.x86_64-linux.asyncserial.version;
|
||||||
|
src = artiqpkgs.packages.x86_64-linux.asyncserial.src;
|
||||||
|
depends = [ "mingw-w64-x86_64-python" ];
|
||||||
|
};
|
||||||
|
msys2-korad_ka3005p = msys2.makeMsys2Package {
|
||||||
|
name = "korad_ka3005p";
|
||||||
|
version = korad_ka3005p.version;
|
||||||
|
src = korad_ka3005p.src;
|
||||||
|
depends = [ "mingw-w64-x86_64-python-sipyco" "mingw-w64-x86_64-python-asyncserial" ];
|
||||||
|
};
|
||||||
|
msys2-novatech409b = msys2.makeMsys2Package {
|
||||||
|
name = "novatech409b";
|
||||||
|
version = novatech409b.version;
|
||||||
|
src = novatech409b.src;
|
||||||
|
depends = [ "mingw-w64-x86_64-python-sipyco" "mingw-w64-x86_64-python-asyncserial" ];
|
||||||
|
};
|
||||||
|
msys2-lda = msys2.makeMsys2Package {
|
||||||
|
name = "lda";
|
||||||
|
version = lda.version;
|
||||||
|
src = lda.src;
|
||||||
|
depends = [ "mingw-w64-x86_64-python-sipyco" ];
|
||||||
|
};
|
||||||
|
msys2-thorlabs_tcube = msys2.makeMsys2Package {
|
||||||
|
name = "thorlabs_tcube";
|
||||||
|
version = thorlabs_tcube.version;
|
||||||
|
src = thorlabs_tcube.src;
|
||||||
|
depends = [ "mingw-w64-x86_64-python-sipyco" "mingw-w64-x86_64-python-asyncserial" ];
|
||||||
|
};
|
||||||
|
msys2-newfocus8742 = msys2.makeMsys2Package {
|
||||||
|
name = "newfocus8742";
|
||||||
|
version = newfocus8742.version;
|
||||||
|
src = newfocus8742.src;
|
||||||
|
depends = [ "mingw-w64-x86_64-python-sipyco" ];
|
||||||
|
};
|
||||||
|
msys2-hut2 = msys2.makeMsys2Package {
|
||||||
|
name = "hut2";
|
||||||
|
version = hut2.version;
|
||||||
|
src = hut2.src;
|
||||||
|
depends = [ "mingw-w64-x86_64-python-sipyco" ];
|
||||||
|
};
|
||||||
|
msys2-flake8-artiq = msys2.makeMsys2Package {
|
||||||
|
name = "flake8-artiq";
|
||||||
|
version = flake8-artiq.version;
|
||||||
|
src = flake8-artiq.src;
|
||||||
|
depends = [ "mingw-w64-x86_64-python-flake8" ];
|
||||||
|
};
|
||||||
|
msys2-repos = msys2.makeMsys2Repos [
|
||||||
|
msys2-pythonparser msys2-sipyco msys2-artiq-comtools msys2-artiq
|
||||||
|
msys2-asyncserial
|
||||||
|
msys2-korad_ka3005p
|
||||||
|
msys2-novatech409b
|
||||||
|
msys2-lda
|
||||||
|
msys2-thorlabs_tcube
|
||||||
|
msys2-newfocus8742
|
||||||
|
msys2-hut2
|
||||||
|
msys2-flake8-artiq
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
hydraJobs = packages.x86_64-linux;
|
hydraJobs = packages.x86_64-linux;
|
||||||
|
|
||||||
|
devShells.x86_64-linux.msys2 = pkgs.mkShell {
|
||||||
|
name = "dev-shell-msys2";
|
||||||
|
buildInputs = with pkgs; [
|
||||||
|
curl
|
||||||
|
pacman
|
||||||
|
fakeroot
|
||||||
|
msys2.wine-msys2
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
arch=("any")
|
||||||
|
mingw_arch=("mingw64")
|
||||||
|
pkgver=${DRV_VERSION}
|
||||||
|
url="https://m-labs.hk"
|
||||||
|
source=("source.tar")
|
||||||
|
sha256sums=("SKIP")
|
||||||
|
|
||||||
|
build() {
|
||||||
|
mkdir mingw64
|
||||||
|
export PYTHONPATH=`pwd`/mingw64/lib/python3.11/site-packages
|
||||||
|
chmod +w -R source
|
||||||
|
cd source
|
||||||
|
wine-msys2-build python setup.py install --single-version-externally-managed --prefix=../mingw64 --record=setuptools-sucks.txt
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
# setuptools creates this file if it doesn't already exist, which causes conflicts between pacman packages
|
||||||
|
# see: https://corte.si/posts/code/setuptoolssucks/
|
||||||
|
rm -f mingw64/lib/python3.11/site-packages/easy-install.pth
|
||||||
|
# patch broken shebangs (Z:/nix/store/...)
|
||||||
|
for entrypoint in mingw64/bin/*-script.py; do
|
||||||
|
[ -f "$entrypoint" ] || continue
|
||||||
|
sed -i "1s|#!.*|#!python|" $entrypoint
|
||||||
|
done
|
||||||
|
for entrypoint in mingw64/bin/*-script.pyw; do
|
||||||
|
[ -f "$entrypoint" ] || continue
|
||||||
|
sed -i "1s|#!.*|#!pythonw|" $entrypoint
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cp -R mingw64 ${pkgdir}
|
||||||
|
}
|
|
@ -0,0 +1,83 @@
|
||||||
|
{ pkgs }:
|
||||||
|
let
|
||||||
|
msys2-env = pkgs.stdenvNoCC.mkDerivation rec {
|
||||||
|
name = "msys2-env";
|
||||||
|
srcs = import ./msys2_packages.nix { inherit pkgs; };
|
||||||
|
buildInputs = [ pkgs.gnutar pkgs.zstd ];
|
||||||
|
phases = [ "installPhase" ];
|
||||||
|
installPhase = (pkgs.lib.strings.concatStringsSep "\n" (["mkdir $out"] ++ (map (p: "tar xvf ${p} -C $out") srcs)));
|
||||||
|
};
|
||||||
|
silenceFontconfig = # silence flood of "Fontconfig error: Cannot load default config file: No such file: (null)"
|
||||||
|
''
|
||||||
|
export FONTCONFIG_PATH=$HOME/fonts
|
||||||
|
mkdir $FONTCONFIG_PATH
|
||||||
|
cat > $FONTCONFIG_PATH/fonts.conf << EOF
|
||||||
|
<fontconfig>
|
||||||
|
</fontconfig>
|
||||||
|
EOF
|
||||||
|
'';
|
||||||
|
wine-msys2 = pkgs.writeShellScriptBin "wine-msys2"
|
||||||
|
''
|
||||||
|
export WINEDEBUG=-all
|
||||||
|
export WINEPATH=Z:${msys2-env}/mingw64/bin
|
||||||
|
exec ${pkgs.wineWowPackages.stable}/bin/wine64 cmd
|
||||||
|
'';
|
||||||
|
wine-msys2-build = pkgs.writeShellScriptBin "wine-msys2-build"
|
||||||
|
''
|
||||||
|
export HOME=`mktemp -d`
|
||||||
|
export WINEDEBUG=-all
|
||||||
|
export WINEPATH=Z:${msys2-env}/mingw64/bin
|
||||||
|
${silenceFontconfig}
|
||||||
|
exec ${pkgs.wineWowPackages.stable}/bin/wine64 $@
|
||||||
|
'';
|
||||||
|
in {
|
||||||
|
inherit wine-msys2;
|
||||||
|
makeMsys2Package = { name, version, src, depends, prepare ? "" }: pkgs.stdenvNoCC.mkDerivation {
|
||||||
|
pname = "${name}-msys2-pkg";
|
||||||
|
inherit version;
|
||||||
|
nativeBuildInputs = [
|
||||||
|
pkgs.pacman pkgs.fakeroot pkgs.libarchive pkgs.zstd pkgs.file
|
||||||
|
wine-msys2-build
|
||||||
|
];
|
||||||
|
inherit src;
|
||||||
|
phases = [ "buildPhase" "installPhase" ];
|
||||||
|
buildPhase =
|
||||||
|
''
|
||||||
|
export DRV_VERSION=${version}
|
||||||
|
${prepare}
|
||||||
|
cat > PKGBUILD << HEREDOC
|
||||||
|
pkgbase="mingw-w64-${name}"
|
||||||
|
pkgname="mingw-w64-x86_64-${name}"
|
||||||
|
pkgrel=1
|
||||||
|
depends=(
|
||||||
|
${pkgs.lib.concatStringsSep "\n" (map (depend: "\"${depend}\"") depends)}
|
||||||
|
)
|
||||||
|
source PKGBUILD.common
|
||||||
|
HEREDOC
|
||||||
|
ln -s ${./PKGBUILD.common} PKGBUILD.common
|
||||||
|
ln -s $src source
|
||||||
|
tar cfh source.tar source
|
||||||
|
rm source
|
||||||
|
makepkg --config ${./makepkg.conf} --nodeps
|
||||||
|
'';
|
||||||
|
installPhase =
|
||||||
|
''
|
||||||
|
mkdir $out $out/nix-support
|
||||||
|
cp *.pkg.tar.zst $out
|
||||||
|
echo file msys2 $out/*.pkg.tar.zst >> $out/nix-support/hydra-build-products
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
makeMsys2Repos = constituents: pkgs.stdenvNoCC.mkDerivation {
|
||||||
|
name = "msys2-repos";
|
||||||
|
nativeBuildInputs = [ pkgs.pacman ];
|
||||||
|
phases = [ "buildPhase" ];
|
||||||
|
buildPhase =
|
||||||
|
''
|
||||||
|
mkdir $out
|
||||||
|
cd $out
|
||||||
|
${pkgs.lib.concatStringsSep "\n"
|
||||||
|
(map (constituent: "ln -s ${constituent}/*.pkg.tar.zst .") constituents)}
|
||||||
|
repo-add artiq.db.tar.gz *.pkg.tar.zst
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
cd $(dirname $0)
|
||||||
|
MSYS2DIR=`pwd`/msys2
|
||||||
|
mkdir -p $MSYS2DIR/var/lib/pacman $MSYS2DIR/msys/etc
|
||||||
|
|
||||||
|
curl -L https://mirror.msys2.org/msys/x86_64/pacman-mirrors-20220205-1-any.pkg.tar.zst | tar xvf - -C $MSYS2DIR --zstd
|
||||||
|
curl -L https://raw.githubusercontent.com/msys2/MSYS2-packages/master/pacman/pacman.conf | sed -e "s|/etc/pacman.d|$MSYS2DIR/etc/pacman.d|g" -e "s|SigLevel = Required|SigLevel = Never|g" > $MSYS2DIR/etc/pacman.conf
|
||||||
|
|
||||||
|
fakeroot pacman --root $MSYS2DIR --config $MSYS2DIR/etc/pacman.conf -Syy
|
||||||
|
pacman --root $MSYS2DIR --config $MSYS2DIR/etc/pacman.conf --cachedir $MSYS2DIR/msys/cache -Sp mingw-w64-x86_64-cc mingw-w64-x86_64-python3.11 mingw-w64-x86_64-python-numpy mingw-w64-x86_64-python-setuptools > $MSYS2DIR/packages.txt
|
||||||
|
|
||||||
|
echo "{ pkgs } : [" > msys2_packages.nix
|
||||||
|
while read package; do
|
||||||
|
hash=$(nix-prefetch-url $package)
|
||||||
|
echo "
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = \"$package\";
|
||||||
|
sha256 = \"$hash\";
|
||||||
|
})" >> msys2_packages.nix
|
||||||
|
done < $MSYS2DIR/packages.txt
|
||||||
|
echo "]" >> msys2_packages.nix
|
|
@ -0,0 +1,2 @@
|
||||||
|
PKGEXT='.pkg.tar.zst'
|
||||||
|
SRCEXT='.src.tar.gz'
|
|
@ -0,0 +1,182 @@
|
||||||
|
{ pkgs } : [
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libwinpthread-git-11.0.0.r198.g93ca95b32-1-any.pkg.tar.zst";
|
||||||
|
sha256 = "1zv1s7jamj6m4b7l05s185cslyiclp1r5vhxv7lj16gz21n800vg";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-gcc-libs-13.2.0-2-any.pkg.tar.zst";
|
||||||
|
sha256 = "0bxdyy0w0ld437skyl6wmp9d1j2jj71s8sw7wcysgv40y72b9jxc";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-zstd-1.5.5-1-any.pkg.tar.zst";
|
||||||
|
sha256 = "19jr14l5anl1qr1lvcmdpnpgyxghf2mds2j7iiq4j99kfg7ig2s0";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-binutils-2.41-2-any.pkg.tar.zst";
|
||||||
|
sha256 = "1r2pf8sdhhs8mlyzagfl209d6xa92yqf0nzqvbd0ggapijni02ga";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-headers-git-11.0.0.r198.g93ca95b32-1-any.pkg.tar.zst";
|
||||||
|
sha256 = "19sgcf61vrs5cpzxskb6g279srsc49mhq4840snf45lrsxfrk6ja";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-crt-git-11.0.0.r198.g93ca95b32-1-any.pkg.tar.zst";
|
||||||
|
sha256 = "04717li07m2f3q608ir83vqayixw38mkr9sjk2xjhaam5hhl96lq";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-gmp-6.3.0-2-any.pkg.tar.zst";
|
||||||
|
sha256 = "1k0ma22hyn5m2m8kflpmscwm2p1v53pzd93fnind9bf4fhwl6949";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-isl-0.26-1-any.pkg.tar.zst";
|
||||||
|
sha256 = "0hfycibi23xkah9sw60n4ka786l8vmlc67d2waw9mwqqljdmx7pr";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libiconv-1.17-3-any.pkg.tar.zst";
|
||||||
|
sha256 = "061dlpg69ph2205xabshya827m6dqchxxn3jvhnnicja6bsb8ivh";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-mpfr-4.2.1-2-any.pkg.tar.zst";
|
||||||
|
sha256 = "1j96kipr7mzawngjhi9m0rh2lhylmggg1mkgkipw9ssrsxxf7g97";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-mpc-1.3.1-2-any.pkg.tar.zst";
|
||||||
|
sha256 = "04md7pzz6rwvlsxzgxn8zc6l5lmqn1w2dg9f5xdf13qbl9zfm615";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-windows-default-manifest-6.4-4-any.pkg.tar.zst";
|
||||||
|
sha256 = "1ylipf8k9j7bgmwndkib2l29mds394i7jcij7a6ciag4kynlhsvi";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-winpthreads-git-11.0.0.r198.g93ca95b32-1-any.pkg.tar.zst";
|
||||||
|
sha256 = "171blcxd721pp0881blbid8vdbc18fx2lwyzk2prsnjhlf9yampj";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-zlib-1.3-1-any.pkg.tar.zst";
|
||||||
|
sha256 = "167g32vk257sbfmz85azgjs01cnfkjip0gks6y3vgl97i9d6qji5";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-gcc-13.2.0-2-any.pkg.tar.zst";
|
||||||
|
sha256 = "09v6iz3iyp8w3ynw7wrs2qh54vr2kjpwfbv5rya8dskdx4sp2bvd";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-expat-2.5.0-1-any.pkg.tar.zst";
|
||||||
|
sha256 = "09hrzvdfkr2zaq239z87m1j3zyq0pvjhsyikg65wrbljrir6wc6r";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-bzip2-1.0.8-3-any.pkg.tar.zst";
|
||||||
|
sha256 = "1dki26kz4pmr9q3gp3dirrvrwkcv38b9sjrb9slrq4yw31ycjgk5";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libffi-3.4.4-1-any.pkg.tar.zst";
|
||||||
|
sha256 = "1na3giynh9f3i0xg2mr0dm4bm6zhv8h908rrrv4kcxfawr8nyjdy";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-mpdecimal-2.5.1-1-any.pkg.tar.zst";
|
||||||
|
sha256 = "0cpyacmciyzbsar1aka5y592g2gpa4i6a58j3bjdmfjdnpm0j08a";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-gettext-0.21.1-2-any.pkg.tar.zst";
|
||||||
|
sha256 = "0gj9qgxph9qw1x3y9ijacxi4ia90vzgkmg5jvl99pdq55h3xxl9x";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libtre-git-r128.6fb7206-2-any.pkg.tar.xz";
|
||||||
|
sha256 = "0dp3ca83j8jlx32gml2qvqpwp5b42q8r98gf6hyiki45d910wb7x";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libsystre-1.0.1-4-any.pkg.tar.xz";
|
||||||
|
sha256 = "037gkzaaj8kp5nspcbc8ll64s9b3mj8d6m663lk1za94bq2axff1";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-ncurses-6.4.20230708-1-any.pkg.tar.zst";
|
||||||
|
sha256 = "1bpjn6rv85q3rdcdgs7fml140aar93hv649hhqx47za26mjnsdiv";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-openssl-3.1.3-1-any.pkg.tar.zst";
|
||||||
|
sha256 = "1vi1zxb5lvgxpmk80giqahqrjh2lv06r2ah4hf55jzjsi1mmcard";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-termcap-1.3.1-7-any.pkg.tar.zst";
|
||||||
|
sha256 = "1s51i2fwy1mrzmxsgr1vv87wlmb3bk88yipqalfldvy3xdgjgjh4";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-readline-8.2.001-6-any.pkg.tar.zst";
|
||||||
|
sha256 = "0a6s6kq2hmz96cg7hxzcgldh16sk7dvpzfdfqchq3c07rwzhqhiq";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-tcl-8.6.12-2-any.pkg.tar.zst";
|
||||||
|
sha256 = "17lyrkyh76lh0ghk19d91kwicms6lxshhhb6n3zh748awfvihknm";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-sqlite3-3.43.1-1-any.pkg.tar.zst";
|
||||||
|
sha256 = "05csh3sa6g5nnfmry50w6p2j4v7fqylmlgnny5cimm350ppmmkka";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-tk-8.6.12-2-any.pkg.tar.zst";
|
||||||
|
sha256 = "0j6nvwc0a1cc2k4akq3095r1rfhprslf8jpr07ypcjb91q5s3yfi";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-xz-5.4.4-1-any.pkg.tar.zst";
|
||||||
|
sha256 = "0drcmy0x3dydl19slxv64aw8f29a1kxyzx7zj25nnr47qg1w5ycp";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-tzdata-2023c-1-any.pkg.tar.zst";
|
||||||
|
sha256 = "0ifavpqi1ykn9962ic4sh5l18y2mvz9pj6742fgw85s9wixbj7fl";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-3.11.6-1-any.pkg.tar.zst";
|
||||||
|
sha256 = "0s4z65i3p0arwjry877q9q154h58b3wd35svifpj2c1j7frr41vi";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-gcc-libgfortran-13.2.0-2-any.pkg.tar.zst";
|
||||||
|
sha256 = "150k73v8g71wrp855f747mal009cf34lbpv8xzbibj50m3g6yxvv";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-openblas-0.3.24-1-any.pkg.tar.zst";
|
||||||
|
sha256 = "0j2aka8bml2j2aszxsjy5gp8xqvdxw3s292pd7iarzn1kliwv84j";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-numpy-1.25.2-1-any.pkg.tar.zst";
|
||||||
|
sha256 = "0vjb2qps0kzzcjhjrh11h661i9q1hmzi08jvirqyslayp3jmbkd9";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.fetchurl {
|
||||||
|
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-setuptools-68.2.2-1-any.pkg.tar.zst";
|
||||||
|
sha256 = "0hci3vran7cw4hnr17b04xcpwl322ffvxf9sgv3793rpx7fx5h7a";
|
||||||
|
})
|
||||||
|
]
|
Loading…
Reference in New Issue