128 Commits

Author SHA1 Message Date
bbe7bcd6bf flake: update dependencies 2026-04-23 19:28:26 +08:00
94cfbde7c8 add artiq html manual to installer (#46)
Reviewed-on: M-Labs/artiq-extrapkg#46
Co-authored-by: jose <jc@m-labs.ph>
Co-committed-by: jose <jc@m-labs.ph>
2026-04-23 09:25:41 +08:00
8cf36c55b9 newfocus8742: update 2026-04-21 09:04:27 +08:00
45b0b23699 flake: update dependencies 2026-04-17 19:29:16 +08:00
7383da41ae msys2: update 2026-04-13 21:50:32 +08:00
e854fb66dc flake: update dependencies 2026-04-13 21:23:33 +08:00
754b621118 ARTIQ-9 2026-03-13 12:24:51 +08:00
51ec8995e9 flake: update dependencies 2026-03-09 22:43:37 +08:00
cdcfde7a03 msys2: update 2026-02-23 16:27:29 +08:00
835934acb1 Revert "msys2-offline-installer: fix download filename on hydra"
This reverts commit 0eb7326333.
2026-02-12 16:18:10 +08:00
0eb7326333 msys2-offline-installer: fix download filename on hydra 2026-02-11 16:55:13 +08:00
bb84ba8ca2 flake: update dependencies 2026-01-29 20:33:15 +08:00
0055e59d60 flake: update conda 2026-01-19 08:26:53 +08:00
1c09ed9958 msys2: update 2026-01-19 08:18:34 +08:00
19d643c6ca flake: update kirdy 2026-01-19 08:16:06 +08:00
c01e2269e0 flake: update dependencies 2026-01-19 08:03:39 +08:00
ac2df29879 flake: update git url 2026-01-19 08:03:31 +08:00
a1ac3eedf0 replace github repos 2026-01-03 16:16:56 +08:00
3a9d6a6848 flake: format 2025-11-18 18:55:33 +08:00
b4264bab48 msys2: update 2025-11-18 18:55:08 +08:00
8efa21d783 make_msys2_packages: output in Alejandra style 2025-11-18 18:54:53 +08:00
858fed0e3c flake: update dependencies 2025-11-18 18:30:53 +08:00
92e503be46 drop aenum dependency from pykirdy 2025-10-23 16:07:55 +08:00
aa68a3337c flake: update dependencies 2025-10-23 16:05:20 +08:00
53c533b2bc update dependencies 2025-10-09 12:42:25 +08:00
db2e49b1d4 flake: update dependencies 2025-09-05 20:27:25 +08:00
908704aa55 flake: update hut2 controller 2025-09-04 13:20:22 +08:00
1bde234f00 flake: update dependencies 2025-09-04 13:04:41 +08:00
01014b8908 flake: update controllers 2025-09-04 12:41:20 +08:00
fe7f6eaf54 update dependencies 2025-08-26 12:16:09 +08:00
25b357ab83 update dax-applets 2025-08-07 23:41:13 +08:00
b0744b1818 msys2: remove obsolete shebang patching for wheel installation 2025-08-07 14:40:30 +08:00
cca443d765 flake: update dependencies 2025-07-31 15:08:15 +08:00
dc191be721 flake: add new required fields for buildPythonPackage 2025-07-23 21:15:59 +08:00
6b85a0ecd5 flake: update dependencies 2025-07-23 21:14:29 +08:00
c6d46b678c flake: update dependencies 2025-07-23 20:42:35 +08:00
1ece720c9a update anaconda 2025-06-25 21:01:40 +08:00
e6f2471ab5 flake: update dependencies 2025-06-25 20:39:41 +08:00
43f5ee46a9 msys2: regenerate packages 2025-06-18 10:44:44 +08:00
da3433e1ad flake: update dependencies 2025-06-18 10:38:44 +08:00
505df182f7 linien: switch to nix-servo input and package for client/GUI 2025-04-27 20:04:10 +08:00
aa889b92e9 add pykirdy with kirdy GUI 2025-04-22 18:11:50 +08:00
f7d708a24c update msys2 packages 2025-04-16 18:16:07 +01:00
d3fad24e18 fix path to Wine64 2025-04-16 18:07:42 +01:00
1dfb3e3cdc flake: update dependencies 2025-04-11 12:48:22 +08:00
f5502a39d8 update Conda dependencies 2025-03-13 14:22:02 +08:00
780250bb87 update msys2 packages 2025-02-19 22:59:56 +08:00
1b86d617d7 flake: update dependencies 2025-02-19 22:37:59 +08:00
ad170c5353 update dependencies 2025-01-21 09:03:28 +08:00
22d0fdc350 update dependencies 2025-01-15 22:22:48 +08:00
9aadf50daf flake: update dependencies 2024-12-23 10:41:46 +08:00
ec244fc3ac msys2: regenerate packages 2024-12-11 20:37:12 +08:00
0c3dbe25ec flake: update dependencies 2024-12-11 13:37:47 +08:00
694278c010 conda: update anaconda 2024-11-16 14:31:44 +08:00
bde6328085 conda: add jsonschema dependency 2024-11-16 14:22:57 +08:00
4672f4aabb msys2: regenerate packages 2024-11-15 10:43:55 +08:00
1842619f30 msys2: add back scipy 2024-11-15 10:38:27 +08:00
c4e9c4bb84 msys2: regenerate packages 2024-11-15 10:37:31 +08:00
a339626d65 msys2: add jsonschema dependency 2024-11-15 10:22:40 +08:00
29981e7feb switch to Wine unstable
Fixes
wine: Call from 00006FFFFFF6E1B8 to unimplemented function KERNEL32.dll.CopyFile2, aborting
2024-11-15 10:20:25 +08:00
b9e1220d28 flake: update dependencies 2024-11-15 10:13:29 +08:00
87e306eb63 flake: update dependencies 2024-11-11 19:51:45 +08:00
c7a5c19708 msys2: update, python 3.12 2024-11-11 19:50:55 +08:00
544108eafd msys2: get python by transitive dependency 2024-10-30 13:35:48 +08:00
70f9398ad3 flake: update dependencies 2024-10-30 13:31:40 +08:00
ba488e77d9 flake: update dependencies 2024-10-18 15:06:21 +08:00
0d8762fa31 update dependencies 2024-10-08 15:12:12 +08:00
27b15ed3d4 flake: update dependencies 2024-10-01 14:49:35 +08:00
f0e2486d6c Change environment variables to positional arguments
Signed-off-by: Egor Savkin <es@m-labs.hk>
2024-09-30 13:27:51 +08:00
b12ca4b928 msys2/asyncserial: add missing pyserial dependency 2024-09-26 07:47:19 +08:00
1702341f28 msys2: update 2024-08-27 16:18:30 +08:00
c249e6af78 msys2: add platformdirs dependency 2024-08-27 15:56:58 +08:00
63f34fbf0c conda: add platformdirs dependency 2024-08-27 15:55:26 +08:00
1002e0437a msys2: fix afws client certs
Co-authored-by: Egor Savkin <es@m-labs.hk>
Co-committed-by: Egor Savkin <es@m-labs.hk>
2024-08-15 18:35:54 +08:00
eac0d077de Fix msys2 package
Package appeared to have /nix/store... path instead of normal clang64

Signed-off-by: Egor Savkin <es@m-labs.hk>
2024-08-14 13:48:02 +08:00
32d116dbf6 flake: update dependencies 2024-08-02 10:32:02 +08:00
50abd84278 msys2: modernize python install script 2024-08-02 10:30:03 +08:00
9e85187ead flake: update dependencies 2024-07-31 17:44:17 +08:00
25ee3c68f1 wand: remove (no qt6) 2024-07-27 23:17:10 +08:00
7f00ab0cb6 update conda, py3.12 2024-07-27 22:44:47 +08:00
d5c99474ed linien: py3.12 2024-07-27 22:42:14 +08:00
1e64b5786c msys2: update, qt6 2024-07-27 22:19:14 +08:00
30d9b5ae54 qt5 -> qt6 2024-07-27 22:06:39 +08:00
05d45229af flake: update dependencies 2024-07-27 22:06:31 +08:00
5b4560d8ca msys2: update 2024-07-24 14:51:10 +08:00
1ec52c60fe remove scipy from artiq dependencies 2024-07-24 14:48:54 +08:00
7ffe3dcf22 Update flake and msys2 packages
Signed-off-by: Egor Savkin <es@m-labs.hk>
2024-07-15 15:08:16 +08:00
8f8550e243 Revert "msys2: update"
msys2 llvmlite has dropped support for riscv according to Mattermost report.

This reverts commit 312b93915e.
2024-07-10 10:42:53 +02:00
312b93915e msys2: update 2024-07-09 17:44:16 +02:00
e8c29bb8f1 flake: update dependencies 2024-07-09 17:06:56 +02:00
0cc34b4b47 Add zadig to msys2 installation, that can be accessed from start menu
Signed-off-by: Egor Savkin <es@m-labs.hk>
2024-06-24 15:06:18 +08:00
ce9e23579c flake: update dependencies 2024-06-19 12:48:40 +08:00
e7a0f4cf23 flake: update dependencies 2024-06-06 10:02:52 +08:00
95c8a2a30f msys2: update 2024-06-06 10:02:17 +08:00
d577f64c45 flake: update dependencies 2024-05-28 17:31:45 +08:00
8f8f8f2768 Update base installer and move to clang64
Signed-off-by: Egor Savkin <es@m-labs.hk>
2024-05-17 15:31:02 +08:00
fa0c5a593e Add ARTIQ names to the installer
Signed-off-by: Egor Savkin <es@m-labs.hk>
2024-05-09 13:06:13 +08:00
196f0b163a Add artiq version to the installer
Signed-off-by: Egor Savkin <es@m-labs.hk>
2024-05-07 13:11:20 +08:00
7a5f1084d8 Add ARTIQ offline installer based on MSYS2 2024-05-07 10:10:32 +08:00
9d64eda284 Add llvm and openocd to the msys2 dependencies
Signed-off-by: Egor Savkin <es@m-labs.hk>
2024-05-06 16:08:11 +08:00
8b90591c00 flake: update dependencies 2024-05-06 12:45:38 +08:00
82601c365c flake: update dependencies 2024-05-02 09:25:11 +08:00
40b31fd3b0 update conda 2024-05-02 09:24:56 +08:00
94cca59e08 msys2: update 2024-04-26 23:37:25 +08:00
62ffc1c244 flake: update dependencies 2024-04-26 23:34:29 +08:00
a85b6b6bad msys2: update 2024-04-02 17:45:34 +08:00
2edaf56f08 flake: update dependencies 2024-04-02 17:45:20 +08:00
eab0a015f9 msys2: update 2024-03-11 18:57:58 +08:00
808cdca912 flake: update dependencies 2024-03-11 18:52:43 +08:00
d22a7468f3 update dependencies 2024-02-16 17:51:37 +08:00
a19ad85cc4 flake: update dependencies 2024-02-15 10:45:05 +08:00
33b8e7b72d linien py3.11 2024-02-01 20:46:33 +08:00
4352f6b8d9 update dependencies 2024-02-01 19:04:08 +08:00
29ce3692c0 flake: update dependencies 2023-11-21 21:00:49 +08:00
06cd778cf7 dax: add required qt flags 2023-10-18 12:07:14 +08:00
2e1de17bbf flake: update dependencies 2023-10-17 15:38:23 +08:00
648dc4283c update dependencies 2023-10-09 10:18:59 +08:00
50a8eb02c0 flake: update dependencies 2023-09-27 10:34:00 +08:00
54df981af2 flake: update dependencies 2023-08-31 17:44:57 +08:00
4880eacaed update anaconda 2023-08-26 14:56:11 +08:00
f1ec8058cf update msys2 2023-08-26 14:55:32 +08:00
19081853b3 flake: update dependencies 2023-08-26 14:44:33 +08:00
538cc1a36d Revert "conda: restrict llvmlite version"
This reverts commit ff02e6e2ff.
2023-08-26 14:43:27 +08:00
097be9ed33 flake: update dependencies 2023-07-10 12:52:03 +08:00
ff02e6e2ff conda: restrict llvmlite version
attempt to address
https://github.com/m-labs/artiq/issues/2050#issuecomment-1579132668
2023-06-07 20:48:49 +08:00
1443a834f6 flake: update dependencies 2023-06-07 20:48:37 +08:00
b273c8f262 flake: update dependencies, nixpkgs 23.05 2023-05-27 18:19:56 +08:00
3917d90c07 msys2: add lmdb dependency 2023-05-08 17:35:01 +08:00
18 changed files with 1976 additions and 732 deletions

View File

@@ -3,5 +3,6 @@ ARTIQ extrapkg
This contains additional packages and infrastructure for ARTIQ:
* MSYS2 and Conda packages
* MSYS2 offline installer
* Controllers/NDSPs
* Windows tests

420
flake.lock generated
View File

@@ -13,17 +13,17 @@
]
},
"locked": {
"lastModified": 1664405593,
"narHash": "sha256-yP441NerlLGig7n+9xHsx8yCtZ+Ggd0VqfBSzc20E04=",
"owner": "m-labs",
"repo": "artiq-comtools",
"rev": "15ddac62813ef623a076ccf982b3bc63d314e651",
"type": "github"
"lastModified": 1773365427,
"narHash": "sha256-oW3vUllAIImM9KlI887gwEWK51LZQvR1lTGzpBxKxI0=",
"ref": "refs/heads/master",
"rev": "c318c7060ed5f1a009ee3b3907e3b38101c9c920",
"revCount": 47,
"type": "git",
"url": "https://git.m-labs.hk/M-Labs/artiq-comtools.git"
},
"original": {
"owner": "m-labs",
"repo": "artiq-comtools",
"type": "github"
"type": "git",
"url": "https://git.m-labs.hk/M-Labs/artiq-comtools.git"
}
},
"artiq-stubs": {
@@ -42,11 +42,11 @@
]
},
"locked": {
"lastModified": 1670448913,
"narHash": "sha256-ZCg7Rd5qpYl5Y8FEtLObnFRUiSJVZuSBdpa57SMVoNE=",
"lastModified": 1760928880,
"narHash": "sha256-1I6qJQsKBeTbyN9sVaUVSyHGpGDlmbAUxhiTEyxvwoo=",
"ref": "refs/heads/master",
"rev": "d592ccd1db4d9a97331d5397560d25b59c7820bb",
"revCount": 26,
"rev": "408735d3c81b8e422639f40df116cd2f95eac7d4",
"revCount": 55,
"type": "git",
"url": "https://gitlab.com/duke-artiq/artiq-stubs.git"
},
@@ -58,25 +58,27 @@
"artiqpkgs": {
"inputs": {
"artiq-comtools": "artiq-comtools",
"mozilla-overlay": "mozilla-overlay",
"naersk": "naersk",
"nixpkgs": "nixpkgs",
"rust-overlay": "rust-overlay",
"sipyco": "sipyco",
"src-migen": "src-migen",
"src-misoc": "src-misoc",
"src-pythonparser": "src-pythonparser"
},
"locked": {
"lastModified": 1682844949,
"narHash": "sha256-o2qsfskZZliN4sFFITv7otu3IzcQ23sq3a8kLeOAHTQ=",
"ref": "refs/heads/master",
"rev": "3ff0be6540b5a9eb252cd95db6a812d75e7c8ed2",
"revCount": 8342,
"lastModified": 1776943689,
"narHash": "sha256-2BtI6Lixt2jSbMLR3w3wxcF3196S4ddj+ulo/lNr5aI=",
"ref": "release-9",
"rev": "727333d03f8aa800614206224a3c6259fb02a90f",
"revCount": 9655,
"type": "git",
"url": "https://github.com/m-labs/artiq.git"
"url": "https://git.m-labs.hk/M-Labs/artiq.git"
},
"original": {
"ref": "release-9",
"type": "git",
"url": "https://github.com/m-labs/artiq.git"
"url": "https://git.m-labs.hk/M-Labs/artiq.git"
}
},
"daxpkgs": {
@@ -97,11 +99,11 @@
"trap-dac-utils": "trap-dac-utils"
},
"locked": {
"lastModified": 1682793563,
"narHash": "sha256-tj+VwGBjcaeQCsrwrepfqVslDX2IDElIvVeEdsl1wIo=",
"lastModified": 1760983624,
"narHash": "sha256-VZVlIp8TgnEk35yD/dp3TsR/9adazZ68Kvc9zrrsX1s=",
"ref": "refs/heads/master",
"rev": "bb4e18743dcab017765d09b6ce1c3bba88be073e",
"revCount": 1160,
"rev": "963c2a2e6d4ac10099ee3cc4cd5e80df72f34a39",
"revCount": 1474,
"type": "git",
"url": "https://gitlab.com/duke-artiq/dax.git"
},
@@ -110,13 +112,91 @@
"url": "https://gitlab.com/duke-artiq/dax.git"
}
},
"flake-utils": {
"fenix": {
"inputs": {
"nixpkgs": [
"artiqpkgs",
"naersk",
"nixpkgs"
],
"rust-analyzer-src": "rust-analyzer-src"
},
"locked": {
"lastModified": 1659877975,
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
"lastModified": 1752475459,
"narHash": "sha256-z6QEu4ZFuHiqdOPbYss4/Q8B0BFhacR8ts6jO/F/aOU=",
"owner": "nix-community",
"repo": "fenix",
"rev": "bf0d6f70f4c9a9cf8845f992105652173f4b617f",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "fenix",
"type": "github"
}
},
"firmware": {
"flake": false,
"locked": {
"lastModified": 1697732010,
"narHash": "sha256-kGXbqkqHCPU2Xz6az3LtdAccVzGtlq+vnTLiR3Xl9+8=",
"owner": "raspberrypi",
"repo": "firmware",
"rev": "ce3a0b4197eaf311ba0734efdb9f5bdedefe5e27",
"type": "github"
},
"original": {
"owner": "raspberrypi",
"repo": "firmware",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_2": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_3": {
"inputs": {
"systems": "systems_3"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
@@ -127,17 +207,18 @@
},
"flake8-artiq": {
"inputs": {
"flake-utils": "flake-utils_2",
"nixpkgs": [
"daxpkgs",
"nixpkgs"
]
},
"locked": {
"lastModified": 1681932181,
"narHash": "sha256-DffFqCG/xWb7KGuKYCUH8ItnaqgjcSpVy3g2bI/bIgs=",
"lastModified": 1760977112,
"narHash": "sha256-PSK9yafTXkhq2H4C1g49SYLoeIKFF8rWDl1RBgWuQqs=",
"ref": "refs/heads/master",
"rev": "8247f653ffc643ad8db00fd7fb52663aff4a48ef",
"revCount": 97,
"rev": "ac2ba5ecc063d3370a4881dd34b09504eb127485",
"revCount": 120,
"type": "git",
"url": "https://gitlab.com/duke-artiq/flake8-artiq.git"
},
@@ -146,14 +227,40 @@
"url": "https://gitlab.com/duke-artiq/flake8-artiq.git"
}
},
"kirdy": {
"inputs": {
"mozilla-overlay": "mozilla-overlay",
"nixpkgs": [
"artiqpkgs",
"nixpkgs"
],
"rust-overlay": [
"artiqpkgs",
"rust-overlay"
]
},
"locked": {
"lastModified": 1774359879,
"narHash": "sha256-PMaAYknT3juvzOVQT5i1+qH0sjZ17XG0xmaFIHLus2A=",
"ref": "refs/heads/master",
"rev": "ac9bf24606c5c9bbf4eccb1cd1de0dba0052d368",
"revCount": 416,
"type": "git",
"url": "https://git.m-labs.hk/M-Labs/kirdy.git"
},
"original": {
"type": "git",
"url": "https://git.m-labs.hk/M-Labs/kirdy.git"
}
},
"mozilla-overlay": {
"flake": false,
"locked": {
"lastModified": 1677493379,
"narHash": "sha256-A1gO8zlWLv3+tZ3cGVB1WYvvoN9pbFyv0xIJHcTsckw=",
"lastModified": 1762256096,
"narHash": "sha256-Hzj/d8eRpfRfjHSRX6gGRf0jSg2zIJMXl6S5opuKsHc=",
"owner": "mozilla",
"repo": "nixpkgs-mozilla",
"rev": "78e723925daf5c9e8d0a1837ec27059e61649cb6",
"rev": "80c058cf774c198fb838fc3549806b232dd3e320",
"type": "github"
},
"original": {
@@ -162,26 +269,141 @@
"type": "github"
}
},
"naersk": {
"inputs": {
"fenix": "fenix",
"nixpkgs": [
"artiqpkgs",
"nixpkgs"
]
},
"locked": {
"lastModified": 1776200608,
"narHash": "sha256-broZ6RFQr4Fv0wT73gGmzNX14A43TmTFF8g4wDKlNss=",
"owner": "nix-community",
"repo": "naersk",
"rev": "8b23250ab45c2a38cd91031aee26478ca4d0a28e",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "naersk",
"type": "github"
}
},
"nix-servo": {
"inputs": {
"nixpkgs": [
"artiqpkgs",
"nixpkgs"
],
"not-os": "not-os",
"src-migen": [
"artiqpkgs",
"src-migen"
],
"src-misoc": [
"artiqpkgs",
"src-misoc"
]
},
"locked": {
"lastModified": 1776909001,
"narHash": "sha256-u982WetEez99onTBjQm4+LGvLWM8hQ8/UQ+gH5KvSzY=",
"ref": "refs/heads/master",
"rev": "c86e2def24b33c938d1bdc793714eb6e339fccb6",
"revCount": 208,
"type": "git",
"url": "https://git.m-labs.hk/M-Labs/nix-servo.git"
},
"original": {
"type": "git",
"url": "https://git.m-labs.hk/M-Labs/nix-servo.git"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1682173319,
"narHash": "sha256-tPhOpJJ+wrWIusvGgIB2+x6ILfDkEgQMX0BTtM5vd/4=",
"lastModified": 1776734388,
"narHash": "sha256-vl3dkhlE5gzsItuHoEMVe+DlonsK+0836LIRDnm6MXQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "ee7ec1c71adc47d2e3c2d5eb0d6b8fbbd42a8d1c",
"rev": "10e7ad5bbcb421fe07e3a4ad53a634b0cd57ffac",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-22.11",
"ref": "nixos-25.11",
"repo": "nixpkgs",
"type": "github"
}
},
"not-os": {
"inputs": {
"firmware": "firmware",
"nixpkgs": [
"nix-servo",
"nixpkgs"
]
},
"locked": {
"lastModified": 1736697818,
"narHash": "sha256-JqqQO9W2s64vt6q2XrAY1ml0l7ff+7HbY5xCUhJJFmM=",
"owner": "cleverca22",
"repo": "not-os",
"rev": "c556294ad82fb256082ca0a787cc5da7cb4e91e3",
"type": "github"
},
"original": {
"owner": "cleverca22",
"repo": "not-os",
"type": "github"
}
},
"root": {
"inputs": {
"artiqpkgs": "artiqpkgs",
"daxpkgs": "daxpkgs"
"daxpkgs": "daxpkgs",
"kirdy": "kirdy",
"nix-servo": "nix-servo"
}
},
"rust-analyzer-src": {
"flake": false,
"locked": {
"lastModified": 1752428706,
"narHash": "sha256-EJcdxw3aXfP8Ex1Nm3s0awyH9egQvB2Gu+QEnJn2Sfg=",
"owner": "rust-lang",
"repo": "rust-analyzer",
"rev": "591e3b7624be97e4443ea7b5542c191311aa141d",
"type": "github"
},
"original": {
"owner": "rust-lang",
"ref": "nightly",
"repo": "rust-analyzer",
"type": "github"
}
},
"rust-overlay": {
"inputs": {
"nixpkgs": [
"artiqpkgs",
"nixpkgs"
]
},
"locked": {
"lastModified": 1719454714,
"narHash": "sha256-MojqG0lyUINkEk0b3kM2drsU5vyaF8DFZe/FAlZVOGs=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "d1c527659cf076ecc4b96a91c702d080b213801e",
"type": "github"
},
"original": {
"owner": "oxalica",
"ref": "snapshot/2024-08-01",
"repo": "rust-overlay",
"type": "github"
}
},
"sipyco": {
@@ -192,82 +414,128 @@
]
},
"locked": {
"lastModified": 1681290481,
"narHash": "sha256-VEZcGhbtJGonRrrWi31evNDVSerlLjEPL0MZGm9VlB8=",
"owner": "m-labs",
"repo": "sipyco",
"rev": "727631ada6e59dc6ef0ad50bfcc376d2ffe805aa",
"type": "github"
"lastModified": 1776943619,
"narHash": "sha256-GGw/wCduc/9OEZ1XYwDH7xOPEjUNVJPhI8yk59SmAGA=",
"ref": "refs/heads/master",
"rev": "08114235deb00b7406ab12224c8144c6c310e98a",
"revCount": 158,
"type": "git",
"url": "https://git.m-labs.hk/M-Labs/sipyco.git"
},
"original": {
"owner": "m-labs",
"repo": "sipyco",
"type": "github"
"type": "git",
"url": "https://git.m-labs.hk/M-Labs/sipyco.git"
}
},
"src-migen": {
"flake": false,
"locked": {
"lastModified": 1674045327,
"narHash": "sha256-oYdeY0MbTReKbAwmSznnqw0wNawdInJoFJVWW3tesFA=",
"owner": "m-labs",
"repo": "migen",
"rev": "ccaee68e14d3636e1d8fb2e0864dd89b1b1f7384",
"type": "github"
"lastModified": 1768997857,
"narHash": "sha256-bdKQUQ3XLc4fV5sYBfKMuHuOS7nlF0ZU7rjWIKDzFzA=",
"ref": "refs/heads/master",
"rev": "44e5627d367c528b3ce5e686b6f305a9dfc56f2a",
"revCount": 2076,
"type": "git",
"url": "https://git.m-labs.hk/M-Labs/migen.git"
},
"original": {
"owner": "m-labs",
"repo": "migen",
"type": "github"
"type": "git",
"url": "https://git.m-labs.hk/M-Labs/migen.git"
}
},
"src-misoc": {
"flake": false,
"locked": {
"lastModified": 1679903508,
"narHash": "sha256-TI0agjSSMJtH4mgAMpSO128zxcwSo/AjY1B6AW7zBQQ=",
"lastModified": 1765867404,
"narHash": "sha256-YPYUHVIryXDp4W2hUtHUtBbRKIrbhInWImT0NKaacSY=",
"ref": "refs/heads/master",
"rev": "0cf0ebb7d4f56cc6d44a3dea3e386efab9d82419",
"revCount": 2437,
"rev": "7ab412de11f6533cd68cd818924da5c28a484ccd",
"revCount": 2509,
"submodules": true,
"type": "git",
"url": "https://github.com/m-labs/misoc.git"
"url": "https://git.m-labs.hk/M-Labs/misoc.git"
},
"original": {
"submodules": true,
"type": "git",
"url": "https://github.com/m-labs/misoc.git"
"url": "https://git.m-labs.hk/M-Labs/misoc.git"
}
},
"src-pythonparser": {
"flake": false,
"locked": {
"lastModified": 1628745371,
"narHash": "sha256-p6TgeeaK4NEmbhimEXp31W8hVRo4DgWmcCoqZ+UdN60=",
"owner": "m-labs",
"repo": "pythonparser",
"rev": "5413ee5c9f8760e95c6acd5d6e88dabb831ad201",
"lastModified": 1767427016,
"narHash": "sha256-E57okn+3gwvtXnF/qF/jypNYqijCLUYOEYLF9ZCzHpE=",
"ref": "refs/heads/master",
"rev": "a2ace427c84ee5b1e9bd9dbc9b9337e50fc54077",
"revCount": 152,
"type": "git",
"url": "https://git.m-labs.hk/M-Labs/pythonparser.git"
},
"original": {
"type": "git",
"url": "https://git.m-labs.hk/M-Labs/pythonparser.git"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "m-labs",
"repo": "pythonparser",
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_3": {
"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": {
"flake-utils": "flake-utils_3",
"nixpkgs": [
"daxpkgs",
"nixpkgs"
]
},
"locked": {
"lastModified": 1681932204,
"narHash": "sha256-ZvnaEiNWH7bWWt/MLHZrEeeqgTGBl0EBKS61N+YsiTs=",
"lastModified": 1753288079,
"narHash": "sha256-zBk1lsYg9LORVlL3st+/F/o6Hx6dWheMY+7tCVJMqTI=",
"ref": "refs/heads/master",
"rev": "d3af0ff98d6f2d065f04013533de8b760f8e47e5",
"revCount": 278,
"rev": "a097aa3d3b83c730f0cb5a4d767076408e9b8e85",
"revCount": 302,
"type": "git",
"url": "https://gitlab.com/duke-artiq/trap-dac-utils.git"
},

917
flake.nix
View File

@@ -1,7 +1,7 @@
{
description = "Additional packages for ARTIQ";
inputs.artiqpkgs.url = git+https://github.com/m-labs/artiq.git;
inputs.artiqpkgs.url = git+https://git.m-labs.hk/M-Labs/artiq.git?ref=release-9;
inputs.daxpkgs = {
url = git+https://gitlab.com/duke-artiq/dax.git;
@@ -12,46 +12,76 @@
};
};
outputs = { self, artiqpkgs, daxpkgs }:
let
pkgs = import artiqpkgs.inputs.nixpkgs { system = "x86_64-linux"; };
msys2 = import ./msys2 { inherit pkgs; };
inputs.kirdy = {
url = "git+https://git.m-labs.hk/M-Labs/kirdy.git";
inputs = {
nixpkgs.follows = "artiqpkgs/nixpkgs";
rust-overlay.follows = "artiqpkgs/rust-overlay";
};
};
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.
condaInstaller = pkgs.fetchurl {
url = "https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-x86_64.sh";
sha256 = "sha256-GXN9XCeyOh2HQMXLJBS/YlMYTOdF0KkSuyNaISoV4HU=";
};
condaInstallerEnv = pkgs.buildFHSUserEnv {
name = "conda-installer-env";
targetPkgs = pkgs: condaDeps;
};
condaInstalled = pkgs.stdenvNoCC.mkDerivation {
name = "conda-installed";
src = condaInstaller;
buildInputs = [ condaInstallerEnv ];
phases = [ "buildPhase" "installPhase" ];
buildPhase =
''
cp $src conda-installer.sh
chmod +x conda-installer.sh
# keep the same file length to avoid breaking embedded payload offsets
sed -i 0,/unset\ LD_LIBRARY_PATH/s//\#nset\ LD_LIBRARY_PATH/ conda-installer.sh
'';
installPhase =
''
conda-installer-env -c "./conda-installer.sh -p $out -b"
substituteInPlace $out/lib/python3.10/site-packages/conda/gateways/disk/__init__.py \
--replace "os.chmod(path, 0o2775)" "pass"
'';
};
condaBuilderEnv = pkgs.buildFHSUserEnv {
name = "conda-builder-env";
targetPkgs = pkgs: condaDeps ++ [ condaInstalled ];
};
makeCondaRecipe = (constituent:
''
inputs.nix-servo = {
url = "git+https://git.m-labs.hk/M-Labs/nix-servo.git";
inputs = {
nixpkgs.follows = "artiqpkgs/nixpkgs";
src-migen.follows = "artiqpkgs/src-migen";
src-misoc.follows = "artiqpkgs/src-misoc";
};
};
outputs = {
self,
artiqpkgs,
daxpkgs,
kirdy,
nix-servo,
}: let
pkgs = import artiqpkgs.inputs.nixpkgs {system = "x86_64-linux";};
msys2 = import ./msys2 {inherit pkgs;};
sipycoDependenciesFile = ./msys2/sipyco_dependencies.txt;
artiqDependenciesFile = ./msys2/artiq_dependencies.txt;
comtoolsDependenciesFile = ./msys2/comtools_dependencies.txt;
pythonparserDependenciesFile = ./msys2/pythonparser_dependencies.txt;
# reads filename and return list of non-empty lines from it
readStringListFromFile = filename:
builtins.filter (x: builtins.lessThan 0 (builtins.length (pkgs.lib.strings.stringToCharacters x)))
(builtins.filter builtins.isString (builtins.split "\n| |\t" (builtins.readFile filename)));
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.
condaInstaller = pkgs.fetchurl {
url = "https://repo.anaconda.com/archive/Anaconda3-2025.12-1-Linux-x86_64.sh";
sha256 = "sha256-Ey8fMS0F45GQa5Wa2DqkEbl+zlWWa7NN8BHvQbpgo1w=";
};
condaInstallerEnv = pkgs.buildFHSEnv {
name = "conda-installer-env";
targetPkgs = pkgs: condaDeps;
extraBwrapArgs = ["--bind" "/nix" "/nix"];
};
condaInstalled = pkgs.stdenvNoCC.mkDerivation {
name = "conda-installed";
src = condaInstaller;
buildInputs = [condaInstallerEnv];
phases = ["buildPhase" "installPhase"];
buildPhase = ''
cp $src conda-installer.sh
chmod +x conda-installer.sh
# keep the same file length to avoid breaking embedded payload offsets
sed -i 0,/unset\ LD_LIBRARY_PATH/s//\#nset\ LD_LIBRARY_PATH/ conda-installer.sh
'';
installPhase = ''
conda-installer-env -c "./conda-installer.sh -p $out -b"
substituteInPlace $out/lib/python3.13/site-packages/conda/gateways/disk/__init__.py \
--replace "os.chmod(path, 0o2775)" "pass"
'';
};
condaBuilderEnv = pkgs.buildFHSEnv {
name = "conda-builder-env";
targetPkgs = pkgs: condaDeps ++ [condaInstalled];
extraBwrapArgs = ["--bind" "/nix" "/nix"];
};
makeCondaRecipe = (
constituent: ''
# conda build breaks if write permissions aren't set on source files.
cp --no-preserve=mode,ownership -R ${constituent.src} workaround-conda
cd workaround-conda
@@ -98,435 +128,500 @@
--no-compile
EOF
chmod 755 conda/${constituent.name}/build.sh
''
);
makeCondaChannel = constituents: pkgs.stdenvNoCC.mkDerivation {
''
);
makeCondaChannel = constituents:
pkgs.stdenvNoCC.mkDerivation {
name = "conda-channel";
buildInputs = [ condaBuilderEnv ];
phases = [ "buildPhase" "installPhase" ];
buildInputs = [condaBuilderEnv];
phases = ["buildPhase" "installPhase"];
buildPhase = pkgs.lib.concatStringsSep "\n" (map makeCondaRecipe constituents);
installPhase =
''
installPhase = ''
HOME=`pwd`
mkdir $out
conda-builder-env -c "
${pkgs.lib.concatStringsSep "\n"
(map (constituent: "conda build --no-anaconda-upload --no-test --output-folder $out conda/${constituent.name}") constituents)}
(map (constituent: "conda build --no-anaconda-upload --no-test --output-folder $out conda/${constituent.name}") constituents)}
"
mkdir $out/nix-support
for package in $out/*/*.tar.bz2; do
echo file conda $package >> $out/nix-support/hydra-build-products
done
'';
'';
};
in rec {
inherit pkgs;
inherit makeCondaChannel;
inherit (msys2) makeMsys2Package makeMsys2Repos;
packages.x86_64-linux = rec {
inherit (artiqpkgs.packages.x86_64-linux) artiq openocd-bscanspi;
korad_ka3005p = pkgs.python3Packages.buildPythonPackage {
pname = "korad_ka3005p";
version = "1.1";
src = pkgs.fetchFromGitHub {
owner = "m-labs";
repo = "korad_ka3005p";
rev = "a1898409cb188b388ed1cf84e76ca69e9c8a74eb";
sha256 = "0h20qss70nssqiagc2fx75mravq1pji7rizhag3nq8xrcz2w20nc";
};
propagatedBuildInputs = [ artiqpkgs.inputs.sipyco.packages.x86_64-linux.sipyco artiqpkgs.packages.x86_64-linux.asyncserial ];
in rec {
inherit pkgs;
inherit makeCondaChannel;
inherit (msys2) makeMsys2Package makeMsys2Repos;
packages.x86_64-linux = rec {
inherit (artiqpkgs.packages.x86_64-linux) artiq openocd-bscanspi;
inherit (kirdy.packages.x86_64-linux) pykirdy;
inherit (nix-servo.packages.x86_64-linux) linien-client linien-gui;
korad_ka3005p = pkgs.python3Packages.buildPythonPackage {
pname = "korad_ka3005p";
version = "1.1";
src = pkgs.fetchgit {
url = "https://git.m-labs.hk/M-Labs/korad_ka3005p";
rev = "805620512bf74761ac3f94c91f5dd711a9b80062";
sha256 = "sha256-/35C3e8gOSqOqzbq68dzzy4gQgZh89v5FFenJRfzHx0=";
};
novatech409b = pkgs.python3Packages.buildPythonPackage {
pname = "novatech409b";
version = "1.1";
src = pkgs.fetchFromGitHub {
owner = "m-labs";
repo = "novatech409b";
rev = "3bd559753972f07d881df66b7c6819afc5436053";
sha256 = "1g9qv6fn5h7d393mb1v7w8sg6fimqg34blqdj22qnayb4agw1wyg";
};
propagatedBuildInputs = [ artiqpkgs.inputs.sipyco.packages.x86_64-linux.sipyco artiqpkgs.packages.x86_64-linux.asyncserial ];
pyproject = true;
build-system = [pkgs.python3Packages.setuptools];
propagatedBuildInputs = [artiqpkgs.inputs.sipyco.packages.x86_64-linux.sipyco artiqpkgs.packages.x86_64-linux.asyncserial];
};
novatech409b = pkgs.python3Packages.buildPythonPackage {
pname = "novatech409b";
version = "1.1";
src = pkgs.fetchgit {
url = "https://git.m-labs.hk/M-Labs/novatech409b";
rev = "cdf2f753d91925e35faa418a35891704eaa6bfb5";
sha256 = "sha256-g0il3E3tZ7juQzWtGVqgsoRARfgL4ZHMfrHa+9+gREI=";
};
lda = pkgs.python3Packages.buildPythonPackage {
name = "lda";
version = "1.1";
src = pkgs.fetchFromGitHub {
owner = "m-labs";
repo = "lda";
rev = "2d8af1e9080a4c1ab4a32370b3f926bfba8c00b2";
sha256 = "sha256-bImAsQiGmMauasltUrlkCRU3+p40d41DTlJvOjCfrP0=";
};
propagatedBuildInputs = [ artiqpkgs.inputs.sipyco.packages.x86_64-linux.sipyco ];
postPatch = ''
substituteInPlace lda/hidapi.py \
--replace "hidapi_lib_path = None"\
"hidapi_lib_path = '${pkgs.hidapi}/lib/libhidapi-libusb.so.0'"
'';
pyproject = true;
build-system = [pkgs.python3Packages.setuptools];
propagatedBuildInputs = [artiqpkgs.inputs.sipyco.packages.x86_64-linux.sipyco artiqpkgs.packages.x86_64-linux.asyncserial];
};
lda = pkgs.python3Packages.buildPythonPackage {
name = "lda";
version = "1.1";
src = pkgs.fetchgit {
url = "https://git.m-labs.hk/M-Labs/lda";
rev = "659fa5e228875bc2b1fe35f8b7de59097e6c5e6d";
sha256 = "sha256-XQBOLb2haxrS+4Ps3nWKVTy8mLNtrKb4ZuIze/3utxE=";
};
thorlabs_tcube = pkgs.python3Packages.buildPythonPackage {
pname = "thorlabs_tcube";
version = "1.1";
src = pkgs.fetchFromGitHub {
owner = "m-labs";
repo = "thorlabs_tcube";
rev = "0cb0c15fc7e660a150e193245f5338d48f8b97db";
sha256 = "1n4zmjcj2kpd97217y602pq6x8s80w39fgyi6qjmal92aicqdg07";
};
propagatedBuildInputs = [ artiqpkgs.inputs.sipyco.packages.x86_64-linux.sipyco artiqpkgs.packages.x86_64-linux.asyncserial ];
pyproject = true;
build-system = [pkgs.python3Packages.setuptools];
propagatedBuildInputs = [artiqpkgs.inputs.sipyco.packages.x86_64-linux.sipyco];
postPatch = ''
substituteInPlace lda/hidapi.py \
--replace "hidapi_lib_path = None"\
"hidapi_lib_path = '${pkgs.hidapi}/lib/libhidapi-libusb.so.0'"
'';
};
thorlabs_tcube = pkgs.python3Packages.buildPythonPackage {
pname = "thorlabs_tcube";
version = "1.1";
src = pkgs.fetchgit {
url = "https://git.m-labs.hk/M-Labs/thorlabs_tcube";
rev = "f9db7d8421ac35269f1538aed9c988d5af08a2a2";
sha256 = "sha256-gkzX87GT5PJbDNwDDlyKforN4DRn404N2P7WAA/2Za4=";
};
newfocus8742 = pkgs.python3Packages.buildPythonPackage {
pname = "newfocus8742";
version = "0.2";
src = pkgs.fetchFromGitHub {
owner = "quartiq";
repo = "newfocus8742";
rev = "9f6092b724b33b934aa4d3a1d6a20c295cd1d02d";
sha256 = "0qf05ghylnqf3l5vjx5dc748wi84xn6p6lb6f9r8p6f1z7z67fb8";
};
propagatedBuildInputs = [ artiqpkgs.inputs.sipyco.packages.x86_64-linux.sipyco pkgs.python3Packages.pyusb ];
# no unit tests so do a simple smoke test
checkPhase = "python -m newfocus8742.aqctl_newfocus8742 -h";
pyproject = true;
build-system = [pkgs.python3Packages.setuptools];
propagatedBuildInputs = [artiqpkgs.inputs.sipyco.packages.x86_64-linux.sipyco artiqpkgs.packages.x86_64-linux.asyncserial];
};
newfocus8742 = pkgs.python3Packages.buildPythonPackage {
pname = "newfocus8742";
version = "0.3";
src = pkgs.fetchFromGitHub {
owner = "quartiq";
repo = "newfocus8742";
rev = "5614c0c8d8c4f0ab1464dc351c99c43c3d9589b7";
sha256 = "sha256-7GiieECoGcHWE4oH3GSTd0k2wa36TRqNZBIxoUBV8/8=";
};
hut2 = pkgs.python3Packages.buildPythonPackage {
pname = "hut2";
version = "0.2";
src = pkgs.fetchFromGitHub {
owner = "quartiq";
repo = "hut2";
rev = "68369d5d63d233827840a9a752d90454a4e03baa";
sha256 = "0r832c0icz8v3w27ci13024bqfslj1gx6dwhjv11ksw229xdcghd";
};
propagatedBuildInputs = [ artiqpkgs.inputs.sipyco.packages.x86_64-linux.sipyco ];
# no unit tests without hardware so do a simple smoke test
checkPhase = "python -m hut2.aqctl_hut2 -h";
pyproject = true;
build-system = [pkgs.python3Packages.setuptools];
propagatedBuildInputs = [artiqpkgs.inputs.sipyco.packages.x86_64-linux.sipyco pkgs.python3Packages.pyusb];
# no unit tests so do a simple smoke test
checkPhase = "python -m newfocus8742.aqctl_newfocus8742 -h";
};
hut2 = pkgs.python3Packages.buildPythonPackage {
pname = "hut2";
version = "0.2";
src = pkgs.fetchgit {
url = "https://git.m-labs.hk/M-Labs/hut2";
rev = "c7f4ad8b34bfc9a498369993d42e3d2a2efc3fc0";
sha256 = "sha256-MbspS2pV2CkAXXuAP4vzxN5nwVUpWvoCS2ln1qPCcMs=";
};
wand = pkgs.python3Packages.buildPythonPackage {
pname = "wand";
version = "0.4.dev";
src = pkgs.fetchFromGitHub {
owner = "OxfordIonTrapGroup";
repo = "wand";
rev = "c080ddab6b2d94bb673ed32a0cea2bf68e66c702";
sha256 = "sha256-T27/mZepPrnheoVEKsP5cRDFc1JffTnuPvXq2r2GP4E=";
};
nativeBuildInputs = [ pkgs.qt5.wrapQtAppsHook ];
dontWrapQtApps = true;
postFixup = ''
wrapQtApp "$out/bin/wand_gui"
'';
propagatedBuildInputs = [ artiqpkgs.packages.x86_64-linux.artiq artiqpkgs.packages.x86_64-linux.qasync ]
++ [ artiqpkgs.inputs.sipyco.packages.x86_64-linux.sipyco ]
++ (with pkgs.python3Packages; [ numpy scipy influxdb pyqtgraph setuptools ]);
pyproject = true;
build-system = [pkgs.python3Packages.setuptools];
propagatedBuildInputs = [artiqpkgs.inputs.sipyco.packages.x86_64-linux.sipyco];
# no unit tests without hardware so do a simple smoke test
checkPhase = "python -m hut2.aqctl_hut2 -h";
};
flake8-artiq = daxpkgs.packages.x86_64-linux.flake8-artiq;
dax = daxpkgs.packages.x86_64-linux.dax.overridePythonAttrs (oa: {
nativeBuildInputs = (oa.nativeBuildInputs or []) ++ [pkgs.qt6.wrapQtAppsHook];
doCheck = false;
});
trap-dac-utils = daxpkgs.packages.x86_64-linux.trap-dac-utils;
dax-applets = pkgs.python3Packages.buildPythonPackage rec {
pname = "dax-applets";
version = "0.0.0";
src = pkgs.fetchgit {
url = "https://gitlab.com/duke-artiq/dax-applets.git";
rev = "84d048ddbc8cd3e7d6fa8182fe2cba5538dbcee5";
sha256 = "sha256-4snOQpkMzPiMGqW1JiZ8nIOeZS6hv14PjfFbK4AjSGM=";
};
flake8-artiq = daxpkgs.packages.x86_64-linux.flake8-artiq;
dax = daxpkgs.packages.x86_64-linux.dax.overridePythonAttrs (oa: { doCheck = false; });
trap-dac-utils = daxpkgs.packages.x86_64-linux.trap-dac-utils;
dax-applets = pkgs.python3Packages.buildPythonPackage rec {
pname = "dax-applets";
version = "0.0.0";
src = pkgs.fetchgit {
url = "https://gitlab.com/duke-artiq/dax-applets.git";
rev = "0f0196b6941b0c44a33c85d8c02047ca65466463";
sha256 = "0mx6yjvprhdnkdigwns8mg6v5daqxpgbv7mf63fa76i1iv2wvak4";
};
propagatedBuildInputs = [ artiqpkgs.packages.x86_64-linux.artiq ]
++ (with pkgs.python3Packages; [ numpy pyqt5 pyqtgraph ]);
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 [
{
name = "sipyco";
version = artiqpkgs.inputs.sipyco.packages.x86_64-linux.sipyco.version;
src = artiqpkgs.inputs.sipyco.packages.x86_64-linux.sipyco.src;
dependencies = [ "numpy" "pybase64" ];
}
{
name = "pythonparser";
version = artiqpkgs.packages.x86_64-linux.pythonparser.version;
src = artiqpkgs.packages.x86_64-linux.pythonparser.src;
dependencies = [ "regex" ];
}
{
name = "artiq-comtools";
version = artiqpkgs.inputs.artiq-comtools.packages.x86_64-linux.artiq-comtools.version;
src = artiqpkgs.inputs.artiq-comtools.packages.x86_64-linux.artiq-comtools.src;
dependencies = [ "numpy" "aiohttp" "sipyco" ];
}
{
name = "artiq";
version = artiqpkgs.packages.x86_64-linux.artiq.version;
src = artiqpkgs.packages.x86_64-linux.artiq.src;
preSetup =
''
export VERSIONEER_OVERRIDE=${artiqpkgs.packages.x86_64-linux.artiq.version}
export VERSIONEER_REV=${artiqpkgs.sourceInfo.rev}
'';
dependencies = [
"pythonparser"
"scipy"
"numpy"
"prettytable"
"h5py"
"python-dateutil"
"pyqt"
"qasync"
"pyqtgraph"
"pygit2"
"python-levenshtein"
"sipyco"
"llvmlite"
"llvm-tools"
"lld"
"tqdm"
"python-lmdb"
"artiq-comtools"
];
}
{
name = "korad_ka3005p";
version = korad_ka3005p.version;
src = korad_ka3005p.src;
dependencies = [ "sipyco" "asyncserial" ];
}
{
name = "novatech409b";
version = novatech409b.version;
src = novatech409b.src;
dependencies = [ "sipyco" "asyncserial" ];
}
{
name = "lda";
version = lda.version;
src = lda.src;
dependencies = [ "sipyco" ];
}
{
name = "thorlabs_tcube";
version = thorlabs_tcube.version;
src = thorlabs_tcube.src;
dependencies = [ "sipyco" "asyncserial" ];
}
{
name = "newfocus8742";
version = newfocus8742.version;
src = newfocus8742.src;
dependencies = [ "sipyco" ];
}
{
name = "hut2";
version = hut2.version;
src = hut2.src;
dependencies = [ "sipyco" ];
}
{
name = "wand";
version = wand.version;
src = wand.src;
dependencies = [ "artiq" "qasync" "numpy" "scipy" "influxdb" ];
}
{
name = "flake8-artiq";
version = flake8-artiq.version;
src = flake8-artiq.src;
dependencies = [ "flake8" ];
}
{
name = "trap-dac-utils";
version = trap-dac-utils.version;
src = trap-dac-utils.src;
dependencies = trap-dac-utils.condaDependencies;
}
{
name = "dax";
version = dax.version;
src = dax.src;
dependencies = dax.condaDependencies;
}
{
name = "dax-applets";
version = dax-applets.version;
src = dax-applets.src;
dependencies = [ "python>=3.5" "artiq" "numpy" "pyqt" "pyqtgraph" ];
}
];
msys2-pythonparser = msys2.makeMsys2Package rec {
name = "python-pythonparser";
pyproject = true;
build-system = [pkgs.python3Packages.setuptools];
nativeBuildInputs = [pkgs.qt6.wrapQtAppsHook];
dontWrapQtApps = true;
propagatedBuildInputs =
[artiqpkgs.packages.x86_64-linux.artiq]
++ (with pkgs.python3Packages; [numpy pyqt6 pyqtgraph]);
doCheck = false;
};
conda-channel = makeCondaChannel [
{
name = "sipyco";
version = artiqpkgs.inputs.sipyco.packages.x86_64-linux.sipyco.version;
src = artiqpkgs.inputs.sipyco.packages.x86_64-linux.sipyco.src;
dependencies = ["numpy" "pybase64"];
}
{
name = "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 {
dependencies = ["regex"];
}
{
name = "artiq-comtools";
version = artiqpkgs.inputs.artiq-comtools.packages.x86_64-linux.artiq-comtools.version;
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 {
dependencies = ["numpy" "aiohttp" "sipyco"];
}
{
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-lld"
"mingw-w64-x86_64-artiq-comtools"
version = artiqpkgs.packages.x86_64-linux.artiq.version;
src = artiqpkgs.packages.x86_64-linux.artiq.src;
preSetup = ''
export VERSIONEER_OVERRIDE=${artiqpkgs.packages.x86_64-linux.artiq.version}
export VERSIONEER_REV=${artiqpkgs.sourceInfo.rev}
'';
dependencies = [
"pythonparser"
"scipy"
"numpy"
"prettytable"
"h5py"
"python-dateutil"
"pyqt>=6"
"qasync"
"pyqtgraph"
"pygit2"
"python-levenshtein"
"sipyco"
"llvmlite"
"llvm-tools"
"lld"
"tqdm"
"python-lmdb"
"artiq-comtools"
"platformdirs"
"jsonschema"
];
};
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 {
dependencies = ["sipyco" "asyncserial"];
}
{
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 {
dependencies = ["sipyco" "asyncserial"];
}
{
name = "lda";
version = lda.version;
src = lda.src;
depends = [ "mingw-w64-x86_64-python-sipyco" ];
};
msys2-thorlabs_tcube = msys2.makeMsys2Package {
dependencies = ["sipyco"];
}
{
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 {
dependencies = ["sipyco" "asyncserial"];
}
{
name = "newfocus8742";
version = newfocus8742.version;
src = newfocus8742.src;
depends = [ "mingw-w64-x86_64-python-sipyco" ];
};
msys2-hut2 = msys2.makeMsys2Package {
dependencies = ["sipyco"];
}
{
name = "hut2";
version = hut2.version;
src = hut2.src;
depends = [ "mingw-w64-x86_64-python-sipyco" ];
};
msys2-flake8-artiq = msys2.makeMsys2Package {
dependencies = ["sipyco"];
}
{
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
dependencies = ["flake8"];
}
{
name = "trap-dac-utils";
version = trap-dac-utils.version;
src = trap-dac-utils.src;
dependencies = trap-dac-utils.condaDependencies;
}
{
name = "dax";
version = dax.version;
src = dax.src;
dependencies = dax.condaDependencies;
}
{
name = "dax-applets";
version = dax-applets.version;
src = dax-applets.src;
dependencies = ["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 = readStringListFromFile pythonparserDependenciesFile;
};
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 = readStringListFromFile sipycoDependenciesFile;
};
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 = (readStringListFromFile comtoolsDependenciesFile) ++ ["mingw-w64-clang-x86_64-python-sipyco"];
};
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 =
(readStringListFromFile artiqDependenciesFile)
++ ["mingw-w64-clang-x86_64-python-sipyco" "mingw-w64-clang-x86_64-python-pythonparser" "mingw-w64-clang-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-clang-x86_64-python" "mingw-w64-clang-x86_64-python-pyserial"];
};
msys2-korad_ka3005p = msys2.makeMsys2Package {
name = "korad_ka3005p";
version = korad_ka3005p.version;
src = korad_ka3005p.src;
depends = ["mingw-w64-clang-x86_64-python-sipyco" "mingw-w64-clang-x86_64-python-asyncserial"];
};
msys2-novatech409b = msys2.makeMsys2Package {
name = "novatech409b";
version = novatech409b.version;
src = novatech409b.src;
depends = ["mingw-w64-clang-x86_64-python-sipyco" "mingw-w64-clang-x86_64-python-asyncserial"];
};
msys2-lda = msys2.makeMsys2Package {
name = "lda";
version = lda.version;
src = lda.src;
depends = ["mingw-w64-clang-x86_64-python-sipyco"];
};
msys2-thorlabs_tcube = msys2.makeMsys2Package {
name = "thorlabs_tcube";
version = thorlabs_tcube.version;
src = thorlabs_tcube.src;
depends = ["mingw-w64-clang-x86_64-python-sipyco" "mingw-w64-clang-x86_64-python-asyncserial"];
};
msys2-newfocus8742 = msys2.makeMsys2Package {
name = "newfocus8742";
version = newfocus8742.version;
src = newfocus8742.src;
depends = ["mingw-w64-clang-x86_64-python-sipyco"];
};
msys2-hut2 = msys2.makeMsys2Package {
name = "hut2";
version = hut2.version;
src = hut2.src;
depends = ["mingw-w64-clang-x86_64-python-sipyco"];
};
msys2-flake8-artiq = msys2.makeMsys2Package {
name = "flake8-artiq";
version = flake8-artiq.version;
src = flake8-artiq.src;
depends = ["mingw-w64-clang-x86_64-python-flake8"];
};
msys2-pykirdy = msys2.makeMsys2Package {
name = "pykirdy";
version = kirdy.packages.x86_64-linux.pykirdy.version;
src = "${kirdy}/pykirdy";
depends = [
"mingw-w64-clang-x86_64-python-numpy"
"mingw-w64-clang-x86_64-python-pyqtgraph"
"mingw-w64-clang-x86_64-python-pyqt6"
"mingw-w64-clang-x86_64-python-qasync"
"mingw-w64-clang-x86_64-python-pglive"
];
};
msys2-linien-common = msys2.makeMsys2Package {
name = "python-linien-common";
version = nix-servo.packages.x86_64-linux.linien-common.version;
src = "${nix-servo.packages.x86_64-linux.linien-common.src}/linien-common";
depends = [
"mingw-w64-clang-x86_64-python-importlib-metadata"
"mingw-w64-clang-x86_64-python-numpy"
"mingw-w64-clang-x86_64-python-rpyc"
"mingw-w64-clang-x86_64-python-scipy"
"mingw-w64-clang-x86_64-python-appdirs"
];
};
msys2-linien-client = msys2.makeMsys2Package {
name = "python-linien-client";
version = nix-servo.packages.x86_64-linux.linien-client.version;
src = "${nix-servo.packages.x86_64-linux.linien-client.src}/linien-client";
depends = [
"mingw-w64-clang-x86_64-python-fabric"
"mingw-w64-clang-x86_64-python-typing_extensions"
"mingw-w64-clang-x86_64-python-linien-common"
];
};
msys2-linien-gui = msys2.makeMsys2Package {
name = "python-linien-gui";
version = nix-servo.packages.x86_64-linux.linien-gui.version;
src = "${nix-servo.packages.x86_64-linux.linien-gui.src}/linien-gui";
depends = [
"mingw-w64-clang-x86_64-python-click"
"mingw-w64-clang-x86_64-python-pyqtgraph"
"mingw-w64-clang-x86_64-python-pyqt5"
"mingw-w64-clang-x86_64-python-requests"
"mingw-w64-clang-x86_64-python-superqt"
"mingw-w64-clang-x86_64-python-linien-client"
];
};
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
msys2-pykirdy
msys2-linien-common
msys2-linien-client
msys2-linien-gui
];
hydraJobs = packages.x86_64-linux;
msys2-offline-installer = pkgs.stdenv.mkDerivation {
name = "msys2-offline-installer";
buildInputs = with pkgs; [p7zip];
src = ./.;
msys2_qt_ifw = pkgs.stdenvNoCC.mkDerivation rec {
name = "msys2_qt_ifw";
srcs = import ./msys2/msys2_qt_ifw_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));
};
devShells.x86_64-linux.msys2 = pkgs.mkShell {
msys2_artiq_root = pkgs.stdenvNoCC.mkDerivation rec {
name = "msys2_artiq_root";
artiq-deps-pkgs = import ./msys2/artiq_dependency_packages.nix {inherit pkgs;};
msys2-pkgs = import ./msys2/msys2_packages.nix {inherit pkgs;};
msys2-base = pkgs.fetchurl {
url = "https://github.com/msys2/msys2-installer/releases/download/2024-05-07/msys2-base-x86_64-20240507.tar.xz";
name = "base";
sha256 = "sha256-RiXJqvmFDaItr6KgoWTekUPHue4i/LM4uBqfVx9HKpc=";
};
zadig-binary = pkgs.fetchurl {
url = "https://github.com/pbatard/libwdi/releases/download/v1.5.1/zadig-2.9.exe";
name = "zadig";
sha256 = "sha256-TsqpXfPaNiFIagQ674swULi6/nyQFAKHHoFiKe+CA5s=";
};
src = ./.;
buildInputs = [pkgs.gnutar pkgs.zstd pkgs.pacman pkgs.fakeroot];
phases = ["installPhase"];
installPhase = ''
mkdir $out
mkdir -p tmp/cache
tar -xvf ${msys2-base} --strip-components=1 -C $out/ msys64
printf "\n[artiq]\nSigLevel = Optional TrustAll\nServer = https://msys2.m-labs.hk/artiq-beta\n" >> $out/etc/pacman.conf
cat $out/etc/pacman.conf | sed -e "s|/etc/pacman.d|$out/etc/pacman.d|g" -e "s|SigLevel = Required|SigLevel = Never|g" -e "s|CheckSpace||g" > tmp/pacman.conf
sed -i '/\[mingw32\]/,/^$/d; /\[clang32\]/,/^$/d; /\[mingw64\]/,/^$/d; /\[ucrt64\]/,/^$/d; /\[clangarm64\]/,/^$/d;' $out/etc/pacman.conf
fakeroot pacman -U --asdeps --noconfirm --cachedir tmp/cache --config tmp/pacman.conf --root $out ${pkgs.lib.concatStringsSep " " (map (p: "${p}") msys2-pkgs)}
fakeroot pacman -U --asdeps --noconfirm --cachedir tmp/cache --config tmp/pacman.conf --root $out ${pkgs.lib.concatStringsSep " " (map (p: "${p}") artiq-deps-pkgs)}
fakeroot pacman -U --noconfirm --cachedir tmp/cache --config tmp/pacman.conf --root $out ${msys2-artiq}/*.pkg.tar.zst ${msys2-artiq-comtools}/*.pkg.tar.zst ${msys2-pythonparser}/*.pkg.tar.zst ${msys2-sipyco}/*.pkg.tar.zst
cp ${zadig-binary} $out/zadig.exe
cp -r ${artiqpkgs.packages.x86_64-linux.artiq-manual-html} $out/artiq-manual-html
mkdir -p $out/clang64/etc/ssl/certs
cp -f $out/usr/ssl/certs/ca-bundle.crt $out/clang64/etc/ssl/certs/ca-bundle.crt
cp -f $out/usr/ssl/cert.pem $out/clang64/etc/ssl/cert.pem
cp -f $out/usr/ssl/certs/ca-bundle.trust.crt $out/clang64/etc/ssl/certs/ca-bundle.trust.crt
rm -rf $out/mingw64* $out/clang32* $out/clangarm64* $out/mingw32* $out/ucrt64* \
$out/var/lib/pacman/sync/mingw64* $out/var/lib/pacman/sync/clang32* $out/var/lib/pacman/sync/clangarm64* \
$out/var/lib/pacman/sync/mingw32* $out/var/lib/pacman/sync/ucrt64* \
$out/etc/pacman.d/mirrorlist.mingw64 $out/etc/pacman.d/mirrorlist.clang32 $out/etc/pacman.d/mirrorlist.clangarm64 \
$out/etc/pacman.d/mirrorlist.mingw32 $out/etc/pacman.d/mirrorlist.ucrt64
'';
};
phases = ["buildPhase" "installPhase"];
buildPhase = ''
export HOME=`mktemp -d`
cp -r $src/installer/qt-ifw qt-ifw
# needed for sed and 7z
chmod -R 700 qt-ifw
sed -i "s|@DATE@|$(date +'%Y-%m-%d')|g" qt-ifw/config/config.xml qt-ifw/packages/com.msys2.root/meta/package.xml ;
sed -i "s|@VERSION@|${artiqpkgs.packages.x86_64-linux.artiq.version}|g" qt-ifw/config/config.xml qt-ifw/packages/com.msys2.root/meta/package.xml ;
7z a -mx9 -md128m "qt-ifw/packages/com.msys2.root/data/msys64.7z" "$msys2_artiq_root/"*
${pkgs.wine64Packages.unstable}/bin/wine $msys2_qt_ifw/clang64/bin/binarycreator.exe \
-t "$msys2_qt_ifw/clang64/bin/installerbase.exe" \
-p "qt-ifw/packages" \
-c "qt-ifw/config/config.xml" \
--offline-only \
"artiq-msys2-x86_64.exe" \
-v
'';
installPhase = ''
mkdir -p $out
cp artiq-msys2-x86_64.exe $out/artiq-msys2-x86_64-${artiqpkgs.packages.x86_64-linux.artiq.version}.exe
mkdir -p $out/nix-support/
for i in $out/*.*; do
echo file binary-dist $i >> $out/nix-support/hydra-build-products
done
'';
};
};
hydraJobs = packages.x86_64-linux;
formatter.x86_64-linux = pkgs.alejandra;
devShells.x86_64-linux = {
msys2 = pkgs.mkShell {
name = "dev-shell-msys2";
buildInputs = with pkgs; [
curl
pacman
fakeroot
p7zip
msys2.wine-msys2
wine64Packages.unstable
];
};
};
};
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<Installer>
<Name>MSYS2 with ARTIQ</Name>
<Version>@VERSION@</Version>
<Title>MSYS2 with ARTIQ</Title>
<Publisher>M-Labs Ltd.</Publisher>
<ControlScript>control.js</ControlScript>
<StartMenuDir>MSYS2 with ARTIQ</StartMenuDir>
<RunProgram>@TargetDir@/clang64.exe</RunProgram>
<RunProgramArguments></RunProgramArguments>
<InstallerApplicationIcon>artiq</InstallerApplicationIcon>
<InstallerWindowIcon>artiq.ico</InstallerWindowIcon>
<InstallActionColumnVisible>false</InstallActionColumnVisible>
<MaintenanceToolName>uninstall</MaintenanceToolName>
<SupportsModify>false</SupportsModify>
<RepositorySettingsPageVisible>false</RepositorySettingsPageVisible>
<SaveDefaultRepositories>false</SaveDefaultRepositories>
</Installer>

View File

@@ -0,0 +1,20 @@
function Controller()
{
installer.setDefaultPageVisible(QInstaller.LicenseCheck, false);
if (installer.isInstaller()) {
installer.setDefaultPageVisible(QInstaller.ComponentSelection, false);
installer.setDefaultPageVisible(QInstaller.ReadyForInstallation, false);
}
}
Controller.prototype.IntroductionPageCallback = function()
{
const widget = gui.currentPageWidget();
const radioNames = ["PackageManagerRadioButton", "UpdaterRadioButton"];
for (const name of radioNames) {
const el = gui.findChild(widget, name);
if (el != null) {
el.hide();
}
}
}

View File

@@ -0,0 +1,68 @@
function cancelInstaller(message)
{
installer.setDefaultPageVisible(QInstaller.Introduction, false);
installer.setDefaultPageVisible(QInstaller.TargetDirectory, false);
installer.setDefaultPageVisible(QInstaller.ComponentSelection, false);
installer.setDefaultPageVisible(QInstaller.ReadyForInstallation, false);
installer.setDefaultPageVisible(QInstaller.StartMenuSelection, false);
installer.setDefaultPageVisible(QInstaller.PerformInstallation, false);
installer.setDefaultPageVisible(QInstaller.LicenseCheck, false);
var abortText = "<font color='red'>" + message +"</font>";
installer.setValue("FinishedText", abortText);
installer.setValue("RunProgram", null);
}
function isSupported()
{
if (systemInfo.kernelType === "winnt") {
var major = parseInt(systemInfo.kernelVersion.split(".", 1));
var minor = parseInt(systemInfo.kernelVersion.split(".", 2)[1]);
// Windows >= 8.1
if (major > 6 || (major == 6 && minor >= 3)) {
return true;
}
}
return false;
}
function createShortcuts()
{
var windir = installer.environmentVariable("WINDIR");
if (windir === "") {
QMessageBox["warning"]( "Error" , "Error", "Could not find windows installation directory");
return;
}
component.addOperation("CreateShortcut", "@TargetDir@/clang64.exe", "@StartMenuDir@/MSYS2 with ARTIQ.lnk", "iconPath=@TargetDir@/clang64.exe");
component.addOperation("CreateShortcut", "@TargetDir@/zadig.exe", "@StartMenuDir@/Zadig Driver Installer.lnk", "iconPath=@TargetDir@/zadig.exe");
component.addOperation("CreateShortcut", "@TargetDir@/artiq-manual-html/index.html", "@StartMenuDir@/ARTIQ Manual.lnk");
component.addOperation( "Execute",
["@TargetDir@\\usr\\bin\\bash.exe", "--login", "-c", "exit"]);
}
function Component() {
if (!isSupported()) {
cancelInstaller("Installation on " + systemInfo.prettyProductName + " is not supported");
return;
}
var systemDrive = installer.environmentVariable("SystemDrive");
// Use C: as a default for messed up systems.
if (systemDrive === "") {
systemDrive = "C:";
}
var targetDir = installer.value("TargetDir", systemDrive+"\\msys64")
installer.setValue("TargetDir", targetDir);
}
Component.prototype.createOperations = function()
{
component.createOperations();
createShortcuts();
}

View File

@@ -0,0 +1,9 @@
<?xml version="1.0"?>
<Package>
<DisplayName>MSYS2 with ARTIQ</DisplayName>
<Description>Cygwin-derived Posix-like env. for Windows with Arch Linux's Pacman and pre-installed ARTIQ software</Description>
<Version>@VERSION@</Version>
<ReleaseDate>@DATE@</ReleaseDate>
<Default>true</Default>
<Script>installscript.js</Script>
</Package>

View File

@@ -1,32 +1,19 @@
arch=("any")
mingw_arch=("mingw64")
mingw_arch=("clang64")
pkgver=${DRV_VERSION}
url="https://m-labs.hk"
source=("source.tar")
sha256sums=("SKIP")
build() {
mkdir mingw64
export PYTHONPATH=`pwd`/mingw64/lib/python3.10/site-packages
mkdir clang64
export PYTHONPATH=`pwd`/clang64/lib/python3.12/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.10/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
wine-msys2-build python -m build --wheel --skip-dependency-check --no-isolation
}
package() {
cp -R mingw64 ${pkgdir}
cd source
wine-msys2-build python -m installer --destdir="${pkgdir}" --prefix="clang64/" dist/*.whl
}

View File

@@ -0,0 +1,20 @@
mingw-w64-clang-x86_64-python-h5py
mingw-w64-clang-x86_64-python-pyqt6
mingw-w64-clang-x86_64-qt6-svg
mingw-w64-clang-x86_64-python-qasync
mingw-w64-clang-x86_64-python-pyqtgraph
mingw-w64-clang-x86_64-python-numpy
mingw-w64-clang-x86_64-python-scipy
mingw-w64-clang-x86_64-python-dateutil
mingw-w64-clang-x86_64-python-prettytable
mingw-w64-clang-x86_64-python-tqdm
mingw-w64-clang-x86_64-python-pygit2
mingw-w64-clang-x86_64-python-llvmlite
mingw-w64-clang-x86_64-python-levenshtein
mingw-w64-clang-x86_64-python-lmdb
mingw-w64-clang-x86_64-python-platformdirs
mingw-w64-clang-x86_64-lld
mingw-w64-clang-x86_64-llvm
mingw-w64-clang-x86_64-openocd
mingw-w64-clang-x86_64-bscan-spi-bitstreams
mingw-w64-clang-x86_64-python-jsonschema

View File

@@ -0,0 +1,643 @@
{pkgs}: [
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-libunwind-22.1.3-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-libunwind";
sha256 = "0pzs0cpjaznnfvbm69ck0ywq9wvq7zhp88kg50qb258760xk2mx2";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-libc++-22.1.3-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-libc++";
sha256 = "03wfahxbzpl3sb90w56r4d4fdmy4kqfchn0avi2h3nww96vrii27";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-expat-2.7.5-2-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-expat";
sha256 = "1jaym2scnq7wrpsmdw71zsjlx3ji6njmrizd9x5qfl63nkryg9sz";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-bzip2-1.0.8-3-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-bzip2";
sha256 = "1n8zf2kk1xj7wiszp6mjchy1yzpalddbj0cj17qm625ags2vzflm";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-libffi-3.5.2-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-libffi";
sha256 = "02lc36mk43vi6lg4gb4dkyigk56fkqdk7b3ycapmih1w7kfyqq2r";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-mpdecimal-4.0.1-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-mpdecimal";
sha256 = "17nk5cj3rfsi82kay359kalrajf0qmi70innvr6h36g5d57mnwf4";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-wineditline-2.208-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-wineditline";
sha256 = "0x9d1ax81p0k1863z0jdhqg7454hb0svvil1f4aiqy1vlhqshfl5";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-zlib-1.3.2-2-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-zlib";
sha256 = "0phbb2wz5l01ahkwwf5xm0v7bncp6h5db6dqh970sk7j5cpxpn4n";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-pcre2-10.47-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-pcre2";
sha256 = "0ghwnhlb47fc36zc71rrxmkm10caip942fjkaym2rgvlgdn8q2zn";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-libiconv-1.19-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-libiconv";
sha256 = "1v09sgng6n2m7jh9qlvj1z6s1185qr0an719zgzwvvi342gsri16";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-gettext-runtime-1.0-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-gettext-runtime";
sha256 = "145vd12i2i85km425pkqlqfnjl1w794wkfl9haf9sv414x3sc8kg";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-libtre-0.9.0-2-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-libtre";
sha256 = "0iswbz4d3nrgq6wsdy9887rqwfvz8bh1lj7vfb89s0j54nrjg2yf";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-libsystre-1.0.2-2-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-libsystre";
sha256 = "16dzv6czgsr5mk1s9ay9syxg4vbqv2smnz07k5zfr94585i5wdca";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-ncurses-6.6-4-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-ncurses";
sha256 = "0m90y87zqhkgynwj73pk2c96drdk56r70jsgn5zask7bn9hlrd6b";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-openssl-3.6.2-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-openssl";
sha256 = "0rw6pwlvd6m0n8nr8rch12kiscb6i553rpa6zk8lwkck5lq8xibx";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-tcl-8.6.17-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-tcl";
sha256 = "1q66vdgdxzwyf4ai4ml76jnscffj99pjrq22y4fpacxhsj62i2l1";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-sqlite3-3.52.0-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-sqlite3";
sha256 = "05b0yb75z86d83np4lczciz040zc25sax60jq7d6l858z96yk9jb";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-tk-8.6.17-2-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-tk";
sha256 = "1jwhxsqr5d7dfqbip16spppfwnqxqcayx2hycnk8dsbxhw28cldn";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-libb2-0.98.1-3-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-libb2";
sha256 = "1qn2xlvv1xc3qyfqar3fdmg7mqfsvaa1x68y9jwbvar7xbqnjb3g";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-xz-5.8.3-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-xz";
sha256 = "0yv1viwvaxnj4hrgpb2bxav1f57015zcpcfs9amqkp5mv8xc7cfw";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-tzdata-2026a-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-tzdata";
sha256 = "0jh6ri6k4a0d8arg045fgvsw9d76ah3n1wmrnaxpq6akvpc4av2q";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-3.14.3-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python";
sha256 = "1a7bj0dcq6mkshlf6v85n0n4xfyswk206cfniiv284vbl7yzv3va";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-llvm-openmp-22.1.3-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-llvm-openmp";
sha256 = "1ixpxyz3garbpa6v4vnbaqsxq0gmiix97f4jg6vim4jqiwbi0dkg";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-openblas-0.3.32-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-openblas";
sha256 = "0h2610izhxpgmmf3dip2pj2n78gs7kmsiss4va9hw8d3v71sp70a";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-numpy-2.4.1-2-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-numpy";
sha256 = "0860glzjn6g4xnfwgbhciidysn1p50rksm3n2dv7lvjnndnkn1l3";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-aws-c-common-0.12.6-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-aws-c-common";
sha256 = "1fkzmhxws4gfzqlqvg77x59nhbal5gxsq6hly6xixv1x35cw21cd";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-aws-c-compression-0.3.2-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-aws-c-compression";
sha256 = "1mm2gpl9wck9zbxr15pcw1115cfkl0qh7mwhj6g444dz80jg958j";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-aws-c-cal-0.9.13-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-aws-c-cal";
sha256 = "1f49l81f1sca2y0l3bnnrfmzlfh4lg25ydcvp356cncx1658w93h";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-aws-c-io-0.26.3-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-aws-c-io";
sha256 = "1v4gwz35gbx58k52mfz4hdp13hqq3yv4xv1xwssy6gan50spzjib";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-aws-c-http-0.10.14-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-aws-c-http";
sha256 = "0r1a5pzvm135v3y8w776l5vkrg7a5wjp2as47ff31ahy4y9xxzl7";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-aws-c-sdkutils-0.2.4-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-aws-c-sdkutils";
sha256 = "01knfi2gb1zrvcmk6pm6v7mb238d4fqmcnj42i95v3k6k7hplw2c";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-aws-c-auth-0.10.1-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-aws-c-auth";
sha256 = "1nnvzhiakbvlk1habqqihrp3gwqmynk7jygpjxmqc5gdk0s69l3p";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-aws-checksums-0.2.10-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-aws-checksums";
sha256 = "10hl5sm92fg4bg7arcc8jv8fsrbxvl3dgzf6dkgciwfn3b1g4dm3";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-aws-c-s3-0.12.2-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-aws-c-s3";
sha256 = "1vwxh4byzcnz7x4zgy3ys1jpyhslqw0zx4qxrk7szkm6l9brcmy7";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-libaec-1.1.6-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-libaec";
sha256 = "1fmabzkkgx1vdlr2qjfqcw3ri9milyj9bxmg0aicn2s1lm6d3r5d";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-zlib-ng-2.3.3-2-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-zlib-ng";
sha256 = "01dn2v67axz3knj40g01lghklqa6dl00csmqcbzvg40kfqg5dx6g";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-hdf5-2.1.1-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-hdf5";
sha256 = "1i128mi20k5kc9j0ybkmzm09j6ji00qkmbgbfqhzfy38ks8jzp4a";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-h5py-3.16.0-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-h5py";
sha256 = "1wf55v5prahs58arbl9prnljl37s61qjdjbk7mgcgzjfakxdq9bb";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-pyqt6-sip-13.11.1-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-pyqt6-sip";
sha256 = "0iy51rkcqb8w4x1yk6dimg8bm1kgpr6hi77w9y1xq33mxm7mrx0w";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-double-conversion-3.4.0-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-double-conversion";
sha256 = "0hmlwjrnj7qkjsnsmgycsd8qxqqlwzpzpps8cb6jlblw2lrv17c6";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-dbus-1.16.2-3-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-dbus";
sha256 = "097k7pr1mgi6bl267lh9kf9y0pqd4504bwlagjmjrdlg2rwbrr0m";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-brotli-1.2.0-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-brotli";
sha256 = "0pa83a86xkqd6r80hnz0ldafhxcgf13vvb0vlnv8cnzchfbvpgr9";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-libpng-1.6.57-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-libpng";
sha256 = "1hhjjdr3hvq9mn7mxsyd1gjrvzzvw03mf02pzqf1znrl3ld6k7xf";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-packaging-26.0-2-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-packaging";
sha256 = "0v7yms7l7y4spy4iv5hb1vhxi3yxnzr3yafzxxngbky02im9i9bv";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-glib2-2.88.0-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-glib2";
sha256 = "1vd57cl06sp7vncwl2qr7cw7k8ds5j3hs8hsyb3dcmdpxz5abl71";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-graphite2-1.3.14-3-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-graphite2";
sha256 = "01lgbxaanzvqmikvwqyyfvnsc71rx1vl28ixmdd112m5l4qnswnr";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-harfbuzz-13.2.1-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-harfbuzz";
sha256 = "06yc6bzjdazirs12k3qdjw6d66qjlj05ln4sidrmx71pjsbbfd40";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-freetype-2.14.3-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-freetype";
sha256 = "1fifsz7zf0pgm4n9qm9jfpcy66sc6asrma4jbww5qamhhh9vddx5";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-icu-78.3-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-icu";
sha256 = "0v54sks90s3a704jkwb12828cfp9ymcvbk1650y9nifg453n1n18";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-libjpeg-turbo-3.1.4.1-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-libjpeg-turbo";
sha256 = "1li9ynx1nirq0sa926v7pqd0fxx3frzg14ay2xkpzk4nj1d1ri28";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-md4c-0.5.2-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-md4c";
sha256 = "1ikssajqdak1chhr84d8dzkq9ygkvmdqkrqqqv745wwwrkcmmars";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-vulkan-loader-1~1.4.341.0-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-vulkan-loader";
sha256 = "0zv54z73lfxfajy42fpklr4hhbnbpp92wnryhgm00rynh8j5v36x";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-vulkan-headers-1~1.4.341.0-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-vulkan-headers";
sha256 = "0zasvg3phiikmr6yz3vdpfrpnxxfal0k2ixbnd19l1c61lvpx6zb";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-zstd-1.5.7-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-zstd";
sha256 = "1hrx54k2s3dcs8fhwdwms5amr4gjid1d20b2b4302xyjg9yyvpxl";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-qt6-base-6.11.0-3-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-qt6-base";
sha256 = "1cm1qilddpfbbrx9kmwimr5qpqpv1kd54rnmficgn26qrkrhcjrn";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-pyqt6-6.11.0-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-pyqt6";
sha256 = "0jl03n4vqw0mvy97y8wz8xbw99mkc65fq9rllzxdxzn57a3ym33k";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-qt6-svg-6.11.0-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-qt6-svg";
sha256 = "0z0b9yjab2gh6ly0r3b0ldlli3d256c2lpcqj69sjzsp4k0ksb6q";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-qasync-0.27.1-4-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-qasync";
sha256 = "0afz9q9fj0zkm73gks5xamgjh17ngmbbgwxvnd3l2bw5ivx7c6yp";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-pyqtgraph-0.13.7-5-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-pyqtgraph";
sha256 = "13p79paxkj3c6793s632vd91fnvzc9v4mlrbwkszxccv0fbyfdav";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-scipy-1.17.1-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-scipy";
sha256 = "19lh801br4y8fwklybn800wb37a68n46g7hyyz4c2baasx6ryajz";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-six-1.17.0-3-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-six";
sha256 = "14v0bn0fbc2kcd1qaz0z98fvldbj09pa035qbkfvzq7qvrxzmpl9";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-dateutil-2.9.0.post0-4-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-dateutil";
sha256 = "032yxyzax3nq69nvdgbxfrii2i2hgm0dmajr21q2ddh9d79gsj70";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-wcwidth-0.6.0-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-wcwidth";
sha256 = "075gk1a5g6gi65hvccj7w1dsggh2xxd0gcy6xza8mdsx3yx2avfb";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-prettytable-3.17.0-3-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-prettytable";
sha256 = "0i1h3hc9dr6zawwlbn9r75f7q4y58c2q78xxkdsflsan0wk74b3r";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-colorama-0.4.6-5-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-colorama";
sha256 = "04bwm7s2s1v66rfdfvw2n5mvmfjnrvrcf1ylvxf978n7ssrx7vwm";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-tqdm-4.67.3-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-tqdm";
sha256 = "06c9yz5fb6a3kq27kfpfcf6ikkn3nggcpsj6zwf6c9wyrdmjdy9s";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-http-parser-2.9.4-3-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-http-parser";
sha256 = "0na0kji862wr80xym65rr8m9qcyp2424acirr2gn696lflrq3arw";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-libssh2-1.11.1-2-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-libssh2";
sha256 = "066808p483nhivnd02czs9aqd24arcggvgxwg79hg2kax4wdmav5";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-libgit2-1.9.2-2-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-libgit2";
sha256 = "031f7a6gyvc8gfmac83fd3xnhw20vjbigbkd8haj0d9mvxgs8c7z";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-pycparser-3.0-2-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-pycparser";
sha256 = "11kd7s2qg12l6zjdd3ajn7a7w7qd500szfwi46y3lx4fsbwdliyh";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-cffi-2.0.0-3-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-cffi";
sha256 = "1pyyqgijaw7z7wn4ws2qnm7g0jcyzn5plc7d62cx0qraq095cx1d";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-pygit2-1.19.2-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-pygit2";
sha256 = "1r6mb1f2ra36mq7bs4asrklx228m2bs27z5ad8c5wqscrgqvlzir";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-llvmlite-0.46.0-3-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-llvmlite";
sha256 = "103i452md5fqipzmdxzzgqhiqr7s5hssr62kcwq5p29f0nyymdhl";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-rapidfuzz-3.14.5-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-rapidfuzz";
sha256 = "1a874049h4h1fgk51abplviyj8qgp1wn6qhjpj88dj48qvjb47f4";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-levenshtein-0.27.3-3-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-levenshtein";
sha256 = "0xmb776vcaqxav5dnnn8vx3bwkw4fz2pm076p12bnx2zb2br3nmk";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-lmdb-0.9.33-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-lmdb";
sha256 = "0vmih3yhady422c6kpa0mzj1iv7ywd6xawzsz1zv46kcr88ylrsb";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-lmdb-1.6.2-3-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-lmdb";
sha256 = "0xgazzln2dyq6zjl6fkmc321asv3rl1wzyiz6xcagc4vfic5xrpv";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-platformdirs-4.9.4-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-platformdirs";
sha256 = "0aaqsmfm2rrf4whi542bmna3hxnq0ww0ac71kaz9lygwyp538if7";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-libxml2-2.15.2-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-libxml2";
sha256 = "1j0hkgz6dglp9hsj867l3n5b8n79z99k4ini0b2bf3migk847fkz";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-llvm-libs-22.1.3-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-llvm-libs";
sha256 = "145188gj46k88lsr9jfc62g2y0cb4498a79p9m7cspz09irmbdcy";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-lld-22.1.3-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-lld";
sha256 = "1vpf96rgiy2gj6y3r5v2dh11zf9bry4f5g9bqw2afpp5w4a3djmr";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-llvm-tools-22.1.3-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-llvm-tools";
sha256 = "1shjpbaj0sxvx54j9fbwnddiswhsp1bwgmhbs99kf9ih4f6l1ziv";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-llvm-22.1.3-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-llvm";
sha256 = "0x87yxljvhnglnq0xvhz3nmapdbcphd3qbr34p05kby1av6f11vv";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-hidapi-0.15.0-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-hidapi";
sha256 = "0469jmqnb65hpn6nps51fhjh56ji0j20lsgl1gwyhyfi2idnzm05";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-libusb-1.0.28-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-libusb";
sha256 = "1xli42lj8pkzjav36i0va30bmi0zmn0zzljmyk1vkf0l1kban7a1";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-confuse-3.3-4-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-confuse";
sha256 = "13f96y40j9bbz7lzw1h1axz499g100v3qxac09h9w0570c9siwhv";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-libftdi-1.5-13-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-libftdi";
sha256 = "0a5hmwmzvp8dg3i6r6r9cjs9lsfp8vdi33rkygb8flzz7kndh5my";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-libjaylink-0.4.0-2-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-libjaylink";
sha256 = "0vggmn2f7y755kvhgqldamk1bbdibpa8ang9rpir1hv12jqfmr03";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-capstone-5.0.7-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-capstone";
sha256 = "1g3lzqng9mrfh4xapc2bvgwzd8qi4cf30w1b3d75972c714hl3bs";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-openocd-0.12.0-4-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-openocd";
sha256 = "1swwqjlvhwrxxmbz8v3c0mi51dpgz0rma5dpgcz4xf2339mm0c8i";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-bscan-spi-bitstreams-1.0-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-bscan-spi-bitstreams";
sha256 = "05yfr0xaqdfyl315x2sls26nx0ifqbpghya3ixvpmcks4zjcgkrw";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-attrs-25.4.0-3-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-attrs";
sha256 = "1hcrlpazfxxazd0wihdc5bh2r2491li696rfl7fqj32vhxmvq52j";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-typing_extensions-4.15.0-3-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-typing_extensions";
sha256 = "1bib3a2495dgv3nl8v65g8sl8bylhykxi6hpqbap31fgr8r3q1vq";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-rpds-py-0.30.0-3-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-rpds-py";
sha256 = "06shrqml0523ws5yc7sdyalkip32lyhv3jr5ak7ia6kyb827391l";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-referencing-0.37.0-3-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-referencing";
sha256 = "0clcfw8waw1wmqk911fl1693asj1zabrk0a8ssyv6n0z6dz5lyqq";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-jsonschema-specifications-2025.9.1-3-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-jsonschema-specifications";
sha256 = "1v6rr69da35z92a7kmkqf27k6nznwgkxc84abknr75qbvl7nz4ji";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-jsonschema-4.26.0-2-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-jsonschema";
sha256 = "0swvs4m094bjzalrrngp6c93jjrf5dw1n86w1zv0pqccy8h9bwnf";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-multidict-6.6.4-3-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-multidict";
sha256 = "11shy5i3pp9p37wl49si45rnxwvgf8zps0xvcpmrsbyziw03vis4";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-idna-3.11-3-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-idna";
sha256 = "1s1jjlg0gsfm2frv58p4k0h0zajqiwf9idxwg80j4hky334r230a";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-propcache-0.4.1-3-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-propcache";
sha256 = "197r6qixf0lmhvjf67d4z8fd4rgar2hdd7zmpk0a729n3s93rjbb";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-yarl-1.22.0-4-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-yarl";
sha256 = "1ki5da7ljyr1a899h2xgb3mgmbcgfczjjhabnnkjlwbj2f49c2ls";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-frozenlist-1.8.0-3-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-frozenlist";
sha256 = "0dnp1z85lxi36982d9jny1pg7zjv64hjigacwna475nfhm3883hs";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-aiohappyeyeballs-2.6.1-3-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-aiohappyeyeballs";
sha256 = "0mrjwzbg6cnl3s0x72gx72rcawlf3qn8h4dxmkww21gm57zp64za";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-aiosignal-1.4.0-3-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-aiosignal";
sha256 = "1q25652j1f2q892zb2ng3nk9x5sbfk8kzj6whks0jvg9na8r660r";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-aiohttp-3.13.5-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-aiohttp";
sha256 = "07q8wx17abn8fb3s6lglq88qv17imkh8z16mffajddybxw785zmd";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-regex-2026.4.4-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-regex";
sha256 = "1ki7dmmdbw09vna2g1nwvr73gml0n4z85lmh45nz9iw7xcnprpi8";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-pybase64-1.4.3-3-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-pybase64";
sha256 = "0mlplagvfyifrd6zapa6gax6sqnfhw3h640z8lzrggwdllh2vbnr";
})
]

View File

@@ -0,0 +1,2 @@
mingw-w64-clang-x86_64-python-numpy
mingw-w64-clang-x86_64-python-aiohttp

View File

@@ -1,83 +1,94 @@
{ pkgs }:
let
{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)));
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)"
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
export FONTCONFIG_PATH=$HOME/fonts
mkdir $FONTCONFIG_PATH
cat > $FONTCONFIG_PATH/fonts.conf << EOF
<fontconfig>
</fontconfig>
EOF
'';
wine-msys2 = pkgs.writeShellScriptBin "wine-msys2"
wine-msys2 =
pkgs.writeShellScriptBin "wine-msys2"
''
export WINEDEBUG=-all
export WINEPATH=Z:${msys2-env}/mingw64/bin
exec ${pkgs.wineWowPackages.stable}/bin/wine64 cmd
export WINEDEBUG=-all
export WINEPATH=Z:${msys2-env}/clang64/bin
exec ${pkgs.wine64Packages.unstable}/bin/wine cmd
'';
wine-msys2-build = pkgs.writeShellScriptBin "wine-msys2-build"
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 $@
export HOME=`mktemp -d`
export WINEDEBUG=-all
export WINEPATH=Z:${msys2-env}/clang64/bin
${silenceFontconfig}
exec ${pkgs.wine64Packages.unstable}/bin/wine $@
'';
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
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-clang-${name}"
pkgname="mingw-w64-clang-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
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
};
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
'';
};
};
}

View File

@@ -6,19 +6,40 @@ 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
curl -L https://repo.msys2.org/msys/x86_64/pacman-mirrors-20260129-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.10 mingw-w64-x86_64-python-numpy mingw-w64-x86_64-python-setuptools > $MSYS2DIR/packages.txt
pacman --root $MSYS2DIR --config $MSYS2DIR/etc/pacman.conf \
--cachedir $MSYS2DIR/msys/cache --sync --print-format "%l %n" \
mingw-w64-clang-x86_64-cc \
mingw-w64-clang-x86_64-python-numpy \
mingw-w64-clang-x86_64-python-setuptools mingw-w64-clang-x86_64-python-build mingw-w64-clang-x86_64-python-installer > $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
cat artiq_dependencies.txt comtools_dependencies.txt pythonparser_dependencies.txt sipyco_dependencies.txt | pacman --root $MSYS2DIR --config $MSYS2DIR/etc/pacman.conf \
--cachedir $MSYS2DIR/msys/cache --sync --print-format "%l %n" - > $MSYS2DIR/artiq_dependency_packages.txt
pacman --root $MSYS2DIR --config $MSYS2DIR/etc/pacman.conf --cachedir $MSYS2DIR/msys/cache \
--sync --print-format "%l %n" mingw-w64-clang-x86_64-qt-installer-framework > $MSYS2DIR/qt_ifw_packages.txt
function generate_nix_packages_from_pacman() {
local in=$1
local out=$2
echo -n "{pkgs}: [" > $out
while IFS= read -r line; do
read -r url package <<< "$line"
hash=$(nix-prefetch-url $url --name $package)
echo "
(pkgs.fetchurl {
url = \"$url\";
name = \"$package\";
sha256 = \"$hash\";
})" >> $out
done < $in
echo "]" >> $out
}
generate_nix_packages_from_pacman $MSYS2DIR/packages.txt msys2_packages.nix
generate_nix_packages_from_pacman $MSYS2DIR/qt_ifw_packages.txt msys2_qt_ifw_packages.nix
generate_nix_packages_from_pacman $MSYS2DIR/artiq_dependency_packages.txt artiq_dependency_packages.nix

View File

@@ -1,182 +1,253 @@
{ pkgs } : [
{pkgs}: [
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-libunwind-22.1.3-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-libunwind";
sha256 = "0pzs0cpjaznnfvbm69ck0ywq9wvq7zhp88kg50qb258760xk2mx2";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libwinpthread-git-10.0.0.r258.g530c58e17-1-any.pkg.tar.zst";
sha256 = "1p2dcs8m50r3lk6myi1y79hmbwsyqr9r8v6k9gl0xa9vda4m7a5s";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-libc++-22.1.3-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-libc++";
sha256 = "03wfahxbzpl3sb90w56r4d4fdmy4kqfchn0avi2h3nww96vrii27";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-gcc-libs-12.2.0-10-any.pkg.tar.zst";
sha256 = "1hql9jmmcpdr97p2ynj45hb70az4l41hcirjk0j1xjg31m2jgfr9";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-libffi-3.5.2-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-libffi";
sha256 = "02lc36mk43vi6lg4gb4dkyigk56fkqdk7b3ycapmih1w7kfyqq2r";
})
(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/clang64/mingw-w64-clang-x86_64-libiconv-1.19-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-libiconv";
sha256 = "1v09sgng6n2m7jh9qlvj1z6s1185qr0an719zgzwvvi342gsri16";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-binutils-2.40-2-any.pkg.tar.zst";
sha256 = "1xa3ni7qg9wzlr903lsqgqisdyvnl28kb3wz2kva21l9i7wwbs7c";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-zlib-1.3.2-2-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-zlib";
sha256 = "0phbb2wz5l01ahkwwf5xm0v7bncp6h5db6dqh970sk7j5cpxpn4n";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-headers-git-10.0.0.r258.g530c58e17-1-any.pkg.tar.zst";
sha256 = "0lxw9hvdniczz5k24ipjvbwcc9p35b97nkn69vb7k8rdp3l95klf";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-libxml2-2.15.2-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-libxml2";
sha256 = "1j0hkgz6dglp9hsj867l3n5b8n79z99k4ini0b2bf3migk847fkz";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-crt-git-10.0.0.r258.g530c58e17-2-any.pkg.tar.zst";
sha256 = "12rwwc41as55wqjsi143wfb4722s1zjqzibs05a0gj9c23mivc3q";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-zstd-1.5.7-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-zstd";
sha256 = "1hrx54k2s3dcs8fhwdwms5amr4gjid1d20b2b4302xyjg9yyvpxl";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-gmp-6.2.1-5-any.pkg.tar.zst";
sha256 = "1v19jx0hrsib7ak5jzbhss7p5zjg9y4kj06bcs8sakqvmyby8mlq";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-llvm-libs-22.1.3-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-llvm-libs";
sha256 = "145188gj46k88lsr9jfc62g2y0cb4498a79p9m7cspz09irmbdcy";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-isl-0.25-1-any.pkg.tar.zst";
sha256 = "0hky9gmd6iz1s3irmp9fk2j10cpqrrw8l810riwr58ynj3i10j2k";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-clang-libs-22.1.3-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-clang-libs";
sha256 = "0xsm111iqy5yq59d7dyxpwmk0d33xxi84qkbydk3qh95mfhkrx4f";
})
(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/clang64/mingw-w64-clang-x86_64-compiler-rt-22.1.3-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-compiler-rt";
sha256 = "100740scz9iyvgrv06vr6d4wx897055hq3mi2i7b9qv21hgacj9y";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-mpfr-4.2.0-1-any.pkg.tar.zst";
sha256 = "1iqpk6i5isf77rmvscmdv1ggrnhbvbfc3g4cyc6xgbp99s616724";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-llvm-tools-22.1.3-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-llvm-tools";
sha256 = "1shjpbaj0sxvx54j9fbwnddiswhsp1bwgmhbs99kf9ih4f6l1ziv";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-mpc-1.3.1-1-any.pkg.tar.zst";
sha256 = "1r7h4xyc56d9n4z6ay315gsb82zmyvrkd7xki9y03y72ym194jlk";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-headers-14.0.0.r9.gca6f2f838-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-headers";
sha256 = "1g3r6lylk9cc7rdbhkdmslwgwkdlm8azm68xwlddc02wm4y72bcz";
})
(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/clang64/mingw-w64-clang-x86_64-crt-14.0.0.r9.gca6f2f838-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-crt";
sha256 = "0pjz4srcmpp7iq1xy0s1iaa7z8l5ji64vsrp9w7gx2g115dl7li5";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-winpthreads-git-10.0.0.r258.g530c58e17-1-any.pkg.tar.zst";
sha256 = "19h7z6svwnfpyhqh5zjz48jwd2nkvnbj1hbvvs524gdjpi3nxprz";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-lld-22.1.3-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-lld";
sha256 = "1vpf96rgiy2gj6y3r5v2dh11zf9bry4f5g9bqw2afpp5w4a3djmr";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-zlib-1.2.13-3-any.pkg.tar.zst";
sha256 = "19r9hf111zb41i7r45ixsx26l4sk8g8apryv1xgj03hq54barikz";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-libwinpthread-14.0.0.r9.gca6f2f838-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-libwinpthread";
sha256 = "1ic5k5p9x57z54c7bkd3szsm9jypvs106y1g1a1jzbnklb6ij4ll";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-gcc-12.2.0-10-any.pkg.tar.zst";
sha256 = "182560g1bl52260v8dbggybl4mir3isyad22zvkb6sndid3iaakw";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-winpthreads-14.0.0.r9.gca6f2f838-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-winpthreads";
sha256 = "0m9wpnd66wza2p8fiikvcjcbbc74vvwqwd0dx0jd41cqnahr5pjl";
})
(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/clang64/mingw-w64-clang-x86_64-clang-22.1.3-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-clang";
sha256 = "12hbrjn1vag2iz5zhjhq4mqhgy0096y1y0yk5nwhy2fw3bn4rc1v";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-bzip2-1.0.8-2-any.pkg.tar.zst";
sha256 = "1kqg3aw439cdyhnf02rlfr1pw1n8v9xxvq2alhn7aw6nd8qhw7z5";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-expat-2.7.5-2-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-expat";
sha256 = "1jaym2scnq7wrpsmdw71zsjlx3ji6njmrizd9x5qfl63nkryg9sz";
})
(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/clang64/mingw-w64-clang-x86_64-bzip2-1.0.8-3-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-bzip2";
sha256 = "1n8zf2kk1xj7wiszp6mjchy1yzpalddbj0cj17qm625ags2vzflm";
})
(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/clang64/mingw-w64-clang-x86_64-mpdecimal-4.0.1-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-mpdecimal";
sha256 = "17nk5cj3rfsi82kay359kalrajf0qmi70innvr6h36g5d57mnwf4";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-gettext-0.21.1-1-any.pkg.tar.zst";
sha256 = "17h4qnv75jns7fq54hqp375v45snmrrn451izyp2nmmr0fw2p0bc";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-wineditline-2.208-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-wineditline";
sha256 = "0x9d1ax81p0k1863z0jdhqg7454hb0svvil1f4aiqy1vlhqshfl5";
})
(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/clang64/mingw-w64-clang-x86_64-pcre2-10.47-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-pcre2";
sha256 = "0ghwnhlb47fc36zc71rrxmkm10caip942fjkaym2rgvlgdn8q2zn";
})
(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/clang64/mingw-w64-clang-x86_64-gettext-runtime-1.0-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-gettext-runtime";
sha256 = "145vd12i2i85km425pkqlqfnjl1w794wkfl9haf9sv414x3sc8kg";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-ncurses-6.4.20230211-1-any.pkg.tar.zst";
sha256 = "0h62y3c45bkff6z3aa8ailz2l16x3s9g3pbyifqx6kwwzv80crgp";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-libtre-0.9.0-2-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-libtre";
sha256 = "0iswbz4d3nrgq6wsdy9887rqwfvz8bh1lj7vfb89s0j54nrjg2yf";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-openssl-3.1.0-1-any.pkg.tar.zst";
sha256 = "01niwg58fass37im83jj1msdhm7kfwnyhvgsgmvh7qhpvfgzfmxl";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-libsystre-1.0.2-2-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-libsystre";
sha256 = "16dzv6czgsr5mk1s9ay9syxg4vbqv2smnz07k5zfr94585i5wdca";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-termcap-1.3.1-6-any.pkg.tar.zst";
sha256 = "1wgbzj53vmv1vm3igjan635j5ims4x19s2y6mgvvc46zgndc2bvq";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-ncurses-6.6-4-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-ncurses";
sha256 = "0m90y87zqhkgynwj73pk2c96drdk56r70jsgn5zask7bn9hlrd6b";
})
(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/clang64/mingw-w64-clang-x86_64-openssl-3.6.2-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-openssl";
sha256 = "0rw6pwlvd6m0n8nr8rch12kiscb6i553rpa6zk8lwkck5lq8xibx";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-tcl-8.6.12-1-any.pkg.tar.zst";
sha256 = "0z66xic67k3j56jvvrwn8sym5yxylyza7ig686z5937nsd29kdw1";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-tcl-8.6.17-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-tcl";
sha256 = "1q66vdgdxzwyf4ai4ml76jnscffj99pjrq22y4fpacxhsj62i2l1";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-sqlite3-3.41.2-1-any.pkg.tar.zst";
sha256 = "0s1kzipdz7rczpk32wkbc90yjw6wbcxmzlgnd7j99fzwaawblbnp";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-sqlite3-3.52.0-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-sqlite3";
sha256 = "05b0yb75z86d83np4lczciz040zc25sax60jq7d6l858z96yk9jb";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-tk-8.6.12-1-any.pkg.tar.zst";
sha256 = "1pnznf4a195ij3b1g921k0llkn62wf0piijldj2c7qlbcq73v66c";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-tk-8.6.17-2-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-tk";
sha256 = "1jwhxsqr5d7dfqbip16spppfwnqxqcayx2hycnk8dsbxhw28cldn";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-xz-5.4.2-1-any.pkg.tar.zst";
sha256 = "0w63y7rg76jnzy7ijhda1jzi9jgy1sdfvzq32zyj8yibkcpfxlll";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-libb2-0.98.1-3-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-libb2";
sha256 = "1qn2xlvv1xc3qyfqar3fdmg7mqfsvaa1x68y9jwbvar7xbqnjb3g";
})
(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/clang64/mingw-w64-clang-x86_64-xz-5.8.3-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-xz";
sha256 = "0yv1viwvaxnj4hrgpb2bxav1f57015zcpcfs9amqkp5mv8xc7cfw";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-3.10.11-1-any.pkg.tar.zst";
sha256 = "0fl3jrmp59180is4l9d8qimslnpqrzvl7wprqjhag2c7ki9c0gg4";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-tzdata-2026a-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-tzdata";
sha256 = "0jh6ri6k4a0d8arg045fgvsw9d76ah3n1wmrnaxpq6akvpc4av2q";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-gcc-libgfortran-12.2.0-10-any.pkg.tar.zst";
sha256 = "1xilwrasyj3xbrv4wjvc53bv45k7szpzgnnakdnl1jg81960byx5";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-3.14.3-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python";
sha256 = "1a7bj0dcq6mkshlf6v85n0n4xfyswk206cfniiv284vbl7yzv3va";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-openblas-0.3.23-1-any.pkg.tar.zst";
sha256 = "1zqxcpmw3mbw1axsf90sk7vmswq95g1b3pj826zrf42bjcjbsjpk";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-llvm-openmp-22.1.3-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-llvm-openmp";
sha256 = "1ixpxyz3garbpa6v4vnbaqsxq0gmiix97f4jg6vim4jqiwbi0dkg";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-numpy-1.24.2-3-any.pkg.tar.zst";
sha256 = "0d81782q72ygkycfn1y2yvsp7g55190zdklkv42pizzapn8h3a2l";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-openblas-0.3.32-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-openblas";
sha256 = "0h2610izhxpgmmf3dip2pj2n78gs7kmsiss4va9hw8d3v71sp70a";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-setuptools-67.7.1-1-any.pkg.tar.zst";
sha256 = "0d4j7n133q4whs8ipjqn9azqfc1bx60dylmjwgq62vn3fxbf307p";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-numpy-2.4.1-2-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-numpy";
sha256 = "0860glzjn6g4xnfwgbhciidysn1p50rksm3n2dv7lvjnndnkn1l3";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-setuptools-81.0.0-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-setuptools";
sha256 = "1f7bwgnnqn6p9i2kj7ldl2wz1d4wx163iskrlsfpjfr84anh38lg";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-packaging-26.0-2-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-packaging";
sha256 = "0v7yms7l7y4spy4iv5hb1vhxi3yxnzr3yafzxxngbky02im9i9bv";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-pyproject-hooks-1.2.0-3-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-pyproject-hooks";
sha256 = "0g4r4czilm4nd56bnpb6206qmparndwhasgpk0l1a9crvfx7kya4";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-build-1.4.2-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-build";
sha256 = "1cb3bn6m4dhpc90jf0wbpc81ghpi05cmb28didcwa4sygxys786m";
})
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-python-installer-0.7.0-8-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-python-installer";
sha256 = "18c9fykwbrs7m4jszbx8nip1z09xzpjv3gnjjqc7cgw7nq5dvgdn";
})
]

View File

@@ -0,0 +1,7 @@
{pkgs}: [
(pkgs.fetchurl {
url = "https://mirror.msys2.org/mingw/clang64/mingw-w64-clang-x86_64-qt-installer-framework-4.10.0-1-any.pkg.tar.zst";
name = "mingw-w64-clang-x86_64-qt-installer-framework";
sha256 = "1klzw3rnlh8lqa1gfwmmrr1mif69kpipakgsn9crhvhgyn8qp3p7";
})
]

View File

@@ -0,0 +1 @@
mingw-w64-clang-x86_64-python-regex

View File

@@ -0,0 +1,2 @@
mingw-w64-clang-x86_64-python-numpy
mingw-w64-clang-x86_64-python-pybase64