Nix expr: Complete rewrite, a LOT of new features
This commit is contained in:
parent
35708f5c03
commit
b47b4d63b1
|
@ -2,9 +2,10 @@
|
|||
cd "$(dirname "$(realpath "$0")")"
|
||||
libpath=""
|
||||
if [ "$(command -v lsb_release)" ]; then
|
||||
case "$(lsb_release -i | cut -c17- | tr -d "\n" | tr A-Z a-z)" in
|
||||
case "$(lsb_release -i | head -n1 | cut -c17- | tr A-Z a-z)" in
|
||||
"arch"|"artix"|"manjarolinux") libpath="/usr/lib";;
|
||||
"fedora"|"gentoo"|"opensuse") libpath="/usr/lib64";;
|
||||
"nixos") libpath="/usr/lib"; printf "Running on NixOS? Why aren't you using the Nix expr?\n";;
|
||||
"debian"|"linuxmint"|"pop"|"ubuntu") libpath="/usr/lib/x86_64-linux-gnu";;
|
||||
esac
|
||||
else
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
{ fetchNuGet }: map fetchNuGet (import ./deps-base.nix {}).hawk-2_7
|
|
@ -1 +0,0 @@
|
|||
{ fetchNuGet }: map fetchNuGet (import ./deps-base.nix {}).hawk-2_8
|
|
@ -1,195 +0,0 @@
|
|||
{ lib ? (import <nixpkgs> {}).lib }: let
|
||||
since-2_7 = [
|
||||
({ name = "Cyotek.Drawing.BitmapFont"; version = "2.0.2"; sha256 = "0h1s1h7bs3iaxmyv1gi5r0712kf40njljdcff52i87fi9jz76lj9"; })
|
||||
({ name = "DotNetAnalyzers.DocumentationAnalyzers"; version = "1.0.0-beta.59"; sha256 = "03kllr1f52jq5a0b1fa2s57yz1bp0awh36n4dk679nqgbg6m8flj"; })
|
||||
({ name = "DotNetAnalyzers.DocumentationAnalyzers.Unstable"; version = "1.0.0.59"; sha256 = "1491q3rby0ysm2bszr33r9h48wk4bz3bz748ziz8p2rklcqrhn5f"; })
|
||||
({ name = "JunitXml.TestLogger"; version = "3.0.98"; sha256 = "1xl6kjaa8b84y8fy0q60mym28nqza3vm3pd4fc8ragcmfh2k5rxv"; })
|
||||
({ name = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
|
||||
({ name = "Microsoft.CSharp"; version = "4.7.0"; sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; })
|
||||
({ name = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
|
||||
({ name = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
|
||||
({ name = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; })
|
||||
({ name = "Microsoft.NETCore.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; })
|
||||
({ name = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
|
||||
({ name = "Microsoft.NETFramework.ReferenceAssemblies"; version = "1.0.2"; sha256 = "0i42rn8xmvhn08799manpym06kpw89qy9080myyy2ngy565pqh0a"; })
|
||||
({ name = "Microsoft.NETFramework.ReferenceAssemblies.net48"; version = "1.0.2"; sha256 = "10ry214g6v4s57vmk1pyqz8z3fsqxl44qyn68y0rrfjcpn29sh5m"; })
|
||||
({ name = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; })
|
||||
({ name = "Microsoft.Win32.SystemEvents"; version = "5.0.0"; sha256 = "0sja4ba0mrvdamn0r9mhq38b9dxi08yb3c1hzh29n1z6ws1hlrcq"; })
|
||||
({ name = "NETStandard.Library"; version = "1.6.1"; sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"; })
|
||||
({ name = "NETStandard.Library"; version = "2.0.3"; sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y"; })
|
||||
({ name = "Newtonsoft.Json"; version = "13.0.1"; sha256 = "0fijg0w6iwap8gvzyjnndds0q4b8anwxxvik7y8vgq97dram4srb"; })
|
||||
({ name = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; })
|
||||
({ name = "NuGet.Frameworks"; version = "5.0.0"; sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr"; })
|
||||
({ name = "OpenTK"; version = "3.3.2"; sha256 = "0jcy4ldq5qp6s1441l12dycfgq0llx4i97y2bbv3n99hg7qvk9vm"; })
|
||||
({ name = "OpenTK.GLControl"; version = "3.1.0"; sha256 = "0j9h89qzwicpd396s49pp51vs3h92ksai444k68w85x62mg07cnm"; })
|
||||
({ name = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; })
|
||||
({ name = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; })
|
||||
({ name = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; })
|
||||
({ name = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; })
|
||||
({ name = "runtime.native.System.IO.Compression"; version = "4.3.0"; sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d"; })
|
||||
({ name = "runtime.native.System.Net.Http"; version = "4.3.0"; sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk"; })
|
||||
({ name = "runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q"; })
|
||||
({ name = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; })
|
||||
({ name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; })
|
||||
({ name = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; })
|
||||
({ name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi"; })
|
||||
({ name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"; })
|
||||
({ name = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"; })
|
||||
({ name = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; })
|
||||
({ name = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; })
|
||||
({ name = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; })
|
||||
({ name = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
|
||||
({ name = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
|
||||
({ name = "System.Buffers"; version = "4.5.1"; sha256 = "04kb1mdrlcixj9zh1xdi5as0k0qi8byr5mi3p3jcxx72qz93s2y3"; })
|
||||
({ name = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; })
|
||||
({ name = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
|
||||
({ name = "System.Collections.Concurrent"; version = "4.3.0"; sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; })
|
||||
({ name = "System.ComponentModel.Annotations"; version = "5.0.0"; sha256 = "021h7x98lblq9avm1bgpa4i31c2kgsa7zn4sqhxf39g087ar756j"; })
|
||||
({ name = "System.Console"; version = "4.3.0"; sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"; })
|
||||
({ name = "System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz"; })
|
||||
({ name = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; })
|
||||
({ name = "System.Diagnostics.DiagnosticSource"; version = "4.3.0"; sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq"; })
|
||||
({ name = "System.Diagnostics.TextWriterTraceListener"; version = "4.3.0"; sha256 = "09db74f36wkwg30f7v7zhz1yhkyrnl5v6bdwljq1jdfgzcfch7c3"; })
|
||||
({ name = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; })
|
||||
({ name = "System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1"; })
|
||||
({ name = "System.Diagnostics.TraceSource"; version = "4.3.0"; sha256 = "1kyw4d7dpjczhw6634nrmg7yyyzq72k75x38y0l0nwhigdlp1766"; })
|
||||
({ name = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
|
||||
({ name = "System.Dynamic.Runtime"; version = "4.0.11"; sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9"; })
|
||||
({ name = "System.Globalization"; version = "4.0.11"; sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; })
|
||||
({ name = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
|
||||
({ name = "System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq"; })
|
||||
({ name = "System.Globalization.Extensions"; version = "4.3.0"; sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; })
|
||||
({ name = "System.IO"; version = "4.1.0"; sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; })
|
||||
({ name = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
|
||||
({ name = "System.IO.Compression"; version = "4.3.0"; sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz"; })
|
||||
({ name = "System.IO.Compression.ZipFile"; version = "4.3.0"; sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar"; })
|
||||
({ name = "System.IO.FileSystem"; version = "4.0.1"; sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1"; })
|
||||
({ name = "System.IO.FileSystem"; version = "4.3.0"; sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw"; })
|
||||
({ name = "System.IO.FileSystem.Primitives"; version = "4.0.1"; sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612"; })
|
||||
({ name = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
|
||||
({ name = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; })
|
||||
({ name = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
|
||||
({ name = "System.Linq.Expressions"; version = "4.1.0"; sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg"; })
|
||||
({ name = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; })
|
||||
({ name = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; })
|
||||
({ name = "System.Net.Http"; version = "4.3.0"; sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j"; })
|
||||
({ name = "System.Net.Http"; version = "4.3.4"; sha256 = "0kdp31b8819v88l719j6my0yas6myv9d1viql3qz5577mv819jhl"; })
|
||||
({ name = "System.Net.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; })
|
||||
({ name = "System.Net.Sockets"; version = "4.3.0"; sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla"; })
|
||||
({ name = "System.Numerics.Vectors"; version = "4.4.0"; sha256 = "0rdvma399070b0i46c4qq1h2yvjj3k013sqzkilz4bz5cwmx1rba"; })
|
||||
({ name = "System.Numerics.Vectors"; version = "4.5.0"; sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; })
|
||||
({ name = "System.ObjectModel"; version = "4.0.12"; sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj"; })
|
||||
({ name = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; })
|
||||
({ name = "System.Reflection"; version = "4.1.0"; sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; })
|
||||
({ name = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
|
||||
({ name = "System.Reflection.Emit"; version = "4.0.1"; sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; })
|
||||
({ name = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; })
|
||||
({ name = "System.Reflection.Emit"; version = "4.7.0"; sha256 = "121l1z2ypwg02yz84dy6gr82phpys0njk7yask3sihgy214w43qp"; })
|
||||
({ name = "System.Reflection.Emit.ILGeneration"; version = "4.0.1"; sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0"; })
|
||||
({ name = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; })
|
||||
({ name = "System.Reflection.Emit.ILGeneration"; version = "4.7.0"; sha256 = "0l8jpxhpgjlf1nkz5lvp61r4kfdbhr29qi8aapcxn3izd9wd0j8r"; })
|
||||
({ name = "System.Reflection.Emit.Lightweight"; version = "4.0.1"; sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr"; })
|
||||
({ name = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; })
|
||||
({ name = "System.Reflection.Emit.Lightweight"; version = "4.7.0"; sha256 = "0mbjfajmafkca47zr8v36brvknzks5a7pgb49kfq2d188pyv6iap"; })
|
||||
({ name = "System.Reflection.Extensions"; version = "4.0.1"; sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; })
|
||||
({ name = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; })
|
||||
({ name = "System.Reflection.Metadata"; version = "1.6.0"; sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4"; })
|
||||
({ name = "System.Reflection.Primitives"; version = "4.0.1"; sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; })
|
||||
({ name = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
|
||||
({ name = "System.Reflection.TypeExtensions"; version = "4.1.0"; sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7"; })
|
||||
({ name = "System.Reflection.TypeExtensions"; version = "4.3.0"; sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; })
|
||||
({ name = "System.Resources.Extensions"; version = "5.0.0"; sha256 = "0v2zdwpnqky43zhjrd2dwbap02n4pfwrhl9sz70zp3mpx7z6qxnj"; })
|
||||
({ name = "System.Resources.ResourceManager"; version = "4.0.1"; sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi"; })
|
||||
({ name = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
|
||||
({ name = "System.Runtime"; version = "4.1.0"; sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; })
|
||||
({ name = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
|
||||
({ name = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.3"; sha256 = "1afi6s2r1mh1kygbjmfba6l4f87pi5sg13p4a48idqafli94qxln"; })
|
||||
({ name = "System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; })
|
||||
({ name = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
|
||||
({ name = "System.Runtime.Handles"; version = "4.0.1"; sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g"; })
|
||||
({ name = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
|
||||
({ name = "System.Runtime.InteropServices"; version = "4.1.0"; sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1"; })
|
||||
({ name = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
|
||||
({ name = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.3.0"; sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii"; })
|
||||
({ name = "System.Runtime.Numerics"; version = "4.3.0"; sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; })
|
||||
({ name = "System.Runtime.Serialization.Primitives"; version = "4.1.1"; sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k"; })
|
||||
({ name = "System.Security.Cryptography.Algorithms"; version = "4.3.0"; sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; })
|
||||
({ name = "System.Security.Cryptography.Cng"; version = "4.3.0"; sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; })
|
||||
({ name = "System.Security.Cryptography.Csp"; version = "4.3.0"; sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1"; })
|
||||
({ name = "System.Security.Cryptography.Encoding"; version = "4.3.0"; sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32"; })
|
||||
({ name = "System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc"; })
|
||||
({ name = "System.Security.Cryptography.Primitives"; version = "4.3.0"; sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; })
|
||||
({ name = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; })
|
||||
({ name = "System.Text.Encoding"; version = "4.0.11"; sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; })
|
||||
({ name = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
|
||||
({ name = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; })
|
||||
({ name = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
|
||||
({ name = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; })
|
||||
({ name = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
|
||||
({ name = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; })
|
||||
({ name = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
|
||||
({ name = "System.Threading.Tasks"; version = "4.0.11"; sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5"; })
|
||||
({ name = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
|
||||
({ name = "System.Threading.Tasks.Extensions"; version = "4.0.0"; sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; })
|
||||
({ name = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; })
|
||||
({ name = "System.Threading.Timer"; version = "4.3.0"; sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56"; })
|
||||
({ name = "System.Xml.ReaderWriter"; version = "4.0.11"; sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5"; })
|
||||
({ name = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; })
|
||||
({ name = "System.Xml.XDocument"; version = "4.0.11"; sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; })
|
||||
({ name = "System.Xml.XDocument"; version = "4.3.0"; sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd"; })
|
||||
];
|
||||
until-2_8 = [
|
||||
({ name = "Microsoft.AspNetCore.App.Ref"; version = "5.0.0"; sha256 = "0d7sjr89zwq0wxirf8la05hfalv9nhvlczg1c7a508k8aw79jvfg"; })
|
||||
({ name = "Microsoft.CodeCoverage"; version = "16.10.0"; sha256 = "0nimrz7araj72d4ckpkqprvg6rgdv5y1bvmv63pqqbphbif9fjd1"; })
|
||||
({ name = "Microsoft.NET.Test.Sdk"; version = "16.10.0"; sha256 = "1rz5d3h2427xp86qm8l35bs7xkl93771gk8401bsd7mrrad86nwb"; })
|
||||
({ name = "Microsoft.TestPlatform.ObjectModel"; version = "16.10.0"; sha256 = "062llwghbmf5vhrczylyzhlflhd5lx05607aipmximd66p50wzbk"; })
|
||||
({ name = "Microsoft.TestPlatform.TestHost"; version = "16.10.0"; sha256 = "1lhwwxlylmklp8wwirfmdc4dzfp2h8fxgw847cqy8by8h5wcwbjc"; })
|
||||
({ name = "MSTest.TestAdapter"; version = "2.2.3"; sha256 = "14lfcagmcqv2kqyaanxdrhh57v6g7h790v6k9sicdbmahwnkkia2"; })
|
||||
({ name = "MSTest.TestFramework"; version = "2.2.3"; sha256 = "1ycmya48212j4295qwldyzpm20001zdlmzna0zi9m3jvhlvhjggg"; })
|
||||
({ name = "SharpCompress"; version = "0.26.0"; sha256 = "03cygf8p44j1bfn6z9cn2xrw6zhvhq17xac1sph5rgq7vq2m5iq5"; })
|
||||
({ name = "System.Runtime.CompilerServices.Unsafe"; version = "4.7.1"; sha256 = "119br3pd85lq8zcgh4f60jzmv1g976q1kdgi3hvqdlhfbw6siz2j"; })
|
||||
({ name = "System.Text.Encoding.CodePages"; version = "4.7.1"; sha256 = "1y1hdap9qbl7vp74j8s9zcbh3v1rnrrvcc55wj1hl6has2v3qh1r"; })
|
||||
];
|
||||
since-2_8 = [
|
||||
({ name = "Microsoft.CodeCoverage"; version = "17.0.0"; sha256 = "18gdbsqf6i79ld4ikqr4jhx9ndsggm865b5xj1xmnmgg12ydp19a"; })
|
||||
({ name = "Microsoft.NET.Test.Sdk"; version = "17.0.0"; sha256 = "0bknyf5kig5icwjxls7pcn51x2b2qf91dz9qv67fl70v6cczaz2r"; })
|
||||
({ name = "Microsoft.TestPlatform.ObjectModel"; version = "17.0.0"; sha256 = "1bh5scbvl6ndldqv20sl34h4y257irm9ziv2wyfc3hka6912fhn7"; })
|
||||
({ name = "Microsoft.TestPlatform.TestHost"; version = "17.0.0"; sha256 = "06mn31cgpp7d8lwdyjanh89prc66j37dchn74vrd9s588rq0y70r"; })
|
||||
({ name = "MSTest.TestAdapter"; version = "2.2.8"; sha256 = "045k737srwvm6dpad04dkj7ln38csf45lps5j88w8hyzrdgllbb9"; })
|
||||
({ name = "MSTest.TestFramework"; version = "2.2.8"; sha256 = "1jw7sl2li7xzx8scciz9bc2rw8cnwcwxr8061zykrgg1dbjx6aa3"; })
|
||||
({ name = "SharpCompress"; version = "0.30.1"; sha256 = "1hib2hxjrlikwsczym1qn2slaapgjw8qzd8gmid8bryaz8hv044h"; })
|
||||
({ name = "System.Collections.Immutable"; version = "5.0.0"; sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r"; })
|
||||
({ name = "System.Runtime.CompilerServices.Unsafe"; version = "5.0.0"; sha256 = "02k25ivn50dmqx5jn8hawwmz24yf0454fjd823qk6lygj9513q4x"; })
|
||||
({ name = "System.Text.Encoding.CodePages"; version = "5.0.0"; sha256 = "1bn2pzaaq4wx9ixirr8151vm5hynn3lmrljcgjx9yghmm4k677k0"; })
|
||||
];
|
||||
until-2_9 = [
|
||||
({ name = "Menees.Analyzers"; version = "2.0.4"; sha256 = "0nvg9jw99066cf3aqg3iqllsabq8l100wbki62yq8ldmqlygg0wr"; })
|
||||
({ name = "Microsoft.NETCore.Platforms"; version = "3.1.1"; sha256 = "05hmaygd5131rnqi6ipv7agsbpi7ka18779vw45iw6b385l7n987"; })
|
||||
({ name = "Nullable"; version = "1.3.0"; sha256 = "1h4m6as8ahkjm6adz42rnp33kgxgkn0aj7a1m09c73w4fps1ypcd"; })
|
||||
({ name = "StyleCop.Analyzers"; version = "1.2.0-beta.333"; sha256 = "0ayfbwm5lqw0y9gshvdw1a0jym21bzrw7qv41n504hnq3sjdxjh6"; })
|
||||
({ name = "StyleCop.Analyzers.Unstable"; version = "1.2.0.333"; sha256 = "04jkfv3azqvd1nd2fsi0gi3mcrxjj9cf5cmavhbcqc5ibjjrarjz"; })
|
||||
({ name = "System.Drawing.Common"; version = "5.0.2"; sha256 = "08kgiywg5whhw80xshlrp0q9mkl8hlkgqdsnk1gm6bb898f1l3gs"; })
|
||||
];
|
||||
since-2_9 = [
|
||||
({ name = "Google.FlatBuffers"; version = "22.9.24"; sha256 = "0v72xrzcd7pphjizi2y5amk11nqjvhm7qqcb899rypl91a8vxw04"; })
|
||||
({ name = "Menees.Analyzers"; version = "3.0.8"; sha256 = "1apv06cmnrakaylyh85hjyn380cnj0h53j3pakyp0f4jnpgw0bgf"; })
|
||||
({ name = "Meziantou.Analyzer"; version = "1.0.707"; sha256 = "09drs16fr0xly4k8drznw7pa5f2byjc9km0pm0c3rrhl7jsz4ds5"; })
|
||||
({ name = "Microsoft.AspNetCore.App.Ref"; version = "6.0.9"; sha256 = "16zdir94cacz2qrndspkyvwq7gp0cp20wdixkazfzxk8h5fhgbzw"; })
|
||||
({ name = "Microsoft.Bcl.HashCode"; version = "1.1.1"; sha256 = "0xwfph92p92d8hgrdiaka4cazqsjpg4ywfxfx6qbk3939f29kzl0"; })
|
||||
({ name = "Nullable"; version = "1.3.1"; sha256 = "0hwrr4q22c0i056dqy3v431rxjv7md910ihz0pjsi16qxsbpw7p7"; })
|
||||
({ name = "StyleCop.Analyzers"; version = "1.2.0-beta.435"; sha256 = "0dirz0av24ds2k7hgpss15y4wlhwlzz22qdjvkq0n3g3sxcckrsy"; })
|
||||
({ name = "StyleCop.Analyzers.Unstable"; version = "1.2.0.435"; sha256 = "1jv4ha4y2c9922n21yf2dvfkmi8qfa8z28gk5zsqdyck08izp9mh"; })
|
||||
({ name = "System.Drawing.Common"; version = "5.0.3"; sha256 = "1rnvqh5hwsqvxgn9g8g98sppg32llhk4y45lgv4dw0q6k945pgcy"; })
|
||||
];
|
||||
partialLists = [
|
||||
until-2_8
|
||||
until-2_9
|
||||
since-2_7
|
||||
since-2_8
|
||||
since-2_9
|
||||
];
|
||||
versions = [ "hawk-2_7" "hawk-2_8" "hawk-2_9" ];
|
||||
versionCount = builtins.length versions;
|
||||
f = i: builtins.foldl' (a: b: a ++ b) [] (lib.sublist i versionCount partialLists);
|
||||
in assert (builtins.length partialLists) == versionCount * 2 - 1;
|
||||
builtins.listToAttrs (lib.imap0 (i: name: { inherit name; value = f i; }) versions)
|
|
@ -0,0 +1,298 @@
|
|||
let
|
||||
only-2_6_2-through-2_9 = [
|
||||
{ pname = "Cyotek.Drawing.BitmapFont"; version = "2.0.2"; sha256 = "0h1s1h7bs3iaxmyv1gi5r0712kf40njljdcff52i87fi9jz76lj9"; }
|
||||
];
|
||||
only-2_6_3_and-2_7 = [
|
||||
{ pname = "Microsoft.CodeCoverage"; version = "16.10.0"; sha256 = "0nimrz7araj72d4ckpkqprvg6rgdv5y1bvmv63pqqbphbif9fjd1"; }
|
||||
{ pname = "Microsoft.NET.Test.Sdk"; version = "16.10.0"; sha256 = "1rz5d3h2427xp86qm8l35bs7xkl93771gk8401bsd7mrrad86nwb"; }
|
||||
{ pname = "Microsoft.NETCore.Platforms"; version = "3.1.1"; sha256 = "05hmaygd5131rnqi6ipv7agsbpi7ka18779vw45iw6b385l7n987"; }
|
||||
{ pname = "Microsoft.TestPlatform.ObjectModel"; version = "16.10.0"; sha256 = "062llwghbmf5vhrczylyzhlflhd5lx05607aipmximd66p50wzbk"; }
|
||||
{ pname = "Microsoft.TestPlatform.TestHost"; version = "16.10.0"; sha256 = "1lhwwxlylmklp8wwirfmdc4dzfp2h8fxgw847cqy8by8h5wcwbjc"; }
|
||||
{ pname = "MSTest.TestAdapter"; version = "2.2.3"; sha256 = "14lfcagmcqv2kqyaanxdrhh57v6g7h790v6k9sicdbmahwnkkia2"; }
|
||||
{ pname = "MSTest.TestFramework"; version = "2.2.3"; sha256 = "1ycmya48212j4295qwldyzpm20001zdlmzna0zi9m3jvhlvhjggg"; }
|
||||
{ pname = "SharpCompress"; version = "0.26.0"; sha256 = "03cygf8p44j1bfn6z9cn2xrw6zhvhq17xac1sph5rgq7vq2m5iq5"; }
|
||||
{ pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.7.1"; sha256 = "119br3pd85lq8zcgh4f60jzmv1g976q1kdgi3hvqdlhfbw6siz2j"; }
|
||||
{ pname = "System.Text.Encoding.CodePages"; version = "4.7.1"; sha256 = "1y1hdap9qbl7vp74j8s9zcbh3v1rnrrvcc55wj1hl6has2v3qh1r"; }
|
||||
];
|
||||
only-2_6_3-through-2_8 = [
|
||||
{ pname = "OpenTK"; version = "3.3.2"; sha256 = "0jcy4ldq5qp6s1441l12dycfgq0llx4i97y2bbv3n99hg7qvk9vm"; }
|
||||
{ pname = "System.Drawing.Common"; version = "5.0.2"; sha256 = "08kgiywg5whhw80xshlrp0q9mkl8hlkgqdsnk1gm6bb898f1l3gs"; }
|
||||
];
|
||||
only-2_6_3-through-2_9 = [
|
||||
{ pname = "JunitXml.TestLogger"; version = "3.0.98"; sha256 = "1xl6kjaa8b84y8fy0q60mym28nqza3vm3pd4fc8ragcmfh2k5rxv"; }
|
||||
{ pname = "Microsoft.NETFramework.ReferenceAssemblies"; version = "1.0.2"; sha256 = "0i42rn8xmvhn08799manpym06kpw89qy9080myyy2ngy565pqh0a"; }
|
||||
{ pname = "Microsoft.NETFramework.ReferenceAssemblies.net48"; version = "1.0.2"; sha256 = "10ry214g6v4s57vmk1pyqz8z3fsqxl44qyn68y0rrfjcpn29sh5m"; }
|
||||
{ pname = "System.Resources.Extensions"; version = "5.0.0"; sha256 = "0v2zdwpnqky43zhjrd2dwbap02n4pfwrhl9sz70zp3mpx7z6qxnj"; }
|
||||
];
|
||||
only-2_8-and-2_9 = [
|
||||
{ pname = "Microsoft.CodeCoverage"; version = "17.0.0"; sha256 = "18gdbsqf6i79ld4ikqr4jhx9ndsggm865b5xj1xmnmgg12ydp19a"; }
|
||||
{ pname = "Microsoft.NET.Test.Sdk"; version = "17.0.0"; sha256 = "0bknyf5kig5icwjxls7pcn51x2b2qf91dz9qv67fl70v6cczaz2r"; }
|
||||
{ pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.0.0"; sha256 = "1bh5scbvl6ndldqv20sl34h4y257irm9ziv2wyfc3hka6912fhn7"; }
|
||||
{ pname = "Microsoft.TestPlatform.TestHost"; version = "17.0.0"; sha256 = "06mn31cgpp7d8lwdyjanh89prc66j37dchn74vrd9s588rq0y70r"; }
|
||||
{ pname = "MSTest.TestAdapter"; version = "2.2.8"; sha256 = "045k737srwvm6dpad04dkj7ln38csf45lps5j88w8hyzrdgllbb9"; }
|
||||
{ pname = "MSTest.TestFramework"; version = "2.2.8"; sha256 = "1jw7sl2li7xzx8scciz9bc2rw8cnwcwxr8061zykrgg1dbjx6aa3"; }
|
||||
{ pname = "SharpCompress"; version = "0.30.1"; sha256 = "1hib2hxjrlikwsczym1qn2slaapgjw8qzd8gmid8bryaz8hv044h"; }
|
||||
{ pname = "System.Collections.Immutable"; version = "5.0.0"; sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r"; }
|
||||
];
|
||||
in {
|
||||
until-2_6 = [];
|
||||
only-2_6 = [];
|
||||
since-2_6 = [
|
||||
{ pname = "Microsoft.CSharp"; version = "4.7.0"; sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; }
|
||||
{ pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; }
|
||||
{ pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; }
|
||||
{ pname = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; }
|
||||
{ pname = "NETStandard.Library"; version = "1.6.1"; sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"; }
|
||||
{ pname = "NETStandard.Library"; version = "2.0.3"; sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y"; }
|
||||
{ pname = "runtime.any.System.Collections"; version = "4.3.0"; sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0"; }
|
||||
{ pname = "runtime.any.System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk"; }
|
||||
{ pname = "runtime.any.System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn"; }
|
||||
{ pname = "runtime.any.System.Globalization"; version = "4.3.0"; sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x"; }
|
||||
{ pname = "runtime.any.System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1ghhhk5psqxcg6w88sxkqrc35bxcz27zbqm2y5p5298pv3v7g201"; }
|
||||
{ pname = "runtime.any.System.IO"; version = "4.3.0"; sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x"; }
|
||||
{ pname = "runtime.any.System.Reflection"; version = "4.3.0"; sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly"; }
|
||||
{ pname = "runtime.any.System.Reflection.Extensions"; version = "4.3.0"; sha256 = "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33"; }
|
||||
{ pname = "runtime.any.System.Reflection.Primitives"; version = "4.3.0"; sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf"; }
|
||||
{ pname = "runtime.any.System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl"; }
|
||||
{ pname = "runtime.any.System.Runtime"; version = "4.3.0"; sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b"; }
|
||||
{ pname = "runtime.any.System.Runtime.Handles"; version = "4.3.0"; sha256 = "0bh5bi25nk9w9xi8z23ws45q5yia6k7dg3i4axhfqlnj145l011x"; }
|
||||
{ pname = "runtime.any.System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19"; }
|
||||
{ pname = "runtime.any.System.Text.Encoding"; version = "4.3.0"; sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3"; }
|
||||
{ pname = "runtime.any.System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8"; }
|
||||
{ pname = "runtime.any.System.Threading.Tasks"; version = "4.3.0"; sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va"; }
|
||||
{ pname = "runtime.any.System.Threading.Timer"; version = "4.3.0"; sha256 = "0aw4phrhwqz9m61r79vyfl5la64bjxj8l34qnrcwb28v49fg2086"; }
|
||||
{ pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; }
|
||||
{ pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; }
|
||||
{ pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; }
|
||||
{ pname = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; }
|
||||
{ pname = "runtime.native.System.IO.Compression"; version = "4.3.0"; sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d"; }
|
||||
{ pname = "runtime.native.System.Net.Http"; version = "4.3.0"; sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk"; }
|
||||
{ pname = "runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q"; }
|
||||
{ pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; }
|
||||
{ pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; }
|
||||
{ pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; }
|
||||
{ pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi"; }
|
||||
{ pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"; }
|
||||
{ pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"; }
|
||||
{ pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; }
|
||||
{ pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; }
|
||||
{ pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; }
|
||||
{ pname = "runtime.unix.Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0y61k9zbxhdi0glg154v30kkq7f8646nif8lnnxbvkjpakggd5id"; }
|
||||
{ pname = "runtime.unix.System.Console"; version = "4.3.0"; sha256 = "1pfpkvc6x2if8zbdzg9rnc5fx51yllprl8zkm5npni2k50lisy80"; }
|
||||
{ pname = "runtime.unix.System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5"; }
|
||||
{ pname = "runtime.unix.System.IO.FileSystem"; version = "4.3.0"; sha256 = "14nbkhvs7sji5r1saj2x8daz82rnf9kx28d3v2qss34qbr32dzix"; }
|
||||
{ pname = "runtime.unix.System.Net.Primitives"; version = "4.3.0"; sha256 = "0bdnglg59pzx9394sy4ic66kmxhqp8q8bvmykdxcbs5mm0ipwwm4"; }
|
||||
{ pname = "runtime.unix.System.Net.Sockets"; version = "4.3.0"; sha256 = "03npdxzy8gfv035bv1b9rz7c7hv0rxl5904wjz51if491mw0xy12"; }
|
||||
{ pname = "runtime.unix.System.Private.Uri"; version = "4.3.0"; sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk"; }
|
||||
{ pname = "runtime.unix.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p"; }
|
||||
{ pname = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; }
|
||||
{ pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; }
|
||||
{ pname = "System.Buffers"; version = "4.5.1"; sha256 = "04kb1mdrlcixj9zh1xdi5as0k0qi8byr5mi3p3jcxx72qz93s2y3"; }
|
||||
{ pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; }
|
||||
{ pname = "System.Collections.Concurrent"; version = "4.3.0"; sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; }
|
||||
{ pname = "System.ComponentModel.Annotations"; version = "5.0.0"; sha256 = "021h7x98lblq9avm1bgpa4i31c2kgsa7zn4sqhxf39g087ar756j"; }
|
||||
{ pname = "System.Console"; version = "4.3.0"; sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"; }
|
||||
{ pname = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; }
|
||||
{ pname = "System.Diagnostics.DiagnosticSource"; version = "4.3.0"; sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq"; }
|
||||
{ pname = "System.Diagnostics.TextWriterTraceListener"; version = "4.3.0"; sha256 = "09db74f36wkwg30f7v7zhz1yhkyrnl5v6bdwljq1jdfgzcfch7c3"; }
|
||||
{ pname = "System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1"; }
|
||||
{ pname = "System.Diagnostics.TraceSource"; version = "4.3.0"; sha256 = "1kyw4d7dpjczhw6634nrmg7yyyzq72k75x38y0l0nwhigdlp1766"; }
|
||||
{ pname = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; }
|
||||
{ pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; }
|
||||
{ pname = "System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq"; }
|
||||
{ pname = "System.Globalization.Extensions"; version = "4.3.0"; sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; }
|
||||
{ pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; }
|
||||
{ pname = "System.IO.Compression"; version = "4.3.0"; sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz"; }
|
||||
{ pname = "System.IO.Compression.ZipFile"; version = "4.3.0"; sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar"; }
|
||||
{ pname = "System.IO.FileSystem"; version = "4.3.0"; sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw"; }
|
||||
{ pname = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; }
|
||||
{ pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; }
|
||||
{ pname = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; }
|
||||
{ pname = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; }
|
||||
{ pname = "System.Net.Http"; version = "4.3.0"; sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j"; }
|
||||
{ pname = "System.Net.Http"; version = "4.3.4"; sha256 = "0kdp31b8819v88l719j6my0yas6myv9d1viql3qz5577mv819jhl"; }
|
||||
{ pname = "System.Net.NameResolution"; version = "4.3.0"; sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq"; }
|
||||
{ pname = "System.Net.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; }
|
||||
{ pname = "System.Net.Sockets"; version = "4.3.0"; sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla"; }
|
||||
{ pname = "System.Numerics.Vectors"; version = "4.4.0"; sha256 = "0rdvma399070b0i46c4qq1h2yvjj3k013sqzkilz4bz5cwmx1rba"; }
|
||||
{ pname = "System.Numerics.Vectors"; version = "4.5.0"; sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; }
|
||||
{ pname = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; }
|
||||
{ pname = "System.Private.Uri"; version = "4.3.0"; sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx"; }
|
||||
{ pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; }
|
||||
{ pname = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; }
|
||||
{ pname = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; }
|
||||
{ pname = "System.Reflection.Emit.ILGeneration"; version = "4.7.0"; sha256 = "0l8jpxhpgjlf1nkz5lvp61r4kfdbhr29qi8aapcxn3izd9wd0j8r"; }
|
||||
{ pname = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; }
|
||||
{ pname = "System.Reflection.Emit.Lightweight"; version = "4.7.0"; sha256 = "0mbjfajmafkca47zr8v36brvknzks5a7pgb49kfq2d188pyv6iap"; }
|
||||
{ pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; }
|
||||
{ pname = "System.Reflection.Metadata"; version = "1.6.0"; sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4"; }
|
||||
{ pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; }
|
||||
{ pname = "System.Reflection.TypeExtensions"; version = "4.3.0"; sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; }
|
||||
{ pname = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; }
|
||||
{ pname = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; }
|
||||
{ pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.3"; sha256 = "1afi6s2r1mh1kygbjmfba6l4f87pi5sg13p4a48idqafli94qxln"; }
|
||||
{ pname = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; }
|
||||
{ pname = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; }
|
||||
{ pname = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; }
|
||||
{ pname = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.3.0"; sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii"; }
|
||||
{ pname = "System.Runtime.Numerics"; version = "4.3.0"; sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; }
|
||||
{ pname = "System.Security.Claims"; version = "4.3.0"; sha256 = "0jvfn7j22l3mm28qjy3rcw287y9h65ha4m940waaxah07jnbzrhn"; }
|
||||
{ pname = "System.Security.Cryptography.Algorithms"; version = "4.3.0"; sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; }
|
||||
{ pname = "System.Security.Cryptography.Cng"; version = "4.3.0"; sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; }
|
||||
{ pname = "System.Security.Cryptography.Csp"; version = "4.3.0"; sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1"; }
|
||||
{ pname = "System.Security.Cryptography.Encoding"; version = "4.3.0"; sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32"; }
|
||||
{ pname = "System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc"; }
|
||||
{ pname = "System.Security.Cryptography.Primitives"; version = "4.3.0"; sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; }
|
||||
{ pname = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; }
|
||||
{ pname = "System.Security.Principal"; version = "4.3.0"; sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf"; }
|
||||
{ pname = "System.Security.Principal.Windows"; version = "4.3.0"; sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr"; }
|
||||
{ pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; }
|
||||
{ pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; }
|
||||
{ pname = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; }
|
||||
{ pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; }
|
||||
{ pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; }
|
||||
{ pname = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; }
|
||||
{ pname = "System.Threading.ThreadPool"; version = "4.3.0"; sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1"; }
|
||||
{ pname = "System.Threading.Timer"; version = "4.3.0"; sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56"; }
|
||||
{ pname = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; }
|
||||
{ pname = "System.Xml.XDocument"; version = "4.3.0"; sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd"; }
|
||||
];
|
||||
|
||||
until-2_6_1 = [
|
||||
{ pname = "Microsoft.VisualBasic"; version = "10.3.0"; sha256 = "1l2351srrbxjvf5kdzid50246fapb957xxiqi8n0caf5wbs8lwzq"; }
|
||||
{ pname = "SharpZipLib"; version = "1.1.0"; sha256 = "1jlqnza79sicf5p6v4ssyn70j7gbd3yrcjhgv5iykzb7d9kbcjqg"; }
|
||||
];
|
||||
only-2_6_1 = [];
|
||||
since-2_6_1 = [];
|
||||
|
||||
until-2_6_2 = [
|
||||
{ pname = "Cyotek.Drawing.BitmapFont"; version = "1.0.2"; sha256 = "18rzr6b2403i8i51h18zf82lwkdvnyw9bn4qd7l7sk1xlc9qgjga"; }
|
||||
{ pname = "OpenTK"; version = "3.1.0"; sha256 = "0qh541p4mlih5i1bjla8yzv21dv7gpmqijf9k0r6wjc309pcf9pp"; }
|
||||
];
|
||||
only-2_6_2 = only-2_6_2-through-2_9;
|
||||
since-2_6_2 = [];
|
||||
|
||||
until-2_6_3 = [
|
||||
{ pname = "JunitXml.TestLogger"; version = "2.1.78"; sha256 = "0sdh4hckig6jbr8hbmih1lc8ax1lcvari0dfy9y5ipvvphdkcn5k"; }
|
||||
{ pname = "Microsoft.CodeCoverage"; version = "16.8.3"; sha256 = "1r49rr83s9agbs3xkmf1dlkvqbay163qvwz6r2z6lgh92r9flksv"; }
|
||||
{ pname = "Microsoft.NET.Test.Sdk"; version = "16.8.3"; sha256 = "1ahah4vgdjfymab7cd49rpdagsjd1x1hid3h82yln99b3p91whkd"; }
|
||||
{ pname = "Microsoft.NETCore.Platforms"; version = "2.1.2"; sha256 = "1507hnpr9my3z4w1r6xk5n0s1j3y6a2c2cnynj76za7cphxi1141"; }
|
||||
{ pname = "Microsoft.NETFramework.ReferenceAssemblies"; version = "1.0.0"; sha256 = "0na724xhvqm63vq9y18fl9jw9q2v99bdwr353378s5fsi11qzxp9"; }
|
||||
{ pname = "Microsoft.NETFramework.ReferenceAssemblies.net48"; version = "1.0.0"; sha256 = "1kl3nx89mkyn07rc3ny0mzrnyndzyk95bl5b0khkdkncqnha02zx"; }
|
||||
{ pname = "Microsoft.TestPlatform.ObjectModel"; version = "16.8.3"; sha256 = "0szyg2p18w9lhlp52iylrr97w3kdalab089imhc53x1850avddsg"; }
|
||||
{ pname = "Microsoft.TestPlatform.TestHost"; version = "16.8.3"; sha256 = "0lgjvzhh2gkcl1r1f9w97wv5zy0p8iga68ml6v10m9wxh640zdqr"; }
|
||||
{ pname = "MSTest.TestAdapter"; version = "2.1.2"; sha256 = "1390nyc0sf5c4j75cq58bzqjcw77sp2lmpllmm5sp8ysi0fjyfs5"; }
|
||||
{ pname = "MSTest.TestFramework"; version = "2.1.2"; sha256 = "1617q2accpa8fwy9n1snmjxyx2fz3phks62mdi45cl65kdin0x4z"; }
|
||||
{ pname = "Newtonsoft.Json"; version = "12.0.3"; sha256 = "17dzl305d835mzign8r15vkmav2hq8l6g7942dfjpnzr17wwl89x"; }
|
||||
{ pname = "OpenTK"; version = "3.3.0"; sha256 = "1nnwam2lc9zmadi0k2nvv764m6n8sn0nk8cdgg8574i3dn0llmha"; }
|
||||
{ pname = "runtime.native.System"; version = "4.0.0"; sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf"; }
|
||||
{ pname = "SharpCompress"; version = "0.24.0"; sha256 = "13bzq8ggipr5254654l2ndm6jdxj9ggandy01gpjxnjwy4jhaz9p"; }
|
||||
{ pname = "System.Drawing.Common"; version = "5.0.0"; sha256 = "0fag8hr2v9bswrsjka311lhbr1a43yzcc36j4fadz0f0kl2hby7h"; }
|
||||
{ pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.2"; sha256 = "1vz4275fjij8inf31np78hw50al8nqkngk04p3xv5n4fcmf1grgi"; }
|
||||
{ pname = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.0.0"; sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6"; }
|
||||
{ pname = "System.Text.Encoding.CodePages"; version = "4.5.1"; sha256 = "1z21qyfs6sg76rp68qdx0c9iy57naan89pg7p6i3qpj8kyzn921w"; }
|
||||
];
|
||||
only-2_6_3 = only-2_6_2-through-2_9 ++ only-2_6_3_and-2_7 ++ only-2_6_3-through-2_8 ++ only-2_6_3-through-2_9;
|
||||
since-2_6_3 = [
|
||||
{ pname = "DotNetAnalyzers.DocumentationAnalyzers"; version = "1.0.0-beta.59"; sha256 = "03kllr1f52jq5a0b1fa2s57yz1bp0awh36n4dk679nqgbg6m8flj"; }
|
||||
{ pname = "DotNetAnalyzers.DocumentationAnalyzers.Unstable"; version = "1.0.0.59"; sha256 = "1491q3rby0ysm2bszr33r9h48wk4bz3bz748ziz8p2rklcqrhn5f"; }
|
||||
{ pname = "Newtonsoft.Json"; version = "13.0.1"; sha256 = "0fijg0w6iwap8gvzyjnndds0q4b8anwxxvik7y8vgq97dram4srb"; }
|
||||
{ pname = "System.Reflection.Emit"; version = "4.7.0"; sha256 = "121l1z2ypwg02yz84dy6gr82phpys0njk7yask3sihgy214w43qp"; }
|
||||
];
|
||||
|
||||
until-2_7 = [];
|
||||
only-2_7 = only-2_6_2-through-2_9 ++ only-2_6_3_and-2_7 ++ only-2_6_3-through-2_8 ++ only-2_6_3-through-2_9;
|
||||
since-2_7 = [];
|
||||
|
||||
until-2_8 = [];
|
||||
only-2_8 = only-2_6_2-through-2_9 ++ only-2_6_3-through-2_8 ++ only-2_6_3-through-2_9 ++ only-2_8-and-2_9;
|
||||
since-2_8 = [
|
||||
{ pname = "System.Runtime.CompilerServices.Unsafe"; version = "5.0.0"; sha256 = "02k25ivn50dmqx5jn8hawwmz24yf0454fjd823qk6lygj9513q4x"; }
|
||||
{ pname = "System.Text.Encoding.CodePages"; version = "5.0.0"; sha256 = "1bn2pzaaq4wx9ixirr8151vm5hynn3lmrljcgjx9yghmm4k677k0"; }
|
||||
];
|
||||
|
||||
until-2_9 = [
|
||||
{ pname = "Nullable"; version = "1.3.0"; sha256 = "1h4m6as8ahkjm6adz42rnp33kgxgkn0aj7a1m09c73w4fps1ypcd"; }
|
||||
{ pname = "OpenTK.GLControl"; version = "3.1.0"; sha256 = "0j9h89qzwicpd396s49pp51vs3h92ksai444k68w85x62mg07cnm"; }
|
||||
];
|
||||
only-2_9 = only-2_6_2-through-2_9 ++ only-2_6_3-through-2_9 ++ only-2_8-and-2_9 ++ [
|
||||
{ pname = "Menees.Analyzers"; version = "3.0.8"; sha256 = "1apv06cmnrakaylyh85hjyn380cnj0h53j3pakyp0f4jnpgw0bgf"; }
|
||||
{ pname = "Meziantou.Analyzer"; version = "1.0.707"; sha256 = "09drs16fr0xly4k8drznw7pa5f2byjc9km0pm0c3rrhl7jsz4ds5"; }
|
||||
{ pname = "System.Drawing.Common"; version = "5.0.3"; sha256 = "1rnvqh5hwsqvxgn9g8g98sppg32llhk4y45lgv4dw0q6k945pgcy"; }
|
||||
];
|
||||
since-2_9 = [
|
||||
{ pname = "Google.FlatBuffers"; version = "22.9.24"; sha256 = "0v72xrzcd7pphjizi2y5amk11nqjvhm7qqcb899rypl91a8vxw04"; }
|
||||
{ pname = "Microsoft.Bcl.HashCode"; version = "1.1.1"; sha256 = "0xwfph92p92d8hgrdiaka4cazqsjpg4ywfxfx6qbk3939f29kzl0"; }
|
||||
{ pname = "Nullable"; version = "1.3.1"; sha256 = "0hwrr4q22c0i056dqy3v431rxjv7md910ihz0pjsi16qxsbpw7p7"; }
|
||||
{ pname = "OpenTK"; version = "3.3.3"; sha256 = "1ab67cmwd5nzdp1476m2ikb3m7a7hhn7wdfl6zfzp0wngzbcvzv9"; }
|
||||
{ pname = "OpenTK.GLControl"; version = "3.3.3"; sha256 = "0nc9yykylkf4qmrzbkn368iaq5jzly8ryw99sggd293qhp2s1kqm"; }
|
||||
{ pname = "StyleCop.Analyzers"; version = "1.2.0-beta.435"; sha256 = "0dirz0av24ds2k7hgpss15y4wlhwlzz22qdjvkq0n3g3sxcckrsy"; }
|
||||
{ pname = "StyleCop.Analyzers.Unstable"; version = "1.2.0.435"; sha256 = "1jv4ha4y2c9922n21yf2dvfkmi8qfa8z28gk5zsqdyck08izp9mh"; }
|
||||
];
|
||||
|
||||
until-2_9_1 = [
|
||||
{ pname = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; }
|
||||
{ pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; }
|
||||
{ pname = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; }
|
||||
{ pname = "Microsoft.NETCore.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; }
|
||||
{ pname = "Microsoft.Win32.SystemEvents"; version = "5.0.0"; sha256 = "0sja4ba0mrvdamn0r9mhq38b9dxi08yb3c1hzh29n1z6ws1hlrcq"; }
|
||||
{ pname = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; }
|
||||
{ pname = "NuGet.Frameworks"; version = "5.0.0"; sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr"; }
|
||||
{ pname = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; }
|
||||
{ pname = "System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz"; }
|
||||
{ pname = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; }
|
||||
{ pname = "System.Dynamic.Runtime"; version = "4.0.11"; sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9"; }
|
||||
{ pname = "System.Globalization"; version = "4.0.11"; sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; }
|
||||
{ pname = "System.IO"; version = "4.1.0"; sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; }
|
||||
{ pname = "System.IO.FileSystem"; version = "4.0.1"; sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1"; }
|
||||
{ pname = "System.IO.FileSystem.Primitives"; version = "4.0.1"; sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612"; }
|
||||
{ pname = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; }
|
||||
{ pname = "System.Linq.Expressions"; version = "4.1.0"; sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg"; }
|
||||
{ pname = "System.ObjectModel"; version = "4.0.12"; sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj"; }
|
||||
{ pname = "System.Reflection"; version = "4.1.0"; sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; }
|
||||
{ pname = "System.Reflection.Emit"; version = "4.0.1"; sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; }
|
||||
{ pname = "System.Reflection.Emit.ILGeneration"; version = "4.0.1"; sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0"; }
|
||||
{ pname = "System.Reflection.Emit.Lightweight"; version = "4.0.1"; sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr"; }
|
||||
{ pname = "System.Reflection.Extensions"; version = "4.0.1"; sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; }
|
||||
{ pname = "System.Reflection.Primitives"; version = "4.0.1"; sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; }
|
||||
{ pname = "System.Reflection.TypeExtensions"; version = "4.1.0"; sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7"; }
|
||||
{ pname = "System.Resources.ResourceManager"; version = "4.0.1"; sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi"; }
|
||||
{ pname = "System.Runtime"; version = "4.1.0"; sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; }
|
||||
{ pname = "System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; }
|
||||
{ pname = "System.Runtime.Handles"; version = "4.0.1"; sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g"; }
|
||||
{ pname = "System.Runtime.InteropServices"; version = "4.1.0"; sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1"; }
|
||||
{ pname = "System.Runtime.Serialization.Primitives"; version = "4.1.1"; sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k"; }
|
||||
{ pname = "System.Text.Encoding"; version = "4.0.11"; sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; }
|
||||
{ pname = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; }
|
||||
{ pname = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; }
|
||||
{ pname = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; }
|
||||
{ pname = "System.Threading.Tasks"; version = "4.0.11"; sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5"; }
|
||||
{ pname = "System.Threading.Tasks.Extensions"; version = "4.0.0"; sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; }
|
||||
{ pname = "System.Xml.ReaderWriter"; version = "4.0.11"; sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5"; }
|
||||
{ pname = "System.Xml.XDocument"; version = "4.0.11"; sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; }
|
||||
];
|
||||
only-2_9_1 = [
|
||||
{ pname = "Cyotek.Drawing.BitmapFont"; version = "2.0.4"; sha256 = "04n0lq9sqfjzyvkqav6qrc8v9fb7jv1n7jk0j4r6ivfbmffzq8if"; }
|
||||
{ pname = "JunitXml.TestLogger"; version = "3.0.124"; sha256 = "1s70k74bkw0fhfkylak289c2s7l6vijz7n5j64qyw7bjzncqs4n7"; }
|
||||
{ pname = "Menees.Analyzers"; version = "3.0.10"; sha256 = "1fgkr4x8cnjmn6xj106g1y5smc49x9qkmb8c42nx7sqg3lzwqpgb"; }
|
||||
{ pname = "Meziantou.Analyzer"; version = "2.0.33"; sha256 = "0lyi217pijxh7jw5xg47ks5r32s77g0xlw9nf42vjbmczfmhk23d"; }
|
||||
{ pname = "Microsoft.CodeCoverage"; version = "17.5.0"; sha256 = "0briw00gb5bz9k9kx00p6ghq47w501db7gb6ig5zzmz9hb8lw4a4"; }
|
||||
{ pname = "Microsoft.NET.Test.Sdk"; version = "17.5.0"; sha256 = "00gz2i8kx4mlq1ywj3imvf7wc6qzh0bsnynhw06z0mgyha1a21jy"; }
|
||||
{ pname = "Microsoft.NETFramework.ReferenceAssemblies"; version = "1.0.3"; sha256 = "0hc4d4d4358g5192mf8faijwk0bpf9pjwcfd3h85sr67j0zhj6hl"; }
|
||||
{ pname = "Microsoft.NETFramework.ReferenceAssemblies.net48"; version = "1.0.3"; sha256 = "18h4265rn5dy5d1igddsz1ilygcyyj4id4cn2qsr3sz7722k8zla"; }
|
||||
{ pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.5.0"; sha256 = "0qkjyf3ky6xpjg5is2sdsawm99ka7fzgid2bvpglwmmawqgm8gls"; }
|
||||
{ pname = "Microsoft.TestPlatform.TestHost"; version = "17.5.0"; sha256 = "17g0k3r5n8grba8kg4nghjyhnq9w8v0w6c2nkyyygvfh8k8x9wh3"; }
|
||||
{ pname = "Microsoft.Win32.SystemEvents"; version = "6.0.0"; sha256 = "0c6pcj088g1yd1vs529q3ybgsd2vjlk5y1ic6dkmbhvrp5jibl9p"; }
|
||||
{ pname = "MSTest.TestAdapter"; version = "2.2.9"; sha256 = "0wvnpnwhfwbbgzdpqjwdmndda4x2ha8zq3pbd8x008g2kj1d5ggl"; }
|
||||
{ pname = "MSTest.TestFramework"; version = "2.2.9"; sha256 = "1wd57ky7nxmddp1nn3sy6p9w1jdfg89z1yw0yrg16byn501jrs23"; }
|
||||
{ pname = "Newtonsoft.Json"; version = "13.0.3"; sha256 = "0xrwysmrn4midrjal8g2hr1bbg38iyisl0svamb11arqws4w2bw7"; }
|
||||
{ pname = "NuGet.Frameworks"; version = "5.11.0"; sha256 = "0wv26gq39hfqw9md32amr5771s73f5zn1z9vs4y77cgynxr73s4z"; }
|
||||
{ pname = "SharpCompress"; version = "0.31.0"; sha256 = "01az7amjkxjbya5rdcqwxzrh2d3kybf1gsd3617rsxvvxadyra1r"; }
|
||||
{ pname = "System.Collections.Immutable"; version = "7.0.0"; sha256 = "1n9122cy6v3qhsisc9lzwa1m1j62b8pi2678nsmnlyvfpk0zdagm"; }
|
||||
{ pname = "System.Drawing.Common"; version = "6.0.0"; sha256 = "02n8rzm58dac2np8b3xw8ychbvylja4nh6938l5k2fhyn40imlgz"; }
|
||||
{ pname = "System.Memory"; version = "4.5.5"; sha256 = "08jsfwimcarfzrhlyvjjid61j02irx6xsklf32rv57x2aaikvx0h"; }
|
||||
{ pname = "System.Resources.Extensions"; version = "7.0.0"; sha256 = "0d5gk5g5qqkwa728jwx9yabgjvgywsy6k8r5vgqv2dmlvjrqflb4"; }
|
||||
{ pname = "System.Runtime.CompilerServices.Unsafe"; version = "6.0.0"; sha256 = "0qm741kh4rh57wky16sq4m0v05fxmkjjr87krycf5vp9f0zbahbc"; }
|
||||
];
|
||||
since-2_9_1 = [];
|
||||
}
|
196
Dist/deps.nix
196
Dist/deps.nix
|
@ -1 +1,195 @@
|
|||
{ fetchNuGet }: map fetchNuGet (import ./deps-base.nix {}).hawk-2_9
|
||||
# This file was automatically generated by passthru.fetch-deps.
|
||||
# Please dont edit it manually, your changes might get overwritten!
|
||||
|
||||
{ fetchNuGet }: [
|
||||
(fetchNuGet { pname = "Cyotek.Drawing.BitmapFont"; version = "2.0.4"; sha256 = "04n0lq9sqfjzyvkqav6qrc8v9fb7jv1n7jk0j4r6ivfbmffzq8if"; })
|
||||
(fetchNuGet { pname = "DotNetAnalyzers.DocumentationAnalyzers"; version = "1.0.0-beta.59"; sha256 = "03kllr1f52jq5a0b1fa2s57yz1bp0awh36n4dk679nqgbg6m8flj"; })
|
||||
(fetchNuGet { pname = "DotNetAnalyzers.DocumentationAnalyzers.Unstable"; version = "1.0.0.59"; sha256 = "1491q3rby0ysm2bszr33r9h48wk4bz3bz748ziz8p2rklcqrhn5f"; })
|
||||
(fetchNuGet { pname = "Google.FlatBuffers"; version = "22.9.24"; sha256 = "0v72xrzcd7pphjizi2y5amk11nqjvhm7qqcb899rypl91a8vxw04"; })
|
||||
(fetchNuGet { pname = "JunitXml.TestLogger"; version = "3.0.124"; sha256 = "1s70k74bkw0fhfkylak289c2s7l6vijz7n5j64qyw7bjzncqs4n7"; })
|
||||
(fetchNuGet { pname = "Menees.Analyzers"; version = "3.0.10"; sha256 = "1fgkr4x8cnjmn6xj106g1y5smc49x9qkmb8c42nx7sqg3lzwqpgb"; })
|
||||
(fetchNuGet { pname = "Meziantou.Analyzer"; version = "2.0.33"; sha256 = "0lyi217pijxh7jw5xg47ks5r32s77g0xlw9nf42vjbmczfmhk23d"; })
|
||||
(fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "7.0.0"; sha256 = "1waiggh3g1cclc81gmjrqbh128kwfjky3z79ma4bd2ms9pa3gvfm"; })
|
||||
(fetchNuGet { pname = "Microsoft.Bcl.HashCode"; version = "1.1.1"; sha256 = "0xwfph92p92d8hgrdiaka4cazqsjpg4ywfxfx6qbk3939f29kzl0"; })
|
||||
(fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "17.5.0"; sha256 = "0briw00gb5bz9k9kx00p6ghq47w501db7gb6ig5zzmz9hb8lw4a4"; })
|
||||
(fetchNuGet { pname = "Microsoft.CSharp"; version = "4.7.0"; sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; })
|
||||
(fetchNuGet { pname = "Microsoft.Data.Sqlite"; version = "7.0.9"; sha256 = "1k86yaxs5rhn2f9d2lag6012pr9z5s5qyp47s9wpf54kmvbvxw57"; })
|
||||
(fetchNuGet { pname = "Microsoft.Data.Sqlite.Core"; version = "7.0.9"; sha256 = "1jvcily6sbjqpgns3fyiiv3yyggdbsc7wa4wypmfi442s45rkl4k"; })
|
||||
(fetchNuGet { pname = "Microsoft.DotNet.PlatformAbstractions"; version = "3.1.6"; sha256 = "0b9myd7gqbpaw9pkd2bx45jhik9mwj0f1ss57sk2cxmag2lkdws5"; })
|
||||
(fetchNuGet { pname = "Microsoft.Extensions.DependencyModel"; version = "7.0.0"; sha256 = "04wb6hw3r7mmhg57215r1mb01q17glyaddjw1j5g1drsws914fj4"; })
|
||||
(fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.5.0"; sha256 = "00gz2i8kx4mlq1ywj3imvf7wc6qzh0bsnynhw06z0mgyha1a21jy"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETFramework.ReferenceAssemblies"; version = "1.0.3"; sha256 = "0hc4d4d4358g5192mf8faijwk0bpf9pjwcfd3h85sr67j0zhj6hl"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETFramework.ReferenceAssemblies.net48"; version = "1.0.3"; sha256 = "18h4265rn5dy5d1igddsz1ilygcyyj4id4cn2qsr3sz7722k8zla"; })
|
||||
(fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.5.0"; sha256 = "0qkjyf3ky6xpjg5is2sdsawm99ka7fzgid2bvpglwmmawqgm8gls"; })
|
||||
(fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "17.5.0"; sha256 = "17g0k3r5n8grba8kg4nghjyhnq9w8v0w6c2nkyyygvfh8k8x9wh3"; })
|
||||
(fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; })
|
||||
(fetchNuGet { pname = "Microsoft.Win32.SystemEvents"; version = "6.0.0"; sha256 = "0c6pcj088g1yd1vs529q3ybgsd2vjlk5y1ic6dkmbhvrp5jibl9p"; })
|
||||
(fetchNuGet { pname = "MSTest.TestAdapter"; version = "2.2.9"; sha256 = "0wvnpnwhfwbbgzdpqjwdmndda4x2ha8zq3pbd8x008g2kj1d5ggl"; })
|
||||
(fetchNuGet { pname = "MSTest.TestFramework"; version = "2.2.9"; sha256 = "1wd57ky7nxmddp1nn3sy6p9w1jdfg89z1yw0yrg16byn501jrs23"; })
|
||||
(fetchNuGet { pname = "NETStandard.Library"; version = "1.6.1"; sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"; })
|
||||
(fetchNuGet { pname = "NETStandard.Library"; version = "2.0.3"; sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y"; })
|
||||
(fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.1"; sha256 = "0fijg0w6iwap8gvzyjnndds0q4b8anwxxvik7y8vgq97dram4srb"; })
|
||||
(fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.3"; sha256 = "0xrwysmrn4midrjal8g2hr1bbg38iyisl0svamb11arqws4w2bw7"; })
|
||||
(fetchNuGet { pname = "NuGet.Frameworks"; version = "5.11.0"; sha256 = "0wv26gq39hfqw9md32amr5771s73f5zn1z9vs4y77cgynxr73s4z"; })
|
||||
(fetchNuGet { pname = "Nullable"; version = "1.3.1"; sha256 = "0hwrr4q22c0i056dqy3v431rxjv7md910ihz0pjsi16qxsbpw7p7"; })
|
||||
(fetchNuGet { pname = "PolySharp"; version = "1.10.0"; sha256 = "06qici3hhk6a0jmy0nyvspcnmhbapnic6iin3i28pkdvrii02hnz"; })
|
||||
(fetchNuGet { pname = "ppy.SDL2-CS"; version = "1.0.630-alpha"; sha256 = "0jrf70jrz976b49ac0ygfy9qph2w7fnbfrqv0g0x7hlpaip33ra8"; })
|
||||
(fetchNuGet { pname = "runtime.any.System.Collections"; version = "4.3.0"; sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0"; })
|
||||
(fetchNuGet { pname = "runtime.any.System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk"; })
|
||||
(fetchNuGet { pname = "runtime.any.System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn"; })
|
||||
(fetchNuGet { pname = "runtime.any.System.Globalization"; version = "4.3.0"; sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x"; })
|
||||
(fetchNuGet { pname = "runtime.any.System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1ghhhk5psqxcg6w88sxkqrc35bxcz27zbqm2y5p5298pv3v7g201"; })
|
||||
(fetchNuGet { pname = "runtime.any.System.IO"; version = "4.3.0"; sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x"; })
|
||||
(fetchNuGet { pname = "runtime.any.System.Reflection"; version = "4.3.0"; sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly"; })
|
||||
(fetchNuGet { pname = "runtime.any.System.Reflection.Extensions"; version = "4.3.0"; sha256 = "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33"; })
|
||||
(fetchNuGet { pname = "runtime.any.System.Reflection.Primitives"; version = "4.3.0"; sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf"; })
|
||||
(fetchNuGet { pname = "runtime.any.System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl"; })
|
||||
(fetchNuGet { pname = "runtime.any.System.Runtime"; version = "4.3.0"; sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b"; })
|
||||
(fetchNuGet { pname = "runtime.any.System.Runtime.Handles"; version = "4.3.0"; sha256 = "0bh5bi25nk9w9xi8z23ws45q5yia6k7dg3i4axhfqlnj145l011x"; })
|
||||
(fetchNuGet { pname = "runtime.any.System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19"; })
|
||||
(fetchNuGet { pname = "runtime.any.System.Text.Encoding"; version = "4.3.0"; sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3"; })
|
||||
(fetchNuGet { pname = "runtime.any.System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8"; })
|
||||
(fetchNuGet { pname = "runtime.any.System.Threading.Tasks"; version = "4.3.0"; sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va"; })
|
||||
(fetchNuGet { pname = "runtime.any.System.Threading.Timer"; version = "4.3.0"; sha256 = "0aw4phrhwqz9m61r79vyfl5la64bjxj8l34qnrcwb28v49fg2086"; })
|
||||
(fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; })
|
||||
(fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; })
|
||||
(fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; })
|
||||
(fetchNuGet { pname = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; })
|
||||
(fetchNuGet { pname = "runtime.native.System.IO.Compression"; version = "4.3.0"; sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d"; })
|
||||
(fetchNuGet { pname = "runtime.native.System.Net.Http"; version = "4.3.0"; sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk"; })
|
||||
(fetchNuGet { pname = "runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q"; })
|
||||
(fetchNuGet { pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; })
|
||||
(fetchNuGet { pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; })
|
||||
(fetchNuGet { pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; })
|
||||
(fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi"; })
|
||||
(fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"; })
|
||||
(fetchNuGet { pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"; })
|
||||
(fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; })
|
||||
(fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; })
|
||||
(fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; })
|
||||
(fetchNuGet { pname = "runtime.unix.Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0y61k9zbxhdi0glg154v30kkq7f8646nif8lnnxbvkjpakggd5id"; })
|
||||
(fetchNuGet { pname = "runtime.unix.System.Console"; version = "4.3.0"; sha256 = "1pfpkvc6x2if8zbdzg9rnc5fx51yllprl8zkm5npni2k50lisy80"; })
|
||||
(fetchNuGet { pname = "runtime.unix.System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5"; })
|
||||
(fetchNuGet { pname = "runtime.unix.System.IO.FileSystem"; version = "4.3.0"; sha256 = "14nbkhvs7sji5r1saj2x8daz82rnf9kx28d3v2qss34qbr32dzix"; })
|
||||
(fetchNuGet { pname = "runtime.unix.System.Net.Primitives"; version = "4.3.0"; sha256 = "0bdnglg59pzx9394sy4ic66kmxhqp8q8bvmykdxcbs5mm0ipwwm4"; })
|
||||
(fetchNuGet { pname = "runtime.unix.System.Net.Sockets"; version = "4.3.0"; sha256 = "03npdxzy8gfv035bv1b9rz7c7hv0rxl5904wjz51if491mw0xy12"; })
|
||||
(fetchNuGet { pname = "runtime.unix.System.Private.Uri"; version = "4.3.0"; sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk"; })
|
||||
(fetchNuGet { pname = "runtime.unix.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p"; })
|
||||
(fetchNuGet { pname = "SharpCompress"; version = "0.31.0"; sha256 = "01az7amjkxjbya5rdcqwxzrh2d3kybf1gsd3617rsxvvxadyra1r"; })
|
||||
(fetchNuGet { pname = "SharpDX"; version = "4.2.0"; sha256 = "1hvg44sicvcby4kfgxmbj1y0cz8ybddas4hkiw8smyh00822cw8i"; })
|
||||
(fetchNuGet { pname = "SharpDX.Direct3D9"; version = "4.2.0"; sha256 = "051b7rvmh4phy6id6jyk3n4f8jmfir77i5kcgmfgvppkdvfj15gn"; })
|
||||
(fetchNuGet { pname = "SharpDX.DirectSound"; version = "4.2.0"; sha256 = "13hyclpi58sqmhfmxp9zgspyxxhl4wf6vl9mqp6p9xmy0z4r9yf2"; })
|
||||
(fetchNuGet { pname = "SharpGen.Runtime"; version = "2.0.0-beta.13"; sha256 = "1250z6sa9ghf84czlkzvaysb29c0n229z1f0vh5qls89akrkl7h8"; })
|
||||
(fetchNuGet { pname = "SharpGen.Runtime.COM"; version = "2.0.0-beta.13"; sha256 = "1lmv3jp2g7mgy9j23pd3j0wr3p89qiq8v6c6qxqf688izyni1166"; })
|
||||
(fetchNuGet { pname = "Silk.NET.Core"; version = "2.18.0"; sha256 = "0rj6xi6ia8p3wzg62cvybp16gwz92zdl7w2ll7aclzmlf6s70ml8"; })
|
||||
(fetchNuGet { pname = "Silk.NET.Maths"; version = "2.18.0"; sha256 = "1nkl1sikp7vxljrr0yagb96r3cm6rqg902dg7i0zjc4pj641bqjy"; })
|
||||
(fetchNuGet { pname = "Silk.NET.OpenAL"; version = "2.18.0"; sha256 = "1j0wzm4cxj6l52rjn9y7yw3bk4knf5ynjavhxg1b770k4169lgf2"; })
|
||||
(fetchNuGet { pname = "Silk.NET.OpenAL.Extensions.Creative"; version = "2.18.0"; sha256 = "0vm8lb0xfbbqs470v84346hyj4w4y4z2mbs6395nx01vx89x0y26"; })
|
||||
(fetchNuGet { pname = "Silk.NET.OpenAL.Extensions.Enumeration"; version = "2.18.0"; sha256 = "0lnhzb5x5mwp1nc8ibvp26v3c65sd02dfyzvif9ywli1ajmj2bnw"; })
|
||||
(fetchNuGet { pname = "Silk.NET.OpenGL.Legacy"; version = "2.18.0"; sha256 = "1f86dzf7slrp6dnsxhrgwdzbv1gf22ydr2igd5k0rnnr6g2iyrzy"; })
|
||||
(fetchNuGet { pname = "SQLitePCLRaw.bundle_e_sqlite3"; version = "2.1.4"; sha256 = "0shdspl9cm71wwqg9103s44r0l01r3sgnpxr523y4a0wlgac50g0"; })
|
||||
(fetchNuGet { pname = "SQLitePCLRaw.core"; version = "2.1.4"; sha256 = "09akxz92qipr1cj8mk2hw99i0b81wwbwx26gpk21471zh543f8ld"; })
|
||||
(fetchNuGet { pname = "SQLitePCLRaw.lib.e_sqlite3"; version = "2.1.4"; sha256 = "11l85ksv1ck46j8z08fyf0c3l572zmp9ynb7p5chm5iyrh8xwkkn"; })
|
||||
(fetchNuGet { pname = "SQLitePCLRaw.provider.dynamic_cdecl"; version = "2.1.4"; sha256 = "0pv2haxc2ml4y4sfc9cll9gd9s3kvw044si95bl0lhrdnlsv909g"; })
|
||||
(fetchNuGet { pname = "SQLitePCLRaw.provider.e_sqlite3"; version = "2.1.4"; sha256 = "0b8f51nrjkq0pmfzjaqk5rp7r0cp2lbdm2whynj3xsjklppzmn35"; })
|
||||
(fetchNuGet { pname = "StyleCop.Analyzers"; version = "1.2.0-beta.435"; sha256 = "0dirz0av24ds2k7hgpss15y4wlhwlzz22qdjvkq0n3g3sxcckrsy"; })
|
||||
(fetchNuGet { pname = "StyleCop.Analyzers.Unstable"; version = "1.2.0.435"; sha256 = "1jv4ha4y2c9922n21yf2dvfkmi8qfa8z28gk5zsqdyck08izp9mh"; })
|
||||
(fetchNuGet { pname = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
|
||||
(fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
|
||||
(fetchNuGet { pname = "System.Buffers"; version = "4.4.0"; sha256 = "183f8063w8zqn99pv0ni0nnwh7fgx46qzxamwnans55hhs2l0g19"; })
|
||||
(fetchNuGet { pname = "System.Buffers"; version = "4.5.1"; sha256 = "04kb1mdrlcixj9zh1xdi5as0k0qi8byr5mi3p3jcxx72qz93s2y3"; })
|
||||
(fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
|
||||
(fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.3.0"; sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; })
|
||||
(fetchNuGet { pname = "System.Collections.Immutable"; version = "7.0.0"; sha256 = "1n9122cy6v3qhsisc9lzwa1m1j62b8pi2678nsmnlyvfpk0zdagm"; })
|
||||
(fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "5.0.0"; sha256 = "021h7x98lblq9avm1bgpa4i31c2kgsa7zn4sqhxf39g087ar756j"; })
|
||||
(fetchNuGet { pname = "System.Console"; version = "4.3.0"; sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"; })
|
||||
(fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; })
|
||||
(fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "4.3.0"; sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq"; })
|
||||
(fetchNuGet { pname = "System.Diagnostics.TextWriterTraceListener"; version = "4.3.0"; sha256 = "09db74f36wkwg30f7v7zhz1yhkyrnl5v6bdwljq1jdfgzcfch7c3"; })
|
||||
(fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1"; })
|
||||
(fetchNuGet { pname = "System.Diagnostics.TraceSource"; version = "4.3.0"; sha256 = "1kyw4d7dpjczhw6634nrmg7yyyzq72k75x38y0l0nwhigdlp1766"; })
|
||||
(fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
|
||||
(fetchNuGet { pname = "System.Drawing.Common"; version = "6.0.0"; sha256 = "02n8rzm58dac2np8b3xw8ychbvylja4nh6938l5k2fhyn40imlgz"; })
|
||||
(fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
|
||||
(fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq"; })
|
||||
(fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.3.0"; sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; })
|
||||
(fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
|
||||
(fetchNuGet { pname = "System.IO.Compression"; version = "4.3.0"; sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz"; })
|
||||
(fetchNuGet { pname = "System.IO.Compression.ZipFile"; version = "4.3.0"; sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar"; })
|
||||
(fetchNuGet { pname = "System.IO.FileSystem"; version = "4.3.0"; sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw"; })
|
||||
(fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
|
||||
(fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
|
||||
(fetchNuGet { pname = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; })
|
||||
(fetchNuGet { pname = "System.Memory"; version = "4.5.3"; sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; })
|
||||
(fetchNuGet { pname = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; })
|
||||
(fetchNuGet { pname = "System.Memory"; version = "4.5.5"; sha256 = "08jsfwimcarfzrhlyvjjid61j02irx6xsklf32rv57x2aaikvx0h"; })
|
||||
(fetchNuGet { pname = "System.Net.Http"; version = "4.3.0"; sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j"; })
|
||||
(fetchNuGet { pname = "System.Net.Http"; version = "4.3.4"; sha256 = "0kdp31b8819v88l719j6my0yas6myv9d1viql3qz5577mv819jhl"; })
|
||||
(fetchNuGet { pname = "System.Net.NameResolution"; version = "4.3.0"; sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq"; })
|
||||
(fetchNuGet { pname = "System.Net.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; })
|
||||
(fetchNuGet { pname = "System.Net.Sockets"; version = "4.3.0"; sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla"; })
|
||||
(fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.4.0"; sha256 = "0rdvma399070b0i46c4qq1h2yvjj3k013sqzkilz4bz5cwmx1rba"; })
|
||||
(fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.5.0"; sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; })
|
||||
(fetchNuGet { pname = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; })
|
||||
(fetchNuGet { pname = "System.Private.Uri"; version = "4.3.0"; sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx"; })
|
||||
(fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
|
||||
(fetchNuGet { pname = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; })
|
||||
(fetchNuGet { pname = "System.Reflection.Emit"; version = "4.7.0"; sha256 = "121l1z2ypwg02yz84dy6gr82phpys0njk7yask3sihgy214w43qp"; })
|
||||
(fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; })
|
||||
(fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.7.0"; sha256 = "0l8jpxhpgjlf1nkz5lvp61r4kfdbhr29qi8aapcxn3izd9wd0j8r"; })
|
||||
(fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; })
|
||||
(fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.7.0"; sha256 = "0mbjfajmafkca47zr8v36brvknzks5a7pgb49kfq2d188pyv6iap"; })
|
||||
(fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; })
|
||||
(fetchNuGet { pname = "System.Reflection.Metadata"; version = "1.6.0"; sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4"; })
|
||||
(fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
|
||||
(fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.3.0"; sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; })
|
||||
(fetchNuGet { pname = "System.Resources.Extensions"; version = "7.0.0"; sha256 = "0d5gk5g5qqkwa728jwx9yabgjvgywsy6k8r5vgqv2dmlvjrqflb4"; })
|
||||
(fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
|
||||
(fetchNuGet { pname = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
|
||||
(fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.2"; sha256 = "1vz4275fjij8inf31np78hw50al8nqkngk04p3xv5n4fcmf1grgi"; })
|
||||
(fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.3"; sha256 = "1afi6s2r1mh1kygbjmfba6l4f87pi5sg13p4a48idqafli94qxln"; })
|
||||
(fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.7.1"; sha256 = "119br3pd85lq8zcgh4f60jzmv1g976q1kdgi3hvqdlhfbw6siz2j"; })
|
||||
(fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "5.0.0"; sha256 = "02k25ivn50dmqx5jn8hawwmz24yf0454fjd823qk6lygj9513q4x"; })
|
||||
(fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "6.0.0"; sha256 = "0qm741kh4rh57wky16sq4m0v05fxmkjjr87krycf5vp9f0zbahbc"; })
|
||||
(fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
|
||||
(fetchNuGet { pname = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
|
||||
(fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
|
||||
(fetchNuGet { pname = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.0.0"; sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6"; })
|
||||
(fetchNuGet { pname = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.3.0"; sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii"; })
|
||||
(fetchNuGet { pname = "System.Runtime.Numerics"; version = "4.3.0"; sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; })
|
||||
(fetchNuGet { pname = "System.Security.Claims"; version = "4.3.0"; sha256 = "0jvfn7j22l3mm28qjy3rcw287y9h65ha4m940waaxah07jnbzrhn"; })
|
||||
(fetchNuGet { pname = "System.Security.Cryptography.Algorithms"; version = "4.3.0"; sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; })
|
||||
(fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.3.0"; sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; })
|
||||
(fetchNuGet { pname = "System.Security.Cryptography.Csp"; version = "4.3.0"; sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1"; })
|
||||
(fetchNuGet { pname = "System.Security.Cryptography.Encoding"; version = "4.3.0"; sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32"; })
|
||||
(fetchNuGet { pname = "System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc"; })
|
||||
(fetchNuGet { pname = "System.Security.Cryptography.Primitives"; version = "4.3.0"; sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; })
|
||||
(fetchNuGet { pname = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; })
|
||||
(fetchNuGet { pname = "System.Security.Principal"; version = "4.3.0"; sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf"; })
|
||||
(fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.3.0"; sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr"; })
|
||||
(fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
|
||||
(fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "5.0.0"; sha256 = "1bn2pzaaq4wx9ixirr8151vm5hynn3lmrljcgjx9yghmm4k677k0"; })
|
||||
(fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
|
||||
(fetchNuGet { pname = "System.Text.Encodings.Web"; version = "7.0.0"; sha256 = "1151hbyrcf8kyg1jz8k9awpbic98lwz9x129rg7zk1wrs6vjlpxl"; })
|
||||
(fetchNuGet { pname = "System.Text.Json"; version = "7.0.0"; sha256 = "0scb0lp7wbgcinaa4kqiqs7b8i5nx4ppfad81138jiwd1sl37pyp"; })
|
||||
(fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
|
||||
(fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
|
||||
(fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
|
||||
(fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; })
|
||||
(fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.4"; sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; })
|
||||
(fetchNuGet { pname = "System.Threading.ThreadPool"; version = "4.3.0"; sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1"; })
|
||||
(fetchNuGet { pname = "System.Threading.Timer"; version = "4.3.0"; sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56"; })
|
||||
(fetchNuGet { pname = "System.ValueTuple"; version = "4.5.0"; sha256 = "00k8ja51d0f9wrq4vv5z2jhq8hy31kac2rg0rv06prylcybzl8cy"; })
|
||||
(fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; })
|
||||
(fetchNuGet { pname = "System.Xml.XDocument"; version = "4.3.0"; sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd"; })
|
||||
(fetchNuGet { pname = "Ultz.Bcl.Half"; version = "1.0.0"; sha256 = "1a77c7iv1ngldhrjk5j5gijaanmq5k26lqg99symrcmn90dmcxkf"; })
|
||||
(fetchNuGet { pname = "Ultz.Bcl.Half.Fallback"; version = "1.0.0"; sha256 = "1c34rv9dc81sp53gvcqnfr69ncf4fi2vq07cj1hixaf7wmd32k14"; })
|
||||
(fetchNuGet { pname = "Vortice.DirectInput"; version = "2.4.2"; sha256 = "0dhw843crww6kaiikpwazpz4b62val8k8drkb8jwrpviy50anfgz"; })
|
||||
(fetchNuGet { pname = "Vortice.DirectX"; version = "2.4.2"; sha256 = "11yjyvyz922z1ygl8gxmdym3918df12nl7xxry4pdjpl8is33qic"; })
|
||||
(fetchNuGet { pname = "Vortice.Mathematics"; version = "1.4.25"; sha256 = "0vl6g087disxyzskvkbnwym74s47lkza0ly3nk4y0y88zibcggrj"; })
|
||||
(fetchNuGet { pname = "Vortice.MediaFoundation"; version = "2.4.2"; sha256 = "0nk8r564w8x791nqn5457jcq0gj7v6k5v1mziisqy4945byjxcdl"; })
|
||||
(fetchNuGet { pname = "Vortice.XAudio2"; version = "2.4.2"; sha256 = "0iwnaa0jdl3782k9i9j2c0s7lyxjky1ph6i8dv12w3ym2p19h3qc"; })
|
||||
(fetchNuGet { pname = "Vortice.XInput"; version = "2.4.2"; sha256 = "0qpnih6k6mbc027f3hka5588j2v7m1hf81lh29whcww1cqw89sxm"; })
|
||||
]
|
|
@ -0,0 +1,42 @@
|
|||
{ lib ? (import <nixpkgs> {}).lib
|
||||
}: let
|
||||
/** returns negation of needle's length iff not found */
|
||||
indexOf = needle: haystack: let
|
||||
len = lib.stringLength needle;
|
||||
naiveImpl = i: if lib.substring i len haystack == needle then i else naiveImpl (i + 1);
|
||||
cleverImpl = lib.converge
|
||||
(i: let
|
||||
substr = lib.substring i len haystack;
|
||||
in if lib.strings.levenshteinAtMost (len - 1) needle substr
|
||||
then if needle == substr then i else i + 1
|
||||
else i + len)
|
||||
0;
|
||||
in if lib.hasInfix needle haystack
|
||||
then if len < 85000000 then naiveImpl 0 else cleverImpl # from testing on a ~1600 KLOC file, cleverImpl starts being faster around this point (presumably because it makes fewer allocations)--though it's still only ~600 ms execution time
|
||||
else -len;
|
||||
/** returns haystack iff not found */
|
||||
substringAfter = needle: haystack: lib.substring
|
||||
((indexOf needle haystack) + (lib.stringLength needle))
|
||||
(lib.stringLength haystack)
|
||||
haystack;
|
||||
/** returns empty string iff not found */
|
||||
substringBefore = needle: haystack: lib.substring 0 (indexOf needle haystack) haystack;
|
||||
/**
|
||||
* Filters a list `l` by evaluating a predicate on each element and its index (0-based).
|
||||
* The predicate callback `f` has same parameters as for `imap0`, but should return a bool,
|
||||
* `true` iff the value should be included in the resulting list.
|
||||
* The resulting list only includes the filtered-for elements, not their indices.
|
||||
*/
|
||||
ifilter0 = f: l: lib.pipe l [
|
||||
(lib.imap0 (i: v: { inherit i v; }))
|
||||
(lib.filter (a: f a.i a.v))
|
||||
(lib.catAttrs "v")
|
||||
];
|
||||
ac = lib.attrNames (import ./.. {}); # could also check shell.nix, but that's completely programmatic and a strict subset of default.nix so there's not much point
|
||||
ex = lib.pipe (lib.readFile ./nix_expr_usage_docs.md) [
|
||||
(substringAfter "MARKER_FOR_HELPER_SCRIPT_START")
|
||||
(substringBefore "MARKER_FOR_HELPER_SCRIPT_END")
|
||||
(lib.splitString "`")
|
||||
(ifilter0 (i: _: lib.mod i 2 == 1))
|
||||
];
|
||||
in { missing = lib.subtractLists ac ex; extra = lib.subtractLists ex ac; }
|
|
@ -0,0 +1,215 @@
|
|||
{ lib
|
||||
# infrastructure
|
||||
, drvVersionAtLeast
|
||||
, replaceDotWithUnderscore
|
||||
, fetchFromGitHub
|
||||
, fetchFromGitLab
|
||||
, mkNugetDeps
|
||||
# makedeps
|
||||
, dotnet-sdk_5
|
||||
, dotnet-sdk_6
|
||||
}: let
|
||||
/**
|
||||
* updating? make sure to hit the rest of this file, the hand-written deps `/Dist/deps-historical.nix`,
|
||||
* the shell script for CI `/Dist/nix_expr_check_attrs.sh`, and the docs `/Dist/nix_expr_usage_docs.md`
|
||||
*/
|
||||
releases = [ "2.9.1" "2.9" "2.8" "2.7" "2.6.3" "2.6.2" "2.6.1" "2.6" ];
|
||||
releaseCount = lib.length releases;
|
||||
releaseFrags = builtins.map replaceDotWithUnderscore releases;
|
||||
releaseOffsetLookup = lib.listToAttrs (lib.imap0 (lib.flip lib.nameValuePair) releaseFrags);
|
||||
depsForHistoricalRelease = releaseFrag: fetchNuGet: let
|
||||
file = import ./deps-historical.nix;
|
||||
windows = (builtins.map (s: file."since-${s}") releaseFrags) ++ (builtins.map (s: file."until-${s}") releaseFrags);
|
||||
extras = builtins.map (s: file."only-${s}") releaseFrags;
|
||||
i = releaseOffsetLookup.${releaseFrag};
|
||||
in builtins.map fetchNuGet (lib.elemAt extras i ++ lib.concatLists (lib.sublist i releaseCount windows));
|
||||
releaseTagSourceInfos = let
|
||||
f = { hashPostPatching, rev, version, postFetch ? "", dotnet-sdk ? null }: let
|
||||
shortHash = lib.substring 0 9 rev;
|
||||
fetcherArgs = {
|
||||
inherit rev;
|
||||
repo = "BizHawk";
|
||||
hash = hashPostPatching;
|
||||
postFetch = ''
|
||||
shortHash=${shortHash}
|
||||
'' + postFetch;
|
||||
};
|
||||
in (lib.optionalAttrs (dotnet-sdk != null) { inherit dotnet-sdk; }) // {
|
||||
inherit shortHash version;
|
||||
branch = "master";
|
||||
drv = fetchFromGitHub (fetcherArgs // { owner = "TASEmulators"; });
|
||||
#TODO can use `srcs` w/ `buildDotnetModule`?
|
||||
# verified hashes match for 2.7 through 2.9, but 2.9.1 rev (745efb1dd) was missing (force-push nonsense IIRC)
|
||||
drv1 = fetchFromGitLab (fetcherArgs // { owner = "TASVideos"; });
|
||||
nugetDeps = let
|
||||
releaseFrag = replaceDotWithUnderscore version;
|
||||
in mkNugetDeps {
|
||||
name = "BizHawk-${releaseFrag}-deps";
|
||||
nugetDeps = { fetchNuGet }: depsForHistoricalRelease releaseFrag fetchNuGet;
|
||||
};
|
||||
};
|
||||
/**
|
||||
* `$(...)` is literal here--these scripts invoke Git in subshells,
|
||||
* and we need to run them during the build without `nativeBuildInputs = [ git ];`
|
||||
*/
|
||||
from-2_6_2-through-2_9-no-git-patch = ''
|
||||
sed 's/$(git rev-parse --verify HEAD)/'"$shortHash"'/' -i $out/Dist/.InvokeCLIOnMainSln.sh
|
||||
'';
|
||||
/** ditto */
|
||||
pre-2_9_1-no-git-patch = ''
|
||||
sed -e 's/$(git rev-parse --abbrev-ref HEAD)/master/' \
|
||||
-e 's/$(git log -1 --format="%h")/'"$shortHash"'/' \
|
||||
-i $out/Build/standin.sh
|
||||
sed 's/$(git rev-list HEAD --count)/'"$commitCount"'/' -i $out/Build/standin.sh
|
||||
'';
|
||||
in lib.mapAttrs (_: f) {
|
||||
info-2_9_1 = {
|
||||
version = "2.9.1";
|
||||
rev = "745efb1dd8eb82f31ba9201a79cdfc5bcaf1f5d1";
|
||||
/**
|
||||
* `$(...)` is literal here--this script invokes Git in a subshell,
|
||||
* and we need to run it during the build without `nativeBuildInputs = [ git ];`
|
||||
* (though in this case the build would continue with the dummy value after printing an error)
|
||||
*/
|
||||
postFetch = ''
|
||||
sed 's/$(git rev-parse --verify HEAD || printf "0000000000000000000000000000000000000000")/'"$shortHash"'/' \
|
||||
-i $out/Dist/.InvokeCLIOnMainSln.sh
|
||||
'';
|
||||
hashPostPatching = "sha256-g6U0B+wY5uosP5WyNFKylBRX9kq+zM6H+f05egYqcAQ=";
|
||||
};
|
||||
info-2_9 = {
|
||||
version = "2.9";
|
||||
rev = "ac3a8c7e5f0711b51defdb3f121d1a63c44818c3";
|
||||
postFetch = ''
|
||||
commitCount=20208
|
||||
'' + pre-2_9_1-no-git-patch + from-2_6_2-through-2_9-no-git-patch;
|
||||
hashPostPatching = "sha256-gDLStqpRGxTlXip+FKWj/O7sQElBNjQK8HpjZbXsrC0=";
|
||||
};
|
||||
info-2_8 = {
|
||||
version = "2.8";
|
||||
rev = "e731e0f32903cd40b83ed75bba3b1e3753105ce2";
|
||||
postFetch = ''
|
||||
commitCount=19337
|
||||
'' + pre-2_9_1-no-git-patch + from-2_6_2-through-2_9-no-git-patch;
|
||||
hashPostPatching = "sha256-TfxAA8QkyImau0MxCdbTWFKneXZwpXYPIB+iN9z+Unk=";
|
||||
};
|
||||
info-2_7 = {
|
||||
version = "2.7";
|
||||
rev = "dbaf2595625f79093eeec37d2d4a7a9a4d37f370";
|
||||
postFetch = ''
|
||||
commitCount=19020
|
||||
'' + pre-2_9_1-no-git-patch + from-2_6_2-through-2_9-no-git-patch;
|
||||
hashPostPatching = "sha256-IX8WmNU+gEY8Vh6OAC3XogiGSmAfdAks4HPJVt4K/4w=";
|
||||
dotnet-sdk = dotnet-sdk_5;
|
||||
};
|
||||
info-2_6_3 = {
|
||||
version = "2.6.3";
|
||||
rev = "167bfeb4c0821ac066a006233149e2e3c5b0dbe0";
|
||||
postFetch = ''
|
||||
commitCount=18925
|
||||
'' + pre-2_9_1-no-git-patch + from-2_6_2-through-2_9-no-git-patch;
|
||||
hashPostPatching = "sha256-2+r35rVDNYQ1sKffjSph+bsSWRtz1v3jgDqAi5WrhKo=";
|
||||
dotnet-sdk = dotnet-sdk_5;
|
||||
};
|
||||
info-2_6_2 = {
|
||||
version = "2.6.2";
|
||||
rev = "c5e6aadb0e4cf697385d29c2a481a3ae0017145e";
|
||||
postFetch = ''
|
||||
commitCount=18704
|
||||
'' + pre-2_9_1-no-git-patch + from-2_6_2-through-2_9-no-git-patch;
|
||||
hashPostPatching = "sha256-TPf2lFI4PrswoPFQAKrr9vQPHQ9Qi5afgPSyJEErKuo=";
|
||||
dotnet-sdk = dotnet-sdk_5;
|
||||
};
|
||||
info-2_6_1 = {
|
||||
version = "2.6.1";
|
||||
rev = "bd31773d9e44e698fd5c0356a600e532b0a9251f";
|
||||
postFetch = ''
|
||||
commitCount=18467
|
||||
'' + pre-2_9_1-no-git-patch;
|
||||
hashPostPatching = "sha256-2+zIlHIENzakZGxjSGfA0owFRr5K2u5EagxTbnKeVsw=";
|
||||
dotnet-sdk = dotnet-sdk_5;
|
||||
};
|
||||
info-2_6 = {
|
||||
version = "2.6";
|
||||
rev = "7749d02382d1c9e682cbd28ff3dd3240e5b91227";
|
||||
postFetch = ''
|
||||
commitCount=18376
|
||||
'' + pre-2_9_1-no-git-patch;
|
||||
hashPostPatching = "sha256-kswmNENYxumQlJdUKRQcb5Ni5+aXUqKxEnJ8jX5OHQ0=";
|
||||
dotnet-sdk = dotnet-sdk_5;
|
||||
};
|
||||
};
|
||||
in {
|
||||
inherit depsForHistoricalRelease releaseFrags releaseTagSourceInfos;
|
||||
/** called by `buildAssembliesFor` i.e. immediately before use of a `hawkSourceInfo` */
|
||||
populateHawkSourceInfo = hawkSourceInfo: let
|
||||
inherit (hawkSourceInfo) version;
|
||||
neededExtraManagedDepsApprox = [ "virtu" ]
|
||||
++ lib.optionals (drvVersionAtLeast "2.6" version) [ "hawkQuantizer" "isoParser" ]
|
||||
++ lib.optionals (drvVersionAtLeast "2.6.2" version) [ "flatBuffersGenOutput" "srcGenReflectionCache" ]
|
||||
++ lib.optionals (!drvVersionAtLeast "2.9" version) [ "flatBuffersCore" "gongShell" ]
|
||||
++ lib.optionals (drvVersionAtLeast "2.9" version) [ "bizhawkAnalyzer" "nlua" ]
|
||||
++ lib.optional (drvVersionAtLeast "2.9.1" version) "srcGenVersionInfo"
|
||||
++ lib.optionals (!drvVersionAtLeast "2.9.2" version) [ "slimDX" "systemDataSqliteDropIn" ]
|
||||
++ lib.optional (drvVersionAtLeast "2.9.2" version) "srcGenSettingsUtil"
|
||||
;
|
||||
in {
|
||||
inherit neededExtraManagedDepsApprox;
|
||||
__contentAddressed = false; #TODO try w/ CA
|
||||
copyingAssetsInEmuHawkProj = drvVersionAtLeast "2.6.3" version;
|
||||
dotnet-sdk = dotnet-sdk_6;
|
||||
exePathRespectsEnvVar = drvVersionAtLeast "2.9.2" version;
|
||||
hasAssetsInOutput = !drvVersionAtLeast "2.6.1" version;
|
||||
hasFFmpegPatch_e68a49aa5 = drvVersionAtLeast "2.9.2" version; # with e68a49aa5, downloading *and running* FFmpeg finally works; TODO use FFmpeg from Nixpkgs since it's a stable version (4.4.1)
|
||||
hasMiscTypeCheckerPatch_6afb3be98 = drvVersionAtLeast "2.6.2" version;
|
||||
neededExtraManagedDeps = neededExtraManagedDepsApprox;
|
||||
needsSDL = drvVersionAtLeast "2.9.2" version;
|
||||
nugetDeps = ./deps.nix;
|
||||
packageScriptNeeds7Zip = !drvVersionAtLeast "2.6.3" version;
|
||||
packageScriptRemovesWinFilesFromLinux = drvVersionAtLeast "2.9.2" version;
|
||||
pathConfigNeedsOrdinal = !drvVersionAtLeast "2.7.1" version;
|
||||
releaseArtifactHasRogueOTKAsmConfig = version == "2.9.1";
|
||||
versionProjNeedsDoubleBuild = !drvVersionAtLeast "2.9.1" version;
|
||||
#TODO warn about missing/broken features when eval'ing older releases
|
||||
} // hawkSourceInfo;
|
||||
/** to be passed to `splitReleaseArtifact` */
|
||||
releaseArtifactInfos = lib.mapAttrs'
|
||||
(releaseFrag: value: {
|
||||
name = "bizhawkAssemblies-${releaseFrag}-bin";
|
||||
value = {
|
||||
hawkSourceInfo = releaseTagSourceInfos."info-${releaseFrag}" // { branch = "release"; } // value.hawkSourceInfo or {};
|
||||
} // value;
|
||||
})
|
||||
{
|
||||
"2_9_1" = {
|
||||
stripRoot = false;
|
||||
hashPrePatching = "sha256-5aKUbNStQ89hnfaxv7MTQ+1qDfy+QNMyLS5WUTdhue4=";
|
||||
};
|
||||
"2_9" = {
|
||||
hashPrePatching = "sha256-gE0iu2L2yvC6dxBcv9Facm8RKPp9dseD7fAH3fnaZsY=";
|
||||
};
|
||||
"2_8" = {
|
||||
stripRoot = false;
|
||||
hashPrePatching = "sha256-IRbhI22l30OPn8zJ4HPemjWUohUvZStlEYKnV7RArFA=";
|
||||
};
|
||||
"2_7" = {
|
||||
hashPrePatching = "sha256-rc9Tk5Pc4p6YR33cowB9W01iRl8FYgAI/V1CHc+pL5E=";
|
||||
};
|
||||
"2_6_3" = {
|
||||
stripRoot = false;
|
||||
hashPrePatching = "sha256-gCHySfNOjqazbQDqk5lKJIYmPI6onqcaVDwuY8Ud2ns=";
|
||||
};
|
||||
"2_6_2" = {
|
||||
zippedTarball = true;
|
||||
hashPrePatching = "sha256-tlnF/ZQOkLMbiEV2BqhxzQ/KixGZ30+LgOUoHvpv13s=";
|
||||
};
|
||||
"2_6_1" = {
|
||||
zippedTarball = true;
|
||||
hashPrePatching = "sha256-Ou4NbRo7Gh0HWviXSEHtp0PpsGDdYsN8yhR0/gQy3rY=";
|
||||
};
|
||||
"2_6" = {
|
||||
zippedTarball = true;
|
||||
hashPrePatching = "sha256-AHP1mgedC9wUq+YAJD0gM4Lrl0H0UkrWyifEDC9KLog=";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -0,0 +1,111 @@
|
|||
{ lib
|
||||
# infrastructure
|
||||
, writeShellScript
|
||||
, writeText
|
||||
# rundeps
|
||||
, bizhawkAssemblies
|
||||
, mkfifo
|
||||
, mktemp
|
||||
, nixGL
|
||||
# other parameters
|
||||
, debugPInvokes
|
||||
, debugDotnetHostCrashes
|
||||
, initConfig # pretend this is JSON; the following env. vars will be substituted by the wrapper script (if surrounded by double-percent e.g. `%%BIZHAWK_DATA_HOME%%`): `BIZHAWK_DATA_HOME`
|
||||
, isManualLocalBuild # i.e. dotnet build in nix-shell; skips everything involving BIZHAWK_DATA_HOME, such as copying Assets and initConfig
|
||||
}: let
|
||||
hawkVersion = bizhawkAssemblies.hawkSourceInfo.version;
|
||||
commentLineIf = b: lib.optionalString b "# ";
|
||||
/**
|
||||
* shell script to copy std{out,err} to files but leave them going to console;
|
||||
* call as `redirect-output-to-files /target/stdout.txt /target/stderr.txt /path/to/bin arg1 arg2...`
|
||||
*/
|
||||
redirectOutputToFiles = writeShellScript "redirect-output-to-files" ''
|
||||
mktemp='${lib.getBin mktemp}/bin/mktemp'
|
||||
o="$("$mktemp" -u)"
|
||||
e="$("$mktemp" -u)"
|
||||
'${lib.getBin mkfifo}/bin/mkfifo' "$o" "$e"
|
||||
tee "$1" <"$o" &
|
||||
shift
|
||||
tee "$1" <"$e" | sed "s/.*/$(tput setaf 1)&$(tput sgr0)/" >&2 &
|
||||
shift
|
||||
exec "$@" >"$o" 2>"$e"
|
||||
'';
|
||||
emuhawk = let
|
||||
initConfigFile = writeText "config.json" (builtins.toJSON ({
|
||||
LastWrittenFrom = if builtins.length (builtins.splitVersion hawkVersion) < 3 then "${hawkVersion}.0" else hawkVersion; # 2.x.0 never included the trailing 0 in display name, and didn't include it in the internal value after 2.5(?); need to do version range check here
|
||||
PathEntries = {
|
||||
Paths = [
|
||||
({ System = "Global_NULL"; Type = "Base"; Path = "%%BIZHAWK_DATA_HOME%%"; }
|
||||
// lib.optionalAttrs bizhawkAssemblies.hawkSourceInfo.pathConfigNeedsOrdinal { Ordinal = 1; })
|
||||
];
|
||||
};
|
||||
} // initConfig));
|
||||
assetManagementScript = ''if [ "$XDG_DATA_HOME" ]; then
|
||||
BIZHAWK_DATA_HOME="$XDG_DATA_HOME"
|
||||
else
|
||||
BIZHAWK_DATA_HOME="$HOME/.local/share"
|
||||
fi
|
||||
export BIZHAWK_DATA_HOME="$BIZHAWK_DATA_HOME/emuhawk-monort-${hawkVersion}"
|
||||
if [ ! -e "$BIZHAWK_DATA_HOME" ]; then
|
||||
mkdir -p "$BIZHAWK_DATA_HOME"
|
||||
cd '${bizhawkAssemblies.assets}'
|
||||
find . -type f -not -wholename './nix-support/*' -exec install -DvT {} "$BIZHAWK_DATA_HOME/{}" \;
|
||||
fi
|
||||
cd "$BIZHAWK_DATA_HOME"
|
||||
if [ ! -e 'config.json' ]; then
|
||||
sed "s@%%BIZHAWK_DATA_HOME%%@$PWD@g" '${initConfigFile}' >config.json
|
||||
printf "wrote initial config to %s\n" "$PWD/config.json"
|
||||
fi
|
||||
|
||||
export BIZHAWK_INT_SYSLIB_PATH='${bizhawkAssemblies.extraUnmanagedDeps}/lib'
|
||||
'';
|
||||
noAssetManagementScript = ''cd "$BIZHAWK_HOME"
|
||||
|
||||
export BIZHAWK_INT_SYSLIB_PATH="$PWD/dll"
|
||||
'';
|
||||
in writeShellScript "emuhawk-mono-wrapper" ''
|
||||
set -e
|
||||
|
||||
if [ ! -e "$BIZHAWK_HOME/EmuHawk.exe" ]; then
|
||||
printf "no such file: %s\n" "$BIZHAWK_HOME/EmuHawk.exe"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
${if isManualLocalBuild then noAssetManagementScript else assetManagementScript}
|
||||
ldLibPath="$BIZHAWK_INT_SYSLIB_PATH:${lib.makeLibraryPath bizhawkAssemblies.buildInputs}"
|
||||
if [ -z "$LD_LIBRARY_PATH" ]; then
|
||||
export LD_LIBRARY_PATH="$ldLibPath"
|
||||
else
|
||||
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$ldLibPath"
|
||||
fi
|
||||
${lib.optionalString (!debugPInvokes) "# "}export MONO_LOG_LEVEL=debug MONO_LOG_MASK=dll # pass `--arg debugPInvokes true` to nix-build to enable
|
||||
${lib.optionalString debugDotnetHostCrashes "# "}export MONO_CRASH_NOFILE=1 # pass `--arg debugDotnetHostCrashes true` to nix-build to disable
|
||||
if [ "$1" = '--mono-no-redirect' ]; then
|
||||
printf "(passing --mono-no-redirect is no longer necessary)\n" >&2
|
||||
shift
|
||||
fi
|
||||
printf "(capturing output in %s/EmuHawkMono_last*.txt)\n" "$PWD" >&2
|
||||
exec '${redirectOutputToFiles}' EmuHawkMono_laststdout.txt EmuHawkMono_laststderr.txt \
|
||||
'${lib.getBin bizhawkAssemblies.mono}/bin/mono' \
|
||||
"$BIZHAWK_HOME/EmuHawk.exe" --config=config.json "$@"
|
||||
'';
|
||||
in {
|
||||
inherit emuhawk;
|
||||
discohawk = writeShellScript "discohawk-mono-wrapper" ''
|
||||
set -e
|
||||
|
||||
if [ ! -e "$BIZHAWK_HOME/DiscoHawk.exe" ]; then
|
||||
printf "no such file: %s\n" "$BIZHAWK_HOME/DiscoHawk.exe"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$LD_LIBRARY_PATH" ]; then
|
||||
export LD_LIBRARY_PATH="$BIZHAWK_HOME/dll"
|
||||
else
|
||||
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$BIZHAWK_HOME/dll"
|
||||
fi
|
||||
${lib.optionalString (!debugPInvokes) "# "}export MONO_LOG_LEVEL=debug MONO_LOG_MASK=dll # pass `--arg debugPInvokes true` to nix-build to enable
|
||||
exec '${lib.getBin bizhawkAssemblies.mono}/bin/mono' "$BIZHAWK_HOME/DiscoHawk.exe" "$@"
|
||||
'';
|
||||
emuhawkNonNixOS = writeShellScript "emuhawk-mono-wrapper-non-nixos" ''exec '${nixGL}/bin/nixGL' '${emuhawk}' "$@"'';
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
{ mono, fetchFromGitHub }:
|
||||
mono.overrideAttrs (old: rec {
|
||||
version = "6.12.0.151";
|
||||
src = fetchFromGitHub {
|
||||
owner = "mono";
|
||||
repo = "mono";
|
||||
rev = "mono-${version}";
|
||||
hash = "sha256-rdItM+O6PLQlxPNhMVFpXxRN0XWMC/jcxEeOBNoLo8c=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
nativeBuildInputs = old.nativeBuildInputs ++ [ mono ];
|
||||
})
|
|
@ -0,0 +1,43 @@
|
|||
#!/bin/sh
|
||||
set -e
|
||||
cd "$(dirname "$0")/.."
|
||||
|
||||
printf "Checking all documented attrs are actually exposed (expect \`missing = [];\`)...\n"
|
||||
nix-instantiate --eval --strict -E 'import Dist/exposed-attr-checker.nix {}'
|
||||
printf "\n"
|
||||
|
||||
attrNamesToCheck='discohawk-latest emuhawk-2_9_1 emuhawk-2_9 emuhawk-2_8 emuhawk-2_7 emuhawk-2_6_3 emuhawk-2_6_2 emuhawk-2_6_1 emuhawk-2_6'
|
||||
# not checking `forNixOS = false` since it's just the same wrapped with nixGL
|
||||
#commonBuildFlags='--pure --arg doCheck true' # not working :(
|
||||
commonBuildFlags='--pure'
|
||||
b() {
|
||||
printf "%s\n" "nix-build $commonBuildFlags $*"
|
||||
nix-build $commonBuildFlags "$@"
|
||||
printf "\n"
|
||||
}
|
||||
printf "Checking Nix expr is still functional (no guarantees EmuHawk will run). For best results, uninstall (nix-env -e <package>) and clear cached builds (nix-env --delete-generations +1; nix-store --gc).\nTHIS MAY TAKE A WHILE.\n"
|
||||
if [ "$1" = "skipmsbuild" ]; then
|
||||
printf "Skipping building from source in CWD and building old releases from source.\n"
|
||||
else
|
||||
if [ "$1" = "skipcwd" ]; then
|
||||
printf "Skipping building from source in CWD.\n"
|
||||
else
|
||||
printf "Starting with the slowest first, building from source in CWD (pass 'skipcwd' as first arg to skip).\n"
|
||||
b -A emuhawk --argstr buildConfig 'Debug'
|
||||
# b -A emuhawk --argstr buildConfig 'Debug' --check # definitely not
|
||||
b -A emuhawk
|
||||
# b -A emuhawk --check # definitely not
|
||||
# b -A discohawk # nah
|
||||
# b -A discohawk --check # definitely not
|
||||
fi
|
||||
printf "Building old releases from source (pass 'skipmsbuild' as first arg to skip).\n"
|
||||
for a in $attrNamesToCheck; do
|
||||
b -A "$a"
|
||||
# b -A "$a.assemblies" --check # not reproducible yet :(
|
||||
done
|
||||
fi
|
||||
printf "Packaging releases.\n"
|
||||
for a in $attrNamesToCheck; do
|
||||
b -A "$a-bin"
|
||||
b -A "$a-bin.assemblies" --check
|
||||
done
|
|
@ -1,25 +0,0 @@
|
|||
#!/bin/sh
|
||||
cd "$(dirname "$0")/.." || exit $?
|
||||
|
||||
p=Dist/packages #TODO tempfile?
|
||||
dotnet restore --packages="$p" BizHawk.sln "$@" >/dev/null
|
||||
ec=$?
|
||||
if [ $ec -ne 0 ]; then
|
||||
rm -fr "$p"
|
||||
echo "NuGet restore failed"
|
||||
exit $ec
|
||||
fi
|
||||
|
||||
f=Dist/deps-new.nix # needs to be valid Nix path, so no spaces
|
||||
nuget-to-nix "$p" >"$f"
|
||||
ec=$?
|
||||
rm -fr "$p"
|
||||
if [ $ec -ne 0 ]; then
|
||||
rm "$f"
|
||||
echo "Nix codegen failed"
|
||||
exit $ec
|
||||
fi
|
||||
|
||||
sed -i -e 's/{ fetchNuGet }: //' -e 's/fetchNuGet //g' -e 's/pname =/name =/g' "$f"
|
||||
nix-instantiate -E "let f = (import <nixpkgs> {}).lib.subtractLists; curr = (import Dist/deps-base.nix).hawk_2_8_1; new = import $f; in builtins.foldl' (a: b: builtins.trace b a) [] [ \"removed:\" (f new curr) \"added:\" (f curr new) ]"
|
||||
rm "$f"
|
|
@ -0,0 +1,80 @@
|
|||
## Available attributes
|
||||
|
||||
<!-- MARKER_FOR_HELPER_SCRIPT_START -->
|
||||
Installables:
|
||||
|
||||
Version | Attr for asms | Attr for EmuHawk | Attr for DiscoHawk
|
||||
--:|:--|:--|:--
|
||||
2.9.2 dev (CWD) | `bizhawkAssemblies` | `emuhawk` | `discohawk`
|
||||
2.9.1 | (`bizhawkAssemblies-latest-bin` = ) `bizhawkAssemblies-2_9_1-bin` | (`emuhawk-latest-bin` = ) `emuhawk-2_9_1-bin` | (`discohawk-latest-bin` = ) `discohawk-2_9_1-bin`
|
||||
2.9.1 from source | (`bizhawkAssemblies-latest` = ) `bizhawkAssemblies-2_9_1` | (`emuhawk-latest` = ) `emuhawk-2_9_1` | (`discohawk-latest` = ) `discohawk-2_9_1`
|
||||
|||
|
||||
2.9 | `bizhawkAssemblies-2_9-bin` | `emuhawk-2_9-bin` | DIY
|
||||
2.9 from source | DIY | `emuhawk-2_9` | DIY
|
||||
2.8 | `bizhawkAssemblies-2_8-bin` | `emuhawk-2_8-bin` | DIY
|
||||
2.8 from source | DIY | `emuhawk-2_8` | DIY
|
||||
2.7 | `bizhawkAssemblies-2_7-bin` | `emuhawk-2_7-bin` | DIY
|
||||
2.7 from source | DIY | `emuhawk-2_7` | DIY
|
||||
2.6.3 | `bizhawkAssemblies-2_6_3-bin` | `emuhawk-2_6_3-bin` | DIY
|
||||
2.6.3 from source | DIY | `emuhawk-2_6_3` | DIY
|
||||
2.6.2 | `bizhawkAssemblies-2_6_2-bin` | `emuhawk-2_6_2-bin` | DIY
|
||||
2.6.2 from source | DIY | `emuhawk-2_6_2` | DIY
|
||||
2.6.1 | `bizhawkAssemblies-2_6_1-bin` | `emuhawk-2_6_1-bin` | DIY
|
||||
2.6.1 from source | DIY | `emuhawk-2_6_1` | DIY
|
||||
2.6 | `bizhawkAssemblies-2_6-bin` | `emuhawk-2_6-bin` | DIY
|
||||
2.6 from source | DIY | `emuhawk-2_6` | DIY
|
||||
|
||||
Nix functions and data:
|
||||
- `buildAssembliesFor`
|
||||
- `buildDiscoHawkInstallableFor`
|
||||
- `buildEmuHawkInstallableFor`
|
||||
- `buildExtraManagedDepsFor`
|
||||
- `buildUnmanagedDepsFor`
|
||||
- `depsForHistoricalRelease`
|
||||
- `launchScriptsForLocalBuild`
|
||||
- `releaseTagSourceInfos`
|
||||
- `splitReleaseArtifact`
|
||||
<!-- MARKER_FOR_HELPER_SCRIPT_END -->
|
||||
|
||||
There are a few parameters you can tweak without writing a full Nix expression:
|
||||
- `--arg forNixOS false` wraps the final executable with [nixGL](https://github.com/nix-community/nixGL) so it can run on normal distros.
|
||||
- `--argstr buildConfig Debug` builds the BizHawk solution in Debug configuration.
|
||||
- `--argstr extraDefines "CoolFeatureFlag"` adds to `<DefineConstants/>`.
|
||||
- `--arg initConfig {}` can be used to set up keybinds and such, though you probably won't want to use `--arg` for that.
|
||||
- Check the source for the full list.
|
||||
|
||||
Every installable can also be used with `nix-shell`. Omitting `-A` is the same as `nix-shell -A emuhawk-latest`.
|
||||
<!-- TODO haven't implemented LSPs
|
||||
Bring your own IDE, or pass e.g. `--arg useVSCode true` for one that's ready to use. Alternatives: `useKate`, and `useNanoAndCola`.
|
||||
-->
|
||||
|
||||
The `emuhawk-*` (and `discohawk-*`) attrs are wrappers, so `nix-build --check` won't rebuild the assemblies.
|
||||
You can use e.g. `-A emuhawk-latest.assemblies --check`.
|
||||
|
||||
The `bizhawkAssemblies-*` attrs (and `*.assemblies`) each have 4 outputs: `!out`, `!assets`, `!extraUnmanagedDeps`, and `!waterboxCores`.
|
||||
See `packages.nix` for more detail and help with overriding.
|
||||
|
||||
## Building local copy of repo (incl. changes)
|
||||
|
||||
### Use Nix on local source (CWD)
|
||||
|
||||
As per the above table:
|
||||
```sh
|
||||
nix-build --pure -A emuhawk
|
||||
result/bin/emuhawk-* --mono-no-redirect
|
||||
|
||||
# may need to run this first if the checked-in copy of `Dist/deps.nix` hasn't been updated:
|
||||
nix-build --pure -A emuhawk.fetch-deps && ./result
|
||||
```
|
||||
|
||||
### Use dotnet from Nix
|
||||
|
||||
```sh
|
||||
nix-shell # = `nix-shell -A emuhawk-latest`
|
||||
# (in shell):
|
||||
Dist/BuildDebug.sh # = `dotnet build -c Debug BizHawk.sln`
|
||||
emuhawk-monort-local # = `cd output && mono EmuHawk.exe`
|
||||
|
||||
# if deps (besides NuGet packages) have changed, may need to do this instead, but it will do a slow copy of the repo to the Nix store
|
||||
nix-shell -A emuhawk
|
||||
```
|
|
@ -0,0 +1,20 @@
|
|||
{ lib, buildDotnetModule, runCommand, hawkSourceInfo }: let
|
||||
grabFromReferences = { filePfx, subdir ? "" }: runCommand filePfx {
|
||||
inherit (hawkSourceInfo) __contentAddressed;
|
||||
meta.sourceProvenance = [ lib.sourceTypes.binaryBytecode ];
|
||||
} ''mkdir -p "$out${subdir}"; cp -vt "$out${subdir}" '${hawkSourceInfo.drv}/References${subdir}'/${filePfx}*'';
|
||||
in { #TODO build all but flatBuffersCore, gongShell, slimDX, and systemDataSqliteDropIn from source
|
||||
bizhawkAnalyzer = grabFromReferences { filePfx = "BizHawk.Analyzer"; };
|
||||
flatBuffersCore = grabFromReferences { filePfx = "FlatBuffers.Core"; };
|
||||
flatBuffersGenOutput = grabFromReferences { filePfx = "FlatBuffers.GenOutput"; };
|
||||
gongShell = grabFromReferences { filePfx = "GongShell"; };
|
||||
hawkQuantizer = grabFromReferences { filePfx = "PcxFileTypePlugin.HawkQuantizer"; };
|
||||
isoParser = grabFromReferences { filePfx = "ISOParser"; };
|
||||
nlua = grabFromReferences { filePfx = "NLua"; };
|
||||
slimDX = grabFromReferences { filePfx = "SlimDX"; subdir = "/x64"; };
|
||||
srcGenReflectionCache = grabFromReferences { filePfx = "BizHawk.SrcGen.ReflectionCache"; };
|
||||
srcGenSettingsUtil = grabFromReferences { filePfx = "BizHawk.SrcGen.SettingsUtil"; };
|
||||
srcGenVersionInfo = grabFromReferences { filePfx = "BizHawk.SrcGen.VersionInfo"; };
|
||||
systemDataSqliteDropIn = grabFromReferences { filePfx = "System.Data.SQLite"; subdir = "/x64/SQLite"; };
|
||||
virtu = grabFromReferences { filePfx = "Virtu"; };
|
||||
}
|
|
@ -0,0 +1,307 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
# infrastructure
|
||||
, populateHawkSourceInfo
|
||||
, replaceDotWithUnderscore
|
||||
, buildDotnetModule
|
||||
, fetchpatch
|
||||
, fetchzip
|
||||
, hardLinkJoin
|
||||
, launchScriptsFor
|
||||
, makeDesktopItem
|
||||
, releaseTagSourceInfos
|
||||
, runCommand
|
||||
, symlinkJoin
|
||||
, writeShellScriptBin
|
||||
# makedeps
|
||||
, git
|
||||
# rundeps
|
||||
, lua
|
||||
, mono
|
||||
, openal
|
||||
, SDL2
|
||||
, udev
|
||||
, zstd
|
||||
# other parameters
|
||||
, buildConfig
|
||||
, doCheck
|
||||
, emuhawkBuildFlavour
|
||||
, extraDefines
|
||||
, extraDotnetBuildFlags
|
||||
}: let
|
||||
/** to override just one, you'll probably want to manually import packages-managed.nix, and combine that with the output of this */
|
||||
buildExtraManagedDepsFor = hawkSourceInfo: let
|
||||
pm = import ./packages-managed.nix {
|
||||
inherit lib
|
||||
buildDotnetModule runCommand
|
||||
hawkSourceInfo;
|
||||
};
|
||||
in symlinkJoin {
|
||||
name = "bizhawk-managed-deps";
|
||||
paths = builtins.map (s: pm.${s}) (lib.sort lib.lessThan hawkSourceInfo.neededExtraManagedDeps);
|
||||
};
|
||||
/**
|
||||
* NOTE: This impl. is unfinished, only useful for checking that overriding is possible.
|
||||
* For actually overriding `extraUnmanagedDeps`, roll your own `symlinkJoin` impl. or something.
|
||||
*
|
||||
* TODO replace this with something more like `buildExtraManagedDepsFor`; for existing Nix exprs see https://gitlab.com/YoshiRulz/yoshis-hawk-thoughts/-/issues/10
|
||||
*/
|
||||
buildUnmanagedDepsFor = hawkSourceInfo: stdenv.mkDerivation {
|
||||
inherit (hawkSourceInfo) version;
|
||||
pname = "bizhawk-native-deps";
|
||||
src = hawkSourceInfo.drv;
|
||||
dontBuild = true;
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out; cp -vt $out Assets/dll/*.so
|
||||
chmod -x $out/*
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
dontFixup = true;
|
||||
};
|
||||
genDepsHostTargetFor = { hawkSourceInfo, mono' ? mono }: [ lua mono' openal (lib.getOutput "out" zstd) ]
|
||||
++ lib.optionals hawkSourceInfo.needsSDL [ SDL2 (lib.getOutput "out" udev) ]
|
||||
;
|
||||
/**
|
||||
* see splitReleaseArtifact re: outputs
|
||||
* and no you can't build only DiscoHawk and its deps; deal with it
|
||||
*/
|
||||
buildAssembliesFor = hawkSourceInfo': let
|
||||
hawkSourceInfo = populateHawkSourceInfo hawkSourceInfo';
|
||||
extraManagedDeps = hawkSourceInfo.extraManagedDeps or buildExtraManagedDepsFor hawkSourceInfo;
|
||||
in buildDotnetModule (lib.fix (finalAttrs: { # proper `finalAttrs` not supported >:(
|
||||
inherit doCheck mono;
|
||||
inherit (hawkSourceInfo) __contentAddressed dotnet-sdk nugetDeps version;
|
||||
pname = "BizHawk";
|
||||
isLocalBuild = lib.hasSuffix "-local" finalAttrs.version;
|
||||
src = hawkSourceInfo.drv;
|
||||
postUnpack = lib.optionalString finalAttrs.isLocalBuild ''(cd BizHawk-*-local; Dist/CleanupBuildOutputDirs.sh)'';
|
||||
outputs = [ "out" "assets" "extraUnmanagedDeps" "waterboxCores" ];
|
||||
propagatedBuildOutputs = []; # without this, other outputs depend on `out`
|
||||
strictDeps = true;
|
||||
nativeBuildInputs = lib.optional finalAttrs.isLocalBuild git;
|
||||
buildInputs = genDepsHostTargetFor {
|
||||
inherit hawkSourceInfo;
|
||||
mono' = finalAttrs.mono;
|
||||
};
|
||||
patches = lib.optional (!hawkSourceInfo.hasMiscTypeCheckerPatch_6afb3be98) (fetchpatch {
|
||||
url = "https://github.com/TASEmulators/BizHawk/commit/6afb3be98cd3d8bf111c8e61fdc29fc3136aab1e.patch";
|
||||
hash = "sha256-xZeZS939i5XZh1VgTGqXL1wPcpgYWINoskrXQfIPw5M=";
|
||||
});
|
||||
postPatch = ''
|
||||
sed -e 's/SimpleSubshell("uname", "-r", [^)]\+)/"${builtins.toString stdenv.hostPlatform.uname.release}"/' \
|
||||
-e 's/SimpleSubshell("uname", "-s", [^)]\+)/"${builtins.toString stdenv.hostPlatform.uname.system}"/' \
|
||||
-i src/BizHawk.Common/OSTailoredCode.cs
|
||||
|
||||
sed '/Assets\/\*\*/d' -i ${if hawkSourceInfo.copyingAssetsInEmuHawkProj # stop MSBuild from copying Assets, we'll do that in installPhase
|
||||
then "src/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj"
|
||||
else "src/BizHawk.Common/BizHawk.Common.csproj"}
|
||||
|
||||
rm -fr References; cp -LrT '${extraManagedDeps}' References
|
||||
'';
|
||||
buildType = buildConfig; #TODO move debug symbols to `!debug`?
|
||||
extraDotnetBuildFlags = let
|
||||
s = lib.optionalString (extraDefines != "") "-p:MachineExtraCompilationFlag=${extraDefines} ";
|
||||
in "-maxcpucount:$NIX_BUILD_CORES -p:BuildInParallel=true --no-restore ${s}${extraDotnetBuildFlags}";
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
${if hawkSourceInfo.versionProjNeedsDoubleBuild then
|
||||
''cd src/BizHawk.Version
|
||||
dotnet build ${finalAttrs.extraDotnetBuildFlags}
|
||||
cd ../..
|
||||
'' else ""}Dist/Build${finalAttrs.buildType}.sh ${finalAttrs.extraDotnetBuildFlags}
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
checkNativeInputs = finalAttrs.buildInputs;
|
||||
/** TODO WHY DOESN'T THIS WORK */
|
||||
checkPhase = ''
|
||||
runHook preCheck
|
||||
|
||||
export GITLAB_CI=1 # pretend to be in GitLab CI -- platform-specific tests don't run in CI because they assume an Arch filesystem (on Linux hosts)
|
||||
# from 2.7.1, use standard -p:ContinuousIntegrationBuild=true instead
|
||||
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${lib.makeLibraryPath finalAttrs.checkNativeInputs}"
|
||||
Dist/BuildTest${finalAttrs.buildType}.sh ${finalAttrs.extraDotnetBuildFlags}
|
||||
|
||||
# can't build w/ extra Analyzers, it fails to restore :(
|
||||
# Dist/Build${finalAttrs.buildType}.sh -p:MachineRunAnalyzersDuringBuild=true ${finalAttrs.extraDotnetBuildFlags}
|
||||
|
||||
runHook postCheck
|
||||
'';
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
${if hawkSourceInfo.packageScriptRemovesWinFilesFromLinux then "" else
|
||||
''(
|
||||
cd Assets/dll;
|
||||
rm -f "lua54.dll" \
|
||||
"mupen64plus-audio-bkm.dll" "mupen64plus-input-bkm.dll" "mupen64plus-rsp-cxd4-sse2.dll" "mupen64plus-rsp-hle.dll" "mupen64plus-video-angrylion-rdp.dll" "mupen64plus-video-glide64.dll" "mupen64plus-video-glide64mk2.dll" "mupen64plus-video-GLideN64.dll" "mupen64plus-video-rice.dll" "mupen64plus.dll" "octoshock.dll" \
|
||||
"bizlynx.dll" "bizswan.dll" "blip_buf.dll" "libbizhash.dll" "libdarm.dll" "libemu83.dll" "libfwunpack.dll" "libgambatte.dll" "libLibretroBridge.dll" "libquicknes.dll" "librcheevos.dll" "libsameboy.dll" "mgba.dll" "MSXHawk.dll" "waterboxhost.dll"
|
||||
)
|
||||
''}rm Assets/EmuHawkMono.sh # replaced w/ launch-scripts.nix
|
||||
cp -avT Assets $assets
|
||||
${if hawkSourceInfo.hasAssetsInOutput then ''sed '/packaged_output\/dll/d' -i Dist/Package.sh
|
||||
rm output/dll/*.xml # that's what that Package.sh line did, though I've forgotten why and don't care to rediscover it
|
||||
mv -t $assets/dll output/dll/*
|
||||
'' else ""}chmod -x $assets/dll/*.so # no idea why these are all executable
|
||||
|
||||
mkdir -p $extraUnmanagedDeps/lib; mv -t $extraUnmanagedDeps/lib $assets/dll/*.so*
|
||||
mkdir -p $waterboxCores/dll; mv -t $waterboxCores/dll $assets/dll/*.wbx*
|
||||
|
||||
${if hawkSourceInfo.packageScriptNeeds7Zip then ''sed '/7za a -t7z -mx9/d' -i Dist/Package.sh # not worth figuring this out
|
||||
'' else ""}Dist/Package.sh linux-x64
|
||||
${if hawkSourceInfo.hasAssetsInOutput then ''mkdir packaged_output/dll
|
||||
'' else ""}mkdir -p $out; cp -avt $out packaged_output/*.exe* packaged_output/dll
|
||||
mv -t $out/dll $assets/dll/*
|
||||
mv -t $out $assets/defctrl.json $assets/gamedb $assets/Shaders
|
||||
printf '${emuhawkBuildFlavour}' >$out/dll/custombuild.txt
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
dontPatchELF = true;
|
||||
passthru = {
|
||||
inherit extraManagedDeps # could use this to backport changes to ExternalProjects? IDK
|
||||
hawkSourceInfo; # simple way to override `nugetDeps` for patching: `buildAssembliesFor (bizhawkAssemblies-latest.hawkSourceInfo // { nugetDeps = /*...*/; })`
|
||||
inherit (finalAttrs) mono;
|
||||
# extraUnmanagedDeps = buildUnmanagedDepsFor hawkSourceInfo; # this will override the output of the same name, example: `buildEmuHawkInstallableFor { bizhawkAssemblies = bizhawkAssemblies-latest // { extraUnmanagedDeps = /*...*/; }; }`
|
||||
# can similarly override `assets` output, only used by launch script to populate `BIZHAWK_DATA_HOME` if the dir doesn't exist at runtime,
|
||||
# and `waterboxCores` output, which holds just the Waterbox cores, as the name suggests
|
||||
};
|
||||
meta.sourceProvenance = [ lib.sourceTypes.binaryNativeCode ]; # `extraUnmanagedDeps` and `waterboxCores` outputs; will work on from-source later
|
||||
}));
|
||||
buildInstallable =
|
||||
{ bizhawkAssemblies
|
||||
, pname
|
||||
, launchScript
|
||||
, desktopName
|
||||
, desktopIcon
|
||||
}: let
|
||||
exeName = "${pname}-${bizhawkAssemblies.hawkSourceInfo.version}";
|
||||
in symlinkJoin {
|
||||
inherit (bizhawkAssemblies.hawkSourceInfo) __contentAddressed;
|
||||
name = exeName;
|
||||
paths = [
|
||||
(let
|
||||
# in versions < 2.9.2, Waterbox cores load from `Assembly.GetEntryAssembly().Location + "/../dll"`, but `Location` resolves symlinks so only `!bin` is visible -_-
|
||||
farm = (if bizhawkAssemblies.hawkSourceInfo.exePathRespectsEnvVar then symlinkJoin else hardLinkJoin) {
|
||||
inherit (bizhawkAssemblies.hawkSourceInfo) __contentAddressed;
|
||||
name = "bizhawk-asms-and-wbox";
|
||||
paths = [ bizhawkAssemblies bizhawkAssemblies.waterboxCores ];
|
||||
};
|
||||
in writeShellScriptBin exeName ''BIZHAWK_HOME='${farm}' exec '${launchScript}' "$@"'')
|
||||
(makeDesktopItem {
|
||||
inherit desktopName; # actually Name
|
||||
exec = exeName;
|
||||
icon = desktopIcon;
|
||||
name = exeName; # actually filename
|
||||
})
|
||||
];
|
||||
passthru = {
|
||||
inherit (bizhawkAssemblies) fetch-deps hawkSourceInfo;
|
||||
assemblies = bizhawkAssemblies;
|
||||
};
|
||||
meta = let
|
||||
p = lib.systems.inspect.patterns;
|
||||
in {
|
||||
platforms = [
|
||||
(p.isLinux // p.isAarch64)
|
||||
(p.isLinux // p.isx86_32)
|
||||
(p.isLinux // p.isx86_64)
|
||||
|
||||
# `isMacOS` seems to be unused in Nixpkgs, though most mentions of `isDarwin` aren't from `lib.systems.inspect.patterns` so maybe it's only right for the legacy method
|
||||
# won't bother w/ PPC or x86 Macs, they're too weak
|
||||
(p.isDarwin // p.isAarch64)
|
||||
(p.isDarwin // p.isx86_64)
|
||||
|
||||
# not sure where Nix' Windows support is at right now, whether isWindows is the relevant pattern, or whether Nix on Windows will be suitable for us once it is usable
|
||||
# (p.isWindows // p.isAarch64)
|
||||
# (p.isWindows // p.isx86_32)
|
||||
# (p.isWindows // p.isx86_64)
|
||||
];
|
||||
badPlatforms = [ p.isDarwin p.isAarch64 p.isx86_32 ];
|
||||
};
|
||||
};
|
||||
buildInstallable' =
|
||||
{ hawkSourceInfo
|
||||
, bizhawkAssemblies
|
||||
, pname
|
||||
, launchScriptAttrName
|
||||
, desktopName
|
||||
, desktopIcon
|
||||
}: let
|
||||
bizhawkAssembliesFinal = if bizhawkAssemblies != null
|
||||
then lib.traceIf (hawkSourceInfo != null) "`hawkSourceInfo` passed to `build{EmuHawk,DiscoHawk}InstallableFor` will be ignored in favour of `bizhawkAssemblies.hawkSourceInfo`"
|
||||
bizhawkAssemblies
|
||||
else assert lib.assertMsg (hawkSourceInfo != null) "must pass either `hawkSourceInfo` or `bizhawkAssemblies` to `build{EmuHawk,DiscoHawk}InstallableFor`";
|
||||
buildAssembliesFor hawkSourceInfo;
|
||||
in buildInstallable {
|
||||
inherit desktopName pname;
|
||||
bizhawkAssemblies = bizhawkAssembliesFinal;
|
||||
desktopIcon = if desktopIcon != null then desktopIcon else pname;
|
||||
launchScript = (launchScriptsFor bizhawkAssembliesFinal false).${launchScriptAttrName};
|
||||
};
|
||||
in {
|
||||
inherit buildAssembliesFor buildExtraManagedDepsFor buildUnmanagedDepsFor;
|
||||
/**
|
||||
* assemblies and (managed) dependencies, and some other immutable things like the gamedb, are in the `out` output;
|
||||
* unmanaged/native dependencies are in the `extraUnmanagedDeps` output (under `/lib`);
|
||||
* Waterbox cores are in the `waterboxCores` output (under `/dll`);
|
||||
* the rest of the "assets" (bundled scripts, palettes, etc.) are in the `assets` output
|
||||
*/
|
||||
splitReleaseArtifact =
|
||||
{ hawkSourceInfo
|
||||
, hashPrePatching
|
||||
, zippedTarball ? false
|
||||
, url ? "https://github.com/TASEmulators/BizHawk/releases/download/${hawkSourceInfo.version}/BizHawk-${hawkSourceInfo.version}-linux-x64${if zippedTarball then ".tar.zip" else ".tar.gz"}"
|
||||
, stripRoot ? true
|
||||
}: assert buildConfig == "Release"; let
|
||||
artifact = fetchzip { inherit stripRoot url; hash = hashPrePatching; };
|
||||
hawkSourceInfo' = populateHawkSourceInfo hawkSourceInfo;
|
||||
in runCommand "BizHawk-${hawkSourceInfo.version}-bin" {
|
||||
buildInputs = genDepsHostTargetFor { hawkSourceInfo = hawkSourceInfo'; }; # is using `buildInputs` like this correct? it's necessary because the launch script reads from it
|
||||
outputs = [ "out" "assets" "extraUnmanagedDeps" "waterboxCores" ];
|
||||
passthru = {
|
||||
inherit mono;
|
||||
hawkSourceInfo = hawkSourceInfo';
|
||||
};
|
||||
meta.sourceProvenance = [ lib.sourceTypes.binaryNativeCode lib.sourceTypes.binaryBytecode ];
|
||||
} ''
|
||||
${if zippedTarball then ''mkdir -p $assets; tar -xf '${artifact}'/*.tar -C $assets'' else ''cp -aT '${artifact}' $assets''}
|
||||
cd $assets
|
||||
find . -type d -exec chmod +w {} \;
|
||||
rm -f EmuHawkMono.sh
|
||||
${if hawkSourceInfo'.releaseArtifactHasRogueOTKAsmConfig then ''mv -ft dll OpenTK.dll.config
|
||||
'' else ""}rmdir Firmware
|
||||
mkdir ExternalTools && touch ExternalTools/.keep
|
||||
|
||||
mkdir -p $out; mv -t $out defctrl.json DiscoHawk.exe* dll EmuHawk.exe* gamedb Shaders
|
||||
printf '${emuhawkBuildFlavour}' >$out/dll/custombuild.txt
|
||||
|
||||
mkdir -p $extraUnmanagedDeps/lib; mv -t $extraUnmanagedDeps/lib $out/dll/*.so*
|
||||
mkdir -p $waterboxCores/dll; mv -t $waterboxCores/dll $out/dll/*.wbx*
|
||||
'';
|
||||
buildDiscoHawkInstallableFor =
|
||||
{ bizhawkAssemblies ? null
|
||||
, hawkSourceInfo ? null
|
||||
, desktopName ? "DiscoHawk (Mono Runtime)"
|
||||
, desktopIcon ? null
|
||||
}: buildInstallable' {
|
||||
inherit bizhawkAssemblies desktopIcon desktopName hawkSourceInfo;
|
||||
pname = "discohawk-monort";
|
||||
launchScriptAttrName = "discohawk";
|
||||
};
|
||||
buildEmuHawkInstallableFor =
|
||||
{ bizhawkAssemblies ? null
|
||||
, hawkSourceInfo ? null
|
||||
, forNixOS ? true
|
||||
, desktopName ? "EmuHawk (Mono Runtime)"
|
||||
, desktopIcon ? null
|
||||
}: buildInstallable' {
|
||||
inherit bizhawkAssemblies desktopIcon desktopName hawkSourceInfo;
|
||||
pname = "emuhawk-monort";
|
||||
launchScriptAttrName = if forNixOS then "emuhawk" else "emuhawkNonNixOS";
|
||||
};
|
||||
}
|
|
@ -1,125 +0,0 @@
|
|||
{ lib
|
||||
# infrastructure
|
||||
, commentUnless
|
||||
, versionAtLeast
|
||||
, writeShellScriptBin
|
||||
, writeText
|
||||
# rundeps
|
||||
, bizhawk
|
||||
, mesa
|
||||
, mono
|
||||
, openal
|
||||
, zstd
|
||||
# other parameters
|
||||
, debugPInvokes
|
||||
, hawkVersion
|
||||
, initConfig # pretend this is JSON; the following env. vars will be substituted by the wrapper script (if surrounded by double-percent e.g. `%%BIZHAWK_DATA_HOME%%`): `BIZHAWK_DATA_HOME`
|
||||
}:
|
||||
let
|
||||
glHackLibs = rec {
|
||||
Fedora_33 = [
|
||||
"libdrm_amdgpu.so.1" "libdrm_nouveau.so.2" "libdrm_radeon.so.1" "libedit.so.0" "libelf.so.1" "libffi.so.6" "libLLVM-11.so" "libtinfo.so.6" "libvulkan.so.1"
|
||||
];
|
||||
Manjaro_21_0_3 = [ # should match Arch and Manjaro releases from '20/'21
|
||||
"libdrm_amdgpu.so.1" "libdrm_nouveau.so.2" "libdrm_radeon.so.1" "libedit.so.0" "libelf.so.1" "libffi.so.7" "libGLdispatch.so.0" "libicudata.so.69" "libicuuc.so.69" "libLLVM-11.so" "liblzma.so.5" "libncursesw.so.6" "libsensors.so.5" "libstdc++.so.6" "libvulkan.so.1" "libxml2.so.2" "libz.so.1" "libzstd.so.1"
|
||||
];
|
||||
Manjaro_21_2_1 = [ # should match Arch and Manjaro releases from '22
|
||||
"libdrm_amdgpu.so.1" "libdrm_nouveau.so.2" "libdrm_radeon.so.1" "libedit.so.0" "libelf.so.1" "libffi.so.8" "libicudata.so.70" "libicuuc.so.70" "libLLVM-13.so" "libncursesw.so.6" "libsensors.so.5" "libstdc++.so.6" "libvulkan.so.1" "libxml2.so.2" "libzstd.so.1"
|
||||
];
|
||||
LinuxMint_20_2 = [ # should match Ubuntu 20.04 and similar distros
|
||||
"libbsd.so.0" "libedit.so.2" "libLLVM-12.so.1" "libtinfo.so.6"
|
||||
] ++ Manjaro_21_0_3; #TODO split
|
||||
};
|
||||
glHackLibsFlat = lib.unique (lib.flatten (builtins.attrValues glHackLibs));
|
||||
initConfigFile = writeText "config.json" (builtins.toJSON ({
|
||||
LastWrittenFrom = if builtins.length (builtins.splitVersion hawkVersion) < 3 then "${hawkVersion}.0" else hawkVersion;
|
||||
PathEntries = {
|
||||
Paths = [
|
||||
({ "System" = "Global_NULL"; Type = "Base"; Path = "%%BIZHAWK_DATA_HOME%%"; } // lib.optionalAttrs (!versionAtLeast "2.7.1" hawkVersion) { "Ordinal" = 1; })
|
||||
];
|
||||
};
|
||||
} // initConfig));
|
||||
in rec {
|
||||
discoWrapper = writeShellScriptBin "discohawk-wrapper" ''
|
||||
set -e
|
||||
|
||||
if [ ! -e "$BIZHAWK_HOME/EmuHawk.exe" ]; then
|
||||
printf "no such file: %s\n" "$BIZHAWK_HOME/EmuHawk.exe"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
export LD_LIBRARY_PATH="$BIZHAWK_HOME/dll"
|
||||
${commentUnless debugPInvokes}export MONO_LOG_LEVEL=debug MONO_LOG_MASK=dll
|
||||
exec ${mono}/bin/mono "$BIZHAWK_HOME/DiscoHawk.exe" "$@"
|
||||
'';
|
||||
wrapperScript = writeShellScriptBin "emuhawk-wrapper" ''
|
||||
set -e
|
||||
|
||||
if [ ! -e "$BIZHAWK_HOME/EmuHawk.exe" ]; then
|
||||
printf "no such file: %s\n" "$BIZHAWK_HOME/EmuHawk.exe"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$XDG_DATA_HOME" ]; then
|
||||
BIZHAWK_DATA_HOME="$XDG_DATA_HOME"
|
||||
else
|
||||
BIZHAWK_DATA_HOME="$HOME/.local/share"
|
||||
fi
|
||||
BIZHAWK_DATA_HOME="$BIZHAWK_DATA_HOME/emuhawk-monort-${hawkVersion}"
|
||||
if [ ! -e "$BIZHAWK_DATA_HOME" ]; then
|
||||
mkdir -p "$BIZHAWK_DATA_HOME"
|
||||
cd "${bizhawk.out}"
|
||||
find . -type f -not -wholename "./nix-support/*" -exec install -DvT "{}" "$BIZHAWK_DATA_HOME/{}" \;
|
||||
fi
|
||||
if [ ! -e "$BIZHAWK_DATA_HOME/config.json" ]; then
|
||||
sed "s@%%BIZHAWK_DATA_HOME%%@$BIZHAWK_DATA_HOME@g" "${initConfigFile}" >"$BIZHAWK_DATA_HOME/config.json"
|
||||
printf "wrote initial config to %s\n" "$BIZHAWK_DATA_HOME/config.json"
|
||||
fi
|
||||
cd "$BIZHAWK_DATA_HOME"
|
||||
|
||||
export LD_LIBRARY_PATH="$BIZHAWK_HOME/dll:$BIZHAWK_GLHACKDIR:${lib.makeLibraryPath [ openal zstd ]}"
|
||||
${commentUnless debugPInvokes}export MONO_LOG_LEVEL=debug MONO_LOG_MASK=dll
|
||||
if [ "$1" = "--mono-no-redirect" ]; then
|
||||
shift
|
||||
printf "(received --mono-no-redirect, stdout was not captured)\n" >EmuHawkMono_laststdout.txt
|
||||
printf "(received --mono-no-redirect, stderr was not captured)\n" >EmuHawkMono_laststderr.txt
|
||||
exec ${mono}/bin/mono "$BIZHAWK_HOME/EmuHawk.exe" --config=config.json "$@"
|
||||
else
|
||||
exec ${mono}/bin/mono "$BIZHAWK_HOME/EmuHawk.exe" --config=config.json "$@" >EmuHawkMono_laststdout.txt 2>EmuHawkMono_laststderr.txt
|
||||
fi
|
||||
'';
|
||||
wrapperScriptNonNixOS = writeShellScriptBin "emuhawk-wrapper-non-nixos" ''
|
||||
set -e
|
||||
|
||||
if [ "$XDG_STATE_HOME" ]; then
|
||||
BIZHAWK_GLHACKDIR="$XDG_STATE_HOME"
|
||||
else
|
||||
BIZHAWK_GLHACKDIR="$HOME/.local/state"
|
||||
fi
|
||||
export BIZHAWK_GLHACKDIR="$BIZHAWK_GLHACKDIR/emuhawk-monort-${hawkVersion}-non-nixos"
|
||||
mkdir -p "$BIZHAWK_GLHACKDIR"
|
||||
if [ ! -e "$BIZHAWK_GLHACKDIR/libGLX_indirect.so.0" ]; then
|
||||
ln -fsvT "${lib.getOutput "drivers" mesa}/lib/libGLX_mesa.so.0" "$BIZHAWK_GLHACKDIR/libGLX_indirect.so.0"
|
||||
fi
|
||||
# collect links to certain GL libs (and their deps) from host, added to LD_LIBRARY_PATH without polluting it with all libs from host
|
||||
for l in ${builtins.concatStringsSep " " glHackLibsFlat}; do
|
||||
if [ -e "$BIZHAWK_GLHACKDIR/$l" ]; then continue; fi
|
||||
# else it's either a broken link or it doesn't exist, we use ln -f to cover both
|
||||
for d in /usr/lib64 /usr/lib /usr/lib/x86_64-linux-gnu /lib64 /lib; do
|
||||
if [ -e "$d/$l" ]; then
|
||||
ln -fsvT "$d/$l" "$BIZHAWK_GLHACKDIR/$l"
|
||||
break
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
for d in /usr/lib64/dri /usr/lib/dri /usr/lib/x86_64-linux-gnu/dri; do
|
||||
if [ -e "$d" ]; then
|
||||
export LIBGL_DRIVERS_PATH=$d
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
exec ${wrapperScript}/bin/emuhawk-wrapper "$@"
|
||||
'';
|
||||
}
|
16
README.md
16
README.md
|
@ -5,6 +5,8 @@ A multi-system emulator written in C#. As well as quality-of-life features for c
|
|||
[](https://github.com/TASEmulators/BizHawk/releases/latest)
|
||||
[](https://gitlab.com/TASVideos/BizHawk/-/pipelines/master/latest)
|
||||
[](https://github.com/TASEmulators/BizHawk/issues)
|
||||
|
||||
[](https://builtwithnix.org)
|
||||
[](https://bestpractices.coreinfrastructure.org/projects/5365)
|
||||
|
||||
---
|
||||
|
@ -14,6 +16,7 @@ Jump to:
|
|||
* [Windows](#windows)
|
||||
* [Unix](#unix)
|
||||
* [macOS](#macos-legacy-bizhawk)
|
||||
* [Nix/NixOS](#nixnixos)
|
||||
* [Development builds](#development-builds)
|
||||
* [Building](#building)
|
||||
* [Usage](#usage)
|
||||
|
@ -120,7 +123,7 @@ Install the listed package with your package manager (some buttons are links to
|
|||
|
||||
[-%2335BF5C.svg?logo=manjaro&style=popout)](https://aur.archlinux.org/packages/bizhawk-monort)
|
||||
|
||||
No package for your distro? Grab the latest release here on GitHub:
|
||||
No package for your distro? Install via Nix (see below), or install manually by grabbing the latest release here on GitHub:
|
||||
|
||||
[](https://github.com/TASEmulators/BizHawk/releases/latest)
|
||||
|
||||
|
@ -140,6 +143,17 @@ EmuHawk depends on certain libraries for graphics, and these don't work on macOS
|
|||
* Use another machine with Windows or Linux, or install either in a VM (WINE is not a VM).
|
||||
* Use an older 1.x release which was ported to macOS by @Sappharad (with replacements for the missing libraries). Links and more details are in [this TASVideos forum thread](https://tasvideos.org/Forum/Topics/12659) (jump to last page for latest binaries).
|
||||
* For the technically-minded, download the [source](https://github.com/Sappharad/BizHawk/tree/MacUnixMonoCompat) of an older 2.x release. @Sappharad put a lot of work into it but ultimately decided to stop.
|
||||
* ...or use the Nix expression as a starting point instead.
|
||||
|
||||
[to top](#bizhawk)
|
||||
|
||||
#### Nix/NixOS
|
||||
|
||||
(Curious what this Nix thing is about? [Start here](https://zero-to-nix.com).)
|
||||
|
||||
Dev builds and a few recent releases can be built with Nix, either by cloning the repo, or by `fetchzip`'ing a commit and importing the expression from it. (The repo isn't a Flake yet, but you should be able to IFD.)
|
||||
See the [dedicated Nix usage readme](nix_expr_usage_docs.md) for what attributes are exposed.
|
||||
If you use a non-NixOS distro with Nix installed, you just need to add one argument and your host graphics drivers will be picked up thanks to nixGL.
|
||||
|
||||
[to top](#bizhawk)
|
||||
|
||||
|
|
289
default.nix
289
default.nix
|
@ -1,180 +1,147 @@
|
|||
# THIS IS A WORK IN PROGRESS!
|
||||
# To save you having to build Mono locally, install the Cachix client (`nix-env -iA nixpkgs.cachix`) and run `cachix use mono-for-bizhawk` (both commands only need to run once ever). See https://docs.cachix.org for more info.
|
||||
|
||||
{ pkgs ? import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/21.11.tar.gz") {}
|
||||
# infrastructure
|
||||
{ pkgs ? import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/23.05.tar.gz") {}
|
||||
, lib ? pkgs.lib
|
||||
, stdenv ? pkgs.stdenvNoCC
|
||||
# infrastructure
|
||||
, buildDotnetModule ? pkgs.buildDotnetModule
|
||||
, fetchFromGitHub ? pkgs.fetchFromGitHub
|
||||
#, makeDesktopItem ? pkgs.makeDesktopItem
|
||||
, makeWrapper ? pkgs.makeWrapper
|
||||
, fetchFromGitLab ? pkgs.fetchFromGitLab
|
||||
, fetchpatch ? pkgs.fetchpatch
|
||||
, fetchzip ? pkgs.fetchzip
|
||||
, makeDesktopItem ? pkgs.makeDesktopItem
|
||||
, mkNugetDeps ? pkgs.mkNugetDeps
|
||||
, runCommand ? pkgs.runCommand
|
||||
, symlinkJoin ? pkgs.symlinkJoin
|
||||
, writeShellScript ? pkgs.writeShellScript
|
||||
, writeShellScriptBin ? pkgs.writeShellScriptBin
|
||||
, writeText ? pkgs.writeText
|
||||
# source
|
||||
, useCWDAsSource ? false # deprecated
|
||||
, hawkSourceInfoDev ? rec {
|
||||
version = "2.8.1-local"; # distinguishes parallel installs' config and other data
|
||||
shorthash = "000000000"; # this and the branch name are written into movies and savestates, written to config to detect in-place upgrades (N/A to Nix), and of course also shown in the About dialog
|
||||
branch = "master"; # must be regex-escaped (interpolated as `sed "s/.../${branch}/"`)
|
||||
drv = builtins.path { path = ./.; name = "BizHawk-${version}"; }; # did have filter here for speed, but it wasn't faster and it wasn't correct and it couldn't be made correct and I'm mad
|
||||
, hawkSourceInfoDevBuild ? let # called "dev build", but you could pass whatever branch and commit you want here
|
||||
version = "2.9.2-local"; # used in default value of `BIZHAWK_DATA_HOME`, which distinguishes parallel installs' config and other data
|
||||
in {
|
||||
inherit version;
|
||||
branch = "master"; # must be regex-escaped (interpolated as `sed "s/.../${branch}/"`); written into movies and savestates, written to config to detect in-place upgrades (N/A to Nix), and of course also shown in the About dialog
|
||||
drv = builtins.path { path = ./.; name = "BizHawk-${version}"; }; # source derivation; did have filter here for speed, but it wasn't faster and it wasn't correct and it couldn't be made correct and I'm mad
|
||||
}
|
||||
# makedeps
|
||||
, dotnet-sdk_5 ? pkgs.dotnetCorePackages.sdk_5_0
|
||||
, dotnet-sdk_6 ? pkgs.dotnetCorePackages.sdk_6_0
|
||||
# rundeps for NixOS hosts
|
||||
#, gtk2-x11 ? pkgs.gtk2-x11
|
||||
# rundeps for all Linux hosts
|
||||
, mesa ? pkgs.mesa
|
||||
, dotnet-sdk_6 ? pkgs.dotnet-sdk_6
|
||||
, dotnet-sdk_5 ? let result = builtins.tryEval pkgs.dotnet-sdk_5; in if result.success
|
||||
then result.value
|
||||
else (import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/5234f4ce9340fffb705b908fff4896faeddb8a12^.tar.gz") {}).dotnet-sdk_5
|
||||
, git ? pkgs.gitMinimal # only when building from-CWD (`-local`)
|
||||
# rundeps
|
||||
, coreutils ? pkgs.coreutils
|
||||
, lua ? pkgs.lua54Packages.lua
|
||||
, mono ? null
|
||||
, nixGLChannel ? (pkgs.nixgl or import (fetchTarball "https://github.com/guibou/nixGL/archive/489d6b095ab9d289fe11af0219a9ff00fe87c7c5.tar.gz") {})
|
||||
, nixGL ? nixGLChannel.auto.nixGLDefault
|
||||
#, nixVulkan ? nixGLChannel.auto.nixVulkanNvidia
|
||||
, openal ? pkgs.openal
|
||||
, uname ? stdenv
|
||||
, SDL2 ? pkgs.SDL2
|
||||
, udev ? pkgs.udev
|
||||
, zstd ? pkgs.zstd
|
||||
# other parameters
|
||||
, buildConfig ? "Release" # "Debug"/"Release"
|
||||
, debugPInvokes ? false # forwarded to Dist/wrapper-scripts.nix
|
||||
, debugPInvokes ? false # forwarded to Dist/launch-scripts.nix
|
||||
, debugDotnetHostCrashes ? false # forwarded to Dist/launch-scripts.nix
|
||||
, doCheck ? false # runs `Dist/BuildTest${buildConfig}.sh`
|
||||
, forNixOS ? false
|
||||
, initConfig ? {} # forwarded to Dist/wrapper-scripts.nix (see docs there)
|
||||
}:
|
||||
let
|
||||
lib = pkgs.lib;
|
||||
commentUnless = b: lib.optionalString (!b) "# ";
|
||||
versionAtLeast = exVer: acVer: builtins.compareVersions exVer acVer <= 0;
|
||||
monoFinal = if mono != null
|
||||
then mono
|
||||
else if versionAtLeast "6.12.0.151" pkgs.mono.version
|
||||
then pkgs.mono
|
||||
else pkgs.callPackage Dist/mono-6.12.0.151.nix {}; # not actually reproducible :( https://github.com/NixOS/nixpkgs/issues/143110#issuecomment-984251253
|
||||
buildAssembliesFor = hawkSourceInfo: buildDotnetModule rec {
|
||||
pname = "BizHawk";
|
||||
version = hawkSourceInfo.version;
|
||||
src = hawkSourceInfo.drv;
|
||||
outputs = [ "bin" "out" ];
|
||||
dotnet-sdk = if hawkSourceInfo ? dotnet-sdk then hawkSourceInfo.dotnet-sdk else dotnet-sdk_6;
|
||||
nativeBuildInputs = [ zstd ];
|
||||
buildInputs = [ mesa monoFinal openal uname zstd ];# ++ lib.optionals (forNixOS) [ gtk2-x11 ];
|
||||
projectFile = "BizHawk.sln";
|
||||
nugetDeps = if hawkSourceInfo ? nugetDeps then hawkSourceInfo.nugetDeps else Dist/deps.nix;
|
||||
extraDotnetBuildFlags = "-maxcpucount:$NIX_BUILD_CORES -p:BuildInParallel=true --no-restore";
|
||||
postPatch = ''
|
||||
# confused? '$(...)' is literal here
|
||||
# these scripts invoke Git in subshells and we want to run them now, at compile time, without Git
|
||||
sed -i 's/$(git rev-parse --verify HEAD)/${hawkSourceInfo.shorthash}/' Dist/.InvokeCLIOnMainSln.sh
|
||||
sed -i -e 's/$(git rev-parse --abbrev-ref HEAD)/${hawkSourceInfo.branch}/' -e 's/$(git log -1 --format="%h")/${hawkSourceInfo.shorthash}/' Build/standin.sh
|
||||
sed -i 's/$(git rev-list HEAD --count)//' Build/standin.sh # const field is unused
|
||||
|
||||
# stop MSBuild from copying Assets, we'll do that later
|
||||
sed -i '/Assets\/\*\*/d' src/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj
|
||||
sed -i '/mkdir "packaged_output\/Firmware/d' Dist/Package.sh # and we don't need this
|
||||
, emuhawkBuildFlavour ? "NixHawk"
|
||||
, extraDefines ? "" # added to `<DefineConstants/>`, so ';'-separated
|
||||
, extraDotnetBuildFlags ? "" # currently passed to EVERY `dotnet build` and `dotnet test` invocation (and does not replace the flags for parallel compilation added by default)
|
||||
, forNixOS ? true
|
||||
, initConfig ? {} # forwarded to Dist/launch-scripts.nix (see docs there)
|
||||
}: let
|
||||
replaceDotWithUnderscore = s: lib.replaceStrings [ "." ] [ "_" ] s;
|
||||
drvVersionAtLeast = exVer: acVer: builtins.compareVersions exVer acVer <= 0;
|
||||
/** you can't actually make hard links in the sandbox, so this just copies, and we'll rely on Nix' automatic deduping */
|
||||
hardLinkJoin =
|
||||
{ name
|
||||
, paths
|
||||
, preferLocalBuild ? true
|
||||
, allowSubstitutes ? false
|
||||
, __contentAddressed ? false
|
||||
}: runCommand name {
|
||||
inherit __contentAddressed allowSubstitutes paths preferLocalBuild;
|
||||
passAsFile = [ "paths" ];
|
||||
} ''
|
||||
mkdir -p $out
|
||||
for d in $(cat $pathsPath); do
|
||||
cd "$d"
|
||||
find . -type d -exec mkdir -p "$out/{}" \;
|
||||
for f in $(find . -type f); do cp -T "$(realpath "$f")" "$out/$f"; done
|
||||
done
|
||||
'';
|
||||
buildPhase = ''
|
||||
cd src/BizHawk.Version
|
||||
dotnet build ${extraDotnetBuildFlags}
|
||||
cd ../..
|
||||
Dist/Build${buildConfig}.sh ${extraDotnetBuildFlags}
|
||||
printf "NixHawk" >output/dll/custombuild.txt
|
||||
Dist/Package.sh linux-x64
|
||||
'';
|
||||
inherit doCheck;
|
||||
checkPhase = ''
|
||||
export GITLAB_CI=1 # pretend to be in GitLab CI -- platform-specific tests don't run in CI because they assume an Arch filesystem (on Linux hosts)
|
||||
# from 2.7.1, use standard -p:ContinuousIntegrationBuild=true instead
|
||||
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${lib.makeLibraryPath [ zstd ]}"
|
||||
Dist/BuildTest${buildConfig}.sh ${extraDotnetBuildFlags}
|
||||
|
||||
# can't build w/ extra Analyzers, it fails to restore :(
|
||||
# Dist/Build${buildConfig}.sh -p:MachineRunAnalyzersDuringBuild=true ${extraDotnetBuildFlags}
|
||||
'';
|
||||
installPhase = ''
|
||||
cp -avT packaged_output $bin
|
||||
cp -avt $bin Assets/defctrl.json && rm Assets/defctrl.json
|
||||
cp -avt $bin/dll Assets/dll/* && rm -r Assets/dll
|
||||
rm Assets/EmuHawkMono.sh # replaced w/ scripts from wrapperScripts
|
||||
cp -avt $bin Assets/gamedb && rm -r Assets/gamedb
|
||||
cp -avt $bin Assets/Shaders && rm -r Assets/Shaders
|
||||
cp -avT Assets $out
|
||||
'';
|
||||
dontPatchELF = true;
|
||||
inherit (import Dist/historical.nix {
|
||||
inherit lib
|
||||
drvVersionAtLeast replaceDotWithUnderscore
|
||||
fetchFromGitHub fetchFromGitLab mkNugetDeps
|
||||
dotnet-sdk_5 dotnet-sdk_6;
|
||||
}) depsForHistoricalRelease populateHawkSourceInfo releaseArtifactInfos releaseFrags releaseTagSourceInfos;
|
||||
launchScriptsFor = bizhawkAssemblies: isManualLocalBuild: import Dist/launch-scripts.nix {
|
||||
inherit lib
|
||||
writeShellScript writeText
|
||||
bizhawkAssemblies nixGL
|
||||
debugPInvokes debugDotnetHostCrashes initConfig isManualLocalBuild;
|
||||
mkfifo = coreutils;
|
||||
mktemp = coreutils;
|
||||
};
|
||||
wrapperScriptsFor = { hawkSourceInfo, bizhawkAssemblies }: import Dist/wrapper-scripts.nix {
|
||||
inherit (pkgs) lib writeShellScriptBin writeText;
|
||||
inherit commentUnless versionAtLeast mesa openal zstd debugPInvokes initConfig;
|
||||
bizhawk = bizhawkAssemblies;
|
||||
hawkVersion = hawkSourceInfo.version;
|
||||
mono = monoFinal;
|
||||
pp = import Dist/packages.nix {
|
||||
inherit lib stdenv
|
||||
populateHawkSourceInfo replaceDotWithUnderscore
|
||||
buildDotnetModule fetchpatch fetchzip hardLinkJoin launchScriptsFor makeDesktopItem
|
||||
releaseTagSourceInfos runCommand symlinkJoin writeShellScriptBin
|
||||
git
|
||||
lua openal SDL2 udev zstd
|
||||
buildConfig doCheck emuhawkBuildFlavour extraDefines extraDotnetBuildFlags;
|
||||
mono = if mono != null
|
||||
then mono # allow older Mono if set explicitly
|
||||
else if drvVersionAtLeast "6.12.0.151" pkgs.mono.version
|
||||
then pkgs.mono
|
||||
else lib.trace "provided Mono too old, using Mono from Nixpkgs 23.05"
|
||||
(import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/23.05.tar.gz") {}).mono;
|
||||
};
|
||||
mkWrapperWrapper = { hawkSourceInfo, bizhawkAssemblies, pname, innerWrapper, desktopName }: stdenv.mkDerivation rec {
|
||||
inherit pname;
|
||||
version = hawkSourceInfo.version;
|
||||
exeName = "${pname}-${version}";
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
buildInputs = [ bizhawkAssemblies ];
|
||||
# there must be a helper for this somewhere...
|
||||
dontUnpack = true;
|
||||
dontPatch = true;
|
||||
dontConfigure = true;
|
||||
dontBuild = true;
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
makeWrapper ${innerWrapper} $out/bin/${exeName} \
|
||||
--set BIZHAWK_HOME ${bizhawkAssemblies}
|
||||
'';
|
||||
dontFixup = true;
|
||||
# desktopItems = [ (makeDesktopItem {
|
||||
# name = "${pname}-${version}"; # actually filename
|
||||
# exec = "${exeName}";
|
||||
# inherit desktopName; # actually Name
|
||||
# }) ];
|
||||
emuhawk-local = pp.buildEmuHawkInstallableFor {
|
||||
inherit forNixOS;
|
||||
hawkSourceInfo = hawkSourceInfoDevBuild;
|
||||
};
|
||||
buildDiscoHawkWrapperFor = { hawkSourceInfo, bizhawkAssemblies ? buildAssembliesFor hawkSourceInfo }: let
|
||||
wrapperScripts = wrapperScriptsFor { inherit hawkSourceInfo bizhawkAssemblies; };
|
||||
in mkWrapperWrapper {
|
||||
inherit hawkSourceInfo bizhawkAssemblies;
|
||||
pname = "discohawk-monort";
|
||||
innerWrapper = "${wrapperScripts.discoWrapper}/bin/discohawk-wrapper";
|
||||
desktopName = "DiscoHawk (Mono Runtime)";
|
||||
};
|
||||
buildEmuHawkWrapperFor = { hawkSourceInfo, bizhawkAssemblies ? buildAssembliesFor hawkSourceInfo }: let
|
||||
wrapperScripts = wrapperScriptsFor { inherit hawkSourceInfo bizhawkAssemblies; };
|
||||
in mkWrapperWrapper {
|
||||
inherit hawkSourceInfo bizhawkAssemblies;
|
||||
pname = "emuhawk-monort";
|
||||
innerWrapper = if forNixOS
|
||||
then "${wrapperScripts.wrapperScript}/bin/emuhawk-wrapper"
|
||||
else "${wrapperScripts.wrapperScriptNonNixOS}/bin/emuhawk-wrapper-non-nixos";
|
||||
desktopName = "EmuHawk (Mono Runtime)";
|
||||
};
|
||||
in rec {
|
||||
bizhawkAssemblies = buildAssembliesFor hawkSourceInfoDev; # assemblies and dependencies, and some other immutable things like the gamedb, are in the `bin` output; the rest of the "assets" (bundled scripts, palettes, etc.) are in the `out` output
|
||||
discohawk = buildDiscoHawkWrapperFor { inherit bizhawkAssemblies; hawkSourceInfo = hawkSourceInfoDev; };
|
||||
emuhawk-2_7 = buildEmuHawkWrapperFor {
|
||||
hawkSourceInfo = {
|
||||
version = "2.7";
|
||||
shorthash = "dbaf25956";
|
||||
branch = "master";
|
||||
drv = fetchFromGitHub {
|
||||
owner = "TASEmulators";
|
||||
repo = "BizHawk";
|
||||
rev = "dbaf2595625f79093eeec37d2d4a7a9a4d37f370";
|
||||
hash = "sha256-KXe69svPIIFaXgT9t+02pwdQ6WWqdqgUdtaE2S4/YxA=";
|
||||
};
|
||||
dotnet-sdk = dotnet-sdk_5;
|
||||
nugetDeps = Dist/deps-2_7.nix;
|
||||
asmsFromReleaseArtifacts = lib.mapAttrs (_: pp.splitReleaseArtifact) releaseArtifactInfos;
|
||||
# the asms for from-CWD and latest release from-source are exposed below as `bizhawkAssemblies` and `bizhawkAssemblies-latest`, respectively
|
||||
# apart from that, no `asmsFromSource`, since if you're only after the assets you might as well use the release artifact
|
||||
releasesEmuHawkInstallables = lib.listToAttrs (lib.concatLists (builtins.map
|
||||
(versionFrag: [
|
||||
({
|
||||
name = "emuhawk-${versionFrag}";
|
||||
value = pp.buildEmuHawkInstallableFor {
|
||||
inherit forNixOS;
|
||||
hawkSourceInfo = releaseTagSourceInfos."info-${versionFrag}";
|
||||
};
|
||||
})
|
||||
({
|
||||
name = "emuhawk-${versionFrag}-bin";
|
||||
value = pp.buildEmuHawkInstallableFor {
|
||||
inherit forNixOS;
|
||||
bizhawkAssemblies = asmsFromReleaseArtifacts."bizhawkAssemblies-${versionFrag}-bin";
|
||||
};
|
||||
})
|
||||
])
|
||||
releaseFrags));
|
||||
latestVersionFrag = lib.head releaseFrags;
|
||||
combined = pp // asmsFromReleaseArtifacts // releasesEmuHawkInstallables // {
|
||||
inherit depsForHistoricalRelease releaseTagSourceInfos;
|
||||
bizhawkAssemblies = pp.buildAssembliesFor hawkSourceInfoDevBuild;
|
||||
"bizhawkAssemblies-${latestVersionFrag}" = pp.buildAssembliesFor releaseTagSourceInfos."info-${latestVersionFrag}";
|
||||
discohawk = pp.buildDiscoHawkInstallableFor { hawkSourceInfo = hawkSourceInfoDevBuild; };
|
||||
"discohawk-${latestVersionFrag}" = pp.buildDiscoHawkInstallableFor {
|
||||
hawkSourceInfo = releaseTagSourceInfos."info-${latestVersionFrag}";
|
||||
};
|
||||
};
|
||||
emuhawk-2_8 = buildEmuHawkWrapperFor {
|
||||
hawkSourceInfo = {
|
||||
version = "2.8";
|
||||
shorthash = "e731e0f32";
|
||||
branch = "master";
|
||||
drv = fetchFromGitHub {
|
||||
owner = "TASEmulators";
|
||||
repo = "BizHawk";
|
||||
rev = "e731e0f32903cd40b83ed75bba3b1e3753105ce2";
|
||||
hash = "sha256-kP6zvTbhctqGCmjDOtQgBGII1T0xIyN5keq7d/lfWVM=";
|
||||
};
|
||||
nugetDeps = Dist/deps-2_8.nix;
|
||||
"discohawk-${latestVersionFrag}-bin" = pp.buildDiscoHawkInstallableFor {
|
||||
bizhawkAssemblies = asmsFromReleaseArtifacts."bizhawkAssemblies-${latestVersionFrag}-bin";
|
||||
};
|
||||
emuhawk = emuhawk-local;
|
||||
launchScriptsForLocalBuild = launchScriptsFor emuhawk-local.assemblies true;
|
||||
};
|
||||
emuhawk = buildEmuHawkWrapperFor { inherit bizhawkAssemblies; hawkSourceInfo = hawkSourceInfoDev; };
|
||||
emuhawkWrapperScriptNonNixOS = (wrapperScriptsFor { inherit bizhawkAssemblies; hawkSourceInfo = hawkSourceInfoDev; }).wrapperScriptNonNixOS;
|
||||
mono = monoFinal;
|
||||
}
|
||||
in combined // lib.listToAttrs (lib.concatLists (builtins.map
|
||||
(f: [
|
||||
{ name = f "latest-bin"; value = combined.${f "${latestVersionFrag}-bin"}; }
|
||||
{ name = f "latest"; value = combined.${f latestVersionFrag}; }
|
||||
])
|
||||
[ (s: "bizhawkAssemblies-${s}") (s: "emuhawk-${s}") (s: "discohawk-${s}") ]))
|
|
@ -0,0 +1,41 @@
|
|||
{ pkgs ? import <nixpkgs> {}
|
||||
, lib ? pkgs.lib
|
||||
, mkShell ? pkgs.mkShell
|
||||
, git-cola ? pkgs.git-cola
|
||||
, git ? pkgs.gitMinimal
|
||||
, nano ? pkgs.nano
|
||||
, debugDotnetHostCrashes ? false # forwarded to Dist/launch-scripts.nix
|
||||
, debugPInvokes ? false # forwarded to Dist/launch-scripts.nix
|
||||
, forNixOS ? true
|
||||
, useKate ? false
|
||||
, useNanoAndCola ? false
|
||||
, useVSCode ? false
|
||||
}: let
|
||||
# thinking of exposing pre-configured IDEs from `default.nix` so they're available here
|
||||
avail = import ./. { inherit debugDotnetHostCrashes debugPInvokes forNixOS; };
|
||||
f = drv: mkShell {
|
||||
packages = [ git ]
|
||||
++ lib.optionals useNanoAndCola [ git-cola nano ]
|
||||
++ lib.optionals useKate [] #TODO
|
||||
++ lib.optionals useVSCode [] #TODO https://devblogs.microsoft.com/dotnet/csharp-dev-kit-now-generally-available/ https://learn.microsoft.com/en-us/training/modules/implement-visual-studio-code-debugging-tools/
|
||||
;
|
||||
inputsFrom = [ drv ];
|
||||
shellHook = ''
|
||||
export BIZHAWKBUILD_HOME='${builtins.toString ./.}'
|
||||
export BIZHAWK_HOME="$BIZHAWKBUILD_HOME/output"
|
||||
alias discohawk-monort-local='${avail.launchScriptsForLocalBuild.discohawk}'
|
||||
alias emuhawk-monort-local='${avail.launchScriptsForLocalBuild.emuhawk}'
|
||||
pfx="$(realpath --relative-to="$PWD" "$BIZHAWKBUILD_HOME")/"
|
||||
if [ "$pfx" = "./" ]; then pfx=""; fi
|
||||
printf "%s\n%s\n" \
|
||||
"Run ''${pfx}Dist/Build{Debug,Release}.sh to build the solution. You may need to clean up with ''${pfx}Dist/CleanupBuildOutputDirs.sh." \
|
||||
"Once built, running {discohawk,emuhawk}-monort-local will pull from ''${pfx}output/* and use Mono from Nixpkgs."
|
||||
'';
|
||||
};
|
||||
shells = lib.pipe avail [
|
||||
(lib.mapAttrs (name: drv: if lib.hasPrefix "bizhawkAssemblies-" name then drv else drv.assemblies or null))
|
||||
(lib.filterAttrs (_: drv: drv != null))
|
||||
(lib.mapAttrs (_: asms: lib.traceIf (lib.hasSuffix "-bin" asms.name) "the attr specified packages BizHawk from release artifacts; some builddeps may be missing from this shell"
|
||||
f asms))
|
||||
];
|
||||
in shells // shells.emuhawk-latest
|
Loading…
Reference in New Issue