Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 88 lines 2.7 kB view raw
1{ 2 lib, 3 requireFile, 4 lang, 5 majorVersion ? null, 6}: 7 8let 9 allVersions = 10 lib.flip map 11 # N.B. Versions in this list should be ordered from newest to oldest. 12 [ 13 { 14 version = "14.1.0"; 15 lang = "en"; 16 language = "English"; 17 sha256 = "1kxdvm3i7nn3ws784y972h2br1n0y82kkkjvz7c5llssv6d3pgj8"; 18 installer = "WolframEngine_14.1.0_LIN.sh"; 19 } 20 { 21 version = "13.3.0"; 22 lang = "en"; 23 language = "English"; 24 sha256 = "96106ac8ed6d0e221a68d846117615c14025320f927e5e0ed95b1965eda68e31"; 25 installer = "WolframEngine_13.3.0_LINUX.sh"; 26 } 27 { 28 version = "13.2.0"; 29 lang = "en"; 30 language = "English"; 31 sha256 = "1xvg1n64iq52jxnk9y551m5iwkkz6cxzwyw28h8d0kq36aaiky24"; 32 installer = "WolframEngine_13.2.0_LINUX.sh"; 33 } 34 { 35 version = "13.1.0"; 36 lang = "en"; 37 language = "English"; 38 sha256 = "1659kyp38a8xknic95pynx9fsgn96i8jn9lnk89pc8n6vydw1460"; 39 installer = "WolframEngine_13.1.0_LINUX.sh"; 40 } 41 { 42 version = "13.0.1"; 43 lang = "en"; 44 language = "English"; 45 sha256 = "1rrxi7d51m02407k719fq829jzanh550wr810i22n3irhk8axqga"; 46 installer = "WolframEngine_13.0.1_LINUX.sh"; 47 } 48 { 49 version = "13.0.0"; 50 lang = "en"; 51 language = "English"; 52 sha256 = "10cpwllz9plxz22iqdh6xgkxqphl9s9nq8ax16pafjll6j9kqy1q"; 53 installer = "WolframEngine_13.0.0_LINUX.sh"; 54 } 55 ] 56 ( 57 { 58 version, 59 lang, 60 language, 61 sha256, 62 installer, 63 }: 64 { 65 inherit version lang; 66 name = "wolfram-engine-${version}" + lib.optionalString (lang != "en") "-${lang}"; 67 src = requireFile { 68 name = installer; 69 message = '' 70 This nix expression requires that ${installer} is 71 already part of the store. Download the file from 72 https://www.wolfram.com/engine/ and add it to the nix store 73 with nix-store --add-fixed sha256 <FILE>. 74 ''; 75 inherit sha256; 76 }; 77 } 78 ); 79 minVersion = 80 if majorVersion == null then 81 lib.elemAt (builtins.splitVersion (lib.elemAt allVersions 0).version) 0 82 else 83 majorVersion; 84 maxVersion = toString (1 + builtins.fromJSON minVersion); 85in 86lib.findFirst ( 87 l: (l.lang == lang && l.version >= minVersion && l.version < maxVersion) 88) (throw "Version ${minVersion} in language ${lang} not supported") allVersions