diff --git a/README.md b/README.md index 93cfd7b..d3bfc9e 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/flake.nix b/flake.nix index 537e245..21fc952 100644 --- a/flake.nix +++ b/flake.nix @@ -16,6 +16,13 @@ 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. @@ -420,19 +427,19 @@ name = "python-pythonparser"; version = artiqpkgs.packages.x86_64-linux.pythonparser.version; src = artiqpkgs.packages.x86_64-linux.pythonparser.src; - depends = [ "mingw-w64-x86_64-python-regex" ]; + 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 = [ "mingw-w64-x86_64-python" "mingw-w64-x86_64-python-numpy" "mingw-w64-x86_64-python-pybase64" ]; + 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 = [ "mingw-w64-x86_64-python" "mingw-w64-x86_64-python-sipyco" "mingw-w64-x86_64-python-numpy" "mingw-w64-x86_64-python-aiohttp" ]; + depends = (readStringListFromFile comtoolsDependenciesFile) ++ [ "mingw-w64-x86_64-python-sipyco" ]; }; msys2-artiq = msys2.makeMsys2Package { name = "artiq"; @@ -442,27 +449,9 @@ export VERSIONEER_OVERRIDE=${artiqpkgs.packages.x86_64-linux.artiq.version} export VERSIONEER_REV=${artiqpkgs.sourceInfo.rev} ''; - depends = [ - "mingw-w64-x86_64-python" - "mingw-w64-x86_64-python-h5py" - "mingw-w64-x86_64-python-pyqt5" - "mingw-w64-x86_64-qt5-svg" - "mingw-w64-x86_64-python-qasync" - "mingw-w64-x86_64-python-pyqtgraph" - "mingw-w64-x86_64-python-numpy" - "mingw-w64-x86_64-python-scipy" - "mingw-w64-x86_64-python-dateutil" - "mingw-w64-x86_64-python-prettytable" - "mingw-w64-x86_64-python-tqdm" - "mingw-w64-x86_64-python-pygit2" - "mingw-w64-x86_64-python-sipyco" - "mingw-w64-x86_64-python-llvmlite" - "mingw-w64-x86_64-python-pythonparser" - "mingw-w64-x86_64-python-levenshtein" - "mingw-w64-x86_64-python-lmdb" - "mingw-w64-x86_64-lld" - "mingw-w64-x86_64-artiq-comtools" - ]; + depends = (readStringListFromFile artiqDependenciesFile) + ++ [ "mingw-w64-x86_64-python-sipyco" "mingw-w64-x86_64-python-pythonparser" "mingw-w64-x86_64-artiq-comtools" ]; + }; msys2-asyncserial = msys2.makeMsys2Package { name = "python-asyncserial"; @@ -523,18 +512,94 @@ msys2-hut2 msys2-flake8-artiq ]; + + msys2-offline-installer = pkgs.stdenv.mkDerivation { + name = "msys2-offline-installer"; + buildInputs = with pkgs; [ p7zip wine64 ]; + 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))); + }; + + 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-01-13/msys2-base-x86_64-20240113.tar.xz"; + name = "base"; + sha256 = "sha256-BEVqRKlW08C1+bbHVJGL86jD2HyFi+egyUyRcasTxYw="; + }; + + 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; /\[clang64\]/,/^$/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 + rm -rf $out/clang64* $out/clang32* $out/clangarm64* $out/mingw32* $out/ucrt64* \ + $out/var/lib/pacman/sync/clang64* $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.clang64 $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@|$(date +'%Y%m%d')|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.wineWowPackages.stable}/bin/wine64 $msys2_qt_ifw/mingw64/bin/binarycreator.exe \ + -t "$msys2_qt_ifw/mingw64/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; - devShells.x86_64-linux.msys2 = pkgs.mkShell { - name = "dev-shell-msys2"; - buildInputs = with pkgs; [ - curl - pacman - fakeroot - msys2.wine-msys2 - ]; + devShells.x86_64-linux = { + msys2 = pkgs.mkShell { + name = "dev-shell-msys2"; + buildInputs = with pkgs; [ + curl + pacman + fakeroot + p7zip + msys2.wine-msys2 + wineWowPackages.stable + ]; + }; }; }; } diff --git a/installer/qt-ifw/config/artiq.ico b/installer/qt-ifw/config/artiq.ico new file mode 100644 index 0000000..edb222d Binary files /dev/null and b/installer/qt-ifw/config/artiq.ico differ diff --git a/installer/qt-ifw/config/config.xml b/installer/qt-ifw/config/config.xml new file mode 100644 index 0000000..359db3e --- /dev/null +++ b/installer/qt-ifw/config/config.xml @@ -0,0 +1,18 @@ + + + MSYS2 + @VERSION@ + MSYS2 + The MSYS2 Developers + control.js + MSYS2 + @TargetDir@/mingw64.exe + + artiq + artiq.ico + false + uninstall + false + false + false + diff --git a/installer/qt-ifw/config/control.js b/installer/qt-ifw/config/control.js new file mode 100644 index 0000000..0436580 --- /dev/null +++ b/installer/qt-ifw/config/control.js @@ -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(); + } + } +} diff --git a/installer/qt-ifw/packages/com.msys2.root/meta/installscript.js b/installer/qt-ifw/packages/com.msys2.root/meta/installscript.js new file mode 100644 index 0000000..d41a70b --- /dev/null +++ b/installer/qt-ifw/packages/com.msys2.root/meta/installscript.js @@ -0,0 +1,64 @@ +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 = "" + message +""; + 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@/mingw64.exe", "@StartMenuDir@/MSYS2 MINGW64.lnk", "iconPath=@TargetDir@/mingw64.exe"); + + 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(); +} diff --git a/installer/qt-ifw/packages/com.msys2.root/meta/package.xml b/installer/qt-ifw/packages/com.msys2.root/meta/package.xml new file mode 100644 index 0000000..f988a0b --- /dev/null +++ b/installer/qt-ifw/packages/com.msys2.root/meta/package.xml @@ -0,0 +1,9 @@ + + + MSYS2 + Cygwin-derived Posix-like env. for Windows with Arch Linux's Pacman + @VERSION@ + @DATE@ + true + + diff --git a/msys2/artiq_dependencies.txt b/msys2/artiq_dependencies.txt new file mode 100644 index 0000000..89b54dd --- /dev/null +++ b/msys2/artiq_dependencies.txt @@ -0,0 +1,19 @@ +mingw-w64-x86_64-python3.11 +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-llvmlite +mingw-w64-x86_64-python-levenshtein +mingw-w64-x86_64-python-lmdb +mingw-w64-x86_64-lld +mingw-w64-x86_64-llvm +mingw-w64-x86_64-openocd +mingw-w64-x86_64-bscan-spi-bitstreams diff --git a/msys2/artiq_dependency_packages.nix b/msys2/artiq_dependency_packages.nix new file mode 100644 index 0000000..a28c06e --- /dev/null +++ b/msys2/artiq_dependency_packages.nix @@ -0,0 +1,602 @@ +{ pkgs } : [ + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libwinpthread-git-11.0.0.r731.g8fdf7c9b5-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-libwinpthread-git"; + sha256 = "1q5mjrsxxrqa0vm9vn1hqr0ijn7b24lkyzyx5hymlksdbx3r0b29"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-gcc-libs-13.2.0-6-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-gcc-libs"; + sha256 = "1wg64p13ldw3f9cl2na4dz8avj06a8xj9fdk9z6h2h2gp1ipgici"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-expat-2.6.2-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-expat"; + sha256 = "13zp12yp286i8pbyqcvgdzln0c6r8hs9jfbwvrbbimhq57jcy91q"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-bzip2-1.0.8-3-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-bzip2"; + sha256 = "1dki26kz4pmr9q3gp3dirrvrwkcv38b9sjrb9slrq4yw31ycjgk5"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libffi-3.4.6-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-libffi"; + sha256 = "018sv8b54ym24qmyc61sxhjix3rrbmvj04plhy5i0k92qnk2hnv4"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-mpdecimal-4.0.0-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-mpdecimal"; + sha256 = "1dm8hjj0l1q48fv0li0x5xn8yfy6a6ywicqm0i8v0c13qfa5hv7v"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libiconv-1.17-4-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-libiconv"; + sha256 = "0mvamv1maj479lch0spfa25i27yfsb2795v1kpv6z3py8rmv7vff"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-gettext-runtime-0.22.5-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-gettext-runtime"; + sha256 = "0kdjkscdgaxgb073a1ga07g5p53vh3cn6aaa9q96shsb7fbd3aqz"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libtre-git-r177.07e66d0-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-libtre-git"; + sha256 = "1fphiijfdz1zn3j11fq16fvqx88vms78d2rawsgrqd5janbq4flb"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libsystre-1.0.1-5-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-libsystre"; + sha256 = "0q67s9p1dcfzhhr1qsji7g3fpwsi223b5s1c4d74sczn3kvkrd6v"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-ncurses-6.4.20231217-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-ncurses"; + sha256 = "00sx48qazh5nh70fyi9nd8l6498b97fmy9p6vmbsr3pjbwkwpznk"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-openssl-3.3.0-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-openssl"; + sha256 = "14p37hlj3vn0jb6grfwycjvlfakjbbj3h2fqw1xcj4al0dby2xsd"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-termcap-1.3.1-7-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-termcap"; + sha256 = "1s51i2fwy1mrzmxsgr1vv87wlmb3bk88yipqalfldvy3xdgjgjh4"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-readline-8.2.010-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-readline"; + sha256 = "1qcgv32jrgs9fycqg5qyq40rkxxvjf7j6dnkprhf8zlnzhl3ymaa"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-zlib-1.3.1-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-zlib"; + sha256 = "1w05h62i4bcvkr09lzf442dx4ybf80w31m82clhxw59ysypwl16a"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-tcl-8.6.13-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-tcl"; + sha256 = "1h6sgjmqp2akm4nc64cmj87zr8iaa9m4wg1rgqhhs3x8a904m6by"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-sqlite3-3.45.2-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-sqlite3"; + sha256 = "1rzjzhhji3wmggccv8av5gcqxl3d0wdyrfaj3g8v4gfqql9f525y"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-tk-8.6.13-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-tk"; + sha256 = "093j1hkjs60nimbnad7jc7190pr2xrwx4nrz22g159dq770cc4xp"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-xz-5.6.1-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-xz"; + sha256 = "089v96imr9fyg38v6hmpacd997dxz9c37fkqq4y03gcc4skj7078"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-tzdata-2024a-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-tzdata"; + sha256 = "1yjcndq1bhfy5mw04c8k5rbmknrcgkq023b0gvwra15spj2c1h9v"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-3.11.9-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-python"; + sha256 = "1iv0pg26g8p7sqpjqzh0xdx6s9wi8l70kqkansky96nbqx2byp3f"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-gcc-libgfortran-13.2.0-6-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-gcc-libgfortran"; + sha256 = "1jmncy2drswx441dhxxs4i471d5lyqdn7faxd6qdni0g6vd56qir"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-openblas-0.3.27-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-openblas"; + sha256 = "1130ir15sq54mnhyr50yljkm1jj5s40lqkdhsmvk7rwlykl67jq4"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-numpy-1.26.4-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-python-numpy"; + sha256 = "1mhsnh3gvqhlq4m1m21xsfdf4zb0yrzvfp88hqcy6s1iiy5w4ync"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libaec-1.1.3-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-libaec"; + sha256 = "0ca6713y39flq6i4lsw7ja423s5zm7qcgxzzk1899v0n806fax9p"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-c-ares-1.28.1-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-c-ares"; + sha256 = "0skdb9hcgzgrqf8n9x3pxihnbxfgi7gk8v8zjxvxpxr2pb2l57gr"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-brotli-1.1.0-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-brotli"; + sha256 = "1ix63yg59k6wq32xgs64i3i2hqsi9f5qj5qw5apsfr1sgy9zlppm"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libunistring-1.2-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-libunistring"; + sha256 = "17mhzkkvpaxgk5yy67kh20nqdfc7s959hw3ifmn8bjck5f7cs7k9"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libidn2-2.3.7-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-libidn2"; + sha256 = "0ki6lnjid60qqs322qsljf7swa372czqbpyax6rc2yww5w53z8h9"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libpsl-0.21.5-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-libpsl"; + sha256 = "059i6n82rd3idlbvp948rkyyd5zyvzqkbd5hgsmsvb703ncsncjk"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-zstd-1.5.6-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-zstd"; + sha256 = "09g167k7d7yliz8vlqsknnz4sp947w1v5sidp5rrgbcs2bcxcx8l"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libtasn1-4.19.0-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-libtasn1"; + sha256 = "09bgm2y25jyjm0pwn2imnr30nxzdd7j71ifmxkpabaqkpsfa5av5"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-p11-kit-0.25.3-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-p11-kit"; + sha256 = "1f32pznnvzm8axhvd5406hg0ilvmlilhiqyfjky6zdk545wsyyxl"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-ca-certificates-20240203-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-ca-certificates"; + sha256 = "092wq5mainz3insakm9lacqa348p3ya6xnf2c3s65x7c6hw0702v"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libssh2-1.11.0-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-libssh2"; + sha256 = "0h4hfsig3n7grp7hn7vn16af6x122hc220llpmd8aii3d3jwc8d1"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-nghttp2-1.61.0-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-nghttp2"; + sha256 = "1ysm4pzkkrxmkyscz7li1rg3x1hv1q27v3lk6cjz1qwglxrv3zig"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-curl-8.7.1-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-curl"; + sha256 = "006j0lkpk1zdf1s577nvnvx3hk971cbnlhwppgrgg9jrrn4p8v76"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-hdf5-1.14.3-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-hdf5"; + sha256 = "0jqngjbvdjl99555di0jip4hy861zqas5b9lgaq0f0z694q8xig4"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-h5py-3.10.0-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-python-h5py"; + sha256 = "0xmy25hg2mfbmmdqmk9r7ykz629qaz45lnz8nz03r7mg42qga8i1"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-pyqt5-sip-12.13.0-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-pyqt5-sip"; + sha256 = "0j8l8nc5c9f46748ln46lgaw818fmqmd97493f671x1gwfi3il6j"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-dbus-1.14.10-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-dbus"; + sha256 = "1j735j46kj6ivmfm4np9qij4ibh0c9daznx1b0hiyzaq3dj81d5d"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-double-conversion-3.3.0-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-double-conversion"; + sha256 = "1lw76bfwlc23d1rj8dissyi7mb915wimprxrikdz7bicb059vg26"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libpng-1.6.43-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-libpng"; + sha256 = "078gvc5xy0mzqd1sm9nw6wp1jk7cdxmj8xp7s87l7lzascg1n5mc"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-wineditline-2.206-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-wineditline"; + sha256 = "18a8cvyvmb9ilfcb1i1angp46n5c245bn3qw3ckqv86634ph86jl"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-pcre2-10.43-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-pcre2"; + sha256 = "0dnlvfjjmy65s7ywwx8pjrr1babh0ylx6qlwqvwxyy79q81fhbih"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-packaging-23.2-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-python-packaging"; + sha256 = "0gsaa1jk6f6jwqf5i8ib9agk8fh85pjn9hwfpi372lvq3n5zjwdi"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-glib2-2.80.0-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-glib2"; + sha256 = "0bl2ffcxc509wl8mmvcdxasm0hjlqwambqwp8mn35d0dcr6bsddb"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-graphite2-1.3.14-3-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-graphite2"; + sha256 = "1cgmzncx1dblny629fsrhczvsra9zz4xvhlivzl4nyyvxcqbfd3s"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-harfbuzz-8.4.0-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-harfbuzz"; + sha256 = "0hcafmwlvzz5jx18q1ghfcmzdk05dpmm0g70nn027qmf1aj67dpq"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-freetype-2.13.2-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-freetype"; + sha256 = "0vsw6zg6sqwv3z0dv1x8g63m2dkn5nksgplida641r68lbrlsv68"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-fontconfig-2.15.0-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-fontconfig"; + sha256 = "05zddp7g2sm87ihmd4crs2ycwsh1rj1jhw9y0lc9y25z5hl2z8vd"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-icu-74.2-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-icu"; + sha256 = "10j8z4zx75ln5mwgb2x0wg695dspm5qqs3808zimw6igb9cvj8ml"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libjpeg-turbo-3.0.2-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-libjpeg-turbo"; + sha256 = "0dxlaajh1h4x96pwk4da502v4587xg7d5b17mvv4nr14bn5slp7c"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-md4c-0.5.2-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-md4c"; + sha256 = "0z6s1h8wp5cai6p79b2cwzn6q9kcacvgvc622gmga13rjxznb71i"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-vulkan-loader-1.3.280.0-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-vulkan-loader"; + sha256 = "04jlvaxx6xmhcrpqb9ng29988py5jr2zfyfwjr802xik9pvvbi5l"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-qt5-base-5.15.13+kde+r138-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-qt5-base"; + sha256 = "1gyzp8xz4s5wgbmh11xx8h6wvw19gvwg9a4cxxdq8y8l0yxhq8xm"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-pyqt5-5.15.10-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-python-pyqt5"; + sha256 = "0qlr553xqs49idk12vhhvqf0v7vypgc9vs3hra344xmxhjq71x5l"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-qt5-svg-5.15.13+kde+r6-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-qt5-svg"; + sha256 = "0ckyfi890szlkhk79wnijk3v71ylbc3wfgji0rkvi5lacy1q45ky"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-qasync-0.27.1-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-python-qasync"; + sha256 = "1g9fdghqpf63pq971n90dqslvlh7kxl7k4gmbgxnmqay05ycywky"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-pyqtgraph-0.13.3-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-python-pyqtgraph"; + sha256 = "063pxfcmpviwawlh1gidq6m73r3r1i3bha3hxw05z1mj6a46ym2p"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-scipy-1.12.0-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-python-scipy"; + sha256 = "0yr1rlq3rz55pcm9r81wi5yyw7kxqmgm3rs1ydwvlcbgar6q3ggc"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-six-1.16.0-4-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-python-six"; + sha256 = "0hv012cnzi27pnr6v0ynygzwvmdmmjl60bdbbs3nv1x2waavv2q3"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-dateutil-2.9.0-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-python-dateutil"; + sha256 = "151cnff75zb9rg4fcw3db4cjn1hfg6cp6ykd76rai6j7hkk5zjsr"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-wcwidth-0.2.13-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-python-wcwidth"; + sha256 = "046gy1wq95a2381nmaii1i6jlnk0rly8w6wym79gdw4n4ycvm79w"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-prettytable-3.10.0-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-python-prettytable"; + sha256 = "16nh16rsgcbaa2943c3hh6dkhdlnps4lq0hlajv8fwn38k0nz1vg"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-colorama-0.4.6-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-python-colorama"; + sha256 = "0f62gmhgfwxnhk5sbqfd0qlzhbwis3qxzr625sdyq1xa46yr3ddy"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-tqdm-4.66.2-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-python-tqdm"; + sha256 = "036mzpi0ncdif1j3npxkcrsp3d3xzwl9jrg6hwnlm6chgnp29gr8"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-http-parser-2.9.4-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-http-parser"; + sha256 = "09s8l8v7s6yx3vl114bxc2zbcgdlv95pq5amp80wdfbgd0dzinda"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libgit2-1.7.2-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-libgit2"; + sha256 = "03ddnkar6m68ijhvaik61ng0672l0pcr0lpdd9f8ply4iwpjzf4j"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-ply-3.11-4-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-python-ply"; + sha256 = "057bmgxnfr5vklhhsksnpaa5kw8cvnp53ib8kykpqfqcsglmjhws"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-pycparser-2.21-3-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-python-pycparser"; + sha256 = "1kmwp0j3l8fbpbf1np0ilck9wi7pwm3bzq62jcjjxw4ciwrbxbii"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-cffi-1.16.0-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-python-cffi"; + sha256 = "1cs3ajs56pkg24l7xsa5s0n70g9i63jkm8hqslxazjl2v007iiwd"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-pygit2-1.14.1-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-python-pygit2"; + sha256 = "08ny0yg92fg413q8jzwp4qvz41vy77ajg75kib4zhva6025rxa0g"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-llvmlite-0.42.0-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-python-llvmlite"; + sha256 = "0l56iwa0ndxyprz6fw3n4hnd6l47lmvfzshw83x2ygbynls5j3jm"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-rapidfuzz-3.6.2-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-python-rapidfuzz"; + sha256 = "0mp04k3rylfs3f6ccslg61zkg99y5x14iv1lzpdsdyglk9zd6rkg"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-levenshtein-0.25.0-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-python-levenshtein"; + sha256 = "0i89a7zkj1gvb08zhnrm3h606yd90a4nfmm2j4cbfvfixqjijibm"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-lmdb-0.9.31-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-lmdb"; + sha256 = "1dzr764y6by4p8mlg3dd0ljmxnbv961clgxssxnz6khhgr4riz3i"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-lmdb-1.4.1-3-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-python-lmdb"; + sha256 = "1v6xs6bl4bnyn2a1w9y2k4jsd8qgyp2mdfp00mb2vf01dsbm1l6f"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libxml2-2.12.6-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-libxml2"; + sha256 = "0nqhq9whrzq6m1xscnx12g2q8bv6jaak43ly7q4viqd1zfin1abx"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-llvm-libs-18.1.4-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-llvm-libs"; + sha256 = "0jl2l400z0rj60hcpr5nms8f1iwdlky4rgzk37ysvfsv2s3xb3g3"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-lld-18.1.4-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-lld"; + sha256 = "1fc4pbzkm9wc2i874vfaxbin2p7bryx1yan1n0vvzddr747qxi21"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-llvm-18.1.4-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-llvm"; + sha256 = "0446wv29vp1pld6drjaw1lr93lijcvn6l66jj4r5m1gyrf07jhlh"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-hidapi-0.14.0-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-hidapi"; + sha256 = "05k8papxsnnvz26761gjfpc7h3db89j7kdg9jyfyd9g5nmpy18x5"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libusb-1.0.27-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-libusb"; + sha256 = "1jjdj6njc3yapki1ffj7q5hcy6sd3gqrwyf830bgg72kmc8lxpwl"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libusb-compat-git-r76.b5db9d0-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-libusb-compat-git"; + sha256 = "0x9gczdy09mjrj3cybl0qyk77466lhpcjv23r5z1851yq70ilhz9"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-confuse-3.3-3-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-confuse"; + sha256 = "0cv020y67984jax23v3iwi9kcn753qafhqsida44y6jhd1znjjpm"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libftdi-1.5-7-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-libftdi"; + sha256 = "0pcrwic5wgdjhs5vvynz8fw2hiqbaz75kikl61gmzqxshm619b2v"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libjaylink-git-r175.cfccbc9-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-libjaylink-git"; + sha256 = "053vp2jak9qrl3di5syr6bw7z1hspx5744027knb6irm3kpa1iki"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-capstone-5.0.1-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-capstone"; + sha256 = "1awzx375s3fidrc80l3dhc78cd7wyssvxjlaz9jnbpa3cy5qxl7z"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-openocd-0.12.0-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-openocd"; + sha256 = "1na5blv3kajiic8f1igyanbmva6rj8flxam5xmg9d23v8yr99z6a"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-bscan-spi-bitstreams-1.0-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-bscan-spi-bitstreams"; + sha256 = "0facp60r9364fkrxx6vfrbivr00yiq99n6n24f5snqb8vqc2mrd1"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-attrs-23.2.0-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-python-attrs"; + sha256 = "0jvm2jdgcrphwq61n3kj8ialy18m8lbj6xq3jgwbi8qqjlw9s1n7"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-multidict-6.0.5-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-python-multidict"; + sha256 = "0hc7d031m3f8dq3qyvspgs5m2n8x7sljvr6j573ini4cn78w3y0p"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-idna-3.6-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-python-idna"; + sha256 = "0fzkcd2c2c0crqg4690lrizwm9q4338bfn6w46k855gp5l83f4ww"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-yarl-1.9.4-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-python-yarl"; + sha256 = "0y9790lq8kq713v08ypmbxxn48fdfbigkdv78jf1dl570vav72pw"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-frozenlist-1.4.1-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-python-frozenlist"; + sha256 = "0if893h135p6qzldhl9f5a604whlj9viy3sj5p8mlkr6zyxww7p3"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-aiosignal-1.3.1-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-python-aiosignal"; + sha256 = "0mpp79fx5f0sfjfrqxk0vmc5b13mkl779gwjg5ca38hjqzkycmgy"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-aiohttp-3.9.3-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-python-aiohttp"; + sha256 = "17qym6rwq1w37a6ph0drvz7jqmnm8k0pc3cnbhfj135cq0z79q96"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-regex-2023.12.25-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-python-regex"; + sha256 = "17hmnaw3fvcbnzjbm6i7drs3i5j2rsdmxq2c841n497ks30xa5r4"; + }) + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-pybase64-1.3.2-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-python-pybase64"; + sha256 = "0wnwfacimz7jxv2cnpn9z4x5fbz0fyin04grab3pslrl5xa4shyr"; + }) +] diff --git a/msys2/comtools_dependencies.txt b/msys2/comtools_dependencies.txt new file mode 100644 index 0000000..bc99002 --- /dev/null +++ b/msys2/comtools_dependencies.txt @@ -0,0 +1,3 @@ +mingw-w64-x86_64-python3.11 +mingw-w64-x86_64-python-numpy +mingw-w64-x86_64-python-aiohttp diff --git a/msys2/make_msys2_packages.sh b/msys2/make_msys2_packages.sh index 86ac2de..31a973a 100755 --- a/msys2/make_msys2_packages.sh +++ b/msys2/make_msys2_packages.sh @@ -6,19 +6,37 @@ 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-20240210-1-any.pkg.tar.zst | tar xvf - -C $MSYS2DIR --zstd +curl -L https://raw.githubusercontent.com/msys2/MSYS2-packages/master/pacman/pacman.conf | \ + sed -e "s|/etc/pacman.d|$MSYS2DIR/etc/pacman.d|g" -e "s|SigLevel = Required|SigLevel = Never|g" > $MSYS2DIR/etc/pacman.conf fakeroot pacman --root $MSYS2DIR --config $MSYS2DIR/etc/pacman.conf -Syy -pacman --root $MSYS2DIR --config $MSYS2DIR/etc/pacman.conf --cachedir $MSYS2DIR/msys/cache -Sp mingw-w64-x86_64-cc mingw-w64-x86_64-python3.11 mingw-w64-x86_64-python-numpy mingw-w64-x86_64-python-setuptools > $MSYS2DIR/packages.txt +pacman --root $MSYS2DIR --config $MSYS2DIR/etc/pacman.conf \ + --cachedir $MSYS2DIR/msys/cache --sync --print-format "%l %n" \ + mingw-w64-x86_64-cc mingw-w64-x86_64-python3.11 \ + mingw-w64-x86_64-python-numpy mingw-w64-x86_64-python-setuptools > $MSYS2DIR/packages.txt -echo "{ pkgs } : [" > msys2_packages.nix -while read package; do - hash=$(nix-prefetch-url $package) - echo " -(pkgs.fetchurl { - url = \"$package\"; - sha256 = \"$hash\"; -})" >> msys2_packages.nix -done < $MSYS2DIR/packages.txt -echo "]" >> msys2_packages.nix +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-x86_64-qt-installer-framework > $MSYS2DIR/qt_ifw_packages.txt + +function generate_nix_packages_from_pacman() { + echo "{ 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 +} + +IN=$MSYS2DIR/packages.txt OUT=msys2_packages.nix generate_nix_packages_from_pacman +IN=$MSYS2DIR/qt_ifw_packages.txt OUT=msys2_qt_ifw_packages.nix generate_nix_packages_from_pacman +IN=$MSYS2DIR/artiq_dependency_packages.txt OUT=artiq_dependency_packages.nix generate_nix_packages_from_pacman diff --git a/msys2/msys2_packages.nix b/msys2/msys2_packages.nix index d38f9f9..7b3af12 100644 --- a/msys2/msys2_packages.nix +++ b/msys2/msys2_packages.nix @@ -1,182 +1,218 @@ { pkgs } : [ -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libwinpthread-git-11.0.0.r680.g257321cea-1-any.pkg.tar.zst"; - sha256 = "1f8sl3jckz8pkk0af6yh7ymrq7kwwy84i3922vgmkn80lq5f4kn1"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libwinpthread-git-11.0.0.r731.g8fdf7c9b5-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-libwinpthread-git"; + sha256 = "1q5mjrsxxrqa0vm9vn1hqr0ijn7b24lkyzyx5hymlksdbx3r0b29"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-gcc-libs-13.2.0-6-any.pkg.tar.zst"; - sha256 = "1wg64p13ldw3f9cl2na4dz8avj06a8xj9fdk9z6h2h2gp1ipgici"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-gcc-libs-13.2.0-6-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-gcc-libs"; + sha256 = "1wg64p13ldw3f9cl2na4dz8avj06a8xj9fdk9z6h2h2gp1ipgici"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libiconv-1.17-4-any.pkg.tar.zst"; - sha256 = "0mvamv1maj479lch0spfa25i27yfsb2795v1kpv6z3py8rmv7vff"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libiconv-1.17-4-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-libiconv"; + sha256 = "0mvamv1maj479lch0spfa25i27yfsb2795v1kpv6z3py8rmv7vff"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-gettext-runtime-0.22.5-2-any.pkg.tar.zst"; - sha256 = "0kdjkscdgaxgb073a1ga07g5p53vh3cn6aaa9q96shsb7fbd3aqz"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-gettext-runtime-0.22.5-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-gettext-runtime"; + sha256 = "0kdjkscdgaxgb073a1ga07g5p53vh3cn6aaa9q96shsb7fbd3aqz"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-zlib-1.3.1-1-any.pkg.tar.zst"; - sha256 = "1w05h62i4bcvkr09lzf442dx4ybf80w31m82clhxw59ysypwl16a"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-zlib-1.3.1-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-zlib"; + sha256 = "1w05h62i4bcvkr09lzf442dx4ybf80w31m82clhxw59ysypwl16a"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-zstd-1.5.6-2-any.pkg.tar.zst"; - sha256 = "09g167k7d7yliz8vlqsknnz4sp947w1v5sidp5rrgbcs2bcxcx8l"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-zstd-1.5.6-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-zstd"; + sha256 = "09g167k7d7yliz8vlqsknnz4sp947w1v5sidp5rrgbcs2bcxcx8l"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-binutils-2.42-2-any.pkg.tar.zst"; - sha256 = "16gl687nfsm8n0f78c4s16wwx592f3wd0kcfrna49xblyrr5gadm"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-binutils-2.42-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-binutils"; + sha256 = "16gl687nfsm8n0f78c4s16wwx592f3wd0kcfrna49xblyrr5gadm"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-headers-git-11.0.0.r680.g257321cea-1-any.pkg.tar.zst"; - sha256 = "01kh11kndh37y2jcd6q4ymdc950934887skdp55bkm6f7j4jryx4"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-headers-git-11.0.0.r731.g8fdf7c9b5-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-headers-git"; + sha256 = "1q5d71dy8jhqb3nm1xiv7psmxdninhpbkvlgsrcdzm8nvqcmlcqr"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-crt-git-11.0.0.r680.g257321cea-1-any.pkg.tar.zst"; - sha256 = "0vwdb5f1mx16as1bmpcq9n4dl0srq334rvb6mw8p1i0gxa1id9qy"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-crt-git-11.0.0.r731.g8fdf7c9b5-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-crt-git"; + sha256 = "1n1ibknmsc269lbj30105haaa8alg1yrcfc2cmvhyl76pv423zqw"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-gmp-6.3.0-2-any.pkg.tar.zst"; - sha256 = "1k0ma22hyn5m2m8kflpmscwm2p1v53pzd93fnind9bf4fhwl6949"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-gmp-6.3.0-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-gmp"; + sha256 = "1k0ma22hyn5m2m8kflpmscwm2p1v53pzd93fnind9bf4fhwl6949"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-isl-0.26-1-any.pkg.tar.zst"; - sha256 = "0hfycibi23xkah9sw60n4ka786l8vmlc67d2waw9mwqqljdmx7pr"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-isl-0.26-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-isl"; + sha256 = "0hfycibi23xkah9sw60n4ka786l8vmlc67d2waw9mwqqljdmx7pr"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-mpfr-4.2.1-2-any.pkg.tar.zst"; - sha256 = "1j96kipr7mzawngjhi9m0rh2lhylmggg1mkgkipw9ssrsxxf7g97"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-mpfr-4.2.1-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-mpfr"; + sha256 = "1j96kipr7mzawngjhi9m0rh2lhylmggg1mkgkipw9ssrsxxf7g97"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-mpc-1.3.1-2-any.pkg.tar.zst"; - sha256 = "04md7pzz6rwvlsxzgxn8zc6l5lmqn1w2dg9f5xdf13qbl9zfm615"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-mpc-1.3.1-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-mpc"; + sha256 = "04md7pzz6rwvlsxzgxn8zc6l5lmqn1w2dg9f5xdf13qbl9zfm615"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-windows-default-manifest-6.4-4-any.pkg.tar.zst"; - sha256 = "1ylipf8k9j7bgmwndkib2l29mds394i7jcij7a6ciag4kynlhsvi"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-windows-default-manifest-6.4-4-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-windows-default-manifest"; + sha256 = "1ylipf8k9j7bgmwndkib2l29mds394i7jcij7a6ciag4kynlhsvi"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-winpthreads-git-11.0.0.r680.g257321cea-1-any.pkg.tar.zst"; - sha256 = "16l6zqhqhnv284aipz25639spgs6198q8xnzl0s6m0ckkxjx257q"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-winpthreads-git-11.0.0.r731.g8fdf7c9b5-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-winpthreads-git"; + sha256 = "0jvrzmbac86pl5rc2xi8q931r1rhvf8k8bs83zywkv1v22qcgi1a"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-gcc-13.2.0-6-any.pkg.tar.zst"; - sha256 = "0j13crl29s8w24kjig0gny68d7ag6n4mgzwyb9ddph23cwqv0l3h"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-gcc-13.2.0-6-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-gcc"; + sha256 = "0j13crl29s8w24kjig0gny68d7ag6n4mgzwyb9ddph23cwqv0l3h"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-expat-2.6.2-1-any.pkg.tar.zst"; - sha256 = "13zp12yp286i8pbyqcvgdzln0c6r8hs9jfbwvrbbimhq57jcy91q"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-expat-2.6.2-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-expat"; + sha256 = "13zp12yp286i8pbyqcvgdzln0c6r8hs9jfbwvrbbimhq57jcy91q"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-bzip2-1.0.8-3-any.pkg.tar.zst"; - sha256 = "1dki26kz4pmr9q3gp3dirrvrwkcv38b9sjrb9slrq4yw31ycjgk5"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-bzip2-1.0.8-3-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-bzip2"; + sha256 = "1dki26kz4pmr9q3gp3dirrvrwkcv38b9sjrb9slrq4yw31ycjgk5"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libffi-3.4.6-1-any.pkg.tar.zst"; - sha256 = "018sv8b54ym24qmyc61sxhjix3rrbmvj04plhy5i0k92qnk2hnv4"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libffi-3.4.6-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-libffi"; + sha256 = "018sv8b54ym24qmyc61sxhjix3rrbmvj04plhy5i0k92qnk2hnv4"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-mpdecimal-4.0.0-1-any.pkg.tar.zst"; - sha256 = "1dm8hjj0l1q48fv0li0x5xn8yfy6a6ywicqm0i8v0c13qfa5hv7v"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-mpdecimal-4.0.0-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-mpdecimal"; + sha256 = "1dm8hjj0l1q48fv0li0x5xn8yfy6a6ywicqm0i8v0c13qfa5hv7v"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libtre-git-r177.07e66d0-2-any.pkg.tar.zst"; - sha256 = "1fphiijfdz1zn3j11fq16fvqx88vms78d2rawsgrqd5janbq4flb"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libtre-git-r177.07e66d0-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-libtre-git"; + sha256 = "1fphiijfdz1zn3j11fq16fvqx88vms78d2rawsgrqd5janbq4flb"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libsystre-1.0.1-5-any.pkg.tar.zst"; - sha256 = "0q67s9p1dcfzhhr1qsji7g3fpwsi223b5s1c4d74sczn3kvkrd6v"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libsystre-1.0.1-5-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-libsystre"; + sha256 = "0q67s9p1dcfzhhr1qsji7g3fpwsi223b5s1c4d74sczn3kvkrd6v"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-ncurses-6.4.20231217-1-any.pkg.tar.zst"; - sha256 = "00sx48qazh5nh70fyi9nd8l6498b97fmy9p6vmbsr3pjbwkwpznk"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-ncurses-6.4.20231217-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-ncurses"; + sha256 = "00sx48qazh5nh70fyi9nd8l6498b97fmy9p6vmbsr3pjbwkwpznk"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-openssl-3.3.0-1-any.pkg.tar.zst"; - sha256 = "12kh1d8d8ib4d6jchy1m5nxvj0zaz04zrq4v1p1mdx01217nqciz"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-openssl-3.3.0-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-openssl"; + sha256 = "14p37hlj3vn0jb6grfwycjvlfakjbbj3h2fqw1xcj4al0dby2xsd"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-termcap-1.3.1-7-any.pkg.tar.zst"; - sha256 = "1s51i2fwy1mrzmxsgr1vv87wlmb3bk88yipqalfldvy3xdgjgjh4"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-termcap-1.3.1-7-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-termcap"; + sha256 = "1s51i2fwy1mrzmxsgr1vv87wlmb3bk88yipqalfldvy3xdgjgjh4"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-readline-8.2.010-1-any.pkg.tar.zst"; - sha256 = "1qcgv32jrgs9fycqg5qyq40rkxxvjf7j6dnkprhf8zlnzhl3ymaa"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-readline-8.2.010-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-readline"; + sha256 = "1qcgv32jrgs9fycqg5qyq40rkxxvjf7j6dnkprhf8zlnzhl3ymaa"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-tcl-8.6.13-1-any.pkg.tar.zst"; - sha256 = "1h6sgjmqp2akm4nc64cmj87zr8iaa9m4wg1rgqhhs3x8a904m6by"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-tcl-8.6.13-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-tcl"; + sha256 = "1h6sgjmqp2akm4nc64cmj87zr8iaa9m4wg1rgqhhs3x8a904m6by"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-sqlite3-3.45.2-1-any.pkg.tar.zst"; - sha256 = "1rzjzhhji3wmggccv8av5gcqxl3d0wdyrfaj3g8v4gfqql9f525y"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-sqlite3-3.45.2-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-sqlite3"; + sha256 = "1rzjzhhji3wmggccv8av5gcqxl3d0wdyrfaj3g8v4gfqql9f525y"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-tk-8.6.13-1-any.pkg.tar.zst"; - sha256 = "093j1hkjs60nimbnad7jc7190pr2xrwx4nrz22g159dq770cc4xp"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-tk-8.6.13-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-tk"; + sha256 = "093j1hkjs60nimbnad7jc7190pr2xrwx4nrz22g159dq770cc4xp"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-xz-5.6.1-2-any.pkg.tar.zst"; - sha256 = "089v96imr9fyg38v6hmpacd997dxz9c37fkqq4y03gcc4skj7078"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-xz-5.6.1-2-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-xz"; + sha256 = "089v96imr9fyg38v6hmpacd997dxz9c37fkqq4y03gcc4skj7078"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-tzdata-2024a-1-any.pkg.tar.zst"; - sha256 = "1yjcndq1bhfy5mw04c8k5rbmknrcgkq023b0gvwra15spj2c1h9v"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-tzdata-2024a-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-tzdata"; + sha256 = "1yjcndq1bhfy5mw04c8k5rbmknrcgkq023b0gvwra15spj2c1h9v"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-3.11.9-1-any.pkg.tar.zst"; - sha256 = "1iv0pg26g8p7sqpjqzh0xdx6s9wi8l70kqkansky96nbqx2byp3f"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-3.11.9-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-python"; + sha256 = "1iv0pg26g8p7sqpjqzh0xdx6s9wi8l70kqkansky96nbqx2byp3f"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-gcc-libgfortran-13.2.0-6-any.pkg.tar.zst"; - sha256 = "1jmncy2drswx441dhxxs4i471d5lyqdn7faxd6qdni0g6vd56qir"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-gcc-libgfortran-13.2.0-6-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-gcc-libgfortran"; + sha256 = "1jmncy2drswx441dhxxs4i471d5lyqdn7faxd6qdni0g6vd56qir"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-openblas-0.3.27-1-any.pkg.tar.zst"; - sha256 = "1130ir15sq54mnhyr50yljkm1jj5s40lqkdhsmvk7rwlykl67jq4"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-openblas-0.3.27-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-openblas"; + sha256 = "1130ir15sq54mnhyr50yljkm1jj5s40lqkdhsmvk7rwlykl67jq4"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-numpy-1.26.4-1-any.pkg.tar.zst"; - sha256 = "1mhsnh3gvqhlq4m1m21xsfdf4zb0yrzvfp88hqcy6s1iiy5w4ync"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-numpy-1.26.4-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-python-numpy"; + sha256 = "1mhsnh3gvqhlq4m1m21xsfdf4zb0yrzvfp88hqcy6s1iiy5w4ync"; + }) -(pkgs.fetchurl { - url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-setuptools-69.1.1-1-any.pkg.tar.zst"; - sha256 = "0ih9y27m58c2mlj4g9sg90skbm8r2n60f71ayv7ilgqpl7k9s15j"; -}) + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-setuptools-69.1.1-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-python-setuptools"; + sha256 = "0ih9y27m58c2mlj4g9sg90skbm8r2n60f71ayv7ilgqpl7k9s15j"; + }) ] diff --git a/msys2/msys2_qt_ifw_packages.nix b/msys2/msys2_qt_ifw_packages.nix new file mode 100644 index 0000000..fea6325 --- /dev/null +++ b/msys2/msys2_qt_ifw_packages.nix @@ -0,0 +1,8 @@ +{ pkgs } : [ + + (pkgs.fetchurl { + url = "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-qt-installer-framework-4.7.0-1-any.pkg.tar.zst"; + name = "mingw-w64-x86_64-qt-installer-framework"; + sha256 = "188mb11y4ljyc52z0crp5xx63n19yr1bmcqi3qndvj5w5bmm2zgx"; + }) +] diff --git a/msys2/pythonparser_dependencies.txt b/msys2/pythonparser_dependencies.txt new file mode 100644 index 0000000..20a096a --- /dev/null +++ b/msys2/pythonparser_dependencies.txt @@ -0,0 +1 @@ +mingw-w64-x86_64-python-regex diff --git a/msys2/sipyco_dependencies.txt b/msys2/sipyco_dependencies.txt new file mode 100644 index 0000000..01a0005 --- /dev/null +++ b/msys2/sipyco_dependencies.txt @@ -0,0 +1,3 @@ +mingw-w64-x86_64-python3.11 +mingw-w64-x86_64-python-numpy +mingw-w64-x86_64-python-pybase64